yujian
2020-06-09 554de444b87aab5f93cb1593a8095612cf9479a7
fanli/src/main/java/com/yeshi/fanli/mapping/user/UserSystemCouponMapper.xml
@@ -19,7 +19,24 @@
       javaType="com.yeshi.fanli.entity.system.SystemCoupon">
      <id column="usc_coupon_id" property="id" jdbcType="BIGINT" />   
    </association>
  </resultMap>
   <resultMap id="AllResultMap" type="com.yeshi.fanli.entity.bus.user.UserSystemCoupon">
    <id column="usc_id" property="id" jdbcType="BIGINT"/>
    <result column="usc_uid" property="uid" jdbcType="BIGINT"/>
    <result column="usc_source" property="source" jdbcType="VARCHAR"/>
    <result column="usc_give" property="give" jdbcType="VARCHAR"/>
    <result column="usc_state" property="state" jdbcType="INTEGER"/>
    <result column="usc_state_activate" property="stateActivated" jdbcType="INTEGER"/>
    <result column="usc_start_time" property="startTime" jdbcType="TIMESTAMP"/>
    <result column="usc_end_time" property="endTime" jdbcType="TIMESTAMP"/>
    <result column="usc_use_time" property="useTime" jdbcType="TIMESTAMP"/>
    <result column="usc_create_time" property="createTime" jdbcType="TIMESTAMP"/>
    <result column="usc_update_time" property="updateTime" jdbcType="TIMESTAMP"/>
   
   <association property="systemCoupon" column="usc_coupon_id"
         resultMap="com.yeshi.fanli.dao.mybatis.SystemCouponMapper.BaseResultMap"/>
  </resultMap>
  
   <resultMap id="ResultVOMap" type="com.yeshi.fanli.vo.user.UserSystemCouponVO">
@@ -113,6 +130,24 @@
       AND TO_DAYS(uc.`usc_create_time`) = TO_DAYS(NOW())
  </select>
  
  <select id="getCouponListOld" resultMap="ResultVOMap">
    SELECT * FROM `yeshi_ec_user_system_coupon` uc
   LEFT JOIN `yeshi_ec_system_coupon` c ON uc.`usc_coupon_id` = c.`sc_id`
    WHERE uc.`usc_uid`= #{uid} AND DATEDIFF(NOW(), uc.`usc_end_time`)<![CDATA[<=]]> 30
            AND (uc.`usc_give` IS NULL OR  uc.`usc_give` = 0) AND c.`sc_type` NOT IN ('freeCoupon','freeCouponBuy','freeCouponGive')
   ORDER BY uc.`usc_state`,uc.`usc_create_time` DESC
   LIMIT #{start},#{count}
  </select>
  <select id="countCouponOld" resultType="java.lang.Long">
   SELECT IFNULL(count(uc.`usc_id`),0) FROM `yeshi_ec_user_system_coupon` uc
   LEFT JOIN `yeshi_ec_system_coupon` c ON uc.`usc_coupon_id` = c.`sc_id`
   WHERE uc.`usc_uid`= #{uid} AND DATEDIFF(NOW(), uc.`usc_end_time`)<![CDATA[<=]]> 30
            AND (uc.`usc_give` IS NULL OR  uc.`usc_give` = 0) AND c.`sc_type` NOT IN ('freeCoupon','freeCouponBuy','freeCouponGive')
  </select>
  <select id="getUserCouponVOList" resultMap="ResultVOMap">
   SELECT * FROM `yeshi_ec_user_system_coupon` uc
   WHERE uc.`usc_uid`= #{uid} AND DATEDIFF(NOW(), uc.`usc_end_time`)<![CDATA[ <= ]]> 30
@@ -127,7 +162,7 @@
  
  <select id="getEnableListByCouponId" resultMap="ResultVOMap">
   SELECT * FROM `yeshi_ec_user_system_coupon` uc
   WHERE uc.`usc_uid`= #{uid} AND uc.usc_state = 1
   WHERE uc.`usc_uid`= #{uid} AND uc.usc_state = 1
       AND DATE_FORMAT(CURDATE(),'%Y%m%d') <![CDATA[ >= ]]>DATE_FORMAT(uc.`usc_start_time`,'%Y%m%d')
      <if test="activated != null">AND uc.usc_state_activate = #{activated}</if>
      AND uc.usc_coupon_id in
@@ -136,11 +171,37 @@
   ORDER BY uc.usc_state_activate desc, uc.`usc_create_time`
  </select>
  
  <select id="getValidByUidAndType" resultMap="ResultVOMap">
     SELECT * FROM `yeshi_ec_user_system_coupon` t
   LEFT JOIN `yeshi_ec_system_coupon` c ON t.`usc_coupon_id` = c.`sc_id`
   WHERE t.usc_state = 1 AND t.usc_state_activate = 1 AND t.usc_uid = #{uid}
      AND c.`sc_type`= #{type} AND t.`usc_end_time` <![CDATA[>]]> NOW()
  </select>
  <select id="countUsableByUid" resultType="java.lang.Long">
     SELECT IFNULL(count(cp.`usc_id`),0) FROM `yeshi_ec_user_system_coupon` cp
   WHERE cp.`usc_state` = 1 AND cp.usc_state_activate = 1
        AND cp.`usc_end_time` <![CDATA[>]]> NOW() AND cp.`usc_uid`= #{uid}
        AND cp.usc_coupon_id in
      <foreach collection="list" item="item" open="(" close=")"
         separator=",">#{item}</foreach>
  </select>
  <select id="getCounponNowInvalid" resultMap="BaseResultMap">
     SELECT * FROM `yeshi_ec_user_system_coupon` cp
   WHERE  <![CDATA[cp.`usc_state` <> 3 AND cp.`usc_state` <> 4]]>
         AND DATE_FORMAT(CURDATE(),'%Y%m%d') <![CDATA[>]]> DATE_FORMAT(cp.`usc_end_time`,'%Y%m%d')
   LIMIT #{count}
  </select>
  <select id="getCounponNowInvalidByUid" resultMap="BaseResultMap">
     SELECT * FROM `yeshi_ec_user_system_coupon` cp
   WHERE cp.`usc_uid` = #{uid} AND <![CDATA[cp.`usc_state` <> 3 AND cp.`usc_state` <> 4]]>
         AND DATE_FORMAT(CURDATE(),'%Y%m%d') <![CDATA[>]]> DATE_FORMAT(cp.`usc_end_time`,'%Y%m%d')
  </select>
  
  <select id="getCouponByState" resultMap="BaseResultMap">
@@ -157,4 +218,29 @@
      AND (usc_state_activate = 0 OR usc_state_activate is null)
  </select>
  
  <select id="getCouponByUsingTimeOut" resultMap="BaseResultMap">
    SELECT * FROM `yeshi_ec_user_system_coupon` cp
   WHERE cp.`usc_uid` = #{uid} AND cp.`usc_state` = 2  AND (cp.usc_give = 0 or cp.usc_give is null)
        AND (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(cp.`usc_use_time`)) <![CDATA[>]]> #{number}
        AND cp.usc_coupon_id in
           <foreach collection="list" item="item" open="(" close=")"
         separator=",">#{item}</foreach>
  </select>
  <select id="getFreeCouponByType" resultMap="BaseResultMap">
    SELECT * FROM `yeshi_ec_user_system_coupon` t
   LEFT JOIN `yeshi_ec_system_coupon` c ON t.`usc_coupon_id` = c.`sc_id`
   WHERE t.usc_uid = #{uid} AND c.`sc_type`= #{type}
  </select>
  <select id="getNeedActivateCouponByType" resultMap="AllResultMap">
    SELECT * FROM `yeshi_ec_user_system_coupon` t
   LEFT JOIN `yeshi_ec_system_coupon` c ON t.`usc_coupon_id` = c.`sc_id`
   WHERE t.usc_uid = #{uid} AND c.`sc_type`= #{type} AND t.`usc_state` = 1
       AND (t.usc_state_activate = 0 OR t.usc_state_activate is null)
       AND t.`usc_end_time` <![CDATA[>]]> NOW()
   ORDER BY usc_id
   LIMIT 1
  </select>
</mapper>