grouplogic.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sicilon_IT
  5. * Date: 2021/10/7
  6. * Time: 23:43
  7. */
  8. namespace app\index\logic;
  9. use app\index\model\groupmodel;
  10. use app\index\model\groupusermodel;
  11. use app\index\model\userinfomodel;
  12. use app\index\model\workermodel;
  13. use think\Log;
  14. class grouplogic
  15. {
  16. /*
  17. * 20211007
  18. * steelxu
  19. *
  20. */
  21. public function savenewgroup($arr)
  22. {
  23. $arr['createdate'] = date('Y-m-d H:i:s');
  24. $t_g = new groupmodel();
  25. $rid = $t_g->insinfo($arr);
  26. return $rid;
  27. }
  28. /***
  29. * 根据id获取信息
  30. *20211011
  31. * wj
  32. */
  33. public function getinfobyid($arr)
  34. {
  35. if (!isset($arr['id'])) {
  36. return backarr(0, "请求错误");
  37. }
  38. $t_g = new groupmodel();
  39. $where = [
  40. "id" => $arr['id'],
  41. ];
  42. $info = $t_g->getinfo($where);
  43. if (empty($info)) {
  44. return backarr(0, "无数据");
  45. }
  46. return backarr(1, "查询成功", $info);
  47. }
  48. /***
  49. * 获取用户信息和附加信息
  50. * count_user 组总人数
  51. * wj 20211023
  52. * eidt by steelxu
  53. * edit in 20211031
  54. * 获取创建人信息
  55. */
  56. public function getinfoallbyid($arr)
  57. {
  58. if (!isset($arr['id'])) {
  59. return backarr(0, "请求错误");
  60. }
  61. $m_g = new groupmodel();
  62. $m_gu = new groupusermodel();
  63. $where = [
  64. "id" => $arr['id'],
  65. ];
  66. $info = $m_g->getinfo($where);
  67. if (empty($info)) {
  68. return backarr(0, "无班组信息");
  69. }
  70. $id = $info['id'];
  71. //创建人信息
  72. $cuid=$info['createuid'];
  73. $t_u=new userinfomodel();
  74. $cuinfo=$t_u->selconinfobyid($cuid);
  75. $info['coninfo']=$cuinfo;
  76. //加总人数
  77. $guwhere = [
  78. 'groupid' => $id,
  79. ];
  80. $countUser = $m_gu->getList($guwhere, 'count');
  81. $info['count_user'] = $countUser;
  82. return backarr(1, "查询成功", $info);
  83. }
  84. /***
  85. * 获取我创建的班组列表
  86. * 20211012
  87. * wj
  88. */
  89. public function getlistbyuserid($arr)
  90. {
  91. $m_g = new groupmodel();
  92. if (!isset($arr['userid'])) {
  93. return backarr(0, "请求错误");
  94. }
  95. $userid = $arr['userid'];
  96. $where = ['createuid' => $userid];
  97. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  98. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  99. $count = $m_g->getList($where, 'count');
  100. if ($count <= 0) {
  101. return backarr(0, "无数据");
  102. }
  103. $list = $m_g->getList($where, 'id', $page, $size);
  104. foreach ($list as $key => &$value) {
  105. $result = $this->getinfoallbyid(['id' => $value['id']]);
  106. $list[$key] = $result['data'];
  107. }
  108. return backarr(1, "查询成功", $list);
  109. }
  110. /***
  111. * 获取我参与的班组列表
  112. * 20211012
  113. * wj
  114. */
  115. public function getpartinlistbyuserid($arr)
  116. {
  117. $m_g = new groupmodel();
  118. if (!isset($arr['userid'])) {
  119. return backarr(0, "请求错误");
  120. }
  121. $userid = $arr['userid'];
  122. $where = ['gu.userid' => $userid];
  123. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  124. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  125. $count = $m_g->getpartinlist($where, 'count');
  126. if ($count <= 0) {
  127. return backarr(0, "无数据");
  128. }
  129. $list = $m_g->getpartinlist($where, 'g.*,gu.createdate as partindate', $page, $size);
  130. foreach ($list as $key => &$value) {
  131. $result = $this->getinfoallbyid(['id' => $value['id']]);
  132. $list[$key] = $result['data'];
  133. }
  134. return backarr(1, "查询成功", $list);
  135. }
  136. /***
  137. * 参与班组 通过userid
  138. * 20211012
  139. * wj
  140. */
  141. public function partingroupbyuserid($arr)
  142. {
  143. $m_g = new groupmodel();
  144. $m_gu = new groupusermodel();
  145. if (!isset($arr['groupid']) || empty($arr['groupid'])) {
  146. return backarr(0, "请求错误");
  147. }
  148. if (!isset($arr['userid']) || empty($arr['userid'])) {
  149. return backarr(0, "请求错误");
  150. }
  151. $where = [
  152. 'groupid' => $arr['groupid'],
  153. 'userid' => $arr['userid'],
  154. ];
  155. $info = $m_gu->getinfo($where);
  156. if (!empty($info)) {
  157. if (1 === $info['isactive']) {
  158. return backarr(0, "用户已参与班组");
  159. }
  160. $guid = $info['id'];
  161. $updateData = [
  162. 'isactive' => 1,
  163. ];
  164. $row = $m_gu->updateinfo(['id' => $guid], $updateData);
  165. if (empty($row)) {
  166. return backarr(0, "操作失败");
  167. }
  168. } else {
  169. $arr['createdate'] = date('Y-m-d H:i:s');
  170. $guid = $m_gu->insinfo($arr);
  171. if (empty($guid)) {
  172. return backarr(0, "添加失败");
  173. }
  174. }
  175. return backarr(1, "添加成功", ['id' => $guid]);
  176. }
  177. /***
  178. * 退出班组 通过userid
  179. * 20211025
  180. * wj
  181. */
  182. public function quitgroupbyuserid($arr)
  183. {
  184. $m_g = new groupmodel();
  185. $m_gu = new groupusermodel();
  186. if (!isset($arr['groupid']) || empty($arr['groupid'])) {
  187. return backarr(0, "请求错误");
  188. }
  189. if (!isset($arr['userid']) || empty($arr['userid'])) {
  190. return backarr(0, "请求错误");
  191. }
  192. $where = [
  193. 'groupid' => $arr['groupid'],
  194. 'userid' => $arr['userid'],
  195. ];
  196. $info = $m_gu->getinfo($where);
  197. if (empty($info)) {
  198. return backarr(0, "无用户与班组关系");
  199. }
  200. if (1 !== $info['isactive']) {
  201. return backarr(0, "用户未参与班组");
  202. }
  203. $guid = $info['id'];
  204. $updateData = [
  205. 'isactive' => 0,
  206. ];
  207. $row = $m_gu->updateinfo(['id' => $guid], $updateData);
  208. if (empty($row)) {
  209. return backarr(0, "操作失败");
  210. }
  211. log::info("groupid[" . $arr['groupid'] . '],userid[' . $arr['userid'] . '],退出班组' . date('Y-m-d H:i:s'));
  212. return backarr(1, "操作成功", ['id' => $guid]);
  213. }
  214. /***
  215. * 获取参与组的用户列表 通过组id
  216. * 20211023
  217. * wj
  218. */
  219. public function getlistgroupuserbyid($arr)
  220. {
  221. if (!isset($arr['id'])) {
  222. return backarr(0, "请求错误");
  223. }
  224. $m_g = new groupmodel();
  225. $m_gu = new groupusermodel();
  226. $m_w = new workermodel();
  227. $m_u = new userinfomodel();
  228. $where = [
  229. "id" => $arr['id'],
  230. ];
  231. $info = $m_g->getinfo($where);
  232. if (empty($info)) {
  233. return backarr(0, "无班组信息");
  234. }
  235. $id = $info['id'];
  236. //加总人数
  237. $guwhere = [
  238. 'groupid' => $id,
  239. ];
  240. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  241. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  242. $list = $m_gu->getList($guwhere, '*', $page, $size);
  243. if (empty($list)) {
  244. return backarr(0, "无数据");
  245. }
  246. //工种 年龄 性别 名字 头像
  247. $userfields = ['id', 'wname', 'gender', 'wage', 'photourl'];
  248. $workerfields = ['worktype'];
  249. foreach ($list as $key => &$value) {
  250. $uid = $value['userid'];
  251. $userinfo = ['id' => $uid];
  252. $uinfo = $m_u->getinfo(['id' => $uid], $userfields);
  253. if (empty($uinfo)) {
  254. $value = $userinfo;
  255. continue;
  256. }
  257. $winfo = $m_w->getInfo(['userid' => $uid], $workerfields);
  258. $list[$key] = array_merge($userinfo, $uinfo->toArray(), $winfo->toArray());
  259. }
  260. return backarr(1, "查询成功", $list);
  261. }
  262. }