package com.whdc.controller; import cn.dev33.satoken.stp.StpUtil; import com.whdc.model.dto.AddressBootDto; import com.whdc.model.entity.AbUdR; import com.whdc.model.entity.AddressBook; import com.whdc.model.entity.User; import com.whdc.model.enums.Role; import com.whdc.model.enums.VersionsType; import com.whdc.model.group.Find; import com.whdc.model.group.Insert; import com.whdc.model.group.Update; import com.whdc.model.vo.AddressBookVo; import com.whdc.model.vo.FcVo; import com.whdc.service.*; import com.whdc.utils.ResultJson; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Objects; /** * @author xusan * @date 2024-05-11 */ @Slf4j @Api(tags = "通讯录 - Controller") @RestController @RequestMapping("/addressbook") public class AddressBookController { @Autowired private IAddressBookService service; @Autowired private IUserService userService; @Autowired private IVersionsService versionsService; @Autowired private IOrganizationService organizationsService; @Autowired private IAbUdRService abUdRService; // @ApiOperation(value = "查询所有") // @PostMapping(value = "find") // public ResultJson find(@RequestBody AddressBook dto) { // // return ResultJson.ok(service.find(dto)); // // } @ApiOperation(value = "分页查询") @PostMapping(value = "page") public ResultJson page(@RequestBody AddressBootDto dto) { dto.setUserId(String.valueOf(StpUtil.getLoginId())); return ResultJson.ok(service.page(dto)); } @ApiOperation(value = "添加") @PostMapping(value = "save") public ResultJson insert(@RequestBody @Validated(Insert.class) AddressBook model) { String role = userService.getRole(Integer.valueOf(String.valueOf(StpUtil.getLoginId()))); switch (Objects.requireNonNull(Role.getByName(role))) { case R000:return ResultJson.error("权限不足"); case R001: case R099:break; default:return ResultJson.error("权限不足!!"); } if (CollectionUtils.isNotEmpty( service.lambdaQuery() .eq(AddressBook::getName,String.valueOf(model.getName()).trim()) .list()) ){ return ResultJson.error("该名称重复"); } // 添加日志 versionsService.saveInfo(model,VersionsType.ADD); model.setId(null); boolean save = service.save(model); if (save){ // 没有手机号用名字注册 if ("省防指".equals(organizationsService.getById(model.getOrganization()).getName()) && StringUtils.isBlank(model.getPhone())){ userService.register( model.getName(), model.getId(),model.getRole()); }else{ userService.register( model.getPhone(), model.getId(),model.getRole()); } // 添加关联关系 abUdRService.save(new AbUdR(model.getId(),Integer.valueOf(model.getOrganization()),null,model.getType())); } return ResultJson.ok(save); } @ApiOperation(value = "修改") @PostMapping(value = "edit") public ResultJson update(@RequestBody @Validated(Update.class) AddressBook model) { Integer loginId = Integer.valueOf(String.valueOf(StpUtil.getLoginId())); String role = userService.getRole(loginId); switch (Objects.requireNonNull(Role.getByName(role))) { case R000:{ // 不是修改自己 if (!model.getId().equals(loginId)){ return ResultJson.error("权限不足"); } }; case R001: case R099:break; default:return ResultJson.error("权限不足!!"); } AddressBook byId = service.getById(model.getId()); if (Objects.isNull(byId)){ return ResultJson.error("当前数据不存在"); } if (CollectionUtils.isNotEmpty( service.lambdaQuery() .eq(AddressBook::getName,String.valueOf(model.getName()).trim()) .ne(AddressBook::getId, model.getId()) .list()) ){ return ResultJson.error("该名称重复"); } // List list = versionsService.lambdaQuery() // .eq(Versions::getAbId, model.getId()) // .list(); // Integer version = 0; // if (CollectionUtils.isNotEmpty(list)){ // version = list // .stream().map(Versions::getVersion) // .max(Comparator.comparing(Integer::intValue)) // .get(); // }else{ // log.info("当前数据在进行修改但无相关记录;" + model.getId()); // } // // 添加日志 // versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE.getName())); versionsService.saveInfo(model,VersionsType.UPDATE); boolean data = service.updateById(model); if (data) { abUdRService.lambdaUpdate() .set(AbUdR::getDictId,model.getOrganization()) .eq(AbUdR::getAdId,model.getId()); } return ResultJson.ok(data); } @ApiOperation(value = "修改权限") @PostMapping(value = "updateRole") public ResultJson updateRole(@RequestBody @Validated(Update.class) User model) { Integer loginId = Integer.valueOf(String.valueOf(StpUtil.getLoginId())); String role = userService.getRole(loginId); switch (Objects.requireNonNull(Role.getByName(role))) { case R000: case R001: return ResultJson.error("权限不足"); case R099:break; default:return ResultJson.error("权限不足!!"); } AddressBook byId = service.getById(model.getAbId()); if (Objects.isNull(byId)){ return ResultJson.error("当前数据不存在"); } // List list = versionsService.lambdaQuery() // .eq(Versions::getAbId, model.getId()) // .list(); // Integer version = 0; // if (CollectionUtils.isNotEmpty(list)){ // version = list // .stream().map(Versions::getVersion) // .max(Comparator.comparing(Integer::intValue)) // .get(); // }else{ // log.info("当前数据在进行修改但无相关记录;" + model.getId()); // } // // 添加日志 // versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE_ROLE.getName())); versionsService.saveInfo(byId,VersionsType.UPDATE_ROLE); // 只修改角色 boolean update = userService.lambdaUpdate().set(User::getRole, model.getRole()) .eq(User::getAbId, model.getAbId()) .update(); return ResultJson.ok(update); } @ApiOperation(value = "删除") @GetMapping(value = "del/{id}") public ResultJson delete(@PathVariable("id") Integer id) { Integer loginId = Integer.valueOf(String.valueOf(StpUtil.getLoginId())); String role = userService.getRole(loginId); switch (Objects.requireNonNull(Role.getByName(role))) { case R000: case R001: return ResultJson.error("权限不足"); case R099:break; default:return ResultJson.error("权限不足!!"); } AddressBook model = service.getById(id); if (Objects.isNull(model)) { return ResultJson.error("当前数据不存在"); } // List list = versionsService.lambdaQuery() // .eq(Versions::getAbId, model.getId()) // .list(); // Integer version = 0; // if (CollectionUtils.isNotEmpty(list)){ // version = list // .stream().map(Versions::getVersion) // .max(Comparator.comparing(Integer::intValue)) // .get(); // }else{ // log.info("当前数据在进行修改但无相关记录;" + model.getId()); // } // // 添加日志 // versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.DEL.getName())); versionsService.saveInfo(model,VersionsType.DEL); return ResultJson.ok(service.removeById(id)); } @ApiOperation(value = "查询详情") @GetMapping(value = "get/{id}") public ResultJson get(@PathVariable("id") Integer id) { return ResultJson.ok(service.getById(id)); } @ApiOperation(value = "查询用户详情") @GetMapping(value = "getByUser/{userId}") public ResultJson getByUser(@PathVariable("userId") Integer userId) { User byId = userService.getById(userId); if (Objects.isNull(byId)){ return ResultJson.error("该用户不存在"); } return ResultJson.ok(service.getById(byId.getAbId())); } }