|
@@ -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) {
|
|
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);
|
|
User user = userMapper.findUserById(userId);
|
|
|
|
+ /**获取用户包邮卡*/
|
|
|
|
+ FreePostageCard freePostageCard = orderMapper.queryFree(userId);
|
|
if (null == user) {
|
|
if (null == user) {
|
|
return wxJsonModel.error("1000", "用户账户异常");
|
|
return wxJsonModel.error("1000", "用户账户异常");
|
|
}
|
|
}
|
|
Integer clubID = user.getClubID();
|
|
Integer clubID = user.getClubID();
|
|
|
|
+ boolean isIncludedInstruments = false;//是否包含仪器(默认不包含仪器)
|
|
|
|
+ boolean isIncludedProduct = false;//是否包含商品(默认不包含仪器)
|
|
|
|
+ CmOrder cmOrder = new CmOrder();
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
String dateStr = sdf.format(date);
|
|
String dateStr = sdf.format(date);
|
|
@@ -249,29 +254,38 @@ public class OrderServiceImpl implements OrderService {
|
|
double productFee = retailPrice * productNum;//单个商品的金额
|
|
double productFee = retailPrice * productNum;//单个商品的金额
|
|
//统计商品总金额
|
|
//统计商品总金额
|
|
productTotalFee += productFee;
|
|
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;
|
|
payTotalFee = productTotalFee;
|
|
BigDecimal bdPayTotalFee = new BigDecimal(payTotalFee);
|
|
BigDecimal bdPayTotalFee = new BigDecimal(payTotalFee);
|
|
cmOrder.setStatus(11);//待收款待发货(设置初始化状态)
|
|
cmOrder.setStatus(11);//待收款待发货(设置初始化状态)
|
|
cmOrder.setReceiptStatus("1");//(收款买家)收款状态:1待收款、2部分收款、3已收款(设置初始化状态)
|
|
cmOrder.setReceiptStatus("1");//(收款买家)收款状态:1待收款、2部分收款、3已收款(设置初始化状态)
|
|
cmOrder.setPayFlag("0");//是否已支付 未支付0 已支付1(设置初始化状态)
|
|
cmOrder.setPayFlag("0");//是否已支付 未支付0 已支付1(设置初始化状态)
|
|
|
|
+
|
|
/**判断余额使用*/
|
|
/**判断余额使用*/
|
|
if (StringUtils.equals("1", balanceDeductionFlag)) {//勾选余额抵扣
|
|
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.setOrderNo(NoUtils.getCmOrderNo("X"));
|
|
cmOrder.setOrganizeID(organizeID);
|
|
cmOrder.setOrganizeID(organizeID);
|
|
cmOrder.setUserID(userId);
|
|
cmOrder.setUserID(userId);
|
|
@@ -352,8 +369,8 @@ public class OrderServiceImpl implements OrderService {
|
|
cmOrder.setOnlinePayFlag("0");//是否能走线上支付 0可以 1不可以 只能线下
|
|
cmOrder.setOnlinePayFlag("0");//是否能走线上支付 0可以 1不可以 只能线下
|
|
|
|
|
|
cmOrder.setShopOrderIDs("");//子订单ID
|
|
cmOrder.setShopOrderIDs("");//子订单ID
|
|
- cmOrder.setInvoiceFlag("");//是否开发票 没开发票0 /开个人发票1 /开企业发票2
|
|
|
|
- cmOrder.setFreePostFlag("");//免邮标志 运费:-1到付,0包邮,1需要运费,-2仪器到付其它包邮
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
//保存子订单
|
|
//保存子订单
|
|
|
|
|