package com.template.controller; import com.template.api.RepairAdminControllerAPI; import com.template.common.utils.AesUtils; import com.template.common.utils.paramUtils; import com.template.model.enumModel.eIsSuper; import com.template.model.enumModel.eStatu; import com.template.model.pojo.RepairAdmin; import com.template.model.result.CommonResult; import com.template.model.result.PageUtils; import com.template.services.RepairAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; /** *

* 前端控制器 *

* * @author ceshi * @since 2023-07-05 */ @RestController public class RepairAdminController implements RepairAdminControllerAPI { @Autowired private RepairAdminService repairAdminService; /** * 添加账号数据 * * @param ra account 账号 * password 密码 * username 用户名称 * phone 手机号 * @return */ @Override public CommonResult InsertRepairAdmin(@RequestBody RepairAdmin ra, BindingResult bindingResult) { if (bindingResult.hasErrors()) { String st = paramUtils.getParamError(bindingResult); return CommonResult.fail(st); } int result = 0; // 帮我们自动生成id try { result = repairAdminService.insertRepairAdmin(ra); } catch (Exception e) { if (e.getCause().getMessage().contains("'repair_admin.account_un'")) { return CommonResult.fail("该账号已存在!"); } return CommonResult.fail("系统异常,添加失败!"); } return result > 0 ? CommonResult.ok() : CommonResult.fail(); } /** * 查询账户列表数据 * * @param currentPage 当前页 * @param pageCount 一页数据条数 * @param account 账号 * @param phone 手机号 * @param userName 账号名称 * @return */ @Override public CommonResult queryPageRepairAdmins(@RequestParam int currentPage, @RequestParam int pageCount, String account, String phone, String userName) { PageUtils result = repairAdminService.queryPageList(currentPage, pageCount, account, phone, userName); return CommonResult.ok(result); } /** * 根据ID冻结账号账号数据 * * @param frar id 数据ID * statu 状态 * 正常:0;冻结:1 * @return */ @Override public CommonResult freezeRepairAdminById(@RequestBody com.repair.model.request.freezeRepairAdminRequest frar, BindingResult bindingResult) { if (bindingResult.hasErrors()) { String st = paramUtils.getParamError(bindingResult); return CommonResult.fail(st); } RepairAdmin data = repairAdminService.getRepairById(frar.getId()); if (data == null) { return CommonResult.fail("当前数据不存在,解冻失败!"); } if (data.getStatu() == frar.getStatu()) { String Message = frar.getStatu() == eStatu.Freeze.getValue() ? "当前处于冻结状态,请勿重复操作!" : "当前处于未冻结状态,请勿重复操作!"; return CommonResult.fail(Message); } String success = frar.getStatu() == eStatu.Freeze.getValue() ? "冻结成功!" : "解冻成功"; String fail = frar.getStatu() == eStatu.Freeze.getValue() ? "冻结失败!" : "解冻失败"; RepairAdmin ra = new RepairAdmin(); ra.setId(frar.getId()); ra.setStatu(frar.getStatu()); int result = repairAdminService.updateRepairAdmin(ra); System.out.println(result); return result > 0 ? CommonResult.ok(success) : CommonResult.fail(fail); } /** * 根据ID删除账号数据 * * @param id id 数据ID * @return */ @Override public CommonResult deleteRepairAdminById(@RequestParam String id) { RepairAdmin data = repairAdminService.getRepairById(id); if (data == null) { return CommonResult.fail("当前数据不存在,删除失败!"); } int result = repairAdminService.deleteRepairAdminById(id); return result > 0 ? CommonResult.ok() : CommonResult.fail(); } /** * 编辑账号 * * @param ra id 数据ID * username 账号名称 * phone 手机号 * password 密码 * @return */ @Override public CommonResult updateRepairAdminById(com.repair.model.request.updateRepairAdminRequest ra, @RequestHeader("user_head") String userhead, BindingResult bindingResult) { if (bindingResult.hasErrors()) { String st = paramUtils.getParamError(bindingResult); return CommonResult.fail(st); } RepairAdmin data = repairAdminService.getRepairById(ra.getId()); if (data == null) { return CommonResult.fail("当前数据不存在,编辑失败!"); } //只有操作管理员才能编辑他人的密码 String userID = AesUtils.decrypt(userhead); if (ra.getPassword() != null && !userID.equals(ra.getId())) { RepairAdmin operateData = repairAdminService.getRepairById(userID); if(operateData == null){ return CommonResult.fail("操作身份不合法,编辑失败!"); } if(!data.getPassword().equals(AesUtils.encrypt(ra.getPassword())) && operateData.getIsSuper() != eIsSuper.Super.getValue()){ return CommonResult.fail("只有超级管理员才能更改密码!"); } } int result = repairAdminService.updateRepaiRadmin(ra); return result > 0 ? CommonResult.ok("编辑成功") : CommonResult.fail("编辑失败"); } }