From 8e102493d836940afca4c8167ec1ceb89a5357ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com> Date: Thu, 27 Jun 2024 16:14:25 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F#5739=20DictResolver=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AD=97=E5=85=B8=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=86=85?= =?UTF-8?q?=E9=83=A8=E8=B0=83=E7=94=A8=EF=BC=8C=E4=B8=8D=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E4=BA=8Etoken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/api/feign/RemoteDictService.java | 4 +- .../admin/controller/SysDictController.java | 388 ++++++++++-------- 2 files changed, 212 insertions(+), 180 deletions(-) diff --git a/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteDictService.java b/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteDictService.java index f17c7611a..a3c2e5fe9 100644 --- a/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteDictService.java +++ b/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteDictService.java @@ -3,6 +3,7 @@ import com.pig4cloud.pig.admin.api.entity.SysDictItem; import com.pig4cloud.pig.common.core.constant.ServiceNameConstants; import com.pig4cloud.pig.common.core.util.R; +import com.pig4cloud.pig.common.feign.annotation.NoToken; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,7 +24,8 @@ public interface RemoteDictService { * @param type 字典类型 * @return 同类型字典 */ - @GetMapping("/dict/type/{type}") + @NoToken + @GetMapping("/dict/remote/type/{type}") R> getDictByType(@PathVariable("type") String type); } diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java index ecfafb018..0231e6e14 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java @@ -30,6 +30,7 @@ import com.pig4cloud.pig.common.core.constant.CacheConstants; import com.pig4cloud.pig.common.core.util.R; import com.pig4cloud.pig.common.log.annotation.SysLog; +import com.pig4cloud.pig.common.security.annotation.Inner; import com.pig4cloud.plugin.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; @@ -59,184 +60,213 @@ @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class SysDictController { - private final SysDictService sysDictService; - - private final SysDictItemService sysDictItemService; - - /** - * 通过ID查询字典信息 - * @param id ID - * @return 字典信息 - */ - @GetMapping("/details/{id}") - public R getById(@PathVariable Long id) { - return R.ok(sysDictService.getById(id)); - } - - /** - * 查询字典信息 - * @param query 查询信息 - * @return 字典信息 - */ - @GetMapping("/details") - public R getDetails(@ParameterObject SysDict query) { - return R.ok(sysDictService.getOne(Wrappers.query(query), false)); - } - - /** - * 分页查询字典信息 - * @param page 分页对象 - * @return 分页对象 - */ - @GetMapping("/page") - public R getDictPage(@ParameterObject Page page, @ParameterObject SysDict sysDict) { - return R.ok(sysDictService.page(page, - Wrappers.lambdaQuery() - .eq(StrUtil.isNotBlank(sysDict.getSystemFlag()), SysDict::getSystemFlag, sysDict.getSystemFlag()) - .like(StrUtil.isNotBlank(sysDict.getDictType()), SysDict::getDictType, sysDict.getDictType()))); - } - - /** - * 通过字典类型查找字典 - * @param type 类型 - * @return 同类型字典 - */ - @GetMapping("/type/{type}") - @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.isEmpty()") - public R> getDictByType(@PathVariable String type) { - return R.ok(sysDictItemService.list(Wrappers.query().lambda().eq(SysDictItem::getDictType, type))); - } - - /** - * 添加字典 - * @param sysDict 字典信息 - * @return success、false - */ - @SysLog("添加字典") - @PostMapping - @PreAuthorize("@pms.hasPermission('sys_dict_add')") - public R save(@Valid @RequestBody SysDict sysDict) { - sysDictService.save(sysDict); - return R.ok(sysDict); - } - - /** - * 删除字典,并且清除字典缓存 - * @param ids ID - * @return R - */ - @SysLog("删除字典") - @DeleteMapping - @PreAuthorize("@pms.hasPermission('sys_dict_del')") - @CacheEvict(value = CacheConstants.DICT_DETAILS, allEntries = true) - public R removeById(@RequestBody Long[] ids) { - return R.ok(sysDictService.removeDictByIds(ids)); - } - - /** - * 修改字典 - * @param sysDict 字典信息 - * @return success/false - */ - @PutMapping - @SysLog("修改字典") - @PreAuthorize("@pms.hasPermission('sys_dict_edit')") - public R updateById(@Valid @RequestBody SysDict sysDict) { - return sysDictService.updateDict(sysDict); - } - - /** - * 分页查询 - * @param name 名称或者字典项 - * @return - */ - @GetMapping("/list") - public R getDictList(String name) { - return R.ok(sysDictService.list(Wrappers.lambdaQuery() - .like(StrUtil.isNotBlank(name), SysDict::getDictType, name) - .or() - .like(StrUtil.isNotBlank(name), SysDict::getDescription, name))); - } - - /** - * 分页查询 - * @param page 分页对象 - * @param sysDictItem 字典项 - * @return - */ - @GetMapping("/item/page") - public R getSysDictItemPage(Page page, SysDictItem sysDictItem) { - return R.ok(sysDictItemService.page(page, Wrappers.query(sysDictItem))); - } - - /** - * 通过id查询字典项 - * @param id id - * @return R - */ - @GetMapping("/item/details/{id}") - public R getDictItemById(@PathVariable("id") Long id) { - return R.ok(sysDictItemService.getById(id)); - } - - /** - * 查询字典项详情 - * @param query 查询条件 - * @return R - */ - @GetMapping("/item/details") - public R getDictItemDetails(SysDictItem query) { - return R.ok(sysDictItemService.getOne(Wrappers.query(query), false)); - } - - /** - * 新增字典项 - * @param sysDictItem 字典项 - * @return R - */ - @SysLog("新增字典项") - @PostMapping("/item") - @CacheEvict(value = CacheConstants.DICT_DETAILS, allEntries = true) - public R save(@RequestBody SysDictItem sysDictItem) { - return R.ok(sysDictItemService.save(sysDictItem)); - } - - /** - * 修改字典项 - * @param sysDictItem 字典项 - * @return R - */ - @SysLog("修改字典项") - @PutMapping("/item") - public R updateById(@RequestBody SysDictItem sysDictItem) { - return sysDictItemService.updateDictItem(sysDictItem); - } - - /** - * 通过id删除字典项 - * @param id id - * @return R - */ - @SysLog("删除字典项") - @DeleteMapping("/item/{id}") - public R removeDictItemById(@PathVariable Long id) { - return sysDictItemService.removeDictItem(id); - } - - /** - * 同步缓存字典 - * @return R - */ - @SysLog("同步字典") - @PutMapping("/sync") - public R sync() { - return sysDictService.syncDictCache(); - } - - @ResponseExcel - @GetMapping("/export") - public List export(SysDictItem sysDictItem) { - return sysDictItemService.list(Wrappers.query(sysDictItem)); - } + private final SysDictService sysDictService; + + private final SysDictItemService sysDictItemService; + + /** + * 通过ID查询字典信息 + * + * @param id ID + * @return 字典信息 + */ + @GetMapping("/details/{id}") + public R getById(@PathVariable Long id) { + return R.ok(sysDictService.getById(id)); + } + + /** + * 查询字典信息 + * + * @param query 查询信息 + * @return 字典信息 + */ + @GetMapping("/details") + public R getDetails(@ParameterObject SysDict query) { + return R.ok(sysDictService.getOne(Wrappers.query(query), false)); + } + + /** + * 分页查询字典信息 + * + * @param page 分页对象 + * @return 分页对象 + */ + @GetMapping("/page") + public R getDictPage(@ParameterObject Page page, @ParameterObject SysDict sysDict) { + return R.ok(sysDictService.page(page, + Wrappers.lambdaQuery() + .eq(StrUtil.isNotBlank(sysDict.getSystemFlag()), SysDict::getSystemFlag, sysDict.getSystemFlag()) + .like(StrUtil.isNotBlank(sysDict.getDictType()), SysDict::getDictType, sysDict.getDictType()))); + } + + + /** + * 添加字典 + * + * @param sysDict 字典信息 + * @return success、false + */ + @SysLog("添加字典") + @PostMapping + @PreAuthorize("@pms.hasPermission('sys_dict_add')") + public R save(@Valid @RequestBody SysDict sysDict) { + sysDictService.save(sysDict); + return R.ok(sysDict); + } + + /** + * 删除字典,并且清除字典缓存 + * + * @param ids ID + * @return R + */ + @SysLog("删除字典") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('sys_dict_del')") + @CacheEvict(value = CacheConstants.DICT_DETAILS, allEntries = true) + public R removeById(@RequestBody Long[] ids) { + return R.ok(sysDictService.removeDictByIds(ids)); + } + + /** + * 修改字典 + * + * @param sysDict 字典信息 + * @return success/false + */ + @PutMapping + @SysLog("修改字典") + @PreAuthorize("@pms.hasPermission('sys_dict_edit')") + public R updateById(@Valid @RequestBody SysDict sysDict) { + return sysDictService.updateDict(sysDict); + } + + /** + * 分页查询 + * + * @param name 名称或者字典项 + * @return + */ + @GetMapping("/list") + public R getDictList(String name) { + return R.ok(sysDictService.list(Wrappers.lambdaQuery() + .like(StrUtil.isNotBlank(name), SysDict::getDictType, name) + .or() + .like(StrUtil.isNotBlank(name), SysDict::getDescription, name))); + } + + /** + * 分页查询 + * + * @param page 分页对象 + * @param sysDictItem 字典项 + * @return + */ + @GetMapping("/item/page") + public R getSysDictItemPage(Page page, SysDictItem sysDictItem) { + return R.ok(sysDictItemService.page(page, Wrappers.query(sysDictItem))); + } + + /** + * 通过id查询字典项 + * + * @param id id + * @return R + */ + @GetMapping("/item/details/{id}") + public R getDictItemById(@PathVariable("id") Long id) { + return R.ok(sysDictItemService.getById(id)); + } + + /** + * 查询字典项详情 + * + * @param query 查询条件 + * @return R + */ + @GetMapping("/item/details") + public R getDictItemDetails(SysDictItem query) { + return R.ok(sysDictItemService.getOne(Wrappers.query(query), false)); + } + + /** + * 新增字典项 + * + * @param sysDictItem 字典项 + * @return R + */ + @SysLog("新增字典项") + @PostMapping("/item") + @CacheEvict(value = CacheConstants.DICT_DETAILS, allEntries = true) + public R save(@RequestBody SysDictItem sysDictItem) { + return R.ok(sysDictItemService.save(sysDictItem)); + } + + /** + * 修改字典项 + * + * @param sysDictItem 字典项 + * @return R + */ + @SysLog("修改字典项") + @PutMapping("/item") + public R updateById(@RequestBody SysDictItem sysDictItem) { + return sysDictItemService.updateDictItem(sysDictItem); + } + + /** + * 通过id删除字典项 + * + * @param id id + * @return R + */ + @SysLog("删除字典项") + @DeleteMapping("/item/{id}") + public R removeDictItemById(@PathVariable Long id) { + return sysDictItemService.removeDictItem(id); + } + + /** + * 同步缓存字典 + * + * @return R + */ + @SysLog("同步字典") + @PutMapping("/sync") + public R sync() { + return sysDictService.syncDictCache(); + } + + @ResponseExcel + @GetMapping("/export") + public List export(SysDictItem sysDictItem) { + return sysDictItemService.list(Wrappers.query(sysDictItem)); + } + + /** + * 通过字典类型查找字典 + * + * @param type 类型 + * @return 同类型字典 + */ + @GetMapping("/type/{type}") + @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.isEmpty()") + public R> getDictByType(@PathVariable String type) { + return R.ok(sysDictItemService.list(Wrappers.query().lambda().eq(SysDictItem::getDictType, type))); + } + + /** + * 通过字典类型查找字典 (针对feign调用) + * TODO: 兼容性方案,代码重复 + * @param type 类型 + * @return 同类型字典 + */ + @Inner + @GetMapping("/remote/type/{type}") + @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.isEmpty()") + public R> getRemoteDictByType(@PathVariable String type) { + return R.ok(sysDictItemService.list(Wrappers.query().lambda().eq(SysDictItem::getDictType, type))); + } }