package com.cloudroam.controller.v1;
|
|
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.cloudroam.bo.SysDictItemBO;
|
import com.cloudroam.common.util.PageUtil;
|
import com.cloudroam.dto.sysDict.CreateOrUpdateSysDictDTO;
|
import com.cloudroam.dto.sysDict.CreateOrUpdateSysDictItemDTO;
|
import com.cloudroam.dto.sysDict.QuerySysDictDTO;
|
import com.cloudroam.dto.sysDict.QuerySysDictItemDTO;
|
import com.cloudroam.model.SysDictDO;
|
import com.cloudroam.service.SysDictItemService;
|
import com.cloudroam.service.SysDictService;
|
import io.github.talelin.autoconfigure.exception.ForbiddenException;
|
import io.github.talelin.autoconfigure.exception.NotFoundException;
|
import io.github.talelin.core.annotation.LoginRequired;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import com.cloudroam.model.SysDictItemDO;
|
import com.cloudroam.vo.CreatedVO;
|
import com.cloudroam.vo.DeletedVO;
|
import com.cloudroam.vo.PageResponseVO;
|
import com.cloudroam.vo.UpdatedVO;
|
|
import javax.validation.constraints.Min;
|
import javax.validation.constraints.Max;
|
import javax.validation.constraints.Positive;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 数据字典详情前端控制器
|
*
|
* @author generator@TaoJie
|
* @since 2023-08-03
|
*/
|
@RestController
|
@RequestMapping("/v1/sysDictItem")
|
public class SysDictItemController {
|
|
|
@Autowired
|
private SysDictService sysDictService;
|
@Autowired
|
private SysDictItemService sysDictItemService;
|
|
|
@PostMapping("")
|
@LoginRequired
|
public CreatedVO create(@RequestBody @Validated CreateOrUpdateSysDictItemDTO validator) {
|
SysDictDO sysDictDO = sysDictService.getById(validator.getDictId());
|
if (sysDictDO == null) {
|
throw new NotFoundException("父字典不能为空");
|
}
|
//根据当前的name查看字典是否存在
|
if(sysDictItemService.existsSysDictItemByName(validator)){
|
throw new ForbiddenException(10280);
|
}
|
|
// 根据当前的value查看字典值是否存在
|
if(sysDictItemService.existsSysDictItemByValue(validator)){
|
throw new ForbiddenException(10281);
|
}
|
|
validator.setDictType(sysDictDO.getName());
|
sysDictItemService.createSysDictItem(validator);
|
return new CreatedVO(1);
|
}
|
|
@PutMapping("/{id}")
|
@LoginRequired
|
public UpdatedVO update(@RequestBody @Validated CreateOrUpdateSysDictItemDTO validator) {
|
SysDictDO sysDictDO = sysDictService.getById(validator.getDictId());
|
if (sysDictDO == null) {
|
throw new NotFoundException("父字典不能为空");
|
}
|
if(StrUtil.isBlank(validator.getId())){
|
throw new NotFoundException("传入的字典Id不能为空");
|
}
|
SysDictItemDO sysDictItemDO = sysDictItemService.getById(validator.getId());
|
if (sysDictItemDO == null) {
|
throw new NotFoundException("字典项不存在");
|
}
|
//根据当前的name查看字典是否存在
|
if(sysDictItemService.existsSysDictItemByName(validator)){
|
throw new ForbiddenException(10280);
|
}
|
|
// 根据当前的value查看字典值是否存在
|
if(sysDictItemService.existsSysDictItemByValue(validator)){
|
throw new ForbiddenException(10281);
|
}
|
SysDictItemDO updateSysDictItemDO=new SysDictItemDO();
|
BeanUtils.copyProperties(validator,updateSysDictItemDO);
|
updateSysDictItemDO.setUpdateTime(new Date());
|
sysDictItemService.updateById(updateSysDictItemDO);
|
return new UpdatedVO();
|
}
|
|
@DeleteMapping("/{id}")
|
@LoginRequired
|
public DeletedVO delete(@PathVariable String id) {
|
if(StrUtil.isBlank(id)){
|
throw new NotFoundException("字典id不能为空");
|
}
|
SysDictItemDO sysDictItemDO = sysDictItemService.getById(id);
|
if (sysDictItemDO == null) {
|
throw new NotFoundException("字典项不存在");
|
}
|
sysDictItemService.removeById(id);
|
|
return new DeletedVO();
|
|
}
|
|
@GetMapping("/{id}")
|
public SysDictItemDO get(@PathVariable(value = "id") @Positive(message = "id不能为空") String id) {
|
return sysDictItemService.getById(id);
|
}
|
|
@GetMapping("/page")
|
public PageResponseVO<SysDictItemDO> page(
|
@Validated QuerySysDictItemDTO dto
|
) {
|
IPage<SysDictItemDO> iPage=sysDictItemService.getSysDictItemPage(dto);
|
return PageUtil.build(iPage);
|
}
|
|
@GetMapping("/list")
|
public List<SysDictItemDO> list(
|
@Validated QuerySysDictItemDTO dto
|
) {
|
List<SysDictItemDO> list=sysDictItemService.getSysDictItemList(dto);
|
return list;
|
}
|
|
|
@GetMapping("/list2")
|
public List<SysDictItemBO> list2(
|
@Validated QuerySysDictItemDTO dto
|
) {
|
List<SysDictItemBO> list=sysDictItemService.getSysDictItemWithDictList(dto);
|
return list;
|
}
|
|
|
}
|