PointActivityMapper.xml 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ylx.point.mapper.PointActivityMapper">
  6. <resultMap type="PointActivity" id="PointActivityResult">
  7. <result property="id" column="id" />
  8. <result property="name" column="name" />
  9. <result property="description" column="description" />
  10. <result property="activityType" column="activity_type" />
  11. <result property="cityCode" column="city_code" />
  12. <result property="startTime" column="start_time" />
  13. <result property="endTime" column="end_time" />
  14. <result property="isPermanent" column="is_permanent" />
  15. <result property="expirePolicyId" column="expire_policy_id" />
  16. <result property="status" column="status" />
  17. <result property="sortOrder" column="sort_order" />
  18. <result property="createBy" column="create_by" />
  19. <result property="createTime" column="create_time" />
  20. <result property="updateBy" column="update_by" />
  21. <result property="updateTime" column="update_time" />
  22. </resultMap>
  23. <sql id="selectPointActivityVo">
  24. select id, name, description, activity_type, city_code, start_time, end_time, is_permanent, expire_policy_id, status, sort_order, create_by, create_time, update_by, update_time from point_activity
  25. </sql>
  26. <select id="selectPointActivityList" parameterType="PointActivity" resultMap="PointActivityResult">
  27. <include refid="selectPointActivityVo"/>
  28. <where>
  29. <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
  30. <if test="description != null and description != ''"> and description = #{description}</if>
  31. <if test="activityType != null "> and activity_type = #{activityType}</if>
  32. <if test="cityCode != null and cityCode != ''"> and city_code = #{cityCode}</if>
  33. <if test="startTime != null "> and start_time = #{startTime}</if>
  34. <if test="endTime != null "> and end_time = #{endTime}</if>
  35. <if test="isPermanent != null "> and is_permanent = #{isPermanent}</if>
  36. <if test="expirePolicyId != null "> and expire_policy_id = #{expirePolicyId}</if>
  37. <if test="status != null "> and status = #{status}</if>
  38. <if test="sortOrder != null "> and sort_order = #{sortOrder}</if>
  39. </where>
  40. </select>
  41. <select id="selectPointActivityById" parameterType="Long" resultMap="PointActivityResult">
  42. <include refid="selectPointActivityVo"/>
  43. where id = #{id}
  44. </select>
  45. <select id="list" parameterType="PointActivityPageDTO" resultType="com.ylx.point.domain.vo.PointActivityPageVo">
  46. <include refid="selectPointActivityVo"/>
  47. <where>
  48. <if test="activityType != null">
  49. AND activity_type = #{activityType}
  50. </if>
  51. <if test="cityCode != null and cityCode != ''">
  52. AND city_code = #{cityCode}
  53. </if>
  54. <if test="status != null">
  55. AND status = #{status}
  56. </if>
  57. <if test="startTime != null and startTime != ''"><!-- 开始时间检索 -->
  58. and date_format(start_time,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
  59. </if>
  60. <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
  61. and date_format(end_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
  62. </if>
  63. </where>
  64. order by create_time desc ,sort_order desc
  65. <!-- 数据范围过滤 -->
  66. ${params.dataScope}
  67. </select>
  68. <select id="getTaskDetailListById" resultType="com.ylx.point.domain.vo.PointActivityTaskDetailVO">
  69. SELECT
  70. pat.task_name,
  71. COUNT(DISTINCT utc.user_id) AS completedCount,
  72. COALESCE(SUM(utc.completed_count), 0) AS completedTimes,
  73. COALESCE(SUM(ul.points), 0) AS points
  74. FROM `point_activity_task` pat
  75. LEFT JOIN `point_user_activity_task_completion` utc ON pat.activity_id = utc.activity_id AND pat.id = utc.task_id
  76. LEFT JOIN `point_user_log` ul ON utc.activity_id = ul.activity_id AND utc.task_id = ul.task_id AND ul.op_type = 1
  77. WHERE pat.activity_id = #{id}
  78. GROUP BY pat.id, pat.task_name
  79. ORDER BY pat.sort_order
  80. </select>
  81. <select id="selectTotalActiveTasks" resultType="java.lang.Integer">
  82. SELECT
  83. COUNT(*)
  84. FROM
  85. point_activity
  86. WHERE
  87. STATUS IN ( 1, 4 )
  88. AND ( city_code = '0' OR city_code = #{cityCode} )
  89. AND (start_time IS NULL OR start_time &lt;= NOW()) AND ( end_time IS NULL OR end_time &gt;= NOW())
  90. </select>
  91. <select id="selectTaskWithProgress" parameterType="UserPointActivityPageDTO" resultType="com.ylx.point.domain.vo.UserPointActivityVo">
  92. SELECT
  93. t.id activityId,
  94. t.task_name,
  95. t.reward_points,
  96. t.trigger_value,
  97. COALESCE(c.completed_count, 0) AS completed_count
  98. FROM point_activity_task t
  99. LEFT JOIN point_user_activity_task_completion c ON t.id = c.task_id AND c.open_id = #{openId}
  100. JOIN point_activity a ON t.activity_id = a.id
  101. WHERE t.is_deleted = 0 AND t.status = 0
  102. AND a.activity_type = #{type}
  103. AND a.city_code = #{cityCode}
  104. AND a.status = 1
  105. ORDER BY t.sort_order ASC
  106. <!-- 数据范围过滤 -->
  107. ${params.dataScope}
  108. </select>
  109. <insert id="insertPointActivity" parameterType="PointActivity" useGeneratedKeys="true" keyProperty="id">
  110. insert into point_activity
  111. <trim prefix="(" suffix=")" suffixOverrides=",">
  112. <if test="name != null and name != ''">name,</if>
  113. <if test="description != null">description,</if>
  114. <if test="activityType != null">activity_type,</if>
  115. <if test="cityCode != null">city_code,</if>
  116. <if test="startTime != null">start_time,</if>
  117. <if test="endTime != null">end_time,</if>
  118. <if test="isPermanent != null">is_permanent,</if>
  119. <if test="expirePolicyId != null">expire_policy_id,</if>
  120. <if test="status != null">status,</if>
  121. <if test="sortOrder != null">sort_order,</if>
  122. <if test="createBy != null">create_by,</if>
  123. <if test="createTime != null">create_time,</if>
  124. <if test="updateBy != null">update_by,</if>
  125. <if test="updateTime != null">update_time,</if>
  126. </trim>
  127. <trim prefix="values (" suffix=")" suffixOverrides=",">
  128. <if test="name != null and name != ''">#{name},</if>
  129. <if test="description != null">#{description},</if>
  130. <if test="activityType != null">#{activityType},</if>
  131. <if test="cityCode != null">#{cityCode},</if>
  132. <if test="startTime != null">#{startTime,jdbcType=TIMESTAMP},</if>
  133. <if test="endTime != null">#{endTime,jdbcType=TIMESTAMP},</if>
  134. <if test="isPermanent != null">#{isPermanent},</if>
  135. <if test="expirePolicyId != null">#{expirePolicyId},</if>
  136. <if test="status != null">#{status},</if>
  137. <if test="sortOrder != null">#{sortOrder},</if>
  138. <if test="createBy != null">#{createBy},</if>
  139. <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
  140. <if test="updateBy != null">#{updateBy},</if>
  141. <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
  142. </trim>
  143. </insert>
  144. <update id="updatePointActivity" parameterType="PointActivity">
  145. update point_activity
  146. <trim prefix="SET" suffixOverrides=",">
  147. <if test="name != null and name != ''">name = #{name},</if>
  148. <if test="description != null">description = #{description},</if>
  149. <if test="activityType != null">activity_type = #{activityType},</if>
  150. <if test="cityCode != null">city_code = #{cityCode},</if>
  151. <if test="startTime != null">start_time = #{startTime},</if>
  152. <if test="endTime != null">end_time = #{endTime},</if>
  153. <if test="isPermanent != null">is_permanent = #{isPermanent},</if>
  154. <if test="expirePolicyId != null">expire_policy_id = #{expirePolicyId},</if>
  155. <if test="status != null">status = #{status},</if>
  156. <if test="sortOrder != null">sort_order = #{sortOrder},</if>
  157. <if test="createBy != null">create_by = #{createBy},</if>
  158. <if test="createTime != null">create_time = #{createTime},</if>
  159. <if test="updateBy != null">update_by = #{updateBy},</if>
  160. <if test="updateTime != null">update_time = #{updateTime},</if>
  161. </trim>
  162. where id = #{id}
  163. </update>
  164. <delete id="deletePointActivityById" parameterType="String">
  165. delete from point_activity where id = #{id}
  166. </delete>
  167. <delete id="deletePointActivityByIds" parameterType="String">
  168. delete from point_activity where id in
  169. <foreach item="id" collection="array" open="(" separator="," close=")">
  170. #{id}
  171. </foreach>
  172. </delete>
  173. </mapper>