IndexList.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655
  1. <?php
  2. namespace backendApi\modules\v1\models\lists\user;
  3. use common\helpers\Cache;
  4. use common\helpers\http\BackendToFrontendApi;
  5. use common\helpers\user\Info;
  6. use common\libs\dataList\DataListInterface;
  7. use common\models\DecRole;
  8. use common\models\EmployLevel;
  9. use common\models\OpenBank;
  10. use common\models\Region;
  11. use common\models\User;
  12. use common\models\UserInfo;
  13. use common\libs\dataList\column\DateTime;
  14. use common\libs\dataList\column\YesNo;
  15. use common\models\UserNetwork;
  16. use common\models\UserSystem;
  17. use Yii;
  18. class IndexList extends \common\libs\dataList\DataList implements DataListInterface
  19. {
  20. /**
  21. * 列表名称
  22. * @return string
  23. */
  24. public function getListName(){
  25. return '会员列表';
  26. }
  27. /**
  28. * 列表筛选到的数据
  29. */
  30. public function dataHandle()
  31. {
  32. // $this->condition .= ' AND UN.PARENT_UID=UI.CON_UID';
  33. $this->listData = User::lists($this->condition, $this->params, [
  34. 'select' => 'U.*,
  35. UI.USER_ID, UI.ZC_PV, UI.CON_UID, UI.REC_UID, UI.CON_NUM, UI.REC_NUM, UI.NETWORK_DEEP,
  36. UI.RELATION_DEEP, UI.SYSTEM_ID, UI.IS_GROUP_LEADER, UI.IS_SYSTEM_LEADER, UI.IS_TEAM, UI.IS_BIND,
  37. UI.IS_TEAM_MAIN, UI.IS_BIND_MAIN, UI.IS_AUTO_WITHDRAW, UI.CLOSE_LOGIN, UI.REG_TYPE, UI.SHOULD_REG_TYPE,
  38. UI.REG_NAME, UI.CREDIT_CODE, UI.PREMISES, UI.LEGAL_PERSON, UI.REG_EXPIRES, UI.STORE_TYPE, UI.INVOICE_BALANCE,
  39. UI.HIGHEST_EMP_LV, UI.CLOSE_LOGIN_AT, UI.PULLED_AT,
  40. UI.GROUP_LEADER_AT, UI.ALLOW_TRANSFER, UI.ALLOW_RECONSUME_SMS, UI.ALLOW_RECONSUME_SMS_TO,
  41. UI.HIGHEST_EMP_LV_PERIOD, UI.TRANSFER_PROP, UI.LOGIN_NUMS, UI.FAIL_NUMS, UI.LAST_LOGIN_IP,
  42. UI.LAST_LOGIN_AT, UI.SHOW_EMP_LV
  43. ',
  44. 'orderBy' => 'UI.CREATED_AT DESC',
  45. 'from' => UserInfo::tableName() . ' AS UI',
  46. 'join' => [
  47. ['LEFT JOIN', User::tableName() . ' AS U', 'U.ID=UI.USER_ID'],
  48. // ['LEFT JOIN', UserNetwork::tableName() . ' AS UN', 'UI.USER_ID=UN.USER_ID AND UN.PARENT_UID = UI.CON_UID'],
  49. // ['LEFT JOIN', User::tableName() . ' AS CU', 'UI.CON_UID=CU.ID'],
  50. // ['LEFT JOIN', User::tableName() . ' AS RU', 'UI.REC_UID=RU.ID'],
  51. // ['LEFT JOIN', User::tableName() . ' AS DU', 'U.DEC_ID=DU.ID'],
  52. ],
  53. 'page' => $this->page,
  54. 'pageSize' => $this->pageSize,
  55. ]);
  56. foreach ($this->listData['list'] as $key => $value) {
  57. $cu = User::find()->select('USER_NAME, REAL_NAME')->where(["ID"=>$value['CON_UID']])->asArray()->one();
  58. $this->listData['list'][$key]['CON_USER_NAME'] = $cu?$cu['USER_NAME']:"";
  59. $this->listData['list'][$key]['CON_REAL_NAME'] = $cu?$cu['REAL_NAME']:"";
  60. $ru = User::find()->select('USER_NAME, REAL_NAME')->where(["ID"=>$value['REC_UID']])->asArray()->one();
  61. $this->listData['list'][$key]['REC_USER_NAME'] = $ru?$ru['USER_NAME']:"";
  62. $this->listData['list'][$key]['REC_REAL_NAME'] = $ru?$ru['REAL_NAME']:"";
  63. $du = User::find()->select('USER_NAME, REAL_NAME')->where(["ID"=>$value['DEC_ID']])->asArray()->one();
  64. $this->listData['list'][$key]['DEC_USER_NAME'] = $du?$du['USER_NAME']:"";
  65. $un = UserNetwork::find()->select('RELATIVE_LOCATION')->where(["USER_ID"=>$value['USER_ID'],"PARENT_UID"=>$value['CON_UID']])->asArray()->one();
  66. $this->listData['list'][$key]['RELATIVE_LOCATION'] = $un?$un['RELATIVE_LOCATION']:"";
  67. // 后台访问前台的请求参数
  68. if (!$this->isExport && Yii::$app->user->validateAdminAction('user', 'login-to-frontend')) {
  69. $urlParams = BackendToFrontendApi::paramsFormat(['id' => $value['USER_ID']]);
  70. $urlParamStr = '';
  71. foreach ($urlParams as $pKey => $pValue) {
  72. $urlParamStr .= $pKey . '=' . $pValue . '&';
  73. }
  74. $urlParamStr = substr($urlParamStr, 0, -1);
  75. $this->listData['list'][$key]['BTF_URL'] = $urlParamStr;
  76. } else {
  77. $this->listData['list'][$key]['BTF_URL'] = null;
  78. }
  79. }
  80. }
  81. /**
  82. * 要展示和导出的所有字段
  83. * @return array
  84. */
  85. public function getColumn(){
  86. $decLevelConfig = Cache::getDecLevelConfig();
  87. $empLevelConfig = Cache::getEmpLevelConfig();
  88. $decRoleConfig = DecRole::getAllData();
  89. $systemConfig = UserSystem::getAllSystems();
  90. $openBankConfig = OpenBank::getAllOpenBank();
  91. $regionConfig = Cache::getRegionConfig();
  92. if(!$this->columns){
  93. $this->columns = [
  94. 'USER_ID' => null, // 这种传输方式主要是用于索引,因为过滤后的字段可能没有这种ID,但是一些功能的操作还需要用这种ID去关联,例如前台会员列表中的勾选批量状态管理,这里需要的就是USER_ID
  95. 'BTF_URL' => null,
  96. 'USER_NAME' => [
  97. 'header' => '会员编号',
  98. 'headerOther' => ['width' => '150'],
  99. ],
  100. 'REAL_NAME' => [
  101. 'header' => '会员姓名',
  102. 'headerOther' => [
  103. 'width' => '120',
  104. ],
  105. 'valueOther' => [
  106. 'tag'=>['type'=>'success', 'size' => 'small', 'class'=>'no-border']
  107. ],
  108. ],
  109. 'LOGIN_STATUS_NAME' => [
  110. 'header' => '登录状态',
  111. 'value' => function($row) {
  112. return $row['ALLOW_LOGIN'] == 1 ? '允许登录' : '禁止登录';
  113. },
  114. 'headerOther' => ['width' => '110'],
  115. ],
  116. 'STATUS' => [
  117. 'header' => '状态',
  118. 'value' => function($row) {
  119. return $row['STATUS'] == 1 ? '激活' : '锁定';
  120. },
  121. 'headerOther' => ['width' => '110'],
  122. ],
  123. 'ALLOW_LOGIN' => ['header' => '筛选允许登录','hidden'=>true],
  124. 'CREATED_AT' => [
  125. 'header' => '加入日期',
  126. 'value' => function($row) {
  127. return (new DateTime([
  128. 'value' => $row['CREATED_AT'],
  129. ]))->result();
  130. },
  131. 'headerOther' => ['width' => '170'],
  132. ],
  133. 'PERIOD_AT' => '加入期数',
  134. 'DEC_LV_NAME' => [
  135. 'header' => '实时会员级别',
  136. 'headerOther' => [
  137. 'width' => '110',
  138. ],
  139. 'value' => function($row) use($decLevelConfig) {
  140. return $decLevelConfig[$row['DEC_LV']]['LEVEL_NAME'];
  141. },
  142. 'valueOther' => [
  143. 'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
  144. ],
  145. ],
  146. 'DEC_LV_UPDATED_AT' => [
  147. 'header' => '实时调整日期',
  148. 'value' => function($row) {
  149. return (new DateTime([
  150. 'value' => $row['DEC_LV_UPDATED_AT'],
  151. ]))->result();
  152. },
  153. 'headerOther' => ['width' => '170'],
  154. ],
  155. 'LAST_DEC_LV_NAME' => [
  156. 'header' => '结算时会员级别',
  157. 'headerOther' => [
  158. 'width' => '120',
  159. ],
  160. 'value' => function($row) use($decLevelConfig) {
  161. if (!$row['LAST_DEC_LV']) {
  162. return $decLevelConfig[$row['DEC_LV']]['LEVEL_NAME'];
  163. } else {
  164. return $decLevelConfig[$row['LAST_DEC_LV']]['LEVEL_NAME'];
  165. }
  166. },
  167. 'valueOther' => [
  168. 'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
  169. ],
  170. ],
  171. 'EMP_LV_NAME' => [
  172. 'header' => '最高聘级',
  173. 'headerOther' => [
  174. 'width' => '130',
  175. ],
  176. 'value' => function($row) use($empLevelConfig) {
  177. return isset($empLevelConfig[$row['EMP_LV']])?$empLevelConfig[$row['EMP_LV']]['LEVEL_NAME']:$empLevelConfig[EmployLevel::getDefaultLevelId()]['LEVEL_NAME'];
  178. },
  179. 'valueOther' => [
  180. 'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
  181. ],
  182. ],
  183. 'LAST_EMP_LV_NAME' => [
  184. 'header' => '最新聘级',
  185. 'headerOther' => [
  186. 'width' => '130',
  187. ],
  188. 'value' => function($row) use($empLevelConfig) {
  189. return isset($empLevelConfig[$row['LAST_EMP_LV']])?$empLevelConfig[$row['LAST_EMP_LV']]['LEVEL_NAME']:$empLevelConfig[EmployLevel::getDefaultLevelId()]['LEVEL_NAME'];
  190. },
  191. 'valueOther' => [
  192. 'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
  193. ],
  194. ],
  195. // 'HIGHEST_EMP_LV_NAME' => [
  196. // 'header' => '历史最高聘级',
  197. // 'value' => function($row) use($empLevelConfig) {
  198. // if (!$row['HIGHEST_EMP_LV']){
  199. // return $empLevelConfig[$row['EMP_LV']]['LEVEL_NAME'];
  200. // } else {
  201. // return $empLevelConfig[$row['HIGHEST_EMP_LV']]['LEVEL_NAME'];
  202. // }
  203. // },
  204. // 'headerOther' => ['width' => '130'],
  205. // ],
  206. // 'HIGHEST_EMP_LV_PERIOD' => [
  207. // 'header' => '首次达到历史最高聘级的期数',
  208. // 'headerOther' => ['width' => '210'],
  209. // ],
  210. 'REC_USER_NAME' => [
  211. 'header' => '推荐编号',
  212. 'headerOther' => ['width' => '150'],
  213. ],
  214. 'REC_REAL_NAME' => [
  215. 'header' => '推荐姓名',
  216. 'headerOther' => ['width' => '100'],
  217. ],
  218. 'CON_USER_NAME' => [
  219. 'header' => '安置编号',
  220. 'headerOther' => ['width' => '150'],
  221. ],
  222. 'CON_REAL_NAME' => [
  223. 'header' => '安置姓名',
  224. 'headerOther' => ['width' => '100'],
  225. ],
  226. 'RELATIVE_LOCATION' => [
  227. 'header' => '安置区域',
  228. 'headerOther' => ['width' => '100'],
  229. ],
  230. 'ID_TYPE' => [
  231. 'header' => '证件类型',
  232. 'value' => function($row) {
  233. return $row['ID_TYPE'] == 0 ? '身份证' : '';
  234. },
  235. ],
  236. 'ID_CARD' => [
  237. 'header' => '证件号码',
  238. 'value' => function($row) {
  239. return "\t".$row['ID_CARD'];
  240. },
  241. 'headerOther' => ['width' => '180'],
  242. ],
  243. // 'SPOUSE_NAME' => [
  244. // 'header' => '配偶姓名',
  245. // 'headerOther' => ['width' => '100'],
  246. // ],
  247. // 'SPOUSE_IDCARD' => [
  248. // 'header' => '配偶身份证号',
  249. // 'value' => function($row) {
  250. // return "\t".$row['SPOUSE_IDCARD'];
  251. // },
  252. // 'headerOther' => ['width' => '180'],
  253. // ],
  254. // 'SYSTEM_NAME' => [
  255. // 'header' => '体系名称',
  256. // 'headerOther' => ['width' => '150'],
  257. // 'value' => function($row) use($systemConfig) {
  258. // return $systemConfig[$row['SYSTEM_ID']]['SYSTEM_NAME'] ?? '';
  259. // },
  260. // ],
  261. 'MOBILE' => [
  262. 'header' => '手机号码',
  263. 'value' => function($row) {
  264. return "\t".$row['MOBILE'];
  265. },
  266. 'headerOther' => ['width' => '120'],
  267. ],
  268. 'TEL' => [
  269. 'header' => '备用手机号码',
  270. 'value' => function($row) {
  271. return "\t".$row['TEL'];
  272. },
  273. 'headerOther' => ['width' => '120'],
  274. ],
  275. 'DEC_USER_NAME' => [
  276. 'header' => '所属报单中心编号',
  277. 'headerOther' => ['width' => '150'],
  278. ],
  279. 'IS_DEC' => [
  280. 'header' => '是否报单中心',
  281. 'value' => function($row) {
  282. return (new YesNo([
  283. 'value' => $row['IS_DEC'],
  284. ]))->result();
  285. },
  286. 'headerOther' => function($row) {
  287. return [
  288. 'width' => '120',
  289. ];
  290. },
  291. 'valueOther' => function($row) {
  292. return [
  293. 'tag'=>['type'=>(isset($row['IS_DEC']) && $row['IS_DEC'] )? 'success' : 'info', 'size' => 'small']
  294. ];
  295. },
  296. ],
  297. 'IS_STUDIO' => [
  298. 'header' => '是否工作室',
  299. 'value' => function($row) {
  300. return (new YesNo([
  301. 'value' => $row['IS_STUDIO'],
  302. ]))->result();
  303. },
  304. 'headerOther' => function($row) {
  305. return [
  306. 'width' => '120',
  307. ];
  308. },
  309. 'valueOther' => function($row) {
  310. return [
  311. 'tag'=>['type'=>(isset($row['IS_STUDIO']) && $row['IS_STUDIO'] )? 'success' : 'info', 'size' => 'small']
  312. ];
  313. },
  314. ],
  315. 'IS_STUDIO_CODE' => [
  316. 'header' => '工作室编号',
  317. 'headerOther' => ['width' => '120'],
  318. ],
  319. 'IS_STUDIO_DATE' => [
  320. 'header' => '工作室日期',
  321. 'headerOther' => ['width' => '120'],
  322. ],
  323. 'IS_ATLAS' => [
  324. 'header' => '是否显示图谱',
  325. 'value' => function($row) {
  326. return (new YesNo([
  327. 'value' => $row['IS_ATLAS'],
  328. ]))->result();
  329. },
  330. 'headerOther' => function($row) {
  331. return [
  332. 'width' => '120',
  333. ];
  334. },
  335. 'valueOther' => function($row) {
  336. return [
  337. 'tag'=>['type'=>(isset($row['IS_ATLAS']) && $row['IS_ATLAS'] )? 'success' : 'info', 'size' => 'small']
  338. ];
  339. },
  340. ],
  341. 'IS_RECHARGE' => [
  342. 'header' => '是否显示充值',
  343. 'value' => function($row) {
  344. return (new YesNo([
  345. 'value' => $row['IS_RECHARGE'],
  346. ]))->result();
  347. },
  348. 'headerOther' => function($row) {
  349. return [
  350. 'width' => '120',
  351. ];
  352. },
  353. 'valueOther' => function($row) {
  354. return [
  355. 'tag'=>['type'=>(isset($row['IS_RECHARGE']) && $row['IS_RECHARGE'] )? 'success' : 'info', 'size' => 'small']
  356. ];
  357. },
  358. ],
  359. 'DEC_ROLE_NAME' => [
  360. 'header' => '报单中心级别',
  361. 'headerOther' => ['width' => '110'],
  362. 'value' => function($row) use($decRoleConfig) {
  363. return $decRoleConfig[$row['DEC_ROLE_ID']]['ROLE_NAME'] ?? '';
  364. },
  365. ],
  366. 'OPEN_BANK_NAME' => [
  367. 'header' => '开户银行',
  368. 'headerOther' => ['width' => '110'],
  369. 'value' => function($row) use($openBankConfig) {
  370. return $openBankConfig[$row['OPEN_BANK']]['BANK_NAME'] ?? '';
  371. },
  372. ],
  373. 'BANK_AREA' => [
  374. 'header' => '银行地区',
  375. 'value' => function($row) use($regionConfig) {
  376. $province = $regionConfig[$row['BANK_PROVINCE']]['REGION_NAME'] ?? '';
  377. $city = $regionConfig[$row['BANK_CITY']]['REGION_NAME'] ?? '';
  378. $county = $regionConfig[$row['BANK_COUNTY']]['REGION_NAME'] ?? '';
  379. return $province.$city.$county;
  380. },
  381. 'showValue' => function($row) use($regionConfig) {
  382. $province = $regionConfig[$row['BANK_PROVINCE']]['REGION_NAME'] ?? '';
  383. $city = $regionConfig[$row['BANK_CITY']]['REGION_NAME'] ?? '';
  384. $county = $regionConfig[$row['BANK_COUNTY']]['REGION_NAME'] ?? '';
  385. return '<div class="addr" title='.$province.$city.$county.'>'.$province.$city.$county.'</div>';
  386. },
  387. 'headerOther' => [
  388. 'width' => '200'
  389. ],
  390. ],
  391. 'BANK_ADDRESS' => [
  392. 'header' => '开户地址',
  393. 'headerOther' => ['width' => '250'],
  394. 'showValue' => function($row) {
  395. return '<div class="addr" title='.$row['BANK_ADDRESS'].'>'.$row['BANK_ADDRESS'].'</div>';
  396. },
  397. ],
  398. 'BANK_NO' => [
  399. 'header' => '银行帐号',
  400. 'headerOther' => ['width' => '220'],
  401. 'value' => function($row) {
  402. return "\t".$row['BANK_NO'];
  403. },
  404. ],
  405. 'SEX' => '性别',
  406. 'NATION_NAME' => [
  407. 'header' => '民族',
  408. 'value' => function($row) {
  409. return \Yii::$app->params['nation'][$row['NATION']]['name'] ?? '';
  410. },
  411. ],
  412. 'AREA' => [
  413. 'header' => '常用地址',
  414. 'value' => function($row) use($regionConfig) {
  415. $province = $regionConfig[$row['PROVINCE']]['REGION_NAME'] ?? '';
  416. $city = $regionConfig[$row['CITY']]['REGION_NAME'] ?? '';
  417. $county = $regionConfig[$row['COUNTY']]['REGION_NAME'] ?? '';
  418. return $province.$city.$county;
  419. },
  420. 'showValue' => function($row) {
  421. $province = $regionConfig[$row['PROVINCE']]['REGION_NAME'] ?? '';
  422. $city = $regionConfig[$row['CITY']]['REGION_NAME'] ?? '';
  423. $county = $regionConfig[$row['COUNTY']]['REGION_NAME'] ?? '';
  424. return '<div class="addr" title='.$province.$city.$county.'>'.$province.$city.$county.'</div>';
  425. },
  426. 'headerOther' => [
  427. 'width' => '200'
  428. ],
  429. ],
  430. 'ADDRESS' => [
  431. 'header' => '身份证地址',
  432. 'value' => function($row) {
  433. return $row['ADDRESS'];
  434. },
  435. 'showValue' => function($row) {
  436. return '<div class="addr" title='.$row['ADDRESS'].'>'.$row['ADDRESS'].'</div>';
  437. },
  438. 'headerOther' => ['width' => '250'],
  439. ],
  440. // 'IS_AUTO_WITHDRAW' => [
  441. // 'header' => '提现方式',
  442. // 'value' => function($row) {
  443. // return $row['IS_AUTO_WITHDRAW']==0?'手动':'自动';
  444. // },
  445. // ],
  446. 'VERIFIED' => [
  447. 'header' => '实名认证',
  448. 'value' => function($row) {
  449. return (new YesNo([
  450. 'value' => $row['VERIFIED'],
  451. ]))->result();
  452. },
  453. 'headerOther' => function($row) {
  454. return [
  455. 'width' => '120',
  456. ];
  457. },
  458. 'valueOther' => function($row) {
  459. return [
  460. 'tag'=>['type'=>(isset($row['VERIFIED']) && $row['VERIFIED']) ? 'success' : 'info', 'size' => 'small']
  461. ];
  462. },
  463. ],
  464. 'VERIFIED_AT' => [
  465. 'header' => '实名认证日期',
  466. 'value' => function($row) {
  467. return (new DateTime([
  468. 'value' => $row['VERIFIED_AT'],
  469. ]))->result();
  470. },
  471. 'headerOther' => ['width' => '170'],
  472. ],
  473. // 'IS_DIRECT_SELLER' => [
  474. // 'header' => '是否直销员',
  475. // 'value' => function($row) {
  476. // return (new YesNo([
  477. // 'value' => $row['IS_DIRECT_SELLER'],
  478. // ]))->result();
  479. // },
  480. // 'valueOther' => function($row) {
  481. // return [
  482. // 'tag'=>['type'=>(isset($row['IS_DIRECT_SELLER']) && $row['IS_DIRECT_SELLER']) ? 'success' : 'info', 'size' => 'small']
  483. // ];
  484. // },
  485. // 'headerOther' => function($row) {
  486. // return [
  487. // 'width' => '120',
  488. // ];
  489. // },
  490. // ],
  491. // 'IS_SYSTEM_LEADER' => [
  492. // 'header' => '是否体系领导人',
  493. // 'value' => function($row) {
  494. // return (new YesNo([
  495. // 'value' => $row['IS_SYSTEM_LEADER'],
  496. // ]))->result();
  497. // },
  498. // 'headerOther' => function($row) {
  499. // return [
  500. // 'width' => '120',
  501. // ];
  502. // },
  503. // 'valueOther' => function($row) {
  504. // return [
  505. // 'tag'=>['type'=>(isset($row['IS_SYSTEM_LEADER']) && $row['IS_SYSTEM_LEADER']) ? 'success' : 'info', 'size' => 'small']
  506. // ];
  507. // },
  508. // ],
  509. // 'IS_GROUP_LEADER' => [
  510. // 'header' => '是否团队领导人',
  511. // 'value' => function($row) {
  512. // return (new YesNo([
  513. // 'value' => $row['IS_GROUP_LEADER'],
  514. // ]))->result();
  515. // },
  516. // 'headerOther' => function($row) {
  517. // return [
  518. // 'width' => '120',
  519. // ];
  520. // },
  521. // 'valueOther' => function($row) {
  522. // return [
  523. // 'tag'=>['type'=>(isset($row['IS_GROUP_LEADER']) && $row['IS_GROUP_LEADER'] ) ? 'success' : 'info', 'size' => 'small']
  524. // ];
  525. // },
  526. // ],
  527. 'BIRTHDAY' => [
  528. 'header' => '生日',
  529. 'value' => function($row) {
  530. return date('Y-m-d', strtotime($row['BIRTHDAY']));
  531. },
  532. 'headerOther' => ['width' => '110'],
  533. ],
  534. 'ALLOW_TRANSFER' => [
  535. 'header' => '转账功能开启',
  536. 'value' => function($row) {
  537. return $row['ALLOW_TRANSFER'] == 1 ? '开启' : '关闭';
  538. },
  539. 'headerOther' => function($row) {
  540. return [
  541. 'width' => '120',
  542. ];
  543. },
  544. 'valueOther' => function($row) {
  545. return [
  546. 'tag'=>['type'=>(isset($row['ALLOW_TRANSFER']) && $row['ALLOW_TRANSFER']) ? 'success' : 'info', 'size' => 'small']
  547. ];
  548. },
  549. ],
  550. 'DEC_CLOSED' => [
  551. 'header' => '是否关闭报单',
  552. 'value' => function($row) {
  553. return (new YesNo([
  554. 'value' => $row['DEC_CLOSED'],
  555. ]))->result();
  556. },
  557. 'headerOther' => function($row) {
  558. return [
  559. 'width' => '120',
  560. ];
  561. },
  562. 'valueOther' => function($row) {
  563. return [
  564. 'tag'=>['type'=>(isset($row['DEC_CLOSED']) && $row['DEC_CLOSED']) ? 'info' : 'success', 'size' => 'small']
  565. ];
  566. },
  567. ],
  568. 'IS_MODIFY_PASSWORD' => [
  569. 'header' => '密码修改状态',
  570. 'value' => function($row) {
  571. return $row['IS_MODIFY_PASSWORD'] == 1 ? '开启' : '关闭';
  572. },
  573. 'headerOther' => function($row) {
  574. return [
  575. 'width' => '120',
  576. ];
  577. },
  578. 'valueOther' => function($row) {
  579. return [
  580. 'tag'=>['type'=>(isset($row['IS_MODIFY_PASSWORD']) && $row['IS_MODIFY_PASSWORD'] )? 'success' : 'info', 'size' => 'small']
  581. ];
  582. },
  583. ],
  584. ];
  585. }
  586. return $this->columns;
  587. }
  588. /**
  589. * 前台用于筛选的类型集合
  590. * @return mixed
  591. */
  592. public function getFilterTypes()
  593. {
  594. if(!$this->filterTypes){
  595. $this->filterTypes = [
  596. 'USER_NAME'=> ['name'=> '会员编号'],
  597. 'REAL_NAME'=> ['name'=> '会员姓名'],
  598. // 'ALLOW_LOGIN'=> ['name'=> '允许登录', 'other'=> 'yesOrNo'],
  599. 'CREATED_AT'=> ['name'=> '加入日期', 'other'=> 'date'],
  600. 'PERIOD_AT'=> ['name'=> '加入期数'],
  601. 'DEC_LV_NAME'=> ['name'=> '实时会员级别', 'other'=> 'decLevel'],
  602. // 'DEC_LV_UPDATED_AT'=> ['name'=> '实时调整日期', 'other'=> 'date'],
  603. // 'LAST_DEC_LV_NAME'=> ['name'=> '结算时会员级别', 'other'=> 'decLevel'],
  604. 'EMP_LV_NAME'=> ['name'=> '最高聘级', 'other'=> 'empLevel'],
  605. 'LAST_EMP_LV_NAME'=> ['name'=> '最新聘级', 'other'=> 'empLevel'],
  606. // 'HIGHEST_EMP_LV_NAME'=> ['name'=> '历史最高聘级', 'other'=> 'empLevel'],
  607. // 'HIGHEST_EMP_LV_PERIOD'=> ['name'=> '首次达到历史最高聘级的期数'],
  608. 'REC_USER_NAME'=> ['name'=> '推荐编号'],
  609. 'CON_USER_NAME'=> ['name'=> '安置编号'],
  610. //'ID_TYPE'=> ['name'=> '证件类型', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '身份证']]],
  611. 'ID_CARD'=> ['name'=> '证件号码'],
  612. // 'SPOUSE_NAME'=> ['name'=> '配偶姓名'],
  613. // 'SPOUSE_IDCARD'=> ['name'=> '配偶身份证号'],
  614. // 'SYSTEM_NAME'=> ['name'=> '体系名称', 'other'=> 'systems'],
  615. // 'SUB_COM_NAME'=> ['name'=> '所属分公司', 'other'=> 'subCompany'],
  616. 'MOBILE'=> ['name'=> '手机号码'],
  617. // 'TEL'=> ['name'=> '备用手机号码'],
  618. 'DEC_USER_NAME'=> ['name'=> '所属报单中心编号'],
  619. 'IS_DEC'=> ['name'=> '是否报单中心', 'other'=> 'yesOrNo'],
  620. 'IS_STUDIO'=> ['name'=> '是否工作室', 'other'=> 'yesOrNo'],
  621. 'DEC_ROLE_NAME'=> ['name'=> '报单中心级别', 'other'=> 'decRole'],
  622. // 'OPEN_BANK_NAME'=> ['name'=> '开户银行', 'other'=> 'banks'],
  623. // 'BANK_AREA'=> ['name'=> '银行地区', 'other'=> 'area'],
  624. // 'BANK_ADDRESS'=> ['name'=> '开户地址'],
  625. // 'BANK_NO'=> ['name'=> '银行账号'],
  626. // 'SEX'=> ['name'=> '性别', 'other'=> 'sex'],
  627. // 'NATION_NAME'=> ['name'=> '民族', 'other'=> 'nations'],
  628. 'AREA'=> ['name'=> '常用地址', 'other'=> 'area'],
  629. 'STATUS'=> ['name'=> '激活状态', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '锁定'],['id'=> 1, 'name'=> '激活']]],
  630. // 'ADDRESS'=> ['name'=> '身份证地址'],
  631. // 'IS_AUTO_WITHDRAW'=> [
  632. // 'isUserTable'=> false,
  633. // 'name'=> '提现方式',
  634. // 'other'=> 'select',
  635. // 'selectData'=> [['id'=> 0, 'name'=> '手动'], ['id'=> 1, 'name'=> '自动']]
  636. // ],
  637. // 'VERIFIED'=> ['name'=> '实名认证', 'other'=> 'yesOrNo'],
  638. // 'VERIFIED_AT'=> ['name'=> '实名认证日期', 'other'=> 'date'],
  639. // 'IS_DIRECT_SELLER'=> ['name'=> '是否直销员', 'other'=> 'yesOrNo'],
  640. // 'IS_SYSTEM_LEADER'=> ['name'=> '是否体系领导人', 'other'=> 'yesOrNo'],
  641. // 'IS_GROUP_LEADER'=> ['name'=> '是否团队领导人', 'other'=> 'yesOrNo'],
  642. // 'ALLOW_TRANSFER'=> ['name'=> '转账功能开启', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '关闭'],['id'=> 1, 'name'=> '开启']]],
  643. // 'DEC_CLOSED'=> ['name'=> '是否关闭报单', 'other'=> 'yesOrNo'],
  644. ];
  645. }
  646. return $this->filterTypes;
  647. }
  648. }