package com.whdc.controller; import com.whdc.model.dto.AddressBootDto; import com.whdc.model.entity.AddressBook; import com.whdc.model.enums.VersionsType; import com.whdc.model.group.Insert; import com.whdc.model.group.Update; import com.whdc.service.IAddressBookService; import com.whdc.service.IVersionsService; 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.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 IVersionsService versionsService; // @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) { return ResultJson.ok(service.page(dto)); } @ApiOperation(value = "添加") @PostMapping(value = "save") public ResultJson insert(@RequestBody @Validated(Insert.class) AddressBook model) { if (CollectionUtils.isNotEmpty( service.lambdaQuery() .eq(AddressBook::getName,String.valueOf(model.getName()).trim()) .list()) ){ return ResultJson.error("该名称重复"); } // 添加日志 versionsService.saveInfo(model,VersionsType.ADD); // versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),null,model.getCreateId(),new Date(), VersionsType.ADD.getName())); return ResultJson.ok(service.save(model)); } @ApiOperation(value = "修改") @PostMapping(value = "edit") public ResultJson update(@RequestBody @Validated(Update.class) AddressBook model) { 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); // 不修改角色 model.setRole(byId.getRole()); return ResultJson.ok(service.updateById(model)); } @ApiOperation(value = "修改权限") @PostMapping(value = "edit") public ResultJson updateRole(@RequestBody @Validated(Update.class) AddressBook model) { AddressBook byId = service.getById(model.getId()); 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(model,VersionsType.UPDATE_ROLE); // 只修改角色 boolean update = service.lambdaUpdate().set(AddressBook::getRole, model.getRole()) .eq(AddressBook::getId, model.getId()) .update(); return ResultJson.ok(update); } @ApiOperation(value = "删除") @GetMapping(value = "del/{id}") public ResultJson delete(@PathVariable("id") Integer id) { 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)); } }