package com.poyee.common.dict.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.poyee.base.dto.Result; import com.poyee.common.dict.domain.DictData; import com.poyee.common.dict.domain.DictType; import com.poyee.common.dict.query.DictQuery; import com.poyee.common.dict.service.IDictDataService; import com.poyee.common.dict.service.IDictTypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; import java.util.Map; /** *

* 字典表 *

* * @author poyi * @since 2024-10-22 */ @RestController @RequestMapping("/dict") @Slf4j @Api(tags = "字典表管理") public class DictController { @Resource private IDictDataService dictDataService; @Resource private IDictTypeService dictTypeService; @ApiOperation(value = "字典表type列表") @PostMapping("/type/list") public Result listDictType(@RequestBody DictType dictType) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(StringUtils.isNotBlank(dictType.getDictType()), DictType::getDictType, dictType.getDictType()); queryWrapper.eq(dictType.getStatus() != null, DictType::getStatus, dictType.getStatus()); if(StringUtils.isNotBlank(dictType.getKeyword())) { queryWrapper.nested(q -> q.like(DictType::getDictType, dictType.getKeyword()) .or() .like(DictType::getDictName, dictType.getKeyword())); } queryWrapper.orderByDesc(DictType::getSord); Page dictTypePage = new Page<>(dictType.getPageNo(),dictType.getPageSize()); Page pageInfo = dictTypeService.page(dictTypePage,queryWrapper); return Result.success(pageInfo); } @ApiOperation(value = "字典表type新增") @PostMapping("/type/add") public Result addDictType(@RequestBody DictType dictType) { dictTypeService.save(dictType); return Result.success(); } @ApiOperation(value = "字典表修改,删除即修改状态为0") @PostMapping("/type/update") public Result updateDictType(@RequestBody DictType dictType) { dictTypeService.updateById(dictType); return Result.success(); } @ApiOperation(value = "字典表Data列表") @PostMapping("/data/list") public Result listDictData(@RequestBody DictData dictData) { Page dictDataPage = new Page<>(dictData.getPageNo(), dictData.getPageSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(dictData.getDictType()), DictData::getDictType, dictData.getDictType()); queryWrapper.eq(dictData.getStatus() != null, DictData::getStatus, dictData.getStatus()); queryWrapper.orderByAsc(DictData::getId); Page pageInfo = dictDataService.page(dictDataPage,queryWrapper); return Result.success(pageInfo); } @ApiOperation(value = "字典表Data新增") @PostMapping("/data/add") public Result addDictData(@RequestBody DictData dictData) { dictDataService.save(dictData); dictDataService.delDataCache(dictData.getDictType()); return Result.success(); } @ApiOperation(value = "字典表data修改,删除即修改状态为0") @PostMapping("/data/update") public Result updateDictData(@RequestBody DictData dictData) { dictDataService.updateById(dictData); DictData data = dictDataService.getById(dictData.getId()); dictDataService.delDataCache(data.getDictType()); return Result.success(); } @ApiOperation(value = "字典表Data查询") @PostMapping("/data/search") public Result getDictDataList(@RequestBody DictQuery dictQuery) { List dictDataList = dictDataService.selectDictData(dictQuery.getDictType(), dictQuery.getDictLabel(), dictQuery.getStatus(), dictQuery.isUserCache()); return Result.success(dictDataList); } @ApiOperation(value = "字典表Data查询,多type,用逗号拼接") @PostMapping("/data/search/types") public Result batchQueryData(@RequestBody DictQuery dictQuery) { Map> typeData = dictDataService.selectByTypes(dictQuery.getDictType()); return Result.success(typeData); } }