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); }