admin
2020-04-17 087b91bff39bb54d872a181c113cdb41c27cacbe
商家跑路后奖励券赠送修改,饿了么兼容封面图片
6个文件已修改
177 ■■■■ 已修改文件
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 36 ●●●●● 补丁 | 查看 | 原始文档 | 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;
@@ -150,6 +152,9 @@
    @Resource
    private UserLevelManager userLevelManager;
    @Resource
    private TaoBaoOrderGoodsMapper taoBaoOrderGoodsMapper;
    @Resource(name = "producer")
    private Producer orderProducer;
@@ -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);
                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);
@@ -1802,7 +1811,6 @@
            return null;
        return list.get(0).getThirdCreateTime();
    }
    
    @Override
    public List<CommonOrderVO> getOrderList(AcceptData acceptData, Integer page, Long uid, Integer state, Integer type,
@@ -1837,8 +1845,6 @@
        return commonOrderMapper.countOrderList(uid, state, type, orderState, orderNo, startTime, endTime, dateType,
                listSource);
    }
    
    /**
     * 订单信息加工
@@ -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();
@@ -2006,11 +2010,11 @@
            }
                        
            // 红包信息
            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 = "";
@@ -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);
                }
@@ -2069,11 +2074,13 @@
                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());
                    } 
@@ -2132,8 +2139,9 @@
            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()));
            }
        }
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 {