| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?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.yonge.cooleshow.biz.dal.mapper.CouponIssueMapper">
- <!-- 通用查询映射结果 -->
- <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.CouponIssue">
- <id column="id_" property="id" />
- <result column="user_id_" property="userId" />
- <result column="coupon_id_" property="couponId" />
- <result column="client_type_" property="clientType" />
- <result column="use_state_" property="useState" />
- <result column="use_time_" property="useTime" />
- <result column="order_no_" property="orderNo" />
- <result column="start_time_" property="startTime" />
- <result column="end_time_" property="endTime" />
- <result column="issue_way_" property="issueWay" />
- <result column="issuer_" property="issuer" />
- <result column="issue_time_" property="issueTime" />
- <result column="remark_" property="remark" />
- <result column="status_" property="status" />
- <result column="created_time_" property="createdTime" />
- </resultMap>
- <!-- 通用查询结果列 -->
- <sql id="Base_Column_List">
- id_, user_id_, coupon_id_, client_type_, use_state_, use_time_, order_no_, start_time_, end_time_, issue_way_, issuer_, issue_time_, remark_, status_, created_time_
- </sql>
- <select id="queryCouponIssueInfo" resultType="com.yonge.cooleshow.biz.dal.vo.coupon.CouponIssueWrapper">
- select
- su.id_ as userId,
- ci.id_ as couponIssueId,
- su.real_name_ as realName,
- su.username_ as username,
- ci.client_type_ as clientType,
- ci.use_state_ as useState,
- ci.order_no_ as orderNo,
- from_unixtime(ci.start_time_) as startTime,
- from_unixtime(ci.end_time_) as endTime,
- from_unixtime(ci.issue_time_) as issueTime,
- from_unixtime(ci.use_time_) as useTime,
- (case when ci.status_ = 0 then 'WITHDRAW' when ci.end_time_ < unix_timestamp(now()) and ci.issue_way_ = 'USABLE' then 'EXPIRED' else ci.issue_way_ end ) as issueWay,
- ci.issuer_ as issuer,
- ci.remark_ as remark,
- cou.name_ as couponName,
- cou.id_ as couponId,
- cou.coupon_type_ as couponType,
- cou.category_ as couponCategory,
- cou.use_limit_ as useLimit,
- cou.discount_price_ as discountPrice
- from coupon_issue ci
- left join sys_user su on ci.user_id_ = su.id_
- left join coupon_info cou on cou.id_ = ci.coupon_id_
- <where>
- <if test="query.userId != null">
- and #{query.userId} = ci.user_id_
- </if>
- <if test="query.couponId != null">
- and #{query.couponId} = ci.coupon_id_
- </if>
- <if test="query.clientType != null">
- and #{query.clientType} = ci.client_type_
- </if>
- <if test="query.couponCategory != null">
- and #{query.couponCategory} = cou.category_
- </if>
- <if test="query.couponType != null">
- and #{query.couponType} = cou.coupon_type_
- </if>
- <if test="query.couponKeyword != null and query.couponKeyword != ''">
- and (
- cou.id_ like concat('%',#{query.couponKeyword},'%')
- or cou.name_ like concat('%',#{query.couponKeyword},'%')
- )
- </if>
- <if test="query.issueWay != null">
- <choose>
- <when test="query.issueWay.code == 'EXPIRED'">
- and ci.end_time_ < unix_timestamp(now()) and ci.issue_way_ = 'USABLE'
- </when>
- <when test="query.issueWay.code == 'USABLE'">
- and ci.end_time_ >= unix_timestamp(now()) and ci.issue_way_ = 'USABLE'
- </when>
- <when test="query.issueWay.code == 'WITHDRAW'">
- and ci.status_ = 0
- </when>
- <otherwise>
- and ci.issue_way_ = #{query.issueWay}
- </otherwise>
- </choose>
- </if>
- <if test="query.useState != null">
- and #{query.useState} = ci.use_state_
- </if>
- <if test="query.issueStartTime != null">
- and unix_timestamp( #{query.issueStartTime}) <= ci.issue_time_
- </if>
- <if test="query.issueEndTime != null">
- and unix_timestamp(#{query.issueEndTime}) >= ci.issue_time_
- </if>
- <if test="query.usedStartTime != null">
- and unix_timestamp(#{query.usedStartTime}) <= ci.use_time_
- </if>
- <if test="query.usedEndTime != null">
- and unix_timestamp(#{query.usedEndTime}) >= ci.use_time_
- </if>
- <if test="query.keyword !=null and query.keyword != ''">
- and (
- su.real_name_ like concat('%',#{query.keyword},'%')
- or su.username_ like concat('%',#{query.keyword},'%')
- or su.phone_ like concat('%',#{query.keyword},'%')
- or su.id_ like concat('%',#{query.keyword},'%')
- )
- </if>
- </where>
- order by ci.id_ desc
- </select>
- <!--用户优惠券状态统计-->
- <select id="selectCouponStateStatInfo" resultType="com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper">
- SELECT t1.use_state_ AS gid, COUNT(DISTINCT t1.id_) AS total FROM coupon_issue t1 <if test="record.couponType != null"> JOIN coupon_info t2 ON (t1.coupon_id_ = t2.id_)</if>
- <where>
- <if test="userId != null">
- AND t1.user_id_ = #{userId}
- </if>
- <if test="record.clientType != null">
- AND t1.client_type_ = #{record.clientType}
- </if>
- <if test="record.couponType != null">
- AND t2.coupon_type_ = #{record.couponType}
- </if>
- </where>
- GROUP BY t1.use_state_
- </select>
- <!--用户优惠券状态统计-->
- </mapper>
|