admin
2020-04-17 087b91bff39bb54d872a181c113cdb41c27cacbe
商家跑路后奖励券赠送修改,饿了么兼容封面图片
6个文件已修改
211 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -1342,6 +1342,7 @@
        PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_FANLI + "", uid + "");
        JSONObject data = new JSONObject();
        data.put("native", true);
        data.put("jumpLink", convertUrl.getUrl());
        data.put("nativeJumpLink", PinDuoDuoUtil.getAndroidNativeURI(convertUrl.getUrl()));
        out.print(JsonUtil.loadTrueResult(data));
fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
@@ -9,6 +9,8 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.fanli.dto.jd.JDOrderResult;
import com.yeshi.fanli.entity.jd.JDOrder;
import com.yeshi.fanli.exception.jd.JDOrderException;
@@ -70,10 +72,9 @@
    /**
     * 快速订单更新(爬取本小时内的单,每分钟一次)
     */
    @Scheduled(cron = "0 0/1 * * * ? ")
    public void updateSoonOrder() {
        if (!Constant.IS_TASK)
            return;
    @XxlJob("updateJDSoonOrderHandler")
    public ReturnT<String> startPreDividents(String param) throws Exception {
        LogHelper.job("开始爬取京东订单");
        long now = System.currentTimeMillis();
@@ -84,6 +85,8 @@
        result = JDApiUtil.getOrderList(1, 200, new Date(now - 1000 * 60 * 60L), JDApiUtil.ORDER_TYPE_CREATETIME);
        if (result != null && result.getOrderList() != null)
            saveJDOrders(result.getOrderList());
        return ReturnT.SUCCESS;
    }
    /**
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -22,6 +22,7 @@
import com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderTradeIdMapMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderGoodsMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
import com.yeshi.fanli.dto.mq.order.body.OrderConfirmMQMsg;
@@ -48,6 +49,7 @@
import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoOrderGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.order.CommonOrderException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
@@ -135,7 +137,7 @@
    @Resource
    private InviteOrderSubsidyService inviteOrderSubsidyService;
    @Resource
    private InviteOrderSubsidyDebtService inviteOrderSubsidyDebtService;
@@ -150,6 +152,9 @@
    @Resource
    private UserLevelManager userLevelManager;
    @Resource
    private TaoBaoOrderGoodsMapper taoBaoOrderGoodsMapper;
    @Resource(name = "producer")
    private Producer orderProducer;
@@ -320,7 +325,7 @@
        // 当前用户是否VIP
        boolean vip = userInviteService.verifyVIP(uid);
        // 是否存在奖励券
        boolean hasRewardCoupon = userSystemCouponService.getValidRebateCoupon(uid);
        for (CommonOrderVO order : listOrder) {
@@ -874,7 +879,6 @@
        return commonOrderMapper.countUserOrderToApp(uid, type, startTime, endTime, day, source, state, stateOrder);
    }
    @Override
    public BigDecimal getWeiQuanMoney(List<TaoBaoWeiQuanOrder> listWQ, int sourceType, Long uid) {
        BigDecimal weiQuanMoney = new BigDecimal(0);
@@ -936,8 +940,14 @@
            if ("饿了么".equalsIgnoreCase(taoBaoOrder.getOrderType())) {
                cog.setGoodsId(taoBaoOrder.getTradeId() + "");
                cog.setGoodsType(Constant.SOURCE_TYPE_ELME);
                cog.setPicture("http://img.flqapp.com/resource/goods/elme_picture_demo.png");
                cog.setTitle(taoBaoOrder.getTitle());
                TaoBaoOrderGoods goods = taoBaoOrderGoodsMapper.selectByTradeId(taoBaoOrder.getTradeId());
                if (goods == null) {
                    cog.setPicture("http://img.flqapp.com/resource/goods/elme_picture_demo.png");
                    cog.setTitle(taoBaoOrder.getTitle());
                } else {
                    cog.setPicture(goods.getImg());
                    cog.setTitle(goods.getTitle());
                }
                newCommonOrder.setCommonOrderGoods(cog);
            } else {
                cog.setGoodsId(taoBaoOrder.getAuctionId() + "");
@@ -1794,7 +1804,6 @@
        return listVO;
    }
    @Override
    public Date getThirdCreateTime(String orderId, int sourceType) {
        List<CommonOrder> list = listBySourceTypeAndOrderId(sourceType, orderId);
@@ -1803,7 +1812,6 @@
        return list.get(0).getThirdCreateTime();
    }
    @Override
    public List<CommonOrderVO> getOrderList(AcceptData acceptData, Integer page, Long uid, Integer state, Integer type,
            Integer orderState, String orderNo, String startTime, String endTime, Integer dateType,
@@ -1837,9 +1845,7 @@
        return commonOrderMapper.countOrderList(uid, state, type, orderState, orderNo, startTime, endTime, dateType,
                listSource);
    }
    /**
     * 订单信息加工
     * 
@@ -1865,7 +1871,7 @@
                    }
                }
            }
            Integer sourceType = order.getSourceType();
            if (sourceType == null) {
                continue;
@@ -1892,7 +1898,6 @@
        if (listPDD.size() > 0) {
            listRecordPDD = userSystemCouponRecordService.getRecordByOrderNoList(Constant.SOURCE_TYPE_PDD, listPDD);
        }
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
        SimpleDateFormat formatday = new SimpleDateFormat("yyyy.MM.dd");
@@ -1984,7 +1989,6 @@
                order.setReceiveTime("收货时间:" + format.format(settleTime));
            }
            Map<String, String> orderStateMap = new HashMap<String, String>();
            // 订单状态
            Integer orderState = order.getState();
@@ -1997,21 +2001,21 @@
                    orderState = buFenOrder.getState();
                }
            }
            // 显示返利说明连接> 未失效
            if (CommonOrder.STATE_SX != orderState
                    && thirdCreateTime.getTime() > TimeUtil.convertDateToTemp(Constant.ORDER_SHOW_BRACE_TIME)) {
                String rebateLink = configService.get(ConfigKeyEnum.orderRebateDescLink.getKey());
                order.setRebateLink(rebateLink + "?orderNo=" + orderNo + "&sourceType=" + sourceType);
            }
            // 红包信息
            List<HongBaoOrder> hongBaoOrderList = hongBaoOrderService.listDetailByOrderIdAndSourceTypeAndUid(orderNo, sourceType, uid);
            List<HongBaoOrder> hongBaoOrderList = hongBaoOrderService.listDetailByOrderIdAndSourceTypeAndUid(orderNo,
                    sourceType, uid);
            HongBaoCountVO hongBaoCountVO = hongBaoOrderService.getHongBaoCountVO(hongBaoOrderList);
            BigDecimal hongBao = hongBaoCountVO.getValidMoney();
            Integer hongBaoState = hongBaoCountVO.getCurrentState();
            /* 订单状态 转换处理 */
            String orderStateContent = "";
            if (CommonOrder.STATE_FK == orderState) {
@@ -2024,7 +2028,8 @@
                orderStateContent = "已售后";
                if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
                    /* 订单维权 判断是否全部维权 */
                    List<TaoBaoWeiQuanOrder> listWQ = taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(order.getOrderNo(), "维权成功");
                    List<TaoBaoWeiQuanOrder> listWQ = taoBaoWeiQuanOrderMapper
                            .selectListByOrderIdAndState(order.getOrderNo(), "维权成功");
                    BigDecimal weiQuanMoney = getWeiQuanMoney(listWQ, sourceType, uid);
                    hongBao = MoneyBigDecimalUtil.sub(hongBao, weiQuanMoney);
                }
@@ -2043,9 +2048,9 @@
                order.setOrderOrigin("1");
                order.setHongBaoTypePic(CommonOrder.TYPE_FANLI);
                signList.add(CommonOrder.TYPE_FANLI);
                // 是否已使用奖励券、免单券情况
                 if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
                if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
                    couponUseFactory(order, listRecordTB);
                } else if (sourceType == Constant.SOURCE_TYPE_JD) {
                    couponUseFactory(order, listRecordJD);
@@ -2067,22 +2072,24 @@
                order.setOrderOrigin("3");
                order.setHongBaoTypePic(CommonOrder.TYPE_INVITE);
                signList.add(CommonOrder.TYPE_INVITE);
                // 红包加上补贴金额
                InviteOrderSubsidy orderSubsidy = inviteOrderSubsidyService.getByOrderNoAndType(uid, orderNo, sourceType);
                InviteOrderSubsidy orderSubsidy = inviteOrderSubsidyService.getByOrderNoAndType(uid, orderNo,
                        sourceType);
                if (orderSubsidy != null && orderSubsidy.getMoney() != null) {
                    BigDecimal subsidyMoney = orderSubsidy.getMoney();
                    // 维权金额
                    InviteOrderSubsidyDebt subsidyDebt = inviteOrderSubsidyDebtService.getBySourceId(orderSubsidy.getId());
                    InviteOrderSubsidyDebt subsidyDebt = inviteOrderSubsidyDebtService
                            .getBySourceId(orderSubsidy.getId());
                    if (subsidyDebt != null && subsidyDebt.getOriginMoney() != null) {
                        subsidyMoney = subsidyMoney.subtract(subsidyDebt.getOriginMoney());
                    }
                    //  最终补贴
                    }
                    // 最终补贴
                    if (subsidyMoney.compareTo(new BigDecimal(0)) > 0) {
                        hongBao = hongBao.add(subsidyMoney);
                    }
                }
            }
            }
            order.setSignList(signList);
            String hongBaoDate = null;
@@ -2125,15 +2132,16 @@
            stateMap.put("fontColor", stateFontColor);
            order.setAccountState(stateMap);
            hongbaoInfo = hongBaoState_Str + hongbaoInfo;
            Map<String, String> hongBaoMap = new HashMap<String, String>();
            hongBaoMap.put("content", hongbaoInfo + " ¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
            hongBaoMap.put("fontColor", hongbaoInfoFontColor);
            order.setHongBaoInfo(hongBaoMap);
            // 分享、邀请 隐藏订单号
            if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType || HongBaoV2.TYPE_ERJI == hongBaoType
                    || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) {
            if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType
                    || HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType
                    || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) {
                order.setOrderNo(UserUtil.filterOrderId(order.getOrderNo()));
            }
        }
@@ -2170,7 +2178,7 @@
                        text = "免单中";
                    } else if (UserSystemCouponRecord.STATE_SUCCESS == state) {
                        text = "免单成功";
                    }
                    }
                }
                break;
            }
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -39,6 +39,7 @@
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
import com.yeshi.fanli.entity.elme.ElmeHongBaoOrderMap;
import com.yeshi.fanli.entity.elme.ElmeOrder;
import com.yeshi.fanli.entity.jd.JDOrder;
@@ -1260,8 +1261,8 @@
                hongBaoV2Service.updateByPrimaryKeySelective(update);
            }
        // TODO 商家关店跑路需要赠送金币
        // userSystemCouponService.systemGiveRewardCoupon(uid, 1, orderId,
        // sourceType, "因商家违约未能结算返利或商家已经关店");
        // userSystemCouponService.rewardCouponWin(uid,
        // UserSystemCoupon.SOURCE_SYSTEM_PUSH, 1, true, new BigDecimal("31"));
    }
    @Transactional
fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoOrderServiceImpl.java
@@ -177,6 +177,7 @@
            // 提交事务
            transactionManager.commit(transactionStatus);
        } catch (Exception e) {
            e.printStackTrace();
            transactionManager.rollback(transactionStatus);
        }
    }
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java
@@ -102,117 +102,6 @@
        return resultList;
    }
    private static List<TaoBaoOrder> parseTaoBaoOrder(String response) {
        List<TaoBaoOrder> orderList = new ArrayList<>();
        JSONObject data = JSONObject.fromObject(response);
        if (data.optJSONObject("tbk_order_get_response") == null)
            return orderList;
        if (data.optJSONObject("tbk_order_get_response").optJSONObject("results") == null)
            return orderList;
        if (data.optJSONObject("tbk_order_get_response").optJSONObject("results").optJSONArray("n_tbk_order") == null)
            return orderList;
        JSONArray array = data.optJSONObject("tbk_order_get_response").optJSONObject("results")
                .optJSONArray("n_tbk_order");
        for (int i = 0; i < array.size(); i++) {
            JSONObject item = array.optJSONObject(i);
            try {
                TaoBaoOrder taoBaoOrder = new TaoBaoOrder();
                taoBaoOrder.setAdPositionId(item.optString("adzone_id"));
                taoBaoOrder.setAdPositionName(item.optString("adzone_name"));
                taoBaoOrder.setAuctionId(item.optLong("num_iid"));
                taoBaoOrder.setClassName(item.optString("auction_category"));
                taoBaoOrder.setClickTime(item.optString("click_time"));
                taoBaoOrder.setCount(item.optInt("item_num"));
                taoBaoOrder.setCreateTime(item.optString("create_time"));
                if (!StringUtil.isNullOrEmpty(item.optString("total_commission_fee")))
                    taoBaoOrder.seteIncome(new BigDecimal(item.optString("total_commission_fee")));
                else
                    taoBaoOrder.seteIncome(new BigDecimal(0));
                if (!StringUtil.isNullOrEmpty(item.optString("pub_share_pre_fee")))
                    taoBaoOrder.setEstimate(new BigDecimal(item.optString("pub_share_pre_fee")));
                else
                    taoBaoOrder.setEstimate(new BigDecimal(0));
                taoBaoOrder.setiRatio(new BigDecimal(item.optString("income_rate")).multiply(new BigDecimal(100)));
                taoBaoOrder.setLatestUpdateTime(null);
                taoBaoOrder.setManagerWangWang(null);
                taoBaoOrder.setOrderBy(null);
                taoBaoOrder.setOrderId(item.optString("trade_parent_id"));
                if (item.optInt("tk_status") == 12)
                    taoBaoOrder.setOrderState("订单付款");
                else if (item.optInt("tk_status") == 3)
                    taoBaoOrder.setOrderState("订单结算");
                else if (item.optInt("tk_status") == 13)
                    taoBaoOrder.setOrderState("订单失效");
                else if (item.optInt("tk_status") == 14)
                    taoBaoOrder.setOrderState("订单成功");
                taoBaoOrder.setOrderType(item.optString("order_type"));
                if (!StringUtil.isNullOrEmpty(item.optString("alipay_total_price")))
                    taoBaoOrder.setPayment(new BigDecimal(item.optString("alipay_total_price")));
                else
                    taoBaoOrder.setPayment(new BigDecimal(0));
                taoBaoOrder.setPrice(new BigDecimal(item.optString("price")));
                if (!StringUtil.isNullOrEmpty(item.optString("pay_price")))
                    taoBaoOrder.setSettlement(new BigDecimal(item.optString("pay_price")));
                else
                    taoBaoOrder.setSettlement(new BigDecimal(0));
                taoBaoOrder.setSettlementTime(item.optString("earning_time"));
                taoBaoOrder.setShop(item.optString("seller_shop_title"));
                taoBaoOrder.setSourceMediaId(item.optString("site_id"));
                taoBaoOrder.setSourceMediaName(item.optString("site_name"));
                taoBaoOrder.setsRatio(null);
                if (!StringUtil.isNullOrEmpty(item.optString("subsidy_fee")))// 补贴金额
                    taoBaoOrder.setSubsidy(new BigDecimal(item.optString("subsidy_fee")));
                if (!StringUtil.isNullOrEmpty(item.optString("subsidy_rate")))
                    taoBaoOrder.setSubsidyRatio(
                            new BigDecimal(item.optString("subsidy_rate")).multiply(new BigDecimal(100)));
                taoBaoOrder.setSubsidyType(item.optString("subsidy_type"));
                taoBaoOrder.setTechnologySupportPercent(null);
                taoBaoOrder.setThirdService(null);
                taoBaoOrder.setTitle(item.optString("item_title"));
                if (!StringUtil.isNullOrEmpty(item.optString("total_commission_fee")))
                    taoBaoOrder.setTkMoney(new BigDecimal(item.optString("total_commission_fee")));
                else
                    taoBaoOrder.setTkMoney(new BigDecimal(0));
                if (!StringUtil.isNullOrEmpty(item.optString("commission_rate")))
                    taoBaoOrder
                            .setTkRate(new BigDecimal(item.optString("commission_rate")).multiply(new BigDecimal(100)));
                else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate")))
                    taoBaoOrder.setTkRate(
                            new BigDecimal(item.optString("total_commission_rate")).multiply(new BigDecimal(100)));
                taoBaoOrder.setTransactionPlatform(item.optString("terminal_type"));
                taoBaoOrder.setRelationId(item.optString("relation_id"));
                taoBaoOrder.setSpecialId(item.optString("special_id"));
                taoBaoOrder.setTradeId(item.optString("trade_id"));
                // 解析商品信息
                TaoBaoOrderGoods goods = new TaoBaoOrderGoods();
                goods.setCategoryName(item.optString("item_category_name"));
                goods.setCreateTime(new Date());
                goods.setGoodsId(item.optLong("item_id"));
                goods.setImg(item.optString("item_img"));
                goods.setLink(item.optString("item_link"));
                goods.setPrice(item.optString("item_price"));
                goods.setTitle(item.optString("item_title"));
                goods.setTradeId(item.optString("trade_id"));
                taoBaoOrder.setGoods(goods);
                orderList.add(taoBaoOrder);
            } catch (Exception e) {
                try {
                    LogHelper.errorDetailInfo(e, "订单号信息:" + item.toString(), "订单解析出错");
                } catch (Exception e1) {
                }
            }
        }
        return orderList;
    }
    private static TaoBaoOrderResultDTO parseTaoBaoOrderNew(String response) {
        TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
@@ -305,6 +194,18 @@
                    taoBaoOrder.setRelationId(item.optString("relation_id"));
                    taoBaoOrder.setSpecialId(item.optString("special_id"));
                    taoBaoOrder.setTradeId(item.optString("trade_id"));
                    // 解析商品信息
                    TaoBaoOrderGoods goods = new TaoBaoOrderGoods();
                    goods.setCategoryName(item.optString("item_category_name"));
                    goods.setCreateTime(new Date());
                    goods.setGoodsId(item.optLong("item_id"));
                    goods.setImg(item.optString("item_img"));
                    goods.setLink(item.optString("item_link"));
                    goods.setPrice(item.optString("item_price"));
                    goods.setTitle(item.optString("item_title"));
                    goods.setTradeId(item.optString("trade_id"));
                    taoBaoOrder.setGoods(goods);
                    orderList.add(taoBaoOrder);
                } catch (Exception e) {
                    try {