|
|
@@ -49,7 +49,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
/**
|
|
|
* @notes 拼团订单详情
|
|
|
*/
|
|
|
- public static function orderDetail($sn){
|
|
|
+ public static function orderDetail($sn,$url){
|
|
|
$detail = GroupOrder::where(['sn'=>$sn])->findOrEmpty()->toArray();
|
|
|
if(!empty($detail)){
|
|
|
|
|
|
@@ -64,11 +64,39 @@ class GroupActivityLogic extends BaseLogic
|
|
|
->order('a.create_time','asc')
|
|
|
->select()
|
|
|
->toArray();
|
|
|
+ foreach($detail['users'] as &$item){
|
|
|
+ $item['avatar'] = config('custom.cdn_url').$item['avatar'];
|
|
|
+ }
|
|
|
+ //如果开启了模拟成团,成团后,自动填补剩余人数
|
|
|
+ if ($detail['status'] == 1 && $detail['num'] < $detail['activity']['participant_num']) {
|
|
|
+ $num = $detail['activity']['participant_num'] - $detail['num'];
|
|
|
+ $robot = self::getRobot($num,$url);
|
|
|
+ $detail['users'] = array_merge($detail['users'],$robot);
|
|
|
+ }
|
|
|
$detail['timestamp'] = time();
|
|
|
}
|
|
|
return $detail;
|
|
|
}
|
|
|
|
|
|
+ //模拟用户
|
|
|
+ private static function getRobot($num,$url){
|
|
|
+
|
|
|
+ $nicknames = ["草莓啵啵熊","甜心小奶喵","清风吟月","浅梦逸云","静听花落","星辰浅语","云卷云舒间","花影舞流年","月色如水柔","暖阳","星辰","云舒","悠然","素心","晚晴","素心","清风","月白","静雅","不羁的灵魂","独行侠逸风","叛逆的旋律","冷傲冰爵","烈焰狂歌者","酷玩潮咖","神秘暗影侠","朋克精灵","暴走的音符","个性涂鸦师","墨染书香","青衫烟雨客","素笺淡墨痕","简逸","微光","清风","浅笑","逸梦","逸尘","浅念","澜影","默言","素笺","心屿","墨染","弦音","竹影","浅酌","暮雪","星辰","雨薇","凝霜","云岫","流萤","晨曦","浅夏","诗韵","逸云","浅唱"];
|
|
|
+ shuffle($nicknames);
|
|
|
+ $users = [];
|
|
|
+ $num = $num > 10 ? 10 : $num;
|
|
|
+ for ($i=0; $i < $num; $i++) {
|
|
|
+ $users[] = [
|
|
|
+ 'id' => 0,
|
|
|
+ 'user_id' => 0,
|
|
|
+ 'status' => 1,
|
|
|
+ 'avatar' => $url.'/uploads/group_activity/robot/0be648e5767f18d6af2dbb630c53ba28'.rand(1,33).'.jpg',
|
|
|
+ 'nickname' => $nicknames[$i],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ return $users;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @notes 用户订单详情
|
|
|
*/
|
|
|
@@ -106,33 +134,38 @@ class GroupActivityLogic extends BaseLogic
|
|
|
|
|
|
//校验拼团活动
|
|
|
if (empty($params['sn'])) {
|
|
|
- //新开团
|
|
|
- $activity = GroupActivity::findOrEmpty($params['group_activity_id']); //活动详情
|
|
|
- if ($activity->isEmpty()) {
|
|
|
- throw new Exception('拼团活动不存在!'); //拼团活动不存在
|
|
|
- }
|
|
|
- //校验活动时间
|
|
|
- if (time() < strtotime($activity['start_time'])) {
|
|
|
- throw new Exception('拼团活动未开始!'); //拼团活动未开始
|
|
|
- }
|
|
|
- if (time() > $activity['end_time']) {
|
|
|
- throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
|
+
|
|
|
+ //如果已有团单,直接加入
|
|
|
+ $groupOrder = GroupOrder::where(['group_activity_id' => $params['group_activity_id'],'user_id' => $params['user_id']])->findOrEmpty()->toArray();
|
|
|
+ if (!$groupOrder) {
|
|
|
+ //新开团
|
|
|
+ $activity = GroupActivity::findOrEmpty($params['group_activity_id']); //活动详情
|
|
|
+ if ($activity->isEmpty()) {
|
|
|
+ throw new Exception('拼团活动不存在!'); //拼团活动不存在
|
|
|
+ }
|
|
|
+ //校验活动时间
|
|
|
+ if (time() < strtotime($activity['start_time'])) {
|
|
|
+ throw new Exception('拼团活动未开始!'); //拼团活动未开始
|
|
|
+ }
|
|
|
+ if (time() > $activity['end_time']) {
|
|
|
+ throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
|
+ }
|
|
|
+
|
|
|
+ $order_amount = explode(",",$activity['price'])[0];
|
|
|
+ //生成拼团单
|
|
|
+ $data = [
|
|
|
+ 'sn' => generate_sn(GroupOrder::class, 'sn'),
|
|
|
+ 'group_activity_id' => $params['group_activity_id'],
|
|
|
+ 'equity_id' => $activity['equity_id'],
|
|
|
+ 'goods_id' => EquityConfig::where('id', $activity['equity_id'])->value('goods_id'),
|
|
|
+ 'user_id' => $params['user_id'],
|
|
|
+ 'origin_price' => $activity['origin_price'],
|
|
|
+ 'price' => $order_amount,
|
|
|
+ 'create_time' => time(),
|
|
|
+ 'end_time' => time() + $activity['form_time_limit'] * 60 * 60,
|
|
|
+ ];
|
|
|
+ $group_order = GroupOrder::create($data);
|
|
|
}
|
|
|
-
|
|
|
- $order_amount = explode(",",$activity['price'])[0];
|
|
|
- //生成拼团单
|
|
|
- $data = [
|
|
|
- 'sn' => generate_sn(GroupOrder::class, 'sn'),
|
|
|
- 'group_activity_id' => $params['group_activity_id'],
|
|
|
- 'equity_id' => $activity['equity_id'],
|
|
|
- 'goods_id' => EquityConfig::where('id', $activity['equity_id'])->value('goods_id'),
|
|
|
- 'user_id' => $params['user_id'],
|
|
|
- 'origin_price' => $activity['origin_price'],
|
|
|
- 'price' => $order_amount,
|
|
|
- 'create_time' => time(),
|
|
|
- 'end_time' => time() + $activity['form_time_limit'] * 60 * 60,
|
|
|
- ];
|
|
|
- $group_order = GroupOrder::create($data);
|
|
|
} else {
|
|
|
//加入已开的拼团单
|
|
|
$group_order = GroupOrder::where(['group_activity_id' => $params['group_activity_id'], 'sn' => $params['sn']])->findOrEmpty()->toArray();
|