UserController.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?php
  2. namespace addons\RealAuth\backend\controllers;
  3. use addons\RealAuth\common\models\RealAuthUser;
  4. use addons\RealAuth\common\models\RealAuthDetail;
  5. use addons\RealAuth\common\logic\AuthLogic;
  6. use common\enums\AddonsEnum;
  7. use common\enums\DownloadEnum;
  8. use common\enums\StatusEnum;
  9. use common\enums\ApiStatusEnum;
  10. use common\helpers\csv\CsvExportHelper;
  11. use common\models\user\User;
  12. use Exception;
  13. use Yii;
  14. use common\controllers\AddonsController;
  15. /**
  16. * 会员控制器
  17. *
  18. * Class DefaultController
  19. * @package addons\RealAuth\backend\controllers
  20. */
  21. class UserController extends BaseController
  22. {
  23. public $enableCsrfValidation = false;
  24. /**
  25. * 认证会员记录
  26. *
  27. * @return string
  28. */
  29. public function actionIndex()
  30. {
  31. if ($this->request->isAjax) {
  32. if(\Yii::$app->request->post('flag') == 'EXPORT'){
  33. $post = \Yii::$app->request->post();
  34. $post['mall_id'] = $this->mall_id;
  35. $filename = '订认证记录-' . date('YmdHis').'_'.rand(10000,99999);
  36. $res = CsvExportHelper::exportDownLoadCenter($this->mall_id,$filename,DownloadEnum::TYPE_MEMBER,RealAuthUser::class,'exportHandle',$post);
  37. if ($res === false) return $this->error('加入导出任务失败'.CsvExportHelper::getStaticError());
  38. return $this->success('添加导出任务成功,任务完成后请在下载中心进行下载!');
  39. }
  40. $get = \Yii::$app->request->get();
  41. $params['where'][] = ['=', 'mall_id',$this->mall_id];
  42. /**
  43. if(isset($get['mobile']) && !empty($get['mobile'])){
  44. $params['where'][] = ['=', 'mobile',$get['mobile']];
  45. }
  46. **/
  47. if(isset($get['user_id']) && !empty($get['user_id'])){
  48. $params['where'][] = ['=', 'user_id',$get['user_id']];
  49. }
  50. if(isset($get['real_name']) && !empty($get['real_name'])){
  51. $params['where'][] = ['=', 'real_name',$get['real_name']];
  52. }
  53. if(isset($get['id_no']) && !empty($get['id_no'])){
  54. $params['where'][] = ['=', 'id_no',$get['id_no']];
  55. }
  56. if (!empty($get['data'])) {
  57. list($start, $end) = $get['data'];
  58. $end .= ' 23:59:59';
  59. $params['where'][] = ['between', 'created_at',strtotime($start), strtotime($end)];
  60. }
  61. // $params['where'][] = ['=', 'auth_type',RealAuthUser::USER];
  62. // $detail_ids = RealAuthDetail::find()->select('auth_id')->where(['auth_type'=>RealAuthUser::BUSINESS,'status'=>StatusEnum::ENABLED])->column();
  63. // if(!empty($detail_ids)){
  64. // $params['where'][] = ['not in','id',$detail_ids];
  65. // }
  66. $params['limit'] = $get['limit'] ?? 10;
  67. $params['order'] = 'id DESC';
  68. $pageData = RealAuthUser::listPage($params, false);
  69. if(!empty($pageData['list'])){
  70. $user_ids = array_column($pageData['list'],'user_id');
  71. //查询对应用户
  72. $user_list = User::lists(['where'=>[['id'=>$user_ids]],'select'=>'id,username,nickname,avatar_url,mobile']);
  73. $user_list = array_column($user_list,null,'id');
  74. foreach($pageData['list'] as $key => $val){
  75. $val['username'] = $user_list[$val['user_id']]['username'] ?? '';
  76. $val['nickname'] = $user_list[$val['user_id']]['nickname'] ?? '';
  77. $val['avatar_url'] = $user_list[$val['user_id']]['avatar_url'] ?? '';
  78. $val['mobile'] = $user_list[$val['user_id']]['mobile'] ?? '';
  79. $val['id_no'] = $val['id_no'];
  80. $pageData['list'][$key] = $val;
  81. }
  82. }
  83. $export_list = RealAuthUser::fieldsList();
  84. $pageData['export_list'] = $export_list;
  85. return $this->success('操作成功', $pageData,ApiStatusEnum::CODE_SUCCESS,JSON_UNESCAPED_UNICODE);
  86. }
  87. return $this->render('index');
  88. }
  89. /**
  90. * 企业认证记录记录
  91. *
  92. * @return string
  93. */
  94. public function actionBusiness()
  95. {
  96. if ($this->request->isAjax) {
  97. $get = \Yii::$app->request->get();
  98. $params['where'][] = ['=', 'mall_id',$this->mall_id];
  99. /**
  100. if(isset($get['mobile']) && !empty($get['mobile'])){
  101. $params['where'][] = ['=', 'mobile',$get['mobile']];
  102. }
  103. **/
  104. if(isset($get['user_id']) && !empty($get['user_id'])){
  105. $params['where'][] = ['=', 'user_id',$get['user_id']];
  106. }
  107. if(isset($get['real_name']) && !empty($get['real_name'])){
  108. $user_list = User::find()->where(['or',
  109. ['id' => $get['real_name']],
  110. ['mobile' => $get['real_name']],
  111. ['nickname' => $get['real_name']]])->select('id')->asArray()->all();
  112. $user_id_arr = array_column($user_list, 'id');
  113. $params['where'][] = ['user_id' => $user_id_arr];
  114. }
  115. if(isset($get['business_name']) && !empty($get['business_name'])){
  116. // $params['where'][] = "JSON_CONTAINS(detail,JSON_OBJECT('business_name', ".$get['business_name']."))";
  117. $params['where'][] = ['like',"json_extract(detail, '$.business_name')",$get['business_name']];
  118. }
  119. $params['where'][] = ['=', 'auth_type',RealAuthUser::BUSINESS];
  120. $params['with'] = ['auth'];
  121. $params['limit'] = $get['limit'] ?? 10;
  122. $params['order'] = 'id DESC';
  123. $pageData = RealAuthDetail::listPage($params, false);
  124. if(!empty($pageData['list'])){
  125. $user_ids = array_column($pageData['list'],'user_id');
  126. //查询对应用户
  127. $user_list = User::lists(['where'=>[['id'=>$user_ids]],'select'=>'id,username,nickname,avatar_url,mobile']);
  128. $user_list = array_column($user_list,null,'id');
  129. foreach($pageData['list'] as $key => $val){
  130. $val['username'] = $user_list[$val['user_id']]['username'] ?? '';
  131. $val['nickname'] = $user_list[$val['user_id']]['nickname'] ?? '';
  132. $val['avatar_url'] = $user_list[$val['user_id']]['avatar_url'] ?? '';
  133. $val['mobile'] = $user_list[$val['user_id']]['mobile'] ?? '';
  134. $val['id_no'] = $val['auth']['id_no'];
  135. $val['detail'] = $val['detail'];
  136. if(!is_array($val['detail'])){
  137. $val['detail'] = json_decode($val['detail'],true);
  138. }
  139. $pageData['list'][$key] = $val;
  140. }
  141. }
  142. return $this->success('操作成功', $pageData,ApiStatusEnum::CODE_SUCCESS,JSON_UNESCAPED_UNICODE);
  143. }
  144. return $this->render('business');
  145. }
  146. public function actionBusinessDetail(){
  147. if ($this->request->isAjax) {
  148. $get = \Yii::$app->request->get();
  149. $detail = RealAuthDetail::find()->with(['auth'])->where(['id'=>$get['id']])->asArray()->one();
  150. if($detail){
  151. if(!is_array($detail['detail'])){
  152. $detail['detail'] = json_decode($detail['detail'],true);
  153. }
  154. if(isset($detail['detail']['province'])){
  155. $detail['detail']['address'].= $detail['detail']['province'];
  156. }
  157. if(isset($detail['detail']['city'])){
  158. $detail['detail']['address'].= $detail['detail']['city'];
  159. }
  160. if(isset($detail['detail']['district'])){
  161. $detail['detail']['address'].= $detail['detail']['district'];
  162. }
  163. if(isset($detail['detail']['town'])){
  164. $detail['detail']['address'].= $detail['detail']['town'];
  165. }
  166. if(isset($detail['detail']['detail'])){
  167. $detail['detail']['address'].= $detail['detail']['detail'];
  168. }
  169. if(!empty($detail['auth'])){
  170. $detail['auth']['id_no'] = $detail['auth']['id_no'];
  171. }
  172. }
  173. return $this->success('操作成功', ['detail'=>$detail],ApiStatusEnum::CODE_SUCCESS,JSON_UNESCAPED_UNICODE);
  174. }
  175. return $this->render('business-detail');
  176. }
  177. public function actionBusinessApply()
  178. {
  179. $retuest = Yii::$app->request;
  180. if ($retuest->isAjax) {
  181. if ($retuest->isPost) {
  182. $params = Yii::$app->request->post();
  183. $res = Yii::$app->services->validate->validate($params,[
  184. [['status','id'], 'required'],
  185. [['remark'], 'string'],
  186. [['status','id'], 'integer'],
  187. ]);
  188. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  189. try{
  190. $logic = new AuthLogic();
  191. $logic->apply($params);
  192. }catch(\Exception $e){
  193. return $this->error($e->getMessage());
  194. }
  195. if (!$res) return $this->error(AddonsBoss::getStaticError());
  196. $this->success('修改成功');
  197. }
  198. }
  199. }
  200. }