RepairAdminController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. package com.repair.controller;
  2. import com.repair.api.RepairAdminControllerAPI;
  3. import com.repair.common.utils.*;
  4. import com.repair.model.enumModel.eIsSuper;
  5. import com.repair.model.enumModel.eStatu;
  6. import com.repair.model.pojo.RepairAdmin;
  7. import com.repair.model.request.freezeRepairAdminRequest;
  8. import com.repair.model.request.updateRepairAdminRequest;
  9. import com.repair.model.result.CommonResult;
  10. import com.repair.model.result.PageUtils;
  11. import com.repair.services.RepairAdminService;
  12. import org.apache.poi.ss.usermodel.Workbook;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.validation.BindingResult;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RequestHeader;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.lang.reflect.InvocationTargetException;
  21. import java.util.ArrayList;
  22. import java.util.HashMap;
  23. import java.util.List;
  24. import java.util.Map;
  25. /**
  26. * <p>
  27. * 前端控制器
  28. * </p>
  29. *
  30. * @author ceshi
  31. * @since 2023-07-05
  32. */
  33. @RestController
  34. public class RepairAdminController implements RepairAdminControllerAPI {
  35. @Autowired
  36. private RepairAdminService repairAdminService;
  37. /**
  38. * 重置密码
  39. * @param id
  40. * @return
  41. */
  42. @Override
  43. public CommonResult resetPassword(String id) {
  44. RepairAdmin ra = new RepairAdmin();
  45. ra.setId(id);
  46. ra.setPassword(AesUtils.encrypt("123456"));
  47. int updateResult = repairAdminService.updateRepairAdmin(ra);
  48. if(updateResult <= 0){
  49. return CommonResult.fail("重置密码失败");
  50. }
  51. return CommonResult.ok("重置密码成功");
  52. }
  53. /**
  54. * 添加账号数据
  55. * 只有超级管理员能添加账号
  56. * @param ra account 账号
  57. * password 密码
  58. * username 用户名称
  59. * phone 手机号
  60. * @return
  61. */
  62. @Override
  63. public CommonResult InsertRepairAdmin(@RequestBody RepairAdmin ra, @RequestHeader("user_head") String userhead, BindingResult bindingResult) {
  64. if (bindingResult.hasErrors()) {
  65. String st = paramUtils.getParamError(bindingResult);
  66. return CommonResult.fail(st);
  67. }
  68. String userID = AesUtils.decrypt(userhead);
  69. RepairAdmin operateData = repairAdminService.getRepairById(userID);
  70. if (!operateData.getIsSuper().equals(eIsSuper.Super.getValue())) {
  71. return CommonResult.fail("只有超级管理员才能添加账号!");
  72. }
  73. // //根据微校卡号判断移动端是否存在数据
  74. // RepairUser user = repairUserService.getRepairByCardNumber(ra.getCardNumber());
  75. // if(user == null){
  76. // return CommonResult.fail("此账号无法与移动端用户信息进行绑定,新增账号失败");
  77. // }
  78. RepairAdmin data = repairAdminService.getRepairByAccount(ra.getAccount());
  79. if (data != null) {
  80. return CommonResult.fail("该账号已存在!");
  81. }
  82. RepairAdmin cardNumber = repairAdminService.getRepairByCardnumber(ra.getCardNumber());
  83. if(cardNumber != null){
  84. if(cardNumber.getIsMobile() == 1){
  85. ra.setId(cardNumber.getId());
  86. ra.setIsMobile(0);
  87. int updateResult = repairAdminService.updateRepairAdmin(ra);
  88. if(updateResult > 0){
  89. return CommonResult.ok("添加成功");
  90. }
  91. }else{
  92. return CommonResult.fail("该微校卡号已绑定其他账号!");
  93. }
  94. }
  95. ra.setIsMobile(0);
  96. int result = repairAdminService.insertRepairAdmin(ra); // 帮我们自动生成id
  97. return result > 0 ? CommonResult.ok("添加成功") : CommonResult.fail("添加失败");
  98. }
  99. /**
  100. * 查询账户列表数据
  101. *
  102. * @param currentPage 当前页
  103. * @param pageCount 一页数据条数
  104. * @param account 账号
  105. * @param startTime 开始时间
  106. * @param endTime 结束时间
  107. * @return
  108. */
  109. @Override
  110. public CommonResult queryPageRepairAdmins(@RequestParam int currentPage, @RequestParam int pageCount, String account, String startTime, String endTime) {
  111. if (startTime != null && endTime != null) {
  112. try {
  113. startTime = TimeExchange.getStartOfDayStr(TimeExchange.StringToDate(startTime, "yyyy-MM-dd"));
  114. endTime = TimeExchange.getEndOfDayStr(TimeExchange.StringToDate(endTime, "yyyy-MM-dd"));
  115. } catch (Exception e) {
  116. }
  117. }
  118. PageUtils<RepairAdmin> result = repairAdminService.queryPageList(currentPage, pageCount, account, startTime, endTime);
  119. return CommonResult.ok(result);
  120. }
  121. /**
  122. * 根据ID冻结账号账号数据
  123. *
  124. * @param frar id 数据ID
  125. * statu 状态
  126. * 正常:0;冻结:1
  127. * @return
  128. */
  129. @Override
  130. public CommonResult freezeRepairAdminById(@RequestBody freezeRepairAdminRequest frar, BindingResult bindingResult) {
  131. if (bindingResult.hasErrors()) {
  132. String st = paramUtils.getParamError(bindingResult);
  133. return CommonResult.fail(st);
  134. }
  135. RepairAdmin data = repairAdminService.getRepairById(frar.getId());
  136. if (data == null) {
  137. return CommonResult.fail("当前数据不存在,解冻失败!");
  138. }
  139. if (data.getStatu().equals(frar.getStatu())) {
  140. String Message = frar.getStatu().equals(eStatu.Freeze.getValue()) ? "当前处于冻结状态,请勿重复操作!" : "当前处于未冻结状态,请勿重复操作!";
  141. return CommonResult.fail(Message);
  142. }
  143. String success = frar.getStatu().equals(eStatu.Freeze.getValue()) ? "冻结成功!" : "解冻成功";
  144. String fail = frar.getStatu().equals(eStatu.Freeze.getValue()) ? "冻结失败!" : "解冻失败";
  145. RepairAdmin ra = new RepairAdmin();
  146. ra.setId(frar.getId());
  147. ra.setStatu(frar.getStatu());
  148. int result = repairAdminService.updateRepairAdmin(ra);
  149. System.out.println(result);
  150. return result > 0 ? CommonResult.ok(success) : CommonResult.fail(fail);
  151. }
  152. /**
  153. * 根据ID删除账号数据
  154. *
  155. * @param id id 数据ID
  156. * @return
  157. */
  158. @Override
  159. public CommonResult deleteRepairAdminById(@RequestParam String id) {
  160. RepairAdmin data = repairAdminService.getRepairById(id);
  161. if (data == null) {
  162. return CommonResult.fail("当前数据不存在,删除失败!");
  163. }
  164. int result = repairAdminService.deleteRepairAdminById(id);
  165. return result > 0 ? CommonResult.ok() : CommonResult.fail();
  166. }
  167. /**
  168. * 编辑账号
  169. *
  170. * @param ra id 数据ID
  171. * username 账号名称
  172. * phone 手机号
  173. * password 密码
  174. * @return
  175. */
  176. @Override
  177. public CommonResult updateRepairAdminById(updateRepairAdminRequest ra, @RequestHeader("user_head") String userhead, BindingResult bindingResult) {
  178. if (bindingResult.hasErrors()) {
  179. String st = paramUtils.getParamError(bindingResult);
  180. return CommonResult.fail(st);
  181. }
  182. RepairAdmin data = repairAdminService.getRepairById(ra.getId());
  183. if (data == null) {
  184. return CommonResult.fail("当前数据不存在,编辑失败!");
  185. }
  186. //只有操作管理员才能编辑他人的密码
  187. String userID = AesUtils.decrypt(userhead);
  188. if (ra.getPassword() != null && !userID.equals(ra.getId())) {
  189. RepairAdmin operateData = repairAdminService.getRepairById(userID);
  190. if (operateData == null) {
  191. return CommonResult.fail("操作身份不合法,编辑失败!");
  192. }
  193. if (!data.getPassword().equals(AesUtils.encrypt(ra.getPassword())) && !operateData.getIsSuper().equals(eIsSuper.Super.getValue())) {
  194. return CommonResult.fail("只有超级管理员才能更改密码!");
  195. }
  196. }
  197. int result = repairAdminService.updateRepaiRadmin(ra);
  198. return result > 0 ? CommonResult.ok("编辑成功") : CommonResult.fail("编辑失败");
  199. }
  200. /**
  201. * 账号管理导出表单数据
  202. * @param account 账号
  203. * @param startTime 起始时间
  204. * @param endTime 结束时间
  205. * @param response 响应流
  206. * @throws NoSuchMethodException
  207. * @throws InstantiationException
  208. * @throws IllegalAccessException
  209. * @throws InvocationTargetException
  210. */
  211. @Override
  212. public void downloadRepairAdminExcel(String account, String startTime, String endTime, HttpServletResponse response) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
  213. Map<String, String> map = new HashMap<>();
  214. //表头与键值对的映射关系
  215. map.put("username", "昵称");
  216. map.put("account", "账号");
  217. map.put("phone", "手机号");
  218. map.put("updateTimeStr", "创建时间");
  219. if (startTime != null && endTime != null) {
  220. try {
  221. startTime = TimeExchange.getStartOfDayStr(TimeExchange.StringToDate(startTime, "yyyy-MM-dd"));
  222. endTime = TimeExchange.getEndOfDayStr(TimeExchange.StringToDate(endTime, "yyyy-MM-dd"));
  223. } catch (Exception e) {
  224. }
  225. }
  226. List<RepairAdmin> datas = repairAdminService.queryRepairAdminList(account, startTime, endTime);
  227. List<String> orderList = new ArrayList<>();
  228. orderList.add("username");
  229. orderList.add("account");
  230. orderList.add("phone");
  231. orderList.add("updateTimeStr");
  232. //导出逻辑 这里的list是从导入里面哪来的 map1与map不一样 orderList这里为空
  233. Workbook workbook = ExcelExportUtil.createWorkbook(datas, map, 1, "账号管理表", orderList);
  234. ExcelUtils.excelDownload(workbook, "账号管理.xlsx", response);
  235. }
  236. }