ソースを参照

Merge branch 'dev' of http://git.huaml.com/zhh/huahuibao into dev

shish 2 ヶ月 前
コミット
c11ed57a52

+ 8 - 0
app-hd/controllers/BirthdayGiftController.php

@@ -10,12 +10,14 @@ class BirthdayGiftController extends BaseController
 {
 {
     public $guestAccess = [];
     public $guestAccess = [];
 
 
+    // 工作台栏数据
     public function actionWorkbenchSummary()
     public function actionWorkbenchSummary()
     {
     {
         $data = BirthdayGiftClass::getWorkbenchSummary($this->shopId, $this->mainId);
         $data = BirthdayGiftClass::getWorkbenchSummary($this->shopId, $this->mainId);
         util::success($data);
         util::success($data);
     }
     }
 
 
+    // 看板列表
     public function actionBoardList()
     public function actionBoardList()
     {
     {
         $get = Yii::$app->request->get();
         $get = Yii::$app->request->get();
@@ -23,6 +25,7 @@ class BirthdayGiftController extends BaseController
         util::success($data);
         util::success($data);
     }
     }
 
 
+    // Tab 计数
     public function actionBoardCounts()
     public function actionBoardCounts()
     {
     {
         $get = Yii::$app->request->get();
         $get = Yii::$app->request->get();
@@ -30,6 +33,7 @@ class BirthdayGiftController extends BaseController
         util::success($data);
         util::success($data);
     }
     }
 
 
+    // 赠礼统计
     public function actionGiftStats()
     public function actionGiftStats()
     {
     {
         $get = Yii::$app->request->get();
         $get = Yii::$app->request->get();
@@ -38,6 +42,7 @@ class BirthdayGiftController extends BaseController
         util::success($data);
         util::success($data);
     }
     }
 
 
+    // 一键通知(限明天)
     public function actionNotifyTomorrow()
     public function actionNotifyTomorrow()
     {
     {
         $get = Yii::$app->request->get();
         $get = Yii::$app->request->get();
@@ -56,6 +61,7 @@ class BirthdayGiftController extends BaseController
         util::fail('没有需要通知的明日生日客户');
         util::fail('没有需要通知的明日生日客户');
     }
     }
 
 
+    // 设置生日日期
     public function actionModifyBirthday()
     public function actionModifyBirthday()
     {
     {
         $get = Yii::$app->request->get();
         $get = Yii::$app->request->get();
@@ -63,6 +69,7 @@ class BirthdayGiftController extends BaseController
         util::complete('修改成功');
         util::complete('修改成功');
     }
     }
 
 
+    // 手动标注为"已领取"
     public function actionCollect()
     public function actionCollect()
     {
     {
         $get = Yii::$app->request->get();
         $get = Yii::$app->request->get();
@@ -71,6 +78,7 @@ class BirthdayGiftController extends BaseController
         util::complete('更新成功');
         util::complete('更新成功');
     }
     }
 
 
+    // 看板内手动补打生日领取小票
     public function actionPrint()
     public function actionPrint()
     {
     {
         $get = Yii::$app->request->get();
         $get = Yii::$app->request->get();

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

@@ -127,6 +127,7 @@ class UserController extends BaseController
                 $birthdayGift->birthdayMonth = $giftBirthdayMonth;
                 $birthdayGift->birthdayMonth = $giftBirthdayMonth;
                 $birthdayGift->birthdayDate = $giftBirthdayDate;
                 $birthdayGift->birthdayDate = $giftBirthdayDate;
                 $birthdayGift->birthdayDisplay = BirthdayGiftClass::formatBirthdayDisplay($custom, $giftBirthdayMonth, $giftBirthdayDate);
                 $birthdayGift->birthdayDisplay = BirthdayGiftClass::formatBirthdayDisplay($custom, $giftBirthdayMonth, $giftBirthdayDate);
+                $birthdayGift->status = 1;
                 $birthdayGift->save();
                 $birthdayGift->save();
             }
             }
         }
         }

+ 39 - 2
biz-hd/birthday/classes/BirthdayGiftClass.php

@@ -2,10 +2,12 @@
 
 
 namespace bizHd\birthday\classes;
 namespace bizHd\birthday\classes;
 
 
+use biz\sj\classes\MerchantAssetClass;
 use biz\sj\classes\SjClass;
 use biz\sj\classes\SjClass;
 use bizHd\custom\classes\CustomClass;
 use bizHd\custom\classes\CustomClass;
 use bizHd\custom\classes\HdClass;
 use bizHd\custom\classes\HdClass;
 use bizHd\member\classes\MemberLevelClass;
 use bizHd\member\classes\MemberLevelClass;
+use bizHd\message\classes\SmsClass;
 use bizHd\shop\classes\ShopClass;
 use bizHd\shop\classes\ShopClass;
 use bizHd\shop\classes\ShopExtClass;
 use bizHd\shop\classes\ShopExtClass;
 use common\components\noticeUtil;
 use common\components\noticeUtil;
@@ -247,6 +249,12 @@ class BirthdayGiftClass extends BaseClass
         return [$result, $levelMap];
         return [$result, $levelMap];
     }
     }
 
 
+    /**
+     * 今日/明日/近一周人数(member>0 + 有 birthdayBenefit + 生日落在区间)
+     * @param $shopId
+     * @param $mainId
+     * @return array
+     */
     public static function getWorkbenchSummary($shopId, $mainId)
     public static function getWorkbenchSummary($shopId, $mainId)
     {
     {
         list($customs,) = self::getEligibleCustoms($shopId, $mainId);
         list($customs,) = self::getEligibleCustoms($shopId, $mainId);
@@ -370,7 +378,7 @@ class BirthdayGiftClass extends BaseClass
     }
     }
 
 
     /**
     /**
-     * 确保每年都有记录
+     * 看板打开时懒创建当年记录
      * @param $shop
      * @param $shop
      * @return bool
      * @return bool
      * @throws IntegrityException
      * @throws IntegrityException
@@ -431,6 +439,13 @@ class BirthdayGiftClass extends BaseClass
         ];
         ];
     }
     }
 
 
+    /**
+     * 时间区间 + 状态 + 搜索
+     * @param $shop
+     * @param $params
+     * @return array
+     * @throws IntegrityException
+     */
     public static function getBoardList($shop, $params)
     public static function getBoardList($shop, $params)
     {
     {
         self::ensureYearRecords($shop);
         self::ensureYearRecords($shop);
@@ -660,6 +675,18 @@ class BirthdayGiftClass extends BaseClass
         if (empty($mobile)) {
         if (empty($mobile)) {
             return [false, '客户无手机号'];
             return [false, '客户无手机号'];
         }
         }
+        // 短信余额查询及可发数量削减 TODO
+        $asset = MerchantAssetClass::getBySjId($sjId, true);
+        $remainSmsNum = $asset->remainSmsNum;
+        if ($remainSmsNum <= 0) {
+            $msg = '商家id:' . $sjId . ' -- ' . $merchant['name'] . '短信余额不足';
+            noticeUtil::push($msg);
+            Yii::info($msg);
+            return [false, '您的短信余额不足,请充值'];
+        }
+        $asset->remainSmsNum = --$remainSmsNum;
+        $asset->save();
+
         $shopName = mb_substr(self::getShopDisplayName($shop), 0, 13, 'UTF-8');
         $shopName = mb_substr(self::getShopDisplayName($shop), 0, 13, 'UTF-8');
         $giftDesc = mb_substr($gift->giftName ?: '精美礼品', 0, 10, 'UTF-8');
         $giftDesc = mb_substr($gift->giftName ?: '精美礼品', 0, 10, 'UTF-8');
         $msg = "{$shopName}:亲爱的会员您好,明天就是您生日啦!为您准备了专属生日礼品:{$giftDesc}。请您回复领取时间,如明天10点左右,24小时内回复有效。不领取请忽略短信,祝您生活愉快!拒收请回复R";
         $msg = "{$shopName}:亲爱的会员您好,明天就是您生日啦!为您准备了专属生日礼品:{$giftDesc}。请您回复领取时间,如明天10点左右,24小时内回复有效。不领取请忽略短信,祝您生活愉快!拒收请回复R";
@@ -672,6 +699,16 @@ class BirthdayGiftClass extends BaseClass
             Yii::error('生日礼品短信发送失败:' . $re['errorMsg']);
             Yii::error('生日礼品短信发送失败:' . $re['errorMsg']);
             return [false, '短信发送失败'];
             return [false, '短信发送失败'];
         }
         }
+
+        // TODO 记录到 xhSms
+        $sms = new SmsClass();
+        $sms->add([
+            'merchantId' => $sjId,
+            'userId' => $custom->userId,
+            'content' => $msg,
+            'type' => '2', // 1.通知短信,2.营销短信
+            'addTime' => time()
+        ]);
         
         
         return [true, ''];
         return [true, ''];
     }
     }
@@ -977,7 +1014,7 @@ class BirthdayGiftClass extends BaseClass
         $content = '<CB>生日赠礼订单</CB><BR>';
         $content = '<CB>生日赠礼订单</CB><BR>';
         $content .= '<BR>';
         $content .= '<BR>';
         if ($pickupShort) {
         if ($pickupShort) {
-            $content .= $pickupShort . ' 到店自取<BR>';
+            $content .= '<L>' . $pickupShort . ' 到店自取</L><BR>';
         } else {
         } else {
             $content .= '客户回复信息不明确,请电话联系';
             $content .= '客户回复信息不明确,请电话联系';
         }
         }

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

@@ -105,6 +105,7 @@ class CustomClass extends BaseClass
             $birthdayGift->birthdayMonth = $giftBirthdayMonth;
             $birthdayGift->birthdayMonth = $giftBirthdayMonth;
             $birthdayGift->birthdayDate = $giftBirthdayDate;
             $birthdayGift->birthdayDate = $giftBirthdayDate;
             $birthdayGift->birthdayDisplay = BirthdayGiftClass::formatBirthdayDisplay($custom, $giftBirthdayMonth, $giftBirthdayDate);
             $birthdayGift->birthdayDisplay = BirthdayGiftClass::formatBirthdayDisplay($custom, $giftBirthdayMonth, $giftBirthdayDate);
+            $birthdayGift->status = 1;
             $birthdayGift->save();
             $birthdayGift->save();
         }
         }
 
 
@@ -1025,7 +1026,7 @@ class CustomClass extends BaseClass
                 }
                 }
                 $c->member = $memberData['level'];
                 $c->member = $memberData['level'];
                 $c->memberName = $memberData['name'];
                 $c->memberName = $memberData['name'];
-                $c->discount = bcdiv(floatval($memberData['discount']), 10, 1);
+                $c->discount = bcdiv(floatval($memberData['discount']), 10, 2);
                 $c->save();
                 $c->save();
 
 
                 if (!empty($c->hdId)) {
                 if (!empty($c->hdId)) {
@@ -1033,7 +1034,7 @@ class CustomClass extends BaseClass
                     if (!empty($hd)) {
                     if (!empty($hd)) {
                         $hd->member = $memberData['level'];
                         $hd->member = $memberData['level'];
                         $hd->memberName = $memberData['name'];
                         $hd->memberName = $memberData['name'];
-                        $hd->discount = $newDiscount;
+                        $hd->discount = $c->discount;
                         $hd->save();
                         $hd->save();
                     }
                     }
                 }
                 }

+ 1 - 1
biz-hd/custom/observers/BuyAmountObserver.php

@@ -86,7 +86,7 @@ class BuyAmountObserver extends Behavior
             $model::updateAll([
             $model::updateAll([
                 'member' => (int) ($memberData['level'] ?? 0),
                 'member' => (int) ($memberData['level'] ?? 0),
                 'memberName' => (string) ($memberData['name'] ?? ''),
                 'memberName' => (string) ($memberData['name'] ?? ''),
-                'discount' => bcdiv(floatval($memberData['discount']), 10, 1)
+                'discount' => bcdiv(floatval($memberData['discount']), 10, 2)
             ], ['id' => $model->getPrimaryKey()]);
             ], ['id' => $model->getPrimaryKey()]);
         }else{
         }else{
             throw new \Exception('mainId is required');
             throw new \Exception('mainId is required');

+ 1 - 1
biz-hd/deduct/classes/DeductClass.php

@@ -172,7 +172,7 @@ class DeductClass extends BaseClass
             CustomClass::updateById($customId, [
             CustomClass::updateById($customId, [
                 'member' => (int) ($memberData['level'] ?? 0),
                 'member' => (int) ($memberData['level'] ?? 0),
                 'memberName' => (string) ($memberData['name'] ?? ''),
                 'memberName' => (string) ($memberData['name'] ?? ''),
-                'discount' => bcdiv(floatval($memberData['discount']), 10, 1)
+                'discount' => bcdiv(floatval($memberData['discount']), 10, 2)
             ]);
             ]);
         }
         }
 
 

+ 0 - 27
biz-hd/message/services/SmsService.php

@@ -5,7 +5,6 @@ namespace bizHd\message\services;
 use bizHd\base\services\BaseService;
 use bizHd\base\services\BaseService;
 use bizHd\message\classes\SmsClass;
 use bizHd\message\classes\SmsClass;
 use Yii;
 use Yii;
-use linslin\yii2\curl;
 
 
 class SmsService extends BaseService
 class SmsService extends BaseService
 {
 {
@@ -30,30 +29,4 @@ class SmsService extends BaseService
 		$cacheCode = Yii::$app->redis->executeCommand('GET', [$key]);
 		$cacheCode = Yii::$app->redis->executeCommand('GET', [$key]);
 		return $cacheCode;
 		return $cacheCode;
 	}
 	}
-
-	//商家发短信 ssh 2020.3.3
-	public static function merchantSend()
-	{
-		//要算钱的
-	}
-	
-	//平台发短信 ssh 2020.3.3
-	public static function platformSend()
-	{
-		
-		/*
-		主要就更解决能不能发送的问题
-		
-		发送情况记录
-		
-		平台短信余额是否充足
-		商家短信余额是否充足
-		
-		有没ip限制
-		
-		最低部就是发送接口
-		 */
-		
-	}
-	
 }
 }

+ 3 - 3
biz-hd/order/services/OrderService.php

@@ -242,9 +242,9 @@ class OrderService extends BaseService
         $totalPrice = bcsub($totalPrice, $hbAmount, 2);
         $totalPrice = bcsub($totalPrice, $hbAmount, 2);
 
 
         $modifyPrice = isset($data['modifyPrice']) && $data['modifyPrice'] > 0 ? $data['modifyPrice'] : 0;
         $modifyPrice = isset($data['modifyPrice']) && $data['modifyPrice'] > 0 ? $data['modifyPrice'] : 0;
-        $memberDiscount = $custom->discount ?? 10;
-        if (is_numeric($memberDiscount) && $memberDiscount > 0 && $memberDiscount < 10 && $modifyPrice > 0) {
-            $modifyPrice = bcdiv(bcmul($modifyPrice, $memberDiscount, 3), 10, 2);
+        $memberDiscount = $custom->discount ?? 1;
+        if (is_numeric($memberDiscount) && $memberDiscount > 0 && $memberDiscount < 1.0 && $modifyPrice > 0) {
+            $modifyPrice = bcmul($modifyPrice, $memberDiscount, 2);
             if (bccomp($modifyPrice, '0', 2) <= 0) {
             if (bccomp($modifyPrice, '0', 2) <= 0) {
                 $modifyPrice = 0.01;
                 $modifyPrice = 0.01;
             }
             }

+ 14 - 0
biz-hd/product/classes/ProductClass.php

@@ -644,6 +644,20 @@ class ProductClass extends BaseClass
         return true;
         return true;
     }
     }
 
 
+    // 校验清空限购消息是否是当前有效版本
+    public static function checkLimitBuyClearMessage($productId, $clearAt)
+    {
+        $productId = intval($productId);
+        $clearAt = intval($clearAt);
+        if ($productId <= 0 || $clearAt <= 0) {
+            return false;
+        }
+
+        $clearMarkKey = self::CLEAR_MARK_KEY . $productId;
+        $currentClearAt = intval(Yii::$app->redis->executeCommand('GET', [$clearMarkKey]));
+        return $currentClearAt > 0 && $currentClearAt == $clearAt;
+    }
+
     // 清理限购清空标记
     // 清理限购清空标记
     public static function clearLimitBuyClearMark($productId)
     public static function clearLimitBuyClearMark($productId)
     {
     {

+ 1 - 1
biz-hd/recharge/classes/RechargeClass.php

@@ -285,7 +285,7 @@ class RechargeClass extends BaseClass
             CustomClass::updateById($customId, [
             CustomClass::updateById($customId, [
                 'member' => (int) ($memberData['level'] ?? 0),
                 'member' => (int) ($memberData['level'] ?? 0),
                 'memberName' => (string) ($memberData['name'] ?? ''),
                 'memberName' => (string) ($memberData['name'] ?? ''),
-                'discount' => bcdiv(floatval($memberData['discount']), 10, 1)
+                'discount' => bcdiv(floatval($memberData['discount']), 10, 2)
             ]);
             ]);
         }
         }
         $custom->save();
         $custom->save();

+ 0 - 1
biz/sj/services/MerchantAssetService.php

@@ -4,7 +4,6 @@ namespace biz\sj\services;
 
 
 use biz\base\services\BaseService;
 use biz\base\services\BaseService;
 use biz\sj\classes\MerchantAssetClass;
 use biz\sj\classes\MerchantAssetClass;
-use Yii;
 
 
 class MerchantAssetService extends BaseService
 class MerchantAssetService extends BaseService
 {
 {

+ 0 - 1
common/components/rabbitmq/birthdayGiftConsumer.php

@@ -6,7 +6,6 @@ use bizHd\birthday\classes\BirthdayGiftClass;
 use common\components\noticeUtil;
 use common\components\noticeUtil;
 use mikemadisonweb\rabbitmq\components\ConsumerInterface;
 use mikemadisonweb\rabbitmq\components\ConsumerInterface;
 use PhpAmqpLib\Message\AMQPMessage;
 use PhpAmqpLib\Message\AMQPMessage;
-use Yii;
 
 
 class birthdayGiftConsumer extends baseConsumer
 class birthdayGiftConsumer extends baseConsumer
 {
 {

+ 8 - 0
common/components/rabbitmq/stockConsumer.php

@@ -7,6 +7,7 @@
 namespace common\components\rabbitmq;
 namespace common\components\rabbitmq;
 
 
 use bizGhs\product\classes\ProductClass;
 use bizGhs\product\classes\ProductClass;
+use bizHd\birthday\classes\BirthdayGiftClass;
 use bizHd\product\classes\ProductClass as hdProductClass;
 use bizHd\product\classes\ProductClass as hdProductClass;
 use common\components\noticeUtil;
 use common\components\noticeUtil;
 use mikemadisonweb\rabbitmq\components\ConsumerInterface;
 use mikemadisonweb\rabbitmq\components\ConsumerInterface;
@@ -53,6 +54,13 @@ class stockConsumer extends baseConsumer
                         return $this->clearOrderItemLimitBuy($data);
                         return $this->clearOrderItemLimitBuy($data);
                     });
                     });
                     break;
                     break;
+                case 'birthday_gift_expire':
+                    $giftId = intval($data['giftId']);
+                    echo 'birthday_gift_expire --- giftId=' . $giftId;
+                    $result = $this->runWithDbReconnect(function () use ($giftId) {
+                        return BirthdayGiftClass::expireById($giftId);
+                    });
+                    break;
                 default:
                 default:
                     noticeUtil::push("库存的消费者报错,未知 type: {$type}");
                     noticeUtil::push("库存的消费者报错,未知 type: {$type}");
                     $result = false;
                     $result = false;

+ 7 - 6
common/config/rabbitMQ.php

@@ -160,6 +160,7 @@ $rabbitMQ = [
                 'stockQueue' => '\common\components\rabbitmq\stockConsumer',
                 'stockQueue' => '\common\components\rabbitmq\stockConsumer',
                 //'limitBuyQueue' => '\common\components\rabbitmq\cancelLimitBuyConsumer',
                 //'limitBuyQueue' => '\common\components\rabbitmq\cancelLimitBuyConsumer',
                 'limitBuyQueue' => '\common\components\rabbitmq\stockConsumer',
                 'limitBuyQueue' => '\common\components\rabbitmq\stockConsumer',
+                'birthdayGiftQueue' => '\common\components\rabbitmq\stockConsumer', //生日礼物队列
             ]
             ]
         ],
         ],
         [
         [
@@ -176,12 +177,12 @@ $rabbitMQ = [
                 'ptQueue' => '\common\components\rabbitmq\ptConsumer',
                 'ptQueue' => '\common\components\rabbitmq\ptConsumer',
             ]
             ]
         ],
         ],
-        [
-            'name' => 'birthdayGiftConsumer',
-            'callbacks' => [
-                'birthdayGiftQueue' => '\common\components\rabbitmq\birthdayGiftConsumer',
-            ]
-        ]
+        // [ // 生日礼物队列不独创自己的消费者
+        //     'name' => 'birthdayGiftConsumer',
+        //     'callbacks' => [
+        //         'birthdayGiftQueue' => '\common\components\rabbitmq\birthdayGiftConsumer',
+        //     ]
+        // ]
     ],
     ],
 ];
 ];
 return $rabbitMQ;
 return $rabbitMQ;