MemberController.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace App\Http\Controllers\AdminApi;
  3. use App\Http\Controllers\AdminController;
  4. use App\Models\Member;
  5. use App\Servers\ESign\ESignServer;
  6. use App\Servers\System\CommonServer;
  7. use App\Servers\System\JobServer;
  8. class MemberController extends AdminController
  9. {
  10. /**
  11. * 获取用户列表
  12. * @return \Illuminate\Http\JsonResponse
  13. */
  14. function getMemberList(){
  15. $where = [['is_del',0]];
  16. $list = Member::where($where)
  17. ->select(['id','name','phone','id_number','psnId','authUrl','authShortUrl','realnameStatus','authorizeUserInfo','created_at'])
  18. ->orderBy('id','desc')
  19. ->paginate(10);
  20. return $this->apiResponseSuccess('获取列表成功', [
  21. 'items' => $list->items(),
  22. 'total' => $list->total(),
  23. 'limit' => 10,
  24. ]);
  25. }
  26. /**
  27. * 通知用户认证
  28. * @return \Illuminate\Http\JsonResponse
  29. */
  30. function noticeMemberAuth(){
  31. $id=request()->input('id','');//id
  32. if(empty($id)) return $this->apiResponseError('缺少必要参数');
  33. $info = Member::where('id',$id)->first();
  34. if (empty($info)) {
  35. return $this->apiResponseError('没有找到该记录');
  36. }
  37. //查询个人认证信息
  38. ESignServer::creatServer()->personsidentityinfo($id,$info->{'phone'},$info->{'name'},$info->{'id_number'});
  39. return $this->apiResponseSuccess('成功');
  40. }
  41. /**
  42. * 添加&编辑用户
  43. * @return \Illuminate\Http\JsonResponse
  44. * @throws \Throwable
  45. */
  46. function saveMember(){
  47. $id=request()->input('id','');//id
  48. $name=request()->input('name','');//姓名
  49. $phone=request()->input('phone','');//电话
  50. $id_number=request()->input('id_number','');//身份证号
  51. if (empty($name)) return $this->apiResponseError('请填写姓名');
  52. if (mb_strlen($name) > 100) return $this->apiResponseError('姓名最大100');
  53. if (empty($phone)) return $this->apiResponseError('请填写手机号');
  54. if (!CommonServer::creatServer()->verifyPhoneNumber($phone)) return $this->apiResponseError('手机号错误');
  55. if (empty($id_number)) return $this->apiResponseError('请填写身份证号');
  56. $authType = 'PSN';
  57. $data = compact('name','phone','id_number','authType');
  58. $phoneChanged = false;//手机号是否发生变更
  59. if(empty($id)){//不存在id就创建
  60. //检查该身份证号是否存在
  61. $member = Member::where('id_number',$id_number)->where('is_del',0)->select(['id'])->first();
  62. if (!empty($member)){
  63. return $this->apiResponseError('身份证号已存在');
  64. }
  65. $res = Member::create($data);
  66. $m_id = $res->{'id'};
  67. }else{//存在就更新
  68. $info = Member::where('id',$id)->select(['id','phone'])->first();
  69. if (empty($info)) {
  70. return $this->apiResponseError('没有找到该记录');
  71. }
  72. //检查该身份证号是否存在
  73. $member = Member::where('id_number',$id_number)->where('id','<>',$id)->where('is_del',0)->select(['id'])->first();
  74. if (!empty($member)){
  75. return $this->apiResponseError('身份证号已存在');
  76. }
  77. $phoneChanged = $info->{'phone'} != $phone;
  78. $res = $info->update($data);
  79. $m_id = $id;
  80. }
  81. if ($phoneChanged) {
  82. //手机号变更:同步e签宝侧账号手机号(重新下发实名认证链接,用户完成认证后换绑)
  83. ESignServer::creatServer()->psnphonechange($m_id,$phone,$name,$id_number);
  84. } else {
  85. //查询个人认证信息
  86. ESignServer::creatServer()->personsidentityinfo($m_id,$phone,$name,$id_number);
  87. }
  88. if ($res) {
  89. return $this->apiResponseSuccess('操作成功');
  90. } else {
  91. return $this->apiResponseError('操作失败');
  92. }
  93. }
  94. /**
  95. * 获取详情
  96. * @return \Illuminate\Http\JsonResponse
  97. */
  98. function getMemberInfo()
  99. {
  100. $id = request()->input('id','');//获取需要删除的id
  101. if(empty($id)) return $this->apiResponseError('缺少必要参数');
  102. $info = Member::where('id',$id)->where('is_del',0)->select(['name','phone','id_number','id'])->first();
  103. if (empty($info)) {
  104. return $this->apiResponseError('没有找到该记录');
  105. }
  106. return $this->apiResponseSuccess('成功',$info);
  107. }
  108. }