admin
2020-06-10 271ae63c20fcbe28d29c47f1881138ff6551a2a1
唯品会订单bug修复,APP端佣金比例展示错误bug修复
11个文件已修改
99 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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("获取出错"));
        }
    }
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);
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);
                }
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与subUnionId跟单
        String channelTag = order.getChannelTag();
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());
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)
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);
    /**
     * 根据主键查询(包含子订单)
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)
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);
                    }
                }
            }
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());
            }
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);
    }