Преглед изворни кода

Merge branch 'master' of http://16.162.42.175:8014/guanli/ngds into feature/2550-calc-add-id

# Conflicts:
#	common/helpers/bonus/Calc/CalcConsole.php
theo пре 2 година
родитељ
комит
f2a82d42a5

+ 1 - 1
backendApi/modules/v1/controllers/BonusController.php

@@ -2818,7 +2818,7 @@ class BonusController extends BaseController {
                 // 左腿1市场
                 $leftPerfUserName = (isset($memberList[1]) && $memberList[1]['USER_ID']) ? Info::getUserNameByUserId($memberList[1]['USER_ID']) : '';
                 // 右腿2市场
-                $rightPerfUserName = (isset($memberList[2]) && $memberList[1]['USER_ID']) ? Info::getUserNameByUserId($memberList[2]['USER_ID']) : '';
+                $rightPerfUserName = (isset($memberList[2]) && $memberList[2]['USER_ID']) ? Info::getUserNameByUserId($memberList[2]['USER_ID']) : '';
 
                 // 会员编号
                 $perfMarket['USER_NAME'] = $memberCode;

+ 8 - 6
common/helpers/bonus/Calc/CalcConsole.php

@@ -160,10 +160,10 @@ class CalcConsole extends BaseBusiness
                 echo('自动计算已开始,请等待'.PHP_EOL);
                 //设置redis开关
                 Yii::$app->cache->set('isPreparing', 1, 3600);
-                CalcRecord::record($periodNum, '第' . $periodNum . '期,定时计算开始');
+                CalcRecord::record($periodNum, '【定时计算】第' . $periodNum . '期,定时计算开始');
             } else {
                 echo('自动计算未开始'.PHP_EOL);
-                CalcRecord::record($periodNum, '第' . $periodNum  . '期,定时计算未开始');
+                CalcRecord::record($periodNum, '【定时计算】第' . $periodNum . '期,定时计算未开始');
             }
             return;
         }else{
@@ -191,6 +191,7 @@ class CalcConsole extends BaseBusiness
             return true;
         }
         $businessPeriod = Period::find()->where(['PERIOD_NUM' => $period['PERIOD_NUM']])->asArray()->one();
+        $startExecTime = $businessPeriod['START_EXEC_TIME'] ?? 0;
         if (
             $businessPeriod['SEND_STARTED_AT'] > 0 || $businessPeriod['IS_SENT'] > 0 // 已挂网
             || 1 != $businessPeriod['IS_PREPARING'] // 未在预计算中
@@ -203,8 +204,8 @@ class CalcConsole extends BaseBusiness
             && 1 == $period['IS_PERFED']
         ) {
             //拉取期业绩
-            CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的预计算业绩数据已生成');
-            CalcRecord::record($period['PERIOD_NUM'], '开始获取第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据');
+            CalcRecord::record($period['PERIOD_NUM'], '【期业绩】第' . $period['PERIOD_NUM'] . '期的预计算业绩数据已生成');
+            CalcRecord::record($period['PERIOD_NUM'], '【期业绩】开始获取第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据');
 
             Period::updatePeriodIsPreparing($period['PERIOD_NUM'], Period::IS_PREPARING);
             $res = (new PullPerfDataFromCalc($period['PERIOD_NUM']))->start();
@@ -212,7 +213,8 @@ class CalcConsole extends BaseBusiness
 //                Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);
                 //设置预计算标识
                 Period::updatePeriodIsPreparing($period['PERIOD_NUM'], Period::NOT_PREPARING);
-                CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据已获取');
+                CalcRecord::record($period['PERIOD_NUM'], '【期业绩】第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据已获取');
+                self::syncLogRecord($period['PERIOD_NUM'], $db, $startExecTime);
                 Yii::$app->cache->set('isPreparing', 0);
                 return $res;
             } else {
@@ -220,7 +222,7 @@ class CalcConsole extends BaseBusiness
 //                Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);
                 //设置预计算标识
                 Period::updatePeriodIsPreparing($period['PERIOD_NUM'], Period::NOT_PREPARING);
-                CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据获取失败,原因:' . $res['msg']);
+                CalcRecord::record($period['PERIOD_NUM'], '【期业绩】第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据获取失败,原因:' . $res['msg']);
                 return $res;
             }
         }

+ 1 - 0
common/models/EmployLevel.php

@@ -37,6 +37,7 @@ use yii\helpers\Json;
  * @property int $ACHIEVE_MEMBER_NUM 推荐会员达标数
  * @property string $ACHIEVE_PV 邀请会员数不足时达标业绩PV
  * @property string $ACHIEVE_PERF_PV 邀请会员数满足时达标业绩PV
+ * @property string $BS_PERCENT 蓝星奖比例
  */
 class EmployLevel extends \common\components\ActiveRecord
 {

+ 6 - 0
common/models/forms/ApproachDeclarationLoopForm.php

@@ -120,6 +120,9 @@ class ApproachDeclarationLoopForm extends Model
                 // 套餐报单
                 if (isset($value['packageId']) && $value['packageId']){
                     $packagedata = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $value['packageId']]);
+                    if (!$packagedata) {
+                        throw new Exception('Products does not exists!');
+                    }
                     if($packagedata['STORE_NUMS']>0){
                         $data =  DeclarationPackage::find()->where(['ID'=> $packagedata['ID'] ])->one();
                         $goods_store_nums = $data->STORE_NUMS - 1;
@@ -139,6 +142,9 @@ class ApproachDeclarationLoopForm extends Model
                 if (count($value['goodsId']) > 0 && (count($value['goodsId']) == count($value['goodsNum']))) {
                     for ($i = 0; $i < count($value['goodsId']) ;$i++) {
                         $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $value['goodsId'][$i]]);
+                        if (!$goods) {
+                            throw new Exception('Products does not exists!');
+                        }
                         if ($goods['STATUS'] == 1 ){
                             if($goods['STORE_NUMS'] >= $value['goodsNum'][$i]) {
                                 // 减库存

+ 3 - 0
common/models/forms/ApproachDeclarationUpgradeForm.php

@@ -159,6 +159,9 @@ class ApproachDeclarationUpgradeForm extends Model
                 foreach ($this->goodsNum as $k => $v) {
                     if ($v) {
                         $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
+                        if (!$goods) {
+                            throw new Exception('Products does not exists!');
+                        }
                         if($goods['STORE_NUMS']>0){
                             $totalAmount += $goods['SELL_PRICE'] * intval($v);
                             $totalAmountStandard += $goods['SELL_PRICE_STANDARD'] * intval($v);

+ 9 - 2
common/models/forms/ApproachOrderForm.php

@@ -184,7 +184,7 @@ class ApproachOrderForm extends Model
      */
     public function validatePassword($attribute, $params) {
         if (!User::validatePayPassword(\Yii::$app->user->id, $this->payPassword)) {
-            $this->addError($attribute, '支付密码不正确');
+            $this->addError($attribute, 'The payment password is incorrect');//支付密码不正确
         }
     }
 
@@ -201,8 +201,12 @@ class ApproachOrderForm extends Model
 
         // 一个订单只能包含一类商品
         $goods = ShopGoods::find()->select('ID,CATEGORY_TYPE')->where(['in', 'ID', $this->goodsId])->andWhere(['STATUS' => 1])->asArray()->all();
+        if (!$goods) {
+            $this->addError($attribute, 'Products does not exists!');
+            return;
+        }
         $goodsCategoryType = array_unique(array_column($goods, 'CATEGORY_TYPE'));
-        if (count($goodsCategoryType) != 1) {
+        if (count($goodsCategoryType) > 1) {
             $this->addError($attribute, 'Order cannot contain multiple product categories');//订单不能包含多种商品分类
             return;
         }
@@ -411,6 +415,9 @@ class ApproachOrderForm extends Model
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
                 $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
+                if (!$goods) {
+                    throw new Exception('Products does not exists!');
+                }
                 if($goods['STORE_NUMS']>0){
                     if ($goods['TYPE'] == 1 || $goods['TYPE'] == 2) {
                         $discount = $goodsType[$goods['TYPE']]['discount'];

+ 6 - 0
common/models/forms/BaApproachDeclarationLoopForm.php

@@ -119,6 +119,9 @@ class BaApproachDeclarationLoopForm extends Model
                 // 套餐报单
                 if (isset($value['packageId']) && $value['packageId']){
                     $packagedata = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $value['packageId']]);
+                    if (!$packagedata) {
+                        throw new Exception('Products does not exists!');
+                    }
                     if($packagedata['STORE_NUMS']>0){
                         $data =  DeclarationPackage::find()->where(['ID'=> $packagedata['ID'] ])->one();
                         $goods_store_nums = $data->STORE_NUMS - 1;
@@ -138,6 +141,9 @@ class BaApproachDeclarationLoopForm extends Model
                 if (count($value['goodsId']) > 0 && (count($value['goodsId']) == count($value['goodsNum']))) {
                     for ($i = 0; $i < count($value['goodsId']) ;$i++) {
                         $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $value['goodsId'][$i]]);
+                        if (!$goods) {
+                            throw new Exception('Products does not exists!');
+                        }
                         if ($goods['STATUS'] == 1 ){
                             if($goods['STORE_NUMS'] >= $value['goodsNum'][$i]) {
                                 // 减库存

+ 4 - 0
common/models/forms/BaApproachOrderForm.php

@@ -338,6 +338,7 @@ class BaApproachOrderForm extends Model
 
     /**
      * 复销
+     * @throws Exception
      */
     public function add()
     {
@@ -353,6 +354,9 @@ class BaApproachOrderForm extends Model
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
                 $goods = ShopGoods::findOneAsArray('ID = :ID AND STATUS = 1', [':ID' => $ids[$k]]);
+                if (!$goods) {
+                    throw new Exception('Products does not exists!');
+                }
                 if ($goods['STORE_NUMS'] > 0) {
                     if ($goods['TYPE'] == 1 || $goods['TYPE'] == 2) {
                         $discount = $goodsType[$goods['TYPE']]['discount'];

+ 3 - 0
common/models/forms/BaDeclarationLoopForm.php

@@ -118,6 +118,9 @@ class BaDeclarationLoopForm extends Model
                 if (count($value['goodsId']) > 0 && (count($value['goodsId']) == count($value['goodsNum']))){
                     for ($i=0;$i<count($value['goodsId']);$i++){
                         $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $value['goodsId'][$i]]);
+                        if (!$goods) {
+                            throw new Exception('Products does not exists!');
+                        }
                         if ($goods['STATUS'] == 1 ){
                             if($goods['STORE_NUMS'] >= $value['goodsNum'][$i]){
                                 $data = ShopGoods::find()->where(['ID' => $value['goodsId'][$i]])->one();

+ 6 - 0
common/models/forms/DeclarationLoopForm.php

@@ -125,6 +125,9 @@ class DeclarationLoopForm extends Model
                 if (isset($value['packageId']) && $value['packageId']){
 
                     $packagedata = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $value['packageId']]);
+                    if (!$packagedata) {
+                        throw new Exception('Products does not exists!');
+                    }
                     //var_dump($packagedata['ID']);
                     if($packagedata['STORE_NUMS']<=0){
                         throw new Exception($packagedata['PACKAGE_NAME'].'Insufficient inventory');// 库存不足
@@ -134,6 +137,9 @@ class DeclarationLoopForm extends Model
                 if (count($value['goodsId']) > 0 && (count($value['goodsId']) == count($value['goodsNum']))){
                     for ($i=0;$i<count($value['goodsId']);$i++){
                         $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $value['goodsId'][$i]]);
+                        if (!$goods) {
+                            throw new Exception('Products does not exists!');
+                        }
                         if ($goods['STATUS'] == 1 ){
                             if($goods['STORE_NUMS'] < $value['goodsNum'][$i]){
                                 throw new Exception($goods['GOODS_NAME'].'Insufficient inventory');// 商品库存不足

+ 3 - 0
common/models/forms/DeclarationUpgradeForm.php

@@ -157,6 +157,9 @@ class DeclarationUpgradeForm extends Model
                 foreach ($this->goodsNum as $k => $v) {
                     if ($v) {
                         $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
+                        if (!$goods) {
+                            throw new Exception('Products does not exists!');
+                        }
                         if($goods['STORE_NUMS']>0){
                             $totalAmount += $goods['SELL_PRICE'] * intval($v);
                             $totalAmountStandard += $goods['SELL_PRICE_STANDARD'] * intval($v);

+ 3 - 0
common/models/forms/EmployLevelForm.php

@@ -134,6 +134,9 @@ class EmployLevelForm extends Model {
                     $empLevelModel->RX_PERCENT = $value['RX_PERCENT'];
                     $empLevelModel->LEVEL_SCORE = $value['LEVEL_SCORE'];
                     $empLevelModel->UPGRADE_SCORE = $value['UPGRADE_SCORE'];
+                    $empLevelModel->BS_PERCENT = $value['BS_PERCENT'];   // 蓝星奖比例
+                    $empLevelModel->GARAGE_PERCENT = $value['GARAGE_PERCENT'];  // 车奖比例
+                    $empLevelModel->TOURISM_PERCENT = $value['TOURISM_PERCENT'];  // 旅游奖比例
                     if (!$empLevelModel->save()) {
                         throw new \Exception(Form::formatErrorsForApi($empLevelModel->getErrors()));
                     }

+ 19 - 2
common/models/forms/OrderForm.php

@@ -215,6 +215,7 @@ class OrderForm extends Model
     /**
      * 判断支付方式
      * @param $attribute
+     * @throws Exception
      */
     public function isPayType($attribute){
         if(!array_key_exists($this->payType, ShopGoods::payTypes())){
@@ -224,9 +225,13 @@ class OrderForm extends Model
 
         // 一个订单只能包含一类商品
         $goods = ShopGoods::find()->select('ID,CATEGORY_TYPE')->where(['in', 'ID', $this->goodsId])->andWhere(['STATUS' => 1])->asArray()->all();
+        if (!$goods) {
+            throw new Exception('Products does not exists!');
+            return;
+        }
         $goodsCategoryType = array_unique(array_column($goods, 'CATEGORY_TYPE'));
-        if (count($goodsCategoryType) != 1) {
-            $this->addError($attribute, '订单不能包含多种商品分类');
+        if (count($goodsCategoryType) > 1) {
+            $this->addError($attribute, 'Order cannot contain multiple product categories'); // 订单不能包含多种商品分类
             return;
         }
 
@@ -461,6 +466,9 @@ class OrderForm extends Model
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
                 $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
+                if (!$goods) {
+                    throw new Exception('Products does not exists!');
+                }
                 if($goods['STORE_NUMS']>0){
                     if ($goods['TYPE'] == 1 || $goods['TYPE'] == 2) {
                         $discount = $goodsType[$goods['TYPE']]['discount'];
@@ -560,6 +568,9 @@ class OrderForm extends Model
             foreach ($this->goodsNum as $k => $v){
                 if ($v){
                     $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
+                    if (!$goods) {
+                        throw new Exception('Products does not exists!');
+                    }
                     if ($goods['STORE_NUMS'] >= $this->goodsNum[$k]){
                         $data = ShopGoods::find()->where(['ID' => $ids[$k]])->one();
                         $goods_store_nums = $data->STORE_NUMS - $this->goodsNum[$k];
@@ -793,6 +804,9 @@ class OrderForm extends Model
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
                 $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
+                if (!$goods) {
+                    throw new Exception('Products does not exists!');
+                }
                 if($goods['STORE_NUMS']>0){
                     if ($goods['TYPE'] == 1 || $goods['TYPE'] == 2) {
                         $discount = $goodsType[$goods['TYPE']]['discount'];
@@ -862,6 +876,9 @@ class OrderForm extends Model
 			            foreach ($this->goodsNum as $k => $v){
 			                if ($v){
 			                    $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
+                                if (!$goods) {
+                                    throw new Exception('Products does not exists!');
+                                }
 			                    if ($goods['STORE_NUMS'] >= $this->goodsNum[$k]){
 			                        $data = ShopGoods::find()->where(['ID' => $ids[$k]])->one();
 			                        $goods_store_nums = $data->STORE_NUMS - $this->goodsNum[$k];

+ 1 - 1
common/models/forms/WithdrawForm.php

@@ -196,7 +196,7 @@ class WithdrawForm extends Model {
      */
     public function validatePassword($attribute, $params) {
         if (!User::validatePayPassword($this->_userId, $this->payPassword)) {
-            $this->addError($attribute, '支付密码不正确');
+            $this->addError($attribute, 'The payment password is incorrect');//支付密码不正确
         }
     }
 

+ 7 - 7
console/controllers/CalcController.php

@@ -98,7 +98,7 @@ class CalcController extends BaseController
         $params    = Cache::getAsyncParams($taskKey);
         $periodNum = $params['periodNum'] ?? 0;
         //生成业绩单 状态已修改
-        CalcRecord::record($periodNum, '开始生成业绩单');
+        CalcRecord::record($periodNum, '【生成业绩单】开始生成业绩单');
         //重置业务系统的计算进度标识
         \Yii::$app->db->createCommand()->update('AR_PERIOD', ['IS_PERFED' => 0, 'IS_CALCULATED' => 0], 'PERIOD_NUM=' . $periodNum)->execute();
         //重置计算系统的计算进度标识
@@ -107,27 +107,27 @@ class CalcController extends BaseController
 
         $res = (new GeneratePerfOrder($periodNum))->start();
         if (200 == $res['code']) {
-            CalcRecord::record($periodNum, '业绩单已生成');
+            CalcRecord::record($periodNum, '【生成业绩单】业绩单已生成');
         } else {
             Period::updatePeriodIsPreparing($periodNum, Period::NOT_PREPARING);
-            CalcRecord::record($periodNum, '第' . $periodNum . '期业绩单生成失败,原因:' . substr($res['msg'],0,100));
+            CalcRecord::record($periodNum, '【生成业绩单】第' . $periodNum . '期业绩单生成失败,原因:' . substr($res['msg'],0,100));
             return false;
         }
 
         //推送基础数据
-        CalcRecord::record($periodNum, '开始推送基础数据');
+        CalcRecord::record($periodNum, '【基础数据】开始推送基础数据');
         $res = (new PushBaseDataToCalc($periodNum))->start();
         if (200 == $res['code']) {
-            CalcRecord::record($periodNum, '基础数据完成推送');
+            CalcRecord::record($periodNum, '【基础数据】基础数据完成推送');
         } else {
             Period::updatePeriodIsPreparing($periodNum, Period::NOT_PREPARING);
-            CalcRecord::record($periodNum, '第' . $periodNum . '期基础数据推送失败,原因:' . $res['msg']);
+            CalcRecord::record($periodNum, '【基础数据】第' . $periodNum . '期基础数据推送失败,原因:' . $res['msg']);
             return false;
         }
         //todo 完成需要修改状态
 
         //通知结算系统生成期业绩
-        CalcRecord::record($periodNum, '开始生成' . $periodNum . '期的期业绩');
+        CalcRecord::record($periodNum, '【期业绩】开始生成' . $periodNum . '期的期业绩');
         \Yii::$app->$db->createCommand()->update('AR_PERIOD', ['IS_PREPARE' => 1], 'PERIOD_NUM=' . $periodNum)->execute();
         //todo 完成需要修改状态