|
@@ -160,7 +160,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public boolean addOrderInfoToEfast(MQMessage message) throws Exception {
|
|
|
+ public boolean addOrderInfoToEfast(MQMessage message) {
|
|
|
logger.info("推送订单开始,订单号:"+message.getServiceToMessage());
|
|
|
|
|
|
// orderInfo
|
|
@@ -176,24 +176,28 @@ public class EfastOrderServiceImpl implements EfastOrderService {
|
|
|
|
|
|
// set Requeset Data
|
|
|
Map<String, String> requestData = new HashMap<String, String>();
|
|
|
-
|
|
|
- int money = order.getSalesYetAmount();
|
|
|
-
|
|
|
- if (order.getCouponId() != null && !"".equals(order.getCouponId())) {
|
|
|
- CouponItem couponItem = new CouponItem();
|
|
|
- couponItem.setCouponItemId(order.getCouponId());
|
|
|
- couponItem.setCouponItemUseropenid(order.getSalesOpenid());
|
|
|
- CouponType couponType = cartService.getCouponReduceByItemId(couponItem);
|
|
|
- if (null != couponType) {
|
|
|
- switch (couponType.getCouponType()) {
|
|
|
- case 1:
|
|
|
- money += couponType.getCouponReduce();
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- money += order.getSalesAmount() * couponType.getCouponReduce()/100;
|
|
|
- break;
|
|
|
- }
|
|
|
+
|
|
|
+ //总优惠
|
|
|
+ Double couponMoney = Double.valueOf(order.getSalesAmount() - order.getSalesYetAmount());
|
|
|
+
|
|
|
+ //计算分摊优惠
|
|
|
+ //R(X1) = X1 / X1+X2+…X(n) * reduce 订单项分摊优惠
|
|
|
+ Integer allcouponMoney = order.getSalesAmount() - order.getSalesYetAmount();
|
|
|
+ Integer salesYetAmount = order.getSalesYetAmount();
|
|
|
+ double yetAmount = order.getSalesAmount();
|
|
|
+ for (int k=0;k<items.size();k++) {
|
|
|
+ Double itemTotal = Double.valueOf(items.get(k).getItemTotal());
|
|
|
+ Double itemPayMonry = itemTotal / yetAmount * couponMoney; //在第K项使用的优惠
|
|
|
+
|
|
|
+ Integer newItemTotal = items.get(k).getItemTotal();
|
|
|
+ if((k+1) == items.size()){
|
|
|
+ newItemTotal -= allcouponMoney;
|
|
|
+ }else{
|
|
|
+ Integer newPayMonry = (itemPayMonry.intValue()/100)*100;
|
|
|
+ allcouponMoney = allcouponMoney - newPayMonry; //总优惠减去 第K项使用的优惠
|
|
|
+ newItemTotal -= newPayMonry;
|
|
|
}
|
|
|
+ items.get(k).setItemTotal(newItemTotal);
|
|
|
}
|
|
|
|
|
|
requestData.put("app_act", "rst.trade.new.add");
|
|
@@ -233,21 +237,21 @@ public class EfastOrderServiceImpl implements EfastOrderService {
|
|
|
orderData.put("goods_amount", order.getSalesAmount()); // 产品总价
|
|
|
orderData.put("goods_count", items.size()); // 产品数量
|
|
|
orderData.put("mobile", order.getSalesAddressTel()); // 手机号码
|
|
|
- orderData.put("money_paid", money); // 已付款
|
|
|
orderData.put("oid", order.getSalesOrderid()); // 订单号
|
|
|
- orderData.put("order_amount", order.getSalesAmount()); // 订单金额
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 产品信息
|
|
|
*/
|
|
|
List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
|
|
|
for (OrderItem item : items) {
|
|
|
Map<String, Object> orders1 = new HashMap<String, Object>();
|
|
|
- orders1.put("goods_name", item.getItemProductName()); // 产品名称
|
|
|
- orders1.put("goods_number", item.getItemNum()); // 产品数量
|
|
|
- orders1.put("goods_price", item.getItemProductPrice()); // 产品原价
|
|
|
- orders1.put("outer_sku", item.getProduectRemark()); // 产品SKU
|
|
|
- orders1.put("payment_ft", item.getItemProductDiscount()); // 产品分摊价
|
|
|
+ orders1.put("goods_name", item.getItemProductName()); // 产品名称
|
|
|
+ orders1.put("goods_number", item.getItemNum()); // 产品数量
|
|
|
+ orders1.put("goods_price", (item.getItemProductPrice())); // 产品原价
|
|
|
+ orders1.put("goods_discount", (item.getItemProductDiscount())); // 产品售价
|
|
|
+ orders1.put("goods_total", (item.getItemTotal())); // 产品售价
|
|
|
+ orders1.put("outer_sku", item.getProduectRemark()); // 产品SKU
|
|
|
+// orders1.put("payment_ft", item.getItemProductDiscount()); // 产品分摊价
|
|
|
maps.add(orders1);
|
|
|
}
|
|
|
|
|
@@ -265,9 +269,11 @@ public class EfastOrderServiceImpl implements EfastOrderService {
|
|
|
orderData.put("shipping_name", "yto"); // 快递公司代码
|
|
|
orderData.put("tel", order.getSalesAddressTel()); // 我司电话
|
|
|
orderData.put("to_buyer", ""); // 商家备注
|
|
|
- orderData.put("total_amount", order.getSalesAmount()); // 商家备注
|
|
|
orderData.put("user_name", order.getSalesOpenid()); // 买家账户 百胜根据user_name来判断是否有重复,传openId是为了防止重复
|
|
|
- orderData.put("zipcode", order.getSalesAddressPostnum()); // 邮编
|
|
|
+ orderData.put("zipcode", order.getSalesAddressPostnum()); // 邮编
|
|
|
+ orderData.put("total_amount", (order.getSalesAmount())); // 订单总额
|
|
|
+ orderData.put("money_paid", order.getSalesYetAmount()); // 已付款
|
|
|
+ orderData.put("order_amount", order.getSalesYetAmount()); // 应付款,应付款金额要与已付款金额相同
|
|
|
|
|
|
|
|
|
com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
|
|
@@ -297,10 +303,10 @@ public class EfastOrderServiceImpl implements EfastOrderService {
|
|
|
}
|
|
|
}
|
|
|
logger.error(this, "add-推送订单失败,订单号为:" + order.getSalesOrderid() + "的订单,RST返回信息:" + result);
|
|
|
- throw new Exception(jsonObject.getString("msg"));
|
|
|
+ return true;
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- throw e;
|
|
|
+ return false;
|
|
|
}
|
|
|
}
|
|
|
|