ConstructionCreditMapper.xml 6.85 KB
<?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.trash.business.mapper.ConstructionCreditMapper">
    
    <resultMap type="ConstructionCredit" id="ConstructionCreditResult">
        <result property="id"    column="id"    />
        <result property="name"    column="name"    />
        <result property="type"    column="type"    />
        <result property="time"    column="time"    />
        <result property="place"    column="place"    />
        <result property="reason"    column="reason"    />
        <result property="status"    column="status"    />
        <result property="lostCredit"    column="lost_credit"    />
        <result property="objectId"    column="object_id"    />
        <result property="createBy"    column="create_by"    />
    </resultMap>

    <sql id="selectConstructionCreditVo">
        select id, name, type, time, place, reason, status, lost_credit,object_id from construction_credit
    </sql>
    
    <select id="selectConstructionCreditList" parameterType="ConstructionCredit" resultMap="ConstructionCreditResult">
        <include refid="selectConstructionCreditVo"/>
        <where>  
            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
            <if test="type != null  and type != ''"> and type = #{type}</if>
            <if test="time != null "> and DATE_FORMAT(time,("%y%m%d")) = DATE_FORMAT(#{time},("%y%m%d")) </if>
            <if test="place != null  and place != ''"> and place = #{place}</if>
            <if test="reason != null  and reason != ''"> and reason = #{reason}</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="lostCredit != null "> and lost_credit = #{lostCredit}</if>
            <if test="objectId != null "> and object_id = #{objectId}</if>
            <if test="ids != null "> 
            	and object_id in 
			        <foreach item="id" collection="ids" open="(" separator="," close=")">
			            #{id}
			        </foreach>
			</if>
        </where>
        order by time DESC
    </select>
    
    <select id="selectConstructionCreditById" parameterType="Long" resultMap="ConstructionCreditResult">
        <include refid="selectConstructionCreditVo"/>
        where id = #{id}
    </select>
        
    <insert id="insertConstructionCredit" parameterType="ConstructionCredit" useGeneratedKeys="true" keyProperty="id">
        insert into construction_credit
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="name != null">name,</if>
            <if test="type != null">type,</if>
            <if test="time != null">time,</if>
            <if test="place != null">place,</if>
            <if test="reason != null">reason,</if>
            <if test="status != null">status,</if>
            <if test="lostCredit != null">lost_credit,</if>
            <if test="objectId != null ">object_id,</if>
            <if test="createBy != null ">create_by,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="name != null">#{name},</if>
            <if test="type != null">#{type},</if>
            <if test="time != null">#{time},</if>
            <if test="place != null">#{place},</if>
            <if test="reason != null">#{reason},</if>
            <if test="status != null">#{status},</if>
            <if test="lostCredit != null">#{lostCredit},</if>
            <if test="objectId != null ">#{objectId},</if>
            <if test="createBy != null ">#{createBy},</if>
         </trim>
    </insert>

    <update id="updateConstructionCredit" parameterType="ConstructionCredit">
        update construction_credit
        <trim prefix="SET" suffixOverrides=",">
            <if test="name != null">name = #{name},</if>
            <if test="type != null">type = #{type},</if>
            <if test="time != null">time = #{time},</if>
            <if test="place != null">place = #{place},</if>
            <if test="reason != null">reason = #{reason},</if>
            <if test="status != null">status = #{status},</if>
            <if test="lostCredit != null">lost_credit = #{lostCredit},</if>
            <if test="objectId != null ">object_id = #{objectId}</if>
        </trim>
        where id = #{id}
    </update>

    <delete id="deleteConstructionCreditById" parameterType="Long">
        delete from construction_credit where id = #{id}
    </delete>

    <delete id="deleteConstructionCreditByIds" parameterType="String">
        delete from construction_credit where id in 
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    
    <select id="getNames" parameterType="ConstructionCredit" resultType="String">
    	select DISTINCT name from construction_credit 
        <where>  
            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="lostCredit != null "> and lost_credit = #{lostCredit}</if>
        </where>
    </select>
    
    <select id="getTypes" parameterType="ConstructionCredit" resultType="String">
    	select DISTINCT type from construction_credit 
        <where>  
            <if test="name != null  and name != ''"> and type like concat('%', #{type}, '%')</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="lostCredit != null "> and lost_credit = #{lostCredit}</if>
        </where>
    </select>
        <select id="getPlaces" parameterType="ConstructionCredit" resultType="String">
    	select DISTINCT place from construction_credit 
        <where>  
            <if test="name != null  and name != ''"> and place like concat('%', #{place}, '%')</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="lostCredit != null "> and lost_credit = #{lostCredit}</if>
        </where>
    </select>
    
    
    <select id="selectConstructionCreditHistory" parameterType="ConstructionCredit" resultMap="ConstructionCreditResult">
        SELECT t1.*
		FROM construction_credit t1
		INNER JOIN (
		    SELECT name, MAX(id) as max_id
		    FROM construction_credit
		    GROUP BY name
		) t2 ON t1.name = t2.name AND t1.id = t2.max_id 
        <where>  
            <if test="name != null  and name != ''"> and t1.name like concat('%', #{name}, '%')</if>
            <if test="type != null  and type != ''"> and t1.type = #{type}</if>
            <if test="place != null  and place != ''"> and t1.place = #{place}</if>
            <if test="ids != null "> 
            	and object_id in 
			        <foreach item="id" collection="ids" open="(" separator="," close=")">
			            #{id}
			        </foreach>
			</if>
        </where>
        
        ORDER BY id desc
    </select>
    
</mapper>