123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- namespace app\allwin\model;
- use think\Model;
- use app\allwin\model\Coupon;
- use app\allwin\model\CouponUser;
- use app\allwin\model\AllwinGiftStore;
- use app\allwin\model\Vip;
- use app\common\facade\Inform;
- use think\facade\Request;
- class AllwinGiftData extends Model{
- protected $pk = 'id';
-
-
- public function user(){
- return $this->hasOne('app\common\model\SystemUser','id','uid');
- }
-
- public function gift(){
- return $this->hasOne('AllwinGift','id','gift_id');
- }
-
- public static function giveGift($order,$miniapp_id){
- $store = AllwinGiftStore::where(['store_id' => $order->store_id,'is_lock' => 0])->field('gift_id')->find();
- if(empty($store)){
- return;
- }
- if(empty($store->gift)){
- return;
- }
- $coupon = Coupon::where(['id' => $store->gift->coupon_id])->find();
- if(empty($coupon)) {
- return;
- }
-
-
- if($store->gift->types){
- $vip = Vip::where(['user_id' => $order->uid,'is_lock' => 0])->field('vipcard_id')->find();
- if(empty($vip)){
- Inform::sms($order->uid,$miniapp_id,['title' =>'业务进展通知','type' => '支付有礼','content' =>'开通会员买单有机会活动获得['.$coupon['name'].']','state' => '无身份']);
- return;
- }
- }
-
- $giftData = self::where(['uid' => $order->uid,'gift_id' => $store->gift->id])->find();
-
- if(empty($giftData)){
- $data['uid'] = $order->uid;
- $data['gift_id'] = $store->gift->id;
- $data['pay_num'] = 1;
- $data['pay_amount'] = $order->order_amount;
- self::insert($data);
- }else{
-
- if($giftData->coupon_id > 0){
- if($order->coupon_user_id == $giftData->coupon_id){
- $giftData->is_take = 1;
- $giftData->take_time = Request::time();
- $giftData->save();
- }
- return;
- }
- $giftData->pay_num = ['inc',1];
- $giftData->pay_amount = ['inc',$order->order_amount];
- $giftData->save();
- }
- $info = self::where(['uid' => $order->uid,'gift_id' => $store->gift->id])->field('pay_num,pay_amount,coupon_id,update_time')->find();
- if($store->gift->pay_num > 0 && $info->pay_num < $store->gift->pay_num){
-
- Inform::sms($order->uid,$miniapp_id,['title' =>'业务进展通知','type' => '支付有礼','content' =>'您还需要再支付' . $store->gift->pay_amount - $info->pay_amount . '次获得'.$coupon->name,'state' => '待完成']);
- return;
- }
- if($store->gift->pay_amount > 0 && $info->pay_amount < $store->gift->pay_amount){
-
- Inform::sms($order->uid,$miniapp_id,['title' =>'业务进展通知','type' => '支付有礼','content' =>'您还需要再支付' . $store->gift->pay_amount - $info->pay_amount . '元获得'.$coupon->name,'state' => '待完成']);
- return;
- }
-
- $coupon_ids = json_encode([$store->gift->coupon_id]);
- $rel = CouponUser::addUserCoupon($coupon_ids,$order->uid);
- if(!empty($rel)){
- $info->coupon_id = $store->gift->coupon_id;
- $info->update_time = Request::time();
- $info->save();
- }
- if($coupon){
-
- Inform::sms($order->uid,$miniapp_id,['title' =>'业务进展通知','type' => '支付有礼','content' =>'恭喜您获得'.$coupon->name,'state' => '成功']);
- }
- }
- }
|