Ver Fonte

fix(hd): 正确反馈客户生日修改结果

- 在写入前保留用户原始生日状态,避免首次设置后被误判为未修改
- 同步适配生日赠礼与客户接口对复合返回值的处理
- API: /custom/modify-birthday 根据是否实际修改生日返回对应提示
- Database: 无结构或数据迁移
- Breaking Changes: 无,仓库内调用方已同步适配
shizhongqi há 3 semanas atrás
pai
commit
ca5b9233ee

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

@@ -36,8 +36,12 @@ class CustomController extends BaseController
     {
         $get = Yii::$app->request->get();
         $customId = $get['customId'];
-        CustomClass::modifyBirthday($customId, $this->shopId, $get);
-        util::complete('修改成功');
+        list(, $updateResult) = CustomClass::modifyBirthday($customId, $this->shopId, $get);
+        if ($updateResult) {
+            util::complete('生日修改成功');
+        } else {
+            util::complete('客户本人设置了,您不需要修改它');
+        }
     }
 
     public function actionChangeLevel()

+ 1 - 1
biz-hd/birthday/classes/BirthdayGiftClass.php

@@ -440,7 +440,7 @@ class BirthdayGiftClass extends BaseClass
         $connection = Yii::$app->db;
         $transaction = $connection->beginTransaction();
         try {
-            $custom = CustomClass::modifyBirthday($customId, $shop->id, $params);
+            list($custom, $isUpdateBirthday) = CustomClass::modifyBirthday($customId, $shop->id, $params);
             $levelMap = self::getLevelBenefitMap($shop->mainId, $shop->id);
             $gift = self::createOrUpdateYearRecord($shop, $custom, $levelMap);
             $transaction->commit();

+ 11 - 2
biz-hd/custom/classes/CustomClass.php

@@ -27,7 +27,14 @@ class CustomClass extends BaseClass
 
     public static $baseFile = '\bizHd\custom\models\Custom';
 
-    //修改客户生日 ssh 20250814
+    /**
+     * 修改客户生日
+     * @param $customId
+     * @param $shopId
+     * @param $params
+     * @return array [custom, bool] custom表示客户数据,bool表示是否变动了生日
+     * @throws \Exception
+     */
     public static function modifyBirthday($customId, $shopId, $params)
     {
         date_default_timezone_set('PRC');
@@ -58,6 +65,8 @@ class CustomClass extends BaseClass
             util::fail('农历没有31号');
         }
 
+        $isUpdateBirthday = $user->birthdayTime == 0;
+
         // 如果 xhUser 中已经设置了生日,则直接取用
         if ($user->birthdayTime != 0) {
             $custom->lunar = $user->lunar;
@@ -122,7 +131,7 @@ class CustomClass extends BaseClass
             $birthdayGift->save();
         }
 
-        return $custom;
+        return [$custom, $isUpdateBirthday];
     }
 
     //用余额支付,客户余额减少 ssh 20250410