Update AreaController.java

cyj
pbvfus8to 8 months ago
parent 3a7a370525
commit 65fa627568

@ -27,38 +27,55 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
* AreaControllerArea
* ID
* @author lgh on 2018/10/26. * @author lgh on 2018/10/26.
*/ */
@RestController @RestController
@RequestMapping("/admin/area") @RequestMapping("/admin/area")
public class AreaController { public class AreaController {
// 自动注入AreaService用于调用与地区相关的业务逻辑方法
@Autowired @Autowired
private AreaService areaService; private AreaService areaService;
/** /**
* *
* AreaPageParam
* AreaServicepageServerResponseEntity
* @param area
* @param page
* @return ServerResponseEntityIPage<Area>
*/ */
@GetMapping("/page") @GetMapping("/page")
@PreAuthorize("@pms.hasPermission('admin:area:page')") @PreAuthorize("@pms.hasPermission('admin:area:page')")
public ServerResponseEntity<IPage<Area>> page(Area area,PageParam<Area> page) { public ServerResponseEntity<IPage<Area>> page(Area area, PageParam<Area> page) {
IPage<Area> sysUserPage = areaService.page(page, new LambdaQueryWrapper<Area>()); IPage<Area> sysUserPage = areaService.page(page, new LambdaQueryWrapper<Area>());
return ServerResponseEntity.success(sysUserPage); return ServerResponseEntity.success(sysUserPage);
} }
/** /**
* *
* Area
* AreaServicelist使LambdaQueryWrapper
* ServerResponseEntity
* @param area
* @return ServerResponseEntityList<Area>
*/ */
@GetMapping("/list") @GetMapping("/list")
@PreAuthorize("@pms.hasPermission('admin:area:list')") @PreAuthorize("@pms.hasPermission('admin:area:list')")
public ServerResponseEntity<List<Area>> list(Area area) { public ServerResponseEntity<List<Area>> list(Area area) {
List<Area> areas = areaService.list(new LambdaQueryWrapper<Area>() List<Area> areas = areaService.list(new LambdaQueryWrapper<Area>()
.like(area.getAreaName() != null, Area::getAreaName, area.getAreaName())); .like(area.getAreaName()!= null, Area::getAreaName, area.getAreaName()));
return ServerResponseEntity.success(areas); return ServerResponseEntity.success(areas);
} }
/** /**
* id * id
* AreaServicelistByPidID
* ServerResponseEntity
* @param pid ID
* @return ServerResponseEntityList<Area>
*/ */
@GetMapping("/listByPid") @GetMapping("/listByPid")
public ServerResponseEntity<List<Area>> listByPid(Long pid) { public ServerResponseEntity<List<Area>> listByPid(Long pid) {
@ -67,7 +84,11 @@ public class AreaController {
} }
/** /**
* * ID
* IDAreaServicegetById
* ServerResponseEntity
* @param id ID
* @return ServerResponseEntityArea
*/ */
@GetMapping("/info/{id}") @GetMapping("/info/{id}")
@PreAuthorize("@pms.hasPermission('admin:area:info')") @PreAuthorize("@pms.hasPermission('admin:area:info')")
@ -77,12 +98,17 @@ public class AreaController {
} }
/** /**
* *
* ID
* AreaServiceremoveAreaCacheByParentIdID
* AreaServicesaveServerResponseEntity
* @param area @Valid
* @return ServerResponseEntityVoid
*/ */
@PostMapping @PostMapping
@PreAuthorize("@pms.hasPermission('admin:area:save')") @PreAuthorize("@pms.hasPermission('admin:area:save')")
public ServerResponseEntity<Void> save(@Valid @RequestBody Area area) { public ServerResponseEntity<Void> save(@Valid @RequestBody Area area) {
if (area.getParentId() != null) { if (area.getParentId()!= null) {
Area parentArea = areaService.getById(area.getParentId()); Area parentArea = areaService.getById(area.getParentId());
area.setLevel(parentArea.getLevel() + 1); area.setLevel(parentArea.getLevel() + 1);
areaService.removeAreaCacheByParentId(area.getParentId()); areaService.removeAreaCacheByParentId(area.getParentId());
@ -92,17 +118,23 @@ public class AreaController {
} }
/** /**
* *
* IDareaDb
*
* hasSameName
* AreaServiceupdateByIdIDServerResponseEntity
* @param area @Valid
* @return ServerResponseEntityVoid
*/ */
@PutMapping @PutMapping
@PreAuthorize("@pms.hasPermission('admin:area:update')") @PreAuthorize("@pms.hasPermission('admin:area:update')")
public ServerResponseEntity<Void> update(@Valid @RequestBody Area area) { public ServerResponseEntity<Void> update(@Valid @RequestBody Area area) {
Area areaDb = areaService.getById(area.getAreaId()); Area areaDb = areaService.getById(area.getAreaId());
// 判断当前省市区级别如果是1级、2级则不能修改级别不能修改成别人的下级 // 判断当前省市区级别如果是1级、2级则不能修改级别不能修改成别人的下级
if(Objects.equals(areaDb.getLevel(), AreaLevelEnum.FIRST_LEVEL.value()) && !Objects.equals(area.getLevel(),AreaLevelEnum.FIRST_LEVEL.value())){ if (Objects.equals(areaDb.getLevel(), AreaLevelEnum.FIRST_LEVEL.value()) &&!Objects.equals(area.getLevel(), AreaLevelEnum.FIRST_LEVEL.value())) {
throw new YamiShopBindException("不能改变一级行政地区的级别"); throw new YamiShopBindException("不能改变一级行政地区的级别");
} }
if(Objects.equals(areaDb.getLevel(),AreaLevelEnum.SECOND_LEVEL.value()) && !Objects.equals(area.getLevel(),AreaLevelEnum.SECOND_LEVEL.value())){ if (Objects.equals(areaDb.getLevel(), AreaLevelEnum.SECOND_LEVEL.value()) &&!Objects.equals(area.getLevel(), AreaLevelEnum.SECOND_LEVEL.value())) {
throw new YamiShopBindException("不能改变二级行政地区的级别"); throw new YamiShopBindException("不能改变二级行政地区的级别");
} }
hasSameName(area); hasSameName(area);
@ -112,7 +144,12 @@ public class AreaController {
} }
/** /**
* *
* IDAreaServicegetById
* AreaServiceremoveByIdID
* ServerResponseEntity
* @param id ID
* @return ServerResponseEntityVoid
*/ */
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('admin:area:delete')") @PreAuthorize("@pms.hasPermission('admin:area:delete')")
@ -123,11 +160,17 @@ public class AreaController {
return ServerResponseEntity.success(); return ServerResponseEntity.success();
} }
/**
*
* LambdaQueryWrapperIDID
* AreaServicecount0
* @param area
*/
private void hasSameName(Area area) { private void hasSameName(Area area) {
long count = areaService.count(new LambdaQueryWrapper<Area>() long count = areaService.count(new LambdaQueryWrapper<Area>()
.eq(Area::getParentId, area.getParentId()) .eq(Area::getParentId, area.getParentId())
.eq(Area::getAreaName, area.getAreaName()) .eq(Area::getAreaName, area.getAreaName())
.ne(Objects.nonNull(area.getAreaId()) && !Objects.equals(area.getAreaId(), 0L), Area::getAreaId, area.getAreaId()) .ne(Objects.nonNull(area.getAreaId()) &&!Objects.equals(area.getAreaId(), 0L), Area::getAreaId, area.getAreaId())
); );
if (count > 0) { if (count > 0) {
throw new YamiShopBindException("该地区已存在"); throw new YamiShopBindException("该地区已存在");

Loading…
Cancel
Save