admin
2019-07-22 449e58e820a51054b9f98ae48e4412dc18f036b0
Merge branch 'master' into div
12个文件已修改
399 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/UploadController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/TaoLiJinJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateCommonOrderJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/user/UserExtraTaoBaoInfoMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/UploadController.java
@@ -161,7 +161,7 @@
                        }
                    }
                    CMQManager.getInstance().addTaoBaoOrderMsg(key, orders);
                    CMQManager.getInstance().addTaoBaoOrderMsg(key);
                    try {
                        // 6小时内不再处理
                        if (Constant.IS_OUTNET) {
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java
@@ -639,7 +639,7 @@
                            try {
                                isS = orderService.addOrder(or);
                                if (isS) {
                                    CMQManager.getInstance().addTaoBaoOrderMsg(order, orderList);
                                    CMQManager.getInstance().addTaoBaoOrderMsg(order);
                                    // 加入到LostOrder
                                    LostOrder lo = new LostOrder();
                                    lo.setCreateTime(System.currentTimeMillis());
fanli/src/main/java/com/yeshi/fanli/job/TaoLiJinJob.java
@@ -171,7 +171,7 @@
        List<TaoBaoGoodsBrief> list = tljBuyGoodsService.listPreGoods(1);
        Collections.shuffle(list);
        if (list.size() > 20)
            list = list.subList(0, 1);
            list = list.subList(0, 20);
        addTLJBuyGoods(list, day);
    }
fanli/src/main/java/com/yeshi/fanli/job/UpdateCommonOrderJob.java
@@ -160,7 +160,7 @@
                    }
                    CMQManager.getInstance().addTaoBaoOrderMsg(key, orders);
                    CMQManager.getInstance().addTaoBaoOrderMsg(key);
                    try {
                        // 6小时内不再处理
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
@@ -324,7 +324,7 @@
                    }
                    CMQManager.getInstance().addTaoBaoOrderMsg(key, orders);
                    CMQManager.getInstance().addTaoBaoOrderMsg(key);
                    try {
                        // 6小时内不再处理
fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java
@@ -16,6 +16,7 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
@@ -53,6 +54,12 @@
            list.addAll(list2);
        if (list3 != null && list3.size() > 0)
            list.addAll(list3);
        // 爬取到的订单号
        if (list != null)
            for (TaoBaoOrder order : list) {
                LogHelper.orderInfo("爬取到的订单号:" + order.getOrderId());
            }
        addRelationAndSpecialOrder(list);
    }
@@ -81,7 +88,13 @@
                    }
                    CMQManager.getInstance().addTaoBaoOrderMsg(key, orders);
                    LogHelper.orderInfo("添加到队列:" + key);
                    if (orders != null && orders.size() > 0 && System.currentTimeMillis()
                            - TimeUtil.convertToTimeTemp(orders.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") < 1000
                                    * 60 * 10L)// 10分钟内产生的单作为新订单处理
                        CMQManager.getInstance().addTaoBaoNewOrderMsg(key);
                    else
                        CMQManager.getInstance().addTaoBaoOrderMsg(key);
                    try {
                        // 20分钟内不再处理
@@ -102,6 +115,7 @@
        if (!Constant.IS_TASK)
            return;
        // 爬取近20分钟的数据
        LogHelper.orderInfo("爬单:30s爬取一次单");
        long endTime = System.currentTimeMillis();
        updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime);
    }
fanli/src/main/java/com/yeshi/fanli/mapping/user/UserExtraTaoBaoInfoMapper.xml
@@ -28,7 +28,7 @@
  </select>
  
    <select id="selectByUid" resultMap="BaseResultMap"
        parameterType="java.lang.Long">
        parameterType="java.lang.Long" useCache="false">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_user_info_extra_taobao where uiet_uid =
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java
@@ -15,13 +15,17 @@
import com.yeshi.fanli.dto.common.CommonContentTypeEnum;
import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -37,6 +41,12 @@
    @Resource
    private TaoKeGoodsService taoKeGoodsService;
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private QualityGoodsService qualityGoodsService;
    private static List<CommonContentNav> getCommonNav() {
        List<CommonContentNav> navList = new ArrayList<>();
@@ -74,16 +84,18 @@
                navList.add(new CommonContentNav(gc.getId() + "", gc.getName()));
            }
        } else if (type == CommonContentTypeEnum.chaoSheng) {
            navList.add(new CommonContentNav("1", "5%~10%返利"));
            navList.add(new CommonContentNav("2", "10%~20%返利"));
            navList.add(new CommonContentNav("3", "20%~30%返利"));
            navList.add(new CommonContentNav("4", "30%~40%返利"));
            navList.add(new CommonContentNav("5", "40%以上返利"));
            navList.add(new CommonContentNav("1", "1-5元返利"));
            navList.add(new CommonContentNav("2", "5-10元返利 "));
            navList.add(new CommonContentNav("3", "10-15元返利"));
            navList.add(new CommonContentNav("4", "15-20元返利"));
            navList.add(new CommonContentNav("5", "20元以上返利"));
        } else if (type == CommonContentTypeEnum.haoQuan) {
            navList.add(new CommonContentNav("1", "5~10元券"));
            navList.add(new CommonContentNav("2", "10~30元券"));
            navList.add(new CommonContentNav("3", "30~50元券"));
            navList.add(new CommonContentNav("4", "50元以上券"));
            navList.add(new CommonContentNav("1", "1-5元券"));
            navList.add(new CommonContentNav("2", "5-10元券"));
            navList.add(new CommonContentNav("3", "10-20元券"));
            navList.add(new CommonContentNav("4", "20-30元券"));
            navList.add(new CommonContentNav("5", "30-50元券"));
            navList.add(new CommonContentNav("6", "50元以上券"));
        } else if (type == CommonContentTypeEnum.juJia) {
            navList = getCommonNav();
        } else if (type == CommonContentTypeEnum.meiShi) {
@@ -146,10 +158,22 @@
            return getQiCheHuWaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoPinReMai) {
            return getChaoPinReMaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoSheng) {
            return getCaoShengContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.haoQuan) {
            return getHaoQuanContent(cid, page, pageSize);
        }
        return null;
    }
    /**
     * 9快9包邮
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult get9K9Content(String cid, int page, int pageSize) {
        if (pageSize == 20)
            pageSize = 50;
@@ -181,6 +205,133 @@
    }
    /**
     * 超级省钱
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getCaoShengContent(String cid, int page, int pageSize) {
        pageSize = Constant.PAGE_SIZE;
        Integer startAmount = null;
        Integer endAmount = null;
        if (cid.equalsIgnoreCase(1 + "")) {
            startAmount = 1;
            endAmount = 5;
        } else if (cid.equalsIgnoreCase(2 + "")) {
            startAmount = 5;
            endAmount = 10;
        } else if (cid.equalsIgnoreCase(3 + "")) {
            startAmount = 10;
            endAmount = 15;
        } else if (cid.equalsIgnoreCase(4 + "")) {
            startAmount = 15;
            endAmount = 20;
        } else if (cid.equalsIgnoreCase(5 + "")) {
            startAmount = 20;
            endAmount = 10000;
        }
        double tkRate = 20.00;
        BigDecimal proportion = hongBaoManageService.getFanLiRate();
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByRebateAmount((page - 1) * pageSize, pageSize,
                proportion.toString(), startAmount, endAmount, tkRate);
        long count = qualityGoodsService.countQueryByRebateAmount(proportion.toString(), startAmount, endAmount,
                tkRate);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        // 遍历列表数据
        if (listQuery != null)
            for (QualityFactory quality : listQuery) {
                TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
                if (taoBaoGoodsBrief == null) {
                    continue;
                }
                int biz30day = taoBaoGoodsBrief.getBiz30day();
                if (biz30day >= 10000) {
                    double sales = biz30day;
                    String salesCountMidea = String.format("%.1f", sales / 10000);
                    taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
                } else {
                    taoBaoGoodsBrief.setSalesCount(biz30day + "");
                }
                goodsList.add(taoBaoGoodsBrief);
            }
        return new CommonContentResult(goodsList, count);
    }
    /**
     * 高额好券
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getHaoQuanContent(String cid, int page, int pageSize) {
        pageSize = Constant.PAGE_SIZE;
        Integer startAmount = null;
        Integer endAmount = null;
        if (cid.equalsIgnoreCase(1 + "")) {
            startAmount = 1;
            endAmount = 5;
        } else if (cid.equalsIgnoreCase(2 + "")) {
            startAmount = 5;
            endAmount = 10;
        } else if (cid.equalsIgnoreCase(3 + "")) {
            startAmount = 10;
            endAmount = 20;
        } else if (cid.equalsIgnoreCase(4 + "")) {
            startAmount = 20;
            endAmount = 30;
        } else if (cid.equalsIgnoreCase(5 + "")) {
            startAmount = 30;
            endAmount = 50;
        } else if (cid.equalsIgnoreCase(6 + "")) {
            startAmount = 50;
            endAmount = 10000;
        }
        Integer startPropor = 20;
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByCouponAmount((page - 1) * pageSize, pageSize,
                startAmount, endAmount, startPropor);
        long count = qualityGoodsService.countQueryByCouponAmount(startAmount, endAmount, startPropor);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        // 遍历列表数据
        for (QualityFactory selectionGoods : listQuery) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
            if (taoBaoGoodsBrief == null) {
                continue;
            }
            int biz30day = taoBaoGoodsBrief.getBiz30day();
            if (biz30day >= 10000) {
                double sales = biz30day;
                String salesCountMidea = String.format("%.1f", sales / 10000);
                taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            goodsList.add(taoBaoGoodsBrief);
        }
        return new CommonContentResult(goodsList, count);
    }
    /**
     * 居家生活
     * 
     * @param cid
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
@@ -262,7 +262,7 @@
            // 新版通知
            userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, orderId, drawBackMoney,
                    userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
                    userInfoMapper.selectByPKey(uid).getMyHongBao());
            userNotificationService.weiQuanFanli(uid, orderId, drawBackMoney);
        }
fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java
@@ -1,8 +1,7 @@
package com.yeshi.fanli.util;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -11,7 +10,6 @@
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.qcloud.cmq.Message;
import com.yeshi.fanli.dto.HongBao;
import com.yeshi.fanli.entity.bus.user.AlipayTransferResultInfo;
@@ -19,10 +17,7 @@
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.push.PushQueueRecord;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import net.sf.json.JSONObject;
public class CMQManager {
    private static String secretId = "AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25";
@@ -31,6 +26,10 @@
    private static CMQUtil cmqUtil;
    // TODO 订单处理队列
    public static String QUEUENAME_ORDER = "fanli-orders";
    // 刚刚产生的订单处理队列
    public static String QUEUENAME_NEW_ORDER = "fanli-new-orders";
    // 提现结果处理队列
    public static String EXTRACT_RESULT = "extract-result";
    // TODO IOS推送队列
@@ -53,6 +52,7 @@
        if (Constant.IS_TEST) {
            QUEUENAME_ORDER = "test-" + QUEUENAME_ORDER;
            QUEUENAME_NEW_ORDER = "test-" + QUEUENAME_NEW_ORDER;
            EXTRACT_RESULT = "test-" + EXTRACT_RESULT;
            PUSH_IOS = "test-" + PUSH_IOS;
            FANLI_ORDER = "test-" + FANLI_ORDER;
@@ -62,6 +62,7 @@
        }
        QUEUENAME_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
        QUEUENAME_NEW_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
        EXTRACT_RESULT += "-" + Constant.systemCommonConfig.getProjectName();
        PUSH_IOS += "-" + Constant.systemCommonConfig.getProjectName();
        FANLI_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
@@ -72,6 +73,7 @@
        cmqUtil = CMQUtil.getInstance(secretId, secretKey);
        // 最大消息为1M
        cmqUtil.createQueue(QUEUENAME_ORDER, 1024 * 1024);
        cmqUtil.createQueue(QUEUENAME_NEW_ORDER, 1024 * 1024);
        cmqUtil.createQueue(EXTRACT_RESULT);
        cmqUtil.createQueue(PUSH_IOS);
        cmqUtil.createQueue(FANLI_ORDER);
@@ -92,11 +94,9 @@
     * 
     * @param orderMap
     */
    public void addTaoBaoOrderMsg(String orderId, List<TaoBaoOrder> orderList) {
        if (!StringUtil.isNullOrEmpty(orderId) && orderList != null && orderList.size() > 0) {
            JSONObject item = new JSONObject();
            item.put(orderId, new GsonBuilder().create().toJson(orderList));
            cmqUtil.sendMsg(QUEUENAME_ORDER, item.toString());
    public void addTaoBaoOrderMsg(String orderId) {
        if (!StringUtil.isNullOrEmpty(orderId)) {
            cmqUtil.sendMsg(QUEUENAME_ORDER, orderId);
        }
    }
@@ -105,27 +105,18 @@
     * 
     * @param count
     */
    @SuppressWarnings("unchecked")
    public Map<String, List<TaoBaoOrder>> consumeTaoBaoOrderMsg(int count) {
    public List<String> consumeTaoBaoOrderMsg(int count) {
        List<String> resultList = new ArrayList<>();
        List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_ORDER);
        Map<String, List<TaoBaoOrder>> map = new HashMap<>();
        if (list != null)
            for (Message msg : list) {
                String result = msg.msgBody;
                JSONObject data = JSONObject.fromObject(result);
                Iterator<String> its = data.keySet().iterator();
                if (its.hasNext()) {
                    String orderId = its.next();
                    Type type = new TypeToken<List<TaoBaoOrder>>() {
                    }.getType();
                    List<TaoBaoOrder> orderList = new Gson().fromJson(data.optJSONArray(orderId).toString(), type);
                    map.put(orderId, orderList);
                }
                resultList.add(result);
                // 删除消息
                cmqUtil.deleteMsg(QUEUENAME_ORDER, msg.receiptHandle);
            }
        return map;
        return resultList;
    }
    /**
@@ -134,7 +125,46 @@
     * @param receiptHandle
     */
    public void deleteTaoBaoOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(EXTRACT_RESULT, receiptHandle);
        cmqUtil.deleteMsg(QUEUENAME_ORDER, receiptHandle);
    }
    /**
     * 发送订单消息(刚刚产生的订单)
     *
     * @param orderMap
     */
    public void addTaoBaoNewOrderMsg(String orderId) {
        if (!StringUtil.isNullOrEmpty(orderId)) {
            cmqUtil.sendMsg(QUEUENAME_NEW_ORDER, orderId);
        }
    }
    /**
     * 消费淘宝订单消息(刚刚产生的订单)
     *
     * @param count
     */
    public List<String> consumeTaoBaoNewOrderMsg(int count) {
        List<String> resultList = new ArrayList<>();
        List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_NEW_ORDER);
        if (list != null)
            for (Message msg : list) {
                String result = msg.msgBody;
                resultList.add(result);
                // 删除消息
                cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, msg.receiptHandle);
            }
        return resultList;
    }
    /**
     * 删除淘宝订单消息(刚刚产生的订单)
     *
     * @param receiptHandle
     */
    public void deleteTaoBaoNewOrderMsg(String receiptHandle) {
        cmqUtil.deleteMsg(QUEUENAME_NEW_ORDER, receiptHandle);
    }
    /**
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.util;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -12,6 +13,7 @@
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Component;
import org.yeshi.utils.NumberUtil;
import org.yeshi.utils.tencentcloud.COSManager;
import org.yeshi.utils.tencentcloud.entity.COSInitParams;
@@ -108,6 +110,7 @@
        if (Constant.IS_TASK) {
            doExtractResult();// 处理提现结果
            doTaoBaoOrders();// 处理淘宝订单
            doTaoBaoNewOrders();// 处理淘宝订单(刚刚产生的)
            doOrderFanLiNew();// 新版返利
            doOrderTiChengFanLi();// 处理订单提成返利
            doWeiQuanOrder();// 处理维权订单
@@ -185,16 +188,58 @@
                    while (true) {
                        try {
                            // 取16个订单
                            Map<String, List<TaoBaoOrder>> map = CMQManager.getInstance().consumeTaoBaoOrderMsg(16);
                            if (map != null) {
                                // 从库里面查询
                                Iterator<String> its = map.keySet().iterator();
                                while (its.hasNext()) {
                                    String orderId = its.next();
                            List<String> orderIds = CMQManager.getInstance().consumeTaoBaoOrderMsg(16);
                            Map<String, List<TaoBaoOrder>> map = new HashMap<>();
                            if (orderIds != null) {
                                for (String orderId : orderIds) {
                                    if (NumberUtil.isNumeric(orderId.trim())) {
                                        List<TaoBaoOrder> orderList = taoBaoOrderService
                                                .getTaoBaoOrderByOrderId(orderId);
                                        map.put(orderId, orderList);
                                        LogHelper.orderInfo("开始处理订单:" + orderId);
                                        orderProcessService.processOrder(map);
                                        LogHelper.orderInfo("结束处理订单:" + orderId);
                                    }
                                }
                            }
                        } catch (Exception e) {
                            try {
                                LogHelper.errorDetailInfo(e);
                            } catch (Exception e1) {
                            }
                        }
                    }
                }
            });
        }
    }
    /**
     * 刚刚产生的订单
     */
    public void doTaoBaoNewOrders() {
        // 同时开启3个线程处理
        for (int i = 0; i < 1; i++) {
            executor.execute(new Runnable() {
                @Override
                public void run() {
                    while (true) {
                        try {
                            // 取16个订单
                            List<String> orderIds = CMQManager.getInstance().consumeTaoBaoNewOrderMsg(16);
                            Map<String, List<TaoBaoOrder>> map = new HashMap<>();
                            if (orderIds != null) {
                                for (String orderId : orderIds) {
                                    List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId);
                                    map.put(orderId, orderList);
                                    LogHelper.orderInfo("新订单-开始处理订单:" + orderId);
                                    long startTime = System.currentTimeMillis();
                                    orderProcessService.processOrder(map);
                                    LogHelper.orderInfo("新订单-结束处理订单:" + orderId + "-  处理时间:"
                                            + (System.currentTimeMillis() - startTime));
                                }
                                orderProcessService.processOrder(map);
                            }
                        } catch (Exception e) {
                            try {
@@ -384,7 +429,6 @@
        boutiqueAutoRuleService.startScheduler();
    }
    /**
     * 更新精选库商品
     */
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java
@@ -5,8 +5,10 @@
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -681,9 +683,67 @@
            order.setOrderBy(map.get(order.getOrderId()).size() + 1);
            map.get(order.getOrderId()).add(order);
        }
        // 订单排序值灰度测试
        try {
            for (Iterator<String> its = map.keySet().iterator(); its.hasNext();) {
                String orderId = its.next();
                try {
                    setOrderBy(map.get(orderId));
                } catch (Exception e) {
                    LogHelper.errorDetailInfo(e, "订单号:" + orderId, "订单排序值灰度测试");
                }
            }
        } catch (Exception e) {
        }
        return map;
    }
    public static void setOrderBy(List<TaoBaoOrder> orderList) {// 提取一样的
        if (orderList == null || orderList.size() == 1)
            return;
        int len = orderList.get(0).getTradeId().length();
        int startIndex = 0;
        for (int i = 0; i < len; i++) {
            boolean isSame = true;
            for (int j = 0; j < orderList.size() - 1; j++) {
                if (orderList.get(j).getTradeId().charAt(i) != orderList.get(j + 1).getTradeId().charAt(i)) {
                    isSame = false;
                    break;
                }
            }
            if (!isSame) {
                startIndex = i;
                break;
            }
        }
        int endIndex = 0;
        for (int i = len - 1; i >= 0; i--) {
            boolean isSame = true;
            for (int j = 0; j < orderList.size() - 1; j++) {
                if (orderList.get(j).getTradeId().charAt(i) != orderList.get(j + 1).getTradeId().charAt(i)) {
                    isSame = false;
                    break;
                }
            }
            if (!isSame) {
                endIndex = i;
                break;
            }
        }
        for (TaoBaoOrder taoBaoOrder : orderList) {
            String tradeId = taoBaoOrder.getTradeId();
            String orderByStr = tradeId.substring(startIndex, endIndex + 1);
            if (orderByStr.length() > 8) {
                LogHelper.error("订单的orderBy超过8位:" + taoBaoOrder.getOrderBy());
            }
            int orderBy = Integer.parseInt(orderByStr);
            // taoBaoOrder.setOrderBy(orderBy);
        }
    }
    /**
     * 计算邀请赚的返利时间
     *