Przeglądaj źródła

感恩活动开发

wangxiaoming 6 lat temu
rodzic
commit
8f4e07ad69

+ 13 - 0
watero-common-core/src/main/java/com/iamberry/wechat/core/entity/coupon/Exchange.java

@@ -1,7 +1,10 @@
 package com.iamberry.wechat.core.entity.coupon;
 
+import java.util.ArrayList;
 import  java.util.Date;
 import  java.io.Serializable;
+import java.util.List;
+
 /**
  *  兑换表类
  * @author
@@ -22,6 +25,8 @@ public class Exchange  implements  Serializable{
     //修改时间'
     private Date exchangeUpdateTime;
 
+    private List<ExchangeItem> exchangeItemList = new ArrayList<>();
+
     public Integer getExchangeId(){
         return exchangeId;
     }
@@ -69,4 +74,12 @@ public class Exchange  implements  Serializable{
     public void setExchangeDesc(String exchangeDesc) {
         this.exchangeDesc = exchangeDesc;
     }
+
+    public List<ExchangeItem> getExchangeItemList() {
+        return exchangeItemList;
+    }
+
+    public void setExchangeItemList(List<ExchangeItem> exchangeItemList) {
+        this.exchangeItemList = exchangeItemList;
+    }
 }

+ 10 - 0
watero-common-core/src/main/java/com/iamberry/wechat/core/entity/member/Member.java

@@ -52,6 +52,8 @@ public class Member implements Serializable{
 	private Integer userCoupon;			//
 	private Integer userTemplateId;			//
 
+	private Integer userIsVip;		//是否为vip :1:非vip  2:vip
+
 	public Page getPage() {
 		return page;
 	}
@@ -250,6 +252,14 @@ public class Member implements Serializable{
 		this.userTemplateId = userTemplateId;
 	}
 
+	public Integer getUserIsVip() {
+		return userIsVip;
+	}
+
+	public void setUserIsVip(Integer userIsVip) {
+		this.userIsVip = userIsVip;
+	}
+
 	@Override
 	public String toString() {
 		return "Member [userId=" + userId + ", userOpenid=" + userOpenid

+ 21 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/exchangeMapper.xml

@@ -6,7 +6,16 @@
         <result    column="coupon_id"    property="couponId" />
         <result    column="exchange_create_time"    property="exchangeCreateTime" />
         <result    column="exchange_update_time"    property="exchangeUpdateTime" />
+        <collection property="exchangeItemList" column="exchange_id" ofType="ExchangeItem" select="getExchangeItemList"/>
     </resultMap>
+
+    <resultMap  id="ExchangeItemMap" type="ExchangeItem" >
+        <result    column="exchange_item_id"    property="exchangeItemId" />
+        <result    column="exchange_id"    property="exchangeId" />
+        <result    column="color_id"    property="colorId" />
+        <result    column="exchange_item_num"    property="exchangeItemNum" />
+    </resultMap>
+
     <sql    id="Base_List" >
         t.exchange_id,
         t.coupon_id,
@@ -28,6 +37,18 @@
             </if >
         </where>
     </select>
+
+
+    <select id="getExchangeItemList" resultMap="ExchangeItemMap" parameterType="Integer" >
+        select
+        t.exchange_item_id,
+        t.exchange_id,
+        t.color_id,
+        t.exchange_item_num
+        from tb_iamberry_coupon_exchange_item t
+        WHERE  t.exchange_id = #{exchangeId}
+    </select>
+
     <select id="getExchangeById" resultMap="BaseResultMap" parameterType="Integer" >
         select
         <include refid="Base_List" />

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

@@ -33,7 +33,8 @@
 		user_income userIncome,
 		user_template_id templateId,
 		user_dealers userDealers,
-		user_is_bought userIsBought
+		user_is_bought userIsBought,
+		user_is_vip userIsVip
 	</sql>
 	<!-- 匹配查询会员信息 -->
 	<select id="getMemberByFuzzy" parameterType="Member" resultType="Member">

+ 61 - 4
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -10,6 +10,8 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.iamberry.wechat.core.entity.coupon.*;
+import com.iamberry.wechat.face.coupon.ExchangeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -26,9 +28,6 @@ import com.iamberry.wechat.core.entity.cart.SendPayDto;
 import com.iamberry.wechat.core.entity.cart.ShopSalesOrderDto;
 import com.iamberry.wechat.core.entity.cart.TempOrderDto;
 import com.iamberry.wechat.core.entity.cart.UserGiftDto;
-import com.iamberry.wechat.core.entity.coupon.CouponItem;
-import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
-import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.core.entity.member.CashLog;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.mq.MQMessage;
@@ -83,6 +82,8 @@ public class OrderHandler {
 	@Autowired
 	CouponItemService couponItemService;
 	@Autowired
+	ExchangeService exchangeService;
+	@Autowired
 	CouponTypeService couponTypeService;
 	@Autowired
 	CashLogService cashLogService;
@@ -229,8 +230,41 @@ public class OrderHandler {
 		cDto.getPage().setPageSize(12);
 		//cDto.getPage().setPageNumber(pageNO);
 		List<CouponItemDto> list = couponItemService.getCouponItemDtoList(cDto);
+
+		//整理优惠券,在下面循环中有可能会删除无法使用的优惠券
+		List<CouponItemDto> couponItemDtoList = new ArrayList<>();
+		for (CouponItemDto cid : list){
+			if(3 == cid.getCouponType()){
+				//判断抵扣券的是否能够使用
+				Exchange exchange = new Exchange();
+				exchange.setCouponId(cid.getCouponId());
+				List<Exchange>  exchangeList = exchangeService.getExchangeList(exchange);
+				for (Exchange ex : exchangeList){
+					boolean fl = false;
+//					boolean fg = false;
+					for (CartDto cartDto : cartDtos) {
+						Integer noColor = 0;
+						for (ExchangeItem exchangeItem : ex.getExchangeItemList()){
+							if(cartDto.getCartColorId().equals(exchangeItem.getColorId())){
+								fl = true;
+							}else{
+								noColor++;
+							}
+						}
+						if(noColor == ex.getExchangeItemList().size()){
+
+						}
+					}
+					if(fl){
+						couponItemDtoList.add(cid);
+					}
+				}
+			}else{
+				couponItemDtoList.add(cid);
+			}
+		}
 		
-		dto.setCouponItems(list);
+		dto.setCouponItems(couponItemDtoList);
 		
 		dto.setCartId(cartIds);// 购物车ID
 		dto.setPayTotal(total); // 支付金额,单位为分
@@ -450,11 +484,34 @@ public class OrderHandler {
 				msg.setMessage(ResultInfo.COUPON_CONSUME_NO_ENOUGH); //消费额度不足
 				return msg;
 			}
+
+			if(3 == couponType.getCouponType()){
+				//判断抵扣券的是否能够使用
+				Exchange exchange = new Exchange();
+				exchange.setCouponId(couponType.getCouponId());
+				List<Exchange>  exchangeList = exchangeService.getExchangeList(exchange);
+				boolean fl = false;
+				for (Exchange ex : exchangeList){
+					for (ExchangeItem exchangeItem : ex.getExchangeItemList()){
+						for (CartDto cartDto : cartDtos) {
+							if(cartDto.getCartColorId().equals(exchangeItem.getColorId())){
+								fl = true;
+							}
+						}
+					}
+					if(fl){
+						break;
+					}
+				}
+			}
+
 			//优惠券的类型,是直接减免额度 还是折扣价 
 			if(couponType.getCouponType()==1){
 				total=total-couponType.getCouponReduce();
 			}else if(couponType.getCouponType()==2){
 				total=total*couponType.getCouponReduce()/100;
+			}else if(couponType.getCouponType()==3){
+				total=total-couponType.getCouponReduce();
 			}
 		
 		}