PointActivityMapper.xml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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="getTaskDetailListById" resultType="com.ylx.point.domain.vo.PointActivityTaskDetailVO">
  46. SELECT
  47. pat.task_name,
  48. COUNT(DISTINCT utc.open_id) AS completedCount,
  49. COALESCE(SUM(utc.completed_count), 0) AS completedTimes,
  50. COALESCE(SUM(ul.points), 0) AS points
  51. FROM `point_activity_task` pat
  52. LEFT JOIN `point_user_activity_task_completion` utc ON pat.activity_id = utc.activity_id AND pat.id = utc.task_id
  53. 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
  54. WHERE pat.activity_id = #{id}
  55. GROUP BY pat.id, pat.task_name
  56. ORDER BY pat.sort_order
  57. </select>
  58. <select id="selectTotalActiveTasks" resultType="java.lang.Integer">
  59. SELECT
  60. COUNT(*)
  61. FROM
  62. point_activity pa
  63. INNER JOIN point_activity_task pat ON pa.id = pat.activity_id
  64. WHERE
  65. pa.status = 1
  66. AND pa.activity_type != 0
  67. AND ( pa.city_code = '0' OR pa.city_code = #{cityCode} )
  68. AND (pa.start_time IS NULL OR pa.start_time &lt;= NOW())
  69. AND ( pa.end_time IS NULL OR pa.end_time &gt;= NOW())
  70. AND pat.status = 0
  71. AND pat.is_deleted = 0
  72. </select>
  73. <select id="selectTaskWithProgress" resultType="com.ylx.point.domain.vo.UserPointActivityVo">
  74. SELECT
  75. a.id AS activityId,
  76. t.id taskId,
  77. t.task_name,
  78. t.reward_points,
  79. t.frequency_limit_value triggerValue,
  80. COALESCE(c.completed_count, 0) AS completed_count
  81. FROM point_activity a
  82. JOIN point_activity_task t ON a.id = t.activity_id
  83. LEFT JOIN point_user_activity_task_completion c ON t.id = c.task_id AND c.open_id = #{dto.openId}
  84. <where>
  85. AND t.is_deleted = 0 AND t.status = 1
  86. <if test="dto.type != null">
  87. AND a.activity_type = #{dto.type}
  88. </if>
  89. <if test="dto.cityCode != null">
  90. AND a.city_code = #{dto.cityCode}
  91. </if>
  92. AND a.status = 1
  93. </where>
  94. ORDER BY t.sort_order ASC
  95. </select>
  96. <insert id="insertPointActivity" parameterType="PointActivity" useGeneratedKeys="true" keyProperty="id">
  97. insert into point_activity
  98. <trim prefix="(" suffix=")" suffixOverrides=",">
  99. <if test="name != null and name != ''">name,</if>
  100. <if test="description != null">description,</if>
  101. <if test="activityType != null">activity_type,</if>
  102. <if test="cityCode != null">city_code,</if>
  103. <if test="startTime != null">start_time,</if>
  104. <if test="endTime != null">end_time,</if>
  105. <if test="isPermanent != null">is_permanent,</if>
  106. <if test="expirePolicyId != null">expire_policy_id,</if>
  107. <if test="status != null">status,</if>
  108. <if test="sortOrder != null">sort_order,</if>
  109. <if test="createBy != null">create_by,</if>
  110. <if test="createTime != null">create_time,</if>
  111. <if test="updateBy != null">update_by,</if>
  112. <if test="updateTime != null">update_time,</if>
  113. </trim>
  114. <trim prefix="values (" suffix=")" suffixOverrides=",">
  115. <if test="name != null and name != ''">#{name},</if>
  116. <if test="description != null">#{description},</if>
  117. <if test="activityType != null">#{activityType},</if>
  118. <if test="cityCode != null">#{cityCode},</if>
  119. <if test="startTime != null">#{startTime,jdbcType=TIMESTAMP},</if>
  120. <if test="endTime != null">#{endTime,jdbcType=TIMESTAMP},</if>
  121. <if test="isPermanent != null">#{isPermanent},</if>
  122. <if test="expirePolicyId != null">#{expirePolicyId},</if>
  123. <if test="status != null">#{status},</if>
  124. <if test="sortOrder != null">#{sortOrder},</if>
  125. <if test="createBy != null">#{createBy},</if>
  126. <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
  127. <if test="updateBy != null">#{updateBy},</if>
  128. <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
  129. </trim>
  130. </insert>
  131. <update id="updatePointActivity" parameterType="PointActivity">
  132. update point_activity
  133. <trim prefix="SET" suffixOverrides=",">
  134. <if test="name != null and name != ''">name = #{name},</if>
  135. <if test="description != null">description = #{description},</if>
  136. <if test="activityType != null">activity_type = #{activityType},</if>
  137. <if test="cityCode != null">city_code = #{cityCode},</if>
  138. <if test="startTime != null">start_time = #{startTime},</if>
  139. <if test="endTime != null">end_time = #{endTime},</if>
  140. <if test="isPermanent != null">is_permanent = #{isPermanent},</if>
  141. <if test="expirePolicyId != null">expire_policy_id = #{expirePolicyId},</if>
  142. <if test="status != null">status = #{status},</if>
  143. <if test="sortOrder != null">sort_order = #{sortOrder},</if>
  144. <if test="createBy != null">create_by = #{createBy},</if>
  145. <if test="createTime != null">create_time = #{createTime},</if>
  146. <if test="updateBy != null">update_by = #{updateBy},</if>
  147. <if test="updateTime != null">update_time = #{updateTime},</if>
  148. </trim>
  149. where id = #{id}
  150. </update>
  151. <delete id="deletePointActivityById" parameterType="String">
  152. delete from point_activity where id = #{id}
  153. </delete>
  154. <delete id="deletePointActivityByIds" parameterType="String">
  155. delete from point_activity where id in
  156. <foreach item="id" collection="array" open="(" separator="," close=")">
  157. #{id}
  158. </foreach>
  159. </delete>
  160. </mapper>