cm-cloud/cloud-common-plugin/src/main/resources/mybatis/mapper/dynamic/dynamicdata-mapper.xml

140 lines
4.4 KiB
XML
Raw Normal View History

2019-12-04 23:14:41 +08:00
<?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.cm.common.plugin.dao.dynamic.IDynamicDataDao">
<!-- 新增动态数据 -->
<insert id="saveDynamicData" parameterType="map">
INSERT INTO ${tableName}(
${uuidField},
<foreach collection="insertFieldList" item="insertField" open="" separator="," close=",">
${insertField}
</foreach>
creator,
gmt_create,
modifier,
gmt_modified,
is_delete
) VALUES(
#{uuidValue},
<foreach collection="insertValueList" item="insertValue" open="" separator="," close=",">
#{insertValue}
</foreach>
#{creator},
#{gmtCreate},
#{modifier},
#{gmtModified},
#{isDelete}
)
</insert>
2019-12-05 18:36:45 +08:00
<!-- 删除动态数据 -->
<update id="removeDynamicData" parameterType="map">
UPDATE
${tableName}
SET
is_delete = 1,
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
${uuidField} IN
<foreach collection="idArray" index="index" open="(" separator="," close=")">
#{idArray[${index}]}
</foreach>
</update>
<!-- 修改动态数据 -->
<update id="updateDynamicData" parameterType="map">
UPDATE
${tableName}
SET
<foreach collection="updateFieldValueList" item="item">
<if test="item.value != null">
${item.key} = #{item.value},
</if>
</foreach>
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
${uuidField} = #{uuidValue}
</update>
<!-- 修改动态数据(链接) -->
<update id="updateDynamicJoinData">
UPDATE
${tableName}
SET
<foreach collection="updateFieldValueList" item="item">
<if test="item.value != null">
${item.key} = #{item.value},
</if>
</foreach>
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
${joinKey} = #{joinId}
</update>
2019-12-05 18:36:45 +08:00
<!-- 动态数据列表 -->
<select id="listDynamicData" parameterType="map" resultType="map">
SELECT
2019-12-12 17:14:55 +08:00
<foreach collection="listShowFieldList" item="item" open="" separator="," close="">
t1.${item.fieldName}
2019-12-05 18:36:45 +08:00
</foreach>
2019-12-12 17:14:55 +08:00
<foreach collection="listShowFieldList" index="index" item="item" open="," separator="" close="">
<if test="item.fieldType == 'radio' or item.fieldType == 'checkbox' or item.fieldType == 'select'">
GROUP_CONCAT(t${index + 1}.dictionary_name) ${item.fieldName}_dictionary_name,
</if>
</foreach>
t1.${uuidField}
2019-12-05 18:36:45 +08:00
FROM
2019-12-12 17:14:55 +08:00
${tableName} t1
<foreach collection="listShowFieldList" index="index" item="item" open="" separator="" close="">
<if test="item.fieldType == 'radio' or item.fieldType == 'checkbox' or item.fieldType == 'select'">
LEFT JOIN
data_dictionary t${index + 1}
ON
FIND_IN_SET(t${index + 1}.dictionary_id, t1.${item.fieldName})
AND
t${index + 1}.is_delete = 0
</if>
</foreach>
2019-12-05 18:36:45 +08:00
WHERE
2019-12-12 17:14:55 +08:00
t1.is_delete = 0
GROUP BY
t1.${uuidField}
<foreach collection="listShowFieldList" item="item" open="," separator="," close="">
t1.${item.fieldName}
</foreach>
2019-12-05 18:36:45 +08:00
</select>
<!-- 动态数据详情 -->
<select id="getDynamicData" parameterType="map" resultType="map">
SELECT
2019-12-11 23:32:25 +08:00
${uuidField}
<foreach collection="formShowFieldList" item="item" open="," separator="," close="">
2019-12-05 18:36:45 +08:00
${item}
</foreach>
FROM
${tableName}
WHERE
is_delete = 0
AND
${uuidField} = #{uuidValue}
</select>
<!-- 动态数据详情 -->
<select id="getDynamicJoinData" parameterType="map" resultType="map">
SELECT
${uuidField}
<foreach collection="formShowFieldList" item="item" open="," separator="," close="">
${item}
</foreach>
FROM
${tableName}
WHERE
is_delete = 0
AND
${joinKey} = #{joinId}
</select>
2019-12-04 23:14:41 +08:00
</mapper>