Kirin 2 years ago
parent
commit
0b5bd08302

+ 1 - 1
app/models/store/StoreCart.php

@@ -182,7 +182,7 @@ class StoreCart extends BaseModel
 
     public static function getUserProductCartList($uid, $cartIds = '', $status = 0, $store_id = 0)
     {
-        $productInfoField = 'id,image,price,ot_price,vip_price,postage,give_integral,sales,stock,store_name,unit_name,is_show,is_del,is_postage,cost,is_sub,temp_id,store_type';
+        $productInfoField = 'id,image,price,ot_price,vip_price,postage,give_integral,sales,stock,store_name,unit_name,is_show,is_del,is_postage,cost,is_sub,temp_id,store_type,give_coupon';
         $seckillInfoField = 'id,image,price,ot_price,postage,give_integral,sales,stock,title as store_name,unit_name,is_show,is_del,is_postage,cost,temp_id,weight,volume,start_time,stop_time,time_id';
         $bargainInfoField = 'id,image,min_price as price,price as ot_price,postage,give_integral,sales,stock,title as store_name,unit_name,status as is_show,is_del,is_postage,cost,temp_id,weight,volume';
         $combinationInfoField = 'id,image,price,postage,sales,stock,title as store_name,is_show,is_del,is_postage,cost,temp_id,weight,volume';

+ 8 - 0
app/models/store/StoreOrder.php

@@ -337,6 +337,7 @@ class StoreOrder extends BaseModel
             $cartIds = [];
             $totalNum = 0;
             $gainIntegral = 0;
+            $giveCoupons = [];
             foreach ($cartInfo as $cart) {
                 $cartIds[] = $cart['id'];
                 $totalNum += $cart['cart_num'];
@@ -346,6 +347,12 @@ class StoreOrder extends BaseModel
                 if (!$integral_id) $integral_id = $cart['integral_id'];
                 if (!$exchange_id) $exchange_id = $cart['exchange_id'];
                 $cartInfoGainIntegral = isset($cart['productInfo']['give_integral']) ? bcmul($cart['cart_num'], $cart['productInfo']['give_integral'], 2) : 0;
+                $cartInfoGainCoupons = [];
+                for ($i = 0; $i < $cart['cart_num']; $i++) {
+                    if (isset($cart['productInfo']['give_coupon']) && $cart['productInfo']['give_coupon'] > 0)
+                        $cartInfoGainCoupons[] = $cart['productInfo']['give_coupon'];
+                }
+                $giveCoupons = array_merge($giveCoupons, $cartInfoGainCoupons);
                 $gainIntegral = bcadd($gainIntegral, $cartInfoGainIntegral, 2);
             }
             $deduction = $seckill_id || $bargain_id || $combinationId || $integral_id || $exchange_id;
@@ -498,6 +505,7 @@ class StoreOrder extends BaseModel
                 'pay_type' => $payType,
                 'use_integral' => $usedIntegral,
                 'gain_integral' => $gainIntegral,
+                'give_coupons' => implode(',', $giveCoupons),
                 'mark' => htmlspecialchars($mark),
                 'combination_id' => $combinationId,
                 'pink_id' => $pinkId,

+ 21 - 8
app/models/user/WechatUser.php

@@ -160,7 +160,7 @@ class WechatUser extends BaseModel
         //判断 unionid 是否存在
         if (isset($userInfo['unionid'])) {
             $wechatInfo = self::where('unionid', $userInfo['unionid'])->find();
-            unset($userInfo['qr_scene'],$userInfo['qr_scene_str'],$userInfo['qr_scene_str'],$userInfo['subscribe_scene']);
+            unset($userInfo['qr_scene'], $userInfo['qr_scene_str'], $userInfo['qr_scene_str'], $userInfo['subscribe_scene']);
             if ($wechatInfo) {
                 return self::edit($userInfo->toArray(), $userInfo['unionid'], 'unionid');
             }
@@ -186,9 +186,9 @@ class WechatUser extends BaseModel
      */
     public static function userFirstSubGiveCoupon($openid)
     {
-        $couponIds = StoreCouponIssue::where('status',1)
-            ->where('is_give_subscribe',1)
-            ->where('is_del',0)
+        $couponIds = StoreCouponIssue::where('status', 1)
+            ->where('is_give_subscribe', 1)
+            ->where('is_del', 0)
             ->column('cid');
         if ($couponIds)
             foreach ($couponIds as $couponId)
@@ -200,11 +200,11 @@ class WechatUser extends BaseModel
      * 订单金额达到预设金额赠送优惠卷
      * @param $uid
      */
-    public static function userTakeOrderGiveCoupon($uid,$total_price)
+    public static function userTakeOrderGiveCoupon($uid, $total_price)
     {
-        $couponIds = StoreCouponIssue::where('status',1)
-            ->where('is_full_give',1)
-            ->where('is_del',0)
+        $couponIds = StoreCouponIssue::where('status', 1)
+            ->where('is_full_give', 1)
+            ->where('is_del', 0)
             ->column('cid,full_reduction');
         if ($couponIds)
             foreach ($couponIds as $couponId)
@@ -213,6 +213,19 @@ class WechatUser extends BaseModel
                         StoreCouponUser::addUserCoupon($uid, $couponId['cid']);
     }
 
+    /**
+     * 订单金额达到预设金额赠送优惠卷
+     * @param $uid
+     */
+    public static function AdminTakeOrderGiveCoupon($uid, $coupons_id)
+    {
+        $couponIds = explode(',', $coupons_id);
+        if ($couponIds)
+            foreach ($couponIds as $couponId)
+                if ($couponId)
+                    StoreCouponUser::addUserCoupon($uid, $couponId);
+    }
+
     /**
      * 更新用户信息
      * @param $openid

+ 1 - 0
crmeb/repositories/OrderRepository.php

@@ -128,6 +128,7 @@ class OrderRepository
         $res3 = StoreOrder::treatmentAward($order['id']);
         AdminStoreOrder::orderTakeAfter($order);
         StoreOrder::where('id', $order['id'])->update(['arrive_time' => time()]);
+        WechatUser::AdminTakeOrderGiveCoupon($order['uid'], $order['give_coupons']);
         if (!($res1 && $res2 && $res3)) exception('收货失败!');
     }