Browse Source

新客红包 推荐新客红包

shish 4 năm trước cách đây
mục cha
commit
0a1bc92d6b

+ 9 - 0
app-hd/controllers/HbController.php

@@ -3,7 +3,9 @@
 namespace hd\controllers;
 
 use biz\ghs\classes\GhsClass;
+use biz\market\classes\XrFlClass;
 use biz\shop\classes\ShopClass;
+use bizGhs\custom\classes\CustomClass;
 use common\components\util;
 use Yii;
 
@@ -28,6 +30,13 @@ class HbController extends BaseController
         if ($sendNewGift == 1) {
             util::fail('已经领过了');
         }
+        $new = $ghs->new ?? 0;
+        if ($new == 0) {
+            util::fail('活动已失效');
+        }
+        $customId = $ghs->customId ?? 0;
+        $custom = CustomClass::getById($customId, true);
+        XrFlClass::giveGift($ghs, $custom);
         util::complete('领取成功');
     }
 

+ 2 - 2
app-hd/controllers/MainController.php

@@ -108,7 +108,7 @@ class MainController extends BaseController
         $deadline = $sj['deadline'] ?? '';
         $relation = isset($this->shopAdmin) && !empty($this->shopAdmin) ? $this->shopAdmin->attributes : [];
         $adminName = $relation['name'];
-        $shopAdminId = $relation['id'];
+        $eId = $relation['id'];
         $mobile = $relation['mobile'] ?? '';
         $sjName = $sj['name'] ?? '';
         $shopName = $shop->shopName ?? '';
@@ -123,7 +123,7 @@ class MainController extends BaseController
             'shopName' => $shopName,
             'shopImg' => $shopImg,
             'cashAccount' => $cashAccount,
-            'shopAdminId' => $shopAdminId,
+            'shopAdminId' => $eId,
             'shopId' => $this->shopId,
             'sjId' => $this->sjId,
         ];

+ 2 - 2
app-hd/controllers/RenewController.php

@@ -28,8 +28,8 @@ class RenewController extends BaseController
     public function actionWxPay()
     {
         ini_set('date.timezone', 'Asia/Shanghai');
-        $shopAdminId = $this->shopAdminId;
-        $addData['shopAdminId'] = $shopAdminId;
+        $eId = $this->shopAdminId;
+        $addData['shopAdminId'] = $eId;
         $shopAdmin = $this->shopAdmin->attributes;
         $adminName = $shopAdmin['name'] ?? '';
         $sjId = $shopAdmin['sjId'] ?? 0;

+ 3 - 3
app-hd/controllers/WsController.php

@@ -22,9 +22,9 @@ class WsController extends BaseController
     {
         $post = Yii::$app->request->post();
         $clientId = isset($post['clientId']) ? $post['clientId'] : '';
-        $shopAdminId = $this->shopAdminId;
-        // Gateway::bindUid($clientId, $shopAdminId);
-        goWs::bindUid($shopAdminId,$clientId);
+        $eId = $this->shopAdminId;
+        // Gateway::bindUid($clientId, $eId);
+        goWs::bindUid($eId,$clientId);
         util::complete();
     }
 

+ 0 - 40
biz-ghs/order/classes/OrderClass.php

@@ -1018,44 +1018,4 @@ class OrderClass extends BaseClass
         Yii::$app->redis->executeCommand('LPUSH', [$newOrderKey, $id]);
     }
 
-    //处理队列里的新订单 shish 20211012
-    public static function newOrderFromQueueDone()
-    {
-        $ghs = dict::getDict('ptStyle', 'ghs');
-        $shopList = ShopClass::getAllByCondition(['ptStyle' => $ghs], null, '*', null, true);
-        if (!empty($shopList)) {
-            foreach ($shopList as $key => $shop) {
-                $ids = [];
-                $shopId = $shop->id ?? 0;
-                $newOrderKey = 'ghsNewOrder_' . $shopId;
-                while ($count = Yii::$app->redis->executeCommand('LLEN', [$newOrderKey])) {
-                    $id = Yii::$app->redis->executeCommand('RPOP', [$newOrderKey]);
-                    if (is_numeric($id)) {
-                        $ids[] = $id;
-                    }
-                }
-                if (empty($ids)) {
-                    continue;
-                }
-                $list = OrderClass::getAllByCondition(['id' => ['in', $ids]], null, '*', null, true);
-                if (empty($list)) {
-                    continue;
-                }
-                foreach ($list as $key => $order) {
-                    $orderSn = $order->orderSn ?? '';
-                    if (empty($orderSn)) {
-                        continue;
-                    }
-                    $itemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
-                    if (empty($itemList)) {
-                        continue;
-                    }
-                    foreach ($itemList as $itemKey => $itemVal) {
-                        StatItemClass::replace($itemVal);
-                    }
-                }
-            }
-        }
-    }
-
 }

+ 9 - 0
biz/hb/classes/HbClass.php

@@ -17,6 +17,15 @@ class HbClass extends BaseClass
     const TAKE_UN = 1;
     const TAKE_HAS = 2;
 
+    //新客得红包
+    const FROM_NEW = 0;
+    //推荐新客得红包
+    const FROM_TJ = 1;
+    //充值送红包
+    const FROM_RECHARGE = 2;
+    //门店发放
+    const FROM_SHOP_GIVE = 3;
+
     public static function getHbList($where)
     {
         $data = self::getList('*', $where, 'addTime DESC');

+ 66 - 0
biz/market/classes/TjFlClass.php

@@ -3,10 +3,76 @@
 namespace biz\market\classes;
 
 use biz\base\classes\BaseClass;
+use biz\hb\classes\HbClass;
+use biz\shop\classes\ShopCouponClass;
 
 class TjFlClass extends BaseClass
 {
 
     public static $baseFile = '\biz\market\models\TjFl';
 
+    //新人福利发红包 shish 20211026
+    public static function giveGift($ghs, $custom, $beTjCustom)
+    {
+        $shopId = $ghs->shopId ?? 0;
+        $flData = self::getAllByCondition(['shopId' => $shopId], null, '*');
+        if (empty($flData)) {
+            return false;
+        }
+        $beTjCustomName = $beTjCustom->name ?? '';
+        $ghsId = $ghs->id ?? 0;
+        $ghsName = $ghs->name ?? '';
+        $ghsAvatar = $ghs->avatar ?? '';
+        $ghsSjId = $ghs->sjId ?? 0;
+        $ghsShopId = $ghs->shopId ?? 0;
+        $customId = $ghs->customId ?? 0;
+
+        $customName = $custom->name ?? '';
+        $customPy = $custom->py ?? '';
+        $customAvatar = $custom->avatar ?? '';
+        $customSjId = $custom->sjId ?? 0;
+        $customShopId = $custom->shopId ?? 0;
+
+        $sjId = $custom->sjId ?? 0;
+        $shopId = $custom->shopId ?? 0;
+
+        foreach ($flData as $item) {
+
+            $hbAmount = $item->hbAmount ?? 0;
+            $hbNum = $item->num ?? 0;
+            $valid = $item->valid ?? 0;
+            $miniExpend = $item->miniExpend ?? 0;
+
+            for ($i = 0; $i < $hbNum; $i++) {
+                $start = date("Y-m-d H:i:s");
+                $end = date("Y-m-d H:i:s", time() + $valid * 86400);
+                $coupon = [
+                    'sjId' => $sjId,
+                    'shopId' => $shopId,
+                    'beginTime' => $start,
+                    'endTime' => $end,
+                    'name' => '红包',
+                    'amount' => $hbAmount,
+                    'miniCost' => $miniExpend,
+                    'status' => HbClass::STATUS_UN_USE,
+                    'ghsId' => $ghsId,
+                    'ghsName' => $ghsName,
+                    'ghsAvatar' => $ghsAvatar,
+                    'ghsSjId' => $ghsSjId,
+                    'ghsShopId' => $ghsShopId,
+                    'customId' => $customId,
+                    'customName' => $customName,
+                    'customPy' => $customPy,
+                    'customAvatar' => $customAvatar,
+                    'customSjId' => $customSjId,
+                    'customShopId' => $customShopId,
+                    'from' => HbClass::FROM_TJ,
+                    'remark' => "介绍的新客 {$beTjCustomName} 大约在" . date("Y-m-d H:i") . "下单",
+                ];
+                HbClass::add($coupon);
+            }
+
+        }
+    }
+
 }

+ 66 - 0
biz/market/classes/XrFlClass.php

@@ -3,10 +3,76 @@
 namespace biz\market\classes;
 
 use biz\base\classes\BaseClass;
+use biz\hb\classes\HbClass;
+use common\components\util;
 
 class XrFlClass extends BaseClass
 {
 
     public static $baseFile = '\biz\market\models\XrFl';
 
+    //新人福利发红包 shish 20211026
+    public static function giveGift($ghs, $custom)
+    {
+        $shopId = $ghs->shopId ?? 0;
+        $flData = self::getAllByCondition(['shopId' => $shopId], null, '*');
+        if (empty($flData)) {
+            util::fail('红包发完了');
+        }
+
+        $ghsId = $item->id ?? 0;
+        $ghsName = $ghs->name ?? '';
+        $ghsAvatar = $ghs->avatar ?? '';
+        $ghsSjId = $ghs->sjId ?? 0;
+        $ghsShopId = $ghs->shopId ?? 0;
+        $customId = $ghs->customId ?? 0;
+
+        $customName = $custom->name ?? '';
+        $customPy = $custom->py ?? '';
+        $customAvatar = $custom->avatar ?? '';
+        $customSjId = $custom->sjId ?? 0;
+        $customShopId = $custom->shopId ?? 0;
+
+        $sjId = $custom->sjId ?? 0;
+        $shopId = $custom->shopId ?? 0;
+
+        foreach ($flData as $item) {
+
+            $hbAmount = $item->hbAmount ?? 0;
+            $hbNum = $item->num ?? 0;
+            $valid = $item->valid ?? 0;
+            $miniExpend = $item->miniExpend ?? 0;
+
+            for ($i = 0; $i < $hbNum; $i++) {
+                $start = date("Y-m-d H:i:s");
+                $end = date("Y-m-d H:i:s", time() + $valid * 86400);
+                $coupon = [
+                    'sjId' => $sjId,
+                    'shopId' => $shopId,
+                    'beginTime' => $start,
+                    'endTime' => $end,
+                    'name' => '红包',
+                    'amount' => $hbAmount,
+                    'miniCost' => $miniExpend,
+                    'status' => HbClass::STATUS_UN_USE,
+                    'ghsId' => $ghsId,
+                    'ghsName' => $ghsName,
+                    'ghsAvatar' => $ghsAvatar,
+                    'ghsSjId' => $ghsSjId,
+                    'ghsShopId' => $ghsShopId,
+                    'customId' => $customId,
+                    'customName' => $customName,
+                    'customPy' => $customPy,
+                    'customAvatar' => $customAvatar,
+                    'customSjId' => $customSjId,
+                    'customShopId' => $customShopId,
+                    'from' => HbClass::FROM_NEW,
+                    'remark' => "新人红包",
+                ];
+                HbClass::add($coupon);
+            }
+
+        }
+    }
+
 }

+ 2 - 2
biz/recharge/classes/RechargeClass.php

@@ -75,9 +75,9 @@ class RechargeClass extends BaseClass
 //        }
 
 
-        //充值红包
+        //充值红包
         if ($recharge->sjStyle == SjClass::STYLE_RETAIL && !empty($recharge->ghsId)) {
-            ShopCouponClass::giveCoupon($recharge);
+            ShopCouponClass::rechargeGiveCoupon($recharge);
         }
 
         \biz\shop\classes\ShopClass::rechargeAddBalance($shop, $amount, $recharge, $tx, $capitalType, $fix);

+ 11 - 7
biz/shop/classes/ShopCouponClass.php

@@ -4,6 +4,7 @@ namespace biz\shop\classes;
 
 use biz\base\classes\BaseClass;
 use biz\ghs\classes\GhsClass;
+use biz\hb\classes\HbClass;
 use bizGhs\custom\classes\CustomClass;
 use common\components\noticeUtil;
 use common\components\util;
@@ -44,8 +45,8 @@ class ShopCouponClass extends BaseClass
         ]
     ];
 
-    //发红包 shish 20211002
-    public static function giveCoupon($recharge)
+    //充值发红包 shish 20211002
+    public static function rechargeGiveCoupon($recharge)
     {
         $sjId = $recharge->sjId ?? 0;
         $shopId = $recharge->shopId ?? 0;
@@ -57,13 +58,13 @@ class ShopCouponClass extends BaseClass
         $amount = $recharge->amount ?? 0;
         $rechargeId = $recharge->id ?? 0;
         if ($hbNum <= 0) {
-            noticeUtil::push("充值成功但红包没有发放成功,数量:{$hbNum} 金额:{$amount} id:{$rechargeId}", '15280215347');
+            noticeUtil::push("充值成功但红包没有发放成功,数量:{$hbNum} 金额:{$amount} rechargeId:{$rechargeId}", '15280215347');
             return false;
         }
 
         $ghs = GhsClass::getById($ghsId, true);
         if (empty($ghs)) {
-            noticeUtil::push("充值成功但红包没有发放成功,没有找到供货商,数量:{$hbNum} 金额:{$amount} id:{$rechargeId}", '15280215347');
+            noticeUtil::push("充值成功但红包没有发放成功,没有找到供货商,数量:{$hbNum} 金额:{$amount} rechargeId:{$rechargeId}", '15280215347');
             return false;
         }
         $ghsName = $ghs->name ?? '';
@@ -73,7 +74,7 @@ class ShopCouponClass extends BaseClass
         $customId = $ghs->customId ?? 0;
         $custom = CustomClass::getById($customId, true);
         if (empty($custom)) {
-            noticeUtil::push("充值成功但红包没有发放成功,没有找到客户,数量:{$hbNum} 金额:{$amount} id:{$rechargeId}", '15280215347');
+            noticeUtil::push("充值成功但红包没有发放成功,没有找到客户,数量:{$hbNum} 金额:{$amount} rechargeId:{$rechargeId}", '15280215347');
             return false;
         }
         $customName = $custom->name ?? '';
@@ -93,7 +94,7 @@ class ShopCouponClass extends BaseClass
                 'name' => '红包',
                 'amount' => $hbAmount,
                 'miniCost' => $miniExpend,
-                'status' => self::STATUS_UN_USE,
+                'status' => HbClass::STATUS_UN_USE,
                 'ghsId' => $ghsId,
                 'ghsName' => $ghsName,
                 'ghsAvatar' => $ghsAvatar,
@@ -105,8 +106,11 @@ class ShopCouponClass extends BaseClass
                 'customAvatar' => $customAvatar,
                 'customSjId' => $customSjId,
                 'customShopId' => $customShopId,
+                'from' => HbClass::FROM_RECHARGE,
+                'targetId' => $rechargeId,
+                'remark' => $start . "充值{$amount}元",
             ];
-            self::add($coupon);
+            HbClass::add($coupon);
         }
     }
 

+ 77 - 2
console/controllers/GlobalController.php

@@ -2,10 +2,17 @@
 
 namespace console\controllers;
 
+use biz\ghs\classes\GhsClass;
+use biz\market\classes\TjFlClass;
 use biz\shop\classes\ShopClass;
+use biz\sj\classes\SjClass;
+use biz\stat\classes\StatItemClass;
+use bizGhs\custom\classes\CustomClass;
 use bizGhs\order\classes\OrderClass;
+use bizGhs\order\classes\OrderItemClass;
 use bizGhs\product\classes\ProductClass;
 use bizHd\stat\classes\StatVisitClass;
+use common\components\dict;
 use Yii;
 use yii\console\Controller;
 
@@ -25,9 +32,77 @@ class GlobalController extends Controller
             ProductClass::allShopStockWarningFromQueue();
         }
 
-        //每三分钟进行一次完成订单的流程处理,现在有:花材统计
+        //每2分钟进行已完成支付订单处理,花材销量统计、推荐新客发红包
         if ((int)date('i') % 2 == 0) {
-            OrderClass::newOrderFromQueueDone();
+
+            $ghs = dict::getDict('ptStyle', 'ghs');
+            $shopList = ShopClass::getAllByCondition(['ptStyle' => $ghs], null, '*', null, true);
+            if (!empty($shopList)) {
+                foreach ($shopList as $key => $shop) {
+                    $ids = [];
+                    $shopId = $shop->id ?? 0;
+                    $newOrderKey = 'ghsNewOrder_' . $shopId;
+                    while ($count = Yii::$app->redis->executeCommand('LLEN', [$newOrderKey])) {
+                        $id = Yii::$app->redis->executeCommand('RPOP', [$newOrderKey]);
+                        if (is_numeric($id)) {
+                            $ids[] = $id;
+                        }
+                    }
+                    if (empty($ids)) {
+                        continue;
+                    }
+                    $list = OrderClass::getAllByCondition(['id' => ['in', $ids]], null, '*', null, true);
+                    if (empty($list)) {
+                        continue;
+                    }
+                    foreach ($list as $key => $order) {
+                        $orderSn = $order->orderSn ?? '';
+                        if (empty($orderSn)) {
+                            continue;
+                        }
+                        $itemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
+                        if (empty($itemList)) {
+                            continue;
+                        }
+                        //花材销量统计
+                        foreach ($itemList as $itemKey => $itemVal) {
+                            StatItemClass::replace($itemVal);
+                        }
+
+                        //推荐新客发红包
+                        $tjFl = $shop->tjFl ?? 0;
+                        if ($tjFl == 1) {
+                            $customId = $order->customId ?? 0;
+                            $hostShopId = $order->shopId ?? 0;
+                            $custom = CustomClass::getById($customId, true);
+                            if (!empty($custom)) {
+                                $ghsId = $custom->ghsId ?? 0;
+                                $ghs = GhsClass::getById($ghsId, true);
+                                $hasOrder = $custom->hasOrder ?? 0;
+                                $hasCg = $ghs->hasCg ?? 0;
+                                if ($hasOrder == 0 && $hasCg == 0) {
+                                    $custom->hasOrder = 1;
+                                    $custom->save();
+
+                                    $ghs->hasCg = 1;
+                                    $ghs->save();
+
+                                    $customSjId = $custom->sjId ?? 0;
+                                    $sj = SjClass::getById($customSjId, true);
+                                    //下单客户的介绍人如果是自己客户则发福利
+                                    $parentShopId = $sj->parentShopId ?? 0;
+                                    $tjCustom = CustomClass::getByCondition(['shopId' => $parentShopId, 'ownShopId' => $hostShopId], true);
+                                    $tjGhsId = $tjCustom->ghsId ?? 0;
+                                    $tjGhs = GhsClass::getById($tjGhsId, true);
+                                    TjFlClass::giveGift($tjGhs, $tjCustom, $custom);
+                                }
+                            }
+                        }
+
+                    }
+                }
+            }
+
         }
 
         //每天凌晨00:10保存昨天访客数