|
|
@@ -94,7 +94,7 @@ class TaskPartnerProfits
|
|
94
|
94
|
*/
|
|
95
|
95
|
public function getOrderUidListByTime($startTime, $endTime, array $removeUserIdList = []): array
|
|
96
|
96
|
{
|
|
97
|
|
- $uidList = [];
|
|
|
97
|
+ $orderUidMap = [];
|
|
98
|
98
|
try {
|
|
99
|
99
|
// 本地订单
|
|
100
|
100
|
$storeOrder = Db::name("store_order")
|
|
|
@@ -103,22 +103,28 @@ class TaskPartnerProfits
|
|
103
|
103
|
->whereIn('status', [0, 1, 2, 3])
|
|
104
|
104
|
->whereBetween("pay_time", [$startTime, $endTime])
|
|
105
|
105
|
->whereNotNull("pay_time") // 排除 pay_time 为 NULL 的订单
|
|
106
|
|
- ->field('mer_id, status, pay_time, total_price, uid')
|
|
|
106
|
+ ->field('mer_id, status, pay_time, total_price, uid, order_id, order_sn')
|
|
107
|
107
|
->select()
|
|
108
|
108
|
->toArray();
|
|
109
|
|
- $storeOrderUidList = array_column($storeOrder, 'uid');
|
|
110
|
|
- $uidList = array_merge($uidList, $storeOrderUidList);
|
|
|
109
|
+ foreach ($storeOrder as $order) {
|
|
|
110
|
+ $orderUidMap[$order['uid']][] = ['orderTable' => 'store_order', 'orderId' => $order['order_id'], 'orderSn' => $order['order_sn']];
|
|
|
111
|
+ }
|
|
|
112
|
+ // $storeOrderUidList = array_column($storeOrder, 'uid');
|
|
|
113
|
+ // $uidList = array_merge($uidList, $storeOrderUidList);
|
|
111
|
114
|
|
|
112
|
115
|
// 话费订单 order_huafei
|
|
113
|
116
|
$orderHuafei = Db::name("order_huafei")
|
|
114
|
117
|
->whereNotIn('uid', $removeUserIdList)
|
|
115
|
118
|
->where('status', '<>', 0) // 只要不是待支付的 即算是有效活跃度
|
|
116
|
119
|
->whereBetween("finish_time", [$startTime, $endTime])
|
|
117
|
|
- ->field('order_huafei_id, uid, status, finish_time, amount_price')
|
|
|
120
|
+ ->field('order_huafei_id, uid, status, finish_time, amount_price, order_sn')
|
|
118
|
121
|
->select()
|
|
119
|
122
|
->toArray();
|
|
120
|
|
- $orderHuafeiUidList = array_column($orderHuafei, 'uid');
|
|
121
|
|
- $uidList = array_merge($uidList, $orderHuafeiUidList);
|
|
|
123
|
+ foreach ($orderHuafei as $order) {
|
|
|
124
|
+ $orderUidMap[$order['uid']][] = ['orderTable' => 'order_huafei', 'orderId' => $order['order_huafei_id'], 'orderSn' => $order['order_sn']];
|
|
|
125
|
+ }
|
|
|
126
|
+ // $orderHuafeiUidList = array_column($orderHuafei, 'uid');
|
|
|
127
|
+ // $uidList = array_merge($uidList, $orderHuafeiUidList);
|
|
122
|
128
|
|
|
123
|
129
|
// 三方订单
|
|
124
|
130
|
// 京东
|
|
|
@@ -126,41 +132,53 @@ class TaskPartnerProfits
|
|
126
|
132
|
->whereNotIn('uid', $removeUserIdList)
|
|
127
|
133
|
->where('status', '<>', 15) // 只要不是待支付的 即算是有效活跃度
|
|
128
|
134
|
->whereBetween("create_time", [$startTime, $endTime])
|
|
129
|
|
- ->field('order_jd_id, uid, status, create_time, price')
|
|
|
135
|
+ ->field('order_jd_id, uid, status, create_time, price, order_sn')
|
|
130
|
136
|
->select()
|
|
131
|
137
|
->toArray();
|
|
132
|
|
- $orderJdUidList = array_column($orderJd, 'uid');
|
|
133
|
|
- $uidList = array_merge($uidList, $orderJdUidList);
|
|
|
138
|
+ foreach ($orderJd as $order) {
|
|
|
139
|
+ $orderUidMap[$order['uid']][] = ['orderTable' => 'order_jd', 'orderId' => $order['order_jd_id'], 'orderSn' => $order['order_sn']];
|
|
|
140
|
+ }
|
|
|
141
|
+ // $orderJdUidList = array_column($orderJd, 'uid');
|
|
|
142
|
+ // $uidList = array_merge($uidList, $orderJdUidList);
|
|
134
|
143
|
// 淘宝
|
|
135
|
144
|
$orderTb = Db::name("order_tb")
|
|
136
|
145
|
->whereNotIn('uid', $removeUserIdList)
|
|
137
|
146
|
// ->where('status', '<>', 15) // 只要不是待支付的 即算是有效活跃度 不能明确状态信息
|
|
138
|
147
|
->whereBetween("create_time", [$startTime, $endTime])
|
|
139
|
|
- ->field('order_tb_id, uid, tk_status, create_time, pay_price')
|
|
|
148
|
+ ->field('order_tb_id, uid, tk_status, create_time, pay_price, order_sn')
|
|
140
|
149
|
->select()
|
|
141
|
150
|
->toArray();
|
|
142
|
|
- $orderTbUidList = array_column($orderTb, 'uid');
|
|
143
|
|
- $uidList = array_merge($uidList, $orderTbUidList);
|
|
|
151
|
+ foreach ($orderTb as $order) {
|
|
|
152
|
+ $orderUidMap[$order['uid']][] = ['orderTable' => 'order_tb', 'orderId' => $order['order_tb_id'], 'orderSn' => $order['order_sn']];
|
|
|
153
|
+ }
|
|
|
154
|
+ // $orderTbUidList = array_column($orderTb, 'uid');
|
|
|
155
|
+ // $uidList = array_merge($uidList, $orderTbUidList);
|
|
144
|
156
|
// 拼多多
|
|
145
|
157
|
$orderPdd = Db::name("order_pdd")
|
|
146
|
158
|
->whereNotIn('uid', $removeUserIdList)
|
|
147
|
159
|
->where('pin_order_status', '<>', -1) // 只要不是待支付的 即算是有效活跃度 不能明确状态信息
|
|
148
|
160
|
->whereBetween("group_time", [strtotime($startTime), strtotime($endTime)])
|
|
149
|
|
- ->field('order_pdd_id, uid, pin_order_status, create_time, pay_money')
|
|
|
161
|
+ ->field('order_pdd_id, uid, pin_order_status, create_time, pay_money, order_sn')
|
|
150
|
162
|
->select()
|
|
151
|
163
|
->toArray();
|
|
152
|
|
- $orderPddUidList = array_column($orderPdd, 'uid');
|
|
153
|
|
- $uidList = array_merge($uidList, $orderPddUidList);
|
|
|
164
|
+ foreach ($orderPdd as $order) {
|
|
|
165
|
+ $orderUidMap[$order['uid']][] = ['orderTable' => 'order_pdd', 'orderId' => $order['order_pdd_id'], 'orderSn' => $order['order_sn']];
|
|
|
166
|
+ }
|
|
|
167
|
+ // $orderPddUidList = array_column($orderPdd, 'uid');
|
|
|
168
|
+ // $uidList = array_merge($uidList, $orderPddUidList);
|
|
154
|
169
|
// 唯品会
|
|
155
|
170
|
$orderVip = Db::name("order_vip")
|
|
156
|
171
|
->whereNotIn('uid', $removeUserIdList)
|
|
157
|
172
|
->where('status', '<>', 0) // 只要不是待支付的 即算是有效活跃度 不能明确状态信息
|
|
158
|
173
|
->whereBetween("order_time", [strtotime($startTime), strtotime($endTime)])
|
|
159
|
|
- ->field('order_vip_id, uid, status, order_time, pay_money')
|
|
|
174
|
+ ->field('order_vip_id, uid, status, order_time, pay_money, order_sn')
|
|
160
|
175
|
->select()
|
|
161
|
176
|
->toArray();
|
|
162
|
|
- $orderVipUidList = array_column($orderVip, 'uid');
|
|
163
|
|
- $uidList = array_merge($uidList, $orderVipUidList);
|
|
|
177
|
+ foreach ($orderVip as $order) {
|
|
|
178
|
+ $orderUidMap[$order['uid']][] = ['orderTable' => 'order_vip', 'orderId' => $order['order_vip_id'], 'orderSn' => $order['order_sn']];
|
|
|
179
|
+ }
|
|
|
180
|
+ // $orderVipUidList = array_column($orderVip, 'uid');
|
|
|
181
|
+ // $uidList = array_merge($uidList, $orderVipUidList);
|
|
164
|
182
|
} catch (DataNotFoundException|ModelNotFoundException|DbException $e) {
|
|
165
|
183
|
Log::error('分红-获取下单用户列表失败:' . json_encode([
|
|
166
|
184
|
'error_message' => $e->getMessage(),
|
|
|
@@ -171,7 +189,7 @@ class TaskPartnerProfits
|
|
171
|
189
|
'trace' => $e->getTraceAsString()
|
|
172
|
190
|
], JSON_UNESCAPED_UNICODE));
|
|
173
|
191
|
}
|
|
174
|
|
- return $uidList;
|
|
|
192
|
+ return $orderUidMap;
|
|
175
|
193
|
}
|
|
176
|
194
|
|
|
177
|
195
|
public function getRedEnvelopeByTime($startTime, $endTime, $removeUserIdList = [])
|
|
|
@@ -415,8 +433,8 @@ class TaskPartnerProfits
|
|
415
|
433
|
|
|
416
|
434
|
// 6、记录日志
|
|
417
|
435
|
// 获取周期内所有符合条件的订单
|
|
418
|
|
- $feeUids = $this->getOrderUidListByTime($startTime, $endTime, $removeUserIdList);
|
|
419
|
|
-
|
|
|
436
|
+ $orderUidMap = $this->getOrderUidListByTime($startTime, $endTime, $removeUserIdList);
|
|
|
437
|
+ $feeUids = array_keys($orderUidMap);
|
|
420
|
438
|
|
|
421
|
439
|
// 7、执行分红
|
|
422
|
440
|
$testRecord = [];
|
|
|
@@ -479,6 +497,9 @@ class TaskPartnerProfits
|
|
479
|
497
|
continue;
|
|
480
|
498
|
}
|
|
481
|
499
|
$dividendLogEntity->setArrivalPoint(bcadd($dividendLogEntity->getArrivalPoint() ?: '0.00', $allAward, 2));
|
|
|
500
|
+ $arrivalInfo = $dividendLogEntity->getArrivalInfo() ?: [];
|
|
|
501
|
+ $arrivalInfo[$v] = $orderUidMap[$v];
|
|
|
502
|
+ $dividendLogEntity->setArrivalInfo($arrivalInfo);
|
|
482
|
503
|
|
|
483
|
504
|
if ($isTest == 0) {
|
|
484
|
505
|
$userdatassss = db::name("old_user_jbp")->where("id", $v)->find();
|