AdminController.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. package com.chuanghai.video.controller;
  2. import com.chuanghai.video.core.ResponseResult;
  3. import com.chuanghai.video.entity.Admin;
  4. import com.chuanghai.video.mapper.AdminMapper;
  5. import com.chuanghai.video.util.JwtUtil;
  6. import com.chuanghai.video.util.PasswordEncryptionUtil;
  7. import com.github.pagehelper.PageHelper;
  8. import com.github.pagehelper.PageInfo;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.sql.Timestamp;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. @RestController
  16. @RequestMapping("/videoAdmin")
  17. public class AdminController {
  18. @Autowired
  19. private JwtUtil jwtUtil;
  20. @Autowired
  21. private AdminMapper adminMapper;
  22. /**
  23. * 登录
  24. *
  25. * @param admin 用户对象
  26. * @return 返回响应
  27. */
  28. @PostMapping("/login")
  29. public ResponseResult login(@RequestBody Admin admin) {
  30. try {
  31. String username = admin.getUsername();
  32. String password = admin.getPassword();
  33. if (username == null || password == null)
  34. return ResponseResult.failed("【用户名】或【密码】为空!");
  35. Admin u = new Admin();
  36. u.setUsername(username);
  37. List<Admin> login = adminMapper.login(u);
  38. // 检验用户是否在数据库中
  39. if (login.size() > 0) {
  40. String s = encryption(password);
  41. if (s.equals(login.get(0).getPassword())) {
  42. // 生成token
  43. String token = jwtUtil.generateToken(username);
  44. Map<String, String> strMap = new HashMap<>();
  45. strMap.put("token", token);
  46. return ResponseResult.success(strMap);
  47. } else {
  48. return ResponseResult.failed("【用户名】或【密码】错误!");
  49. }
  50. } else {
  51. return ResponseResult.failed("【用户名】或【密码】错误!");
  52. }
  53. } catch (Exception e) {
  54. return ResponseResult.failed("登录失败:" + e.getMessage());
  55. }
  56. }
  57. /**
  58. * 管理员用户分页列表,查询分页等
  59. *
  60. * @param pageNum 当前页
  61. * @param pageSize 每页记录数
  62. * @param name 姓名
  63. * @param phone 手机
  64. * @param adminType 用户类型
  65. * @param startTime 开始时间
  66. * @param endTime 结束时间
  67. * @return 响应结果
  68. */
  69. @GetMapping("/list")
  70. public ResponseResult list(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
  71. @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
  72. @RequestParam(value = "name", required = false) String name,
  73. @RequestParam(value = "phone", required = false) String phone,
  74. @RequestParam(value = "adminType", required = false) String adminType,
  75. @RequestParam(value = "startTime", required = false) Timestamp startTime,
  76. @RequestParam(value = "endTime", required = false) Timestamp endTime) {
  77. if (pageSize < 1)
  78. return ResponseResult.failed("每页显示记录数必须大于0!");
  79. Admin admin = new Admin();
  80. admin.setPageNum(pageNum);
  81. admin.setPageSize(pageSize);
  82. if (!"null".equals(name))
  83. admin.setName(name);
  84. if (!"null".equals(phone))
  85. admin.setPhone(phone);
  86. if (adminType != null)
  87. admin.setAdminType(adminType);
  88. if (startTime != null)
  89. admin.setStartTime(startTime);
  90. if (endTime != null)
  91. admin.setEndTime(endTime);
  92. try {
  93. PageHelper.startPage(admin.getPageNum(), admin.getPageSize());
  94. List<Admin> admins = adminMapper.list(admin);
  95. PageInfo<Admin> adminPageInfo = new PageInfo<>(admins);
  96. return ResponseResult.success(adminPageInfo);
  97. } catch (Exception e) {
  98. return ResponseResult.failed("列表失败:" + e.getMessage());
  99. }
  100. }
  101. /**
  102. * 增加用户
  103. *
  104. * @param admin 用户对象
  105. * @return 响应对象
  106. */
  107. @PostMapping("/add")
  108. public ResponseResult add(@RequestBody Admin admin) {
  109. try {
  110. Boolean aBoolean = checkColumn(admin);
  111. if (aBoolean)
  112. return ResponseResult.failed("【用户名】、【密码】、【手机】和【用户类型】为空!");
  113. List<Admin> admins = adminMapper.queryByUsernameOrPhone(admin);
  114. if (admins.size() > 0)
  115. return ResponseResult.failed("【用户名】或【手机】已被注册!");
  116. admin.setPassword(encryption(admin.getPassword()));
  117. int i = adminMapper.add(admin);
  118. if (i == 1)
  119. return ResponseResult.success("添加用户成功!");
  120. else
  121. return ResponseResult.failed("添加用户失败!");
  122. } catch (Exception e) {
  123. return ResponseResult.failed("添加用户失败:" + e.getMessage());
  124. }
  125. }
  126. private Boolean checkColumn(Admin admin) {
  127. String username = admin.getUsername();
  128. String password = admin.getPassword();
  129. String phone = admin.getPhone();
  130. String adminType = admin.getAdminType();
  131. return username == null || password == null || phone == null || adminType == null;
  132. }
  133. /**
  134. * 修改用户
  135. *
  136. * @param admin 用户对象
  137. * @return 响应对象
  138. */
  139. @PostMapping("/update")
  140. public ResponseResult update(@RequestBody Admin admin) {
  141. try {
  142. Boolean aBoolean = checkColumn(admin);
  143. if (aBoolean)
  144. return ResponseResult.failed("【用户名】、【密码】、【手机】和【用户类型】为空!");
  145. List<Admin> admins = adminMapper.queryByUsernameOrPhoneOrOthers(admin);
  146. if (admins.size() > 0)
  147. return ResponseResult.failed("用户未修改任何内容!");
  148. admin.setPassword(encryption(admin.getPassword()));
  149. int i = adminMapper.update(admin);
  150. if (i == 1)
  151. return ResponseResult.success("修改用户成功!");
  152. else
  153. return ResponseResult.failed("修改用户失败!");
  154. } catch (Exception e) {
  155. return ResponseResult.failed("修改用户失败:" + e.getMessage());
  156. }
  157. }
  158. /**
  159. * 删除用户
  160. *
  161. * @param id 记录id
  162. * @return 响应对象
  163. */
  164. @GetMapping("/delete")
  165. public ResponseResult delete(@RequestParam(value = "id") String id) {
  166. try {
  167. if (id == null) {
  168. return ResponseResult.failed("【id】为空!");
  169. } else {
  170. int i = adminMapper.delete(id);
  171. if (i == 1)
  172. return ResponseResult.success("删除用户成功!");
  173. else
  174. return ResponseResult.failed("可能没有对应的id,删除用户失败!");
  175. }
  176. } catch (Exception e) {
  177. return ResponseResult.failed("删除用户失败:" + e.getMessage());
  178. }
  179. }
  180. /**
  181. * 修改密码
  182. *
  183. * @param admin
  184. * @return
  185. */
  186. @PostMapping("/updatePassword")
  187. public ResponseResult updatePassword(@RequestBody Admin admin) {
  188. try {
  189. String id = admin.getId();
  190. String password = admin.getPassword();
  191. if (id == null || password == null)
  192. return ResponseResult.failed("【id】或【密码】为空!");
  193. // 加密处理
  194. admin.setPassword(encryption(admin.getPassword()));
  195. int i = adminMapper.update(admin);
  196. if (i == 1)
  197. return ResponseResult.success("修改密码成功!");
  198. else
  199. return ResponseResult.failed("修改密码失败!");
  200. } catch (Exception e) {
  201. return ResponseResult.failed("修改密码失败:" + e.getMessage());
  202. }
  203. }
  204. /**
  205. * 加密
  206. *
  207. * @param password
  208. * @return
  209. */
  210. private String encryption(String password) {
  211. return PasswordEncryptionUtil.md5Hash(PasswordEncryptionUtil.sha2Hash(password));
  212. }
  213. }