feat: 数据字典(一级),功能完善
This commit is contained in:
@@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -15,6 +19,9 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@TableName(value ="ts_dict")
|
@TableName(value ="ts_dict")
|
||||||
@Data
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
public class DictEntity implements Serializable {
|
public class DictEntity implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 主键id
|
* 主键id
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,7 +31,7 @@ public class DictController {
|
|||||||
*/
|
*/
|
||||||
@ApiOperation(value = "分页获取所有数据字典")
|
@ApiOperation(value = "分页获取所有数据字典")
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public ResponseMessage page(@RequestBody DictQueryVo dictQueryVo) {
|
public ResponseMessage page(@Valid DictQueryVo dictQueryVo) {
|
||||||
return dictService.list(dictQueryVo);
|
return dictService.list(dictQueryVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +39,7 @@ public class DictController {
|
|||||||
* 修改一个字典
|
* 修改一个字典
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "修改数据字典")
|
@ApiOperation(value = "修改数据字典")
|
||||||
@PostMapping("/edit")
|
@PutMapping("/edit")
|
||||||
public ResponseMessage edit(@RequestBody DictVo dictVo) {
|
public ResponseMessage edit(@RequestBody DictVo dictVo) {
|
||||||
return dictService.edit(dictVo);
|
return dictService.edit(dictVo);
|
||||||
}
|
}
|
||||||
@@ -47,7 +48,7 @@ public class DictController {
|
|||||||
* 删除一个字典
|
* 删除一个字典
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "删除数据字典")
|
@ApiOperation(value = "删除数据字典")
|
||||||
@PostMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ResponseMessage delete(@PathVariable String id) {
|
public ResponseMessage delete(@PathVariable String id) {
|
||||||
return dictService.delete(id);
|
return dictService.delete(id);
|
||||||
}
|
}
|
||||||
@@ -58,7 +59,7 @@ public class DictController {
|
|||||||
@ApiOperation(value = "新增数据字典")
|
@ApiOperation(value = "新增数据字典")
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
public ResponseMessage add(@RequestBody DictVo dictVo) {
|
public ResponseMessage add(@RequestBody DictVo dictVo) {
|
||||||
return dictService.add(id);
|
return dictService.add(dictVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ package com.adc.da.sys.service;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.adc.da.eo.DictEntity;
|
import com.adc.da.eo.DictEntity;
|
||||||
|
import com.adc.da.sys.util.BeanCopyUtils;
|
||||||
import com.adc.da.sys.vo.DictQueryVo;
|
import com.adc.da.sys.vo.DictQueryVo;
|
||||||
import com.adc.da.sys.vo.DictVo;
|
import com.adc.da.sys.vo.DictVo;
|
||||||
import com.adc.da.util.http.ResponseMessage;
|
import com.adc.da.util.http.ResponseMessage;
|
||||||
import com.adc.da.util.http.Result;
|
import com.adc.da.util.http.Result;
|
||||||
|
import com.adc.da.util.utils.UUID;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -17,18 +19,19 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ThinkBook
|
* @author ThinkBook
|
||||||
* @description 针对表【ts_dict】的数据库操作Service实现
|
* @description 针对表【ts_dict】的数据库操作Service实现
|
||||||
* @createDate 2023-05-05 10:28:12
|
* @createDate 2023-05-05 10:28:12
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DictServiceImpl extends ServiceImpl<DictDao, DictEntity>
|
public class DictServiceImpl extends ServiceImpl<DictDao, DictEntity>
|
||||||
implements IDictService {
|
implements IDictService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DictDao dictDao;
|
private DictDao dictDao;
|
||||||
@@ -37,27 +40,22 @@ public class DictServiceImpl extends ServiceImpl<DictDao, DictEntity>
|
|||||||
public ResponseMessage list(DictQueryVo dictQueryVo) {
|
public ResponseMessage list(DictQueryVo dictQueryVo) {
|
||||||
LambdaQueryWrapper<DictEntity> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<DictEntity> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(DictEntity::getDelFlag, 0);
|
wrapper.eq(DictEntity::getDelFlag, 0);
|
||||||
IPage<DictEntity> page = new Page<>();
|
IPage<DictEntity> page = new Page<>(dictQueryVo.getPageNo(), dictQueryVo.getPageSize());
|
||||||
page.setCurrent(dictQueryVo.getPageNo());
|
|
||||||
page.setSize(dictQueryVo.getPageSize());
|
|
||||||
page(page, wrapper);
|
page(page, wrapper);
|
||||||
IPage<DictVo> dictVoPage = new Page<>();
|
|
||||||
BeanUtil.copyProperties(page, dictVoPage);
|
|
||||||
|
|
||||||
List<DictVo> dictVos = page.getRecords().stream().map(dict -> {
|
IPage<DictVo> returnPage = new Page<>();
|
||||||
DictVo dictVo = new DictVo();
|
List<DictVo> dictVos = BeanCopyUtils.copyBeanList(page.getRecords(), DictVo.class);
|
||||||
BeanUtil.copyProperties(dict, dictVo);
|
|
||||||
return dictVo;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
dictVoPage.setRecords(dictVos);
|
returnPage.setRecords(dictVos);
|
||||||
return Result.success(dictVoPage);
|
return Result.success(returnPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseMessage edit(DictVo dictVo) {
|
public ResponseMessage edit(DictVo dictVo) {
|
||||||
try {
|
try {
|
||||||
DictEntity dictEntity = new DictEntity();
|
DictEntity dictEntity = new DictEntity();
|
||||||
|
//字典编码不可变
|
||||||
|
dictVo.setDicCode(null);
|
||||||
BeanUtil.copyProperties(dictVo, dictEntity);
|
BeanUtil.copyProperties(dictVo, dictEntity);
|
||||||
dictDao.updateById(dictEntity);
|
dictDao.updateById(dictEntity);
|
||||||
log.info("编辑数据字典{}成功", dictEntity.getDicName());
|
log.info("编辑数据字典{}成功", dictEntity.getDicName());
|
||||||
@@ -70,7 +68,13 @@ public class DictServiceImpl extends ServiceImpl<DictDao, DictEntity>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseMessage delete(String id) {
|
public ResponseMessage delete(String id) {
|
||||||
|
DictEntity entity = getById(id);
|
||||||
|
if (entity == null) {
|
||||||
|
return Result.error("字典不存在");
|
||||||
|
}
|
||||||
|
|
||||||
DictEntity dictEntity = new DictEntity();
|
DictEntity dictEntity = new DictEntity();
|
||||||
|
dictEntity.setId(id);
|
||||||
dictEntity.setDelFlag(1);
|
dictEntity.setDelFlag(1);
|
||||||
if (updateById(dictEntity)) {
|
if (updateById(dictEntity)) {
|
||||||
return Result.success("删除成功");
|
return Result.success("删除成功");
|
||||||
@@ -78,6 +82,31 @@ public class DictServiceImpl extends ServiceImpl<DictDao, DictEntity>
|
|||||||
return Result.error("删除失败");
|
return Result.error("删除失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResponseMessage add(DictVo dictVo) {
|
||||||
|
//判断字典名是否重复
|
||||||
|
Integer dicNameCount = query().eq("dic_name", dictVo.getDicName()).count();
|
||||||
|
if (dicNameCount > 0) {
|
||||||
|
return Result.error("字典名重复");
|
||||||
|
}
|
||||||
|
//判断字典编码是否重复
|
||||||
|
Integer dicCodeCount = query().eq("dic_code", dictVo.getDicCode()).count();
|
||||||
|
if (dicCodeCount > 0) {
|
||||||
|
return Result.error("字典编码重复");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
DictEntity dictEntity = BeanCopyUtils.copyBean(dictVo, DictEntity.class);
|
||||||
|
dictEntity.setId(UUID.randomUUID10())
|
||||||
|
.setCreateTime(new Date())
|
||||||
|
.setDelFlag(0);
|
||||||
|
save(dictEntity);
|
||||||
|
return Result.success("新增成功");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.info("新增字典失败", e);
|
||||||
|
}
|
||||||
|
return Result.error("新增失败");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package com.adc.da.sys.service.iservice;
|
package com.adc.da.sys.service.iservice;
|
||||||
|
|
||||||
|
|
||||||
|
import com.adc.da.eo.DictEntity;
|
||||||
import com.adc.da.sys.vo.DictQueryVo;
|
import com.adc.da.sys.vo.DictQueryVo;
|
||||||
import com.adc.da.sys.vo.DictVo;
|
import com.adc.da.sys.vo.DictVo;
|
||||||
import com.adc.da.util.http.ResponseMessage;
|
import com.adc.da.util.http.ResponseMessage;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -35,4 +37,11 @@ public interface IDictService extends IService<DictEntity> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ResponseMessage delete(String id);
|
ResponseMessage delete(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增字典
|
||||||
|
* @param dictVo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ResponseMessage add(DictVo dictVo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package com.adc.da.sys.util;
|
||||||
|
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mzaxd
|
||||||
|
* @since 2022-11-22 15:36
|
||||||
|
*/
|
||||||
|
public class BeanCopyUtils {
|
||||||
|
|
||||||
|
private BeanCopyUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <V> V copyBean(Object source, Class<V> clazz){
|
||||||
|
V result = null;
|
||||||
|
//创建目标对象
|
||||||
|
try {
|
||||||
|
result = clazz.newInstance();
|
||||||
|
//实现属性copy
|
||||||
|
BeanUtils.copyProperties(source, result);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
//返回结果
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <O,V> List<V> copyBeanList(List<O> list, Class<V> clazz) {
|
||||||
|
return list.stream()
|
||||||
|
.map(o -> copyBean(o, clazz))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,9 @@ package com.adc.da.sys.vo;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Min;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author CaiHaohan
|
* @author CaiHaohan
|
||||||
*/
|
*/
|
||||||
@@ -11,10 +14,12 @@ public class DictQueryVo {
|
|||||||
/**
|
/**
|
||||||
* 页数
|
* 页数
|
||||||
*/
|
*/
|
||||||
|
@Min(1)
|
||||||
private int pageNo;
|
private int pageNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每页数量
|
* 每页数量
|
||||||
*/
|
*/
|
||||||
|
@NotNull
|
||||||
private int pageSize;
|
private int pageSize;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user