BuySaleController.class.php
5.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?php
/**
* 购买业绩比拼接口
* Created by PhpStorm.
* User: yingcai
* Date: 2018/2/28
* Time: 上午10:42
*/
namespace Apicp\Controller\SaleOrder;
use Common\Common\Order;
class BuySaleController extends \Apicp\Controller\AbstractController
{
// 企业是否有待支付的订单(1:有,2:无)
const WAIT_PAY_ORDER_TRUE = 1;
const WAIT_PAY_ORDER_FALSE = 2;
// 订单类型:购买/续费业绩比拼
const ORDER_TYPE_PRODUCT_SALE = 1;
// 订单类型:扩充业绩比拼人数
const ORDER_TYPE_PRODUCT_SALE_PEOPLE = 2;
// 订单状态 (待支付)
const ORDER_STATUS_WAIT_PAY = 1;
/**
* BuySale
* @author houyingcai
* @desc 购买业绩比拼接口
* @param Int buy_type:false:1 购买的类型(购买类型(1=扩充人数,2=续费))
* @return array|bool 购买规则
array(
'is_wait_pay' => 1, // 企业是否有待支付订单(1=是,2=否)
'product_id' => '008474BE7F00000175505861C25D23D2', // 产品类型
'product_name' => '业绩比拼', // 购买产品名称
'current_people' => 100, // 当前应用授权使用人数
'buy_people_range' => '1000人及以下', // 已购买的人数范围(仅扩充使用人数和续费时存在)
'end_time' => 1517572194899, // 已购买的人数范围截止时间(仅扩充使用人数和续费时存在)
'surplus_days' => 15, // 剩余天数(仅扩充使用人数和续费时存在)
'buy_rule' => array(
rule => array(
'level' => 1,
'num' => '1000人及以下', // 人数范围
'price' => 1000, // 价格(单位:分)
),
'unit' => '年', // 单位
),
)
*/
public function Index_post()
{
// 购买的产品类型
$buy_type = I('post.buy_type', 0, 'rintval');
$orderServ = &Order::instance();
// 获取当前应用授权使用人数
$allow_users = $orderServ->GetAllowUserTotal(['plIdentifier' => 'performancerankings']);
// 没有安装业绩比拼
if (empty($allow_users)) {
E('_ERR_NOT_INSTALL_SALE');
}
// 初始化待支付
$is_wait_pay = self::WAIT_PAY_ORDER_TRUE;
// 待支付的订单类型
$ord_type = $buy_type == self::ORDER_TYPE_PRODUCT_SALE_PEOPLE ? self::ORDER_TYPE_PRODUCT_SALE_PEOPLE : self::ORDER_TYPE_PRODUCT_SALE ;
// 获取是否有待支付的订单
$result = $orderServ->fetchOrderList([
'ordPayStatus' => self::ORDER_STATUS_WAIT_PAY,
'ordType' => $ord_type,
]);
// 获取业绩比拼有效的订单(注:数组第一个元素是当前使用的人数范围,之后的元素都是续费但未生效的人数范围)
$valid_order = $orderServ->FetchAllSaleValidOrder();
// 初始化已购买的人数范围截止时间
$end_time = 0;
// 初始化已购买的最大人数
$max_amout = 0;
// 如果是扩充人数
if ($buy_type == self::ORDER_TYPE_PRODUCT_SALE_PEOPLE) {
// 获取购买扩充人数规则
$rule = $orderServ->fetchProductRule(['prCostKey' => 'compete_persons_rule']);
} else {
// 如果是购买业绩比拼或者是续费业绩比拼 , 获取购买业绩比拼规则
$rule = $orderServ->fetchProductRule(['prCostKey' => 'compete_app_rule']);
// 如果是续费,则截止日期为续费之后的日期
// 有效订单为空时,获取业绩比拼(购买或续费的业绩比拼)失效订单
if (empty($valid_order)) {
$no_valid_order = $orderServ->fetchOrderLiveList(['ordType' => 1, 'isSearchAvailable' => 2], ['oauEnd' => 'DESC']);
$no_valid_order = $no_valid_order['list'];
// 已购买的人数范围截止时间
$end_time = empty($no_valid_order) ? $end_time : $no_valid_order[0]['oauEnd'];
// 已购买的最大人数
$max_amout = empty($no_valid_order) ? $max_amout : $no_valid_order[0]['oauMaxAmout'];
} else {
$end_time = $valid_order[0]['oauEnd']; // 已购买的人数范围截止时间
$max_amout = $valid_order[0]['oauMaxAmout']; // 已购买的最大人数
if (count($valid_order) > 1) {
$last_order = end($valid_order);
$end_time = $last_order['oauEnd'];
}
}
}
// 剩余使用天数
$surplus_days = floor(($end_time - MILLI_TIME)/1000/86400);
if (!$result['total']) {
$is_wait_pay = self::WAIT_PAY_ORDER_FALSE;
}
$this->_result = [
'is_wait_pay' => $is_wait_pay,
'product_id' => $result['total'] ? $result['list'][0]['prId'] : '',
'product_name' => $rule['prName'],
'order_id' => $result['list'][0]['ordId'],
'current_people' => $allow_users['memberTotal'],
'buy_rule' => json_decode($rule['prCostValue'], true),
'max_amout' => $max_amout,
'end_time' => $end_time,
'surplus_days' => $surplus_days < 0 ? 0 : $surplus_days,
];
return true;
}
}