tj
2025-06-05 2d549a04870d1315868a7cf19952b64e8071e711
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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;
    }
 
 
}