ActivityPlanMapper.xml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  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.yonge.cooleshow.biz.dal.dao.ActivityPlanDao">
  4. <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ActivityPlan">
  5. <result column="id_" property="id" />
  6. <result column="activity_type_" property="activityType" />
  7. <result column="activity_name_" property="activityName" />
  8. <result column="describe_" property="describe" />
  9. <result column="rule_describe_" property="ruleDescribe" />
  10. <result column="subject_url_" property="subjectUrl" />
  11. <result column="background_url_" property="backgroundUrl" />
  12. <result column="activity_url_" property="activityUrl" />
  13. <result column="share_url_" property="shareUrl" />
  14. <result column="activity_start_" property="activityStart" />
  15. <result column="activity_end_" property="activityEnd" />
  16. <result column="registration_method_" property="registrationMethod" />
  17. <result column="registration_price_" property="registrationPrice" />
  18. <result column="share_rate_" property="shareRate" />
  19. <result column="draft_flag_" property="draftFlag" />
  20. <result column="activity_state_" property="activityState" />
  21. <result column="create_time_" property="createTime" />
  22. <result column="create_by_" property="createBy" />
  23. <result column="update_time_" property="updateTime" />
  24. <result column="update_by_" property="updateBy" />
  25. </resultMap>
  26. <!-- 表字段 -->
  27. <sql id="baseColumns">
  28. t.id_ as id
  29. , t.activity_type_ as activityType
  30. , t.activity_name_ as activityName
  31. , t.describe_ as `describe`
  32. , t.rule_describe_ as ruleDescribe
  33. , t.subject_url_ as subjectUrl
  34. , t.background_url_ as backgroundUrl
  35. , t.share_url_ as shareUrl
  36. , t.activity_url_ as activityUrl
  37. , t.activity_start_ as activityStart
  38. , t.activity_end_ as activityEnd
  39. , t.registration_method_ as registrationMethod
  40. , t.registration_price_ as registrationPrice
  41. , t.share_rate_ as shareRate
  42. , t.draft_flag_ as draftFlag
  43. , if(t.activity_state_ = 1, 1, 0) as activityState
  44. , t.create_time_ as createTime
  45. , t.create_by_ as createBy
  46. , t.update_time_ as updateTime
  47. , t.update_by_ as updateBy
  48. </sql>
  49. <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo">
  50. SELECT
  51. <include refid="baseColumns"/>
  52. FROM activity_plan t
  53. where t.id_ = #{id}
  54. </select>
  55. <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo">
  56. SELECT
  57. <include refid="baseColumns" />,
  58. u.username_ as updateByName,
  59. (select count(1) from activity_registration r where t.id_ = r.activity_id_) as registrationNum
  60. FROM activity_plan t
  61. LEFT JOIN sys_user u on t.update_by_ = u.id_
  62. <where>
  63. <if test="param.activityName != null and param.activityName != ''">
  64. and t.activity_name_ like concat('%',#{param.activityName},'%')
  65. </if>
  66. <if test="param.draftFlag != null">
  67. and t.draft_flag_ = #{param.draftFlag}
  68. </if>
  69. <if test="param.activityState != null">
  70. <if test="param.activityState == 0">
  71. and (t.activity_state_ = 0 or t.activity_state_ = 2)
  72. </if>
  73. <if test="param.activityState == 1">
  74. and t.activity_state_ = 1
  75. </if>
  76. </if>
  77. <if test="param.startTime !=null">
  78. and t.activity_start_ &gt;= #{param.startTime}
  79. </if>
  80. <if test="param.endTime !=null">
  81. and t.activity_end_ &lt;= #{param.endTime}
  82. </if>
  83. </where>
  84. order by t.id_ desc
  85. </select>
  86. <select id="selectActivityPlanEvaluation" resultType="java.lang.String">
  87. select evaluation_difficulty_
  88. from activity_plan_evaluation
  89. where id_ = #{activityPlanId}
  90. </select>
  91. <select id="activityState" resultType="com.yonge.cooleshow.biz.dal.entity.ActivityPlan">
  92. select <include refid="baseColumns"/>
  93. from activity_plan t where draft_flag_ = 0
  94. and (
  95. (t.activity_start_ &lt;= now() and t.activity_end_ &gt; now() and activity_state_ = 0)
  96. or (t.activity_end_ &lt;= now() and activity_state_ = 1)
  97. )
  98. </select>
  99. <select id="activityReward" resultType="com.yonge.cooleshow.biz.dal.entity.ActivityPlan">
  100. select <include refid="baseColumns"/> from activity_plan t where t.reward_flag_ = 0 and t.activity_end_ &lt;= now()
  101. </select>
  102. <select id="getUserReward" resultType="com.yonge.cooleshow.biz.dal.entity.ActivityUserReward">
  103. <if test="null != activityType and 'EVALUATION' == activityType">
  104. select
  105. a.activity_id_ as activityId,
  106. a.evaluation_id_ as bizId,
  107. b.user_id_ as userId,
  108. c.id_ as rewardId
  109. from (
  110. select
  111. a.activity_id_,a.evaluation_id_,a.score_,min(b.create_time_) as create_time_
  112. from(
  113. select
  114. activity_id_,evaluation_id_, max(score_) as score_
  115. from activity_evaluation_record where activity_id_ = #{activityPlanId} and score_ is not null
  116. group by activity_id_,evaluation_id_
  117. ) a
  118. left join activity_evaluation_record b on a.activity_id_ = b.activity_id_ and a.evaluation_id_ = b.evaluation_id_ and a.score_ = b.score_
  119. GROUP BY a.activity_id_,a.evaluation_id_,a.score_
  120. ) a
  121. left join activity_evaluation_record b
  122. on a.activity_id_ = b.activity_id_ and a.evaluation_id_ = b.evaluation_id_
  123. and a.score_ = b.score_ and a.create_time_ = b.create_time_
  124. left join activity_reward c on a.activity_id_ = c.activity_id_
  125. </if>
  126. </select>
  127. </mapper>