ImportForm.php 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: congli
  5. * Date: 2020/2/19
  6. * Time: 4:14 PM
  7. */
  8. namespace console\models;
  9. use common\helpers\Cache;
  10. use common\helpers\Date;
  11. use common\helpers\Form;
  12. use common\models\EmployLevel;
  13. use common\models\forms\UserForm;
  14. use common\models\Period;
  15. use common\models\TmpDeleteUser;
  16. use common\models\TmpOldNetwork;
  17. use common\models\TmpOldUser;
  18. use common\models\User;
  19. use common\models\UserInfo;
  20. use console\controllers\ImportController;
  21. class ImportForm {
  22. const TOP_UID = '670B84FD7C216D4EE055736AECE8644D';
  23. const VIP_DEC_LEVEL = '67ABCE0ECE705575E055736AECE8644D';
  24. const IMPORT_CACHE_USERNAME_ID_KEY = 'console:importCacheUserNameIdKey';
  25. const IMPORT_CACHE_USER_INFO_ID_KEY = 'console:importCacheUserInfoIdKey';
  26. public $_decPv;
  27. public function __construct()
  28. {
  29. $decLevelConfig = Cache::getDecLevelConfig();
  30. $this->_decPv = $decLevelConfig[self::VIP_DEC_LEVEL]['PERF'] ?? 9800;
  31. }
  32. /**
  33. * 添加会员信息
  34. * @param array $pageData
  35. * @throws \Exception
  36. * @return bool
  37. */
  38. public function addOnlineUser(array $pageData) {
  39. echo sprintf("会员【%s】开始写入".PHP_EOL, $pageData['USER_NAME']);
  40. $user = new User();
  41. $user->USER_NAME = $pageData['USER_NAME'];
  42. $user->PASSWORD_HASH = '$2y$10$RsvcKc/aAD5.ewmHlXpmZOIUymTD8IgBpi/xdWJm1bSNzHlGcuQOi';
  43. $user->PAY_PASSWORD = '$2y$10$RsvcKc/aAD5.ewmHlXpmZOIUymTD8IgBpi/xdWJm1bSNzHlGcuQOi';
  44. $user->NATION = 0;
  45. $user->REAL_NAME = $pageData['REAL_NAME'];
  46. $user->ID_CARD = '130324201102069854';
  47. $user->MOBILE = '18068686868';
  48. $user->ADDRESS = '无';
  49. $user->OPEN_BANK = '';
  50. $user->BANK_ADDRESS = '';
  51. $user->BANK_NO = '';
  52. $user->BANK_PROVINCE = '0';
  53. $user->BANK_CITY = '0';
  54. $user->BANK_COUNTY = '0';
  55. $user->CREATED_AT = Date::nowTime();
  56. $user->STATUS = 1;
  57. $user->DEC_LV = self::VIP_DEC_LEVEL;
  58. $user->LAST_DEC_LV = self::VIP_DEC_LEVEL;
  59. // $user->EMP_LV = EmployLevel::getDefaultLevelId();
  60. $user->EMP_LV = '67BE1C6C21F81B32E055736AECE8644D';
  61. $user->PROVINCE = '0';
  62. $user->CITY = '0';
  63. $user->COUNTY = '0';
  64. $user->AVATAR = 'avatar/1.png';
  65. $user->IS_DEC = 0;
  66. $user->DEC_ID = self::TOP_UID;
  67. $user->DEC_ROLE_ID = '';
  68. $user->VERIFIED = 1;
  69. $user->VERIFIED_AT = Date::nowTime();
  70. // $user->PERIOD_AT = Period::instance()->getNowPeriodNum();
  71. $user->PERIOD_AT = 103;
  72. $user->IS_DIRECT_SELLER = 0;
  73. if (!$user->save()) {
  74. // var_dump($user->getErrors());die;
  75. throw new \Exception('添加失败,原因:'.Form::formatErrorsForApi($user->getErrors()));
  76. }
  77. // $this->_cacheUserId($user->USER_NAME, $user->ID);
  78. unset($user, $period);
  79. return true;
  80. }
  81. /**
  82. * 添加用户关系
  83. * @param array $pageData
  84. * @return bool
  85. * @throws \Exception
  86. */
  87. public function addOnlineInfo(array $pageData) {
  88. // $oldUserData = TmpOldUser::find()->where('USER_NAME=:USER_NAME', [':USER_NAME'=>$pageData['USER_NAME']])->asArray()->one();
  89. echo sprintf("会员【%s】开始导入".PHP_EOL, $pageData['USER_NAME']);
  90. $userId = $this->_getUserIdFromCache($pageData['USER_NAME']);
  91. if( $pageData['PARENT_USER_NAME'] !== ImportController::TOP_USER_NAME ) {
  92. $recUid = $this->_getUserIdFromCache($pageData['PARENT_USER_NAME']);
  93. }else {
  94. $recUid = self::TOP_UID;
  95. }
  96. if( $pageData['NET_USER_NAME'] !== ImportController::TOP_USER_NAME ) {
  97. $conUid = $this->_getUserIdFromCache($pageData['NET_USER_NAME']);
  98. }else {
  99. $conUid = self::TOP_UID;
  100. }
  101. if( !$recUid || !$conUid ) {
  102. throw new \Exception(sprintf("no relation id,recUid:%s,conUid:%s,userName:%s", $recUid, $conUid, $pageData['USER_NAME']));
  103. }
  104. $conNum = UserInfo::find()->where('CON_UID=:CON_UID', [':CON_UID'=>$conUid])->count('ID');
  105. $nowPeriodNum = 103;
  106. $form = new UserForm();
  107. $form->scenario = 'addWithUid';
  108. $form->userId = $userId;
  109. $form->userName = $pageData['USER_NAME'];
  110. $form->zcPv = $this->_decPv;
  111. $form->zcAmount = $this->_decPv;
  112. $form->conUid = $conUid;
  113. $form->recUid = $recUid;
  114. $location = $conNum + 1;
  115. if($location > 3) {
  116. echo sprintf("超接点,用户编号: %s,用户姓名:%s,安置人编号:%s,安置人姓名:%s" . PHP_EOL, $pageData['USER_NAME'], $pageData['REAL_NAME'], $pageData['PARENT_USER_NAME'], $pageData['PARENT_REAL_NAME'], $pageData['NET_USER_NAME'], $pageData['NET_REAL_NAME']);
  117. return true;
  118. }
  119. $form->location = $location;
  120. unset($location);
  121. if($form->addForImport($nowPeriodNum)){
  122. echo sprintf("会员【%s】导入成功".PHP_EOL, $pageData['USER_NAME']);
  123. } else {
  124. echo "当前会员:" . $pageData['USER_NAME'] . PHP_EOL;
  125. echo "推荐人:" . $pageData['PARENT_USER_NAME'] . PHP_EOL;
  126. echo "安置人:" . $pageData['NET_USER_NAME'] . PHP_EOL;
  127. var_dump($form->getErrors());die;
  128. // throw new \Exception('添加失败,原因:'.Form::formatErrorsForApi($form->getErrors()));
  129. }
  130. unset($form, $oldUserData, $conNum);
  131. return true;
  132. }
  133. public function cacheUserId($userName, $userId) {
  134. return $this->_cacheUserId($userName, $userId);
  135. }
  136. public function clearCache() {
  137. \Yii::$app->redis->del(self::IMPORT_CACHE_USERNAME_ID_KEY);
  138. }
  139. private function _cacheUserId($userName, $userId) {
  140. return \Yii::$app->redis->hSet(self::IMPORT_CACHE_USERNAME_ID_KEY, $userName, $userId);
  141. }
  142. private function _getUserIdFromCache($userName) {
  143. return \Yii::$app->redis->hGet(self::IMPORT_CACHE_USERNAME_ID_KEY, $userName);
  144. }
  145. public function clearInfoCache() {
  146. \Yii::$app->redis->del(self::IMPORT_CACHE_USER_INFO_ID_KEY);
  147. }
  148. public function cacheUserInfo($userId, $info) {
  149. return \Yii::$app->redis->hSet(self::IMPORT_CACHE_USER_INFO_ID_KEY, $userId, json_encode($info));
  150. }
  151. public function getCacheUserInfo($userId) {
  152. $infoJson = \Yii::$app->redis->hGet(self::IMPORT_CACHE_USER_INFO_ID_KEY, $userId);
  153. return json_decode($infoJson, true);
  154. }
  155. /**
  156. * 删除某会员
  157. * @param $pageData
  158. */
  159. public function delTmpOldNetworkAllData($pageData) {
  160. echo sprintf("超点位删除,用户编号: %s,用户姓名:%s,安置人编号:%s,安置人姓名:%s" . PHP_EOL, $pageData['USER_NAME'], $pageData['REAL_NAME'], $pageData['PARENT_USER_NAME'], $pageData['PARENT_REAL_NAME'], $pageData['NET_USER_NAME'], $pageData['NET_REAL_NAME']);
  161. //删除这一条数据
  162. TmpOldNetwork::deleteAll("ID=:ID", ['ID'=>$pageData['ID']]);
  163. $this->delTmpOldNetworkRecData($pageData['USER_NAME']);
  164. $this->delTmpOldNetworkNetData($pageData['USER_NAME']);
  165. }
  166. /**
  167. * 删除某会员下面的接点会员
  168. * @param $parentUserName
  169. * @return bool
  170. */
  171. public function delTmpOldNetworkRecData($parentUserName) {
  172. $recData = TmpOldNetwork::find()->where("PARENT_USER_NAME=:PARENT_USER_NAME", ['PARENT_USER_NAME'=>$parentUserName])->asArray()->one();
  173. if( !$recData ) return true;
  174. echo sprintf("按推荐删除,用户编号: %s,用户姓名:%s,安置人编号:%s,安置人姓名:%s" . PHP_EOL, $recData['USER_NAME'], $recData['REAL_NAME'], $recData['PARENT_USER_NAME'], $recData['PARENT_REAL_NAME'], $recData['NET_USER_NAME'], $recData['NET_REAL_NAME']);
  175. //删除这个人的推荐会员
  176. TmpOldNetwork::deleteAll("ID=:ID", ['ID'=>$recData['ID']]);
  177. return $this->delTmpOldNetworkRecData($recData['USER_NAME']);
  178. }
  179. /**
  180. * 删除某会员下面的安置会员
  181. * @param $netUserName
  182. * @return bool
  183. */
  184. public function delTmpOldNetworkNetData($netUserName) {
  185. $netData = TmpOldNetwork::find()->where("NET_USER_NAME=:NET_USER_NAME", ['NET_USER_NAME'=>$netUserName])->asArray()->one();
  186. if( !$netData ) return true;
  187. //删除这个人的接点会员
  188. echo sprintf("按安置删除,用户编号: %s,用户姓名:%s,安置人编号:%s,安置人姓名:%s" . PHP_EOL, $netData['USER_NAME'], $netData['REAL_NAME'], $netData['PARENT_USER_NAME'], $netData['PARENT_REAL_NAME'], $netData['NET_USER_NAME'], $netData['NET_REAL_NAME']);
  189. TmpOldNetwork::deleteAll("ID=:ID", ['ID'=>$netData['ID']]);
  190. return $this->delTmpOldNetworkNetData($netData['USER_NAME']);
  191. }
  192. }