params['nation']; $allOpenBank = OpenBank::findAllAsArray('STATUS=1'); $data['allNation'] = $allNation; $data['allOpenBank'] = $allOpenBank; $data['userInfo'] = User::getEnCodeInfo(\Yii::$app->user->id); $data['userInfo']['NATION'] = $data['userInfo']['NATION_ID']; return static::notice($data); } /** * 编辑会员资料 * @return mixed * @throws \yii\web\HttpException */ public function actionEdit() { if(\Yii::$app->request->isPost){ $form = new UserForm(); $post = \Yii::$app->request->post(); $form->scenario = 'modifyProfile'; if($form->load($post, '') && $result = $form->modifyProfile()){ return static::notice('个人资料修改成功'); } else { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } } return static::notice('非法访问', 400); } /** * 修改登录密码 */ public function actionPassword(){ if(\Yii::$app->request->isPost){ $form = new UserForm(); $form->scenario = 'modifyPassword'; $post = \Yii::$app->request->post(); if($form->load($post, '') && $result = $form->modifyPassword()){ return static::notice('密码修改成功'); } else { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } } return static::notice('非法访问', 400); } /** * 修改支付密码 */ public function actionPayPassword(){ if(\Yii::$app->request->isPost){ $form = new UserForm(); $form->scenario = 'modifyPasswordPay'; $post = \Yii::$app->request->post(); $form->userId = \Yii::$app->user->id; if($form->load($post, '') && $result = $form->modifyPasswordPay()){ return static::notice('支付密码修改成功'); } else { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } } return static::notice('非法访问', 400); } /** * 直推会员列表 * @return mixed * @throws \yii\web\HttpException */ public function actionRecUser() { $allData = UserInfo::lists('AND REC_UID=:REC_UID', [':REC_UID' => \Yii::$app->user->id], ['useSlaves' => true, 'select'=>'USER_ID,CREATED_AT']); foreach ($allData['list'] as $key => $data) { $userBaseInfo = User::getEnCodeInfo($data['USER_ID']); $userBaseInfo['NATION'] = \Yii::$app->params['nation'][$userBaseInfo['NATION']]['name'] ?? ''; $allData['list'][$key]['BASE_INFO'] = $userBaseInfo; } return static::notice($allData); } /** * 上传身份证 * @return mixed * @throws \yii\base\Exception * @throws \yii\web\HttpException */ public function actionIdCard() { if (\Yii::$app->request->isPost) { $formModel = new UploadForm(); $formModel->scenario = 'idCardFront'; $formModel->file = UploadedFile::getInstanceByName('file'); //$formModel->token = \Yii::$app->request->post('uploadToken'); $formModel->token = \Yii::$app->request->request('uploadToken'); if ($formModel->file && $formModel->upload()) { return static::notice('上传成功'); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400); } } // 查看该用户是否已经上传过身份证 $oneData = User::find()->select('ID_IMAGE')->where('ID=:ID', [':ID' => \Yii::$app->user->id])->asArray()->one(); if ($oneData['ID_IMAGE']) { return static::notice($oneData); } else { $token = Cache::setUploadToken(); return static::notice($token); } } /** * 点位绑定 * @return mixed * @throws \yii\base\Exception * @throws \yii\web\HttpException */ public function actionBind() { $userBind = UserBind::findOneAsArray('USER_ID=:USER_ID AND IS_DEL=0', [':USER_ID' => \Yii::$app->user->id]); $allData['list']=UserBind::findAllAsArray('MAIN_UID=:MAIN_UID AND IS_DEL=0', [':MAIN_UID' => $userBind['MAIN_UID']], 'ID,USER_ID,MAIN_UID,CREATED_AT,UPDATED_AT'); foreach ($allData['list'] as $key => $value) { $baseInfo = Info::baseInfoZh($value['USER_ID']); if ($baseInfo['STATUS'] != 1) { unset($allData['list'][$key]); continue; } $allData['list'][$key]['USER_NAME'] = $baseInfo['USER_NAME']; $allData['list'][$key]['REAL_NAME'] = $baseInfo['REAL_NAME']; $allData['list'][$key]['BANK_PROVINCE_NAME'] = $baseInfo['BANK_PROVINCE_NAME']; $allData['list'][$key]['BANK_CITY_NAME'] = $baseInfo['BANK_CITY_NAME']; $allData['list'][$key]['BANK_COUNTY_NAME'] = $baseInfo['BANK_COUNTY_NAME']; $allData['list'][$key]['OPEN_BANK_NAME'] = $baseInfo['OPEN_BANK_NAME']; $allData['list'][$key]['BANK_NO'] = $baseInfo['BANK_NO']; $allData['list'][$key]['MAIN_USER_NAME'] =Info::getUserNameByUserId($value['MAIN_UID']); } $allData['list'] = array_values($allData['list']); return static::notice($allData); } /** * 编辑点位绑定 * @return mixed * @throws \yii\web\HttpException */ public function actionBindEdit(){ $id = \Yii::$app->request->get('id'); if(\Yii::$app->request->isPost) { return parent::edit(UserBindForm::class, '修改主点位成功', 'frontEdit', ['frontEdit'], null, function($form, $result){ //log }); } // 获得当前会员的用户名等信息 $userBind = UserBind::findOneAsArray('ID=:ID AND IS_DEL=0', [':ID' => $id]); $userBinds = UserBind::findAllAsArray('MAIN_UID=:MAIN_UID AND IS_DEL=0',[':MAIN_UID'=>$userBind['MAIN_UID']], 'ID,USER_ID,MAIN_UID,CREATED_AT,UPDATED_AT'); foreach($userBinds as $key=>$value){ $status = Info::getStatusByUserId($value['USER_ID']); if ($status != 1) { unset($userBinds[$key]); continue; } $userBinds[$key]['USER_NAME'] = Info::getUserNameByUserId($value['USER_ID']); } $userBinds = array_values($userBinds); return static::notice(['userBinds' => $userBinds,'mainUid'=>$userBind['MAIN_UID']]); } // 会员升级,通过会员的编号,获取会员信息 public function actionUpgradeInfo() { $isSwitchUpgrade = Config::find() ->where("CONFIG_NAME='isOpenUpgrade'") ->asArray() ->one(); $isOpen = !empty($isSwitchUpgrade) && isset($isSwitchUpgrade['VALUE']) ? $isSwitchUpgrade['VALUE'] : 0; if ($isOpen < 1) { return static::notice('功能暂未开放',400); } $userNumber = \Yii::$app->request->request('userName'); $baseInfo = Info::baseInfoZhByUserName($userNumber); if ($baseInfo['STATUS'] != 1) { return static::notice('非激活用户,请联系客服',400); } // 1. 如果是最高级别,则只显示用户基本信息 // 2. 如果不是最高级别,如果用户累计报单数据是0, 或者用户累计报单业绩不符合级别信息,则提示 请联系客服核对业绩 $userId = $baseInfo['ID']; $userDecId = $baseInfo['DEC_LV'];// 用户当前的级别 // 获取系统中的DEC 报单级别配置 $decConfig = Cache::getDecLevelConfig(); $userDecInfo = $decConfig[$userDecId]; // 会员的级别具体信息 $maxPerfInfo = DeclarationLevel::getMaxDecPref(); $maxDecId = $maxPerfInfo['ID']; // 级别配置中最高级别ID $observe = Config::getConfigByType('observe'); // 获取观察期配置信息 $observeLimit = $observe['observePeriodLimit']['value']; // 月份限制 $isObserve = User::checkIsObserve($baseInfo['CREATED_AT'], $observeLimit); // 判断用户是否再观察期中 // 如果用户已经是最高级别,则只展示用户信息 $isMax = false; if ($maxDecId == $userDecId) { $isMax = true; } // 如果用户已经是最高级别,则只展示用户信息 $userInfo = [ 'DEC_NAME' => $baseInfo['DEC_LV_NAME'], // 用户级别中文 'DEC_ID' => $userDecId, // 用户级别id 'REAL_NAME' => $baseInfo['REAL_NAME'], // 真实姓名 'ADD_AT' => date('Y-m-d', $baseInfo['CREATED_AT']), // 加入时间 'IS_OBSERVE' => $isObserve, // 是否是观察期 true为是观察期 'IS_MAX' => $isMax, // 是否已是最大级别 最大级别不需要判断报单总PV是多少 只展示基本信息 ]; // 如果是最高级别了,则无需升级 if ($isMax) { return static::notice(['baseInfo' => $userInfo]); } $levelPerf = $userDecInfo['PERF'];// 用户当前级别对应的业绩值 if (!$isMax) { $userDecPvSum = User::sumDevPvByUserId($userId); // 用户所有报单PV总和 // // 如果总和小于级别业绩 去掉这校验直接补比如3000-980的差值 // if ($userDecPvSum < $levelPerf) { // return static::notice('请联系客服人员核对业绩',400); // } // 下一级业绩 $nextLevelPerf = DeclarationLevel::getNextDecPref($levelPerf)['PERF']; // 如果总和超过了下一级业绩 if ($userDecPvSum >= $nextLevelPerf) { return static::notice('请联系客服人员核对业绩',400); } $type = $isObserve ? 1 : 2; $userInfo['UPGRADE_FUNC'] = $isObserve ? '补差额升级' : '全额升级';// 升级方式 $upgradeType = UpgradeType::getOneByType($type); // 如果用户不是最大级别,则需要获取是否观察期,算出PV是否有问题,应该补多少, $userInfo['UPGRADE_TYPE'] = $upgradeType; $userInfo['NOW_PERF'] = $userDecPvSum; $userInfo['NEXT_PERF'] = $nextLevelPerf; // 用户可选择的级别列表 $userInfo['LEVEL_LIST'] = DeclarationLevel::getNextAll($levelPerf);// 用户可选择的级别列表 // 循环列表,补充升级所需要的补差 foreach ($userInfo['LEVEL_LIST'] as &$v) { $v['REPAIR_PV'] = $isObserve ? $v['PERF'] - $userInfo['NOW_PERF'] : $v['PERF']; } } return static::notice(['baseInfo' => $userInfo]); } // 会员升级管理 public function actionUpgrade() { $isSwitchUpgrade = Config::find() ->where("CONFIG_NAME='isOpenUpgrade'") ->asArray() ->one(); $isOpen = !empty($isSwitchUpgrade) && isset($isSwitchUpgrade['VALUE']) ? $isSwitchUpgrade['VALUE'] : 0; if ($isOpen < 1) { return static::notice('功能暂未开放',400); } // 开始升级 if (\Yii::$app->request->isPost) { $formModel = new DeclarationUpgradeForm(); $post = \Yii::$app->request->post(); $post['type'] = DeclarationForm::TYPE_ZC; $allData['data'][] = $post; if ($formModel->load($post, '') && $formModel->add($post)) { return static::notice('升级报单成功'); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()),400); } } //所有报单套餐 $allDecPackage = DeclarationPackage::getAllData(); $decLevels = Cache::getDecLevelConfig(); foreach ($allDecPackage as $k=>$v){ $levelName = $decLevels[$v['LEVEL_ID']]['LEVEL_NAME'] ?? ''; $allDecPackage[$k]['LEVEL_NAME'] = $levelName; } //所有自选商品 $isDecReg = Cache::getSystemConfig()['isDecReg']['VALUE']; $isDec = User::getEnCodeInfo(\Yii::$app->user->id)['IS_DEC']; $isStudio = User::getEnCodeInfo(\Yii::$app->user->id)['IS_STUDIO']; $decUserName = User::getEnCodeInfo(\Yii::$app->user->id)['USER_NAME']; $query_condition= " AND (1<>1"; if(!$isDecReg || ($isDecReg && $isDec==1)){ $query_condition = " AND (FIND_IN_SET(1,GIFT_TYPE)>0"; } if($isStudio==1){ $query_condition.= " OR FIND_IN_SET(3,GIFT_TYPE)>0"; } $query_condition.= ")"; $allGoods = ShopGoods::find()->where("STATUS=1 ".$query_condition)->orderBy('SORT ASC')->asArray()->all(); return static::notice(['allDecPackage' => $allDecPackage,'allGoods' => $allGoods,'decUserName'=>$decUserName]); } /** * 报单管理 */ public function actionDec() { // 生成随机码 , 初始化redis $userName = Info::generateWebUserName('NG',9); $redis = \Yii::$app->redis; if (\Yii::$app->request->isPost) { $formModel = new DeclarationLoopForm(); $formModel->scenario = 'userDec'; $post = \Yii::$app->request->post(); $post['province'] = $post['province'] ? :1; $post['city'] = $post['city'] ? :1; $post['county'] = $post['county'] ? :1; // 针对于会员编号的判断 $insertUserName = strtoupper($post['insertUserName']); $getRedisUserName = $redis->get('key_'.$insertUserName); if (!$getRedisUserName){ return static::notice('会员编号过期',400); } if ($insertUserName != $getRedisUserName){ return static::notice('会员编号不符合',400); } $post['insertUserName'] = $insertUserName; $post['type'] = DeclarationForm::TYPE_ZC; $allData['data'][] = $post; if ($formModel->load($allData, '') && $formModel->add()) { return static::notice('报单成功'); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()),400); } } //所有报单套餐 $allDecPackage = DeclarationPackage::getAllData(); $decLevels = Cache::getDecLevelConfig(); foreach ($allDecPackage as $k=>$v){ $levelName = $decLevels[$v['LEVEL_ID']]['LEVEL_NAME'] ?? ''; $allDecPackage[$k]['LEVEL_NAME'] = $levelName; } //所有自选商品 $isDecReg = Cache::getSystemConfig()['isDecReg']['VALUE']; $isDec = User::getEnCodeInfo(\Yii::$app->user->id)['IS_DEC']; $isStudio = User::getEnCodeInfo(\Yii::$app->user->id)['IS_STUDIO']; $query_condition= " AND (1<>1"; if(!$isDecReg || ($isDecReg && $isDec==1)){ $query_condition = " AND (FIND_IN_SET(1,GIFT_TYPE)>0"; } if($isStudio==1){ $query_condition.= " OR FIND_IN_SET(3,GIFT_TYPE)>0"; } $query_condition.= ")"; $allGoods = ShopGoods::find()->where("STATUS=1 ".$query_condition)->orderBy('SORT ASC')->asArray()->all(); //$allGoods = ShopGoods::findAllAsArray('STATUS=1'); // 所有开户行 $allOpenBank = OpenBank::find()->where('STATUS=1')->orderBy('LIST_ORDER ASC')->asArray()->all(); if (!$userName) { return static::notice('会员编号生成失败', 400); } //随机码保存在redis中方便进行比对 $msg = $redis->setex('key_'.$userName , 1800 , $userName); return static::notice(['allDecPackage' => $allDecPackage,'allGoods' => $allGoods,'allOpenBank' => $allOpenBank, 'userName' => $userName]); } /** * 报单级别套餐 */ public function actionDecPackage() { $decLv = \Yii::$app->request->get('id'); //所有报单级别套餐 $allDecPackage = DeclarationPackage::getPackageFromLevelId($decLv); return static::notice(['allDecPackage' => $allDecPackage]); } /** * 会员信息查询 * @return mixed * @throws \yii\web\HttpException */ public function actionFullInfo() { $userName = \Yii::$app->request->get('userName'); $userId = Info::getUserIdByUserName($userName); $userInfo['REAL_NAME'] = ''; $user = User::findOneAsArray('ID=:ID', [':ID' => $userId], 'REAL_NAME'); if($user){ $userInfo['REAL_NAME'] = $user['REAL_NAME']; $allChildUser = UserNetwork::getFirstFloorChildren($userId); $isLocation = [1 => '左-', 2 => '中-', 3 => '右-']; if($allChildUser) { foreach ($allChildUser as $child) { $isLocation[$child['RELATIVE_LOCATION']].= '满'; } } $userInfo['isLocation'] = '('.implode(',',$isLocation).')'; return static::notice($userInfo); }else{ return static::notice('会员编号不存在', 400); } } /** * 复消会员信息查询 * @return mixed * @throws \yii\web\HttpException */ public function actionUserBaseInfo() { $userName = \Yii::$app->request->get('userName'); $userId = Info::getUserIdByUserName($userName); if($userId){ $allAddress = ReceiveAddress::findAllAsArray('USER_ID=:USER_ID', [':USER_ID'=>$userId]); if($allAddress) { foreach ($allAddress as $key => $row) { $allAddress[$key]['PROVINCE_NAME'] = Region::getCnName($row['PROVINCE']); $allAddress[$key]['CITY_NAME'] = Region::getCnName($row['CITY']); $allAddress[$key]['COUNTY_NAME'] = Region::getCnName($row['COUNTY']); } } $userInfo = Info::baseInfoWithNet($userId); // $decLevelConfig = Cache::getDecLevelConfig(); // $empLevelConfig = Cache::getEmpLevelConfig(); $arr = [ 'REAL_NAME'=>$userInfo['REAL_NAME'], // 'DEC_LEVEL_NAME' => $decLevelConfig[$userInfo['DEC_LV']]['LEVEL_NAME'], // 'EMP_LEVEL_NAME'=>$empLevelConfig[$userInfo['EMP_LV']]['LEVEL_NAME'], // 'REC_UID'=>$userInfo['REC_USER_NAME'].'('.$userInfo['REC_REAL_NAME'].')', // 'CON_UID'=>$userInfo['CON_USER_NAME'].'('.$userInfo['CON_REAL_NAME'].')', 'allAddress'=>$allAddress ]; return static::notice($arr); }else{ return static::notice('复消会员编号不存在', 400); } } }