feat:字典表

This commit is contained in:
wangff
2025-11-04 13:22:49 +08:00
parent 6c04721042
commit 867a45f154
28 changed files with 2006 additions and 0 deletions

View File

@@ -0,0 +1,150 @@
package com.cool.store.dao.dict;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.excel.util.CollectionUtils;
import com.cool.store.entity.dict.SysDictColumnDO;
import com.cool.store.entity.dict.SysDictTableDO;
import com.cool.store.mapper.dict.SysDictColumnMapper;
import com.cool.store.request.dict.DictColumnQueryRequest;
import com.cool.store.utils.BeanUtil;
import com.cool.store.vo.dict.DictColumnSimpleVO;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Repository;
import java.util.*;
/**
* <p>
* 字典项DAO
* </p>
*
* @author wangff
* @since 2025/9/26
*/
@Repository
@RequiredArgsConstructor
public class SysDictColumnDAO {
private final SysDictColumnMapper sysDictColumnMapper;
private final SysDictTableDAO sysDictTableDAO;
public List<SysDictColumnDO> getList(DictColumnQueryRequest dto) {
return sysDictColumnMapper.selectList(dto);
}
/**
* 根据id查询
*
* @param id id
* @return 字典项信息表
*/
public SysDictColumnDO getById(Long id) {
return sysDictColumnMapper.selectById(id);
}
/**
* 根据字典表id查询字典项数量
*
* @param tableIds 字典表id列表
* @return <字典表id, 字典项数量>
*/
public Map<Long, Integer> getColumnNumMapByTableIds(List<Long> tableIds) {
if (CollectionUtil.isEmpty(tableIds)) {
return Collections.emptyMap();
}
List<Map<String, Object>> mapList = sysDictColumnMapper.selectColumnNumByTableIds(tableIds);
return CollStreamUtil.toMap(mapList, v -> MapUtils.getLong(v, "dict_table_id"), v -> MapUtils.getInteger(v, "num"));
}
/**
* 过滤存在启用字典项的字典分组id
* @param groupIds 字典分组id列表
* @return 字典分组id列表
*/
public Set<Long> filterEnableColumnByGroupIds(List<Long> groupIds) {
if (CollectionUtil.isEmpty(groupIds)) {
return Collections.emptySet();
}
List<Map<String, Object>> list = sysDictColumnMapper.filterEnableColumnByGroupIds(groupIds);
return CollStreamUtil.toSet(list, v -> MapUtils.getLong(v, "dict_group_id"));
}
/**
* 过滤存在启用字典项的字典表id
* @param tableIds 字典表id列表
* @return 字典表id列表
*/
public Set<Long> filterEnableColumnByTableIds(List<Long> tableIds) {
if (CollectionUtil.isEmpty(tableIds)) {
return Collections.emptySet();
}
List<Map<String, Object>> list = sysDictColumnMapper.filterEnableColumnByTableIds(tableIds);
return CollStreamUtil.toSet(list, v -> MapUtils.getLong(v, "dict_table_id"));
}
/**
* 根据分组id删除
* @param groupIds 分组id列表
*/
public void deleteByGroupIds(List<Long> groupIds) {
if (CollectionUtil.isEmpty(groupIds)) {
return;
}
sysDictColumnMapper.deleteByGroupIds(groupIds);
}
/**
* 根据字典表id删除
* @param tableIds 字典表id列表
*/
public void deleteByTableIds(List<Long> tableIds) {
if (CollectionUtil.isEmpty(tableIds)) {
return;
}
sysDictColumnMapper.deleteByTableIds(tableIds);
}
/**
* 根据字典列编码查询已启用字典项信息
* @param columnCode 字典列编码
* @return 字典项信息
*/
public SysDictColumnDO getOpenColumnByCode(String columnCode) {
return sysDictColumnMapper.selectOpenColumnByCode(columnCode);
}
/**
* 根据字典列编码查询已启用字典名
* @param columnCode 字典列编码
* @return 字典名
*/
public String getNameByCode(String columnCode) {
SysDictColumnDO sysDictColumnDO = sysDictColumnMapper.selectOpenColumnByCode(columnCode);
if (Objects.nonNull(sysDictColumnDO)) {
return sysDictColumnDO.getColumnName();
}
return "";
}
/**
* 根据字典表编码查询启用状态的字典项
* @param tableCodes 字典表编码列表
* @return 字典项列表
*/
public List<DictColumnSimpleVO> getOpenColumnListByTableCode(List<String> tableCodes) {
List<SysDictTableDO> tableList = sysDictTableDAO.getOpenTableListByTableCodes(tableCodes);
if (CollectionUtils.isEmpty(tableList)) {
return Collections.emptyList();
}
List<Long> tableIds = CollStreamUtil.toList(tableList, SysDictTableDO::getId);
List<SysDictColumnDO> columnList = sysDictColumnMapper.selectOpenColumnListByTableIds(tableIds);
Map<Long, String> tableCodeMap = CollStreamUtil.toMap(tableList, SysDictTableDO::getId, SysDictTableDO::getTableCode);
return CollStreamUtil.toList(columnList, v -> {
DictColumnSimpleVO vo = BeanUtil.toBean(v, DictColumnSimpleVO.class);
vo.setTableCode(tableCodeMap.get(v.getDictTableId()));
return vo;
});
}
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.dao.dict;
import com.cool.store.entity.dict.SysDictGroupDO;
import com.cool.store.mapper.dict.SysDictGroupMapper;
import com.cool.store.request.dict.DictGroupQueryRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 字典分组DAO
* </p>
*
* @author wangff
* @since 2025/9/26
*/
@Repository
@RequiredArgsConstructor
public class SysDictGroupDAO {
private final SysDictGroupMapper sysDictGroupMapper;
/**
* 根据id查询
* @param id id
* @return 字典分组表
*/
public SysDictGroupDO getById(Long id) {
return sysDictGroupMapper.selectById(id);
}
/**
* 查询列表
* @param dto 字典分组查询DTO
* @return 字典分组表列表
*/
public List<SysDictGroupDO> getList(DictGroupQueryRequest dto) {
return sysDictGroupMapper.selectList(dto);
}
}

View File

@@ -0,0 +1,129 @@
package com.cool.store.dao.dict;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.excel.util.CollectionUtils;
import com.cool.store.entity.dict.SysDictTableDO;
import com.cool.store.mapper.dict.SysDictTableMapper;
import com.cool.store.request.dict.DictTableQueryRequest;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Repository;
import java.util.*;
/**
* <p>
* 字典表DAO
* </p>
*
* @author wangff
* @since 2025/9/25
*/
@Repository
@RequiredArgsConstructor
public class SysDictTableDAO {
private final SysDictTableMapper dictTableMapper;
/**
* 列表查询
* @param dto 字典表查询DTO
* @return 字典表信息表列表
*/
public List<SysDictTableDO> getList(DictTableQueryRequest dto) {
return dictTableMapper.selectList(dto);
}
/**
* 根据id查询
* @param id id
* @return 字典表信息表
*/
public SysDictTableDO getById(Long id) {
return dictTableMapper.selectById(id);
}
/**
* 根据id查询
* @param ids id列表
* @return 字典表列表
*/
public List<SysDictTableDO> getByIds(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) {
return Collections.emptyList();
}
return dictTableMapper.selectByIds(ids);
}
/**
* 根据字典表id查询所属字典分组id
* @param dictTableId 字典表id
* @return 字典分组id
*/
public Long getGroupIdByTableId(Long dictTableId) {
SysDictTableDO tableInfoDO = getById(dictTableId);
if (Objects.nonNull(tableInfoDO)) {
return tableInfoDO.getDictGroupId();
}
return null;
}
/**
* 根据分组id查询字典表
* @param groupIds 字典分组id列表
* @return 字典表VO对象列表
*/
public List<SysDictTableDO> getListByGroupIds(List<Long> groupIds, Integer openStatus) {
if (CollectionUtil.isEmpty(groupIds)) {
return Collections.emptyList();
}
return dictTableMapper.selectByGroupIds(groupIds, openStatus);
}
/**
* 过滤存在启用字典表的字典分组id
* @param groupIds 字典分组id
* @return 字典分组id列表
*/
public Set<Long> filterEnableTableByGroupIds(List<Long> groupIds) {
if (CollectionUtil.isEmpty(groupIds)) {
return Collections.emptySet();
}
List<Map<String, Object>> maps = dictTableMapper.filterEnableTableByGroupIds(groupIds);
return CollStreamUtil.toSet(maps, v -> MapUtils.getLong(v, "dict_group_id"));
}
/**
* 根据分组id删除
* @param groupIds 分组id列表
*/
public void deleteByGroupIds(List<Long> groupIds) {
if (CollectionUtil.isEmpty(groupIds)) {
return;
}
dictTableMapper.deleteByGroupIds(groupIds);
}
/**
* 根据字典表编码查询
* @param tableCode 字典表编码
* @return 字典表
*/
public SysDictTableDO getByTableCode(String tableCode) {
return dictTableMapper.selectByTableCode(tableCode);
}
/**
* 根据字典表编码查询启用状态的字典表
* @param tableCodes 字典表编码
* @return 字典表列表
*/
public List<SysDictTableDO> getOpenTableListByTableCodes(List<String> tableCodes) {
if (CollectionUtils.isEmpty(tableCodes)) {
return Collections.emptyList();
}
return dictTableMapper.selectOpenTableListByTableCodes(tableCodes);
}
}

View File

@@ -0,0 +1,104 @@
package com.cool.store.mapper.dict;
import com.cool.store.entity.dict.SysDictColumnDO;
import com.cool.store.request.dict.DictColumnQueryRequest;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author zhangchenbiao
* @date 2025-09-25 06:34
*/
public interface SysDictColumnMapper {
/**
*
* 默认插入方法,只会给有值的字段赋值
* 会对传进来的字段做判空处理如果字段为空则使用数据库默认字段或者null
* dateTime:2025-09-25 06:34
*/
int insertSelective(@Param("record") SysDictColumnDO record);
/**
*
* 默认更新方法根据主键更新不会把null值更新到数据库避免覆盖之前有值的
* dateTime:2025-09-25 06:34
*/
int updateByPrimaryKeySelective(@Param("record") SysDictColumnDO record);
/**
* 查询已存在的字典项
* @param columnCode 字典项编码
* @return com.coolcollege.intelligent.model.dict.SysDictColumnDO
*/
SysDictColumnDO selectExistColumn(@Param("id") Long id,
@Param("columnCode") String columnCode);
/**
* 根据id批量删除
* @param ids id列表
* @return int
*/
int deleteByIds(@Param("ids") List<Long> ids);
/**
* 列表查询
* @param dto 查询DTO
* @return 字典项列表
*/
List<SysDictColumnDO> selectList(@Param("dto") DictColumnQueryRequest dto);
/**
* 根据id查询
* @param id id
* @return 字典项
*/
SysDictColumnDO selectById(@Param("id") Long id);
/**
* 根据字典表id查询字典项数量
* @param tableIds 字典表id列表
*/
List<Map<String, Object>> selectColumnNumByTableIds(@Param("tableIds") List<Long> tableIds);
/**
* 过滤存在已启用字典项的字典表分组id
* @param groupIds 分组id列表
*/
List<Map<String, Object>> filterEnableColumnByGroupIds(@Param("groupIds") List<Long> groupIds);
/**
* 过滤存在已启用字典项的字典表id
* @param tableIds 字典表id列表
*/
List<Map<String, Object>> filterEnableColumnByTableIds(@Param("tableIds") List<Long> tableIds);
/**
* 根据分组id删除字典项
* @param groupIds 分组id列表
* @return int
*/
int deleteByGroupIds(@Param("groupIds") List<Long> groupIds);
/**
* 根据字典表id删除字典项
* @param tableIds 字典表id列表
* @return int
*/
int deleteByTableIds(@Param("tableIds") List<Long> tableIds);
/**
* 根据字典项编码查询字典项
* @param columnCode 字典项编码
* @return 字典项
*/
SysDictColumnDO selectOpenColumnByCode(@Param("columnCode") String columnCode);
/**
* 根据字典表id查询
* @param tableIds 字典表id列表
* @return 字典项列表
*/
List<SysDictColumnDO> selectOpenColumnListByTableIds(@Param("tableIds") List<Long> tableIds);
}

View File

@@ -0,0 +1,50 @@
package com.cool.store.mapper.dict;
import com.cool.store.entity.dict.SysDictGroupDO;
import com.cool.store.request.dict.DictGroupQueryRequest;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author zhangchenbiao
* @date 2025-09-25 06:35
*/
public interface SysDictGroupMapper {
/**
* 默认插入方法,只会给有值的字段赋值
* 会对传进来的字段做判空处理如果字段为空则使用数据库默认字段或者null
* dateTime:2025-09-25 06:35
*/
int insertSelective(@Param("record") SysDictGroupDO record);
/**
* 默认更新方法根据主键更新不会把null值更新到数据库避免覆盖之前有值的
* dateTime:2025-09-25 06:35
*/
int updateByPrimaryKeySelective(@Param("record") SysDictGroupDO record);
/**
* 根据id批量删除
*
* @param ids id列表
* @return int
*/
int deleteByIds(@Param("ids") List<Long> ids);
/**
* 根据id查询
*
* @param id id
* @return 字典分组
*/
SysDictGroupDO selectById(@Param("id") Long id);
/**
* 列表查询
*
* @param dto 查询DTO
* @return 字典分组列表
*/
List<SysDictGroupDO> selectList(@Param("dto") DictGroupQueryRequest dto);
}

View File

@@ -0,0 +1,109 @@
package com.cool.store.mapper.dict;
import com.cool.store.entity.dict.SysDictTableDO;
import com.cool.store.request.dict.DictTableQueryRequest;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author zhangchenbiao
* @date 2025-09-25 06:30
*/
public interface SysDictTableMapper {
/**
* 默认插入方法,只会给有值的字段赋值
* 会对传进来的字段做判空处理如果字段为空则使用数据库默认字段或者null
* dateTime:2025-09-25 06:30
*/
int insertSelective(@Param("record") SysDictTableDO record, @Param("enterpriseId") String enterpriseId);
/**
* 默认更新方法根据主键更新不会把null值更新到数据库避免覆盖之前有值的
* dateTime:2025-09-25 06:30
*/
int updateByPrimaryKeySelective(@Param("record") SysDictTableDO record, @Param("enterpriseId") String enterpriseId);
/**
* 查询重复的字典表
*
* @param id id
* @param tableCode 字典表code
* @return 字典表
*/
SysDictTableDO selectExistTable(@Param("id") Long id,
@Param("tableCode") String tableCode);
/**
* 根据id删除
*
* @param ids id列表
*/
int deleteByIds(@Param("ids") List<Long> ids);
/**
* 列表查询
*
* @param dto 查询DTO
* @return 字典表列表
*/
List<SysDictTableDO> selectList(@Param("dto") DictTableQueryRequest dto);
/**
* 根据id查询
*
* @param id id
* @return 字典表
*/
SysDictTableDO selectById(@Param("id") Long id);
/**
* 根据id查询
*
* @param ids id列表
* @return 字典表列表
*/
List<SysDictTableDO> selectByIds(@Param("ids") List<Long> ids);
/**
* 根据分组id查询
*
* @param groupIds 分组id列表
* @param openStatus 启用状态
* @return 字典表列表
*/
List<SysDictTableDO> selectByGroupIds(@Param("groupIds") List<Long> groupIds,
@Param("openStatus") Integer openStatus);
/**
* 根据分组id查询已启用的字典表
*
* @param groupIds 分组id列表
*/
List<Map<String, Object>> filterEnableTableByGroupIds(@Param("groupIds") List<Long> groupIds);
/**
* 根据分组id删除
*
* @param groupIds 分组id列表
* @return int
*/
int deleteByGroupIds(@Param("groupIds") List<Long> groupIds);
/**
* 根据字典表编码查询
*
* @param tableCode 字典表编码
* @return 字典表
*/
SysDictTableDO selectByTableCode(@Param("tableCode") String tableCode);
/**
* 根据字典表编码查询启用状态的字典表
*
* @param tableCodes 字典表编码
* @return 字典表列表
*/
List<SysDictTableDO> selectOpenTableListByTableCodes(@Param("tableCodes") List<String> tableCodes);
}

View File

@@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.dict.SysDictColumnMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.dict.SysDictColumnDO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="dict_group_id" jdbcType="BIGINT" property="dictGroupId" />
<result column="dict_table_id" jdbcType="BIGINT" property="dictTableId" />
<result column="column_name" jdbcType="VARCHAR" property="columnName" />
<result column="column_code" jdbcType="VARCHAR" property="columnCode" />
<result column="open_status" jdbcType="TINYINT" property="openStatus" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="deleted" jdbcType="BIT" property="deleted" />
<result column="create_user_id" jdbcType="VARCHAR" property="createUserId" />
<result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
id, dict_group_id, dict_table_id, column_name, column_code, open_status, remark,
deleted, create_user_id, update_user_id, create_time, update_time
</sql>
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
insert into sys_dict_column_${enterpriseId}
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="record.dictGroupId != null">
dict_group_id,
</if>
<if test="record.dictTableId != null">
dict_table_id,
</if>
<if test="record.columnName != null">
column_name,
</if>
<if test="record.columnCode != null">
column_code,
</if>
<if test="record.openStatus != null">
open_status,
</if>
<if test="record.remark != null">
remark,
</if>
<if test="record.deleted != null">
deleted,
</if>
<if test="record.createUserId != null">
create_user_id,
</if>
<if test="record.updateUserId != null">
update_user_id,
</if>
<if test="record.createTime != null">
create_time,
</if>
<if test="record.updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="record.dictGroupId != null">
#{record.dictGroupId},
</if>
<if test="record.dictTableId != null">
#{record.dictTableId},
</if>
<if test="record.columnName != null">
#{record.columnName},
</if>
<if test="record.columnCode != null">
#{record.columnCode},
</if>
<if test="record.openStatus != null">
#{record.openStatus},
</if>
<if test="record.remark != null">
#{record.remark},
</if>
<if test="record.deleted != null">
#{record.deleted},
</if>
<if test="record.createUserId != null">
#{record.createUserId},
</if>
<if test="record.updateUserId != null">
#{record.updateUserId},
</if>
<if test="record.createTime != null">
#{record.createTime},
</if>
<if test="record.updateTime != null">
#{record.updateTime},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective">
update sys_dict_column_${enterpriseId}
<set>
<if test="record.dictGroupId != null">
dict_group_id = #{record.dictGroupId},
</if>
<if test="record.dictTableId != null">
dict_table_id = #{record.dictTableId},
</if>
<if test="record.columnName != null">
column_name = #{record.columnName},
</if>
<if test="record.columnCode != null">
column_code = #{record.columnCode},
</if>
<if test="record.openStatus != null">
open_status = #{record.openStatus},
</if>
<if test="record.remark != null">
remark = #{record.remark},
</if>
<if test="record.deleted != null">
deleted = #{record.deleted},
</if>
<if test="record.createUserId != null">
create_user_id = #{record.createUserId},
</if>
<if test="record.updateUserId != null">
update_user_id = #{record.updateUserId},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime},
</if>
</set>
where id = #{record.id}
</update>
<select id="selectExistColumn" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_column_${enterpriseId}
<where>
<if test="id != null">
AND id != #{id}
</if>
AND column_code = #{columnCode}
AND deleted = 0
LIMIT 1
</where>
</select>
<update id="deleteByIds">
UPDATE sys_dict_column_${enterpriseId}
SET deleted = 1
WHERE id IN
<foreach item="id" collection="ids" separator="," open="(" close=")">
#{id}
</foreach>
AND deleted = 0
</update>
<select id="selectList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_column_${enterpriseId}
<where>
deleted = 0
<if test="dto.dictGroupId != null">
AND dict_group_id = #{dto.dictGroupId}
</if>
<if test="dto.dictTableId != null">
AND dict_table_id = #{dto.dictTableId}
</if>
<if test="dto.columnName != null and dto.columnName != ''">
AND column_name LIKE CONCAT('%', #{dto.columnName}, '%')
</if>
<if test="dto.columnCode != null and dto.columnCode != ''">
AND column_code = #{dto.columnCode}
</if>
<if test="dto.openStatus != null">
AND open_status = #{dto.openStatus}
</if>
<if test="dto.remark != null and dto.remark != ''">
AND remark LIKE CONCAT('%', #{dto.remark}, '%')
</if>
ORDER BY create_time ASC
</where>
</select>
<select id="selectById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_column_${enterpriseId}
WHERE id = #{id} AND deleted = 0 LIMIT 1
</select>
<select id="selectColumnNumByTableIds" resultType="java.util.Map">
SELECT COUNT(*) num, dict_table_id
FROM sys_dict_column_${enterpriseId}
WHERE dict_table_id IN
<foreach collection="tableIds" item="tableId" separator="," open="(" close=")">
#{tableId}
</foreach>
AND deleted = 0
GROUP BY dict_table_id
</select>
<select id="filterEnableColumnByGroupIds" resultType="java.util.Map">
SELECT DISTINCT dict_group_id
FROM sys_dict_column_${enterpriseId}
WHERE dict_group_id IN
<foreach collection="groupIds" item="groupId" open="(" separator="," close=")">
#{groupId}
</foreach>
AND open_status = 1
AND deleted = 0
</select>
<select id="filterEnableColumnByTableIds" resultType="java.util.Map">
SELECT DISTINCT dict_table_id
FROM sys_dict_column_${enterpriseId}
WHERE dict_table_id IN
<foreach collection="tableIds" item="tableId" open="(" separator="," close=")">
#{tableId}
</foreach>
AND open_status = 1
AND deleted = 0
</select>
<update id="deleteByGroupIds">
UPDATE sys_dict_column_${enterpriseId}
SET deleted = 1
WHERE dict_group_id IN
<foreach item="groupId" collection="groupIds" separator="," open="(" close=")">
#{groupId}
</foreach>
AND deleted = 0
</update>
<update id="deleteByTableIds">
UPDATE sys_dict_column_${enterpriseId}
SET deleted = 1
WHERE dict_table_id IN
<foreach item="tableId" collection="tableIds" separator="," open="(" close=")">
#{tableId}
</foreach>
AND deleted = 0
</update>
<select id="selectOpenColumnByCode" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_column_${enterpriseId}
WHERE column_code = #{columnCode} AND deleted = 0 AND open_status = 1 LIMIT 1
</select>
<select id="selectOpenColumnListByTableIds" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_column_${enterpriseId}
WHERE dict_table_id IN
<foreach item="tableId" collection="tableIds" separator="," open="(" close=")">
#{tableId}
</foreach>
AND deleted = 0 AND open_status = 1
</select>
</mapper>

View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.dict.SysDictGroupMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.dict.SysDictGroupDO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="group_name" jdbcType="VARCHAR" property="groupName" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="deleted" jdbcType="BIT" property="deleted" />
<result column="create_user_id" jdbcType="VARCHAR" property="createUserId" />
<result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
id, group_name, remark, deleted, create_user_id, update_user_id, create_time, update_time
</sql>
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
insert into sys_dict_group_${enterpriseId}
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="record.groupName != null">
group_name,
</if>
<if test="record.remark != null">
remark,
</if>
<if test="record.deleted != null">
deleted,
</if>
<if test="record.createUserId != null">
create_user_id,
</if>
<if test="record.updateUserId != null">
update_user_id,
</if>
<if test="record.createTime != null">
create_time,
</if>
<if test="record.updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="record.groupName != null">
#{record.groupName},
</if>
<if test="record.remark != null">
#{record.remark},
</if>
<if test="record.deleted != null">
#{record.deleted},
</if>
<if test="record.createUserId != null">
#{record.createUserId},
</if>
<if test="record.updateUserId != null">
#{record.updateUserId},
</if>
<if test="record.createTime != null">
#{record.createTime},
</if>
<if test="record.updateTime != null">
#{record.updateTime},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective">
update sys_dict_group_${enterpriseId}
<set>
<if test="record.groupName != null">
group_name = #{record.groupName},
</if>
<if test="record.remark != null">
remark = #{record.remark},
</if>
<if test="record.deleted != null">
deleted = #{record.deleted},
</if>
<if test="record.createUserId != null">
create_user_id = #{record.createUserId},
</if>
<if test="record.updateUserId != null">
update_user_id = #{record.updateUserId},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime},
</if>
</set>
where id = #{record.id}
</update>
<update id="deleteByIds">
UPDATE sys_dict_group_${enterpriseId}
SET deleted = 1
WHERE id IN
<foreach item="id" collection="ids" separator="," open="(" close=")">
#{id}
</foreach>
AND deleted = 0
</update>
<select id="selectById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM sys_dict_group_${enterpriseId}
WHERE id = #{id} AND deleted = 0 LIMIT 1
</select>
<select id="selectList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_group_${enterpriseId}
WHERE deleted = 0
<if test="dto.groupName != null and dto.groupName != ''">
AND group_name LIKE CONCAT('%', #{dto.groupName}, '%')
</if>
<if test="dto.remark != null and dto.remark != ''">
AND remark LIKE CONCAT('%', #{dto.remark}, '%')
</if>
ORDER BY create_time ASC
</select>
</mapper>

View File

@@ -0,0 +1,237 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.dict.SysDictTableMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.dict.SysDictTableDO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="dict_group_id" jdbcType="BIGINT" property="dictGroupId" />
<result column="table_name" jdbcType="VARCHAR" property="tableName" />
<result column="table_code" jdbcType="VARCHAR" property="tableCode" />
<result column="open_status" jdbcType="TINYINT" property="openStatus" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="deleted" jdbcType="BIT" property="deleted" />
<result column="create_user_id" jdbcType="VARCHAR" property="createUserId" />
<result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
id, dict_group_id, table_name, table_code, open_status, remark, deleted, create_user_id,
update_user_id, create_time, update_time
</sql>
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
insert into sys_dict_table_${enterpriseId}
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="record.dictGroupId != null">
dict_group_id,
</if>
<if test="record.tableName != null">
table_name,
</if>
<if test="record.tableCode != null">
table_code,
</if>
<if test="record.openStatus != null">
open_status,
</if>
<if test="record.remark != null">
remark,
</if>
<if test="record.deleted != null">
deleted,
</if>
<if test="record.createUserId != null">
create_user_id,
</if>
<if test="record.updateUserId != null">
update_user_id,
</if>
<if test="record.createTime != null">
create_time,
</if>
<if test="record.updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="record.dictGroupId != null">
#{record.dictGroupId},
</if>
<if test="record.tableName != null">
#{record.tableName},
</if>
<if test="record.tableCode != null">
#{record.tableCode},
</if>
<if test="record.openStatus != null">
#{record.openStatus},
</if>
<if test="record.remark != null">
#{record.remark},
</if>
<if test="record.deleted != null">
#{record.deleted},
</if>
<if test="record.createUserId != null">
#{record.createUserId},
</if>
<if test="record.updateUserId != null">
#{record.updateUserId},
</if>
<if test="record.createTime != null">
#{record.createTime},
</if>
<if test="record.updateTime != null">
#{record.updateTime},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective">
update sys_dict_table_${enterpriseId}
<set>
<if test="record.dictGroupId != null">
dict_group_id = #{record.dictGroupId},
</if>
<if test="record.tableName != null">
table_name = #{record.tableName},
</if>
<if test="record.tableCode != null">
table_code = #{record.tableCode},
</if>
<if test="record.openStatus != null">
open_status = #{record.openStatus},
</if>
<if test="record.remark != null">
remark = #{record.remark},
</if>
<if test="record.deleted != null">
deleted = #{record.deleted},
</if>
<if test="record.createUserId != null">
create_user_id = #{record.createUserId},
</if>
<if test="record.updateUserId != null">
update_user_id = #{record.updateUserId},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime},
</if>
</set>
where id = #{record.id}
</update>
<select id="selectExistTable" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_table_${enterpriseId}
<where>
<if test="id != null">
AND id != #{id}
</if>
AND table_code = #{tableCode}
AND deleted = 0
LIMIT 1
</where>
</select>
<update id="deleteByIds">
UPDATE sys_dict_table_${enterpriseId}
SET deleted = 1
WHERE id IN
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
AND deleted = 0
</update>
<select id="selectList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_table_${enterpriseId}
WHERE deleted = 0
<if test="dto.dictGroupId != null">
AND dict_group_id = #{dto.dictGroupId}
</if>
<if test="dto.tableName != null and dto.tableName != ''">
AND table_name LIKE CONCAT('%', #{dto.tableName}, '%')
</if>
<if test="dto.tableCode != null and dto.tableCode != ''">
AND table_code = #{dto.tableCode}
</if>
<if test="dto.openStatus != null">
AND open_status = #{dto.openStatus}
</if>
<if test="dto.remark != null and dto.remark != ''">
AND remark LIKE CONCAT('%', #{dto.remark}, '%')
</if>
ORDER BY create_time ASC
</select>
<select id="selectById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_table_${enterpriseId}
WHERE id = #{id} AND deleted = 0 LIMIT 1
</select>
<select id="selectByIds" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_table_${enterpriseId}
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
AND deleted = 0
</select>
<select id="selectByGroupIds" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_table_${enterpriseId}
<where>
dict_group_id IN
<foreach item="groupId" collection="groupIds" open="(" separator="," close=")">
#{groupId}
</foreach>
<if test="openStatus != null">
AND open_status = #{openStatus}
</if>
AND deleted = 0
</where>
</select>
<select id="filterEnableTableByGroupIds" resultType="java.util.Map">
SELECT DISTINCT dict_group_id
FROM sys_dict_table_${enterpriseId}
WHERE dict_group_id IN
<foreach collection="groupIds" item="groupId" open="(" separator="," close=")">
#{groupId}
</foreach>
AND open_status = 1
AND deleted = 0
</select>
<update id="deleteByGroupIds">
UPDATE sys_dict_table_${enterpriseId}
SET deleted = 1
WHERE dict_group_id IN
<foreach item="groupId" collection="groupIds" open="(" separator="," close=")">
#{groupId}
</foreach>
AND deleted = 0
</update>
<select id="selectByTableCode" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_table_${enterpriseId}
WHERE table_code = #{tableCode} AND deleted = 0 LIMIT 1
</select>
<select id="selectOpenTableListByTableCodes" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM sys_dict_table_${enterpriseId}
WHERE table_code IN
<foreach item="tableCode" collection="tableCodes" open="(" separator="," close=")">
#{tableCode}
</foreach>
AND deleted = 0 AND open_status = 1
</select>
</mapper>