【dict type】更新字典类型

pull/3/head
fengshuonan 2021-02-08 17:00:44 +08:00
parent afa215faa4
commit 7670753007
5 changed files with 102 additions and 214 deletions

View File

@ -13,7 +13,6 @@ import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@ -44,6 +43,18 @@ public class DictTypeController {
return new SuccessResponseData();
}
/**
*
*
* @author fengshuonan
* @date 2018/7/25 12:36
*/
@PostResource(name = "删除字典类型", path = "/dictType/deleteDictType", requiredPermission = false)
public ResponseData deleteDictType(@RequestBody @Validated(DictTypeRequest.delete.class) DictTypeRequest dictTypeRequest) {
this.dictTypeService.del(dictTypeRequest);
return new SuccessResponseData();
}
/**
*
*
@ -68,18 +79,6 @@ public class DictTypeController {
return new SuccessResponseData();
}
/**
*
*
* @author fengshuonan
* @date 2018/7/25 12:36
*/
@PostResource(name = "删除字典类型", path = "/dictType/deleteDictType", requiredPermission = false)
public ResponseData deleteDictType(@RequestBody @Validated(DictTypeRequest.delete.class) DictTypeRequest dictTypeRequest) {
this.dictTypeService.del(dictTypeRequest);
return new SuccessResponseData();
}
/**
*
*
@ -87,34 +86,8 @@ public class DictTypeController {
* @date 2021/1/13 11:25
*/
@GetResource(name = "获取字典类型详情", path = "/dictType/getDictDetail", requiredPermission = false)
public ResponseData getDictDetail(@RequestParam("dictTypeId") Long dictTypeId) {
SysDictType detail = this.dictTypeService.findDetail(dictTypeId);
return new SuccessResponseData(detail);
}
/**
*
*
* @author fengshuonan
* @date 2021/1/13 11:25
*/
@GetResource(name = "获取系统配置字典类型详情", path = "/dictType/getConfigDictTypeDetail", requiredPermission = false)
public ResponseData getConfigDictTypeDetail(DictTypeRequest dictTypeRequest) {
dictTypeRequest.setDictTypeCode(DictConstants.CONFIG_GROUP_DICT_TYPE_CODE);
SysDictType detail = this.dictTypeService.detailBy(dictTypeRequest);
return new SuccessResponseData(detail);
}
/**
*
*
* @author fengshuonan
* @date 2021/1/13 11:25
*/
@GetResource(name = "获取语种字典类型型详情", path = "/dictType/getTranslationDetail", requiredPermission = false)
public ResponseData getTranslationDetail(DictTypeRequest dictTypeRequest) {
dictTypeRequest.setDictTypeCode(DictConstants.LANGUAGES_DICT_TYPE_CODE);
SysDictType detail = this.dictTypeService.detailBy(dictTypeRequest);
public ResponseData getDictDetail(@RequestBody @Validated(BaseRequest.detail.class) DictTypeRequest dictTypeRequest) {
SysDictType detail = this.dictTypeService.detail(dictTypeRequest);
return new SuccessResponseData(detail);
}
@ -154,4 +127,31 @@ public class DictTypeController {
return new SuccessResponseData(flag);
}
/**
*
*
* @author fengshuonan
* @date 2021/1/13 11:25
*/
@GetResource(name = "获取系统配置字典类型详情", path = "/dictType/getConfigDictTypeDetail", requiredPermission = false)
public ResponseData getConfigDictTypeDetail(DictTypeRequest dictTypeRequest) {
dictTypeRequest.setDictTypeCode(DictConstants.CONFIG_GROUP_DICT_TYPE_CODE);
SysDictType detail = this.dictTypeService.detail(dictTypeRequest);
return new SuccessResponseData(detail);
}
/**
*
*
* @author fengshuonan
* @date 2021/1/13 11:25
*/
@GetResource(name = "获取语种字典类型型详情", path = "/dictType/getTranslationDetail", requiredPermission = false)
public ResponseData getTranslationDetail(DictTypeRequest dictTypeRequest) {
dictTypeRequest.setDictTypeCode(DictConstants.LANGUAGES_DICT_TYPE_CODE);
SysDictType detail = this.dictTypeService.detail(dictTypeRequest);
return new SuccessResponseData(detail);
}
}

View File

@ -1,12 +1,7 @@
package cn.stylefeng.roses.kernel.dict.modular.mapper;
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* Mapper
@ -16,24 +11,4 @@ import java.util.List;
*/
public interface DictTypeMapper extends BaseMapper<SysDictType> {
/**
*
*
* @param dictTypeId id
* @author huangyao
* @date 2021/1/10 17:25
*/
SysDictType findDetail(@Param("dictTypeId") Long dictTypeId);
/**
*
*
* @param page
* @param dictTypeRequest
* @return
* @author fengshuonan
* @date 2020/10/29 17:41
*/
List<SysDictType> findList(Page<SysDictType> page, @Param("dictTypeRequest") DictTypeRequest dictTypeRequest);
}

View File

@ -2,55 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.stylefeng.roses.kernel.dict.modular.mapper.DictTypeMapper">
<select id="findDetail" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType" parameterType="long">
SELECT dict_type_id AS dictTypeId,
dict_type_class AS dictTypeClass,
dict_type_bus_code AS dictTypeBusCode,
dict_type_code AS dictTypeCode,
dict_type_name AS dictTypeName,
dict_type_name_pinyin AS dictTypeNamePinyin,
dict_type_desc AS dictTypeDesc,
status_flag AS statusFlag,
dict_type_sort AS dictTypeSort
FROM sys_dict_type
WHERE del_flag = 'N'
AND dict_type_id = #{dictTypeId}
</select>
<!--查询字典类型列表-->
<select id="findList" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType">
SELECT dict_type_id AS dictTypeId,
dict_type_class AS dictTypeClass,
dict_type_bus_code AS dictTypeBusCode,
dict_type_name_pinyin AS dictTypeNamePinyin,
dict_type_code AS dictTypeCode,
dict_type_name AS dictTypeName,
dict_type_desc AS dictTypeDesc,
status_flag AS statusFlag,
dict_type_sort AS dictTypeSort
FROM sys_dict_type
WHERE del_flag = 'N'
<if test="dictTypeRequest.dictTypeName != null and dictTypeRequest.dictTypeName !=''">
AND
(
dict_type_name like CONCAT('%', #{dictTypeRequest.dictTypeName}, '%')
OR
dict_type_name_pinyin like concat('%', #{dictTypeRequest.dictTypeName}, '%')
)
</if>
<if test="dictTypeRequest.dictTypeClass != null and dictTypeRequest.dictTypeClass !=''">
AND dict_type_class = #{dictTypeRequest.dictTypeClass}
</if>
<if test="dictTypeRequest.dictTypeDesc != null and dictTypeRequest.dictTypeDesc !=''">
AND dict_type_desc like CONCAT('%', #{dictTypeRequest.dictTypeDesc}, '%')
</if>
<if test="dictTypeRequest.dictTypeCode != null and dictTypeRequest.dictTypeCode !=''">
AND dict_type_code like CONCAT('%', #{dictTypeRequest.dictTypeCode}, '%')
</if>
<if test="dictTypeRequest.statusFlag != null and dictTypeRequest.statusFlag !=''">
AND status_flag = #{dictTypeRequest.statusFlag}
</if>
ORDER BY dict_type_sort
</select>
</mapper>

View File

@ -25,6 +25,15 @@ public interface DictTypeService extends IService<SysDictType> {
*/
void add(DictTypeRequest dictTypeRequest);
/**
*
*
* @param dictTypeRequest
* @author fengshuonan
* @date 2020/10/29 18:55
*/
void del(DictTypeRequest dictTypeRequest);
/**
*
*
@ -44,13 +53,13 @@ public interface DictTypeService extends IService<SysDictType> {
void editStatus(DictTypeRequest dictTypeRequest);
/**
*
* --
*
* @param dictTypeRequest
* @author fengshuonan
* @date 2020/10/29 18:55
* @param dictTypeRequest
* @author chenjinlong
* @date 2021/1/26 12:52
*/
void del(DictTypeRequest dictTypeRequest);
SysDictType detail(DictTypeRequest dictTypeRequest);
/**
*
@ -81,31 +90,4 @@ public interface DictTypeService extends IService<SysDictType> {
* @date 2020/10/29 18:56
*/
boolean validateCodeAvailable(DictTypeRequest dictTypeRequest);
/**
*
*
* @param dictTypeId id
* @author huangyao
* @date 2021/1/10 17:27
*/
SysDictType findDetail(Long dictTypeId);
/**
* --
*
* @param dictTypeRequest
* @author chenjinlong
* @date 2021/1/26 12:52
*/
SysDictType detailBy(DictTypeRequest dictTypeRequest);
/**
* --
*
* @param dictTypeRequest
* @author chenjinlong
* @date 2021/1/26 12:52
*/
List<SysDictType> listBy(DictTypeRequest dictTypeRequest);
}

View File

@ -62,17 +62,35 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType
this.baseMapper.insert(sysDictType);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(DictTypeRequest dictTypeRequest) {
// 如果是系统级字典,只允许管理员操作
validateSystemTypeClassOperate(dictTypeRequest);
// 获取字典类型
SysDictType oldSysDictType = querySysDictType(dictTypeRequest);
// 字典类型删除
oldSysDictType.setDelFlag(YesOrNotEnum.Y.getCode());
this.baseMapper.updateById(oldSysDictType);
// 逻辑删除所有改类型下的字典
LambdaUpdateWrapper<SysDict> lambdaQueryWrapper = new LambdaUpdateWrapper<>();
lambdaQueryWrapper.eq(SysDict::getDictTypeCode, oldSysDictType.getDictTypeCode());
lambdaQueryWrapper.set(SysDict::getDelFlag, YesOrNotEnum.Y.getCode());
dictService.update(lambdaQueryWrapper);
}
@Override
public void edit(DictTypeRequest dictTypeRequest) {
// 如果是系统级字典,只允许管理员操作
validateSystemTypeClassOperate(dictTypeRequest);
// 获取字典类型是否存在
SysDictType oldSysDictType = this.baseMapper.selectById(dictTypeRequest.getDictTypeId());
if (oldSysDictType == null) {
throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, dictTypeRequest.getDictTypeId());
}
// 获取字典类型
SysDictType oldSysDictType = querySysDictType(dictTypeRequest);
// 模型转化
BeanUtil.copyProperties(dictTypeRequest, oldSysDictType);
@ -92,11 +110,8 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType
// 如果是系统级字典,只允许管理员操作
validateSystemTypeClassOperate(dictTypeRequest);
// 获取字典类型是否存在
SysDictType oldSysDictType = this.baseMapper.selectById(dictTypeRequest.getDictTypeId());
if (oldSysDictType == null) {
throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, dictTypeRequest.getDictTypeId());
}
// 获取字典类型
SysDictType oldSysDictType = querySysDictType(dictTypeRequest);
// 修改状态
oldSysDictType.setStatusFlag(dictTypeRequest.getStatusFlag());
@ -113,46 +128,25 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(DictTypeRequest dictTypeRequest) {
// 如果是系统级字典,只允许管理员操作
validateSystemTypeClassOperate(dictTypeRequest);
// 获取字典类型是否存在
SysDictType sysDictType = this.baseMapper.selectById(dictTypeRequest.getDictTypeId());
if (sysDictType == null) {
throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, dictTypeRequest.getDictTypeId());
public SysDictType detail(DictTypeRequest dictTypeRequest) {
List<SysDictType> list = this.findList(dictTypeRequest);
if (list.isEmpty()) {
return null;
}
// 字典类型删除
sysDictType.setDelFlag(YesOrNotEnum.Y.getCode());
this.baseMapper.updateById(sysDictType);
// 逻辑删除所有改类型下的字典
LambdaUpdateWrapper<SysDict> lambdaQueryWrapper = new LambdaUpdateWrapper<>();
lambdaQueryWrapper.eq(SysDict::getDictTypeCode, sysDictType.getDictTypeCode());
lambdaQueryWrapper.set(SysDict::getDelFlag, YesOrNotEnum.Y.getCode());
dictService.update(lambdaQueryWrapper);
return list.get(0);
}
@Override
public List<SysDictType> findList(DictTypeRequest dictTypeRequest) {
return this.baseMapper.findList(null, dictTypeRequest);
LambdaQueryWrapper<SysDictType> queryWrapper = this.createWrapper(dictTypeRequest);
return this.list(queryWrapper);
}
@Override
public PageResult<SysDictType> findPage(DictTypeRequest dictTypeRequest) {
Page<SysDictType> page = PageFactory.defaultPage();
if (dictTypeRequest == null) {
dictTypeRequest = new DictTypeRequest();
}
List<SysDictType> list = this.baseMapper.findList(page, dictTypeRequest);
return PageResultFactory.createPageResult(page.setRecords(list));
LambdaQueryWrapper<SysDictType> queryWrapper = this.createWrapper(dictTypeRequest);
Page<SysDictType> page = this.page(PageFactory.defaultPage(), queryWrapper);
return PageResultFactory.createPageResult(page);
}
@Override
@ -170,26 +164,6 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType
return selectCount <= 0;
}
@Override
public SysDictType findDetail(Long dictTypeId) {
return this.baseMapper.findDetail(dictTypeId);
}
@Override
public SysDictType detailBy(DictTypeRequest dictTypeRequest) {
List<SysDictType> list = this.listBy(dictTypeRequest);
if (list.isEmpty()) {
return null;
}
return list.get(0);
}
@Override
public List<SysDictType> listBy(DictTypeRequest dictTypeRequest) {
LambdaQueryWrapper<SysDictType> queryWrapper = this.createWrapper(dictTypeRequest);
return this.list(queryWrapper);
}
/**
* dictTypeClass
*
@ -207,15 +181,13 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType
/**
* id
*
* @param
* @return
* @author chenjinlong
* @date 2021/1/26 13:28
*/
private SysDictType querySysDictType(DictTypeRequest dictTypeRequest) {
SysDictType sysDictType = this.getById(dictTypeRequest.getDictTypeId());
if (ObjectUtil.isEmpty(sysDictType)) {
throw new DictException(DictExceptionEnum.SYSTEM_DICT_NOT_ALLOW_OPERATION);
throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, dictTypeRequest.getDictTypeId());
}
return sysDictType;
}
@ -228,11 +200,21 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType
*/
private LambdaQueryWrapper<SysDictType> createWrapper(DictTypeRequest translationRequest) {
LambdaQueryWrapper<SysDictType> queryWrapper = new LambdaQueryWrapper<>();
// 查询未删除的
queryWrapper.eq(SysDictType::getDelFlag, YesOrNotEnum.N.getCode());
if (ObjectUtil.isEmpty(translationRequest)) {
return queryWrapper;
}
Long dictTypeId = translationRequest.getDictTypeId();
String dictTypeCode = translationRequest.getDictTypeCode();
String dictTypeName = translationRequest.getDictTypeName();
queryWrapper.eq(ObjectUtil.isNotNull(dictTypeId), SysDictType::getDictTypeId, dictTypeId);
queryWrapper.eq(ObjectUtil.isNotNull(dictTypeCode), SysDictType::getDictTypeCode, dictTypeCode);
queryWrapper.like(ObjectUtil.isNotNull(dictTypeName), SysDictType::getDictTypeName, dictTypeName);
queryWrapper.eq(SysDictType::getDelFlag, YesOrNotEnum.N.getCode());
return queryWrapper;
}