kevin_zhangl пре 3 година
родитељ
комит
0373db0b62

+ 8 - 1
backendApi/modules/v1/models/lists/shop/BaUserList.php

@@ -39,7 +39,7 @@ class BaUserList extends \common\libs\dataList\DataList implements DataListInter
                 UI.RELATION_DEEP, UI.SYSTEM_ID, UI.IS_GROUP_LEADER, UI.IS_SYSTEM_LEADER, UI.IS_TEAM, UI.IS_BIND, 
                 UI.IS_TEAM_MAIN, UI.IS_BIND_MAIN, UI.IS_AUTO_WITHDRAW, UI.CLOSE_LOGIN, UI.REG_TYPE, UI.SHOULD_REG_TYPE, 
                 UI.REG_NAME, UI.CREDIT_CODE, UI.PREMISES, UI.LEGAL_PERSON, UI.REG_EXPIRES, UI.STORE_TYPE, UI.INVOICE_BALANCE, 
-                UI.HIGHEST_EMP_LV, UI.CLOSE_LOGIN_AT, UI.PULLED_AT, 
+                UI.HIGHEST_EMP_LV, UI.CLOSE_LOGIN_AT, UI.PULLED_AT, U.WHETHER_UPGRADE,
                 UI.GROUP_LEADER_AT, UI.ALLOW_TRANSFER, UI.ALLOW_RECONSUME_SMS, UI.ALLOW_RECONSUME_SMS_TO, 
                 UI.HIGHEST_EMP_LV_PERIOD, UI.TRANSFER_PROP, UI.LOGIN_NUMS, UI.FAIL_NUMS, UI.LAST_LOGIN_IP, 
                 RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME,
@@ -162,6 +162,13 @@ class BaUserList extends \common\libs\dataList\DataList implements DataListInter
                         'width' => '200'
                     ],
                 ],
+                'WHETHER_UPGRADE' => [
+                    'header' => 'Whether Upgrade',// 是否已转正
+                    'value' => function($row) {
+                        return $row['WHETHER_UPGRADE'] == 1 ? 'YES': 'NO';
+                    },
+                    'headerOther' => ['width' => '110'],
+                ],
             ];
         }
         return $this->columns;

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

@@ -735,7 +735,7 @@ class ApproachDeclarationForm extends Model
         $user->BANK_CITY = $this->bankCity ?? 0;
         $user->BANK_COUNTY = $this->bankCounty ?? 0;
         $user->CREATED_AT = Date::nowTime();
-        $user->STATUS = 1;
+        $user->STATUS = 0;
         $user->DEC_LV = $this->decLv;
         $user->LAST_DEC_LV = $this->decLv;
         $user->EMP_LV = EmployLevel::getDefaultLevelId();

+ 48 - 32
common/models/forms/ApproachOrderForm.php

@@ -300,8 +300,8 @@ class ApproachOrderForm extends Model
             throw new Exception(Form::formatErrorsForApi('支付金额与订单金额不符'));
         }
 
-        // 是否给BA升级的单子
-        $isBrandAmbassadorUpgrade = $this->note['customer'][2]['value'] ?? false;
+        // 订单类型:userOrder(会员订单)、userUpgrade(会员升级)、userDec(会员报单)
+        $orderType = $customFields[1]['value'] ?? false;
 
         $db = \Yii::$app->db;
         $transaction = $db->beginTransaction();
@@ -325,44 +325,60 @@ class ApproachOrderForm extends Model
                 $approachOrderGood['EMAIL'] = $this->email;
             }
             OrderGoods::batchInsert($approachOrderGoods);
-            // 同步报单
-            $approachDecOrder = ApproachDecOrder::findOneAsArray('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
-            if ($approachDecOrder) {
-                unset($approachDecOrder['STATUS']);
+
+            // 会员报单、BA升级
+            if (in_array($orderType, ['userDec', 'baUpgrade', 'userUpgrade'])) {
                 // 同步报单
-                DecOrder::insertOne($approachDecOrder);
-
-                // 会员升级 报单类型:2会员升级单
-                if ($approachDecOrder['DETAIL_TYPE'] == 2) {
-                    // 为被升级人进行升级操作
-                    $decLevelLog = new DecLevelLog();
-                    $decLog = [
-                        'userId' => $approachDecOrder['TO_USER_ID'],//会员ID
-                        'fromId' => $approachDecOrder['ORI_LV'], // 变动前的级别
-                        'levelId' => $approachDecOrder['UPGRADE_LV'],// 变动后的级别
-                        'actionId' => $approachDecOrder['USER_ID'],
-                        'remark' => $approachDecOrder['REMARK'],
-                        'lvPv' => $this->_model->PV,
-                    ];
-                    $modifyDecLv = $decLevelLog->frontendChange($decLog);
-                    if (empty($modifyDecLv)) {
-                        $transaction->rollBack();
-                        throw new Exception("Failed to upgrade for member");//为会员升级失败
+                $approachDecOrder = ApproachDecOrder::findOneAsArray('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
+                if ($approachDecOrder) {
+                    unset($approachDecOrder['STATUS']);
+
+                    // 同步报单
+                    DecOrder::insertOne($approachDecOrder);
+                    // 修改会员锁定状态
+                    if (!User::updateAll(['STATUS' => 1], 'ID=:USER_ID', [':USER_ID' => $approachDecOrder['TO_USER_ID']])) {
+                        throw new Exception(Form::formatErrorsForApi('change user status error'));
+                    }
+
+                    // 修改BA会员升级状态
+                    if ($orderType === 'baUpgrade') {
+                        // 查询BA会员名
+                        $userInfo = User::findOneAsArray('ID=:USER_ID', [':USER_ID' => $approachDecOrder['TO_USER_ID']]);
+                        if (!BaUser::updateAll(['WHETHER_UPGRADE' => 1, 'BA_UPGRADE_AT' => time()], 'USER_NAME=:USER_NAME', [':USER_NAME' => $userInfo['USER_NAME']])) {
+                            throw new Exception(Form::formatErrorsForApi('Brand Ambassador upgrade error!'));
+                        }
+                    }
+
+                    // 正式会员-升级单
+                    if ($orderType === 'userUpgrade') {
+                        // 会员升级 报单类型:2会员升级单
+                        if ($approachDecOrder['DETAIL_TYPE'] == 2) {
+                            // 为被升级人进行升级操作
+                            $decLevelLog = new DecLevelLog();
+                            $decLog = [
+                                'userId' => $approachDecOrder['TO_USER_ID'],//会员ID
+                                'fromId' => $approachDecOrder['ORI_LV'], // 变动前的级别
+                                'levelId' => $approachDecOrder['UPGRADE_LV'],// 变动后的级别
+                                'actionId' => $approachDecOrder['USER_ID'],
+                                'remark' => $approachDecOrder['REMARK'],
+                                'lvPv' => $this->_model->PV,
+                            ];
+                            $modifyDecLv = $decLevelLog->frontendChange($decLog);
+                            if (empty($modifyDecLv)) {
+                                $transaction->rollBack();
+                                throw new Exception("Failed to upgrade for member");//为会员升级失败
+                            }
+                        }
                     }
+
+                    // 删除中间表
+                    ApproachDecOrder::deleteAll('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
                 }
             }
 
             // 删除中间表
             ApproachOrder::deleteAll('SN = :SN', [':SN' => $this->sn]);
             ApproachOrderGoods::deleteAll('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
-            ApproachDecOrder::deleteAll('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
-
-            if ($isBrandAmbassadorUpgrade) {
-                // 修改BA会员升级状态
-                if (!BaUser::updateAll(['WHETHER_UPGRADE' => 1, 'BA_UPGRADE_AT' => time()], 'USER_NAME=:USER_NAME', [':USER_NAME' => $isBrandAmbassadorUpgrade])) {
-                    throw new Exception(Form::formatErrorsForApi('BA升级状态错误'));
-                }
-            }
 
             $transaction->commit();
         } catch (Exception $e) {

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

@@ -14,8 +14,10 @@ use common\libs\logging\operate\AdminOperate;
 use common\models\ApproachDecOrder;
 use common\models\ApproachOrder;
 use common\models\ApproachOrderGoods;
+use common\models\BaApproachDecOrder;
 use common\models\BaApproachOrder;
 use common\models\BaApproachOrderGoods;
+use common\models\BaDecOrder;
 use common\models\BaOrder;
 use common\models\BaOrderGoods;
 use common\models\BaReceiveAddress;
@@ -277,6 +279,9 @@ class BaApproachOrderForm extends Model
             throw new Exception(Form::formatErrorsForApi('支付金额与订单金额不符'));
         }
 
+        // 订单类型:baOrder(BA订单)、baDec(BA报单)
+        $orderType = $customFields[1]['value'] ?? false;
+
         $db = \Yii::$app->db;
         $transaction = $db->beginTransaction();
         try {
@@ -300,6 +305,23 @@ class BaApproachOrderForm extends Model
             }
             BaOrderGoods::batchInsert($approachOrderGoods);
 
+            // BA报单
+            if ($orderType === 'baDec') {
+                // 同步报单
+                $approachDecOrder = BaApproachDecOrder::findOneAsArray('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
+                if ($approachDecOrder) {
+                    unset($approachDecOrder['STATUS']);
+                    // 同步报单
+                    BaDecOrder::insertOne($approachDecOrder);
+
+                    // 修改会员锁定状态
+                    if (!BaUser::updateAll(['STATUS' => 1], 'ID=:USER_ID', [':USER_ID' => $approachDecOrder['TO_USER_ID']])) {
+                        throw new Exception(Form::formatErrorsForApi('Update Brand Ambassador status error'));
+                    }
+                }
+                BaApproachDecOrder::deleteAll('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
+            }
+
             // 删除中间表
             BaApproachOrder::deleteAll('SN = :SN', [':SN' => $this->sn]);
             BaApproachOrderGoods::deleteAll('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);

+ 3 - 4
frontendApi/modules/v1/controllers/ShopController.php

@@ -212,10 +212,9 @@ class ShopController extends BaseController {
 
                 $customFields = $data['metadata']['custom_fields'] ?? [];
                 $oderSn = $customFields[0]['value'] ?? '';
-                $isBrandAmbassador = $customFields[1]['value'] ?? false;
-                $isBrandAmbassadorUpgrade = $customFields[2]['value'] ?? false;
-
-                $formModel = !$isBrandAmbassador ? new ApproachOrderForm() : new BaApproachOrderForm();
+                $orderType = $customFields[1]['value'] ?? false;
+                // 订单类型区分:baOrder(BA订单)、baDec(BA报单)
+                $formModel = in_array($orderType, ['baOrder', 'baDec']) ? new BaApproachOrderForm() : new ApproachOrderForm();
                 $formModel->scenario = 'verifyPayStack';
                 $load = [
                     'sn' => $oderSn,

+ 3 - 8
frontendEle/src/views/shop/ba-shopping-cart.vue

@@ -173,15 +173,10 @@ export default{
                             value: this.sn,
                         },
                         {
-                            display_name: 'isBrandAmbassador',
-                            variable_name: 'isBrandAmbassador',
-                            value: true,
+                          display_name: 'orderType',
+                          variable_name: 'orderType',
+                          value: 'baOrder'
                         },
-                        {
-                          display_name: 'isBrandAmbassadorUpgrade',
-                          variable_name: 'isBrandAmbassadorUpgrade',
-                          value: '',
-                        }
                     ]
             },
           },

+ 5 - 0
frontendEle/src/views/shop/order.vue

@@ -250,6 +250,11 @@ export default{
               variable_name: 'orderSn',
               value: this.sn
             },
+            {
+              display_name: 'orderType',
+              variable_name: 'orderType',
+              value: 'userOrder'
+            },
           ]
         },
       },

+ 3 - 3
frontendEle/src/views/user/ba-dec.vue

@@ -381,9 +381,9 @@ export default {
               value: this.sn
             },
             {
-              display_name: 'isBrandAmbassador',
-              variable_name: 'isBrandAmbassador',
-              value: true,
+              display_name: 'orderType',
+              variable_name: 'orderType',
+              value: 'baDec'
             },
           ]
         }

+ 7 - 10
frontendEle/src/views/user/dec.vue

@@ -5,7 +5,7 @@
         <el-form-item label="Welcome Pack Way"><!--报单方式-->
           <el-radio-group v-model="form.decType" @change="decTypeChange()">
             <el-radio label="normal" >Normal</el-radio>
-            <el-radio label="ba" >BA Upgrade</el-radio>
+            <el-radio label="ba">BA Upgrade</el-radio>
           </el-radio-group>
         </el-form-item>
         <div class="hr-tip"><span>Account Information<!--账号信息--></span></div>
@@ -444,15 +444,10 @@ export default {
               value: this.sn
             },
             {
-              display_name: 'isBrandAmbassador',
-              variable_name: 'isBrandAmbassador',
-              value: false,
+              display_name: 'orderType',
+              variable_name: 'orderType',
+              value: ''
             },
-            {
-              display_name: 'isBrandAmbassadorUpgrade',
-              variable_name: 'isBrandAmbassadorUpgrade',
-              value: '',
-            }
           ]
         }
       }
@@ -630,7 +625,9 @@ export default {
           _this.PayStackForm.amount = response.ORDER_AMOUNT
           _this.PayStackForm.metadata.custom_fields[0].value = response.SN
           if (_this.form.decType === 'ba') {
-            _this.PayStackForm.metadata.custom_fields[2].value = _this.form.insertUserName
+            _this.PayStackForm.metadata.custom_fields[1].value = 'baDec';
+          } else {
+            _this.PayStackForm.metadata.custom_fields[1].value = 'userDec';
           }
           _this.visible = true
         }

+ 5 - 0
frontendEle/src/views/user/upgrade.vue

@@ -348,6 +348,11 @@ export default {
               variable_name: 'orderSn',
               value: this.sn
             },
+            {
+              display_name: 'orderType',
+              variable_name: 'orderType',
+              value: 'userUpgrade'
+            },
           ]
         },
       },