|
|
@@ -92,9 +92,10 @@ class GroupActivityLogic extends BaseLogic
|
|
|
}
|
|
|
//如果开启了模拟成团,成团后,自动填补剩余人数
|
|
|
if ($detail['status'] == 1 && $detail['num'] < $detail['activity']['participant_num']) {
|
|
|
- $num = $detail['activity']['participant_num'] - $detail['num'];
|
|
|
+ $num = $detail['activity']['participant_num'][0] - $detail['num'];
|
|
|
$robot = self::getRobot($num,$url);
|
|
|
$detail['users'] = array_merge($detail['users'],$robot);
|
|
|
+ $detail['num'] = (int)$detail['activity']['participant_num'][0];
|
|
|
}
|
|
|
$detail['timestamp'] = time();
|
|
|
}
|
|
|
@@ -113,7 +114,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
'id' => 0,
|
|
|
'user_id' => 0,
|
|
|
'status' => 1,
|
|
|
- 'avatar' => $url.'/uploads/group_activity/robot/0be648e5767f18d6af2dbb630c53ba28'.rand(1,33).'.jpg',
|
|
|
+ 'avatar' => 'https://cdnweixiu.kyjlkj.com/resource/image/adminapi/default/default_avatar.png',
|
|
|
'nickname' => $nicknames[$i],
|
|
|
];
|
|
|
}
|
|
|
@@ -124,7 +125,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
* @notes 用户订单详情
|
|
|
*/
|
|
|
public static function userOrderDetail($order_id,$userId){
|
|
|
- $detail = GroupUserOrder::with('groupOrder')->where(['id'=>$order_id, 'user_id' => $userId])->field('id,sn,status,pay_way,pay_time,pay_status,refund_status,remark,create_time,group_order_id,group_activity_id,user_equity_id,area,address')->findOrEmpty()->toArray();
|
|
|
+ $detail = GroupUserOrder::with('groupOrder')->where(['id'=>$order_id, 'user_id' => $userId])->field('id,mobile,sn,status,pay_way,pay_time,pay_status,refund_status,remark,create_time,group_order_id,group_activity_id,user_equity_id,area,address')->findOrEmpty()->toArray();
|
|
|
if ($detail) {
|
|
|
$detail['is_refund'] = 0;
|
|
|
if ($detail['pay_status'] == 1 && $detail['refund_status'] == 0) {
|
|
|
@@ -154,26 +155,27 @@ class GroupActivityLogic extends BaseLogic
|
|
|
if ($userOrder && $userOrder['pay_status'] == 1) {
|
|
|
throw new Exception('您已参加过该活动!');
|
|
|
}
|
|
|
+
|
|
|
+ $activity = GroupActivity::getDetail($params['group_activity_id']); //活动详情
|
|
|
+ if (!$activity) {
|
|
|
+ throw new Exception('拼团活动不存在!'); //拼团活动不存在
|
|
|
+ }
|
|
|
+ //校验活动时间
|
|
|
+ if (time() < strtotime($activity['start_time'])) {
|
|
|
+ throw new Exception('拼团活动未开始!'); //拼团活动未开始
|
|
|
+ }
|
|
|
+ if (time() > $activity['end_time']) {
|
|
|
+ throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
|
+ }
|
|
|
+ $order_amount = $activity['price'][0];
|
|
|
|
|
|
- //校验拼团活动
|
|
|
- if (empty($params['order_id'])) {
|
|
|
- //新开团
|
|
|
- $activity = GroupActivity::getDetail($params['group_activity_id']); //活动详情
|
|
|
- if (!$activity) {
|
|
|
- throw new Exception('拼团活动不存在!'); //拼团活动不存在
|
|
|
- }
|
|
|
- //校验活动时间
|
|
|
- if (time() < strtotime($activity['start_time'])) {
|
|
|
- throw new Exception('拼团活动未开始!'); //拼团活动未开始
|
|
|
- }
|
|
|
- if (time() > $activity['end_time']) {
|
|
|
- throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
|
- }
|
|
|
-
|
|
|
- $order_amount = $activity['price'][0];
|
|
|
+ //加入已开的拼团单
|
|
|
+ $groupOrder = GroupOrder::where(['group_activity_id' => $params['group_activity_id'], 'status' => 0])->where('num','<',100)->findOrEmpty()->toArray();
|
|
|
+ if (empty($groupOrder)) {
|
|
|
//生成拼团单
|
|
|
$data = [
|
|
|
'sn' => generate_sn(GroupOrder::class, 'sn'),
|
|
|
+ 'group_category_id' => $activity['group_category_id'],
|
|
|
'group_activity_id' => $params['group_activity_id'],
|
|
|
'equity_id' => $activity['equity_id'],
|
|
|
'goods_id' => EquityConfig::where('id', $activity['equity_id'])->value('goods_id'),
|
|
|
@@ -181,42 +183,15 @@ class GroupActivityLogic extends BaseLogic
|
|
|
'origin_price' => $activity['origin_price'],
|
|
|
'price' => $order_amount,
|
|
|
'create_time' => time(),
|
|
|
- 'end_time' => time() + $activity['form_time_limit'] * 60 * 60,
|
|
|
+ 'end_time' => $activity['end_time'] //time() + $activity['form_time_limit'] * 60 * 60,
|
|
|
];
|
|
|
-
|
|
|
- //如果已有数据,直接覆盖
|
|
|
- $groupOrder = GroupOrder::where(['group_activity_id' => $params['group_activity_id'],'user_id' => $params['user_id']])->findOrEmpty()->toArray();
|
|
|
- if (!$groupOrder) {
|
|
|
- $groupOrder = GroupOrder::create($data);
|
|
|
- } else {
|
|
|
- GroupOrder::where('id',$groupOrder['id'])->update($data);
|
|
|
- $data['id'] = $groupOrder['id'];
|
|
|
- $groupOrder = $data;
|
|
|
- }
|
|
|
- } else {
|
|
|
- //加入已开的拼团单
|
|
|
- $groupOrder = GroupOrder::where(['group_activity_id' => $params['group_activity_id'], 'id' => $params['order_id']])->findOrEmpty()->toArray();
|
|
|
- if (empty($groupOrder)) {
|
|
|
- throw new Exception('拼团订单不存在!'); //拼团活动不存在
|
|
|
- }
|
|
|
- if ($groupOrder['num'] >= 100) {
|
|
|
- throw new Exception('拼团人数已满!'); //拼团人数已满
|
|
|
- }
|
|
|
- if ($groupOrder['status'] == 1 ) {
|
|
|
- throw new Exception('活动已成团');
|
|
|
- }
|
|
|
- if ($groupOrder['status'] >= 1 ) {
|
|
|
- throw new Exception('拼团已取消!');
|
|
|
- }
|
|
|
- if ($groupOrder['end_time'] < time()) {
|
|
|
- throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
|
- }
|
|
|
- $order_amount = $groupOrder['price'];
|
|
|
+ $groupOrder = GroupOrder::create($data);
|
|
|
}
|
|
|
|
|
|
//生成用户拼单订单
|
|
|
$data = [
|
|
|
'sn' => generate_sn(groupUserOrder::class, 'sn'),
|
|
|
+ 'mobile' => $params['mobile'],
|
|
|
'group_order_id' => $groupOrder['id'],
|
|
|
'group_activity_id' => $params['group_activity_id'],
|
|
|
'user_id' => $params['user_id'],
|
|
|
@@ -395,8 +370,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
$response = (new WeChatMnpService())->getUnlimitedQRCode(
|
|
|
'page='.$scene_page.'&id='.$params['id'].'&oid='.$params['order_id']."&cid=".$params['category_id'],
|
|
|
$mnp_page,
|
|
|
- 'trial',
|
|
|
- //env('miniprogram.mini_env_version', 'release'),
|
|
|
+ env('miniprogram.mini_env_version', 'release'),
|
|
|
false
|
|
|
);
|
|
|
$qrcode = $response->getContent();
|