浏览代码

新增临时接口 actionRefreshCustomData:把所有客户的累计消费和成长值、积分都刷新一下。把此代码改放到 console/controllers/CustomController.php 下

shizhongqi 5 月之前
父节点
当前提交
f2a71816f9
共有 2 个文件被更改,包括 56 次插入51 次删除
  1. 0 51
      app-hd/controllers/CustomController.php
  2. 56 0
      console/controllers/CustomController.php

+ 0 - 51
app-hd/controllers/CustomController.php

@@ -8,9 +8,7 @@ use bizHd\custom\classes\HdClass;
 use bizHd\custom\services\CustomService;
 use biz\sj\services\MerchantAssetService;
 use biz\sj\services\MerchantRemarkService;
-use bizHd\member\classes\MemberLevelClass;
 use bizHd\order\classes\OrderClass;
-use bizHd\shop\classes\ShopClass;
 use bizHd\stat\classes\StatVisitClass;
 use bizHd\user\services\UserAssetService;
 use bizHd\user\services\UserGrowthService;
@@ -737,53 +735,4 @@ class CustomController extends BaseController
 
         util::success(['customId'=>$customId, 'buyAmount'=>$buyAmount]);
     }
-
-    // 把所有客户的累计消费和成长值、积分都刷新一下
-    public function actionRefreshCustomData()
-    {
-        // 1. 查询 xhShop 表,获取所有 ptStyle = 1 的门店数据
-        $allShops = ShopClass::getAllByCondition(['ptStyle'=>1, 'status'=>1], 'id ASC', 'id, mainId');
-        // 2. 把每个门店下的所有用户进行遍历,刷新他们的累计消费和成长值、积分
-        if (!empty($allShops)) {
-            foreach ($allShops as $shop) {
-                $shopId = $shop['id'];
-                $mainId = $shop['mainId'];
-                $customs = CustomClass::getAllByCondition(['shopId' => $shopId], null, 'id, userId, buyAmount, growth, member, memberName', null, true);
-                $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', 'id, name, level, amount');
-                if (!empty($customs) && !empty($levelDatas)) {
-                    foreach ($customs as $c) {
-                        $buyAmount = 0;
-                        // 获取所有零售订单,计算消费金额
-                        $orderList = OrderClass::getAllByCondition(['customId' => $c->id], null, 'id, forward, actPrice');
-                        if (!empty($orderList)) {
-                            foreach ($orderList as $order) {
-                                if ($order['forward'] == 0) { //0 常规订单
-                                    $buyAmount = bcadd($buyAmount, $order['actPrice'], 2);
-                                } elseif ($order['forward'] == 1) { //1 售后付款单(红冲)
-                                    $buyAmount = bcsub($buyAmount, $order['actPrice'], 2);
-                                } else {
-                                    Yii::info('订单类型不存在');
-                                    continue;
-                                }
-                            }
-                        }
-                        $c->buyAmount = $buyAmount;
-                        $c->growth = intval($buyAmount);
-                        $c->integral = intval($buyAmount);
-
-                        // 根据 growth 设置等级
-                        $memberData = CustomClass::getCustomExpenseLevel($c->growth, $mainId, $levelDatas); // 设置等级多处需要同步修改的,请搜索:getCustomExpenseLevel
-                        $c->member = $memberData['level'];
-                        $c->memberName = $memberData['name'];
-                        $c->save();
-
-                        // 更新客户所对应花店的消费金额
-                        HdClass::updateByCondition(['shopId'=>$shopId, 'userId'=>$c->userId], ['expendAmount'=>$buyAmount]);
-                    }
-                }
-            }
-        }
-        
-        util::complete();
-    }
 }

+ 56 - 0
console/controllers/CustomController.php

@@ -6,11 +6,14 @@ use biz\shop\classes\ShopClass;
 use bizGhs\custom\models\Custom;
 use bizGhs\order\classes\OrderClass;
 use bizHd\custom\classes\CustomClass;
+use bizHd\custom\classes\HdClass;
+use bizHd\member\classes\MemberLevelClass;
 use bizHd\purchase\classes\PurchaseClass;
 use common\components\noticeUtil;
 use common\components\util;
 use bizHd\user\classes\UserClass;
 use Overtrue\ChineseCalendar\Calendar;
+use Yii;
 use yii\console\Controller;
 
 class CustomController extends Controller
@@ -137,6 +140,59 @@ class CustomController extends Controller
         }
     }
 
+    // 把所有客户的累计消费和成长值、积分都刷新一下
+    public function actionRefreshCustomData()
+    {
+        try{
+            // 1. 查询 xhShop 表,获取所有 ptStyle = 1 的门店数据
+            $allShops = \bizHd\shop\classes\ShopClass::getAllByCondition(['ptStyle'=>1, 'status'=>1], 'id ASC', 'id, mainId');
+            // 2. 把每个门店下的所有用户进行遍历,刷新他们的累计消费和成长值、积分
+            if (!empty($allShops)) {
+                foreach ($allShops as $shop) {
+                    $shopId = $shop['id'];
+                    $mainId = $shop['mainId'];
+                    $customs = CustomClass::getAllByCondition(['shopId' => $shopId], null, 'id, userId, buyAmount, growth, member, memberName', null, true);
+                    $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', 'id, name, level, amount');
+                    if (!empty($customs) && !empty($levelDatas)) {
+                        foreach ($customs as $c) {
+                            $buyAmount = 0;
+                            // 获取所有零售订单,计算消费金额
+                            $orderList = \bizHd\order\classes\OrderClass::getAllByCondition(['customId' => $c->id], null, 'id, forward, actPrice');
+                            if (!empty($orderList)) {
+                                foreach ($orderList as $order) {
+                                    if ($order['forward'] == 0) { //0 常规订单
+                                        $buyAmount = bcadd($buyAmount, $order['actPrice'], 2);
+                                    } elseif ($order['forward'] == 1) { //1 售后付款单(红冲)
+                                        $buyAmount = bcsub($buyAmount, $order['actPrice'], 2);
+                                    } else {
+                                        Yii::info('订单类型不存在,订单ID:'.$order['id']);
+                                        continue;
+                                    }
+                                }
+                            }
+                            $c->buyAmount = $buyAmount;
+                            $c->growth = intval($buyAmount);
+                            $c->integral = intval($buyAmount);
+
+                            // 根据 growth 设置等级
+                            $memberData = CustomClass::getCustomExpenseLevel($c->growth, $mainId, $levelDatas); // 设置等级多处需要同步修改的,请搜索:getCustomExpenseLevel
+                            $c->member = $memberData['level'];
+                            $c->memberName = $memberData['name'];
+                            $c->save();
+
+                            // 更新客户所对应花店的消费金额
+                            HdClass::updateByCondition(['shopId'=>$shopId, 'userId'=>$c->userId], ['expendAmount'=>$buyAmount]);
+                        }
+                    }
+                }
+            }
+
+            Yii::info('客户的累计消费和成长值、积分刷新脚本成功执行');
+        }catch(\Exception $e){
+            Yii::error('客户的累计消费和成长值、积分刷新脚本执行失败,原因:'.$e->getMessage());
+        }
+    }
+
     //批量创建客户
     private function createCustomer()
     {