数据字典模块部分提交
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package cn.iocoder.mall.admin.convert;
|
||||
|
||||
import cn.iocoder.mall.admin.api.bo.DataDictBO;
|
||||
import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
|
||||
import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
|
||||
import cn.iocoder.mall.admin.dataobject.DataDictDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface DataDictConvert {
|
||||
|
||||
DataDictConvert INSTANCE = Mappers.getMapper(DataDictConvert.class);
|
||||
|
||||
DataDictDO convert(DataDictAddDTO dataDictAddDTO);
|
||||
|
||||
DataDictDO convert(DataDictUpdateDTO dataDictUpdateDTO);
|
||||
|
||||
DataDictBO convert(DataDictDO dataDictDO);
|
||||
|
||||
List<DataDictBO> convert(List<DataDictDO> dataDictDOs);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package cn.iocoder.mall.admin.dao;
|
||||
|
||||
import cn.iocoder.mall.admin.dataobject.DataDictDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface DataDictMapper {
|
||||
|
||||
DataDictDO selectById(@Param("id") Integer id);
|
||||
|
||||
DataDictDO selectByEnumValueAndValue(@Param("enumValue") String enumValue,
|
||||
@Param("value") String value);
|
||||
|
||||
List<DataDictDO> selectList();
|
||||
|
||||
void insert(DataDictDO dataDict);
|
||||
|
||||
int update(DataDictDO dataDict);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package cn.iocoder.mall.admin.dataobject;
|
||||
|
||||
import cn.iocoder.common.framework.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 数据字典
|
||||
*
|
||||
* 使用 {@link #enumValue} 作为聚合。例如说:
|
||||
*
|
||||
* enumValue :gender 性别
|
||||
* value:1 男
|
||||
* value:2 女
|
||||
*/
|
||||
public class DataDictDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
private Integer id;
|
||||
/**
|
||||
* 大类枚举值
|
||||
*/
|
||||
private String enumValue;
|
||||
/**
|
||||
* 小类数值
|
||||
*/
|
||||
private String value;
|
||||
/**
|
||||
* 展示名
|
||||
*/
|
||||
private String displayName;
|
||||
/**
|
||||
* 排序值
|
||||
*/
|
||||
private Integer sort;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String memo;
|
||||
|
||||
public String getEnumValue() {
|
||||
return enumValue;
|
||||
}
|
||||
|
||||
public DataDictDO setEnumValue(String enumValue) {
|
||||
this.enumValue = enumValue;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public DataDictDO setValue(String value) {
|
||||
this.value = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDisplayName() {
|
||||
return displayName;
|
||||
}
|
||||
|
||||
public DataDictDO setDisplayName(String displayName) {
|
||||
this.displayName = displayName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getSort() {
|
||||
return sort;
|
||||
}
|
||||
|
||||
public DataDictDO setSort(Integer sort) {
|
||||
this.sort = sort;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getMemo() {
|
||||
return memo;
|
||||
}
|
||||
|
||||
public DataDictDO setMemo(String memo) {
|
||||
this.memo = memo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public DataDictDO setId(Integer id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@com.alibaba.dubbo.config.annotation.Service
|
||||
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
|
||||
public class AdminServiceImpl implements AdminService {
|
||||
|
||||
@Autowired
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
package cn.iocoder.mall.admin.service;
|
||||
|
||||
import cn.iocoder.common.framework.dataobject.BaseDO;
|
||||
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.mall.admin.api.DataDictService;
|
||||
import cn.iocoder.mall.admin.api.bo.DataDictBO;
|
||||
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
|
||||
import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
|
||||
import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
|
||||
import cn.iocoder.mall.admin.convert.DataDictConvert;
|
||||
import cn.iocoder.mall.admin.dao.DataDictMapper;
|
||||
import cn.iocoder.mall.admin.dataobject.DataDictDO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据字典 Service
|
||||
*/
|
||||
@Service
|
||||
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
|
||||
public class DataDictServiceImpl implements DataDictService {
|
||||
|
||||
@Autowired
|
||||
private DataDictMapper dataDictMapper;
|
||||
|
||||
@Override
|
||||
public CommonResult<List<DataDictBO>> selectDataDictList() {
|
||||
List<DataDictDO> dataDicts = dataDictMapper.selectList();
|
||||
return CommonResult.success(DataDictConvert.INSTANCE.convert(dataDicts));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<DataDictBO> addDataDict(Integer adminId, DataDictAddDTO dataDictAddDTO) {
|
||||
// 校验数据字典重复
|
||||
if (dataDictMapper.selectByEnumValueAndValue(dataDictAddDTO.getEnumValue(), dataDictAddDTO.getValue()) != null) {
|
||||
return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_EXISTS.getCode());
|
||||
}
|
||||
// 保存到数据库
|
||||
DataDictDO dataDict = DataDictConvert.INSTANCE.convert(dataDictAddDTO);
|
||||
dataDict.setCreateTime(new Date()).setDeleted(BaseDO.DELETED_NO);
|
||||
dataDictMapper.insert(dataDict);
|
||||
// TODO 插入操作日志
|
||||
// 返回成功
|
||||
return CommonResult.success(DataDictConvert.INSTANCE.convert(dataDict));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Boolean> updateDataDict(Integer adminId, DataDictUpdateDTO dataDictUpdateDTO) {
|
||||
// 校验数据字典不存在
|
||||
DataDictDO existsDataDict = dataDictMapper.selectById(dataDictUpdateDTO.getId());
|
||||
if (existsDataDict == null) {
|
||||
return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_NOT_EXISTS.getCode());
|
||||
}
|
||||
// 校验数据字典重复
|
||||
DataDictDO duplicateDataDict = dataDictMapper.selectByEnumValueAndValue(existsDataDict.getEnumValue(), dataDictUpdateDTO.getValue());
|
||||
if (duplicateDataDict != null && duplicateDataDict.getId().equals(dataDictUpdateDTO.getId())) {
|
||||
return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_EXISTS.getCode());
|
||||
}
|
||||
// 更新到数据库
|
||||
DataDictDO updateDataDict = DataDictConvert.INSTANCE.convert(dataDictUpdateDTO);
|
||||
dataDictMapper.update(updateDataDict);
|
||||
// TODO 插入操作日志
|
||||
// 返回成功
|
||||
return CommonResult.success(true);
|
||||
}
|
||||
|
||||
// 一般情况下,不要删除数据字典。
|
||||
// 因为,业务数据正在使用该数据字典,删除后,可能有不可预知的问题。
|
||||
@Override
|
||||
public CommonResult<Boolean> deleteDataDict(Integer adminId, Integer dataDictId) {
|
||||
// 校验数据字典不存在
|
||||
DataDictDO existsDataDict = dataDictMapper.selectById(dataDictId);
|
||||
if (existsDataDict == null) {
|
||||
return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_NOT_EXISTS.getCode());
|
||||
}
|
||||
// 更新到数据库
|
||||
DataDictDO updateDataDict = new DataDictDO().setId(dataDictId);
|
||||
updateDataDict.setDeleted(BaseDO.DELETED_YES);
|
||||
dataDictMapper.update(updateDataDict);
|
||||
// TODO 插入操作日志
|
||||
// 返回成功
|
||||
return CommonResult.success(true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,7 +21,7 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
@Service
|
||||
@com.alibaba.dubbo.config.annotation.Service
|
||||
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
|
||||
public class OAuth2ServiceImpl implements OAuth2Service {
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,7 +30,7 @@ import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@com.alibaba.dubbo.config.annotation.Service
|
||||
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
|
||||
public class RoleServiceImpl implements RoleService {
|
||||
|
||||
@Autowired
|
||||
|
||||
Reference in New Issue
Block a user