|
@@ -240,7 +240,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
boolean isPaySuccessFlag = false;//是完成支付(默认不是,只有余额抵扣才算)
|
|
|
CmOrder cmOrder = new CmOrder();
|
|
|
List<CmOrderProduct> orderProductList = new ArrayList<>();//整理订单商品列表
|
|
|
-// List<Integer> shopIDs = new ArrayList<>();//整理子订单列表
|
|
|
HashMap<Integer, String> shopIDs = new HashMap<>();
|
|
|
Date date = new Date();
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
@@ -261,10 +260,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Object productInfo = shopOrderInfo.get("productInfo");//一个子订单对应的商品信息
|
|
|
if (null == shopId) return wxJsonModel.error("-1", "供应商数据异常");
|
|
|
if (null == productInfo) return wxJsonModel.error("-1", "订单商品数据异常");
|
|
|
-// shopIDs.add(shopId);
|
|
|
- shopIDs.put(shopId,note);
|
|
|
+ shopIDs.put(shopId, note);
|
|
|
|
|
|
- //获取子订单商品信息
|
|
|
+ /**获取子订单商品信息*/
|
|
|
List<Map<String, Object>> productInfoList = (List<Map<String, Object>>) productInfo;
|
|
|
if (!CollectionUtils.isEmpty(productInfoList)) {
|
|
|
for (Map<String, Object> product : productInfoList) {//遍历所有商品
|
|
@@ -296,8 +294,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
cmOrderProduct.setOrganizeProductID(cmOrganizeProducts.getId());
|
|
|
cmOrderProduct.setOrganizeID(organizeID);
|
|
|
//预留在保存保存子订单的时候添加
|
|
|
-// cmOrderProduct.setShopOrderID(0);
|
|
|
-// cmOrderProduct.setShopOrderNo("");
|
|
|
cmOrderProduct.setProductNo(null);
|
|
|
cmOrderProduct.setNum(productNum);
|
|
|
cmOrderProduct.setPresentNum(0);
|
|
@@ -406,6 +402,14 @@ public class OrderServiceImpl implements OrderService {
|
|
|
cmOrder.setPayTime(dateStr);//支付时间
|
|
|
|
|
|
}
|
|
|
+ } else {
|
|
|
+ payableAmount = new BigDecimal(payTotalFee);//无余额支付的时就是真实支付金额
|
|
|
+ }
|
|
|
+
|
|
|
+ /**判断前端传入orderShouldPayFee订单应付金额,和后台计算应付金额对比*/
|
|
|
+ double v = payableAmount.subtract(new BigDecimal(orderShouldPayFee)).doubleValue();
|
|
|
+ if (v > -0.1d || v < 0.1d) {
|
|
|
+ return wxJsonModel.error("-1", "订单付款金额异常");
|
|
|
}
|
|
|
|
|
|
/**判断发票使用*/
|
|
@@ -455,9 +459,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
//保存住订单数据
|
|
|
orderMapper.insert(cmOrder);
|
|
|
Integer orderID = cmOrder.getOrderID();
|
|
|
- logger.info(">>>>>orderID:"+orderID);
|
|
|
+ logger.info(">>>>>orderID:" + orderID);
|
|
|
|
|
|
- if(useBalanceFlag){
|
|
|
+ if (useBalanceFlag) {
|
|
|
/**添加余额收支记录*/
|
|
|
CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
|
|
|
cmUserBalanceRecord.setUserId(userId);
|
|
@@ -470,13 +474,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
userMapper.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- /**保存子订单后更新主订单信息*/
|
|
|
- cmOrder.setShopOrderIDs("");//子订单ID:1000,1002
|
|
|
-
|
|
|
/**保存订单商品*/
|
|
|
- for(CmOrderProduct product:orderProductList){//循环插入数据
|
|
|
+ for (CmOrderProduct product : orderProductList) {//循环插入数据
|
|
|
product.setOrderID(orderID);
|
|
|
product.setOrderNo(orderNo);
|
|
|
//保存订单商品数据
|
|
@@ -491,7 +490,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Integer shopID = shopOrder.getKey();
|
|
|
String note = shopOrder.getValue();
|
|
|
|
|
|
-
|
|
|
/**统计子订单金额信息*/
|
|
|
CmOrderProduct cmOrderProduct = new CmOrderProduct();
|
|
|
cmOrderProduct.setOrderID(cmOrder.getOrderID());
|
|
@@ -502,20 +500,15 @@ public class OrderServiceImpl implements OrderService {
|
|
|
BigDecimal productAmount = new BigDecimal(0); //商品总金额
|
|
|
BigDecimal needPayAmount = new BigDecimal(0);//需要支付金额
|
|
|
BigDecimal preferential = new BigDecimal(0);// 优惠金额
|
|
|
- BigDecimal fee = new BigDecimal(0);//运费
|
|
|
BigDecimal brokerage = new BigDecimal(0);//佣金
|
|
|
Double shopProductAmount = 0D;//商品费
|
|
|
- Double shopTaxFee = 0D; //付给供应商税费
|
|
|
- Integer itemCount = 0;//总数
|
|
|
Integer buyNum = 0;//总购买数
|
|
|
- Integer presentNum = 0;//总赠送数
|
|
|
//计算子订单信息
|
|
|
for (CmOrderProduct orderProduct : cmOrderProductList) {
|
|
|
productAmount = MathUtil.add(productAmount, orderProduct.getTotalAmount());//商品总金额 包括赠品
|
|
|
totalAmount = MathUtil.add(totalAmount, orderProduct.getTotalFee());//订单总金额 包括税费
|
|
|
needPayAmount = MathUtil.add(needPayAmount, orderProduct.getShouldPayFee()); //应付金额
|
|
|
buyNum += orderProduct.getNum();//总购买数
|
|
|
- itemCount += (orderProduct.getNum() + orderProduct.getPresentNum());
|
|
|
preferential = MathUtil.add(preferential, orderProduct.getPreferential());
|
|
|
brokerage = MathUtil.add(brokerage, orderProduct.getCmFee());
|
|
|
shopProductAmount += (orderProduct.getShopProductAmount() == null ? 0D : orderProduct.getShopProductAmount());
|
|
@@ -583,30 +576,28 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
|
|
|
//更新主订单信息
|
|
|
- cmOrder.setShopOrderIDs(shopOrderIDs);
|
|
|
+ cmOrder.setShopOrderIDs(shopOrderIDs);//子订单ID:1000,1002
|
|
|
orderMapper.update(cmOrder);
|
|
|
|
|
|
- //地址信息
|
|
|
+ //保存地址信息
|
|
|
|
|
|
- //发票信息
|
|
|
-
|
|
|
- //获取用户最新余额,判断是否存在
|
|
|
+ //保存发票信息
|
|
|
|
|
|
//提交订单完成后清理购物车(用户ID,商品ID)
|
|
|
if (StringUtils.equals("1", cartType)) {//购物车提交后清理购物车
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- Map<String,String> info = new HashMap<>();
|
|
|
+ Map<String, String> info = new HashMap<>();
|
|
|
info.put("orderID", String.valueOf(cmOrder.getOrderID()));
|
|
|
info.put("orderNo", String.valueOf(cmOrder.getOrderNo()));
|
|
|
- info.put("orderMark", "#"+String.valueOf(cmOrder.getOrderID())+"#");
|
|
|
+ info.put("orderMark", "#" + String.valueOf(cmOrder.getOrderID()) + "#");
|
|
|
info.put("payTotalFee", String.valueOf(cmOrder.getPayTotalFee()));//应付订单金额
|
|
|
info.put("payableAmount", String.valueOf(cmOrder.getPayableAmount()));//真实需要付款金额
|
|
|
- if(isPaySuccessFlag){//余额抵扣成功
|
|
|
- return wxJsonModel.success("1",info,"提交成功且已支付");//1提交成功[且支付完成]
|
|
|
- }else{
|
|
|
- return wxJsonModel.success("2",info,"提交成功但未支付");
|
|
|
+ if (isPaySuccessFlag) {//余额抵扣成功
|
|
|
+ return wxJsonModel.success("1", info, "提交成功且已支付");//1提交成功[且支付完成]
|
|
|
+ } else {
|
|
|
+ return wxJsonModel.success("2", info, "提交成功但未支付");
|
|
|
}
|
|
|
}
|
|
|
|