UserCompany.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\common\User as UserCommon;
  4. use think\facade\Db;
  5. use think\facade\Validate;
  6. //【公司账号查询】
  7. class UserCompany extends Base
  8. {
  9. //列表
  10. public function getList()
  11. {
  12. $param = $this->request->only(['account_id' => '', 'status' => '', 'page' => 1, 'size' => 10], 'post', 'trim');
  13. $userCommon = new UserCommon();
  14. $rs = json_decode($userCommon->handle('userCompanyList', $param), true);
  15. if (isset($rs['code']) && $rs['code'] == 0) {
  16. //补充角色信息
  17. foreach ($rs['data']['list'] as &$item) {
  18. $tmp = Db::name('user_role')
  19. ->alias('a')
  20. ->field('b.role_name,b.level,c.name item_name')
  21. ->leftJoin('role b', 'b.id=a.roleid')
  22. ->leftJoin('company_item c', 'c.id=a.itemid and c.companyNo=a.companyNo')
  23. ->where(['a.uid' => $item['account_id'], 'is_del' => 0, 'a.companyNo' => $item['companyCode']])
  24. ->findOrEmpty();
  25. $item['role_name'] = $tmp['role_name'] ?? '';
  26. $item['level'] = $tmp['level'] ?? '';
  27. $item['item_name'] = $tmp['item_name'] ?? '';
  28. }
  29. }
  30. return json_show($rs['code'], $rs['message'], $rs['data']);
  31. }
  32. //编辑
  33. public function update()
  34. {
  35. $param = $this->request->only(['account_id', 'companyNo', 'roleid', 'itemid'], 'post');
  36. $val = Validate::rule([
  37. 'account_id|账户id' => 'require|number|gt:0',
  38. 'companyNo|公司编码' => 'require|length:18',
  39. 'roleid|角色' => 'require|number|gt:0',
  40. 'itemid|部门id' => 'require|number|gt:0',
  41. ]);
  42. if (!$val->check($param)) return json_show(1004, $val->getError());
  43. $role = Db::name('role')
  44. ->field('id')
  45. ->where('id', $param['roleid'])
  46. ->where('level', '<>', 1)
  47. ->findOrEmpty();
  48. if (empty($role)) return json_show(1004, '角色不存在或等级不符合要求');
  49. $item = Db::name('company_item')
  50. ->field('id')
  51. ->where(['id' => $param['itemid'], 'companyNo' => $param['companyNo']])
  52. ->findOrEmpty();
  53. if (empty($item)) return json_show(1004, '该公司部门不存在');
  54. // $tmp = Db::name('user_role')
  55. // ->field('id')
  56. // ->where(['uid' => $param['account_id'], 'companyNo' => $param['companyNo'], 'is_del' => 0])
  57. // ->findOrEmpty();
  58. $date = date('Y-m-d H:i:s');
  59. $rs = Db::name('user_role')
  60. ->where(['uid' => $param['account_id'], 'companyNo' => $param['companyNo'], 'is_del' => 0])
  61. ->update(['roleid' => $param['roleid'], 'itemid' => $param['itemid'], 'updatetime' => $date]);
  62. // $userCommon = new UserCommon();
  63. // $rs = json_decode($userCommon->handle('userCompanyUpdate', $param), true);
  64. return $rs ? json_show(0, '修改成功') : json_show(1004, '修改失败');
  65. }
  66. //启禁用
  67. public function status()
  68. {
  69. $param = $this->request->only(['id', 'status'], 'post', 'trim');
  70. $val = Validate::rule([
  71. 'id' => 'require|number|gt:0',
  72. 'status' => 'require|number|in:0,1',
  73. ]);
  74. if ($val->check($param) == false) return json_show(1004, $val->getError());
  75. $userCommon = new UserCommon();
  76. $rs = json_decode($userCommon->handle('userCompanyStatus', $param), true);
  77. if (!isset($rs['code']) || $rs['code'] != 0) return json_show($rs['code'], $rs['message'], $rs['data']);
  78. else {
  79. $res = Db::name('user_role')
  80. ->where('status', '<>', $param['status'])
  81. ->where(['uid' => $rs['data']['account_id'], 'companyNo' => $rs['data']['companyNo'], 'is_del' => 0])
  82. ->update(['status' => $param['status'], 'updatetime' => date('Y-m-d H:i:s')]);
  83. return $res ? json_show(0, '操作成功') : json_show(1004, '操作失败');
  84. }
  85. }
  86. //详情
  87. public function info()
  88. {
  89. $param = $this->request->post(['id'], 'post', 'trim');
  90. $userCommon = new UserCommon();
  91. $rs = json_decode($userCommon->handle('userCompanyInfo', $param), true);
  92. if (isset($rs['code']) && $rs['code'] == 0) {
  93. $tmp = Db::name('user_role')
  94. ->alias('a')
  95. ->field('b.role_name,b.level,c.name item_name')
  96. ->leftJoin('role b', 'b.id=a.roleid')
  97. ->leftJoin('company_item c', 'c.id=a.itemid and c.companyNo=a.companyNo')
  98. ->where(['a.uid' => $rs['data']['account_id'], 'is_del' => 0, 'a.companyNo' => $rs['data']['companyCode']])
  99. ->findOrEmpty();
  100. $rs['data']['role_name'] = $tmp['role_name'] ?? '';
  101. $rs['data']['level'] = $tmp['level'] ?? '';
  102. $rs['data']['item_name'] = $tmp['item_name'] ?? '';
  103. }
  104. return json_show($rs['code'], $rs['message'], $rs['data']);
  105. }
  106. }