SpAdminController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. package com.pj.project4sp.admin;
  2. import java.util.List;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.pj.current.satoken.StpUserUtil;
  5. import com.pj.project.sp_admin.*;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import com.pj.current.satoken.AuthConst;
  10. import com.pj.project4sp.SP;
  11. import com.pj.project4sp.role.SpRoleUtil;
  12. import com.pj.utils.sg.AjaxError;
  13. import com.pj.utils.sg.AjaxJson;
  14. import com.pj.utils.so.SoMap;
  15. import cn.dev33.satoken.annotation.SaCheckPermission;
  16. import cn.dev33.satoken.stp.StpUtil;
  17. /**
  18. * Controller -- 系统管理员表
  19. * @author kong
  20. */
  21. @RestController
  22. @RequestMapping("/admin/")
  23. public class SpAdminController {
  24. @Autowired
  25. SpAdminMapper spAdminMapper;
  26. @Autowired
  27. SpAdminService spAdminService;
  28. @Autowired
  29. SpAdminPasswordService spAdminPasswordService;
  30. /** 增 */
  31. @RequestMapping("add")
  32. @SaCheckPermission(AuthConst.ADMIN_ADD)
  33. AjaxJson add(SpAdmin admin){
  34. long id = spAdminService.add(admin);
  35. return AjaxJson.getSuccessData(id);
  36. }
  37. /** 删 */
  38. @RequestMapping("delete")
  39. @SaCheckPermission(AuthConst.ADMIN_LIST)
  40. AjaxJson delete(long id){
  41. // 不能自己删除自己
  42. if(StpUtil.getLoginIdAsLong() == id) {
  43. return AjaxJson.getError("不能自己删除自己");
  44. }
  45. int line = spAdminMapper.delete(id);
  46. return AjaxJson.getByLine(line);
  47. }
  48. /** 删 - 根据id列表 */
  49. @RequestMapping("deleteByIds")
  50. @SaCheckPermission(AuthConst.ADMIN_LIST)
  51. AjaxJson deleteByIds(){
  52. // 不能自己删除自己
  53. List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class);
  54. if(ids.contains(StpUtil.getLoginIdAsLong())) {
  55. return AjaxJson.getError("不能自己删除自己");
  56. }
  57. // 开始删除
  58. int line = SP.publicMapper.deleteByIds("sp_admin", ids);
  59. return AjaxJson.getByLine(line);
  60. }
  61. /** 改 - name */
  62. @RequestMapping("updatePhone")
  63. @SaCheckPermission(AuthConst.ADMIN_LIST)
  64. AjaxJson update(SpAdmin obj){
  65. int line = spAdminMapper.updatePhone(obj);
  66. return AjaxJson.getByLine(line);
  67. }
  68. @RequestMapping("updateName")
  69. @SaCheckPermission(AuthConst.ADMIN_LIST)
  70. AjaxJson updateName(SpAdmin obj){
  71. int line = spAdminMapper.updateName(obj);
  72. return AjaxJson.getByLine(line);
  73. }
  74. /** 改密码 */
  75. @RequestMapping("updatePassword")
  76. @SaCheckPermission({AuthConst.ADMIN_LIST, AuthConst.DEV})
  77. AjaxJson updatePassword(long id, String password){
  78. int line = spAdminPasswordService.updatePassword(id, password);
  79. return AjaxJson.getByLine(line);
  80. }
  81. /** 改头像 */
  82. @RequestMapping("updateAvatar")
  83. @SaCheckPermission(AuthConst.ADMIN_LIST)
  84. AjaxJson updateAvatar(long id, String avatar){
  85. int line = SP.publicMapper.updateColumnById("sp_admin", "avatar", avatar, id);
  86. return AjaxJson.getByLine(line);
  87. }
  88. /** 改头像 */
  89. @RequestMapping("updateNickName")
  90. @SaCheckPermission(AuthConst.ADMIN_LIST)
  91. AjaxJson updateNickName(long id, String nickname){
  92. int line = SP.publicMapper.updateColumnById("sp_admin", "nickname", nickname, id);
  93. return AjaxJson.getByLine(line);
  94. }
  95. /** 改状态 */
  96. @RequestMapping("updateStatus")
  97. @SaCheckPermission({AuthConst.ADMIN_LIST})
  98. public AjaxJson updateStatus(long id, int status) {
  99. // 验证对方是否为超管
  100. if(StpUtil.hasPermission(id, AuthConst.DEV)){
  101. return AjaxJson.getError("抱歉,对方角色为最高权限,您暂时无法完成此操作");
  102. }
  103. // 修改状态
  104. SP.publicMapper.updateColumnById("sp_admin", "status", status, id);
  105. // 如果是禁用,就将其强制注销
  106. if(status == 2) {
  107. StpUtil.logout(id);
  108. }
  109. return AjaxJson.getSuccess();
  110. }
  111. /** 改角色 */
  112. @RequestMapping("updateRole")
  113. @SaCheckPermission({AuthConst.ADMIN_LIST})
  114. AjaxJson updateRole(long id, String roleId){
  115. // 改角色
  116. int line = SP.publicMapper.updateColumnById("sp_admin", "role_id", roleId, id);
  117. AjaxError.throwByLine(line);
  118. // 清缓存
  119. SpRoleUtil.clearRoleIdCache(id);
  120. // 返回
  121. return AjaxJson.getSuccess();
  122. }
  123. /** 查 */
  124. @RequestMapping("getById")
  125. @SaCheckPermission(AuthConst.ADMIN_LIST)
  126. AjaxJson getById(long id){
  127. Object data = spAdminMapper.getById(id);
  128. return AjaxJson.getSuccessData(data);
  129. }
  130. /** 返回当前 Admin 信息 */
  131. @RequestMapping("getByCurr")
  132. AjaxJson getByCurr() {
  133. SpAdmin admin = SpAdminUtil.getCurrAdmin();
  134. return AjaxJson.getSuccessData(admin);
  135. }
  136. /** 查 - 集合 */
  137. @RequestMapping("getList")
  138. @SaCheckPermission(AuthConst.ADMIN_LIST)
  139. AjaxJson getList(){
  140. SoMap so = SoMap.getRequestSoMap();
  141. if (!StpUserUtil.isSuperAdmin()) {
  142. so.put("deptId",StpUserUtil.getDeptId());
  143. }
  144. List<SpAdmin> list = spAdminMapper.getList(so.startPage());
  145. return AjaxJson.getPageData(so.getDataCount(), list);
  146. }
  147. /** 模拟指定账号登录 */
  148. @RequestMapping("runAs")
  149. @SaCheckPermission({AuthConst.ADMIN_LIST, AuthConst.DEV})
  150. AjaxJson runAs(long adminId) {
  151. // 如果不存在这个账号
  152. if(SpAdminUtil.spAdminMapper.getById(adminId) == null) {
  153. return AjaxJson.getError("未找到账号:" + adminId);
  154. }
  155. // 如果要模拟的账号就是当前账号
  156. if(StpUtil.getLoginIdAsLong() == adminId) {
  157. return AjaxJson.getError("不能自己模拟自己");
  158. }
  159. // 获取这个人的token
  160. String token = StpUtil.createLoginSession(adminId);
  161. return AjaxJson.getSuccessData(token);
  162. }
  163. @RequestMapping("updateDept")
  164. public AjaxJson updateDept(){
  165. SoMap so = SoMap.getRequestSoMap();
  166. Long id=so.getLong("id");
  167. Long deptId=so.getLong("deptId");
  168. spAdminService.updateDept(id,deptId);
  169. return AjaxJson.getSuccess();
  170. }
  171. }