rolelogic.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <?php
  2. /*
  3. * @Author: wang jun
  4. * @Date: 2021-10-29 16:16:29
  5. * @Last Modified by: wang jun
  6. * @Last Modified time: 2021-11-09 16:21:40
  7. */
  8. namespace app\index\logic;
  9. use app\index\model\rolesmodel;
  10. use app\index\model\roleusermodel;
  11. use app\index\model\webusermodel;
  12. class rolelogic
  13. {
  14. /**
  15. * 用户组新增
  16. * 20211029
  17. * wj
  18. */
  19. public function newinfo($info)
  20. {
  21. $m_r = new rolesmodel();
  22. $flagbit = $info['flag_bit'];
  23. $roleinfo = $m_r->getInfo(['flag_bit' => $flagbit], ['id']);
  24. if ($roleinfo) {
  25. return backarr(0, "数据已存在");
  26. }
  27. $id = $m_r->insertData($info);
  28. if (!$id) {
  29. return backarr(0, "操作失败");
  30. }
  31. return backarr(1, "操作成功", ['id' => $id]);
  32. }
  33. /**
  34. * 用户组修改
  35. * 20211029
  36. * wj
  37. */
  38. public function updateinfo($arr)
  39. {
  40. if (!isset($arr['id']) || empty($arr['id'])) {
  41. return backarr(0, "请求失败");
  42. }
  43. $m_r = new rolesmodel();
  44. $id = $arr['id'];
  45. $where = ['id' => $id];
  46. $rinfo = $m_r->getInfo($where);
  47. if (empty($rinfo)) {
  48. return backarr(0, "无数据");
  49. }
  50. $updateData = [];
  51. if (isset($arr['is_active']) && $rinfo['is_active'] != $arr['is_active']) {
  52. $updateData['is_active'] = $arr['is_active'];
  53. }
  54. if (isset($arr['pre_id']) && $rinfo['pre_id'] != $arr['pre_id']) {
  55. $updateData['pre_id'] = $arr['pre_id'];
  56. }
  57. if (isset($arr['flag_bit']) && $rinfo['flag_bit'] != $arr['flag_bit']) {
  58. $updateData['flag_bit'] = $arr['flag_bit'];
  59. }
  60. if (isset($arr['name']) && $rinfo['name'] != $arr['name']) {
  61. $updateData['name'] = $arr['name'];
  62. }
  63. if (empty($updateData)) {
  64. return backarr(0, "无修改数据");
  65. }
  66. $row = $m_r->updateinfo($where, $updateData);
  67. if (!$row) {
  68. return backarr(0, "操作失败");
  69. }
  70. return backarr(1, "操作成功", ['id' => $id]);
  71. }
  72. /**
  73. * 用户组删除 不使用
  74. * 20211029
  75. * wj
  76. */
  77. public function deleteinfo($arr)
  78. {
  79. if (!isset($arr['id']) || empty($arr['id'])) {
  80. return backarr(0, "请求失败");
  81. }
  82. $m_r = new rolesmodel();
  83. $id = $arr['id'];
  84. $where = ['id' => $id];
  85. $rinfo = $m_r->getInfo($where);
  86. if (empty($rinfo)) {
  87. return backarr(0, "无数据");
  88. }
  89. $row = $m_r->deleteinfo($where);
  90. if (!$row) {
  91. return backarr(0, "操作失败");
  92. }
  93. return backarr(1, "操作成功", ['id' => $id]);
  94. }
  95. /**
  96. * 加入用户组
  97. * 20211029
  98. * wj
  99. * uid 用户id
  100. * rid 组id
  101. */
  102. public function addroleuser($info)
  103. {
  104. $result = $this->checkUser($info);
  105. if (!$uinfo) {
  106. return backarr(0, "无用户数据");
  107. }
  108. if (!empty($result['ruinfo'])) {
  109. return backarr(0, "数据已存在");
  110. }
  111. $m_ru = new roleusermodel();
  112. $id = $m_ru->insertData($info);
  113. if (!$id) {
  114. return backarr(0, "操作失败");
  115. }
  116. return backarr(1, "操作成功", ['id' => $id]);
  117. }
  118. /**
  119. * 删除用户组用户
  120. * 20211029
  121. * wj
  122. */
  123. public function deleteroleuser($arr)
  124. {
  125. $id = $arr['id'];
  126. $m_ru = new roleusermodel();
  127. $row = $m_ru->deleteinfo(['id' => $id]);
  128. if (!$row) {
  129. return backarr(0, "操作失败");
  130. }
  131. return backarr(1, "操作成功", ['id' => $id]);
  132. }
  133. private function checkUser($info)
  134. {
  135. //校验用户
  136. $m_wu = new webusermodel();
  137. $uid = $info['uid'];
  138. $where = [
  139. 'id' => $uid,
  140. ];
  141. $wuinfo = $m_wu->getInfo($where);
  142. if (empty($wuinfo)) {
  143. return false;
  144. }
  145. //校验组
  146. $rid = $info['rid'];
  147. $where = [
  148. 'id' => $rid,
  149. 'is_active' => 1,
  150. ];
  151. $m_r = new rolesmodel();
  152. $rinfo = $m_r->getInfo($where);
  153. if (empty($rinfo)) {
  154. return false;
  155. }
  156. //获取关系数据
  157. $where = [
  158. 'uid' => $wuinfo['id'],
  159. 'rid' => $rinfo['id'],
  160. ];
  161. $m_ru = new roleusermodel();
  162. $ruinfo = $m_ru->getInfo($where);
  163. return [
  164. 'wuinfo' => $wuinfo,
  165. 'rinfo' => $rinfo,
  166. 'ruinfo' => $ruinfo,
  167. ];
  168. }
  169. /**
  170. * 获取顶层组
  171. */
  172. public function getlistgroupname($arr)
  173. {
  174. $where = [
  175. 'pre_id' => 0,
  176. 'is_active' => 1,
  177. ];
  178. $m_r = new rolesmodel();
  179. $list = $m_r->getList($where, '*', 1, 0);
  180. if (empty($list)) {
  181. return backarr(0, "无数据");
  182. }
  183. return backarr(1, "查询成功", $list);
  184. }
  185. /**
  186. * 获取组结构
  187. * 仅两层
  188. * 20211109
  189. * wj
  190. */
  191. public function getlisttree($arr)
  192. {
  193. $order = "id asc";
  194. $preid = !isset($arr['pre_id']) || empty($arr['pre_id']) ? 0 : $arr['pre_id'];
  195. $where = ['pre_id' => $preid];
  196. if (isset($arr['is_active'])) {
  197. if (empty($arr['is_active'])) {
  198. $where['is_active'] = 0;
  199. } else {
  200. $where['is_active'] = 1;
  201. }
  202. }
  203. $m_r = new rolesmodel();
  204. $datalist = $m_r->getList($where, '*', 1, 0, $order);
  205. if (empty($datalist)) {
  206. return backarr(0, "无数据");
  207. }
  208. $list = [];
  209. $datalist = $datalist->toArray();
  210. foreach ($datalist as $key => $value) {
  211. $list[$key] = $value;
  212. $where2 = ['pre_id' => $value['id']];
  213. if (isset($where['is_active'])) {
  214. $where2['is_active'] = $where['is_active'];
  215. }
  216. $datalist2 = $m_r->getList($where2, '*', 1, 0, $order);
  217. $datalist2 = $datalist2->toArray();
  218. if ($datalist2) {
  219. foreach ($datalist2 as $key2 => $value2) {
  220. $list[$key]['children'][] = $value2;
  221. }
  222. }
  223. }
  224. return backarr(1, "查询成功", $list);
  225. }
  226. }