DictController.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.poyee.common.dict.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.poyee.base.dto.Result;
  6. import com.poyee.common.dict.domain.DictData;
  7. import com.poyee.common.dict.domain.DictType;
  8. import com.poyee.common.dict.query.DictQuery;
  9. import com.poyee.common.dict.service.IDictDataService;
  10. import com.poyee.common.dict.service.IDictTypeService;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import javax.annotation.Resource;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * <p>
  24. * 字典表
  25. * </p>
  26. *
  27. * @author poyi
  28. * @since 2024-10-22
  29. */
  30. @RestController
  31. @RequestMapping("/dict")
  32. @Slf4j
  33. @Api(tags = "字典表管理")
  34. public class DictController {
  35. @Resource
  36. private IDictDataService dictDataService;
  37. @Resource
  38. private IDictTypeService dictTypeService;
  39. @ApiOperation(value = "字典表type列表")
  40. @PostMapping("/type/list")
  41. public Result listDictType(@RequestBody DictType dictType) {
  42. LambdaQueryWrapper<DictType> queryWrapper = Wrappers.lambdaQuery();
  43. queryWrapper.eq(StringUtils.isNotBlank(dictType.getDictType()), DictType::getDictType, dictType.getDictType());
  44. queryWrapper.eq(dictType.getStatus() != null, DictType::getStatus, dictType.getStatus());
  45. if(StringUtils.isNotBlank(dictType.getKeyword())) {
  46. queryWrapper.nested(q -> q.like(DictType::getDictType, dictType.getKeyword())
  47. .or()
  48. .like(DictType::getDictName, dictType.getKeyword()));
  49. }
  50. queryWrapper.orderByDesc(DictType::getSord);
  51. Page<DictType> dictTypePage = new Page<>(dictType.getPageNo(),dictType.getPageSize());
  52. Page<DictType> pageInfo = dictTypeService.page(dictTypePage,queryWrapper);
  53. return Result.success(pageInfo);
  54. }
  55. @ApiOperation(value = "字典表type新增")
  56. @PostMapping("/type/add")
  57. public Result addDictType(@RequestBody DictType dictType) {
  58. dictTypeService.save(dictType);
  59. return Result.success();
  60. }
  61. @ApiOperation(value = "字典表修改,删除即修改状态为0")
  62. @PostMapping("/type/update")
  63. public Result updateDictType(@RequestBody DictType dictType) {
  64. dictTypeService.updateById(dictType);
  65. return Result.success();
  66. }
  67. @ApiOperation(value = "字典表Data列表")
  68. @PostMapping("/data/list")
  69. public Result listDictData(@RequestBody DictData dictData) {
  70. Page<DictData> dictDataPage = new Page<>(dictData.getPageNo(), dictData.getPageSize());
  71. LambdaQueryWrapper<DictData> queryWrapper = new LambdaQueryWrapper<>();
  72. queryWrapper.eq(StringUtils.isNotBlank(dictData.getDictType()), DictData::getDictType, dictData.getDictType());
  73. queryWrapper.eq(dictData.getStatus() != null, DictData::getStatus, dictData.getStatus());
  74. queryWrapper.orderByAsc(DictData::getId);
  75. Page<DictData> pageInfo = dictDataService.page(dictDataPage,queryWrapper);
  76. return Result.success(pageInfo);
  77. }
  78. @ApiOperation(value = "字典表Data新增")
  79. @PostMapping("/data/add")
  80. public Result addDictData(@RequestBody DictData dictData) {
  81. dictDataService.save(dictData);
  82. dictDataService.delDataCache(dictData.getDictType());
  83. return Result.success();
  84. }
  85. @ApiOperation(value = "字典表data修改,删除即修改状态为0")
  86. @PostMapping("/data/update")
  87. public Result updateDictData(@RequestBody DictData dictData) {
  88. dictDataService.updateById(dictData);
  89. DictData data = dictDataService.getById(dictData.getId());
  90. dictDataService.delDataCache(data.getDictType());
  91. return Result.success();
  92. }
  93. @ApiOperation(value = "字典表Data查询")
  94. @PostMapping("/data/search")
  95. public Result getDictDataList(@RequestBody DictQuery dictQuery) {
  96. List<DictData> dictDataList = dictDataService.selectDictData(dictQuery.getDictType(), dictQuery.getDictLabel(), dictQuery.getStatus(), dictQuery.isUserCache());
  97. return Result.success(dictDataList);
  98. }
  99. @ApiOperation(value = "字典表Data查询,多type,用逗号拼接")
  100. @PostMapping("/data/search/types")
  101. public Result batchQueryData(@RequestBody DictQuery dictQuery) {
  102. Map<String, List<DictData>> typeData = dictDataService.selectByTypes(dictQuery.getDictType());
  103. return Result.success(typeData);
  104. }
  105. }