浏览代码

上朵年货节

wangxiaoming 5 年之前
父节点
当前提交
a2dcb29ac6

+ 77 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/activity/Festival.java

@@ -0,0 +1,77 @@
+package com.iamberry.wechat.core.entity.activity;
+
+import org.apache.commons.collections.FastArrayList;
+
+import  java.util.Date;
+import  java.io.Serializable;
+import java.util.List;
+
+/**
+ *  年货节-分享活动类
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+public class Festival  implements  Serializable{
+    private static final long serialVersionUID = 2949378396796964942L;
+    //活动参加Id
+    private Integer festivalId;
+    //用户openid
+    private String festivalOpenId;
+    //刷头优惠券ID
+    private String festivalHeadCouponItemId;
+    //牙刷优惠券ID
+    private String festivalBrushCouponItemId;
+    //创建时间'
+    private Date festivalCreateTime;
+
+    //分享人openID,如果从公众号出来,为X
+    private String sharerOpenId;
+
+    public Integer getFestivalId(){
+        return festivalId;
+    }
+
+    public void setFestivalId(Integer  festivalId){
+        this.festivalId=festivalId;
+    }
+
+    public String getFestivalOpenId(){
+        return festivalOpenId;
+    }
+
+    public void setFestivalOpenId(String  festivalOpenId){
+        this.festivalOpenId=festivalOpenId;
+    }
+
+    public String getFestivalHeadCouponItemId(){
+        return festivalHeadCouponItemId;
+    }
+
+    public void setFestivalHeadCouponItemId(String  festivalHeadCouponItemId){
+        this.festivalHeadCouponItemId=festivalHeadCouponItemId;
+    }
+
+    public String getFestivalBrushCouponItemId(){
+        return festivalBrushCouponItemId;
+    }
+
+    public void setFestivalBrushCouponItemId(String  festivalBrushCouponItemId){
+        this.festivalBrushCouponItemId=festivalBrushCouponItemId;
+    }
+
+    public Date getFestivalCreateTime(){
+        return festivalCreateTime;
+    }
+
+    public void setFestivalCreateTime(Date  festivalCreateTime){
+        this.festivalCreateTime=festivalCreateTime;
+    }
+
+    public String getSharerOpenId() {
+        return sharerOpenId;
+    }
+
+    public void setSharerOpenId(String sharerOpenId) {
+        this.sharerOpenId = sharerOpenId;
+    }
+}

+ 81 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/activity/FestivalHelp.java

@@ -0,0 +1,81 @@
+package com.iamberry.wechat.core.entity.activity;
+
+import  java.util.Date;
+import  java.io.Serializable;
+/**
+ *  年货节-分享助力类
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+public class FestivalHelp  implements  Serializable{
+    private static final long serialVersionUID = 6197911947655325495L;
+    //助力id
+    private Integer festivalHelpId;
+    //助力活动ID
+    private Integer festivalId;
+    //用户openid
+    private String festivalHelpOpenId;
+    //备注
+    private String festivalHelpRemake;
+    //创建时间'
+    private Date festivalHelpCreateTime;
+
+    private String userHead;
+    private String user_nickname;
+
+    public Integer getFestivalHelpId(){
+        return festivalHelpId;
+    }
+
+    public void setFestivalHelpId(Integer  festivalHelpId){
+        this.festivalHelpId=festivalHelpId;
+    }
+
+    public Integer getFestivalId(){
+        return festivalId;
+    }
+
+    public void setFestivalId(Integer  festivalId){
+        this.festivalId=festivalId;
+    }
+
+    public String getFestivalHelpOpenId(){
+        return festivalHelpOpenId;
+    }
+
+    public void setFestivalHelpOpenId(String  festivalHelpOpenId){
+        this.festivalHelpOpenId=festivalHelpOpenId;
+    }
+
+    public String getFestivalHelpRemake(){
+        return festivalHelpRemake;
+    }
+
+    public void setFestivalHelpRemake(String  festivalHelpRemake){
+        this.festivalHelpRemake=festivalHelpRemake;
+    }
+
+    public Date getFestivalHelpCreateTime(){
+        return festivalHelpCreateTime;
+    }
+
+    public void setFestivalHelpCreateTime(Date  festivalHelpCreateTime){
+        this.festivalHelpCreateTime=festivalHelpCreateTime;
+    }
+
+    public String getUserHead() {
+        return userHead;
+    }
+
+    public void setUserHead(String userHead) {
+        this.userHead = userHead;
+    }
+
+    public String getUser_nickname() {
+        return user_nickname;
+    }
+
+    public void setUser_nickname(String user_nickname) {
+        this.user_nickname = user_nickname;
+    }
+}

+ 31 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/activity/FestivalHelpService.java

@@ -0,0 +1,31 @@
+package com.iamberry.wechat.face.activity;
+
+import com.iamberry.wechat.core.entity.activity.FestivalHelp;
+
+import java.util.List;
+
+/**
+ *  年货节-分享助力接口
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+public interface FestivalHelpService {
+    /**
+     * 获取集合
+     * @param  festivalHelp
+     * @return List
+     */
+    List<FestivalHelp> getFestivalHelpList(FestivalHelp  festivalHelp);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  festivalHelp
+     */
+    FestivalHelp  getFestivalHelpById(Integer  id);
+    /**
+     * 增加数据
+     * @param  festivalHelp
+     * @return Integer
+     */
+    Integer  save(FestivalHelp  festivalHelp);
+}

+ 37 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/activity/FestivalService.java

@@ -0,0 +1,37 @@
+package com.iamberry.wechat.face.activity;
+
+import com.iamberry.wechat.core.entity.activity.Festival;
+
+import java.util.List;
+
+/**
+ *  年货节-分享活动接口
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+public interface FestivalService {
+    /**
+     * 获取集合
+     * @param  festival
+     * @return List
+     */
+    List<Festival> getFestivalList(Festival  festival);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  festival
+     */
+    Festival  getFestivalById(Integer  id);
+    /**
+     * 增加数据
+     * @param  festival
+     * @return Integer
+     */
+    Integer  save(Festival  festival);
+    /**
+     * 修改数据
+     * @param  festival
+     * @return Integer
+     */
+    Integer  update(Festival  festival);
+}

+ 47 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/activity/FestivalHelpServiceImpl.java

@@ -0,0 +1,47 @@
+package com.iamberry.wechat.service.activity;
+
+import com.iamberry.wechat.core.entity.activity.FestivalHelp;
+import com.iamberry.wechat.face.activity.FestivalHelpService;
+import com.iamberry.wechat.service.mapper.FestivalHelpMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *  年货节-分享助力接口
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+@Service
+public class FestivalHelpServiceImpl  implements FestivalHelpService {
+    @Autowired
+    private FestivalHelpMapper festivalHelpMapper;
+    /**
+     * 获取集合
+     * @param  festivalHelp
+     * @return List
+     */
+    @Override
+    public List<FestivalHelp> getFestivalHelpList(FestivalHelp  festivalHelp){
+        return  festivalHelpMapper.getFestivalHelpList(festivalHelp);
+    }
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  festivalHelp
+     */
+    @Override
+    public FestivalHelp getFestivalHelpById(Integer  id){
+        return  festivalHelpMapper.getFestivalHelpById(id);
+    }
+    /**
+     * 增加数据
+     * @param  festivalHelp
+     * @return Integer
+     */
+    @Override
+    public  Integer  save(FestivalHelp  festivalHelp){
+        return  festivalHelpMapper.save(festivalHelp);
+    }
+}

+ 212 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/activity/FestivalServiceImpl.java

@@ -0,0 +1,212 @@
+package com.iamberry.wechat.service.activity;
+
+import com.iamberry.wechat.core.entity.activity.Festival;
+import com.iamberry.wechat.core.entity.activity.FestivalHelp;
+import com.iamberry.wechat.core.entity.coupon.CouponItem;
+import com.iamberry.wechat.core.entity.coupon.CouponType;
+import com.iamberry.wechat.core.entity.member.Member;
+import com.iamberry.wechat.face.activity.FestivalService;
+import com.iamberry.wechat.face.coupon.CouponTypeService;
+import com.iamberry.wechat.service.mapper.*;
+import com.iamberry.wechat.tools.StrUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ *  年货节-分享活动接口
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+@Service
+public class FestivalServiceImpl  implements FestivalService {
+    @Autowired
+    private FestivalMapper festivalMapper;
+    @Autowired
+    private FestivalHelpMapper festivalHelpMapper;
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
+    private CouponItemMapper couponItemMapper;
+    @Autowired
+    private CouponTypeMapper couponTypeMapper;
+
+    /**
+     * 获取集合
+     * @param  festival
+     * @return List
+     */
+    @Override
+    public List<Festival> getFestivalList(Festival  festival){
+        return  festivalMapper.getFestivalList(festival);
+    }
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  festival
+     */
+    @Override
+    public Festival getFestivalById(Integer  id){
+        return  festivalMapper.getFestivalById(id);
+    }
+    /**
+     * 增加数据
+     * @param  festival
+     * @return Integer
+     */
+    @Override
+    @Transactional
+    public  Integer  save(Festival  festival){
+        Integer flag = 0;
+        flag = festivalMapper.save(festival);
+        if(flag < 1){
+            throw new RuntimeException("参与活动失败");
+        }
+
+        //1;为被助力的用户增加一个助力,并判断人数和优惠券,
+        Festival oldFestival = new Festival();
+        oldFestival.setFestivalOpenId(festival.getSharerOpenId());
+        List<Festival> festivalList = festivalMapper.getFestivalList(oldFestival);
+        if(festivalList!=null && festivalList.size()>0){
+            oldFestival = festivalList.get(0);
+            FestivalHelp oldFestivalHelp = new FestivalHelp();
+            oldFestivalHelp.setFestivalId(oldFestival.getFestivalId());
+            Integer num = festivalHelpMapper.getFestivalHelpCount(oldFestivalHelp);
+            num++;
+
+            //增加分享者的助力人数
+            FestivalHelp newAddFestivalHelp = new FestivalHelp();
+            newAddFestivalHelp.setFestivalHelpOpenId(festival.getFestivalOpenId());
+            StringBuffer remake = new StringBuffer( "当前第"+num+"朋友助力,");
+            switch (num){
+                case 1: //分享给1位朋友并且打开刷头优惠券链接,即可获得电动牙刷8折优惠券
+                    remake.append("获得电动牙刷8折优惠券");
+                    break;
+                case 3: //分享给3位朋友并且打开刷头优惠券链接,则刷头优惠券变为8.5折
+                    remake.append("刷头优惠券变为8.5折");
+                    break;
+                case 5: //分享给5位朋友并且打开刷头优惠券链接,则刷头优惠券变为8折
+                    remake.append("刷头优惠券变为8折");
+                    break;
+                case 10: // 分享给10位朋友并且打开刷头优惠券链接,则刷头优惠券变为7.5折
+                    remake.append("刷头优惠券变为7.5折");
+                    break;
+                default:
+                    break;
+            }
+            newAddFestivalHelp.setFestivalHelpRemake(remake.toString());
+            newAddFestivalHelp.setFestivalId(oldFestival.getFestivalId());
+            flag = festivalHelpMapper.save(newAddFestivalHelp);
+            if(flag < 1){
+                throw new RuntimeException("助力失败");
+            }
+
+            if(!"X".equals(festival.getSharerOpenId())){
+                switch (num){
+                    case 1: //分享给1位朋友并且打开刷头优惠券链接,即可获得电动牙刷8折优惠券   110000	上朵年货节-电动牙刷8折券
+                        CouponType couponType = couponTypeMapper.getCouponTypeById(110000);
+                        String uuidStr = StrUtils.getUUID();
+                        CouponItem ci = new CouponItem();
+                        ci.setCouponItemId(uuidStr);
+                        ci.setCouponId(couponType.getCouponId());
+                        if(couponType.getCouponIsUseEnd() == 2){
+                            Calendar calendar = Calendar.getInstance();
+                            calendar.add(Calendar.DATE,couponType.getCouponGetDays());	//增加X天
+                            ci.setCouponUseEndDate(calendar.getTime());
+                        }else{
+                            ci.setCouponUseEndDate(couponType.getCouponUseEndDate());
+                        }
+                        ci.setCouponReceiveDate(new Date());
+                        ci.setCouponItemUseropenid(festival.getSharerOpenId());
+                        ci.setCouponUseStatus(1);
+                        ci.setCouponIsDonation(2);
+                        ci.setCouponItemRemark(couponType.getCouponRemark());
+                        flag = couponItemMapper.insertCouponItem(ci);
+                        if(flag < 1){
+                            throw new RuntimeException("助力失败,请重试!");
+                        }
+
+                        //将优惠券id  修改到分享者的牙刷抵扣券上
+                        Festival itemFestival = new Festival();
+                        itemFestival.setFestivalId(oldFestival.getFestivalId());
+                        itemFestival.setFestivalBrushCouponItemId(uuidStr);
+                        flag = festivalMapper.update(itemFestival);
+                        if(flag < 1){
+                            throw new RuntimeException("助力失败,请重试!");
+                        }
+                        break;
+                    case 3: //分享给3位朋友并且打开刷头优惠券链接,则刷头优惠券变为8.5折   110002	上朵年货节-刷头8.5折券
+                        CouponItem couponItem_110002 = new CouponItem();
+                        couponItem_110002.setCouponItemId(oldFestival.getFestivalHeadCouponItemId());
+                        couponItem_110002.setCouponId(110002);
+                        flag = couponItemMapper.updateCouponTypeId(couponItem_110002);
+                        break;
+                    case 5: //分享给5位朋友并且打开刷头优惠券链接,则刷头优惠券变为8折   110003	上朵年货节-刷头8折券
+                        CouponItem couponItem_110003 = new CouponItem();
+                        couponItem_110003.setCouponItemId(oldFestival.getFestivalHeadCouponItemId());
+                        couponItem_110003.setCouponId(110003);
+                        flag = couponItemMapper.updateCouponTypeId(couponItem_110003);
+                        break;
+                    case 10: // 分享给10位朋友并且打开刷头优惠券链接,则刷头优惠券变为7.5折  110004	上朵年货节-刷头7.5折券
+                        CouponItem couponItem_110004 = new CouponItem();
+                        couponItem_110004.setCouponItemId(oldFestival.getFestivalHeadCouponItemId());
+                        couponItem_110004.setCouponId(110004);
+                        flag = couponItemMapper.updateCouponTypeId(couponItem_110004);
+                        break;
+                    default:
+                        break;
+                }
+                if(flag < 1){
+                    throw new RuntimeException("助力失败,请重试!");
+                }
+            }
+        }else{
+            return 0;
+        }
+
+        //2:添加优惠券
+        CouponType couponType = couponTypeMapper.getCouponTypeById(110001); //110001	上朵年货节-刷头9折券
+        String uuidStr = StrUtils.getUUID();
+        CouponItem ci = new CouponItem();
+        ci.setCouponItemId(uuidStr);
+        ci.setCouponId(couponType.getCouponId());
+        if(couponType.getCouponIsUseEnd() == 2){
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DATE,couponType.getCouponGetDays());	//增加X天
+            ci.setCouponUseEndDate(calendar.getTime());
+        }else{
+            ci.setCouponUseEndDate(couponType.getCouponUseEndDate());
+        }
+        ci.setCouponReceiveDate(new Date());
+        ci.setCouponItemUseropenid(festival.getFestivalOpenId());
+        ci.setCouponUseStatus(1);
+        ci.setCouponIsDonation(2);
+        ci.setCouponItemRemark(couponType.getCouponRemark());
+        flag = couponItemMapper.insertCouponItem(ci);
+        if(flag < 1){
+            throw new RuntimeException("助力失败,请重试!");
+        }
+
+        festival.setFestivalHeadCouponItemId(uuidStr);
+        flag = festivalMapper.update(festival);
+        if(flag < 1){
+            throw new RuntimeException("参与活动失败");
+        }
+        return flag;
+    }
+
+    /**
+     * 修改数据
+     * @param  festival
+     * @return Integer
+     */
+    @Override
+    public  Integer  update(Festival  festival){
+        return  festivalMapper.update(festival);
+    }
+
+}

+ 8 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/CouponItemMapper.java

@@ -53,6 +53,14 @@ public interface CouponItemMapper {
 	 * @return
 	 */
 	public Integer updateCouponItemById(CouponItem couponItem);
+
+	/**
+	 * 修改优惠券typeID
+	 * 2016年7月7日
+	 * @param couponItem
+	 * @return
+	 */
+	public Integer updateCouponTypeId(CouponItem couponItem);
 	
 	/**
 	 * 批量修改优惠券信息

+ 37 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/FestivalHelpMapper.java

@@ -0,0 +1,37 @@
+package com.iamberry.wechat.service.mapper;
+
+import com.iamberry.wechat.core.entity.activity.FestivalHelp;
+
+import java.util.List;
+
+/**
+ *  年货节-分享助力接口
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+public interface FestivalHelpMapper {
+    /**
+     * 获取集合
+     * @param  festivalHelp
+     * @return List
+     */
+    List<FestivalHelp> getFestivalHelpList(FestivalHelp  festivalHelp);
+    /**
+     * 获取助力人数
+     * @param  festivalHelp
+     * @return List
+     */
+    Integer getFestivalHelpCount(FestivalHelp  festivalHelp);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  festivalHelp
+     */
+    FestivalHelp  getFestivalHelpById(Integer  id);
+    /**
+     * 增加数据
+     * @param  festivalHelp
+     * @return Integer
+     */
+    Integer  save(FestivalHelp  festivalHelp);
+}

+ 37 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/FestivalMapper.java

@@ -0,0 +1,37 @@
+package com.iamberry.wechat.service.mapper;
+
+import com.iamberry.wechat.core.entity.activity.Festival;
+
+import java.util.List;
+
+/**
+ *  年货节-分享活动接口
+ * @author Administrator
+ * @Date 2020-01-02
+ */
+public interface FestivalMapper {
+    /**
+     * 获取集合
+     * @param  festival
+     * @return List
+     */
+    List<Festival> getFestivalList(Festival  festival);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  festival
+     */
+    Festival  getFestivalById(Integer  id);
+    /**
+     * 增加数据
+     * @param  festival
+     * @return Integer
+     */
+    Integer  save(Festival  festival);
+    /**
+     * 修改数据
+     * @param  festival
+     * @return Integer
+     */
+    Integer  update(Festival  festival);
+}

+ 7 - 1
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/couponItemMapper.xml

@@ -167,7 +167,13 @@
 				AND COUPON_USE_STATUS=#{oldCouponUseStatus}
 	    </if>
  	</update>
- 	
+
+ 	<update id="updateCouponTypeId" parameterType="CouponItem">
+ 		UPDATE TB_IAMBERRY_COUPON_ITEM
+		set COUPON_ID=#{couponId}
+		WHERE COUPON_ITEM_ID=#{couponItemId}
+ 	</update>
+
  	<update id="updateCouponItemList" parameterType="java.util.List">
  		<foreach collection="list" item="item" index="index" separator=";" open="" close="">
  			UPDATE TB_IAMBERRY_COUPON_ITEM 

+ 69 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/festivalHelpMapper.xml

@@ -0,0 +1,69 @@
+<?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="com.iamberry.wechat.service.mapper.FestivalHelpMapper">
+    <resultMap  id="BaseResultMap" type="FestivalHelp" >
+        <result    column="festival_help_id"    property="festivalHelpId" />
+        <result    column="festival_id"    property="festivalId" />
+        <result    column="festival_help_open_id"    property="festivalHelpOpenId" />
+        <result    column="festival_help_remake"    property="festivalHelpRemake" />
+        <result    column="festival_help_create_time"    property="festivalHelpCreateTime" />
+    </resultMap>
+    <sql    id="Base_List" >
+        t.festival_help_id,
+        t.festival_id,
+        t.festival_help_open_id,
+        t.festival_help_remake,
+        t.festival_help_create_time
+    </sql>
+
+    <select id="getFestivalHelpList" resultMap="BaseResultMap" parameterType="FestivalHelp" >
+        select
+        <include refid="Base_List" />,
+        uu.user_head,
+        uu.user_nickname
+        from tb_iamberry_event_festival_help t
+        LEFT  JOIN  tb_iamberry_user_userinfo uu ON  t.festival_help_open_id = uu.user_openid
+        <where>
+            <if test="festivalHelpId != null ">
+                AND t.festival_help_id = #{festivalHelpId}
+            </if >
+            <if test="festivalId != null ">
+                AND t.festival_id = #{festivalId}
+            </if >
+            <if test="festivalHelpOpenId != null and festivalHelpOpenId != ''">
+                AND t.festival_help_open_id = #{festivalHelpOpenId}
+            </if >
+        </where>
+    </select>
+
+    <select id="getFestivalHelpCount" resultType="Integer" parameterType="Integer" >
+        SELECT
+            COUNT(festival_help_id)
+        FROM
+            tb_iamberry_event_festival_help t
+        WHERE
+            t.festival_id = #{festivalId}
+    </select>
+
+    <select id="getFestivalHelpById" resultMap="BaseResultMap" parameterType="Integer" >
+        select
+        <include refid="Base_List" />
+        from tb_iamberry_event_festival_help t
+        where t.festival_help_id= #{festivalHelpId}
+    </select>
+    <insert id="save" parameterType="FestivalHelp" >
+        insert into
+            tb_iamberry_event_festival_help
+            (
+                festival_id,
+                festival_help_open_id,
+                festival_help_remake
+            )
+        values
+            (
+                #{festivalId},
+                #{festivalHelpOpenId},
+                #{festivalHelpRemake}
+            )
+    </insert>
+</mapper>

+ 76 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/festivalMapper.xml

@@ -0,0 +1,76 @@
+<?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="com.iamberry.wechat.service.mapper.FestivalMapper">
+    <resultMap  id="BaseResultMap" type="Festival" >
+        <result    column="festival_id"    property="festivalId" />
+        <result    column="festival_open_id"    property="festivalOpenId" />
+        <result    column="festival_head_coupon_item_id"    property="festivalHeadCouponItemId" />
+        <result    column="festival_brush_coupon_item_id"    property="festivalBrushCouponItemId" />
+        <result    column="festival_create_time"    property="festivalCreateTime" />
+    </resultMap>
+    <sql    id="Base_List" >
+        t.festival_id,
+        t.festival_open_id,
+        t.festival_head_coupon_item_id,
+        t.festival_brush_coupon_item_id,
+        t.festival_create_time
+    </sql>
+    <select id="getFestivalList" resultMap="BaseResultMap" parameterType="Festival" >
+        select
+        <include refid="Base_List" />
+        from tb_iamberry_event_festival t
+        <where>
+            <if test="festivalId != null ">
+                AND t.festival_id = #{festivalId}
+            </if >
+            <if test="festivalOpenId != null and festivalOpenId != ''">
+                AND t.festival_open_id = #{festivalOpenId}
+            </if >
+            <if test="festivalHeadCouponItemId != null and festivalHeadCouponItemId != ''">
+                AND t.festival_head_coupon_item_id = #{festivalHeadCouponItemId}
+            </if >
+            <if test="festivalBrushCouponItemId != null and festivalBrushCouponItemId != ''">
+                AND t.festival_brush_coupon_item_id = #{festivalBrushCouponItemId}
+            </if >
+        </where>
+    </select>
+    <select id="getFestivalById" resultMap="BaseResultMap" parameterType="Integer" >
+        select
+        <include refid="Base_List" />
+        from tb_iamberry_event_festival t
+        where t.festival_id= #{festivalId}
+    </select>
+    <insert id="save" parameterType="Festival" keyProperty="festivalId" useGeneratedKeys="true">
+        insert into
+        tb_iamberry_event_festival
+        (
+            festival_id,
+            festival_open_id,
+            festival_head_coupon_item_id,
+            festival_brush_coupon_item_id
+        )
+        values
+        (
+            #{festivalId},
+            #{festivalOpenId},
+            #{festivalHeadCouponItemId},
+            #{festivalBrushCouponItemId}
+        )
+    </insert>
+    <update id="update" parameterType="Festival" >
+        update
+        tb_iamberry_event_festival
+        <set >
+            <if test="festivalOpenId != null and festivalOpenId != ''">
+                festival_open_id = #{festivalOpenId},
+            </if >
+            <if test="festivalHeadCouponItemId != null and festivalHeadCouponItemId != ''">
+                festival_head_coupon_item_id = #{festivalHeadCouponItemId},
+            </if >
+            <if test="festivalBrushCouponItemId != null and festivalBrushCouponItemId != ''">
+                festival_brush_coupon_item_id = #{festivalBrushCouponItemId},
+            </if >
+        </set >
+        where festival_id= #{festivalId}
+    </update>
+</mapper>

+ 121 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/activity/FestivalHandler.java

@@ -0,0 +1,121 @@
+package com.iamberry.wechat.handles.activity;
+
+import com.iamberry.app.tool.log.RatFWLogger;
+import com.iamberry.wechat.core.entity.ResultMsg;
+import com.iamberry.wechat.core.entity.WechatUtils;
+import com.iamberry.wechat.core.entity.activity.Festival;
+import com.iamberry.wechat.core.entity.activity.FestivalHelp;
+import com.iamberry.wechat.core.entity.member.Member;
+import com.iamberry.wechat.face.member.MemberService;
+import com.iamberry.wechat.service.activity.FestivalHelpServiceImpl;
+import com.iamberry.wechat.service.activity.FestivalServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * @author wxm
+ * Class Description: 年货节活动
+ */
+@Controller
+@RequestMapping("/wechat/festival")
+public class FestivalHandler {
+
+	@Autowired
+	private MemberService memberService;
+	@Autowired
+	private RatFWLogger logger;
+	@Autowired
+	private FestivalServiceImpl festivalService;
+	@Autowired
+	private FestivalHelpServiceImpl festivalHelpService;
+
+	/**
+	 * 进入活动页面判断该用户是否已参加,已参加展示已助力人数和优惠券信息
+	 * @param req
+	 * @return
+	 */
+	@ResponseBody
+	@RequestMapping("/to_festival")
+	public ResultMsg toFestival(HttpServletRequest req){
+		ResultMsg rm = ResultMsg.getSuccess();
+
+		Member member = WechatUtils.getUserBySession(req);
+		member = memberService.getMemberByUserOpenId(member.getUserOpenid());
+
+		Festival festival = new Festival();
+		festival.setFestivalOpenId(member.getUserOpenid());
+		List<Festival> festivalList = festivalService.getFestivalList(festival);
+		if(festivalList != null && festivalList.size()>0){
+			festival = festivalList.get(0);
+		}else{
+			rm.addData("status",2);
+			rm.addData("msg","未参与活动,可领取优惠券");
+			return rm;
+		}
+
+		FestivalHelp festivalHelp = new FestivalHelp();
+		festivalHelp.setFestivalId(festival.getFestivalId());
+		List<FestivalHelp> festivalHelpList = festivalHelpService.getFestivalHelpList(festivalHelp);
+
+		rm.addData("status",1);
+		rm.addData("msg","已参与活动");
+		rm.addData("member",member);
+		rm.addData("festival",festival);
+		rm.addData("festivalHelpList",festivalHelpList);
+		return rm;
+	}
+
+	/**
+	 * 参与活动+领取优惠券
+	 * @param req
+	 * @return
+	 */
+	@ResponseBody
+	@RequestMapping("/receive_activity")
+	public synchronized ResultMsg getColorPatterns(HttpServletRequest req, String openid){
+		ResultMsg rm = ResultMsg.getSuccess();
+
+		Member member = WechatUtils.getUserBySession(req);
+		member = memberService.getMemberByUserOpenId(member.getUserOpenid());
+
+		if(openid == null || "".equals(openid)){
+			rm = ResultMsg.getError();
+			rm.setMessage("参与活动出错,请重试或联系客服!");
+			return rm;
+		}else{
+			if(!"X".equals(openid)){
+				Member oldmember = memberService.getMemberByUserOpenId(openid);
+				if(oldmember == null || oldmember.getUserOpenid() == null){
+					rm = ResultMsg.getError();
+					rm.setMessage("参与活动出错,请重试或联系客服!");
+					return rm;
+				}
+			}
+		}
+		Integer flag = 0;
+		Festival festival = new Festival();
+		festival.setFestivalOpenId(member.getUserOpenid());
+		List<Festival> festivalList = festivalService.getFestivalList(festival);
+		if(festivalList == null || festivalList.size()<1){
+			//未参与活动,可参与活动
+			Festival newFestival = new Festival();
+			newFestival.setFestivalOpenId(member.getUserOpenid());
+			newFestival.setSharerOpenId(openid);
+			try{
+				flag = festivalService.save(newFestival);
+			}catch (RuntimeException e){
+				e.printStackTrace();
+				rm = ResultMsg.getError();
+				rm.setMessage(e.getMessage());
+				return rm;
+			}
+		}
+		rm.setMessage("领取成功");
+		return rm;
+	}
+
+}