SysCouponIssueRecordMapper.xml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ym.mec.biz.dal.dao.SysCouponIssueRecordDao">
  4. <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.SysCouponIssueRecord">
  5. <id column="id_" jdbcType="INTEGER" property="id"/>
  6. <result column="tenant_id_" jdbcType="INTEGER" property="tenantId"/>
  7. <result column="coupon_id_" jdbcType="INTEGER" property="couponId"/>
  8. <result column="coupon_name_" jdbcType="VARCHAR" property="couponName"/>
  9. <result column="num_" jdbcType="INTEGER" property="num"/>
  10. <result column="ops_" jdbcType="INTEGER" property="ops"/>
  11. <result column="created_by_" jdbcType="INTEGER" property="createdBy"/>
  12. <result column="created_time_" jdbcType="TIMESTAMP" property="createdTime"/>
  13. <result column="updated_by_" jdbcType="INTEGER" property="updatedBy"/>
  14. <result column="updated_time_" jdbcType="TIMESTAMP" property="updatedTime"/>
  15. </resultMap>
  16. <sql id="Base_Column_List">
  17. id_
  18. , tenant_id_, coupon_id_, coupon_name_, num_, ops_, created_by_, created_time_, updated_by_, updated_time_
  19. </sql>
  20. <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
  21. parameterType="com.ym.mec.biz.dal.entity.SysCouponIssueRecord">
  22. insert into sys_coupon_issue_record(tenant_id_, coupon_id_, coupon_name_, num_, ops_, created_by_,
  23. created_time_, updated_by_, updated_time_)
  24. values
  25. <foreach collection="entities" item="entity" separator=",">
  26. (#{entity.tenantId}, #{entity.couponId}, #{entity.couponName}, #{entity.num}, #{entity.ops},
  27. #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy}, #{entity.updatedTime})
  28. </foreach>
  29. </insert>
  30. <select id="queryIssueDetail" parameterType="map" resultType="map">
  31. SELECT o.name_ as organName
  32. , s.user_id_ as userId
  33. , su.username_ as userName
  34. , su.phone_ as phone
  35. , sb.name_ as subjectName
  36. , scc.usage_status_ as usageStatus
  37. , scc.id_ as couponCodeId
  38. FROM student s
  39. LEFT JOIN sys_user su ON su.id_ = s.user_id_
  40. LEFT JOIN organization o ON o.id_ = su.organ_id_
  41. LEFT JOIN subject sb ON sb.id_ = s.subject_id_list_
  42. join sys_coupon_code scc on s.user_id_ = scc.user_id_
  43. where s.tenant_id_ = #{param.tenantId}
  44. <if test="param.issueId !=null">
  45. and scc.issue_id_ = #{param.issueId}
  46. </if>
  47. <if test="param.organId !=null">
  48. and o.id_ = #{param.organId}
  49. </if>
  50. <if test="param.subjectId !=null">
  51. and sb.id_ = #{param.subjectId}
  52. </if>
  53. <if test="param.usageStatus !=null">
  54. and scc.usage_status_ = #{param.usageStatus}
  55. </if>
  56. </select>
  57. <select id="queryIssueRecord" parameterType="map" resultType="com.ym.mec.biz.dal.vo.CouponIssueRecordVo">
  58. select
  59. a.id_ as id,
  60. a.created_time_ as createdTime,
  61. a.coupon_name_ as couponName,
  62. a.num_ as num,
  63. u.real_name_ as `name`,
  64. a.ops_ as ops
  65. from sys_coupon_issue_record as a
  66. left join sys_user as u on a.created_by_ = u.id_
  67. where a.tenant_id_ = #{param.tenantId}
  68. <if test="param.ops !=null">
  69. and a.ops_ = #{param.ops}
  70. </if>
  71. <if test="param.couponId !=null">
  72. and a.coupon_id_ =#{param.couponId}
  73. </if>
  74. </select>
  75. <select id="queryCouponCode" resultType="integer">
  76. select count(id_)
  77. from sys_coupon_code
  78. where issue_id_ = #{issueId}
  79. and usage_status_ = #{state}
  80. </select>
  81. <update id="revoke">
  82. UPDATE sys_coupon_code
  83. SET usage_status_ = 2,
  84. used_time_ = NOW(),
  85. update_time_ = NOW()
  86. WHERE issue_id_ = #{issueId}
  87. and usage_status_ = 0
  88. </update>
  89. <update id="opsConsume" parameterType="object">
  90. UPDATE sys_coupon
  91. SET
  92. consume_num_ = consume_num_ - #{consumeNum}
  93. WHERE id_ = #{id}
  94. </update>
  95. <resultMap type="com.ym.mec.biz.dal.entity.SysCoupon" id="SysCoupon">
  96. <result column="id_" property="id" />
  97. <result column="name_" property="name" />
  98. <result column="description_" property="description" />
  99. <result column="status_" property="status" />
  100. <result column="issuance_type_" jdbcType="INTEGER" property="issuanceType"/>
  101. <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  102. <result column="type_detail_" jdbcType="VARCHAR" property="typeDetail"/>
  103. <result column="face_value_" property="faceValue" />
  104. <result column="full_amount_" property="fullAmount" />
  105. <result column="limit_exchange_num_" property="limitExchangeNum" />
  106. <result column="effective_type_" property="effectiveType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  107. <result column="deadline_" property="deadline" />
  108. <result column="effective_start_time_" property="effectiveStartTime" />
  109. <result column="effective_expire_time_" property="effectiveExpireTime" />
  110. <result column="end_date_" property="endDate" />
  111. <result column="start_date_" property="startDate" />
  112. <result column="stock_count_" property="stockCount" />
  113. <result column="consume_num_" property="consumeNum" />
  114. <result column="warning_stock_num_" property="warningStockNum" />
  115. <result column="warning_status_" property="warningStatus" />
  116. <result column="create_time_" property="createTime" />
  117. <result column="update_time_" property="updateTime" />
  118. <result column="tenant_id_" property="tenantId"/>
  119. </resultMap>
  120. <select id="queryUserCanGetCoupon" resultMap="SysCoupon">
  121. SELECT
  122. id_,
  123. name_,
  124. description_,
  125. status_,
  126. issuance_type_,
  127. type_,
  128. type_detail_,
  129. face_value_,
  130. full_amount_,
  131. limit_exchange_num_,
  132. effective_type_,
  133. deadline_,
  134. effective_start_time_,
  135. effective_expire_time_,
  136. end_date_,
  137. start_date_,
  138. stock_count_,
  139. consume_num_,
  140. warning_stock_num_,
  141. warning_status_,
  142. create_time_,
  143. update_time_,
  144. a.tenant_id_
  145. FROM
  146. sys_coupon AS a
  147. JOIN
  148. (SELECT DISTINCT
  149. coupon_id_,
  150. tenant_id_
  151. FROM
  152. sys_coupon_code
  153. WHERE user_id_ = #{userId}) AS b
  154. ON a.`id_` NOT IN (b.coupon_id_)
  155. AND a.tenant_id_ = b.tenant_id_
  156. WHERE issuance_type_ = 0
  157. AND status_ = 1
  158. AND (
  159. effective_expire_time_ > NOW()
  160. OR deadline_ > 0
  161. )
  162. AND (
  163. stock_count_ <![CDATA[ > ]]> consume_num_
  164. OR stock_count_ = - 1
  165. )
  166. </select>
  167. </mapper>