Просмотр исходного кода

注册三个月之内购买滤芯买一赠一

wangxiaoming 5 лет назад
Родитель
Сommit
a03044166c
18 измененных файлов с 194 добавлено и 59 удалено
  1. 1 1
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/CartDto.java
  2. 11 1
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/OrderPayDto.java
  3. 10 2
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/ShopSalesOrderDto.java
  4. 21 1
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/member/Member.java
  5. 9 0
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/order/Order.java
  6. 41 5
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/ActivityUtil.java
  7. 18 1
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java
  8. 1 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/ism/IntegralLogServiceImpl.java
  9. 1 1
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml
  10. 10 2
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/memberMapper.xml
  11. 3 2
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/orderMapper.xml
  12. 12 19
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/member/MemberServiceImpl.java
  13. 1 13
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/imp/MemberDaoImpl.java
  14. 22 5
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/impl/AdminOrderDaoImpl.java
  15. 1 0
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/agent/AgentHandler.java
  16. 13 0
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/CartHandlers.java
  17. 10 3
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  18. 9 3
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

+ 1 - 1
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/CartDto.java

@@ -55,7 +55,7 @@ public class CartDto implements Serializable{
 
 	private Integer cartIsSource;	//商品来源   1:产品颜色表   2:配件表
 
-	private Integer colorType;	//商品类型  1:产品  2:滤芯
+	private Integer colorType;	//商品类型  1:产品  2:套装滤芯 3:单只滤芯
 
 	private List<SalesUserGift> salesUserGiftList; //赠品集合
 

+ 11 - 1
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/OrderPayDto.java

@@ -37,7 +37,9 @@ public class OrderPayDto implements java.io.Serializable{
 	private int balance ; //账户余额
 	
 	private HashMap addressInfo;//收货地址
-	
+
+	private boolean hasPreFerential;//含有vip赠送的优惠
+
 	private List<CouponItemDto>  couponItems ;//优惠券集合
 
 	public String getCartId() {
@@ -128,4 +130,12 @@ public class OrderPayDto implements java.io.Serializable{
 	public void setUserIsVip(Integer userIsVip) {
 		this.userIsVip = userIsVip;
 	}
+
+	public boolean isHasPreFerential() {
+		return hasPreFerential;
+	}
+
+	public void setHasPreFerential(boolean hasPreFerential) {
+		this.hasPreFerential = hasPreFerential;
+	}
 }

+ 10 - 2
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/ShopSalesOrderDto.java

@@ -79,6 +79,8 @@ public class ShopSalesOrderDto implements Serializable{
 	private Integer balancePayAmount;					//余额支付金额
 	
 	private List<ShopOrderItemDto> orderItemList = new ArrayList<ShopOrderItemDto>();	//销售订单项
+
+	private Integer salesVipPreferential;	//是否使用了会员的买一赠一的优惠  1.使用  2.未使用
 	
 	private PageBean page = new PageBean();		//分页
 	
@@ -315,6 +317,12 @@ public class ShopSalesOrderDto implements Serializable{
 	public void setOrderItemList(List<ShopOrderItemDto> orderItemList) {
 		this.orderItemList = orderItemList;
 	}
-	
-	
+
+	public Integer getSalesVipPreferential() {
+		return salesVipPreferential;
+	}
+
+	public void setSalesVipPreferential(Integer salesVipPreferential) {
+		this.salesVipPreferential = salesVipPreferential;
+	}
 }

Разница между файлами не показана из-за своего большого размера
+ 21 - 1
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/member/Member.java


+ 9 - 0
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/order/Order.java

@@ -78,6 +78,7 @@ public class Order implements java.io.Serializable{
 
 	private Integer salesSendWarn;	//发货提醒次数
 
+	private Integer salesVipPreferential;	//是否使用了会员的买一赠一的优惠  1.使用  2.未使用
 
 	public Integer getSalesSendWarn() {
 		return salesSendWarn;
@@ -347,4 +348,12 @@ public class Order implements java.io.Serializable{
 	public void setCancelDate(Date cancelDate) {
 		this.cancelDate = cancelDate;
 	}
+
+	public Integer getSalesVipPreferential() {
+		return salesVipPreferential;
+	}
+
+	public void setSalesVipPreferential(Integer salesVipPreferential) {
+		this.salesVipPreferential = salesVipPreferential;
+	}
 }

+ 41 - 5
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/ActivityUtil.java

@@ -3,6 +3,7 @@ package com.iamberry.wechat.service;
 import com.iamberry.wechat.core.entity.activity.ActivityDate;
 import com.iamberry.wechat.core.entity.cart.CartDto;
 import com.iamberry.wechat.core.entity.eo.*;
+import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.product.Product;
 import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.face.admin.SystemService;
@@ -17,10 +18,7 @@ import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 上朵活动类
@@ -39,7 +37,7 @@ public class ActivityUtil {
     @Autowired
     private ProductInfoService productInfoService;
 
-    private SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+    private final static SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
     /**
      * 获取日期
@@ -322,4 +320,42 @@ public class ActivityUtil {
         }
     }
 
+
+    /**
+     * 添加一个免费滤芯
+     * @param cartDtoList
+     * @param openId
+     * @return  true 表示有赠送
+     * @return  false 表示未赠送
+     */
+    public boolean setVipPreFerential(List<CartDto> cartDtoList,String openId){
+        Member member = memberService.getMemberByUserOpenId(openId);
+        if(member.getUserVipPreferential() == 2 ){   //1.未兑换 2.已兑换
+            return false;
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(member.getUserVipDate());
+        calendar.add(Calendar.MONTH,3); //增加三个月   
+        if(!new Date().before(calendar.getTime())){
+            return false;
+        }
+        CartDto addCd = new CartDto();
+        boolean flag = false;
+        for (CartDto cd:cartDtoList) {
+            if(cd.getColorType() == 3){
+                 BeanUtils.copyProperties(cd,addCd);
+                 flag = true;
+                 break;
+            }
+        }
+        if(flag){
+            addCd.setProductDiscount(0);
+            addCd.setCartNum(1);
+            addCd.setProductName("【VIP赠送】"+addCd.getProductName());
+            cartDtoList.add(addCd);
+            return true;
+        }
+        return false;
+    }
+
 }

+ 18 - 1
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java

@@ -9,6 +9,7 @@ import java.util.Map;
 import com.iamberry.app.tool.log.RatFWLogger;
 import com.iamberry.wechat.core.entity.eo.GiftPool;
 import com.iamberry.wechat.core.entity.eo.ItemGift;
+import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.core.entity.product.ProductFittings;
 import com.iamberry.wechat.core.entity.product.SalesUserGift;
@@ -42,6 +43,7 @@ import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.face.reback.RebackServices;
 import com.iamberry.wechat.service.cart.dao.CartDao;
 import com.iamberry.wechat.service.order.dao.AdminOrderDao;
+import org.springframework.transaction.annotation.Transactional;
 
 @Service
 public class CartServiceImpl implements CartService {
@@ -183,6 +185,7 @@ public class CartServiceImpl implements CartService {
 	}
 
 	@Override
+	@Transactional
 	public boolean addOrderAndSaveOrderItem(Order order, List<OrderItem> items, List<Integer> cartIds) throws Exception {
 		// TODO Auto-generated method stub
 		int count = cartDao.insertOrderInfo(order);
@@ -215,9 +218,23 @@ public class CartServiceImpl implements CartService {
 			}
 		}
 
+		//修改用户使用买一赠一的优惠状态
+		if(order.getSalesVipPreferential() == 1){
+			Member member = new Member();
+			member.setUserOpenid(order.getSalesOpenid());
+			member.setUserVipPreferential(2);	//会员优惠兑换一个滤芯 1.未兑换 2.已兑换
+			count = memberService.nowUpdateUserByOpenId(member);
+			if (count < 1) {
+				throw new RuntimeException("用户使用买一赠一优惠失败");
+			}
+		}
+
 		//订单结算使用积分
 		if(order.getSalesIntegralNum() > 0){
-			integralLogService.muOrderChangIntegra(order);
+			count = integralLogService.muOrderChangIntegra(order);
+			if (count < 1) {
+				throw new RuntimeException("积分使用失败");
+			}
 		}
 
 		// 删除购物车项目

+ 1 - 0
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/ism/IntegralLogServiceImpl.java

@@ -152,6 +152,7 @@ public class IntegralLogServiceImpl  implements IntegralLogService {
      * @return
      */
     @Override
+    @Transactional
     public Integer muOrderChangIntegra(Order order) {
         IntegralConfig integralConfig = integralConfigMapper.getIntegralConfigById(4);
         Integer num = order.getSalesIntegralNum();   //setSalesIntegralNum

+ 1 - 1
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml

@@ -390,7 +390,7 @@ PUBLIC
 	<select id="getOpenIdAndStatus" parameterType="String" resultType="ShopSalesOrderDto">
 		SELECT 
 			SALES_OPENID salesOpenid, SALES_STATUS salesStatus,SALES_SEND_DATE salesSendDate,
-			SALES_LOCK_TYPE salesLockType,SALES_COUPON_RECEIVE_ID salesCouponReceiveId 
+			SALES_LOCK_TYPE salesLockType,SALES_COUPON_RECEIVE_ID salesCouponReceiveId, sales_vip_preferential salesVipPreferential
 		FROM 
 			TB_IAMBERRY_SHOP_SALES_ORDER 
 		WHERE 

+ 10 - 2
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/memberMapper.xml

@@ -35,7 +35,9 @@
 		user_income userIncome,
 		user_template_id templateId,
 		user_dealers userDealers,
-		user_is_vip userIsVip
+		user_is_vip userIsVip,
+		user_vip_date userVipDate,
+		user_vip_preferential userVipPreferential
 	</sql>
 	<!-- 匹配查询会员信息 -->
 	<select id="getMemberByFuzzy" parameterType="Member" resultType="Member">
@@ -379,7 +381,13 @@
 				user_email = #{userEmail},
 			</if >
 			<if test="userIsVip != null ">
-				user_is_vip = #{userIsVip}
+				user_is_vip = #{userIsVip},
+			</if >
+			<if test="userVipDate != null and userVipDate != ''">
+				user_vip_date = #{userVipDate},
+			</if >
+			<if test="userVipPreferential != null ">
+				user_vip_preferential = #{userVipPreferential}
 			</if >
 		</set >
 		where user_openid = #{userOpenid}

+ 3 - 2
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/orderMapper.xml

@@ -17,7 +17,7 @@ PUBLIC
 			 		SALES_INTEGRAL_NUM, SALES_RATE_AMOUNT, SALES_CREATE_DATE,
 			 		SALES_REWARD_INTEGRAL_NUM, SALES_ADDRESS_INFO, SALES_ADDRESS_POSTNUM,
 			 		SALES_ADDRESS_TEL, SALES_ADDRESS_NAME, SALES_USER_REMARK, SALES_STATUS, 
-			 		SALES_PROXY_REWARD, SALES_REWARD_NUM,SALES_COUPON_RECEIVE_ID, Sales_balance_amount
+			 		SALES_PROXY_REWARD, SALES_REWARD_NUM,SALES_COUPON_RECEIVE_ID, Sales_balance_amount,sales_vip_preferential
 				)
 		 VALUES 
 		  	( 
@@ -38,7 +38,8 @@ PUBLIC
 			  1,
 			  #{salesRewardNum},
 			  #{couponId},
-			  #{balancePayAmount}
+			  #{balancePayAmount},
+			  #{salesVipPreferential}
 		  	)
 	</insert>
 

+ 12 - 19
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/member/MemberServiceImpl.java

@@ -5,6 +5,7 @@ import java.util.*;
 
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
+import com.iamberry.wechat.face.ism.IntegralLogService;
 import com.iamberry.wechat.service.mapper.CouponItemMapper;
 import com.iamberry.wechat.service.mapper.CouponTypeMapper;
 import com.iamberry.wechat.tools.StrUtils;
@@ -20,6 +21,7 @@ import com.iamberry.wechat.face.qrcode.QrcodeService;
 import com.iamberry.wechat.service.mapper.PlaceInfoMapper;
 import com.iamberry.wechat.service.member.dao.MemberDao;
 import com.iamberry.wechat.service.system.dao.SystemDao;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 会员信息 service 实现
@@ -41,6 +43,8 @@ public class MemberServiceImpl implements MemberService {
 	public CouponTypeMapper couponTypeMapper;
 	@Autowired
 	public CouponItemMapper couponItemMapper;
+	@Autowired
+	private IntegralLogService integralLogService;
 	/**
 	 * 根据userid得到会员信息
 	 * @param userId
@@ -192,34 +196,23 @@ public class MemberServiceImpl implements MemberService {
 	}
 
 	@Override
+	@Transactional
 	public Integer becomeVipByOpenId(Member member) {
 		Integer flag = memberDao.becomeVipByOpenId(member);
 		if(flag < 1){
 			throw new RuntimeException("成为会员失败");
 		}
-//		Integer couponId = 10000;
-//		CouponType couponType = couponTypeMapper.getCouponTypeById(couponId);
-//		Calendar calendar = Calendar.getInstance();
-//		calendar.add(Calendar.DATE, 90);  //有效期三个月
-//		//创建优惠券
-//		CouponItem couponItem = new CouponItem();
-//		String uuidStr = StrUtils.getUUID();
-//		couponItem.setCouponItemId(uuidStr);
-//		couponItem.setCouponItemUseropenid(member.getUserOpenid());
-//		couponItem.setCouponId(couponType.getCouponId());
-//		couponItem.setCouponReceiveDate(new Date());
-//		couponItem.setCouponUseEndDate(calendar.getTime());
-//		couponItem.setCouponUseStatus(1);
-//		couponItem.setCouponItemRemark(couponType.getCouponRemark());
-//		flag = couponItemMapper.insertCouponItem(couponItem);
-//		if(flag < 1){
-//			throw new RuntimeException("赠送兑换优惠券失败");
-//		}
 
+		flag = integralLogService.updateIntegral(member.getUserOpenid(),1,1);
+		if(flag < 1){
+			throw  new RuntimeException("添加积分失败");
+		}
+
+		//当天生日,当天送
 		SimpleDateFormat sdf = new SimpleDateFormat("MMdd");
 		String memberBirhDate = sdf.format(member.getUserBirthDate());
 		String nowDate = sdf.format(new Date());
-		if(nowDate.equals(nowDate)){
+		if(nowDate.equals(memberBirhDate)){
 			Integer nowcouponId = 40000;
 			CouponType nowcouponType = couponTypeMapper.getCouponTypeById(nowcouponId);
 			Calendar nowcalendar = Calendar.getInstance();

+ 1 - 13
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/imp/MemberDaoImpl.java

@@ -23,8 +23,6 @@ import org.springframework.transaction.annotation.Transactional;
 public class MemberDaoImpl  implements MemberDao {
 	@Autowired
 	private MemberMapper memberMapper;
-	@Autowired
-	private IntegralLogService integralLogService;
 
 	/**
 	 * 根据userid得到会员信息
@@ -146,18 +144,8 @@ public class MemberDaoImpl  implements MemberDao {
 	}
 
 	@Override
-	@Transactional
 	public Integer becomeVipByOpenId(Member member) {
-		Integer flag = memberMapper.nowUpdateUserByOpenId(member);
-		if(flag < 1){
-			throw  new RuntimeException("成为VIP失败");
-		}
-
-		flag = integralLogService.updateIntegral(member.getUserOpenid(),1,1);
-		if(flag < 1){
-			throw  new RuntimeException("添加积分失败");
-		}
-		return flag;
+		return memberMapper.nowUpdateUserByOpenId(member);
 	}
 
 	@Override

+ 22 - 5
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/impl/AdminOrderDaoImpl.java

@@ -8,6 +8,7 @@ import com.iamberry.wechat.core.entity.eo.ItemGift;
 import com.iamberry.wechat.core.entity.order.NumberBacklogDto;
 import com.iamberry.wechat.face.eo.GiftPoolService;
 import com.iamberry.wechat.face.ism.IntegralLogService;
+import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.service.mapper.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -22,6 +23,7 @@ import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
 import com.iamberry.wechat.core.entity.order.OrderRebackMoney;
 import com.iamberry.wechat.service.order.dao.AdminOrderDao;
+import org.springframework.transaction.annotation.Transactional;
 
 @Repository
 public class AdminOrderDaoImpl implements AdminOrderDao {
@@ -41,6 +43,8 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 	private GiftPoolService giftPoolService;
 	@Autowired
 	private IntegralLogService integralLogService;
+	@Autowired
+	private MemberService memberService;
 
 	
 	@Override
@@ -261,6 +265,7 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 	}
 
 	@Override
+	@Transactional
 	public Integer cancelOrder(String salesOrderid) {
 		Integer flag = 0;
 		ShopSalesOrderDto ssod  = cartMapper.getOpenIdAndStatus(salesOrderid);
@@ -268,6 +273,9 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 		order.setSalesOrderid(salesOrderid);
 		order.setSalesStatus(0);	//订单取消
 		flag = cartMapper.updateOrderByOrder(order);
+		if(flag < 1){
+			throw new RuntimeException("修改订单失败");
+		}
 
 		//恢复赠品的库存
 		List<OrderItem> orderItemList = adminOrderMapper.getShopOrderItemByOrderId(salesOrderid);
@@ -283,12 +291,21 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 			}
 		}
 
+		//恢复vip买一增一优惠
+		if(ssod.getSalesVipPreferential() == 1){
+			Member member = new Member();
+			member.setUserOpenid(ssod.getSalesOpenid());
+			member.setUserVipPreferential(1);
+			flag = memberService.nowUpdateUserByOpenId(member);
+			if(flag < 1){
+				throw new RuntimeException("修改用户失败买一赠一失败");
+			}
+		}
+
 		//恢复积分
-		try {
-			flag = integralLogService.cancelSurplusIntegral(salesOrderid);
-		}catch (Exception e){
-			e.printStackTrace();
-			logger.info("取消订单,积分退回失败,订单id:"+ salesOrderid);
+		flag = integralLogService.cancelSurplusIntegral(salesOrderid);
+		if(flag < 1){
+			throw new RuntimeException("恢复积分失败");
 		}
 		return flag;
 	}

+ 1 - 0
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/agent/AgentHandler.java

@@ -216,6 +216,7 @@ public class AgentHandler {
 		ResultMsg msg = new ResultMsg();
 		member.setUserOpenid(m.getUserOpenid());
 		member.setUserIsVip(2);	//是否为vip :1:非vip  2:vip
+		member.setUserVipDate(new Date());
 		Integer  flag = memberService.becomeVipByOpenId(member);
 		if (flag > 0 ) {
 			request.getSession().removeAttribute("verification_tel_"+m.getUserOpenid()); //遍历删除session中的值

+ 13 - 0
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/CartHandlers.java

@@ -851,6 +851,19 @@ public class CartHandlers {
 					}
 				}
 
+				try {
+					//恢复vip买一增一优惠
+					if(orderDto.getSalesVipPreferential() == 1){
+						Member member = new Member();
+						member.setUserOpenid(orderDto.getSalesOpenid());
+						member.setUserVipPreferential(1);
+						Integer count = memberService.nowUpdateUserByOpenId(member);
+					}
+				}catch (Exception e){
+					e.printStackTrace();
+					logger.info("取消订单,恢复买一赠一失败,订单id:"+ orderId);
+				}
+
 				//恢复积分
 				try {
 					Integer flag = integralLogService.cancelSurplusIntegral(orderId);

+ 10 - 3
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -463,13 +463,20 @@ public class MQTask implements InitializingBean {
 		if(orderList!=null && orderList.size()>0){
 			logger.info("---------------- 当前订单处理数量-"+ orderList.size() +" ---------------");
 			for (Order ord:orderList) {
-				Integer flag = adminOrderService.cancelOrder(ord.getSalesOrderid());
-				if(flag < 1){
-					logger.info("---------------- 订单取消失败-订单号:"+ ord.getSalesOrderid() +" ---------------");
+				try {
+					Integer flag = adminOrderService.cancelOrder(ord.getSalesOrderid());
+					if(flag < 1){
+						logger.info("---------------- 订单取消失败-订单号:"+ ord.getSalesOrderid() +" ---------------");
+					}
+				}catch (Exception e){
+					e.printStackTrace();
+					logger.info("---------------- 订单取消报错"+ e.getMessage() +"-订单号:"+ ord.getSalesOrderid() +" ---------------");
 				}
 			}
 			logger.info("---------------- 超过20分钟取消订单-结束 ---------------");
 		}
 	}
 
+
+
 }

+ 9 - 3
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -170,6 +170,8 @@ public class OrderHandler {
 
 		//查询活动
 		activityUtil.preferential(cartDtos);
+		//VIP免费赠送一个滤芯
+		boolean hasPreFerential = activityUtil.setVipPreFerential(cartDtos,member.getUserOpenid());
 
 		List<CartDto> tempCarts = new ArrayList<CartDto>();
 		for (CartDto cartDto : cartDtos) {
@@ -232,12 +234,11 @@ public class OrderHandler {
 		dto.setPayTotal(total); // 支付金额,单位为分
 		dto.setCartItems(tempCarts); // 订单项
 		dto.setSuccess(true); // 请求成功
-//		dto.setUserIntegral(homeService.selectUserIntegralByOpenid(member.getUserOpenid()));// 用户积分
-//		dto.setMeonyProportion(systemService.selectOneShopRuleById(13).getRuleNum().intValue()); // 1积分=?分钱
 		dto.setUserIntegral(member.getUserSurplusIntegral());
 		dto.setMeonyProportion("0.1");
 		dto.setBalance(member.getUserIncome());
 		dto.setUserIsVip(member.getUserIsVip());
+		dto.setHasPreFerential(hasPreFerential);
 		
 		Order order=cartService.getOrderRecentAddress(member.getUserOpenid());
 		
@@ -350,6 +351,11 @@ public class OrderHandler {
 
 		//添加赠品,秒杀
 		activityUtil.preferential(cartDtos);
+		//VIP免费赠送一个滤芯
+		boolean hasPreFerential = activityUtil.setVipPreFerential(cartDtos,member.getUserOpenid());
+		if(hasPreFerential){
+			order.setSalesVipPreferential(1);//是会员买一赠一的优惠
+		}
 
 		for (CartDto cartDto : cartDtos) {
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
@@ -359,7 +365,7 @@ public class OrderHandler {
 					Double doubleProductDiscount = productDiscount.doubleValue();
 					doubleProductDiscount = doubleProductDiscount * 0.95;
 					productDiscount = doubleProductDiscount.intValue();
-				}else if(cartDto.getColorType() == 2 && member.getUserIsVip() == 2){
+				}else if((cartDto.getColorType() == 2 || cartDto.getColorType() == 3) && member.getUserIsVip() == 2){
 					Double doubleProductDiscount = productDiscount.doubleValue();
 					doubleProductDiscount = doubleProductDiscount * 0.88;
 					productDiscount = doubleProductDiscount.intValue();