123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- declare (strict_types=1);
- namespace app\api\controller\groupbuylb;
- use app\api\model\Goods as GoodsModel;
- use app\api\model\User as UserModel;
- use app\api\service\User as UserService;
- use app\common\enum\order\OrderStatus;
- use app\common\enum\order\PayType as OrderPayTypeEnum;
- use app\common\library\helper;
- use app\common\model\BrowseRecords;
- use app\api\controller\Controller;
- use app\api\model\groupbuylb\GroupBuyLbActivity;
- use app\api\model\groupbuylb\GroupBuyLbGoods;
- use app\api\model\groupbuylb\GroupBuyLbHelp;
- use app\api\model\groupbuylb\GroupBuyLbJoin;
- use think\facade\Db;
- use app\api\model\order\GroupBuyLbPay;
- use app\common\service\goods\source\Factory as StockFactory;
- use app\common\enum\order\OrderSource as OrderSourceEnum;
- /**
- * 活动
- * Class service
- * @package app\api\controller\user\order
- */
- class Activity extends Controller
- {
-
- //如果真有拼团不成功
- public function toCheckPtFail(){
- $now = Date("Y-m-d H:i:s",time());
- $joinList = GroupBuyLbJoin::where('status',0)->where('end_time','<',$now)->select();
- foreach($joinList as $row){
- if($row->people_count>$row->help_count){
- $join = GroupBuyLbJoin::where('id',$row->id)->lock('for update')->find();
- $join->status = 2;
- $join->save();
- //通知
- if($join->is_virtual==0){
- (new GroupBuyLbPay)->activityEnd($join->user_id,$join->id);
- }else{
- (new GroupBuyLbPay)->virtualActivityEnd($join->user_id,$join->id);
- }
-
- }
- }
- }
- //测试回退库存
- public function testStock(){
-
- $goods_id = 10137;
- $goods_sku_id = 0;
- $total_num = 1;
- // $res = StockFactory::getFactory(OrderSourceEnum::GROUPBUY)->backGoodsSkuStockExpress($goods_id,$goods_sku_id,$total_num);
- // $res = StockFactory::getFactory(OrderSourceEnum::GROUPBUY)->updateStockSalesExpress($goods_id,$total_num);
- // var_dump($res);
- }
- public function cancel(int $order_id){
- $user = UserService::getCurrentLoginUser(true);
- Db::startTrans();
- $help = GroupBuyLbHelp::where("pay_state",0)->where('
- id',$order_id)->find();
- $k = 0;
- if($help){
- $help->pay_state = 2;
- $help->save();
- if($help->rice_card_id > 0){
- riceCardReturn($help->rice_card_id,$help->rice_card_money,$help->order_no,$help->pay_money);
- }
- $k++;
- $join = GroupBuyLbJoin::where('id',$help->join_id)->find();
- if($join){ //说明是团长发起的,但没有付款
- if($join->help_count == 0){
- $join->end_time = Date("Y-m-d H:i:s",time());
- $join->status = 3;
- $join->save();
- $k++;
- }
- }
- $groupgoods = GroupBuyLbGoods::where('group_buy_lb_activity_id',$help->group_buy_activity_id)->find();
- //取消订单 回退库存
- if($groupgoods){
- StockFactory::getFactory(OrderSourceEnum::GROUPBUYLB)->backGoodsSkuStockExpress($groupgoods->goods_id,$groupgoods->goods_sku_id,$help->goods_num);
- }
- }
- Db::commit();
- echo 'success:'.$k;
- }
- public function headPicture(){
- $host = env('APP_URL');
- $rel = rand(1,16);
- $url = $host.'/uploads/image/'.$rel.'.jpeg';
- return $url;
- }
- //自动补位逻辑
- public function toIncHelp(){
- $nts = time() + 3600;
- $now = Date("Y-m-d H:i:s",time());
- $time = Date("Y-m-d H:i:s",$nts);
- $list = GroupBuyLbJoin::where('status','=',0)->where('end_time','>',$now)->where('end_time','<',$time)->where('help_count','>',0)->select();
- $k = 0;
- foreach($list as $row){
- $group_buy_lb_activity_id = $row['group_buy_lb_activity_id'];
- $activity = GroupBuyLbActivity::where('id',$group_buy_lb_activity_id)->find();
- //这一拼团的真实付费用户有几个
- $real_pay_cnt = GroupBuyLbHelp::where('join_id',$row['id'])->where('pay_state',1)->where("fans",0)->where('is_virtual_join_user',0)->count();
- if($activity->tb_cnt>=0&&$real_pay_cnt>=$activity->tb_cnt){
- if($row['people_count']>$row['help_count']){
- $k++;
- //开始补位
- // Db::startTrans();
- $join = GroupBuyLbJoin::where('id',$row['id'])->find();
- $help['group_buy_lb_activity_id'] = $row['group_buy_lb_activity_id'];
- $help['join_id'] = $row['id'];
- $help['user_id'] = 0;
- $help['pay_state'] = 1;
- $help['pay_time'] = time();
- $help['order_id'] = -1;//补位的统一用-1
- $help['fans'] = 1;
- $help['goods_num'] = 0;
- $help['head_picture'] = $this->headPicture();
- $model = new GroupBuyLbHelp;
- $model->save($help);
- $join->help_count += 1; // 拼团人数+1
- $flag = false;
- //拼团人数够了
- if($join->help_count==$join->people_count){
- $flag = true;
- }
- $join->save();
- if($flag){ //成功了话写真实订单
- $pay = new GroupBuyLbPay;
- $pay->ptSuccessNotify($join->id);
- // Db::commit();
- }
- if($flag){
- $pay2 = new GroupBuyLbPay;
- $pay2->receiveCoupon($join->user_id,$join->group_buy_lb_activity_id);
- }
-
- }
- }
- }
- echo 'success:k:'.$k;
- }
- /**
- * 拼团裂变每小时自动补位逻辑zq
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function toIncHelpHourly(){
- $nts = time() - 600;
- $nts1 = time() - 2400;
- $now = Date("Y-m-d H:i:s",time());
- /* $list = GroupBuyLbJoin::where('status','=',0)->where('start_time','>',$now)
- ->where('end_time','<',$now)->where('help_count','>',0)
- ->select();*/
- $list = GroupBuyLbJoin::where('status','=',0)
- ->where('create_time','<=',$nts)
- //->where('create_time','>=',$nts1)
- ->where('end_time','>=',$now)
- ->where('help_count','>',0)
- ->order('id desc')
- ->select();
- //dd($list->toArray());
- $k = 0;
- $this->toIncHelpCommonTwo($list);
- echo 'success hourly:k:'.$k;
- }
- private function toIncHelpCommonTwo($list){
- $model = new GroupBuyLbHelp;
- $time = time();
- foreach($list as $row){
- $helps = [];
- $group_buy_lb_activity_id = $row['group_buy_lb_activity_id'];
- $activity = GroupBuyLbActivity::where('id',$group_buy_lb_activity_id)->where('need_fill_order',1)->find();
- if (!$activity){
- continue;
- }
- //这一拼团的真实付费用户有几个
- $real_pay_cnt = GroupBuyLbHelp::where('join_id',$row['id'])->where('pay_state',1)->where('user_id','>',0)->count();
- //dd($real_pay_cnt);
- if($real_pay_cnt<2){
- if($row['people_count']>$row['help_count']){
- // Db::startTrans();
- $join = GroupBuyLbJoin::where('id',$row['id'])->find();
- $help['group_buy_lb_activity_id'] = $row['group_buy_lb_activity_id'];
- $help['join_id'] = $row['id'];
- $help['user_id'] = 0;
- $help['pay_state'] = 1;
- $help['pay_time'] = time();
- $help['order_id'] = -1;//补位的统一用-1
- $help['fans'] = 1;
- $help['goods_num'] = 0;
- $help['create_time'] = $time;
- $help['update_time'] = $time;
- $help['head_picture'] = $this->headPicture();
- $helps[] = $help;
- if ($row['people_count'] - $row['help_count'] >= 2){//空位大于=2人补两个,其余补一个
- //$k++;
- //开始补位
- $help1['group_buy_lb_activity_id'] = $row['group_buy_lb_activity_id'];
- $help1['join_id'] = $row['id'];
- $help1['user_id'] = 0;
- $help1['pay_state'] = 1;
- $help1['pay_time'] = time();
- $help1['order_id'] = -1;//补位的统一用-1
- $help1['fans'] = 1;
- $help1['goods_num'] = 0;
- $help1['create_time'] = $time;
- $help1['update_time'] = $time;
- $help1['head_picture'] = $this->headPicture();
- $helps[] = $help1;
- $join->help_count = $join->help_count + 2; // 拼团人数+1
- }else{
- $join->help_count = $join->help_count + 1;
- }
- $model->insertAll($helps);
- $flag = false;
- if ($join->help_count >= $join->people_count){
- $flag = true;
- $join->status = 1;
- }
- if($flag){ //成功了话写真实订单
- $pay = new GroupBuyLbPay;
- $pay->ptSuccessNotify($join->id);
- $pay->receiveCoupon($join->user_id,$join->group_buy_lb_activity_id);
- }
- $join->save();
- // Db::commit();
- }
- }
- }
- }
- /* private function toIncHelpCommon($list){
- foreach($list as $row){
- $group_buy_lb_activity_id = $row['group_buy_lb_activity_id'];
- $activity = GroupBuyLbActivity::where('id',$group_buy_lb_activity_id)->find();
- if (!$activity){
- continue;
- }
- //这一拼团的真实付费用户有几个
- $real_pay_cnt = GroupBuyLbHelp::where('join_id',$row['id'])->where('pay_state',1)->where("fans",0)->where('is_virtual_join_user',0)->count();
- if($activity->tb_cnt>=0&&$real_pay_cnt>=$activity->tb_cnt){
- if($row['people_count']>$row['help_count']){
- //$k++;
- //开始补位
- Db::startTrans();
- $join = GroupBuyLbJoin::where('id',$row['id'])->lock('for update')->find();
- $help['group_buy_lb_activity_id'] = $row['group_buy_lb_activity_id'];
- $help['join_id'] = $row['id'];
- $help['user_id'] = 0;
- $help['pay_state'] = 1;
- $help['pay_time'] = time();
- $help['order_id'] = -1;//补位的统一用-1
- $help['fans'] = 1;
- $help['goods_num'] = 0;
- $help['head_picture'] = $this->headPicture();
- $model = new GroupBuyLbHelp;
- $model->save($help);
- $join->help_count += 1; // 拼团人数+1
- //$flag = false;
- //拼团人数够了
- if($join->help_count==$join->people_count){
- $join->status = 1;
- }
- $join->save();
- Db::commit();
- }
- }
- }
- }*/
- //订单处理
- public function orderDeal(){
- $this->toIncHelp(); //自动补单
- $this->cancelOrder();//取消未支付订单
- $this->toCheckPtFail();//拼团没成功的 join status =2
- }
- //取消订单
- public function cancelOrder(){
-
- $list = GroupBuyLbHelp::where("pay_state",0)->limit(5)->order(['create_time'=>'asc'])->field('id')->select();
- $now = time();
- $k = 0;
- foreach($list as $row){
- Db::startTrans();
- $one = GroupBuyLbHelp::where('id',$row['id'])->lock('for update')->find();
- $ts = time()-strtotime($one->create_time);
- if($ts>60){ //超过1分钟没支付
- $order_no = $one->order_no;
- $one->pay_state = 2;
- $one->save();
- //有米卡支付的话
- if($one->rice_card_id > 0){
- $this->riceCardReturn($one->rice_card_id,$one->rice_card_money,$one->order_no,$one->pay_money);
- }
-
- $join = GroupBuyLbJoin::where('id',$one->join_id)->find();
- if($join){ //说明是团长发起的,但没有付款
- if($join->help_count == 0){
- $join->end_time = Date("Y-m-d H:i:s",time());
- $join->status = 3;
- $join->save();
- }
- }
- $groupgoods = GroupBuyLbGoods::where('group_buy_lb_activity_id',$one->group_buy_lb_activity_id)->find();
- //取消订单 回退库存
- if($groupgoods){
- StockFactory::getFactory(OrderSourceEnum::GROUPBUYLB)->backGoodsSkuStockExpress($groupgoods->goods_id,$groupgoods->goods_sku_id,$one->goods_num);
- }
- $k++;
- }
- Db::commit();
- }
- echo 'success:k:'.$k;
- }
- public function testWx(){
- $order_no = 'ysc2022041698489710';
- $result = $this->reqWx($order_no);
- echo $result;
- }
- //回调微信
- public function reqWx($order_no){
- $url = 'https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/'.$order_no.'?mchid=1615908904';
- $data['mchid'] = '1615908904';
- $data['out_trade_no'] = $order_no;
-
- $result = curl_post($url,json_encode($data));
- return $result;
- }
- public function getActivity($activity_id){
- $activity = GroupBuyLbActivity::where("id",$activity_id)->find();
- if(empty($activity)){
- return false;
- }
- $now = Date("Y-m-d H:i:s",time());
- if($now > $activity->end_time){
- return false;
- }
- if($activity->start_time>$now){
- return false;
- }
- if($activity->audit_status!=1||$activity->status!=1){
- return false;
- }
- return $activity;
- }
- /**
- * 获取商品详情
- * @param int $id
- * @return array
- */
- public function detail($activity_id =0)
- {
- if(empty($activity_id)){
- $activity_id = 5;
- }
-
- $activity = $this->getActivity($activity_id);
- if(!$activity){
- return $this->renderError("活动已结束");
- }
- $groupgoods = GroupBuyLbGoods::where('group_buy_lb_activity_id',$activity_id)->find();
- $id = $groupgoods->goods_id;
- $addressId = 0;
- $staffUserId = 0;
- $user = UserService::getCurrentLoginUser(false);
- $user_id = $user->user_id??0;
- // 商品详情
- $model = new GoodsModel;
- $goodsInfo = $model->getDetails($id, $user, $addressId, $staffUserId);
- $goodsInfo->inc('view_num', 1)->update();
- if ($user) {
- $browseRecord = BrowseRecords::whereDay('create_time')->where(['user_id' =>$user_id, 'source_type' => 1, 'source_id' => $id])->find();
- if (!$browseRecord) {
- BrowseRecords::create([
- 'user_id' => $user_id,
- 'source_type' => 1,
- 'source_id' => $id
- ]);
- $goodsInfo->inc('view_distinct_num', 1)->update();
- } else {
- $browseRecord->update_time = time();
- $browseRecord->save();
- }
- }
- $goods = $goodsInfo->toArray();
- $goods['goods_sku_id'] = $groupgoods->goods_sku_id;
- $data['goods'] = $goods;
- $help = GroupBuyLbHelp::where("group_buy_lb_activity_id",$activity_id)->where('user_id',$user_id)->where('pay_state',1)->where('order_id',0)->find();
- $helpdata = null;
- if($help){
- $thatjoin = GroupBuyLbJoin::where('id',$help->join_id)->where('status','in',[0,1])->find();
- }
- if($help&&$thatjoin){
- $helpdata['join_id'] = $help->join_id;
- $helpdata['pay_state'] = $help->pay_state;
- $helpdata['activity_id'] = $help->group_buy_lb_activity_id;
- }
- $now = Date("Y-m-d H:i:s",time());
- $joinList = GroupBuyLbJoin::where("status",0)->with(['user'=>['avatar']])->where('group_buy_lb_activity_id',$activity_id)->where('end_time','>',$now)->order(['help_count'=>'desc'])->limit(7)->select();
- $toPtList = [];//去拼团列表
- if(!empty($joinList)){
- foreach($joinList as $row){
- $toPtList[] = [
- 'hc_count' =>$row['hc_count'],
- 'head_picture'=>$row['user']['avatar']['preview_url']??'',
- 'nick_name'=>$row['user']['nick_name']??'',
- 'user_id'=>$row['user_id'],
- 'join_id'=>$row['id']
- ];
- }
- }
-
- $data['groupbuy'] = ['fmt_end_time'=> $activity->fmt_end_time,
- 'group_price'=> $groupgoods->group_price,
- 'people_count'=>$activity->people_count,
- 'share_copy_writing'=>$activity->share_copy_writing,
- 'share_title'=>$activity->share_title,
- 'help'=> $helpdata,
- 'to_pt_list'=>$toPtList
- ];
-
- return $this->renderSuccess(compact('data'));
- }
- //分享详情(拼团详情团长/团员)
- public function joininfo(int $join_id){
-
- $user = UserService::getCurrentLoginUser(false);
- $user_id = $user->user_id??0;
- $joinInfo = GroupBuyLbJoin::with(['help'])->where("id",$join_id)->find();
- $join = $joinInfo->toArray();
- // var_dump($user_id);
- // die();
- if(empty($join)){
- return $this->renderError("找不到记录");
- }
- $groupgoods = GroupBuyLbGoods::where('group_buy_lb_activity_id',$join['group_buy_lb_activity_id'])->find();
- if(empty($groupgoods)){
- return $this->renderError("找不到商品");
- }
- $id = $groupgoods->goods_id;
- $addressId = 0;
- $staffUserId =0;
- $model = new GoodsModel;
- $goodsInfo = $model->getDetails($id, $user, $addressId, $staffUserId);
- $join['hc_count'] = $joinInfo->hc_count;
- $join['fmt_end_time'] = $joinInfo->fmt_end_time;
- if($user){
- $join['is_self'] = $user->user_id==$join['user_id']?true:false;
- }else{
- $join['is_self'] = false;
- }
-
- $cur_user_help = GroupBuyLbHelp::where('user_id',$user_id)->where('join_id',$join_id)->field("user_id,pay_state,order_id")->order(['id'=>'desc'])->find();
- $join['cur_user_have_help'] = $cur_user_help;
- $help = $join['help'];
- $newhelp = [];
- $k = 0;
- if(!empty($help)){
- foreach($help as $row){
- $newhelp[] = ['head_picture'=>$row['head_picture'],
- 'pay_state'=>$row['pay_state'],'is_tz'=>$row['user_id']==$join['user_id']?true:false
- ];
- }
- }
- $join['help'] = $newhelp;
- //优惠券
- $activity = GroupBuyLbActivity::with(['coupon'])->find($join['group_buy_lb_activity_id']);
- $share_title = $activity['share_title'];
- if($activity->an_share_title==1){
- $share_title = ($user->nick_name??0).''.$share_title;
- }
- $join['share_title'] = $share_title;
- $data['join'] = $join;
- $goods = $goodsInfo->toArray();
-
- $goods['goods_sku_id'] = $groupgoods->goods_sku_id;
- $data['goods'] = $goods;
- //优惠券
- $activity = GroupBuyLbActivity::with(['coupon'])->find($join['group_buy_lb_activity_id']);
- // $data['coupon'] = $activity['coupon']??null;
- $coupon_price_total = 0;
- if($activity['coupon']){
- foreach ($activity['coupon'] as $coupon){
- $coupon_price_total += $coupon['reduce_price'];
- }
- }
- $data['coupon_price_total'] = $coupon_price_total;
- $data['groupbuy'] = ['group_price'=> $groupgoods->group_price];
- return $this->renderSuccess(compact('data'));
- }
- //我的拼团列表
- public function mylist(){
- $user = UserService::getCurrentLoginUser();
- $user_id = $user->user_id??0;
- $model = new GroupBuyLbHelp;
- $list = $model->getList($user_id);
- return $this->renderSuccess(compact('list'));
- }
- /**
- * 发起虚拟拼团
- * @param $join_id
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- * @author: zjwhust
- * @Time: 2022/6/11 11:27
- */
- public function addJoin($join_id){
- $user = UserService::getCurrentLoginUser(true);
- $user_id = $user->user_id??0;
- // dd($join_id);
- $join = GroupBuyLbJoin::find($join_id);
- if(!$join){
- return $this->renderError("拼团找不到");
- }
- $lbhelp = GroupBuyLbHelp::where(['join_id'=>$join_id,'user_id'=>$user_id])->find();
- if(!$lbhelp){
- return $this->renderError('找不到参与的团');
- }
- if($lbhelp['is_virtual_join_user']==1){
- return $this->renderError('团长不能再次发起免费团');
- }
- if($lbhelp['virtual_join_id']>0){
- return $this->renderError('已经发起过免费团');
- }
- //发起拼团
- $activity = GroupBuyLbActivity::where("id",$join['group_buy_lb_activity_id'])->find();
- if($activity['start_time']>date('Y-m-d H:i:s') || $activity['end_time']<date('Y-m-d H:i:s')){
- return $this->renderError('拼团活动已经结束了');
- }
- Db::startTrans();
- try{
- $share_title = $activity['share_title'];
- if($activity->an_share_title==1){
- $share_title = $user->nick_name.''.$share_title;
- }
- //写入发团记录
- $join = [
- 'group_buy_lb_activity_id' => $join['group_buy_lb_activity_id'],
- 'people_count'=> $activity['people_count'],
- 'help_count'=> 1, //虚拟团长也算一个人
- 'end_time' => Date("Y-m-d H:i:s",time() + $activity['during_time']*60*60),
- 'share_title'=>$share_title,
- 'share_copy_writing'=>$activity['share_copy_writing'],
- 'create_time'=>time(),
- 'update_time'=>time(),
- 'user_id'=>$user_id,
- 'is_virtual'=>1 //虚拟团
- ];
- $new_join = GroupBuyLbJoin::create($join);
- //写入参团记录
- $help = [
- 'user_id' => $user_id,
- 'order_no' => '',
- 'group_buy_lb_activity_id' => $join['group_buy_lb_activity_id'],
- 'join_id'=>$new_join['id'],
- 'goods_num' =>0,
- 'head_picture'=>$user->avatar['preview_url']??'',
- 'rice_card_id'=>0,
- 'rice_card_money'=>0.00,
- 'rice_card_express_money'=>0.00,
- 'pay_money'=> 0.00,
- 'express_money'=> 0.00,
- 'order_money'=> 0.00,
- 'provider_ids'=>'',
- 'good_rice_card_money'=>0,
- 'is_virtual_join_user'=>1, //是虚拟团长
- 'virtual_join_id'=>0,//发起的虚拟团id
- 'pay_state'=>1,//默认写成已支付,因为不需要真的下单
- 'fans'=>1,//0真实用户 1假用户
- 'user_name'=>'',
- 'phone'=>'',
- 'province_id'=>0,
- 'city_id'=>0,
- 'detail'=>'',
- 'pay_type'=>OrderPayTypeEnum::WECHAT,
- ];
- GroupBuyLbHelp::create($help);
- //上一个团员的参与记录写入发起的虚拟团id
- $lbhelp->virtual_join_id = $join_id;
- $lbhelp->save();
- //如果一人成团直接成功
- if($activity['people_count']==1){
- $GroupBuyLbPay = new GroupBuyLbPay();
- //拼团成功,写入订单逻辑
- $GroupBuyLbPay->ptSuccessNotify($new_join['id']);
- //发放优惠
- if ($user_id > 0 ){
- $GroupBuyLbPay->receiveCoupon($user_id,$join['group_buy_lb_activity_id']);
- }
- }
- Db::commit();
- return $this->renderSuccess(['join_id'=>$new_join['id']]);
- } catch (\Exception $e) {
- Db::rollback();
- return $this->renderError('提交失败');
- }
- }
- }
|