|
@@ -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();
|
|
|
}
|
|
|
|
|
|
}
|