From 271ae63c20fcbe28d29c47f1881138ff6551a2a1 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 10 六月 2020 19:26:26 +0800 Subject: [PATCH] 唯品会订单bug修复,APP端佣金比例展示错误bug修复 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 2 + fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java | 11 +++++ fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java | 2 fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java | 10 ++++ fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java | 7 ++- fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java | 15 +++++-- fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java | 2 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java | 1 fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java | 10 ++++- fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java | 11 +++++ fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java | 28 +++++++------ 11 files changed, 73 insertions(+), 26 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java index 32bc51f..2c919c5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java @@ -111,6 +111,7 @@ root.put("count", 1000); out.print(JsonUtil.loadTrueResult(root)); } catch (Exception e) { + e.printStackTrace(); out.print(JsonUtil.loadFalseResult("鑾峰彇鍑洪敊")); } } diff --git a/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java index 73f850b..72a9576 100644 --- a/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java +++ b/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java @@ -13,6 +13,7 @@ import com.yeshi.fanli.dto.vipshop.VipShopQueryOrderResultDTO; import com.yeshi.fanli.entity.vipshop.VipShopOrder; import com.yeshi.fanli.exception.vipshop.VipShopOrderException; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.order.vipshop.VipShopOrderService; import com.yeshi.fanli.util.RedisKeyEnum; import com.yeshi.fanli.util.RedisManager; @@ -45,12 +46,16 @@ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.VIPShopOrder, order.getOrderSn() + ""); String result = redisManager.getCommonString(key); // 鍒ゆ柇 - if (StringUtil.isNullOrEmpty(result)) { +// if (StringUtil.isNullOrEmpty(result)) { VipShopOrderCMQManager.getInstance().addVipShopOrder(order.getOrderSn() + ""); redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂� - } + LogHelper.test("鍞搧浼氳鍗曟秷鎭彂閫佹垚鍔�"); +// }else{ +// LogHelper.test("鍞搧浼氳鍗曢鐜囬檺鍒�"); +// } } catch (VipShopOrderException e) { e.printStackTrace(); + LogHelper.errorDetailInfo(e); } } } @@ -60,6 +65,7 @@ */ @XxlJob("updateVipShopOrderHandler") public ReturnT<String> updateVipShopSoonOrder(String param) throws Exception { + LogHelper.test("updateVipShopOrderHandler:"+param); long endTime = System.currentTimeMillis(); if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟 updateByOrderTime(endTime - 1000 * 60 * 60 * 1L, endTime); diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java index a43daf9..36c0d49 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java @@ -1270,7 +1270,7 @@ { SuningGoodsInfo pddGoods = null; // TODO 闇�瑕佽幏鍙� - pddGoods = SuningApiUtil.getGoodsDetail(suningOrderInfo.getGoodsNum(), "00000000"); + pddGoods = SuningApiUtil.getGoodsDetail(suningOrderInfo.getGoodsNum(), suningOrderInfo.getSellerCode()); if (pddGoods != null) { cog = CommonOrderGoodsFactory.create(pddGoods); } diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java index 91eed5c..3ff3530 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java @@ -1191,8 +1191,10 @@ @Override public void processVipShopOrder(VipShopOrder order) { + if (order == null || order.getDetailList() == null || order.getDetailList().size() == 0) return; + // 鏍规嵁ext1涓巗ubUnionId璺熷崟 String channelTag = order.getChannelTag(); diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java index ba117b9..e31d5af 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java @@ -28,7 +28,7 @@ PDDOrder old = pddOrderMapper.selectByOrderSN(order.getOrderSn()); if (old != null) { // 鏇存柊璁㈠崟淇℃伅 - if (order.getOrderStatus().intValue() != old.getOrderStatus()) {// 鐘舵�佹敼鍙樹簡鎵嶆洿鏀硅鍗曚俊鎭� + if ((order.getOrderStatus().intValue() != old.getOrderStatus())||(old.getOrderStatus()==2 && old.getOrderReceiveTime()==null)) {// 鐘舵�佹敼鍙樹簡鎵嶆洿鏀硅鍗曚俊鎭� PDDOrder update = new PDDOrder(); update.setId(old.getId()); update.setOrderStatus(order.getOrderStatus()); diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java index bfe40b0..c365a3c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java @@ -127,6 +127,17 @@ } @Override + public List<VipShopOrder> listDetailByOrderSn(String orderSn) { + List<VipShopOrder> list = new ArrayList<>(); + VipShopOrder order = vipShopOrderMapper.selectByOrderSn(orderSn); + if (order == null) + return null; + order = selectDetailByPrimaryKey(order.getId()); + list.add(order); + return list; + } + + @Override public VipShopOrder selectDetailByPrimaryKey(Long orderId) { VipShopOrder order = vipShopOrderMapper.selectByPrimaryKey(orderId); if (order == null) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java b/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java index 7c2c8b6..614b05c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java @@ -31,6 +31,17 @@ * @return */ public List<VipShopOrder> listByOrderSn(String orderSn); + + /** + * 鏍规嵁璁㈠崟鍙锋煡璇� + * @Title: listDetailByOrderSn + * @Description: + * @param orderSn + * @return + * List<VipShopOrder> 杩斿洖绫诲瀷 + * @throws + */ + public List<VipShopOrder> listDetailByOrderSn(String orderSn); /** * 鏍规嵁涓婚敭鏌ヨ(鍖呭惈瀛愯鍗�) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java index f6d1edd..c45e71f 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java @@ -34,9 +34,11 @@ BigDecimal money = null; if (StringUtil.isNullOrEmpty(goods.getCouponInfo()) || goods.getCouponInfo().trim().equalsIgnoreCase("鏃�")) { + BigDecimal price = goods.getPrice(); money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil - .mul(MoneyBigDecimalUtil.mul(goods.getPrice(), goods.getRate()), new BigDecimal("0.01")), + .mul(MoneyBigDecimalUtil.mul(price, goods.getRate()), new BigDecimal("0.01")), MoneyBigDecimalUtil.div(rate, new BigDecimal(100))); + } else// 鏈夊埜 { List<BigDecimal> list = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo()); @@ -54,6 +56,12 @@ MoneyBigDecimalUtil.div(rate, new BigDecimal(100))); } } + + if (goods.getGoodsType() == Constant.SOURCE_TYPE_VIP) { + money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil + .mul(MoneyBigDecimalUtil.mul(goods.getCouponStartPrice(), goods.getRate()), new BigDecimal("0.01")), + MoneyBigDecimalUtil.div(rate, new BigDecimal(100))); + } // 浜笢鍟嗗搧鐗规畩澶勭悊 if (goods.getGoodsType() == Constant.SOURCE_TYPE_JD) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java b/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java index edeabbb..9d172f9 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java @@ -735,8 +735,9 @@ String key = its.next(); try { String orderId = map.get(key); + LogHelper.test("鍞搧浼氳鍗曟秷璐�:"+orderId); if (!StringUtil.isNullOrEmpty(orderId)) { - List<VipShopOrder> orderList = vipShopOrderService.listByOrderSn(orderId); + List<VipShopOrder> orderList = vipShopOrderService.listDetailByOrderSn(orderId); if (orderList != null) for (VipShopOrder order : orderList) orderProcessService.processVipShopOrder(order); @@ -748,7 +749,7 @@ } } } catch (Exception e) { - LogHelper.error("鍞搧浼氳鍗�:" + e.getMessage()); + LogHelper.errorDetailInfo(e); } } } @@ -783,7 +784,7 @@ } } } catch (Exception e) { - LogHelper.error("鑻忓畞璁㈠崟:" + e.getMessage()); + LogHelper.errorDetailInfo(e); } } } diff --git a/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java b/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java index edfd68d..60f510a 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java @@ -137,7 +137,7 @@ goodsInfo.setPriceName("鎷煎洟浠�"); goodsInfo.setBaoyou(true); } else if (goodsType == Constant.SOURCE_TYPE_SUNING) { - goodsInfo.setSalesType(1); + goodsInfo.setSalesType(1); goodsInfo.setGoodsId(SuningUtil.getConcatGoodsIId(SuningUtil.getFullSupplierCode(goods.getSellerId() + ""), goods.getGoodsId() + "")); } else { @@ -299,16 +299,16 @@ moneyInfoVO.setMaxMoney("楼" + taoBaoHongBaoInfo.getHongbao() .add(MoneyBigDecimalUtil.mul(taoBaoHongBaoInfo.getHongbao(), params.getMaxRewardRate()))); else - moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false)); + moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(), false)); } else { - BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(),false); + BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(), false); moneyInfoVO.setFanliMoney("楼" + commission); if (params.getMaxRewardRate() != null) moneyInfoVO.setMaxMoney( "楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate()))); else - moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false)); - moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(),true)); + moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(), false)); + moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(), true)); } goodsInfo.setMoneyInfo(moneyInfoVO); @@ -432,10 +432,10 @@ MoneyInfoVO moneyInfoVO = new MoneyInfoVO(); moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6 - BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(),false); + BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(), false); BigDecimal baseCommisstion = null; if (params.getBaseFanliRate() != null) - baseCommisstion = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getBaseFanliRate(),false); + baseCommisstion = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getBaseFanliRate(), false); moneyInfoVO.setFanliMoney("楼" + commission); if (params.getMaxRewardRate() != null) moneyInfoVO @@ -446,7 +446,7 @@ BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price); moneyInfoVO.setRateInfo("杩斿埄姣� " + rate + "%"); - BigDecimal maxCommission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false); + BigDecimal maxCommission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(), false); BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price); moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + maxRate + "%"); moneyInfoVO.setMaxMoney("楼" + maxCommission); @@ -460,7 +460,7 @@ } } - moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(),true)); + moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(), true)); goodsInfo.setMoneyInfo(moneyInfoVO); @@ -979,8 +979,7 @@ goodsInfo.setPriceName("鍘熶环"); if (goods.getCommodityInfo().getPictureUrl().size() > 0) goodsInfo.setPicUrl(goods.getCommodityInfo().getPictureUrl().get(0).getPicUrl()); // 缂╃暐鍥� - - + String commodityPrice = goods.getCommodityInfo().getCommodityPrice(); if (StringUtil.isNullOrEmpty(commodityPrice)) { commodityPrice = goods.getCommodityInfo().getSnPrice(); @@ -1011,7 +1010,10 @@ if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {// 鏈夊埜 CouponInfoVO coupon = new CouponInfoVO(); coupon.setAmount(new BigDecimal(goods.getCouponInfo().getCouponValue())); - coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getBounsLimit())); + if (StringUtil.isNullOrEmpty(goods.getCouponInfo().getBounsLimit())) { + coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getCouponValue())); + } else + coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getBounsLimit())); if (goods.getCouponInfo().getCouponStartTime() != null) { coupon.setStartTime(goods.getCouponInfo().getCouponStartTime()); @@ -1032,7 +1034,7 @@ if (goodsInfo.getZkPrice().compareTo(coupon.getStartFee()) >= 0) { goodsInfo.setCouponPrice(goodsInfo.getZkPrice().subtract(coupon.getAmount())); - }else{ + } else { goodsInfo.setCouponPrice(goodsInfo.getZkPrice()); } diff --git a/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java index 2cd2165..f0a5d26 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java @@ -14,7 +14,7 @@ BigDecimal hundred = new BigDecimal(100); rate = MoneyBigDecimalUtil.div(rate, hundred); - + String commodityPrice = goods.getCommodityInfo().getCommodityPrice(); if (StringUtil.isNullOrEmpty(commodityPrice)) { commodityPrice = goods.getCommodityInfo().getSnPrice(); @@ -23,14 +23,19 @@ BigDecimal afterUseCouponPrice = new BigDecimal(commodityPrice); if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) { // 鏈夊埜 - BigDecimal startPrice = new BigDecimal(goods.getCouponInfo().getBounsLimit()); + BigDecimal startPrice = null; + if (StringUtil.isNullOrEmpty(goods.getCouponInfo().getBounsLimit())) { + startPrice = new BigDecimal(goods.getCouponInfo().getCouponValue()); + } else + startPrice = new BigDecimal(goods.getCouponInfo().getBounsLimit()); if (afterUseCouponPrice.compareTo(startPrice) >= 0) { - afterUseCouponPrice = afterUseCouponPrice.subtract(startPrice); + afterUseCouponPrice = afterUseCouponPrice.subtract(new BigDecimal(goods.getCouponInfo().getCouponValue())); } } + + BigDecimal commission=MoneyBigDecimalUtil.mul(afterUseCouponPrice,MoneyBigDecimalUtil.div(new BigDecimal(goods.getCommodityInfo().getRate()), new BigDecimal(100),5)); - BigDecimal money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.div( - afterUseCouponPrice.multiply(new BigDecimal(goods.getCommodityInfo().getRate())), new BigDecimal(100)), + BigDecimal money = MoneyBigDecimalUtil.mul(commission, rate); return BigDecimalUtil.getWithNoZera(money).setScale(2); } -- Gitblit v1.8.0