Sfoglia il codice sorgente

1. 蜂鸟配送添加小费有bug修复
2. 修改店名称API修改
3. 打印订单变动--(同4)
4. 订单详情下的商品信息列表变动:如果 ratioType = 1 ,显示若干支装,如果 ratioType = 0,则显示 ratio支装。如果ratioType == null ,则不显示几支装(显示原来的发起赠送)
5. 补:客户消费金额变动后,对应的会员等级要变更新

shizhongqi 5 mesi fa
parent
commit
6243a01865

+ 1 - 2
app-hd/controllers/CustomController.php

@@ -729,7 +729,6 @@ class CustomController extends BaseController
         $orderList = OrderClass::getAllByCondition(['customId' => $customId], null, 'id, actPrice');
 
         $buyAmount= 0;
-        $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', '*');
         if (!empty($orderList)) {
             foreach ($orderList as $order) {
                 $buyAmount = bcadd($buyAmount, $order['actPrice'], 2);
@@ -738,7 +737,7 @@ class CustomController extends BaseController
         $c->buyAmount = $buyAmount;
 
         // 根据 byuAmount 设置等级
-        $memberData = CustomClass::getCustomExpenseLevel($levelDatas, $buyAmount);
+        $memberData = CustomClass::getCustomExpenseLevel($buyAmount, $mainId); // 设置等级多处需要同步修改的,请搜索:getCustomExpenseLevel
         $c->member = $memberData['level'];
         $c->memberName = $memberData['name'];
         $c->save();

+ 4 - 0
app-hd/controllers/RefundController.php

@@ -6,6 +6,7 @@ use biz\shop\classes\ShopExtClass;
 use bizHd\custom\classes\CustomClass;
 use bizHd\custom\classes\HdClass;
 use bizHd\hb\classes\HbClass;
+use bizHd\member\classes\MemberLevelClass;
 use bizHd\order\classes\OrderClass;
 use bizHd\order\services\OrderService;
 use bizHd\refund\classes\HdRefundClass;
@@ -266,6 +267,9 @@ class RefundController extends BaseController
             $custom = CustomClass::getLockById($order->customId);
             if (!empty($custom)) {
                 $custom->buyAmount = bcsub($custom->buyAmount, $post['price'], 2);
+                $memberData = CustomClass::getCustomExpenseLevel($custom->buyAmount, $this->mainId); // 设置等级多处需要同步修改的,请搜索:getCustomExpenseLevel
+                $custom->member = $memberData['level'];
+                $custom->memberName = $memberData['name'];
                 $custom->save();
 
                 $hd = HdClass::getLockById($custom->hdId);

+ 31 - 22
app-hd/controllers/ShopController.php

@@ -13,11 +13,9 @@ use bizHd\merchant\classes\SjClass;
 use bizHd\merchant\services\ShopService;
 use bizHd\purchase\classes\PurchaseClass;
 use bizHd\saas\services\RegionService;
-use bizHd\shop\classes\MainClass;
 use common\components\dict;
 use common\components\dirUtil;
 use common\components\imgUtil;
-use common\components\IntraCityExpress;
 use common\components\stringUtil;
 use common\components\util;
 use common\components\wxUtil;
@@ -33,33 +31,44 @@ class ShopController extends BaseController
         $get = Yii::$app->request->get();
         $adminId = $this->adminId;
         if (getenv('YII_ENV') == 'production') {
-            if ($adminId != 4) {
-                util::fail('请联系管理员修改');
-            }
+            // if ($adminId != 4) {
+            //     util::fail('请联系管理员修改');
+            // }
         } else {
-            if ($adminId != 919) {
-                util::fail('请联系管理员修改');
-            }
+            // if ($adminId != 919) {
+            //     util::fail('请联系管理员修改');
+            // }
         }
         $name = $get['name'] ?? '';
         if (empty($name)) {
             util::fail('请填写名称');
         }
-        $shop = $this->shop;
-        $shop->merchantName = $name;
-        $shop->save();
-        $sjId = $shop->sjId;
-        $sj = SjClass::getById($sjId, true);
-        if (empty($sj)) {
-            util::fail('门店信息缺失呢');
+
+        //开启事务
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            $shop = $this->shop;
+            $shop->merchantName = $name;
+            $shop->save();
+            $sj = SjClass::getById($$shop->sjId, true);
+            if (empty($sj)) {
+                util::fail('门店信息缺失呢');
+            }
+            $sj->name = $name;
+            $sj->save();
+            $fullName = $shop->shopName == '首店' ? $name : $name . ' ' . $shop->shopName;
+            $shopId = $shop->id;
+            HdClass::updateByCondition(['shopId' => $shopId], ['name' => $fullName]);
+            CustomClass::updateByCondition(['shopId' => $shopId], ['originName' => $fullName]);
+
+            $transaction->commit();
+            util::complete('修改成功');
+        } catch (\Exception $exception) {
+            $transaction->rollBack();
+            Yii::error("修改门店名称失败:" . $exception->getMessage());
+            util::fail('修改门店名称失败');
         }
-        $sj->name = $name;
-        $sj->save();
-        $fullName = $shop->shopName == '首店' ? $name : $name . ' ' . $shop->shopName;
-        $shopId = $shop->id;
-        HdClass::updateByCondition(['shopId' => $shopId], ['name' => $fullName]);
-        CustomClass::updateByCondition(['shopId' => $shopId], ['originName' => $fullName]);
-        util::complete('修改成功');
     }
 
     //我的可以进入的门店 ssh 20230424

+ 0 - 1
app-mall/controllers/UserController.php

@@ -70,7 +70,6 @@ class UserController extends BaseController
             util::fail('农历没有31号');
         }
         $user = $this->user;
-        $userId = $this->userId;
         if ($user->birthdaySet == 1) {
             util::fail('你已经设置过了');
         }

+ 9 - 1
biz-ghs/order/classes/OrderClass.php

@@ -1491,6 +1491,8 @@ class OrderClass extends BaseClass
         $refundNum = $current['refundNum'] ?? 0;
         $unitName = $current['unitName'] ?? '扎';
         $remark = $current['remark'] ?? '';
+        $ratioType = $current['ratioType'] === null ? -1 : $current['ratioType'];
+        $ratio = $current['ratio'];
 
         $lastNum = bcsub($itemNum, $refundNum);
 
@@ -1505,7 +1507,11 @@ class OrderClass extends BaseClass
             $content .= '(买' . $itemNum . $unitName . ' 退' . $refundNum . $unitName . ')<BR>';
         }
         if ($showPrice == 1) {
-            $content .= $productNum . ' = ' . $productPrice . '元<BR>';
+            if (floatval($productPrice) == 0.01) { // 如果是赠送的,则不显示几支装
+                $content .= $productNum . ' = ' . $productPrice . '元<BR>';
+            } else {
+                $content .= $productNum . ' = ' . $productPrice . '元  ' . ($ratioType==0 ? $ratio.'支装' : $ratioType==1 ? '若干支装' : '') . '<BR>';
+            }
         }
         $content .= '--------------------------------<BR>';
         return $content;
@@ -2124,6 +2130,8 @@ class OrderClass extends BaseClass
                         'unitName' => $xhUnitName,
                         'itemNum' => $bigNum,
                         'remark' => $remark,
+                        'ratioType' => $itemVal['ratioType'],
+                        'ratio' => $itemVal['ratio']
                     ];
                 }
                 if ($smallNum > 0) {

+ 7 - 4
biz-hd/custom/classes/CustomClass.php

@@ -865,13 +865,13 @@ class CustomClass extends BaseClass
         return $list;
     }
 
-    // 客户消费等级变更
+    // 客户消费等级批量变更
     public static function updateCustomExpenseLevel($data)
     {
         $shopId = $data['shopId'];
         $mainId = $data['mainId'];
         $customs = self::getAllByCondition(['shopId' => $shopId], null, 'id, userId, buyAmount, member, memberName', null, true);
-        $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', '*');
+        $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', 'id, name, level, amount');
         if (!empty($customs)) {
             foreach ($customs as $c) {
                 $buyAmount = 0;
@@ -886,7 +886,7 @@ class CustomClass extends BaseClass
                 $c->buyAmount = $buyAmount;
 
                 // 根据 byuAmount 设置等级
-                $memberData = self::getCustomExpenseLevel($levelDatas, $buyAmount);
+                $memberData = self::getCustomExpenseLevel($buyAmount, $mainId, $levelDatas); // 设置等级多处需要同步修改的,请搜索:getCustomExpenseLevel
                 $c->member = $memberData['level'];
                 $c->memberName = $memberData['name'];
                 $c->save();
@@ -899,8 +899,11 @@ class CustomClass extends BaseClass
     }
 
     // 获取客户消费等级
-    public static function getCustomExpenseLevel($levelDatas, $buyAmount)
+    public static function getCustomExpenseLevel($buyAmount, $mainId, $levelDatas=[])
     {
+        if (empty($levelDatas)) {
+            $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', 'id, name, level, amount');
+        }
         foreach ($levelDatas as $data) {
             if ($buyAmount >= $data['amount']) {
                 return $data;

+ 7 - 3
biz-hd/order/classes/OrderClass.php

@@ -16,6 +16,7 @@ use bizHd\custom\classes\CustomClass;
 use bizHd\custom\classes\HdClass;
 use bizHd\hb\classes\HbClass;
 use bizHd\item\classes\ItemClass;
+use bizHd\member\classes\MemberLevelClass;
 use bizHd\merchant\classes\SjClass;
 use bizHd\refund\classes\HdRefundClass;
 use bizHd\shop\classes\MainClass;
@@ -452,12 +453,15 @@ class OrderClass extends BaseClass
 
         $myCustom = CustomClass::getLockById($customId);
         if (!empty($myCustom)) {
-            if ($order->forward == 0) {
+            if ($order->forward == 0) { //0 常规订单
                 $myCustom->recentExpend = date("Y-m-d H:i:s");
                 $myCustom->visitTime = date("Y-m-d H:i:s");
-                $myCustom->buyAmount = bcadd($myCustom->buyAmount, $order->realPrice, 2);
-                $myCustom->save();
             }
+            $myCustom->buyAmount = bcadd($myCustom->buyAmount, $order->realPrice, 2);
+            $memberData = CustomClass::getCustomExpenseLevel($myCustom->buyAmount, $order->mainId); // 设置等级多处需要同步修改的,请搜索:getCustomExpenseLevel
+            $myCustom->member = $memberData['level'];
+            $myCustom->memberName = $memberData['name'];
+            $myCustom->save();
 
             $hdId = $myCustom->hdId;
             $hd = HdClass::getLockById($hdId);

+ 6 - 5
common/components/delivery/services/adapter/FengniaoAdapter.php

@@ -1051,11 +1051,12 @@ class FengniaoAdapter extends Fengniao implements Adapter
         // 验证 third_index_id(幂等标识)
         if (!isset($data['third_index_id'])) {
             Yii::warning("[FengniaoAdapter] addTip failed: third_index_id is required");
-            return [
-                'code' => -1,
-                'msg' => 'third_index_id is required for idempotency',
-                'data' => null
-            ];
+            $data['third_index_id'] = time();
+            // return [
+            //     'code' => -1,
+            //     'msg' => 'third_index_id is required for idempotency',
+            //     'data' => null
+            // ];
         }
 
         // 验证 add_tip_amount_cent(加小费金额)