周浩 пре 9 година
родитељ
комит
b84c289279

+ 122 - 0
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/template/TemplateMapper.xml

@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="org.hsweb.web.dao.template.TemplateMapper">
+    <resultMap id="TemplateResultMap" type="Template">
+        <id property="id" column="u_id" javaType="string" jdbcType="VARCHAR"/>
+        <result property="name" column="name" javaType="String" jdbcType="VARCHAR"/>
+        <result property="remark" column="remark" javaType="String" jdbcType="VARCHAR"/>
+        <result property="template" column="template" javaType="String" jdbcType="CLOB"/>
+        <result property="classifiedId" column="classified_id" javaType="String" jdbcType="VARCHAR"/>
+        <result property="type" column="type" javaType="String" jdbcType="VARCHAR"/>
+        <result property="script" column="script" javaType="String" jdbcType="CLOB"/>
+        <result property="css" column="css" javaType="String" jdbcType="CLOB"/>
+        <result property="cssLinks" column="css_links" javaType="java.util.List" jdbcType="CLOB"
+                typeHandler="org.hsweb.web.mybatis.handler.JsonArrayHandler"/>
+        <result property="scriptLinks" column="script_links" javaType="java.util.List" jdbcType="CLOB"
+                typeHandler="org.hsweb.web.mybatis.handler.JsonArrayHandler"/>
+        <result property="version" column="version" javaType="int" jdbcType="INTEGER"/>
+        <result property="revision" column="revision" javaType="int" jdbcType="INTEGER"/>
+        <result property="release" column="release" javaType="int" jdbcType="INTEGER"/>
+        <result property="using" column="using" javaType="boolean" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--字段信息绑定-->
+    <sql id="fieldConfig">
+        <bind name="$fieldsInfo"
+              value="#{
+                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
+                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
+                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
+                    ,'template':#{'jdbcType':'VARCHAR','javaType':'string'}
+                    ,'classified_id':#{'property':'classifiedId','jdbcType':'VARCHAR','javaType':'string'}
+                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
+                    ,'script':#{'jdbcType':'VARCHAR','javaType':'string'}
+                    ,'css':#{'jdbcType':'VARCHAR','javaType':'string'}
+                    ,'css_links':#{'property':'cssLinks','jdbcType':'CLOB','javaType':'java.util.List'}
+                    ,'script_links':#{'property':'scriptLinks','jdbcType':'CLOB','javaType':'java.util.List'}
+                    ,'version':#{'jdbcType':'INTEGER','javaType':'int'}
+                    ,'revision':#{'jdbcType':'INTEGER','javaType':'int'}
+                    ,'release':#{'jdbcType':'INTEGER','javaType':'int'}
+                    ,'using':#{'jdbcType':'INTEGER','javaType':'boolean'}
+                    }"/>
+
+        <bind name="$fields" value="$fieldsInfo.keySet()"/>
+    </sql>
+
+    <!--表名-->
+    <sql id="tableName">
+        <bind name="$tableName" value="'s_template'"/>
+    </sql>
+
+    <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
+        <include refid="fieldConfig"/>
+        <include refid="tableName"/>
+        <include refid="BasicMapper.buildInsertSql"/>
+    </insert>
+
+    <delete id="delete" parameterType="org.hsweb.web.bean.common.DeleteParam">
+        delete from s_template where u_id=#{term.primaryKey}
+    </delete>
+
+    <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
+        <include refid="fieldConfig"/>
+        <include refid="tableName"/>
+        <include refid="BasicMapper.buildUpdateSql"/>
+    </update>
+
+    <select id="selectByPk" parameterType="string" resultMap="TemplateResultMap">
+        select * from s_template WHERE u_id=#{id}
+    </select>
+
+    <select id="selectUsing" parameterType="string" resultMap="TemplateResultMap">
+        select * from s_template WHERE using=1 and name=#{name}
+    </select>
+
+    <select id="selectLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="TemplateResultMap">
+        <include refid="fieldConfig"/>
+        <!--定义字段配置-->
+        <bind name="$tableName" value="'t2'"/>
+        <!--定义表名-->
+        select
+        <!--动态生成要查询的字段-->
+        <include refid="BasicMapper.buildSelectField"/>
+        from (
+        select s_template.name,max(s_template.version) as version from s_template s_template
+        <include refid="tableName"/>
+        <where>
+            <!--动态查询条件-->
+            <include refid="BasicMapper.buildWhere"/>
+        </where>
+        group by name) t1
+        left join s_form t2 on t1.name=t2.name and t1.version =t2.version
+        <bind name="$tableName" value="'t2'"/>
+        <include refid="BasicMapper.buildSortField"/>
+    </select>
+
+    <select id="countLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
+        <include refid="fieldConfig"/>
+        <include refid="tableName"/>
+        select count(0) as total from (
+        select s_template.name,max(s_form.version) as version from s_template s_template
+        <where>
+            <include refid="BasicMapper.buildWhere"/>
+        </where>
+        group by name) t1
+        left join s_template t2 on t1.name=t2.name and t1.version =t2.version
+    </select>
+
+    <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="TemplateResultMap">
+        <include refid="fieldConfig"/>
+        <include refid="tableName"/>
+        <include refid="BasicMapper.buildSelectSql"/>
+    </select>
+
+    <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
+        <include refid="fieldConfig"/>
+        <include refid="tableName"/>
+        <include refid="BasicMapper.buildTotalSql"/>
+    </select>
+</mapper>