package com.cloudroam.controller.v1;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.cloudroam.common.util.PageUtil;
|
import com.cloudroam.dto.book.CreateOrUpdateBookDTO;
|
import com.cloudroam.dto.sysDict.CreateOrUpdateSysDictDTO;
|
import com.cloudroam.dto.sysDict.QuerySysDictDTO;
|
import com.cloudroam.manager.SysDictManager;
|
import com.cloudroam.service.SysDictItemService;
|
import com.cloudroam.service.SysDictService;
|
import com.cloudroam.vo.DeletedVO;
|
import com.cloudroam.vo.PageResponseVO;
|
import com.cloudroam.vo.UpdatedVO;
|
import io.github.talelin.autoconfigure.exception.ForbiddenException;
|
import io.github.talelin.autoconfigure.exception.MethodNotAllowedException;
|
import io.github.talelin.autoconfigure.exception.NotFoundException;
|
import io.github.talelin.autoconfigure.exception.ParameterException;
|
import io.github.talelin.core.annotation.Logger;
|
import io.github.talelin.core.annotation.LoginRequired;
|
import io.github.talelin.core.annotation.PermissionMeta;
|
import io.github.talelin.core.annotation.PermissionModule;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import com.cloudroam.model.SysDictDO;
|
import com.cloudroam.vo.CreatedVO;
|
|
|
import javax.validation.constraints.Min;
|
import javax.validation.constraints.Max;
|
import javax.validation.constraints.Positive;
|
import java.util.List;
|
|
/**
|
* 数据字典表前端控制器
|
*
|
* @author generator@TaoJie
|
* @since 2023-08-03
|
*/
|
@RestController
|
@RequestMapping("/v1/sysDict")
|
@PermissionModule("字典管理")
|
public class SysDictController {
|
|
@Autowired
|
private SysDictService sysDictService;
|
|
@Autowired
|
private SysDictManager sysDictManager;
|
|
@PostMapping("")
|
@LoginRequired
|
public CreatedVO create(@RequestBody @Validated CreateOrUpdateSysDictDTO validator) {
|
|
// 根据name 查看当前字典是否存在
|
|
if(sysDictService.existsSysDictName(validator)){
|
|
throw new ForbiddenException(10270);
|
};
|
sysDictService.createSysDict(validator);
|
|
return new CreatedVO();
|
}
|
|
@PutMapping("/{id}")
|
@LoginRequired
|
public UpdatedVO update(@PathVariable String id, @RequestBody @Validated CreateOrUpdateSysDictDTO validator) {
|
SysDictDO sysDictDO = sysDictService.getById(id);
|
if (sysDictDO == null) {
|
throw new NotFoundException("字典不存在");
|
}
|
validator.setId(id);
|
if(sysDictService.existsSysDictName(validator)){
|
throw new ForbiddenException(10270);
|
};
|
sysDictService.updateSysDict(sysDictDO,validator);
|
sysDictManager.updateSysDict(sysDictDO,validator);
|
return new UpdatedVO();
|
}
|
|
@DeleteMapping("/{id}")
|
@LoginRequired
|
public DeletedVO delete(@PathVariable String id) {
|
SysDictDO sysDictDO = sysDictService.getById(id);
|
if (sysDictDO == null) {
|
throw new NotFoundException("字典不存在");
|
}
|
sysDictManager.deleteSysDictById(id);
|
return new DeletedVO();
|
}
|
|
@GetMapping("/{id}")
|
public SysDictDO get(@PathVariable(value = "id") String id) {
|
|
return sysDictService.getById(id);
|
}
|
|
@PermissionMeta(value = "字典",mount = true)
|
@Logger(template = "{user.nickname} 查看了字典 ")
|
@LoginRequired
|
@GetMapping("/page")
|
public PageResponseVO<SysDictDO> page(
|
@Validated QuerySysDictDTO dto
|
) {
|
IPage<SysDictDO> iPage=sysDictService.getSysDictPage(dto);
|
return PageUtil.build(iPage);
|
}
|
|
|
@PermissionMeta(value = "列表",mount = true)
|
@GetMapping("/list")
|
@LoginRequired
|
public List<SysDictDO> list(
|
@Validated QuerySysDictDTO dto
|
) {
|
List<SysDictDO> list=sysDictService.getSysDictList(dto);
|
return list;
|
}
|
|
|
}
|