|
@@ -1,19 +1,20 @@
|
|
package com.iamberry.wechat.handles.order;
|
|
package com.iamberry.wechat.handles.order;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Date;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.TreeMap;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.regex.Pattern;
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
+import com.iamberry.wechat.core.entity.activity.ActivityDate;
|
|
|
|
+import com.iamberry.wechat.core.entity.cart.*;
|
|
|
|
+import com.iamberry.wechat.core.entity.product.Product;
|
|
import com.iamberry.wechat.core.entity.product.SalesUserGift;
|
|
import com.iamberry.wechat.core.entity.product.SalesUserGift;
|
|
|
|
+import com.iamberry.wechat.face.cart.SettlementGiftService;
|
|
|
|
+import com.iamberry.wechat.service.ActivityUtil;
|
|
import com.iamberry.wechat.tools.*;
|
|
import com.iamberry.wechat.tools.*;
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -24,10 +25,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
import com.iamberry.wechat.core.entity.PageBean;
|
|
import com.iamberry.wechat.core.entity.PageBean;
|
|
import com.iamberry.wechat.core.entity.ResultMsg;
|
|
import com.iamberry.wechat.core.entity.ResultMsg;
|
|
import com.iamberry.wechat.core.entity.WechatUtils;
|
|
import com.iamberry.wechat.core.entity.WechatUtils;
|
|
-import com.iamberry.wechat.core.entity.cart.CartDto;
|
|
|
|
-import com.iamberry.wechat.core.entity.cart.OrderPayDto;
|
|
|
|
-import com.iamberry.wechat.core.entity.cart.SendPayDto;
|
|
|
|
-import com.iamberry.wechat.core.entity.cart.TempOrderDto;
|
|
|
|
import com.iamberry.wechat.core.entity.coupon.CouponItem;
|
|
import com.iamberry.wechat.core.entity.coupon.CouponItem;
|
|
import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
|
|
import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
|
|
import com.iamberry.wechat.core.entity.coupon.CouponType;
|
|
import com.iamberry.wechat.core.entity.coupon.CouponType;
|
|
@@ -94,6 +91,10 @@ public class OrderHandler {
|
|
private MQServiceProxy mQservice;
|
|
private MQServiceProxy mQservice;
|
|
@Autowired
|
|
@Autowired
|
|
private ProductInfoService productInfoService;
|
|
private ProductInfoService productInfoService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SettlementGiftService settlementGiftService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ActivityUtil activityUtil;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 支付前,调用方法
|
|
* 支付前,调用方法
|
|
@@ -156,25 +157,23 @@ public class OrderHandler {
|
|
|
|
|
|
List<CartDto> tempCarts = new ArrayList<CartDto>();
|
|
List<CartDto> tempCarts = new ArrayList<CartDto>();
|
|
for (CartDto cartDto : cartDtos) {
|
|
for (CartDto cartDto : cartDtos) {
|
|
- switch (cartDto.getCartIsSource()) {
|
|
|
|
- case 1:
|
|
|
|
- cartDto = cartService.selectCartProductColor(cartDto);
|
|
|
|
- break;
|
|
|
|
- case 2:
|
|
|
|
- cartDto = cartService.getCartProductFitting(cartDto);
|
|
|
|
- }
|
|
|
|
|
|
+ cartDto = cartService.selectCartProductColor(cartDto);
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
total += cartDto.getCartNum() * cartDto.getProductPrice();
|
|
total += cartDto.getCartNum() * cartDto.getProductPrice();
|
|
sum++;
|
|
sum++;
|
|
- //查询产品赠品信息
|
|
|
|
- List<SalesUserGift> giftList = cartService.listGift(cartDto.getCartColorId());
|
|
|
|
- cartDto.setSalesUserGiftList(giftList);
|
|
|
|
tempCarts.add(cartDto);
|
|
tempCarts.add(cartDto);
|
|
}
|
|
}
|
|
- if(cartDto.getCartProductId() == 39){
|
|
|
|
|
|
+ if(cartDto.getCartProductId() == 39 || cartDto.getCartProductId() == 33){
|
|
productIdW6 ++;
|
|
productIdW6 ++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //添加赠品
|
|
|
|
+ ActivityDate activityDate = activityUtil.isActivity();
|
|
|
|
+ if(activityDate.isStatus()){
|
|
|
|
+ giftCart(tempCarts);
|
|
|
|
+ }
|
|
|
|
+
|
|
if (sum <= 0) {
|
|
if (sum <= 0) {
|
|
msg.setMessage(ResultInfo.cartEmptyError);
|
|
msg.setMessage(ResultInfo.cartEmptyError);
|
|
return msg;
|
|
return msg;
|
|
@@ -303,20 +302,19 @@ public class OrderHandler {
|
|
order.setSalesOrderid(orderNOUtil.createOrderCode(member.getUserId())); // 订单ID
|
|
order.setSalesOrderid(orderNOUtil.createOrderCode(member.getUserId())); // 订单ID
|
|
List<OrderItem> list = new ArrayList<OrderItem>();
|
|
List<OrderItem> list = new ArrayList<OrderItem>();
|
|
List<Integer> cartIds = new ArrayList<Integer>();
|
|
List<Integer> cartIds = new ArrayList<Integer>();
|
|
-
|
|
|
|
- for (CartDto cartDto : cartDtos) {
|
|
|
|
- //判断购买产品是产品还是配件
|
|
|
|
-// switch (cartDto.getCartIsSource()) {
|
|
|
|
-// case 1:
|
|
|
|
-// cartDto = cartService.selectCartProductColor(cartDto);
|
|
|
|
-// break;
|
|
|
|
-// case 2:
|
|
|
|
-// cartDto = cartService.getCartProductFitting(cartDto);
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
- //产品和配件都是从产品表出,配件和产品的区别在于类型
|
|
|
|
- cartDto = cartService.selectCartProductColor(cartDto);
|
|
|
|
|
|
|
|
|
|
+ List<CartDto> cds = new ArrayList<>();
|
|
|
|
+ for (int i=0;i<cartDtos.size();i++) {
|
|
|
|
+ CartDto c = cartService.selectCartProductColor(cartDtos.get(i));
|
|
|
|
+ cds.add(c);
|
|
|
|
+ }
|
|
|
|
+ cartDtos = cds;
|
|
|
|
+ //添加赠品
|
|
|
|
+ ActivityDate activityDate = activityUtil.isActivity();
|
|
|
|
+ if(activityDate.isStatus()){
|
|
|
|
+ giftCart(cartDtos);
|
|
|
|
+ }
|
|
|
|
+ for (CartDto cartDto : cartDtos) {
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
cartIds.add(cartDto.getCartId());
|
|
cartIds.add(cartDto.getCartId());
|
|
Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
|
|
Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
|
|
@@ -338,32 +336,8 @@ public class OrderHandler {
|
|
item.setItemProductChildType(cartDto.getProductChildType());
|
|
item.setItemProductChildType(cartDto.getProductChildType());
|
|
list.add(item);
|
|
list.add(item);
|
|
}
|
|
}
|
|
- //查询产品赠品信息
|
|
|
|
- List<SalesUserGift> giftList = cartService.listGift(cartDto.getCartColorId());
|
|
|
|
- if (giftList != null && giftList.size() > 0) {
|
|
|
|
- for (SalesUserGift gift : giftList) {
|
|
|
|
- OrderItem item = new OrderItem();
|
|
|
|
- item.setItemNum(gift.getUserGiftCount() * cartDto.getCartNum());
|
|
|
|
- item.setItemProductDiscount(0);
|
|
|
|
- item.setItemProductId(gift.getUserGiftId());
|
|
|
|
- item.setItemProductName(gift.getGiftName());
|
|
|
|
- item.setItemProductPic(gift.getGiftProductPic());
|
|
|
|
- item.setItemSalesOrderid(order.getSalesOrderid());
|
|
|
|
- item.setItemTotal(0);
|
|
|
|
- item.setItemProductPrice(0);
|
|
|
|
- item.setItemColorId(gift.getUserGiftColor());
|
|
|
|
- item.setItemProductColor(gift.getGiftColorName());
|
|
|
|
- item.setItemProductChildType(gift.getGiftChildType());
|
|
|
|
- item.setItemIsSource(1);
|
|
|
|
- item.setItemProductType(gift.getGiftType());
|
|
|
|
- item.setItemProductChildType(gift.getGiftChildType());
|
|
|
|
- item.setItemGiftSource(cartDto.getCartColorId());
|
|
|
|
- item.setItemProductChildType(cartDto.getProductChildType());
|
|
|
|
- list.add(item);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
// 准备订单对象
|
|
// 准备订单对象
|
|
order.setSalesOpenid(member.getUserOpenid()); // openid
|
|
order.setSalesOpenid(member.getUserOpenid()); // openid
|
|
order.setSalesAmount(total); // 订单金额
|
|
order.setSalesAmount(total); // 订单金额
|
|
@@ -417,16 +391,6 @@ public class OrderHandler {
|
|
}else{
|
|
}else{
|
|
mustPay=total;
|
|
mustPay=total;
|
|
}
|
|
}
|
|
-
|
|
|
|
- //获取账户余额,判断是否在可用范围内
|
|
|
|
-// int balancePayAmount=temp.getBalancePayAmount();
|
|
|
|
-// if(balancePayAmount>0 && member.getUserIncome()>balancePayAmount){
|
|
|
|
-// mustPay=total-temp.getBalancePayAmount()>0?total-temp.getBalancePayAmount():0;
|
|
|
|
-// }else if(balancePayAmount>0 && member.getUserIncome()<balancePayAmount){
|
|
|
|
-// msg.setMessage(ResultInfo.NO_ENOUGH_FOR_PAY);
|
|
|
|
-// return msg;
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
order.setSalesYetAmount(total);
|
|
order.setSalesYetAmount(total);
|
|
order.setSalesRateAmount(0);
|
|
order.setSalesRateAmount(0);
|
|
order.setSalesIntegralNum(temp.getOrderIntegralNum()); // 订单使用积分
|
|
order.setSalesIntegralNum(temp.getOrderIntegralNum()); // 订单使用积分
|
|
@@ -500,24 +464,6 @@ public class OrderHandler {
|
|
int i=couponItemService.updateCouponItemById(couponItem);
|
|
int i=couponItemService.updateCouponItemById(couponItem);
|
|
}
|
|
}
|
|
|
|
|
|
- //更新账户余额
|
|
|
|
-// if(balancePayAmount>0){
|
|
|
|
-// member.setUserIncome(-balancePayAmount);
|
|
|
|
-// memberService.updateUserIncomeByOpenId(member);
|
|
|
|
-//
|
|
|
|
-// //现金使用记录
|
|
|
|
-// CashLog log=new CashLog();
|
|
|
|
-// log.setCashLogsIntroduction("订单支出");
|
|
|
|
-// log.setCashLogsNum(balancePayAmount);
|
|
|
|
-// log.setCashLogsOpenid(member.getUserOpenid());
|
|
|
|
-// log.setCashLogsType(2);
|
|
|
|
-// log.setCashLogsResType(3);
|
|
|
|
-// log.setCashLogsOrderid(order.getSalesOrderid());
|
|
|
|
-// log.setCashLogsCreateDate(nowDate);
|
|
|
|
-// cashLogService.addCashLog(log);
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
rebackServices.loadSingleOrderReward(order);
|
|
rebackServices.loadSingleOrderReward(order);
|
|
productInfoService.updateProductNumList(order.getSalesOrderid());
|
|
productInfoService.updateProductNumList(order.getSalesOrderid());
|
|
try {
|
|
try {
|
|
@@ -691,4 +637,69 @@ public class OrderHandler {
|
|
}
|
|
}
|
|
return cartIntList;
|
|
return cartIntList;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 赠送赠品
|
|
|
|
+ * @param cartDtoList
|
|
|
|
+ */
|
|
|
|
+ private void giftCart(List<CartDto> cartDtoList){
|
|
|
|
+ List<CartDto> giftList = new ArrayList<>();
|
|
|
|
+ SettlementGift settlementGift = new SettlementGift();
|
|
|
|
+ settlementGift.setSettGiftStatus(1);
|
|
|
|
+ List<SettlementGift> settlementGiftList = settlementGiftService.getSettlementGiftList(settlementGift);
|
|
|
|
+ for (CartDto cd:cartDtoList) {
|
|
|
|
+ for (SettlementGift sg:settlementGiftList) {
|
|
|
|
+ if(Objects.equals(cd.getCartColorId(), sg.getSettGiftFillColorId())){//添加赠送产品
|
|
|
|
+ CartDto cartDto = new CartDto();
|
|
|
|
+ cartDto.setCartColorId(sg.getSettGiftGiftColorId());
|
|
|
|
+ Integer num = sg.getSettGiftNum();
|
|
|
|
+ if(sg.getSettGiftNum() < 1){ //判断赠送数量,大于0就用该数量
|
|
|
|
+ num = cd.getCartNum();
|
|
|
|
+ }
|
|
|
|
+ cartDto.setCartNum(num);
|
|
|
|
+ cartDto.setProductDiscount(sg.getSettGiftPrice());
|
|
|
|
+ cartDto.setProductPrice(sg.getSettGiftPrice());
|
|
|
|
+ cartDto.setTotal(sg.getSettGiftPrice()*num);
|
|
|
|
+ giftList.add(cartDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<CartDto> newGiftList = new ArrayList<>();
|
|
|
|
+ if(giftList != null && giftList.size() > 0){
|
|
|
|
+ for (CartDto carD:giftList) {
|
|
|
|
+ boolean fl = false;
|
|
|
|
+ for(CartDto newCarD:newGiftList) {
|
|
|
|
+ if(Objects.equals(newCarD.getCartColorId(), carD.getCartColorId())){ //赠品相同,合并
|
|
|
|
+ fl = true;
|
|
|
|
+ newCarD.setCartNum(newCarD.getCartNum() + carD.getCartNum());
|
|
|
|
+ newCarD.setProductDiscount(newCarD.getProductDiscount() + carD.getProductDiscount());
|
|
|
|
+ newCarD.setProductPrice( newCarD.getProductPrice() + carD.getProductPrice());
|
|
|
|
+ newCarD.setTotal(newCarD.getTotal() + carD.getTotal());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(!fl){
|
|
|
|
+ Product product = productInfoService.selectProductByColorId(carD.getCartColorId());
|
|
|
|
+ carD.setCartId(1);
|
|
|
|
+ carD.setCartProductId(product.getProductId());
|
|
|
|
+ carD.setProductName("【赠品】"+product.getProductName());
|
|
|
|
+ carD.setProductType(product.getProductTypeId());
|
|
|
|
+ carD.setProductStatus(1);
|
|
|
|
+ carD.setColorStatus(1);
|
|
|
|
+ carD.setProductIntroduceImg(product.getColorProductPic());
|
|
|
|
+ carD.setProductRemark(product.getColorPresent());
|
|
|
|
+ carD.setProductColor(product.getColorName());
|
|
|
|
+ carD.setProductIntroduceImg(product.getColorProductPic()); //productIntroduceImg
|
|
|
|
+ carD.setProductChildType(product.getProductChildTypeId()); //productChildType
|
|
|
|
+ carD.setCartIsSource(1);
|
|
|
|
+ CartDto newCartDto = new CartDto();
|
|
|
|
+ BeanUtils.copyProperties(carD,newCartDto);
|
|
|
|
+ newGiftList.add(newCartDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(newGiftList != null && newGiftList.size() > 0){
|
|
|
|
+ cartDtoList.addAll(newGiftList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|