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 page( @Validated QuerySysDictDTO dto ) { IPage iPage=sysDictService.getSysDictPage(dto); return PageUtil.build(iPage); } @PermissionMeta(value = "列表",mount = true) @GetMapping("/list") @LoginRequired public List list( @Validated QuerySysDictDTO dto ) { List list=sysDictService.getSysDictList(dto); return list; } }