| <?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="cc.mrbird.febs.mall.mapper.HappyActivityMapper"> | 
|   | 
|     <select id="selectActivityPage" resultType="cc.mrbird.febs.mall.vo.ApiActivityInfoVo"> | 
|         select | 
|             a.id, | 
|             a.address, | 
|             a.index_img, | 
|             a.code, | 
|             a.type, | 
|             a.name, | 
|             a.state, | 
|             (select count(z.id) from happy_follow z where z.source_id = a.id) as join_cnt, | 
|             a.start_time, | 
|             a.end_time | 
|         from happy_activity a | 
|         <where> | 
|             a.state != 0 | 
|             and a.DELETE_FLAG = 0 | 
|             <if test="record != null"> | 
|                 <if test="record.query != null and record.query != ''"> | 
|                     and a.name like CONCAT('%', CONCAT(#{record.query}, '%')) | 
|                 </if> | 
|                 <if test="record.hotState != null"> | 
|                     and a.hot_state=#{record.hotState} | 
|                 </if> | 
|                 <if test="record.categoryId != null"> | 
|                     and a.category_id=#{record.categoryId} | 
|                 </if> | 
|             </if> | 
|         </where> | 
|         <if test="record.hotState != null"> | 
|             order by (select count(y.id) from happy_follow y where y.source_id = a.id and type in (2,3)) desc,a.order_cnt asc | 
|         </if> | 
|         <if test="record.hotState == null"> | 
|             order by a.order_cnt asc,a.id desc | 
|         </if> | 
|   | 
|     </select> | 
|   | 
|     <select id="getVoteRecordInPage" resultType="cc.mrbird.febs.mall.vo.ApiVoteRecordInPageVo"> | 
|         select | 
|             a.member_id as memberId, | 
|                 a.created_time as createdTime | 
|         from happy_follow a | 
|         where | 
|             a.type = 4 | 
|             and a.source_option_id = #{record.sourceOptionId} | 
|         order by a.id desc | 
|     </select> | 
|   | 
|   | 
|     <update id="updateHappyActivityOptionLikeCnt" > | 
|         update happy_activity_option set likes_cnt = likes_cnt + 1 where id = #{id} | 
|     </update> | 
|   | 
|   | 
|     <update id="updateHappyActivitySurplusCnt" > | 
|         update happy_activity set surplus_cnt = surplus_cnt + #{cnt} where id = #{id} | 
|     </update> | 
|   | 
|     <select id="getVoteOptionInPage" resultType="cc.mrbird.febs.mall.vo.ApiActivityOptionListVo"> | 
|         select | 
|             a.id as id, | 
|             a.order_cnt as orderCnt, | 
|             a.option_name as optionName, | 
|             a.image as image, | 
|             a.likes_cnt as likesCnt | 
|         from happy_activity_option a | 
|         <where> | 
|             and a.state = 1 | 
|             and a.activity_id = #{record.activityId} | 
|             and a.DELETE_FLAG = 0 | 
|             <if test="record != null"> | 
|                 <if test="record.query != null and record.query != ''"> | 
|                     and ( | 
|                     a.option_name like CONCAT('%', CONCAT(#{record.query}, '%')) | 
|                     or | 
|                     a.order_cnt = #{record.query} | 
|                     ) | 
|                 </if> | 
|             </if> | 
|         </where> | 
|         order by a.order_cnt asc | 
|     </select> | 
|   | 
|     <select id="selectOrderInPage" resultType="cc.mrbird.febs.mall.entity.HappyActivityOrder"> | 
|         select | 
|         a.*, | 
|                b.name as name, | 
|                c.name as activityName | 
|         from happy_activity_order a | 
|         left join mall_member b on a.member_id = b.id | 
|         left join happy_activity c on a.activity_id = c.id | 
|         <where> | 
|             and a.DELETE_FLAG = 0 | 
|             <if test="record != null"> | 
|                 <if test="record.name != null and record.name != ''"> | 
|                     and b.name like CONCAT('%', CONCAT(#{record.name}, '%')) | 
|                 </if> | 
|                 <if test="record.state != null"> | 
|                     and a.state=#{record.state} | 
|                 </if> | 
|                 <if test="record.activityId != null"> | 
|                     and a.activity_id=#{record.activityId} | 
|                 </if> | 
|             </if> | 
|         </where> | 
|         order by a.id desc | 
|     </select> | 
|   | 
|   | 
|   | 
|     <select id="getVoteOptionRecordInPage" resultType="cc.mrbird.febs.mall.vo.ApiActivityOptionListVo"> | 
|         select | 
|         a.id as id, | 
|         a.option_name as optionName, | 
|         a.image as image, | 
|         a.likes_cnt as likesCnt | 
|         from happy_activity_option a | 
|         <where> | 
|             and a.state = 1 | 
|             and a.activity_id = #{record.activityId} | 
|             and a.DELETE_FLAG = 0 | 
|             <if test="record != null"> | 
|                 <if test="record.query != null and record.query != ''"> | 
|                     and ( | 
|                     a.option_name like CONCAT('%', CONCAT(#{record.query}, '%')) | 
|                     or | 
|                     a.order_cnt = #{record.query} | 
|                     ) | 
|                 </if> | 
|             </if> | 
|         </where> | 
|         order by a.likes_cnt desc | 
|     </select> | 
|   | 
|     <select id="selectActivityCommentPage" resultType="cc.mrbird.febs.mall.vo.activity.ApiActivityCommentVo"> | 
|         select | 
|         a.*, | 
|         b.name name, | 
|         b.avatar avatar | 
|         from happy_activity_comment a | 
|         left join mall_member b on b.id = a.member_id | 
|         <where> | 
|             <if test="record != null"> | 
|                 <if test="record.activityId != null and record.activityId != ''"> | 
|                     and a.activity_id = #{record.activityId} | 
|                 </if> | 
|                 <if test="record.commentType != null and record.commentType != '' and record.commentType == 1"> | 
|                     and a.star <![CDATA[ > ]]> 4 | 
|                 </if> | 
|                 <if test="record.commentType != null and record.commentType != '' and record.commentType == 2"> | 
|                     and (a.star <![CDATA[ >= ]]> 3 and a.star <![CDATA[ <= ]]> 4) | 
|                 </if> | 
|                 <if test="record.commentType != null and record.commentType != '' and record.commentType == 3"> | 
|                     and (a.star <![CDATA[ < ]]> 3 ) | 
|                 </if> | 
|             </if> | 
|         </where> | 
|         group by a.id | 
|         order by a.created_time desc | 
|     </select> | 
|   | 
|   | 
|   | 
|     <select id="getCommentListInPage" resultType="cc.mrbird.febs.mall.vo.activity.AdminActivityCommentVo"> | 
|         select | 
|                a.*, | 
|                 b.name memberName, | 
|                 c.order_no orderNo | 
|         from happy_activity_comment a | 
|         left join mall_member b on a.member_id = b.id | 
|         left join happy_activity_order c on a.order_id = c.id | 
|         where a.activity_id = #{record.activityId} | 
|         order by a.created_time desc | 
|     </select> | 
|   | 
| </mapper> |