【dict】整理整个dict模块的字段和业务

pull/3/head
fengshuonan 2020-12-19 15:15:32 +08:00
parent 1957b8cc65
commit d54afecb46
16 changed files with 237 additions and 313 deletions

View File

@ -25,25 +25,25 @@ public class BaseEntity implements Serializable {
/** /**
* *
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private Date createTime;
/** /**
* *
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(value = "create_user", fill = FieldFill.INSERT)
private Long createUser; private Long createUser;
/** /**
* *
*/ */
@TableField(fill = FieldFill.UPDATE) @TableField(value = "update_time", fill = FieldFill.UPDATE)
private Date updateTime; private Date updateTime;
/** /**
* *
*/ */
@TableField(fill = FieldFill.UPDATE) @TableField(value = "update_user", fill = FieldFill.UPDATE)
private Long updateUser; private Long updateUser;
} }

View File

@ -27,7 +27,7 @@ public enum DictExceptionEnum implements AbstractExceptionEnum {
/** /**
* idid * idid
*/ */
PARENT_DICT_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + DictConstants.DICT_EXCEPTION_STEP_CODE + "03", "父级id不存在输入的父级id不合理父级id{}"), PARENT_DICT_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + DictConstants.DICT_EXCEPTION_STEP_CODE + "03", "父级字典id不存在输入的父级id不合理父级id{}"),
/** /**
* *

View File

@ -1,7 +1,7 @@
package cn.stylefeng.roses.kernel.dict.modular.controller; package cn.stylefeng.roses.kernel.dict.modular.controller;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dict.modular.entity.Dict; import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo; import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest; import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest;
import cn.stylefeng.roses.kernel.dict.modular.service.DictService; import cn.stylefeng.roses.kernel.dict.modular.service.DictService;
@ -87,7 +87,7 @@ public class DictController {
*/ */
@GetResource(name = "获取字典详情", path = "/dict/getDictDetail", requiredPermission = false) @GetResource(name = "获取字典详情", path = "/dict/getDictDetail", requiredPermission = false)
public ResponseData getDictDetail(@RequestBody @Validated(DictRequest.detail.class) DictRequest dictRequest) { public ResponseData getDictDetail(@RequestBody @Validated(DictRequest.detail.class) DictRequest dictRequest) {
Dict detail = this.dictService.findDetail(dictRequest); SysDict detail = this.dictService.findDetail(dictRequest);
return new SuccessResponseData(detail); return new SuccessResponseData(detail);
} }
@ -99,7 +99,7 @@ public class DictController {
*/ */
@PostResource(name = "获取字典列表", path = "/dict/getDictList", requiredPermission = false) @PostResource(name = "获取字典列表", path = "/dict/getDictList", requiredPermission = false)
public ResponseData getDictList(@RequestBody DictRequest dictRequest) { public ResponseData getDictList(@RequestBody DictRequest dictRequest) {
List<Dict> dictList = this.dictService.findList(dictRequest); List<SysDict> dictList = this.dictService.findList(dictRequest);
return new SuccessResponseData(dictList); return new SuccessResponseData(dictList);
} }
@ -111,7 +111,7 @@ public class DictController {
*/ */
@PostResource(name = "获取字典列表", path = "/dict/getDictListPage", requiredPermission = false) @PostResource(name = "获取字典列表", path = "/dict/getDictListPage", requiredPermission = false)
public ResponseData getDictListPage(@RequestBody DictRequest dictRequest) { public ResponseData getDictListPage(@RequestBody DictRequest dictRequest) {
PageResult<Dict> page = this.dictService.findPageList(dictRequest); PageResult<SysDict> page = this.dictService.findPageList(dictRequest);
return new SuccessResponseData(page); return new SuccessResponseData(page);
} }

View File

@ -1,9 +1,8 @@
package cn.stylefeng.roses.kernel.dict.modular.controller; package cn.stylefeng.roses.kernel.dict.modular.controller;
import cn.stylefeng.roses.kernel.dict.modular.entity.DictType;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest; import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService; import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService;
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
@ -11,6 +10,7 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -88,8 +88,8 @@ public class DictTypeController {
*/ */
@PostResource(name = "获取字典类型列表", path = "/dictType/getDictTypeList", requiredPermission = false) @PostResource(name = "获取字典类型列表", path = "/dictType/getDictTypeList", requiredPermission = false)
public ResponseData getDictTypeList(@RequestBody DictTypeRequest dictTypeRequest) { public ResponseData getDictTypeList(@RequestBody DictTypeRequest dictTypeRequest) {
List<DictType> dictTypeList = dictTypeService.getDictTypeList(dictTypeRequest); List<SysDictType> sysDictTypeList = dictTypeService.getDictTypeList(dictTypeRequest);
return new SuccessResponseData(dictTypeList); return new SuccessResponseData(sysDictTypeList);
} }
/** /**
@ -100,8 +100,8 @@ public class DictTypeController {
*/ */
@PostResource(name = "获取字典类型列表(分页)", path = "/dictType/getDictTypePageList", requiredPermission = false) @PostResource(name = "获取字典类型列表(分页)", path = "/dictType/getDictTypePageList", requiredPermission = false)
public ResponseData getDictTypePageList(@RequestBody DictTypeRequest dictTypeRequest) { public ResponseData getDictTypePageList(@RequestBody DictTypeRequest dictTypeRequest) {
Page<DictType> page = PageFactory.defaultPage(); Page<SysDictType> page = PageFactory.defaultPage();
PageResult<DictType> dictTypePageList = dictTypeService.getDictTypePageList(page, dictTypeRequest); PageResult<SysDictType> dictTypePageList = dictTypeService.getDictTypePageList(page, dictTypeRequest);
return new SuccessResponseData(dictTypePageList); return new SuccessResponseData(dictTypePageList);
} }

View File

@ -1,10 +1,10 @@
package cn.stylefeng.roses.kernel.dict.modular.entity; package cn.stylefeng.roses.kernel.dict.modular.entity;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -19,19 +19,19 @@ import java.math.BigDecimal;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName("sys_dict") @TableName("sys_dict")
public class Dict extends BaseEntity { public class SysDict extends BaseEntity {
/** /**
* id * id
*/ */
@TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "dict_id", type = IdType.ASSIGN_ID)
private Long id; private Long dictId;
/** /**
* *
*/ */
@TableField("dict_code") @TableField("dict_type_code")
private String dictCode; private String dictTypeCode;
/** /**
* *
@ -40,10 +40,10 @@ public class Dict extends BaseEntity {
private String dictName; private String dictName;
/** /**
* * +线
*/ */
@TableField("dict_type_code") @TableField("dict_code")
private String dictTypeCode; private String dictCode;
/** /**
* *
@ -58,33 +58,29 @@ public class Dict extends BaseEntity {
private String dictShortCode; private String dictShortCode;
/** /**
* id * id(id0)
* <p>
*
* <p>
* id-1
*/ */
@TableField("parent_dict_id") @TableField("parent_dict_id")
private Long parentDictId; private Long parentDictId;
/**
* (1:,2:) StatusEnum
*/
@TableField("dict_status")
private Integer dictStatus;
/**
* Y-N- YesOrNotEnum
*/
@TableField("del_flag")
private String delFlag;
/** /**
* *
*/ */
@TableField(value = "dict_sort") @TableField(value = "dict_sort")
private BigDecimal dictSort; private BigDecimal dictSort;
/**
* 1-2- StatusEnum
*/
@TableField("status_flag")
private Integer statusFlag;
/**
* Y-N-
*/
@TableField("del_flag")
private String delFlag;
/** /**
* *
*/ */

View File

@ -1,10 +1,10 @@
package cn.stylefeng.roses.kernel.dict.modular.entity; package cn.stylefeng.roses.kernel.dict.modular.entity;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -19,13 +19,13 @@ import java.math.BigDecimal;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName("sys_dict_type") @TableName("sys_dict_type")
public class DictType extends BaseEntity { public class SysDictType extends BaseEntity {
/** /**
* id * id
*/ */
@TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "dict_type_id", type = IdType.ASSIGN_ID)
private String id; private String dictTypeId;
/** /**
* 1-2- DictTypeClassEnum * 1-2- DictTypeClassEnum
@ -51,22 +51,22 @@ public class DictType extends BaseEntity {
@TableField("dict_type_desc") @TableField("dict_type_desc")
private String dictTypeDesc; private String dictTypeDesc;
/**
* 1-2- StatusEnum
*/
@TableField("dict_type_status")
private Integer dictTypeStatus;
/**
* Y-N- YesOrNotEnum
*/
@TableField("del_flag")
private String delFlag;
/** /**
* *
*/ */
@TableField(value = "dict_type_sort") @TableField(value = "dict_type_sort")
private BigDecimal dictTypeSort; private BigDecimal dictTypeSort;
/**
* 1-2- StatusEnum
*/
@TableField("status_flag")
private Integer statusFlag;
/**
* Y-N-
*/
@TableField("del_flag")
private String delFlag;
} }

View File

@ -1,9 +1,9 @@
package cn.stylefeng.roses.kernel.dict.modular.mapper; package cn.stylefeng.roses.kernel.dict.modular.mapper;
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.stylefeng.roses.kernel.dict.modular.entity.Dict;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -14,7 +14,7 @@ import java.util.List;
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 17:20 * @date 2020/10/29 17:20
*/ */
public interface DictMapper extends BaseMapper<Dict> { public interface DictMapper extends BaseMapper<SysDict> {
/** /**
* *
@ -24,7 +24,7 @@ public interface DictMapper extends BaseMapper<Dict> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 17:21 * @date 2020/10/29 17:21
*/ */
Dict findDetail(@Param("dictRequest") DictRequest dictRequest); SysDict findDetail(@Param("dictRequest") DictRequest dictRequest);
/** /**
* *
@ -35,6 +35,6 @@ public interface DictMapper extends BaseMapper<Dict> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 17:21 * @date 2020/10/29 17:21
*/ */
List<Dict> findList(Page<Dict> page, @Param("dictRequest") DictRequest dictRequest); List<SysDict> findList(Page<SysDict> page, @Param("dictRequest") DictRequest dictRequest);
} }

View File

@ -1,9 +1,9 @@
package cn.stylefeng.roses.kernel.dict.modular.mapper; 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.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.stylefeng.roses.kernel.dict.modular.entity.DictType;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -14,7 +14,7 @@ import java.util.List;
* @author fengshuonan * @author fengshuonan
* @date 2020/10/30 21:04 * @date 2020/10/30 21:04
*/ */
public interface DictTypeMapper extends BaseMapper<DictType> { public interface DictTypeMapper extends BaseMapper<SysDictType> {
/** /**
* *
@ -25,6 +25,6 @@ public interface DictTypeMapper extends BaseMapper<DictType> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 17:41 * @date 2020/10/29 17:41
*/ */
List<DictType> findList(Page<DictType> page, @Param("dictTypeRequest") DictTypeRequest dictTypeRequest); List<SysDictType> findList(Page<SysDictType> page, @Param("dictTypeRequest") DictTypeRequest dictTypeRequest);
} }

View File

@ -2,66 +2,48 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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.DictMapper"> <mapper namespace="cn.stylefeng.roses.kernel.dict.modular.mapper.DictMapper">
<!-- 通用查询映射结果 --> <select id="findDetail" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDict">
<resultMap id="BaseResultMap" type="cn.stylefeng.roses.kernel.dict.modular.entity.Dict">
<id column="dict_id" property="id"/>
<result column="dict_code" property="dictCode"/>
<result column="dict_name" property="dictName"/>
<result column="dict_type_code" property="dictTypeCode"/>
<result column="dict_short_name" property="dictShortName"/>
<result column="dict_short_code" property="dictShortCode"/>
<result column="parent_dict_id" property="parentDictId"/>
<result column="dict_status" property="dictStatus"/>
<result column="create_time" property="createTime"/>
<result column="create_user" property="createUser"/>
<result column="update_time" property="updateTime"/>
<result column="update_user" property="updateUser"/>
<result column="del_flag" property="delFlag"/>
<result column="dict_sort" property="dictSort"/>
</resultMap>
<select id="findDetail" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.Dict">
SELECT SELECT
dict.id AS id, dict.dict_id AS dictId,
dict.dict_code AS dictCode,
type.dict_name as dictName,
dict.dict_type_code AS dictTypeCode, dict.dict_type_code AS dictTypeCode,
dict.dict_name as dictName,
dict.dict_code AS dictCode,
dict.dict_short_name AS dictShortName, dict.dict_short_name AS dictShortName,
dict.dict_short_code AS dictShortCode, dict.dict_short_code AS dictShortCode,
dict.parent_dict_id AS parentDictId, dict.parent_dict_id AS parentDictId,
dict.dict_status AS dictStatus, dict.dict_sort as dictSort,
dict.create_time AS createTime dict.status_flag AS statusFlag,
dict.create_time AS createTime,
type.dict_type_name as dictTypeName
FROM FROM
sys_dict dict sys_dict dict
INNER JOIN sys_dict_type type ON dict.dict_type_code = type.dict_type_code INNER JOIN sys_dict_type type ON dict.dict_type_code = type.dict_type_code
WHERE dict.del_flag = 'N' WHERE dict.del_flag = 'N'
<if test="dictRequest.dictTypeCode != null and dictRequest.dictTypeCode != ''"> <if test="dictRequest.dictId != null and dictRequest.dictId != ''">
AND dict.dict_type_code = #{dictRequest.dictTypeCode} AND dict.dict_id = #{dictRequest.dictId}
</if> </if>
<if test="dictRequest.dictCode != null and dictRequest.dictCode != ''"> <if test="dictRequest.dictCode != null and dictRequest.dictCode != ''">
AND dict.dict_code = #{dictRequest.dictCode} AND dict.dict_code = #{dictRequest.dictCode}
</if> </if>
<if test="dictRequest.dictName != null and dictRequest.dictName != ''">
AND dict.dict_name = #{dictRequest.dictName}
</if>
ORDER BY dict_sort ORDER BY dict_sort
</select> </select>
<select id="findList" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.Dict"> <select id="findList" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDict">
SELECT SELECT
type.dict_type_name as dictTypeName, dict.dict_id AS dictId,
dict.id AS id,
dict.dict_code AS dictCode,
type.dict_name as dictName,
dict.dict_type_code AS dictTypeCode, dict.dict_type_code AS dictTypeCode,
dict.dict_name as dictName,
dict.dict_code AS dictCode,
dict.dict_short_name AS dictShortName, dict.dict_short_name AS dictShortName,
dict.dict_short_code AS dictShortCode, dict.dict_short_code AS dictShortCode,
dict.parent_dict_id AS parentDictId, dict.parent_dict_id AS parentDictId,
dict.dict_status AS dictStatus, dict.dict_sort as dictSort,
dict.create_time AS createTime dict.status_flag AS statusFlag,
dict.create_time AS createTime,
type.dict_type_name as dictTypeName
FROM FROM
cbd_sys_dict dict sys_dict dict
INNER JOIN cbd_sys_dict_type type ON dict.dict_type_code = type.dict_type_code INNER JOIN sys_dict_type type ON dict.dict_type_code = type.dict_type_code
WHERE dict.del_flag = 'N' WHERE dict.del_flag = 'N'
<if test="dictRequest.dictTypeCode != null and dictRequest.dictTypeCode != ''"> <if test="dictRequest.dictTypeCode != null and dictRequest.dictTypeCode != ''">
AND dict.dict_type_code = #{dictRequest.dictTypeCode} AND dict.dict_type_code = #{dictRequest.dictTypeCode}
@ -75,8 +57,8 @@
<if test="dictRequest.parentDictId != null and dictRequest.parentDictId != ''"> <if test="dictRequest.parentDictId != null and dictRequest.parentDictId != ''">
AND dict.parent_dict_id = #{dictRequest.parentDictId} AND dict.parent_dict_id = #{dictRequest.parentDictId}
</if> </if>
<if test="dictRequest.dictStatus != null and dictRequest.dictStatus !=''"> <if test="dictRequest.statusFlag != null and dictRequest.statusFlag !=''">
AND dict.dict_status = #{dictRequest.dictStatus} AND dict.status_flag = #{dictRequest.statusFlag}
</if> </if>
<if test="dictRequest.parentDictId != null and dictRequest.parentDictId != ''"> <if test="dictRequest.parentDictId != null and dictRequest.parentDictId != ''">
and dict.parent_dict_id = #{dictRequest.parentDictId} and dict.parent_dict_id = #{dictRequest.parentDictId}

View File

@ -2,34 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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"> <mapper namespace="cn.stylefeng.roses.kernel.dict.modular.mapper.DictTypeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.stylefeng.roses.kernel.dict.modular.entity.DictType">
<id column="id" property="id"/>
<result column="dict_type_class" property="dictTypeClass"/>
<result column="dict_type_code" property="dictTypeCode"/>
<result column="dict_type_name" property="dictTypeName"/>
<result column="dict_type_desc" property="dictTypeDesc"/>
<result column="dict_type_status" property="dictTypeStatus"/>
<result column="create_time" property="createTime"/>
<result column="create_user" property="createUser"/>
<result column="update_time" property="updateTime"/>
<result column="update_user" property="updateUser"/>
<result column="del_flag" property="delFlag"/>
<result column="dict_type_sort" property="dictTypeSort"/>
</resultMap>
<!--查询字典类型列表--> <!--查询字典类型列表-->
<select id="findList" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.DictType"> <select id="findList" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType">
SELECT SELECT
dict_type_id AS dictTypeId, dict_type_id AS dictTypeId,
dict_type_class AS dictTypeClass, dict_type_class AS dictTypeClass,
dict_type_code AS dictTypeCode, dict_type_code AS dictTypeCode,
dict_type_name AS dictTypeName, dict_type_name AS dictTypeName,
dict_type_desc AS dictTypeDesc, dict_type_desc AS dictTypeDesc,
dict_type_status AS dictTypeStatus, dict_type_sort AS dictTypeSort,
dict_type_sort AS dictTypeSort status_flag AS statusFlag
FROM FROM
cbd_sys_dict_type sys_dict_type
where del_flag = 'N' where del_flag = 'N'
<if test="dictTypeRequest.dictTypeName != null and dictTypeRequest.dictTypeName !=''"> <if test="dictTypeRequest.dictTypeName != null and dictTypeRequest.dictTypeName !=''">
AND dict_type_name like CONCAT('%',#{dictTypeRequest.dictTypeName},'%') AND dict_type_name like CONCAT('%',#{dictTypeRequest.dictTypeName},'%')
@ -40,11 +24,10 @@
<if test="dictTypeRequest.dictTypeCode != null and dictTypeRequest.dictTypeCode !=''"> <if test="dictTypeRequest.dictTypeCode != null and dictTypeRequest.dictTypeCode !=''">
AND dict_type_code like CONCAT('%',#{dictTypeRequest.dictTypeCode},'%') AND dict_type_code like CONCAT('%',#{dictTypeRequest.dictTypeCode},'%')
</if> </if>
<if test="dictTypeRequest.dictTypeStatus != null and dictTypeRequest.dictTypeStatus !=''"> <if test="dictTypeRequest.statusFlag != null and dictTypeRequest.statusFlag !=''">
AND dict_type_status = #{dictTypeRequest.dictTypeStatus} AND status_flag = #{dictTypeRequest.statusFlag}
</if> </if>
ORDER BY ORDER BY dict_type_sort
dict_type_sort
</select> </select>
</mapper> </mapper>

View File

@ -1,11 +1,13 @@
package cn.stylefeng.roses.kernel.dict.modular.pojo.request; package cn.stylefeng.roses.kernel.dict.modular.pojo.request;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.validator.validators.unique.TableUniqueValue;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/** /**
* *
@ -20,20 +22,8 @@ public class DictRequest extends BaseRequest {
/** /**
* id * id
*/ */
@NotNull(message = "id不能为空请检查id参数", groups = {edit.class, delete.class, detail.class, updateStatus.class}) @NotNull(message = "dictId不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class})
private Long id; private Long dictId;
/**
*
*/
@NotBlank(message = "字典编码不能为空", groups = {add.class, edit.class, validateAvailable.class})
private String dictCode;
/**
*
*/
@NotBlank(message = "字典名称不能为空", groups = {add.class, edit.class})
private String dictName;
/** /**
* *
@ -41,6 +31,28 @@ public class DictRequest extends BaseRequest {
@NotBlank(message = "字典类型编码不能为空", groups = {add.class, edit.class, treeList.class, validateAvailable.class}) @NotBlank(message = "字典类型编码不能为空", groups = {add.class, edit.class, treeList.class, validateAvailable.class})
private String dictTypeCode; private String dictTypeCode;
/**
*
*/
@NotBlank(message = "字典名称不能为空", groups = {add.class, edit.class})
@TableUniqueValue(
message = "字典名称存在重复",
groups = {add.class, edit.class},
tableName = "sys_dict",
columnName = "dict_name")
private String dictName;
/**
*
*/
@NotBlank(message = "字典编码不能为空", groups = {add.class, edit.class, validateAvailable.class})
@TableUniqueValue(
message = "字典编码存在重复",
groups = {add.class, edit.class},
tableName = "sys_dict",
columnName = "dict_code")
private String dictCode;
/** /**
* *
*/ */
@ -52,19 +64,20 @@ public class DictRequest extends BaseRequest {
private String dictShortCode; private String dictShortCode;
/** /**
* id * id(id0)
* <p>
*
* <p>
* id-1
*/ */
private Long parentDictId; private Long parentDictId;
/** /**
* (1:,2:) StatusEnum *
*/
private BigDecimal dictSort;
/**
* 1-2- StatusEnum
*/ */
@NotNull(message = "状态不能为空", groups = {updateStatus.class, edit.class}) @NotNull(message = "状态不能为空", groups = {updateStatus.class, edit.class})
private Integer dictStatus; private Integer statusFlag;
/** /**
* *

View File

@ -1,11 +1,13 @@
package cn.stylefeng.roses.kernel.dict.modular.pojo.request; package cn.stylefeng.roses.kernel.dict.modular.pojo.request;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.validator.validators.unique.TableUniqueValue;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/** /**
* *
@ -20,8 +22,8 @@ public class DictTypeRequest extends BaseRequest {
/** /**
* id * id
*/ */
@NotNull(message = "id不能为空请检查id参数", groups = {edit.class, delete.class, detail.class, updateStatus.class}) @NotNull(message = "dictTypeId不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class})
private Long id; private Long dictTypeId;
/** /**
* 1-2- DictTypeClassEnum * 1-2- DictTypeClassEnum
@ -33,12 +35,22 @@ public class DictTypeRequest extends BaseRequest {
* *
*/ */
@NotBlank(message = "字典类型编码不能为空", groups = {add.class, edit.class}) @NotBlank(message = "字典类型编码不能为空", groups = {add.class, edit.class})
@TableUniqueValue(
message = "字典类型编码存在重复",
groups = {add.class, edit.class},
tableName = "sys_dict_type",
columnName = "dict_type_code")
private String dictTypeCode; private String dictTypeCode;
/** /**
* *
*/ */
@NotBlank(message = "字典类型名称不能为空", groups = {add.class, edit.class}) @NotBlank(message = "字典类型名称不能为空", groups = {add.class, edit.class})
@TableUniqueValue(
message = "字典类型名称存在重复",
groups = {add.class, edit.class},
tableName = "sys_dict_type",
columnName = "dict_type_name")
private String dictTypeName; private String dictTypeName;
/** /**
@ -46,10 +58,15 @@ public class DictTypeRequest extends BaseRequest {
*/ */
private String dictTypeDesc; private String dictTypeDesc;
/**
*
*/
private BigDecimal dictTypeSort;
/** /**
* 1-2- StatusEnum * 1-2- StatusEnum
*/ */
@NotNull(message = "状态不能为空", groups = {updateStatus.class}) @NotNull(message = "状态不能为空", groups = {updateStatus.class})
private Integer dictTypeStatus; private Integer statusFlag;
} }

View File

@ -1,10 +1,10 @@
package cn.stylefeng.roses.kernel.dict.modular.service; package cn.stylefeng.roses.kernel.dict.modular.service;
import cn.stylefeng.roses.kernel.dict.modular.entity.Dict;
import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest; import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;
@ -14,7 +14,7 @@ import java.util.List;
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 17:43 * @date 2020/10/29 17:43
*/ */
public interface DictService extends IService<Dict> { public interface DictService extends IService<SysDict> {
/** /**
* *
@ -60,7 +60,7 @@ public interface DictService extends IService<Dict> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/30 16:15 * @date 2020/10/30 16:15
*/ */
Dict findDetail(DictRequest dictRequest); SysDict findDetail(DictRequest dictRequest);
/** /**
* *
@ -70,7 +70,7 @@ public interface DictService extends IService<Dict> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 18:48 * @date 2020/10/29 18:48
*/ */
List<Dict> findList(DictRequest dictRequest); List<SysDict> findList(DictRequest dictRequest);
/** /**
* *
@ -80,7 +80,7 @@ public interface DictService extends IService<Dict> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 18:48 * @date 2020/10/29 18:48
*/ */
PageResult<Dict> findPageList(DictRequest dictRequest); PageResult<SysDict> findPageList(DictRequest dictRequest);
/** /**
* *

View File

@ -1,11 +1,11 @@
package cn.stylefeng.roses.kernel.dict.modular.service; package cn.stylefeng.roses.kernel.dict.modular.service;
import cn.stylefeng.roses.kernel.dict.modular.entity.DictType; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
import java.util.List; import java.util.List;
@ -15,7 +15,7 @@ import java.util.List;
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 18:54 * @date 2020/10/29 18:54
*/ */
public interface DictTypeService extends IService<DictType> { public interface DictTypeService extends IService<SysDictType> {
/** /**
* *
@ -61,7 +61,7 @@ public interface DictTypeService extends IService<DictType> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 18:55 * @date 2020/10/29 18:55
*/ */
List<DictType> getDictTypeList(DictTypeRequest dictTypeRequest); List<SysDictType> getDictTypeList(DictTypeRequest dictTypeRequest);
/** /**
* *
@ -72,7 +72,7 @@ public interface DictTypeService extends IService<DictType> {
* @author fengshuonan * @author fengshuonan
* @date 2020/10/29 18:55 * @date 2020/10/29 18:55
*/ */
PageResult<DictType> getDictTypePageList(Page<DictType> page, DictTypeRequest dictTypeRequest); PageResult<SysDictType> getDictTypePageList(Page<SysDictType> page, DictTypeRequest dictTypeRequest);
/** /**
* code * code

View File

@ -4,21 +4,23 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.dict.modular.mapper.DictMapper;
import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dict.api.exception.DictException; import cn.stylefeng.roses.kernel.dict.api.exception.DictException;
import cn.stylefeng.roses.kernel.dict.api.exception.enums.DictExceptionEnum; import cn.stylefeng.roses.kernel.dict.api.exception.enums.DictExceptionEnum;
import cn.stylefeng.roses.kernel.dict.modular.entity.Dict; import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
import cn.stylefeng.roses.kernel.dict.modular.mapper.DictMapper;
import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest; import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest;
import cn.stylefeng.roses.kernel.dict.modular.service.DictService; import cn.stylefeng.roses.kernel.dict.modular.service.DictService;
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum; import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory; import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
@ -35,46 +37,18 @@ import static cn.stylefeng.roses.kernel.dict.api.exception.enums.DictExceptionEn
* @date 2020/10/28 9:48 * @date 2020/10/28 9:48
*/ */
@Service @Service
public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements DictService { public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements DictService {
@Override @Override
public void addDict(DictRequest dictRequest) { public void addDict(DictRequest dictRequest) {
// 判断某个字典类型下,该编码是否重复
LambdaQueryWrapper<Dict> codeRepeatWrapper = new LambdaQueryWrapper<>();
codeRepeatWrapper
.eq(Dict::getDictTypeCode, dictRequest.getDictTypeCode())
.and(i -> i.eq(Dict::getDictCode, dictRequest.getDictTypeCode()));
// 如果重复,抛出异常
int codeCount = this.baseMapper.selectCount(codeRepeatWrapper);
if (codeCount > 0) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_CODE_REPEAT.getUserTip(), dictRequest.getDictTypeCode(), dictRequest.getDictCode());
throw new DictException(DictExceptionEnum.DICT_CODE_REPEAT, userTip);
}
// 判断某个字典类型下,字典的名称是否重复
LambdaQueryWrapper<Dict> nameRepeatWrapper = new LambdaQueryWrapper<>();
nameRepeatWrapper
.eq(Dict::getDictTypeCode, dictRequest.getDictTypeCode())
.and(i -> i.eq(Dict::getDictName, dictRequest.getDictName()));
// 如果重复,抛出异常
int nameCount = this.baseMapper.selectCount(nameRepeatWrapper);
if (nameCount > 0) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_NAME_REPEAT.getUserTip(), dictRequest.getDictTypeCode(), dictRequest.getDictName());
throw new DictException(DictExceptionEnum.DICT_NAME_REPEAT, userTip);
}
// 如果父节点为空则填充为默认的父节点id // 如果父节点为空则填充为默认的父节点id
if (dictRequest.getParentDictId() == null) { if (dictRequest.getParentDictId() == null) {
dictRequest.setParentDictId(DEFAULT_DICT_PARENT_ID); dictRequest.setParentDictId(DEFAULT_DICT_PARENT_ID);
} } else {
// 如果父节点不为空并且不是0则判断父节点存不存在防止脏数据
// 如果父节点不为空,并且不是-1则判断父节点存不存在防止脏数据
else {
if (!DEFAULT_DICT_PARENT_ID.equals(dictRequest.getParentDictId())) { if (!DEFAULT_DICT_PARENT_ID.equals(dictRequest.getParentDictId())) {
Dict parentDict = this.getById(dictRequest.getParentDictId()); SysDict parentDict = this.getById(dictRequest.getParentDictId());
if (parentDict == null) { if (parentDict == null) {
String userTip = StrUtil.format(DictExceptionEnum.PARENT_DICT_NOT_EXISTED.getUserTip(), dictRequest.getParentDictId()); String userTip = StrUtil.format(DictExceptionEnum.PARENT_DICT_NOT_EXISTED.getUserTip(), dictRequest.getParentDictId());
throw new DictException(DictExceptionEnum.PARENT_DICT_NOT_EXISTED, userTip); throw new DictException(DictExceptionEnum.PARENT_DICT_NOT_EXISTED, userTip);
@ -83,14 +57,11 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
} }
// dto转化为实体 // dto转化为实体
Dict dict = new Dict(); SysDict dict = new SysDict();
BeanUtil.copyProperties(dictRequest, new Dict()); BeanUtil.copyProperties(dictRequest, dict);
// dictId是自动生成
dict.setId(null);
// 设置状态启用 // 设置状态启用
dict.setDictStatus(StatusEnum.ENABLE.getCode()); dict.setStatusFlag(StatusEnum.ENABLE.getCode());
this.baseMapper.insert(dict); this.baseMapper.insert(dict);
} }
@ -99,40 +70,12 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
public void updateDict(DictRequest dictRequest) { public void updateDict(DictRequest dictRequest) {
// 查询字典是否存在 // 查询字典是否存在
Dict oldDict = this.getById(dictRequest.getId()); SysDict oldDict = this.getById(dictRequest.getDictId());
if (oldDict == null) { if (oldDict == null) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_NOT_EXISTED.getUserTip(), dictRequest.getId()); String userTip = StrUtil.format(DictExceptionEnum.DICT_NOT_EXISTED.getUserTip(), dictRequest.getDictId());
throw new DictException(DictExceptionEnum.DICT_NOT_EXISTED, userTip); throw new DictException(DictExceptionEnum.DICT_NOT_EXISTED, userTip);
} }
// 判断某个字典类型下,该编码是否重复
LambdaQueryWrapper<Dict> codeRepeatWrapper = new LambdaQueryWrapper<>();
codeRepeatWrapper
.eq(Dict::getDictTypeCode, dictRequest.getDictTypeCode())
.and(i -> i.eq(Dict::getDictCode, dictRequest.getDictTypeCode()))
.and(i -> i.ne(Dict::getId, dictRequest.getId()));
// 如果重复,抛出异常
int codeCount = this.baseMapper.selectCount(codeRepeatWrapper);
if (codeCount > 0) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_CODE_REPEAT.getUserTip(), dictRequest.getDictTypeCode(), dictRequest.getDictCode());
throw new DictException(DictExceptionEnum.DICT_CODE_REPEAT, userTip);
}
// 判断某个字典类型下,字典的名称是否重复
LambdaQueryWrapper<Dict> nameRepeatWrapper = new LambdaQueryWrapper<>();
nameRepeatWrapper
.eq(Dict::getDictTypeCode, dictRequest.getDictTypeCode())
.and(i -> i.eq(Dict::getDictName, dictRequest.getDictName()))
.and(i -> i.ne(Dict::getId, dictRequest.getId()));
// 如果重复,抛出异常
int nameCount = this.baseMapper.selectCount(nameRepeatWrapper);
if (nameCount > 0) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_NAME_REPEAT.getUserTip(), dictRequest.getDictTypeCode(), dictRequest.getDictName());
throw new DictException(DictExceptionEnum.DICT_NAME_REPEAT, userTip);
}
// 不能修改字典类型和编码 // 不能修改字典类型和编码
dictRequest.setDictTypeCode(null); dictRequest.setDictTypeCode(null);
dictRequest.setDictCode(null); dictRequest.setDictCode(null);
@ -147,49 +90,52 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
public void updateDictStatus(DictRequest dictRequest) { public void updateDictStatus(DictRequest dictRequest) {
// 检查参数状态是否合法 // 检查参数状态是否合法
if (StatusEnum.codeToEnum(dictRequest.getDictStatus()) == null) { if (StatusEnum.codeToEnum(dictRequest.getStatusFlag()) == null) {
String userTip = StrUtil.format(WRONG_DICT_STATUS.getUserTip(), dictRequest.getDictStatus()); String userTip = StrUtil.format(WRONG_DICT_STATUS.getUserTip(), dictRequest.getStatusFlag());
throw new DictException(WRONG_DICT_STATUS, userTip); throw new DictException(WRONG_DICT_STATUS, userTip);
} }
// 查询对应的字典信息 // 查询对应的字典信息
Dict dict = this.baseMapper.selectById(dictRequest.getId()); SysDict dict = this.baseMapper.selectById(dictRequest.getDictId());
if (dict == null) { if (dict == null) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_NOT_EXISTED.getUserTip(), dictRequest.getId()); String userTip = StrUtil.format(DictExceptionEnum.DICT_NOT_EXISTED.getUserTip(), dictRequest.getDictId());
throw new DictException(DictExceptionEnum.DICT_NOT_EXISTED, userTip); throw new DictException(DictExceptionEnum.DICT_NOT_EXISTED, userTip);
} }
// 修改状态 // 修改状态
dict.setDictStatus(dictRequest.getDictStatus()); dict.setStatusFlag(dictRequest.getStatusFlag());
this.updateById(dict); this.updateById(dict);
} }
@Override @Override
public void deleteDict(DictRequest dictRequest) { public void deleteDict(DictRequest dictRequest) {
this.baseMapper.deleteById(dictRequest.getId()); LambdaUpdateWrapper<SysDict> sysDictLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
sysDictLambdaUpdateWrapper.set(SysDict::getDelFlag, YesOrNotEnum.Y.getCode());
sysDictLambdaUpdateWrapper.eq(SysDict::getDictId, dictRequest.getDictId());
this.update(sysDictLambdaUpdateWrapper);
} }
@Override @Override
public Dict findDetail(DictRequest dictRequest) { public SysDict findDetail(DictRequest dictRequest) {
return this.baseMapper.findDetail(dictRequest); return this.baseMapper.findDetail(dictRequest);
} }
@Override @Override
public List<Dict> findList(DictRequest dictRequest) { public List<SysDict> findList(DictRequest dictRequest) {
if (dictRequest == null) { if (dictRequest == null) {
dictRequest = new DictRequest(); dictRequest = new DictRequest();
} }
return baseMapper.findList(null, dictRequest); return baseMapper.findList(null, dictRequest);
} }
@Override @Override
public PageResult<Dict> findPageList(DictRequest dictRequest) { public PageResult<SysDict> findPageList(DictRequest dictRequest) {
if (dictRequest == null) { if (dictRequest == null) {
dictRequest = new DictRequest(); dictRequest = new DictRequest();
} }
Page<Dict> page = PageFactory.defaultPage(); Page<SysDict> page = PageFactory.defaultPage();
baseMapper.findList(page, dictRequest); baseMapper.findList(page, dictRequest);
return PageResultFactory.createPageResult(page); return PageResultFactory.createPageResult(page);
@ -199,16 +145,16 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
public List<TreeDictInfo> getTreeDictList(DictRequest dictRequest) { public List<TreeDictInfo> getTreeDictList(DictRequest dictRequest) {
// 获取字典类型下所有的字典 // 获取字典类型下所有的字典
List<Dict> dictList = this.findList(dictRequest); List<SysDict> dictList = this.findList(dictRequest);
if (dictList == null || dictList.isEmpty()) { if (dictList == null || dictList.isEmpty()) {
return new ArrayList<>(); return new ArrayList<>();
} }
// 构造树节点信息 // 构造树节点信息
ArrayList<TreeDictInfo> treeDictInfos = new ArrayList<>(); ArrayList<TreeDictInfo> treeDictInfos = new ArrayList<>();
for (Dict dict : dictList) { for (SysDict dict : dictList) {
TreeDictInfo treeDictInfo = new TreeDictInfo(); TreeDictInfo treeDictInfo = new TreeDictInfo();
treeDictInfo.setDictId(dict.getId()); treeDictInfo.setDictId(dict.getDictId());
treeDictInfo.setDictCode(dict.getDictCode()); treeDictInfo.setDictCode(dict.getDictCode());
treeDictInfo.setParentDictId(dict.getParentDictId()); treeDictInfo.setParentDictId(dict.getParentDictId());
treeDictInfo.setDictName(dict.getDictName()); treeDictInfo.setDictName(dict.getDictName());
@ -223,16 +169,19 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
public boolean validateCodeAvailable(DictRequest dictRequest) { public boolean validateCodeAvailable(DictRequest dictRequest) {
// 判断编码是否重复 // 判断编码是否重复
LambdaQueryWrapper<Dict> codeRepeatWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysDict> codeRepeatWrapper = new LambdaQueryWrapper<>();
codeRepeatWrapper codeRepeatWrapper
.eq(Dict::getDictTypeCode, dictRequest.getDictTypeCode()) .eq(SysDict::getDictTypeCode, dictRequest.getDictTypeCode())
.and(i -> i.eq(Dict::getDictCode, dictRequest.getDictCode())); .and(i -> i.eq(SysDict::getDictCode, dictRequest.getDictCode()));
// 如果传了字典id代表是编辑字典 // 如果传了字典id代表是编辑字典
if (ObjectUtil.isNotEmpty(dictRequest.getId())) { if (ObjectUtil.isNotEmpty(dictRequest.getDictId())) {
codeRepeatWrapper.and(i -> i.ne(Dict::getId, dictRequest.getId())); codeRepeatWrapper.and(i -> i.ne(SysDict::getDictId, dictRequest.getDictId()));
} }
// 不查询被删除的
codeRepeatWrapper.eq(SysDict::getDelFlag, YesOrNotEnum.N.getCode());
// 如果重复,抛出异常 // 如果重复,抛出异常
int codeCount = this.baseMapper.selectCount(codeRepeatWrapper); int codeCount = this.baseMapper.selectCount(codeRepeatWrapper);

View File

@ -3,19 +3,21 @@ package cn.stylefeng.roses.kernel.dict.modular.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.dict.modular.entity.DictType;
import cn.stylefeng.roses.kernel.dict.modular.mapper.DictTypeMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dict.api.exception.DictException; import cn.stylefeng.roses.kernel.dict.api.exception.DictException;
import cn.stylefeng.roses.kernel.dict.api.exception.enums.DictExceptionEnum; import cn.stylefeng.roses.kernel.dict.api.exception.enums.DictExceptionEnum;
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
import cn.stylefeng.roses.kernel.dict.modular.mapper.DictTypeMapper;
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest; import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService; import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService;
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum; import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -29,96 +31,78 @@ import java.util.List;
* @date 2020/10/28 9:58 * @date 2020/10/28 9:58
*/ */
@Service @Service
public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, DictType> implements DictTypeService { public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType> implements DictTypeService {
@Override @Override
public void addDictType(DictTypeRequest dictTypeRequest) { public void addDictType(DictTypeRequest dictTypeRequest) {
//判断有没有相同编码的字典
LambdaQueryWrapper<DictType> codeWrapper = new LambdaQueryWrapper<>();
codeWrapper.eq(DictType::getDictTypeCode, dictTypeRequest.getDictTypeCode());
int dictTypes = this.baseMapper.selectCount(codeWrapper);
if (dictTypes > 0) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_TYPE_CODE_REPEAT.getUserTip(), dictTypeRequest.getDictTypeCode());
throw new DictException(DictExceptionEnum.DICT_TYPE_CODE_REPEAT, userTip);
}
// 模型转化 // 模型转化
DictType dictType = new DictType(); SysDictType sysDictType = new SysDictType();
BeanUtil.copyProperties(dictTypeRequest, dictType); BeanUtil.copyProperties(dictTypeRequest, sysDictType);
// 设置初始状态 // 设置初始状态
dictType.setDictTypeStatus(StatusEnum.ENABLE.getCode()); sysDictType.setStatusFlag(StatusEnum.ENABLE.getCode());
this.baseMapper.insert(dictType);
this.baseMapper.insert(sysDictType);
} }
@Override @Override
public void updateDictType(DictTypeRequest dictTypeRequest) { public void updateDictType(DictTypeRequest dictTypeRequest) {
// 获取字典类型是否存在 // 获取字典类型是否存在
DictType oldDictType = this.baseMapper.selectById(dictTypeRequest.getId()); SysDictType oldSysDictType = this.baseMapper.selectById(dictTypeRequest.getDictTypeId());
if (oldDictType == null) { if (oldSysDictType == null) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_TYPE_NOT_EXISTED.getUserTip(), dictTypeRequest.getId()); String userTip = StrUtil.format(DictExceptionEnum.DICT_TYPE_NOT_EXISTED.getUserTip(), dictTypeRequest.getDictTypeId());
throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, userTip); throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, userTip);
} }
// 判断有没有相同编码的字典
LambdaQueryWrapper<DictType> codeWrapper = new LambdaQueryWrapper<>();
codeWrapper
.eq(DictType::getDictTypeCode, dictTypeRequest.getDictTypeCode())
.and(i -> i.ne(DictType::getId, dictTypeRequest.getId()));
int dictTypes = this.baseMapper.selectCount(codeWrapper);
if (dictTypes > 0) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_TYPE_CODE_REPEAT.getUserTip(), dictTypeRequest.getDictTypeCode());
throw new DictException(DictExceptionEnum.DICT_TYPE_CODE_REPEAT, userTip);
}
// 模型转化 // 模型转化
BeanUtil.copyProperties(dictTypeRequest, oldDictType); BeanUtil.copyProperties(dictTypeRequest, oldSysDictType);
// 不能修改字典编码 // 不能修改字典编码
oldDictType.setDictTypeCode(null); oldSysDictType.setDictTypeCode(null);
this.updateById(oldDictType); this.updateById(oldSysDictType);
} }
@Override @Override
public void updateDictTypeStatus(DictTypeRequest dictTypeRequest) { public void updateDictTypeStatus(DictTypeRequest dictTypeRequest) {
// 获取字典类型是否存在 // 获取字典类型是否存在
DictType oldDictType = this.baseMapper.selectById(dictTypeRequest.getId()); SysDictType oldSysDictType = this.baseMapper.selectById(dictTypeRequest.getDictTypeId());
if (oldDictType == null) { if (oldSysDictType == null) {
String userTip = StrUtil.format(DictExceptionEnum.DICT_TYPE_NOT_EXISTED.getUserTip(), dictTypeRequest.getId()); String userTip = StrUtil.format(DictExceptionEnum.DICT_TYPE_NOT_EXISTED.getUserTip(), dictTypeRequest.getDictTypeId());
throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, userTip); throw new DictException(DictExceptionEnum.DICT_TYPE_NOT_EXISTED, userTip);
} }
// 判断状态是否正确 // 判断状态是否正确
StatusEnum statusEnum = StatusEnum.codeToEnum(dictTypeRequest.getDictTypeStatus()); StatusEnum statusEnum = StatusEnum.codeToEnum(dictTypeRequest.getStatusFlag());
if (statusEnum == null) { if (statusEnum == null) {
String userTip = StrUtil.format(DictExceptionEnum.WRONG_DICT_STATUS.getUserTip(), dictTypeRequest.getDictTypeStatus()); String userTip = StrUtil.format(DictExceptionEnum.WRONG_DICT_STATUS.getUserTip(), dictTypeRequest.getStatusFlag());
throw new DictException(DictExceptionEnum.WRONG_DICT_STATUS, userTip); throw new DictException(DictExceptionEnum.WRONG_DICT_STATUS, userTip);
} }
// 修改状态 // 修改状态
oldDictType.setDictTypeStatus(dictTypeRequest.getDictTypeStatus()); oldSysDictType.setStatusFlag(dictTypeRequest.getStatusFlag());
this.updateById(oldDictType); this.updateById(oldSysDictType);
} }
@Override @Override
public void deleteDictType(DictTypeRequest dictTypeRequest) { public void deleteDictType(DictTypeRequest dictTypeRequest) {
this.baseMapper.deleteById(dictTypeRequest.getId()); LambdaUpdateWrapper<SysDictType> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(SysDictType::getDelFlag, YesOrNotEnum.Y.getCode());
updateWrapper.eq(SysDictType::getDictTypeId, dictTypeRequest.getDictTypeId());
this.update(updateWrapper);
} }
@Override @Override
public List<DictType> getDictTypeList(DictTypeRequest dictTypeRequest) { public List<SysDictType> getDictTypeList(DictTypeRequest dictTypeRequest) {
return this.baseMapper.findList(null, dictTypeRequest); return this.baseMapper.findList(null, dictTypeRequest);
} }
@Override @Override
public PageResult<DictType> getDictTypePageList(Page<DictType> page, DictTypeRequest dictTypeRequest) { public PageResult<SysDictType> getDictTypePageList(Page<SysDictType> page, DictTypeRequest dictTypeRequest) {
if (page == null) { if (page == null) {
page = PageFactory.defaultPage(); page = PageFactory.defaultPage();
} }
@ -135,12 +119,12 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, DictType> i
@Override @Override
public boolean validateCodeAvailable(DictTypeRequest dictTypeRequest) { public boolean validateCodeAvailable(DictTypeRequest dictTypeRequest) {
LambdaQueryWrapper<DictType> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysDictType> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DictType::getDictTypeCode, dictTypeRequest.getDictTypeCode()); wrapper.eq(SysDictType::getDictTypeCode, dictTypeRequest.getDictTypeCode());
if (ObjectUtil.isNotEmpty(dictTypeRequest.getId())) { if (ObjectUtil.isNotEmpty(dictTypeRequest.getDictTypeId())) {
wrapper.and(i -> i.ne(DictType::getId, dictTypeRequest.getId())); wrapper.and(i -> i.ne(SysDictType::getDictTypeId, dictTypeRequest.getDictTypeId()));
} }
Integer selectCount = this.baseMapper.selectCount(wrapper); Integer selectCount = this.baseMapper.selectCount(wrapper);