lijun 5 år sedan
förälder
incheckning
65b16197b5
1 ändrade filer med 36 tillägg och 19 borttagningar
  1. 36 19
      src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

+ 36 - 19
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -209,10 +209,15 @@ public class OrderServiceImpl implements OrderService {
     public WxJsonModel saveOrderInfo(WxJsonModel wxJsonModel, Integer userId, Integer organizeID, String cartType, Integer addressID, Object orderInfo, String balanceDeductionFlag, Double orderShouldPayFee, Integer cmOperationID) {
         /**获取用户信息*/
         User user = userMapper.findUserById(userId);
+        /**获取用户包邮卡*/
+        FreePostageCard freePostageCard = orderMapper.queryFree(userId);
         if (null == user) {
             return wxJsonModel.error("1000", "用户账户异常");
         }
         Integer clubID = user.getClubID();
+        boolean isIncludedInstruments = false;//是否包含仪器(默认不包含仪器)
+        boolean isIncludedProduct = false;//是否包含商品(默认不包含仪器)
+        CmOrder cmOrder = new CmOrder();
         Date date = new Date();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String dateStr = sdf.format(date);
@@ -249,29 +254,38 @@ public class OrderServiceImpl implements OrderService {
                         double productFee = retailPrice * productNum;//单个商品的金额
                         //统计商品总金额
                         productTotalFee += productFee;
-
-
-                        FreePostageCard freePostageCard = orderMapper.queryFree(userId);
-                        String freight = "";
-                        if (freePostageCard != null && classifyID == 3) {
-                            freight = "仪器到付,产品包邮";
-                        } else if (freePostageCard != null) {
-                            freight = "包邮";
-                        } else {
-                            freight = "到付";
+                        if(classifyID == 3 && !isIncludedInstruments){//判断是否存在仪器
+                            isIncludedInstruments = true;
+                        }
+                        if(classifyID != 3 && !isIncludedProduct){//判断是否存在商品
+                            isIncludedProduct = true;
                         }
-
                     }
                 }
             }
-            CmOrder cmOrder = new CmOrder();
 
-            //统计订单应付总金额
+            /**判断免邮标志*/
+            if(isIncludedInstruments){//包括仪器
+                if(isIncludedProduct && null != freePostageCard){//包含商品且有包邮卡
+                    cmOrder.setFreePostFlag("-2");//免邮标志:-1到付,0包邮,1需要运费,-2仪器到付其它包邮【小程序只存在-1,0,-2】
+                }else{//(1包含商品无包邮卡,2不包含商品)
+                    cmOrder.setFreePostFlag("-1");
+                }
+            }else{//不包括仪器
+                if(isIncludedProduct && null != freePostageCard){//无仪器包含商品且有包邮卡
+                    cmOrder.setFreePostFlag("0");//免邮标志:-1到付,0包邮,1需要运费,-2仪器到付其它包邮【小程序只存在-1,0,-2】
+                }else{//(1无仪器包含商品无包邮卡)
+                    cmOrder.setFreePostFlag("-1");
+                }
+            }
+
+            /**统计订单应付总金额*/
             payTotalFee = productTotalFee;
             BigDecimal bdPayTotalFee = new BigDecimal(payTotalFee);
             cmOrder.setStatus(11);//待收款待发货(设置初始化状态)
             cmOrder.setReceiptStatus("1");//(收款买家)收款状态:1待收款、2部分收款、3已收款(设置初始化状态)
             cmOrder.setPayFlag("0");//是否已支付 未支付0 已支付1(设置初始化状态)
+
             /**判断余额使用*/
             if (StringUtils.equals("1", balanceDeductionFlag)) {//勾选余额抵扣
                 //获取用户最新余额
@@ -312,11 +326,14 @@ public class OrderServiceImpl implements OrderService {
             }
 
             /**判断发票使用*/
+            UserInvoiceInfo info = personalMapper.findInvoice(userId);
+            if(null != info){
+                cmOrder.setInvoiceFlag("2");//是否开发票 没开发票0 /开个人发票1 /开企业发票2【小程序目前只存在0,2】
+            }else{
+                cmOrder.setInvoiceFlag("0");
+            }
 
-            /**判断免邮标志*/
-
-
-            //初始化主订单参数
+            /**初始化主订单参数*/
             cmOrder.setOrderNo(NoUtils.getCmOrderNo("X"));
             cmOrder.setOrganizeID(organizeID);
             cmOrder.setUserID(userId);
@@ -352,8 +369,8 @@ public class OrderServiceImpl implements OrderService {
             cmOrder.setOnlinePayFlag("0");//是否能走线上支付 0可以 1不可以 只能线下
 
             cmOrder.setShopOrderIDs("");//子订单ID
-            cmOrder.setInvoiceFlag("");//是否开发票 没开发票0 /开个人发票1 /开企业发票2
-            cmOrder.setFreePostFlag("");//免邮标志  运费:-1到付,0包邮,1需要运费,-2仪器到付其它包邮
+
+
 
             //保存子订单