From 6dc1aa11e086aa7d253bb22789fd432460c30386 Mon Sep 17 00:00:00 2001 From: xucong <850806214@qq.com> Date: Thu, 15 May 2025 16:01:26 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=8F=90=E4=BA=A4=E7=BC=BA=E5=A4=B1=E7=9A=84?= =?UTF-8?q?=E4=B8=9C=E8=A5=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/CouponController.php | 92 ++++ app/api/logic/CouponLogic.php | 576 ++++++++++++++++++++++++ app/api/logic/UserLogic.php | 2 +- app/api/model/Coupon.php | 44 ++ app/common/logic/CouponLogic.php | 96 ++++ 5 files changed, 809 insertions(+), 1 deletion(-) create mode 100644 app/api/controller/CouponController.php create mode 100644 app/api/logic/CouponLogic.php create mode 100644 app/api/model/Coupon.php create mode 100644 app/common/logic/CouponLogic.php diff --git a/app/api/controller/CouponController.php b/app/api/controller/CouponController.php new file mode 100644 index 0000000..72643e6 --- /dev/null +++ b/app/api/controller/CouponController.php @@ -0,0 +1,92 @@ +userId); + return $this->success('获取成功',$coupon_list); + } + /** + * note 商品详情获取优惠券 + * create_time 2020/10/22 18:14 + */ + public function getGoodsCoupon(){ + $id = $this->request->get('id'); + $coupon_list = []; + if($id){ + $coupon_list = CouponLogic::getGoodsCoupon($this->user_id,$id); + } + $this->_success('',$coupon_list); + } + + /** + * note 领取优惠券 + * create_time 2020/10/22 12:06 + */ + public function getCoupon(){ + $coupon_id = $this->request->post('id'); + $result = $this->validate(['id'=>$coupon_id,'user_id'=>$this->user_id],'app\api\validate\GetCoupon'); + if($result === true){ + $result = CouponLogic::userGetCoupon($coupon_id,$this->user_id); + if($result == true){ + $this->_success('领取成功',''); + } + $result = '领取失败'; + } + $this->_error($result); + } + /** + * note 我的优惠券 + * create_time 2020/10/26 9:37 + */ + public function myCoupon(){ + $type = $this->request->get('type',1); + $coupon_list = CouponLogic::getMyCouponList($this->user_id,$type); + $this->_success('获取成功',$coupon_list); + + } + /** + * note 下单获取优惠券 + * create_time 2020/10/28 11:06 + */ + public function orderCoupon(){ + $goods = $this->request->post('goods'); + $data = CouponLogic::orderCoupon($goods,$this->user_id); + $this->_success('获取成功',$data); + } + /** + * note 注册赠送优惠券 + * create_time 2020/12/4 10:29 + */ + public function registerSendCoupon(){ + $list = CouponLogic::registerSendCoupon($this->user_id); + $this->_success('获取成功',$list); + } + +} \ No newline at end of file diff --git a/app/api/logic/CouponLogic.php b/app/api/logic/CouponLogic.php new file mode 100644 index 0000000..8d223c6 --- /dev/null +++ b/app/api/logic/CouponLogic.php @@ -0,0 +1,576 @@ +=',$now]; + + $coupon_list = $coupon + ->where($where) + ->order('id desc') + ->select(); + $user_coupon = []; + if($user_id){ + $user_coupon = Db::name('coupon_list') + ->where(['user_id'=>$user_id,'del'=>0]) + ->select(); + } + $user_coupon_ids = array_column($user_coupon,'coupon_id'); + + foreach ($coupon_list as &$item){ + + //是否已领取 + $item['is_get'] = 0; + //优惠券类型 + $item['coupon_type'] = '全场通用'; + //优惠券使用时间 + $item['use_time_tips'] = ''; + $item['use_condition'] = '无金额门槛'; + + if(in_array($item['id'],$user_coupon_ids)){ + $item['is_get'] = 1; + } + + if($item['use_goods_type'] == 2){ + $item['coupon_type'] = '指定商品可用'; + } + if($item['use_goods_type'] == 3){ + $item['coupon_type'] = '定商品不可用'; + } + if($item['condition_type'] == 2){ + $item['use_condition'] = '满'.floatval($item['condition_money']).'元减'.floatval($item['money']); + + } + + switch ($item['use_time_type']){ + case 2: + $item['use_time'] = time()+86400*$item['use_time']; + $item['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$item['use_time']); + break; + case 3: + $item['use_time'] = time() + 86400 * $item['use_time']+86400; + $item['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$item['use_time']); + break; + default: + $item['use_time_tips'] = date('Y.m.d H:i',$item['use_time_start']).'-'.date('Y.m.d H:i',$item['use_time_end']); + } + + } + $coupon_list->visible(['id','name','money','is_get','coupon_type','use_time_tips','use_condition']); + + return $coupon_list; + } + + + public static function getGoodsCoupon($user_id,$id){ + $now = time(); + $where = [ + ['get_type','=',1], + ['status','=',1], + ['del','=',0], + ['send_time_start','<=',$now], + ['send_time_end','>=',$now], + ]; + $coupon = new Coupon(); + $coupon_list = $coupon + ->where($where) + ->field('id,name,money,condition_type,condition_money,use_time,use_time_start,use_time_end,use_time_type,use_goods_type') + ->with(['coupon_goods']) + ->select()->toArray(); + + $user_coupon = []; + $lists = []; + if($user_id){ + $user_coupon = Db::name('coupon_list') + ->where(['user_id'=>$user_id,'del'=>0]) + ->select(); + } + $user_coupon_ids = array_column($user_coupon,'coupon_id'); + + foreach ($coupon_list as $item){ + if($item['use_goods_type'] == 2 || $item['use_goods_type'] == 3){ + $goods_ids = array_column($item['coupon_goods'],'goods_id'); + $exist_id = in_array($id,$goods_ids); + if($item['use_goods_type'] == 2 && !$exist_id){ + continue; + } + if($item['use_goods_type'] == 3 && $exist_id){ + continue; + } + } + $coupons['id'] = $item['id']; + $coupons['name'] = $item['name']; + $coupons['money'] = $item['money']; + //是否已领取 + $coupons['is_get'] = 0; + //优惠券使用时间 + $coupons['use_time_tips'] = ''; + //使用使用类型 + switch ($item['use_goods_type']){ + case 1: + $coupons['coupon_type'] = '全场可用'; + break; + case 2: + $coupons['coupon_type'] = '指定商品可用'; + break; + case 3: + $coupons['coupon_type'] = '指定商品不可用'; + break; + + } + //优惠券有效期 + switch ($item['use_time_type']){ + case 2: + $coupons['use_time'] = time()+86400*$item['use_time']; + $coupons['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$coupons['use_time']); + break; + case 3: + $coupons['use_time'] = time() + 86400 * $item['use_time']+86400; + $coupons['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$coupons['use_time']); + break; + default: + $coupons['use_time_tips'] = date('Y.m.d H:i',$item['use_time_start']).'-'.date('Y.m.d H:i',$item['use_time_end']); + } + $coupons['use_condition'] = '无金额门槛'; + if(in_array($item['id'],$user_coupon_ids)){ + $coupons['is_get'] = 1; + } + if($item['condition_type'] == 2){ + $coupons['use_condition'] = '满'.floatval($item['condition_money']).'元减'.floatval($item['money']); + } + $lists[] = $coupons; + } + return $lists; + } + //我的优惠券 + public static function getMyCouponList($user_id,$type){ + + $coupon = new Coupon(); + $where[] = ['user_id','=',$user_id]; + $where[] = ['cl.del','=',0]; + if($type != ''){ + $where[] = ['cl.status','=',$type]; + } + + $coupon_list = $coupon->alias('c') + ->join('coupon_list cl','c.id = cl.coupon_id') + ->field('user_id,coupon_id,coupon_code,cl.create_time, + c.id,c.name,c.money,c.condition_type,c.condition_money, + c.send_total_type,c.send_total,c.use_time_type,c.use_time_start,c.use_time_end,c.use_time, + c.get_type,c.get_num_type,c.get_num,c.use_goods_type') + ->with('couponGoods') + ->order('cl.id desc') + ->where($where) + ->select(); + + $goods_list = Db::name('goods')->where(['del'=>0])->column('name','id'); + + foreach ($coupon_list as &$item){ + + $goods_name_array = []; + + //优惠券使用时间 + $item['use_time_tips'] = ''; + $item['use_condition'] = '满'.floatval($item['condition_money']).'元减'.floatval($item['money']); + /*********************************优惠券可用范围************************************************/ + $item['coupon_type'] = '全场通用'; + $item['tips'] = ''; + switch ($item['use_goods_type']){ + case 1: + $item['coupon_type'] = '全场通用'; + $item['tips'] = ''; + break; + case 2: + $item['coupon_type'] = '指定商品可用'; + $goods_ids = array_column($item['coupon_goods']->toarray(),'goods_id'); + $goods_name_array = array_intersect_key($goods_list,array_flip($goods_ids)); + $item['tips'] ='商品'.implode('、',$goods_name_array).'可用'; + break; + case 3: + $item['coupon_type'] = '指定商品可用'; + $goods_ids = array_column($item['coupon_goods']->toarray(),'goods_id'); + $goods_name_array = array_intersect_key($goods_list,array_flip($goods_ids)); + $item['tips'] ='商品'.implode('、',$goods_name_array).'可用'; + break; + } + //使用门槛 + if($item['condition_type'] == 1){ + $item['use_condition'] = '无金额门槛'; + } + + /*********************************优惠券使用时间***********************************/ + $item['use_time_tips'] = ''; + switch ($item['use_time_type']){ + case 2: + $item['use_time'] = $item['create_time']+86400*$item['use_time']; + $item['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$item['use_time']); + break; + case 3: + $item['use_time'] = $item['create_time'] + 86400 * $item['use_time']+86400; + $item['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$item['use_time']); + break; + default: + $item['use_time_tips'] = date('Y.m.d H:i',$item['use_time_start']).'-'.date('Y.m.d H:i',$item['use_time_end']); + } + } + $coupon_list->hidden(['coupon_goods'])->visible(['id','name','money','coupon_code','coupon_type','tips','use_time_tips','use_condition']); + + return $coupon_list; + + } + + //领取优惠券 + public static function userGetCoupon($coupon_id,$user_id){ + $now = time(); + //生成券码 + $coupon_code = create_coupon_code(); + $add_data = [ + 'user_id' => $user_id, + 'coupon_id' => $coupon_id, + 'coupon_code' => $coupon_code, + 'status' => 0, + 'create_time' => $now, + 'update_time' => $now, + 'del' => 0, + ]; + $result = Db::name('coupon_list')->insert($add_data); + if ($result) { + // 钩子-记录足迹(领取优惠券) + Hook::listen('footprint', [ + 'type' => Footprint::receive_coupon, + 'user_id' => $user_id, + 'foreign_id' => $coupon_id //优惠券ID + ]); + } + return $result; + } + //下单获取优惠券 + public static function orderCoupon($goods,$user_id){ + //更新过期优惠券 + \app\common\logic\CouponLogic::couponClose($user_id); + $coupon = [ + 'usable' => [],//可用 + 'unusable' => [],//不可用 + ]; + if($goods){ + $coupon_model = new Coupon(); + //找出自己的优惠券 + $my_coupon = $coupon_model->alias('c') + ->join('coupon_list cl','cl.coupon_id = c.id') + ->where(['user_id'=>$user_id,'c.del'=>0,'cl.del'=>0,'cl.status'=>0]) + ->field('c.*,cl.id as cl_id,cl.create_time as get_coupon_time') + ->order('cl.id desc') + ->select()->toArray(); + //数组切换成对应的索引:[2=>1] 2=item_id + $item_num = array_column($goods,'num','item_id'); + //找出下单的商品信息 + $item_ids = array_column($goods,'item_id'); + //找出下单的商品对应的价格 + $goods_price_array = Db::name('goods_item')->alias('gi') + ->join('goods g','gi.goods_id = g.id') + ->where(['gi.id'=>$item_ids]) + ->column('gi.*,g.is_member','gi.id'); + + //会员折扣价格 + $level_discount = Db::name('user u') + ->join('user_level l', 'u.level = l.id') + ->where('u.id', $user_id) + ->value('discount'); + + $seckill_list = SeckillLogic::getSeckillGoods(); + $seckill_goods = $seckill_list['seckill_goods']; + + //会员折扣价(优先级最高且不和其他活动重叠) > 活动价格 + foreach ($goods_price_array as $key => $item) { + + if ($item['is_member'] == 1 && $level_discount > 0) { + $goods_price_array[$key]['price'] = round($item['price'] * $level_discount / 10, 2); + continue; + } + + if(isset($seckill_goods[$item['id']])){ + $goods_price_array[$key]['price'] = $seckill_goods[$item['id']]['price']; + continue; + } + } + + if($my_coupon){ + //处理优惠券信息 + foreach ($my_coupon as &$coupon_item){ + /*****************拼接优惠券信息**********************/ + //优惠券类型 + $coupon_item['coupon_type'] = '全场店铺可用'; + //优惠券使用时间 + $coupon_item['use_time_tips'] = ''; + + $coupon_item['use_condition'] = '满'.floatval($coupon_item['condition_money']).'减'.floatval($coupon_item['money']); + //优惠券使用范围 + switch ($coupon_item['use_goods_type']){ + case 1: + $coupon_item['coupon_type'] = '全场通用'; + break; + case 2: + $coupon_item['coupon_type'] = '指定商品可用'; + break; + case 3: + $coupon_item['coupon_type'] = '指定商品不可用'; + break; + } + if($coupon_item['condition_type'] == 1){ + $coupon_item['use_condition'] = '无金额门槛'; + } + //优惠券使用时间 + $coupon_item['use_time_tips'] = ''; + switch ($coupon_item['use_time_type']){ + case 2: + $coupon_item['use_time_start'] = $coupon_item['get_coupon_time']+86400; + $coupon_item['use_time_end'] = $coupon_item['get_coupon_time']+86400*$coupon_item['use_time']; + $coupon_item['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$coupon_item['use_time_end']); + break; + case 3: + $coupon_item['use_time_start'] = $coupon_item['get_coupon_time'] + 86400; + $coupon_item['use_time_end'] = $coupon_item['get_coupon_time'] + 86400 * $coupon_item['use_time']+86400; + $coupon_item['use_time_tips'] = '有效期至:'.date('Y.m.d H:i',$coupon_item['use_time_end']); + break; + default: + $coupon_item['use_time_tips'] = date('Y.m.d H:i',$coupon_item['use_time_start']).'-'.date('Y.m.d H:i',$coupon_item['use_time_end']); + } + + /*****************优惠券不可用和可用**********************/ + $coupon_item['tips'] = ''; + $coupon_info = [ + 'id' => $coupon_item['cl_id'], + 'coupon_id' => $coupon_item['id'], + 'name' => $coupon_item['name'], + 'money' => $coupon_item['money'], + 'get_coupon_time' => $coupon_item['get_coupon_time'], + 'use_time_tips' => $coupon_item['use_time_tips'], + 'use_condition' => $coupon_item['use_condition'], + 'coupon_type' => $coupon_item['coupon_type'], + 'tips' => $coupon_item['tips'], + ]; + + //验证优惠券是否过期 + $now = time(); + if($coupon_item['use_time_type'] == 1 || $coupon_item['use_time_type'] == 3){ + if($coupon_item['use_time_start'] > $now || $coupon_item['use_time_end'] < $now){ + $coupon_info['tips'] = '优惠券不在使用时间范围内'; + $coupon['unusable'][] = $coupon_info; + continue; + } + } + + if ($coupon_item['use_time_type'] == 2) { + if ($now >= $coupon_item['use_time_end']) { + $coupon_info['tips'] = '优惠券不在使用时间范围内'; + $coupon['unusable'][] = $coupon_info; + continue; + } + } + + //当前优惠券的商品id + $goods_ids = array_column($goods_price_array,'goods_id'); + + //优惠券商品 + $coupon_goods = Db::name('coupon_goods')->where(['coupon_id' => $coupon_item['id']])->column('goods_id'); + + $intersect_goods = array_intersect($goods_ids,$coupon_goods); + + if($goods_price_array){ + //全部商品可用,满足金额可用 + if($coupon_item['use_goods_type'] == 1 && $coupon_item['condition_type'] == 2){ + $total_price = 0; + foreach ($goods as $goods_item){ + $price = isset($goods_price_array[$goods_item['item_id']]) ? $goods_price_array[$goods_item['item_id']]['price'] : 0; + + $total_price += $price * $goods_item['num']; + } + if($total_price < $coupon_item['condition_money']){ + $coupon_info['tips'] = '所结算的商品中未满足使用的金额'; + $coupon['unusable'][] = $coupon_info; + continue; + } + } + //指定商品可用 + if($coupon_item['use_goods_type'] == 2) { + if(empty($intersect_goods)){ + $coupon_info['tips'] = '所结算的商品中未包含指定商品'; + $coupon['unusable'][] = $coupon_info; + continue; + + } + //满足金额可用 + if($intersect_goods && $coupon_item['condition_type'] == 2){ + $total_price = 0; + + foreach ($intersect_goods as $goods_item){ + foreach ($goods_price_array as $price_item){ + if($price_item['goods_id'] == $goods_item){ + $num = $item_num[$price_item['id']] ?? 0; + + $total_price += $price_item['price'] * $num; + } + } + } + if($total_price < $coupon_item['condition_money']){ + $coupon_info['tips'] = '所结算的商品中未满足使用的金额'; + $coupon['unusable'][] = $coupon_info; + continue; + } + } + } + //指定商品不可用 + if($coupon_item['use_goods_type'] == 3) { + //无门槛使用 + if($intersect_goods){ + $coupon_info['tips'] = '所结算的商品中包含指定不可用商品'; + $coupon['unusable'][] = $coupon_info; + continue; + + } + //满足金额可用 + if(empty($intersect_goods) && $coupon_item['condition_type'] == 2){ + $diff_goods = array_diff($goods_ids,$coupon_goods); + $total_price = 0; + foreach ($diff_goods as $goods_item){ + foreach ($goods_price_array as $price_item){ + if($price_item['goods_id'] == $goods_item){ + $num = $item_num[$price_item['id']] ?? 0; + $total_price += $price_item['price'] * $num; + } + } + } + + if($total_price < $coupon_item['condition_money']){ + $coupon_info['tips'] = '所结算的商品中未满足使用的金额'; + $coupon['unusable'][] = $coupon_info; + continue; + } + } + } + + $coupon['usable'][] = $coupon_info; + + }else{ + $coupon_info['tips'] = '所结算的商品中未包含指定商品'; + $coupon['unusable'][] = $coupon_info; + } + } + } + } + return $coupon; + } + /** + * note 注册赠送优惠券 + * create_time 2020/12/3 17:43 + */ + public static function registerSendCoupon($user_id){ + $now = time(); + $coupon_list = []; + $cache_name = 'register_coupon_'.$user_id; + $register_coupon = Cache::get($cache_name); + + //可领取注册优惠券 + if($register_coupon){ + //领取优惠券的id + $register_award_coupon = ConfigServer::get('marketing','register_award_coupon',[]); + if($register_award_coupon){ + $register_award_coupon = explode(',', $register_award_coupon); + $list = Db::name('coupon') + ->where(['id'=>$register_award_coupon,'get_type'=>2,'status'=>1,'del'=>0]) + ->select(); + + foreach ($list as $coupon){ + $use_goods_type = ''; + switch ($coupon['use_goods_type']){ + case 1: + $use_goods_type = '全场通用'; + break; + case 2: + $use_goods_type = '指定商品可用'; + break; + case 3: + $use_goods_type = '指定商品不可用'; + break; + } + $coupon_list[] = [ + 'id' => $coupon['id'], + 'name' => $coupon['name'], + 'money' => $coupon['money'], + 'use_goods_type'=> $use_goods_type, + ]; + //判断该优惠券是否可领取 + if( $coupon['send_total_type'] === 2){ + $total_get_coupon = Db::name('coupon_list')->where(['coupon_id'=>$coupon['id']])->count(); + if($total_get_coupon >= $coupon['send_total']){ + continue; + } + } + if($coupon['get_num_type'] !== 1 ){ + $where[] = ['coupon_id','=',$coupon['id']]; + $where[] = ['user_id','=',$user_id]; + if($coupon['get_num_type'] === 3){ + list($today_start,$end_start) = Time::today(); + $where[] = ['create_time','between time',[$today_start,$end_start]]; + } + $total_get_coupon = Db::name('coupon_list')->where($where)->count(); + if($total_get_coupon >= $coupon['get_num']){ + continue; + } + } + + //生成券码 + $coupon_code = create_coupon_code(); + $add_data = [ + 'user_id' => $user_id, + 'coupon_id' => $coupon['id'], + 'coupon_code' => $coupon_code, + 'status' => 0, + 'create_time' => $now, + 'update_time' => $now, + 'del' => 0, + ]; + Db::name('coupon_list')->insert($add_data); + + } + } + + Cache::rm($cache_name); + } + return $coupon_list; + + } + +} \ No newline at end of file diff --git a/app/api/logic/UserLogic.php b/app/api/logic/UserLogic.php index 76e3711..d3da52a 100755 --- a/app/api/logic/UserLogic.php +++ b/app/api/logic/UserLogic.php @@ -50,7 +50,7 @@ class UserLogic extends BaseLogic public static function center(array $userInfo): array { $user = User::where(['id' => $userInfo['user_id']]) - ->field('id,sn,sex,account,nickname,real_name,avatar,mobile,create_time,is_new_user,user_money,password') + ->field('id,sn,sex,account,nickname,real_name,avatar,mobile,user_integral,create_time,is_new_user,user_money,password') ->findOrEmpty(); if (in_array($userInfo['terminal'], [UserTerminalEnum::WECHAT_MMP, UserTerminalEnum::WECHAT_OA])) { diff --git a/app/api/model/Coupon.php b/app/api/model/Coupon.php new file mode 100644 index 0000000..72eb292 --- /dev/null +++ b/app/api/model/Coupon.php @@ -0,0 +1,44 @@ +hasMany('couponGoods', 'coupon_id', 'id'); + } + + + //通过(coupon_list)获取优惠券信息 + public static function getCouponByClId($coupon_id) + { + $result = Db::name('coupon c') + ->join('coupon_list cl', 'c.id = cl.coupon_id') + ->where(['cl.id ' => $coupon_id, 'c.del' => 0, 'cl.del' => 0, 'cl.status' => 0]) + ->field('c.*') + ->find(); + + return $result; + } +} \ No newline at end of file diff --git a/app/common/logic/CouponLogic.php b/app/common/logic/CouponLogic.php new file mode 100644 index 0000000..0935343 --- /dev/null +++ b/app/common/logic/CouponLogic.php @@ -0,0 +1,96 @@ +where(['del'=>0]) + ->column('id,use_time_type,use_time_start,use_time_end,use_time','id'); + + $coupon_ids = array_keys($coupon_list); + $where[] = ['coupon_id','in',$coupon_ids]; + $where[] = ['status','in',0]; + if($user_id){ + $where[] = ['user_id','=',$user_id]; + } + $user_coupon_list = Db::name('coupon_list') + ->where(['coupon_id'=>$coupon_ids,'status'=>0]) + ->field('id,coupon_id,create_time') + ->order('id asc') + ->select(); + + $now = time(); + $update_data = []; + foreach ($user_coupon_list as $coupon_item){ + $coupon = $coupon_list[$coupon_item['coupon_id']] ?? []; + if($coupon){ + //用券时间类型:1-固定时间;2-领券当天起;3-领券次日起 + switch ($coupon['use_time_type']){ + case 1: + if($now > $coupon['use_time_end']){ + $update_data[] = $coupon_item['id']; + } + break; + case 2: + $daytime = strtotime(date("Y-m-d",$coupon_item['create_time'])) + 86400 * $coupon['use_time']; + if($now > $daytime){ + $update_data[] = $coupon_item['id']; + } + break; + case 3: + $day = $coupon['use_time'] + 2; + $daytime = strtotime(date("Y-m-d",$coupon_item['create_time'])) + 86400 * $day; + if($now > $daytime){ + $update_data[] = $coupon_item['id']; + } + } + } + } + + if($update_data){ + Db::name('coupon_list')->where(['id'=>$update_data])->update(['status'=>2,'update_time'=>$now]); + + } + } + + + + /** + * Desc: 使用优惠券 + * @param $coupon_list_id + * @param $order_id + * @throws \think\Exception + * @throws \think\exception\PDOException + */ + public static function handleCouponByOrder($coupon_list_id, $order_id) + { + $update_coupon = [ + 'status' => 1, + 'use_time' => time(), + 'order_id' => $order_id, + 'update_time' => time(), + ]; + + Db::name('coupon_list') + ->where('id', $coupon_list_id) + ->update($update_coupon); + } +} \ No newline at end of file