CustomerRankPolicyDiscountMapper.xml 6.06 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="cn.runsa.crmapp.customer.mapper.CustomerRankPolicyDiscountMapper">
  <resultMap id="BaseResultMap" type="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount">
    <id column="PLCY_ID" jdbcType="BIGINT" property="plcyId" />
    <result column="ACT_ID" jdbcType="BIGINT" property="actId" />
    <result column="brName" jdbcType="VARCHAR" property="brName" />
    <result column="RAK_ID" jdbcType="VARCHAR" property="rakId" />
    <result column="MAX_DISCOUNT" jdbcType="DOUBLE" property="maxDiscount" />
    <result column="REC_TIME" jdbcType="TIMESTAMP" property="recTime" />
    <result column="REC_USER" jdbcType="BIGINT" property="recUser" />
    <collection property="discountItemList" column="discountItemList" ofType="cn.runsa.crmapp.common.entity.DiscountItem" >
    	<result column="S_DISCOUNT" property="sDiscount"  />
   	 	<result column="E_DISCOUNT" property="eDiscount"  />
    	<result column="values" property="values"  />
    	<result column="PLCY_ID" property="plcyId"  />
    </collection>
    <collection property="list" column="list" ofType="cn.runsa.crmapp.common.entity.PolicyGoodsGroup" >
    	<result column="GRP_ID" property="grpId"  />
    </collection>
  </resultMap>
 <!--  <sql id="Base_Column_List">
    `PLCY_ID`, `ACT_ID`, `RAK_ID`, `MAX_DISCOUNT`, `REC_TIME`, `REC_USER`
  </sql> -->
   <sql id="Base_Column_List">
    pd.PLCY_ID, pd.ACT_ID, pd.RAK_ID, pd.MAX_DISCOUNT, pd.REC_TIME,pd.REC_USER
  </sql> 
<!--   <select id="selectByPrimaryKey" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from crm_rank_policy_discount 
    where 1=1
  </select> -->
   <select id="selectByPrimaryKey" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount" resultMap="BaseResultMap">
		SELECT
				GROUP_CONCAT(mb.brName) AS brName,
				cd.PLCY_ID,
				cd.MAX_DISCOUNT,
				ci.`values`,
				ci.S_DISCOUNT,
				ci.E_DISCOUNT
			FROM
				crm_rank_policy_discount cd
				LEFT JOIN crm_policy_goods_group cg ON cd.PLCY_ID = cg.PLCY_ID
				LEFT JOIN crm_policy_discount_item ci ON ci.PLCY_ID = cd.PLCY_ID
				LEFT JOIN mtBrand mb ON cg.GRP_ID = mb.brId
			WHERE
				cd.ACT_ID=#{actId,jdbcType=BIGINT} and cd.RAK_ID=#{rakId,jdbcType=VARCHAR}
			GROUP BY 
				cd.PLCY_ID,
				cd.MAX_DISCOUNT,
				ci.`values`,
				ci.S_DISCOUNT,
				ci.E_DISCOUNT;
  </select> 
  <!-- 查询已有的策略id -->
  <select id="selectByActIDAndRakId" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount" resultMap="BaseResultMap">
  	select PLCY_ID FROM crm_rank_policy_discount WHERE ACT_ID = #{actId,jdbcType=BIGINT} AND RAK_ID = #{rakId,jdbcType=VARCHAR}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount">
    delete from crm_rank_policy_discount where PLCY_ID = #{plcyId,jdbcType=BIGINT}
  </delete>
  <insert id="insert"  useGeneratedKeys="true" keyProperty="plcyId" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount">
    insert into crm_rank_policy_discount (ACT_ID, RAK_ID, MAX_DISCOUNT, 
      REC_TIME, REC_USER)
    values (#{actId,jdbcType=BIGINT}, #{rakId,jdbcType=VARCHAR},0.0, 
      #{recTime,jdbcType=TIMESTAMP}, #{recUser,jdbcType=BIGINT})
  </insert>
  <insert id="insertSelective" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount">
    <selectKey keyProperty="plcyId" order="AFTER" resultType="java.lang.Long">
      SELECT LAST_INSERT_ID()
    </selectKey>
    insert into crm_rank_policy_discount
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="actId != null">
        ACT_ID,
      </if>
      <if test="rakId != null">
        RAK_ID,
      </if>
      <if test="maxDiscount != null">
        MAX_DISCOUNT,
      </if>
      <if test="recTime != null">
        REC_TIME,
      </if>
      <if test="recUser != null">
        REC_USER,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="actId != null">
        #{actId,jdbcType=BIGINT},
      </if>
      <if test="rakId != null">
        #{rakId,jdbcType=VARCHAR},
      </if>
      <if test="maxDiscount != null">
        #{maxDiscount,jdbcType=DOUBLE},
      </if>
      <if test="recTime != null">
        #{recTime,jdbcType=TIMESTAMP},
      </if>
      <if test="recUser != null">
        #{recUser,jdbcType=BIGINT},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount">
    update crm_rank_policy_discount
    <set>
      <if test="actId != null">
        ACT_ID = #{actId,jdbcType=BIGINT},
      </if>
      <if test="rakId != null">
        RAK_ID = #{rakId,jdbcType=VARCHAR},
      </if>
      <if test="maxDiscount != null">
        MAX_DISCOUNT = #{maxDiscount,jdbcType=DOUBLE},
      </if>
      <if test="recTime != null">
        REC_TIME = #{recTime,jdbcType=TIMESTAMP},
      </if>
      <if test="recUser != null">
        REC_USER = #{recUser,jdbcType=BIGINT},
      </if>
    </set>
    where PLCY_ID = #{plcyId,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount">
    update crm_rank_policy_discount
    set ACT_ID = #{actId,jdbcType=BIGINT},
      RAK_ID = #{rakId,jdbcType=VARCHAR},
      MAX_DISCOUNT = #{maxDiscount,jdbcType=DOUBLE},
      REC_TIME = #{recTime,jdbcType=TIMESTAMP},
      REC_USER = #{recUser,jdbcType=BIGINT}
    where PLCY_ID = #{plcyId,jdbcType=BIGINT}
  </update>
  <select id="queryBrIds" resultType="java.lang.String" parameterType="cn.runsa.crmapp.customer.entity.CustomerRankPolicyDiscount">
	<![CDATA[SELECT GROUP_CONCAT(DISTINCT T2.GRP_ID) GRP_ID FROM CRM_RANK_POLICY_DISCOUNT T1 LEFT JOIN CRM_POLICY_GOODS_GROUP T2 ON T1.PLCY_ID = T2.PLCY_ID WHERE T1.ACT_ID=#{actId,jdbcType=BIGINT} AND T1.RAK_ID=#{rakId,jdbcType=VARCHAR} AND T1.PLCY_ID <>#{plcyId,jdbcType=BIGINT}]]>
  </select>
</mapper>