admin
2021-09-13 8ce7c720e4e7a604b0ff770349b5556f39d37759
好省呗应用兼容
40个文件已修改
3个文件已添加
1117 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/aspect/H5SignValidateAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/HomeNavbarControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/homemodule/HomeNavbarUserMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/vipshop/VipShopOrderMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/taobao/TaoBaoOrderBackUpDao.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/SystemEnum.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/SystemPIDInfo.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/config/SystemConfigKeyEnum.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoOrderBackUp.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/TaoBaoOrderBackUpJob.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateOrderJob.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/lijin/manager/GoodsLijinMnager.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/lijin/manager/UserLijinMnager.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/log/vo/UserGoodsScanLog.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarUserServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/homemodule/HomeNavbarUserService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java 175 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeScApiUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/vipshop/DingDanXiaApiUtil.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopSCApiUtil.java 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/mapping/homemodule/HomeNavbarUserMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/mapping/push/PushInfoMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/mapping/vipshop/VipShopOrderMapper.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/aspect/H5SignValidateAspect.java
@@ -189,7 +189,7 @@
        }
        String md5 = StringUtil.Md5(sb.toString() + KEY);
        if (system != null && system == SystemEnum.yhqjx) {
        if (system != null && (system == SystemEnum.yhqjx||system == SystemEnum.hsb)) {
            md5 = StringUtil.Md5(sb.toString() + KEY_TEJIA);
        }
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -4,14 +4,19 @@
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dao.dynamic.DynamicInfoDao;
import com.yeshi.fanli.dao.mybatis.help.HelpCenterMapper;
import com.yeshi.fanli.dto.push.PushContentDTO;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.entity.bus.activity.ActivityShareResult;
import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.config.push.PushMsgFactory;
import com.yeshi.fanli.entity.dynamic.InviteMaterial;
import com.yeshi.fanli.exception.ActivityException;
import com.yeshi.fanli.exception.push.PushException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.user.UserInfoException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.log.LogManager;
import com.yeshi.fanli.log.LogType;
@@ -21,6 +26,9 @@
import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
@@ -327,6 +335,27 @@
        out.println(array.toString());
    }
    @Resource
    private MsgOrderDetailService msgOrderDetailService;
    @Resource
    private PushService pushService;
    @Resource
    private UserInfoService userInfoService;
    @RequestMapping(value = "pushOrderMsg")
    public void pushOrderMsg(String id, PrintWriter out) throws UserInfoException, PushException {
        MsgOrderDetail msgOrderDetail = msgOrderDetailService.selectByPrimaryKey(Long.parseLong(id));
        if (msgOrderDetail == null) {
            out.print("ID不存在");
            return;
        }
        UserInfo userInfo = userInfoService.getUserInfo(msgOrderDetail.getUser().getId());
        PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(msgOrderDetail.getOrderType(), msgOrderDetail.getOrderId(), msgOrderDetail.getHongBaoMoney());
        pushService.pushZNX(userInfo.getId(), dto.getTitle(), dto.getContent(), null, null, userInfo.getSystem());
    }
    @RequestMapping(value = "pushOppo")
    public void pushOppo(String registerId, PrintWriter out) {
        List<String> registerIds = new ArrayList<>();
fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java
@@ -2,8 +2,10 @@
import com.google.gson.*;
import com.yeshi.common.entity.PageEntity;
import com.yeshi.fanli.dao.taobao.TaoBaoOrderBackUpDao;
import com.yeshi.fanli.entity.accept.AdminAcceptData;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoOrderBackUp;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.job.order.taobao.UpdateOrderJob;
import com.yeshi.fanli.job.order.taobao.UpdateTBRelationAndSpecialOrderJob;
@@ -14,6 +16,7 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -48,6 +51,9 @@
    @Resource
    private OrderProcessService orderProcessService;
    @Resource
    private TaoBaoOrderBackUpDao taoBaoOrderBackUpDao;
    /**
     * 查询列表 - 新后台
@@ -106,7 +112,6 @@
    }
    @RequestMapping(value = "listTaoBaoOrderNoUpdate")
    public void listTaoBaoOrderUnUpdate(AdminAcceptData acceptData, String callback, String key, Integer pageIndex, PrintWriter out) {
@@ -155,7 +160,6 @@
    }
    @RequestMapping(value = "updateTaoBaoOrder")
    public void updateTaoBaoOrder(AdminAcceptData acceptData, String callback, String ids, PrintWriter out) {
        try {
@@ -171,24 +175,37 @@
                orderIds.add(idsArray.optString(i));
            }
            Long[] startTimes = new Long[orderIds.size()];
            Long[] endTimes = new Long[orderIds.size()];
            int p = 0;
            for (Iterator<String> its = orderIds.iterator(); its.hasNext(); ) {
                String orderId = its.next();
                List<TaoBaoOrder> list = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId);
                startTimes[p] = TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") - 1000L;
                endTimes[p] = TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") + 1000L;
                p++;
                try {
                    //如果创建时间超过了90天的抛出异常
                    if (list.size() == 0 || TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") < System.currentTimeMillis() - 1000 * 60 * 60L * 24 * 90)
                        throw new Exception("需要本地更新");
                    long startTime = TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") - 1000L;
                    long endTime = TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") + 1000L;
                    updateRelationAndSpecialOrderJob.updateRelationAndSpecialOrder(startTime, endTime);
                    updateOrderJob.updateOrder(startTime, endTime);
                } catch (Exception e) {
                    //从本地备份拿出订单
                    List<String> tradeIds = new ArrayList<>();
                    for (TaoBaoOrder order : list) {
                        tradeIds.add(order.getTradeId());
                    }
                    List<TaoBaoOrderBackUp> orderBackUps = taoBaoOrderBackUpDao.listByIds(tradeIds);
                    List<TaoBaoOrder> orderList = new ArrayList<>();
                    for (TaoBaoOrderBackUp backUp : orderBackUps) {
                        orderList.add(TaoKeOrderApiUtil.parseTaoBaoOrderNew(JSONObject.fromObject(backUp.getContent())));
                    }
                    updateOrderJob.addOrder(orderList);
                }
            }
            for (int i = 0; i < idsArray.size(); i++) {
                updateRelationAndSpecialOrderJob.updateRelationAndSpecialOrder(startTimes[i], endTimes[i]);
                updateOrderJob.updateOrder(startTimes[i], endTimes[i]);
            }
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("更新成功"));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("更新失败"));
            e.printStackTrace();
        }
fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java
@@ -291,7 +291,7 @@
        extraVO.setBuyValid(true);
        extraVO.setListCouponUser(listCouponUser);
        goodsDetailVO.setExtra(extraVO);
        loadLijinInfo(uid, goodsDetailVO);
        loadLijinInfo(uid, acceptData.getSystem(), goodsDetailVO);
        //清除临时信息
        goodsDetailVO.getGoods().setTempCoupon(null);
        if (goodsDetailVO.getGoods().getLabels() == null)
@@ -366,14 +366,14 @@
     *
     * @param goodsDetailVO
     */
    private void loadLijinInfo(Long uid, GoodsDetailVO goodsDetailVO) {
    private void loadLijinInfo(Long uid, SystemEnum system, GoodsDetailVO goodsDetailVO) {
        VIPEnum vipRank = userLijinMnager.getVIPRank(uid);
        GoodsDetailVO.GoodsHongBaoListVO.UserLevelVO userLevelVO = goodsLijinMnager.getUserLevel(vipRank, true);
        GoodsDetailVO.GoodsHongBaoListVO.UserLevelVO userLevelVO = goodsLijinMnager.getUserLevel(system, vipRank, true);
        //返利UserLevel
        if (goodsDetailVO.getGoods().getPriceList() != null && goodsDetailVO.getGoods().getPriceList().size() > 0)
            goodsDetailVO.getGoods().getPriceList().get(0).setUserLevel(userLevelVO);
        //礼金UserLevel
        userLevelVO = goodsLijinMnager.getUserLevel(vipRank, false);
        userLevelVO = goodsLijinMnager.getUserLevel(system, vipRank, false);
        goodsLijinMnager.loadLijinInfo(vipRank, goodsDetailVO, userLevelVO);
    }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -720,7 +720,7 @@
                        for (ImgInfo imgInfo : goodsEvaluate.getImgList()) {
                            if (acceptData.getSystem() == SystemEnum.yhqjx) {
                            if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
                                imgInfo.setGoods(null);
                                imgInfo.setGoodsVO(null);
                            }
@@ -1264,7 +1264,7 @@
        String newText = text; // 非通用券需要验证
        //特价只需要复制文字,不需要转链
        if (acceptData.getSystem() == SystemEnum.yhqjx) {
        if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
            newText = GoodsTextUtil.decodeAppHtmlText(newText);
            //只复制文字
            JSONObject data = new JSONObject();
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/HomeNavbarControllerV2.java
@@ -124,7 +124,7 @@
            int nonCount = 0;
            // 查询用户自定义导航
            List<HomeNavbarUser> listUser = homeNavbarUserService.listUserNavbar(uid, acceptData.getDevice());
            List<HomeNavbarUser> listUser = homeNavbarUserService.listUserNavbar(uid, acceptData.getDevice(),acceptData.getSystem());
            if (listUser == null || listUser.size() == 0) {
                for (int i = 0; i < listItems.size(); i++) {
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -695,7 +695,7 @@
            JSONArray array = new JSONArray();
            for (GoodsDetailVO vo : voList) {
                if (acceptData.getSystem() == SystemEnum.yhqjx) {
                if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
                    if (!StringUtil.isNullOrEmpty(vo.getMoneyInfo().getHongBaoMoney())) {
                        array.add(gson.toJson(vo));
                    }
@@ -786,7 +786,7 @@
        JSONArray array = new JSONArray();
        for (GoodsDetailVO vo : finalVOList) {
            if (acceptData.getSystem() == SystemEnum.yhqjx) {
            if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
                if (!StringUtil.isNullOrEmpty(vo.getMoneyInfo().getHongBaoMoney())) {
                    array.add(gson.toJson(vo));
                }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -171,7 +171,7 @@
        // 去除前后空格
        text = text.trim();
        String originalText = text;
        if (acceptData.getSystem() == SystemEnum.yhqjx) {
        if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
            Integer sourceType = clipboardAnalysisManager.tejiaParseSourceType(text);
            JSONObject root = new JSONObject();
            root.put("type", 2);
@@ -188,7 +188,7 @@
                        @Override
                        public void onResult(GoodsDocParseResultVO result) {
                            if (uid == null || acceptData.getSystem() == SystemEnum.yhqjx) {
                            if (uid == null || (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb)) {
                                out.print(JsonUtil.loadFalseResult("无推荐"));
                                return;
                            }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -1,7 +1,9 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -250,8 +252,25 @@
    }
    public static String getERCodeContentNew(String template, TaoBaoGoodsBrief goods, String token) {
        String tempToken = "";
        String[] sts = token.split(" ");
        if (sts.length > 1) {
            for (int i = 0; i < sts.length - 1; i++) {
                tempToken += sts[i] + " ";
            }
        } else {
            tempToken = token;
        }
        tempToken = tempToken.trim();
        try {
            tempToken= URLEncoder.encode(tempToken,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        String commentText = template.replace("[原价]", goods.getZkPrice().toString());
        commentText = commentText.replace("[淘口令]", token);
        commentText = commentText.replace("[淘口令]", tempToken);
        if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
            commentText = commentText.replace("领券抢购", "抢购");
            commentText = commentText.replace("【券后价】[券后价]元", "");
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java
@@ -280,7 +280,7 @@
            vo.setMonthUnRecievedMoney(monthUnRecievedMoney);
            // 全部未到账
            minDate = new Date(0);
            minDate = new Date(timeStamp - 1000 * 60 * 60L * 24 * 365L);
            maxDate = new Date(timeStamp);
            vo.setTotalUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithCreateTime(uid, minDate, maxDate));
        } else {
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -319,7 +319,7 @@
            long count = 0L;
            List<CommonOrderVO> list = null;
            if (acceptData.getSystem() == SystemEnum.yhqjx) {
            if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
                list = commonOrderService.getOrderList(acceptData, page, uid, state, orderType, orderState, orderNo,
                        startTime, endTime, dateType, listSource);
                count = commonOrderService.countOrderList(uid, state, orderType, orderState, orderNo, startTime,
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/homemodule/HomeNavbarUserMapper.java
@@ -2,6 +2,7 @@
import java.util.List;
import com.yeshi.fanli.entity.SystemEnum;
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.dao.BaseMapper;
@@ -42,7 +43,7 @@
    /**
     *  删除设备自定义
     * 
     * @param list
     * @param device
     * @return
     */
    void deleteByDevice(@Param("device")String device);
@@ -51,7 +52,7 @@
    /**
     * 查询自定义有效的导航栏
     */
    List<HomeNavbarUser> listEffectiveNavbars(@Param("uid")Long uid, @Param("device")String device);
    List<HomeNavbarUser> listEffectiveNavbars(@Param("uid")Long uid, @Param("device")String device,@Param("system") SystemEnum system);
    
    
    /**
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/vipshop/VipShopOrderMapper.java
@@ -1,9 +1,25 @@
package com.yeshi.fanli.dao.mybatis.vipshop;
import com.ks.lijin.query.BaseDaoQuery;
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.vipshop.VipShopOrder;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface VipShopOrderMapper extends BaseMapper<VipShopOrder> {
    VipShopOrder selectByOrderSn(String orderSn);
    List<VipShopOrder> list(@Param("query") DaoQuery query);
    long count(@Param("query") DaoQuery query);
    public class DaoQuery extends BaseDaoQuery {
        public String orderSubStatusName;
    }
}
fanli/src/main/java/com/yeshi/fanli/dao/taobao/TaoBaoOrderBackUpDao.java
@@ -13,5 +13,15 @@
@Repository
public class TaoBaoOrderBackUpDao extends MongodbBaseDao<TaoBaoOrderBackUp> {
    public List<TaoBaoOrderBackUp> listByIds(List<String> ids) {
        Query query = new Query();
        Criteria[] ors = new Criteria[ids.size()];
        for (int i = 0; i < ors.length; i++) {
            ors[i] = Criteria.where("_id").is(ids.get(i));
        }
        query.addCriteria(new Criteria().orOperator(ors));
        return findList(query);
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/SystemEnum.java
@@ -11,7 +11,10 @@
            SystemFunction.bindPhone, SystemFunction.threeSale, SystemFunction.cloudOrder, SystemFunction.godenCorn, SystemFunction.redPack, SystemFunction.faQuan, SystemFunction.fanli, SystemFunction.vip, SystemFunction.inviteCode
    }, 1, "板栗快省", "板栗快省", false),
    flq("com.fanliunion.android", "com.xyj.ec.flq-ios", new String[]{}, new SystemFunction[]{SystemFunction.share, SystemFunction.faQuan, SystemFunction.fanli}, 11, "返利联盟", "淘拼团", false),
    yhqjx("com.youhuiquan.android", "com.youhuiquanjx.ios", new String[]{}, new SystemFunction[]{SystemFunction.fanli, SystemFunction.lijinSub, SystemFunction.bindPhone}, 12, "特价", "特价App", true);
    yhqjx("com.youhuiquan.android", "com.youhuiquanjx.ios", new String[]{}, new SystemFunction[]{SystemFunction.fanli, SystemFunction.lijinSub, SystemFunction.bindPhone}, 12, "特价", "特价App", true),
    hsb("com.haoshenbei.android", "com.haoshenbei.ios", new String[]{}, new SystemFunction[]{SystemFunction.fanli, SystemFunction.lijinSub, SystemFunction.bindPhone}, 12, "好省呗", "好省呗App", true),
    ;
    private String packageName;
    private String bundleId;
    private int systemId;
fanli/src/main/java/com/yeshi/fanli/entity/SystemPIDInfo.java
@@ -4,13 +4,14 @@
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.Date;
/**
 * 系统推广位信息
 */
@Document(collection = "systemPIDInfo")
public class SystemPIDInfo {
public class SystemPIDInfo implements Serializable {
    public enum PidType {
        fanli("返利"), fanliChannel("渠道返利"), coupon("领券"), share("分享");
fanli/src/main/java/com/yeshi/fanli/entity/config/SystemConfigKeyEnum.java
@@ -12,7 +12,8 @@
    wxGZAppId("微信公众平台的appId"),
    wxGZAppSecret("微信公众平台的appSecret"),
    defaultNickNamePrefix("默认昵称前缀"),
    defaultPortrait("默认头像");
    defaultPortrait("默认头像"),
    thirdAppUidPrefix("第三方应用的用户ID前缀");
    private String name;
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoOrderBackUp.java
@@ -5,6 +5,7 @@
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.Date;
@Document(collection = "taoBaoOrderBackUp")
public class TaoBaoOrderBackUp implements Serializable {
@@ -12,7 +13,15 @@
    private String tradeId;
    private String orderId;
    private String content;//订单内容
    private Date updateTime;
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getOrderId() {
        return orderId;
fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java
@@ -538,6 +538,7 @@
    @XxlJob("dynamic-tejia-updateBetterGoods")
    public ReturnT<String> updateTejiaBetterGoods(String param) throws Exception {
        addDTKTipOffList(SystemEnum.yhqjx);
        addDTKTipOffList(SystemEnum.hsb);
        return ReturnT.SUCCESS;
    }
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/TaoBaoOrderBackUpJob.java
@@ -39,6 +39,7 @@
        long endTime = startTime + 1000 * 60 * 60 * 24L;
        List<TaoBaoOrderBackUp> backUpList = TaoKeOrderApiUtil.getTaoBaoOrderBackUpList(startTime, endTime, status, queryType, orderSence);
        for (TaoBaoOrderBackUp backUp : backUpList) {
            backUp.setUpdateTime(new Date());
            taoBaoOrderBackUpDao.save(backUp);
        }
    }
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateOrderJob.java
@@ -376,7 +376,7 @@
    // 淘宝推广订单 每隔1分执行一次
    private void pullLatestCommonOrder() {
        LogHelper.job("pullLatestCommonOrder");
        Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime();
        Date systemDate =new Date(); //TaoKeApiUtil.getTaoBaoSystemTime();
        long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis();
        updateOrder(endTime - 1000 * 60 * 20L, endTime);
    }
@@ -384,7 +384,7 @@
    // 爬取最近一天的常规订单(30分钟一次)
    private void pullLatestDayCommonOrder() {
        LogHelper.job("pullLatestCommonOrder");
        Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime();
        Date systemDate = new Date();//TaoKeApiUtil.getTaoBaoSystemTime();
        long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis();
        updateOrder(endTime - 1000 * 60 * 60 * 24L, endTime);
    }
@@ -392,7 +392,7 @@
    // 爬取最近三天的常规订单(6个小时一次)
    private void pullLatest3DayCommonOrder() {
        LogHelper.job("pullLatestCommonOrder");
        Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime();
        Date systemDate = new Date();//TaoKeApiUtil.getTaoBaoSystemTime();
        long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis();
        updateOrder(endTime - 1000 * 60 * 60 * 24 * 3L, endTime);
    }
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java
@@ -152,7 +152,7 @@
    // 每30s爬取一次
    public void doJob1() {
        LogHelper.job("爬单:30s爬取一次单");
        Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime();
        Date systemDate = new Date();//TaoKeApiUtil.getTaoBaoSystemTime();
        long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis();
        updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime);
        updateRelationAndSpecialPaidOrder(endTime - 1000 * 60 * 20L, endTime);
@@ -162,7 +162,7 @@
    // 每5分钟更新(近1天数据)
    public void doJob2() {
        LogHelper.job("爬单:5min爬取一次单");
        Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime();
        Date systemDate = new Date();//TaoKeApiUtil.getTaoBaoSystemTime();
        long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis();
        updateRelationAndSpecialOrder(endTime - 1000 * 60 * 60 * 24L, endTime);
        updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 60 * 24L, endTime);
fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java
@@ -1,10 +1,12 @@
package com.yeshi.fanli.job.order.vipshop;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import com.yeshi.fanli.dao.mybatis.vipshop.VipShopOrderMapper;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.vipshop.DingDanXiaApiUtil;
import org.springframework.stereotype.Component;
@@ -32,6 +34,8 @@
    @Resource
    private RedisManager redisManager;
    @Resource
    private VipShopOrderMapper vipShopOrderMapper;
    /**
     * 保存订单
@@ -97,9 +101,44 @@
        if (orders == null || orders.size() == 0)
            throw new Exception("订单不存在");
        VipShopQueryOrderResultDTO result = VipShopApiUtil
                .getOrderList(VipShopOrderQueryModel.createOrderTime(orders.get(0).getOrderTime(), orders.get(0).getOrderTime() + 1000, null, 1));
        saveVipShopOrders(result.getOrderList());
        VipShopOrder vipShopOrder = DingDanXiaApiUtil.getOrderDetail(param);
        if (vipShopOrder != null) {
            List<VipShopOrder> vipShopOrderList = new ArrayList<>();
            vipShopOrderList.add(vipShopOrder);
            saveVipShopOrders(vipShopOrderList);
        }
        return ReturnT.SUCCESS;
    }
    /**
     * 更新长时间未更新的订单号
     *
     * @param param
     * @return
     * @throws Exception
     */
    @XxlJob("order-vip-updateByLongTimeNoUpdate")
    public ReturnT<String> updateByLongTimeNoUpdate(String param) throws Exception {
        Date maxCreateTime = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24L * 30);
        Date minCreateTime = new Date(maxCreateTime.getTime() - 1000 * 60 * 60 * 24L * 60L);
        VipShopOrderMapper.DaoQuery daoQuery = new VipShopOrderMapper.DaoQuery();
        daoQuery.orderSubStatusName = "已付款";
        daoQuery.minCreateTime = minCreateTime;
        daoQuery.maxCreateTime = maxCreateTime;
        long count = vipShopOrderMapper.count(daoQuery);
        if (count > 0) {
            daoQuery.start = 0;
            daoQuery.count = (int) count;
            List<VipShopOrder> orderList = vipShopOrderMapper.list(daoQuery);
            for (VipShopOrder order : orderList) {
                try {
                    updateByOrderSn(order.getOrderSn());
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return ReturnT.SUCCESS;
    }
fanli/src/main/java/com/yeshi/fanli/lijin/manager/GoodsLijinMnager.java
@@ -210,7 +210,7 @@
        boolean hasCreateTime = false;
        BigDecimal fanliRate = null;
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) {
            fanliRate = getFanLiRate(uid);
            hasCreateTime = true;
        }
@@ -268,7 +268,7 @@
            return null;
        BigDecimal fanliRate = null;
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) {
            fanliRate = getFanLiRate(uid);
        }
@@ -423,7 +423,7 @@
    }
    public GoodsHongBaoListVO.UserLevelVO getUserLevel(VIPEnum vipRank, boolean fanli) {
    public GoodsHongBaoListVO.UserLevelVO getUserLevel(SystemEnum system, VIPEnum vipRank, boolean fanli) {
        GoodsHongBaoListVO.UserLevelVO userLevelVO = new GoodsHongBaoListVO.UserLevelVO();
        userLevelVO.setVipRank(vipRank.name());
        if (vipRank == VIPEnum.silver) {
@@ -432,7 +432,7 @@
            } else {
                userLevelVO.setDesc("铂金会员免广告,礼金红包提高216%");
            }
            userLevelVO.setLink(configService.getValue(ConfigKeyEnum.lijinVIPLink, SystemEnum.yhqjx));
            userLevelVO.setLink(configService.getValue(ConfigKeyEnum.lijinVIPLink, system));
        }
        return userLevelVO;
    }
fanli/src/main/java/com/yeshi/fanli/lijin/manager/UserLijinMnager.java
@@ -13,10 +13,14 @@
import com.ks.vip.pojo.Enums.VIPEnum;
import com.ks.vip.service.*;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.entity.config.SystemConfigKeyEnum;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.lijin.dto.TodayLijinCreatedInfo;
import com.yeshi.fanli.lijin.vo.UserLijinLevelInfoVO;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.account.UserUtil;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Component;
import org.yeshi.utils.TimeUtil;
@@ -81,11 +85,21 @@
    @Resource
    private ConfigService configService;
    @Resource
    private SystemConfigService systemConfigService;
    @Resource
    private UserInfoService userInfoService;
    private String getUid(Long uid) {
        if (uid == null)
            return null;
        return "tejia-" + uid;
        SystemEnum system = userInfoService.getUserSystem(uid);
        if (system == null)
            return null;
        return systemConfigService.getValueCache(SystemConfigKeyEnum.thirdAppUidPrefix, system) + uid;
    }
    public VIPEnum getVIPRank(Long uid) {
@@ -166,7 +180,7 @@
     * @return
     */
    public UserLijinLevelInfoVO getUserLevelInfo(Long uid, SystemEnum system) {
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) {
            VIPEnum rank = getVIPRank(uid);
            UserLijinLevelInfoVO vo = new UserLijinLevelInfoVO();
            vo.setUserLevel(getVIPRank(uid).name());
fanli/src/main/java/com/yeshi/fanli/log/vo/UserGoodsScanLog.java
New file
@@ -0,0 +1,87 @@
package com.yeshi.fanli.log.vo;
import com.yeshi.fanli.lijin.vo.GoodsDetailVO;
import com.yeshi.fanli.util.StringUtil;
import java.math.BigDecimal;
import java.util.Date;
public class UserGoodsScanLog {
    private Long uid;
    private String device;
    private String goodsId;
    private int goodsType;
    private String goodsTitle;
    private String zkPrice;
    private Date createTime;
    public Long getUid() {
        return uid;
    }
    public void setUid(Long uid) {
        this.uid = uid;
    }
    public String getDevice() {
        return device;
    }
    public void setDevice(String device) {
        this.device = device;
    }
    public String getGoodsId() {
        return goodsId;
    }
    public void setGoodsId(String goodsId) {
        this.goodsId = goodsId;
    }
    public int getGoodsType() {
        return goodsType;
    }
    public void setGoodsType(int goodsType) {
        this.goodsType = goodsType;
    }
    public String getGoodsTitle() {
        return goodsTitle;
    }
    public void setGoodsTitle(String goodsTitle) {
        this.goodsTitle = goodsTitle;
    }
    public String getZkPrice() {
        return zkPrice;
    }
    public void setZkPrice(String zkPrice) {
        this.zkPrice = zkPrice;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public static class UserGoodsScanLogFactory {
        public static UserGoodsScanLog create(GoodsDetailVO.GoodsInfoVO goodsInfoVO, Long uid, String utdId, String deviceId) {
            UserGoodsScanLog log = new UserGoodsScanLog();
            log.setDevice(StringUtil.isNullOrEmpty(utdId) ? deviceId : utdId);
            log.setGoodsId(goodsInfoVO.getGoodsId());
            log.setGoodsTitle(goodsInfoVO.getTitle());
            log.setGoodsType(goodsInfoVO.getGoodsType());
            log.setUid(uid);
            log.setZkPrice(goodsInfoVO.getZkPrice());
            log.setCreateTime(new Date());
            return log;
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -1721,7 +1721,7 @@
                                for (String st : activityIdList)
                                    content = content.replace(st, "");
                                content = content.replace("{relationId}", "");
                                if (system == SystemEnum.yhqjx) {
                                if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) {
                                    content = content.replace("\n", "<br>");
                                }
                                commentInfoNew.setContent(content);
@@ -1813,7 +1813,7 @@
                                    simpleGoods.setState(1);
                                    simpleGoods.setRemarks("评论验证下架");
                                }
                                if (system == SystemEnum.yhqjx) {
                                if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) {
                                    imgInfo.setGoods(null);
                                }
                            }
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarUserServiceImpl.java
@@ -43,7 +43,7 @@
                    device = null;
                }
                // 自定义导航
                List<HomeNavbarUser> listUserNavbar = homeNavbarUserMapper.listEffectiveNavbars(uid, device);
                List<HomeNavbarUser> listUserNavbar = homeNavbarUserMapper.listEffectiveNavbars(uid, device,system);
                if (listUserNavbar != null && listUserNavbar.size() > 0) {
                    // 固定导航
@@ -97,7 +97,7 @@
    }
    @Override
    public List<HomeNavbarUser> listUserNavbar(Long uid, String device) throws HomeNavbarUserException {
    public List<HomeNavbarUser> listUserNavbar(Long uid, String device,SystemEnum system) throws HomeNavbarUserException {
        if (uid == null && StringUtil.isNullOrEmpty(device)) {
            throw new HomeNavbarUserException(1, "参数不正确");
        }
@@ -106,7 +106,7 @@
            device = null;
        }
        return homeNavbarUserMapper.listEffectiveNavbars(uid, device);
        return homeNavbarUserMapper.listEffectiveNavbars(uid, device,system);
    }
    @Override
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java
@@ -349,7 +349,6 @@
     * @param extract
     * @param session
     */
    @Transactional
    private void transfer(Extract extract, AdminUser adminUser) {
        Integer type = extract.getType();
        if (Constant.ZHIFUBAO == type) {
@@ -406,6 +405,15 @@
        return 0;
    }
    private String getOrderPrefix(SystemEnum system) {
        if (system == SystemEnum.yhqjx) {
            return "TJ";
        } else if (system == SystemEnum.hsb) {
            return "HSB";
        }
        return "";
    }
    /**
     * 提现到支付宝
     *
@@ -413,7 +421,6 @@
     * @param session
     */
    // TODO 转账逻辑需要改变,固定IP
    @Transactional
    private void extractByZhiFuBao(Extract extract, AdminUser adminUser) {
        LogHelper.userErrorInfo("提现:开始通过提现-" + extract.getId());
        //获取用户的系统
@@ -422,7 +429,7 @@
        //备注
        String remark = appName + "APP渠道提现";
        //理由
        String reason = String.format("用户ID【%s】发起的提现", user.getSystem() == SystemEnum.yhqjx ? "TJ" + user.getId() : user.getId() + "");
        String reason = String.format("用户ID【%s】发起的提现", getOrderPrefix(user.getSystem()) + user.getId());
        AlipayFundTransUniTransferResponse response = null;
        try {
@@ -452,7 +459,7 @@
        UserInfo user = extract.getUserInfo();
        // MoneyRecord moneyRecord = new MoneyRecord(user, null, extract
        // .getMoney(), "提现", "提现失败", new Date().getTime(), 3);
        if ("PAYER_BALANCE_NOT_ENOUGH".equals(subCode)) {
        if ("PAYER_BALANCE_NOT_ENOUGH".equals(subCode) || "BALANCE_IS_NOT_ENOUGH".equals(subCode)) {
            Extract updateExtract = new Extract();
            updateExtract.setId(extract.getId());
            updateExtract.setState(Constant.EXTRACT_DEFUALT);
@@ -506,7 +513,6 @@
     * @param extract
     * @param session
     */
    @Transactional
    private void extractSuccess(Extract extract, String alipayNo) {
        // 老版本功能
        // List<MoneyRecord> list = moneyRecordDao.list("from MoneyRecord mr
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -1317,6 +1317,30 @@
        return commonOrderList;
    }
    private boolean needUpdateCommonOrder(CommonOrder oldCommonOrder, CommonOrder newCommonOrder) {
        // 非京东已经结算,已经失效,状态未改变的订单不处理
        if ((oldCommonOrder.getState() == CommonOrder.STATE_JS
                && oldCommonOrder.getSourceType() != Constant.SOURCE_TYPE_JD)
                || oldCommonOrder.getState() == CommonOrder.STATE_SX
                || oldCommonOrder.getState() == CommonOrder.STATE_WQ) {
            return false;
        }
        //状态相同且付款金额,结算金额一致时才不需要更新
        if (oldCommonOrder.getState().intValue() == newCommonOrder.getState()) {
            if (oldCommonOrder.getPayment().compareTo(newCommonOrder.getPayment()) == 0) {
                if (oldCommonOrder.getSettlement() == null && newCommonOrder.getSettlement() == null) {
                    return false;
                } else if (oldCommonOrder.getSettlement() != null && newCommonOrder.getSettlement() != null && oldCommonOrder.getSettlement().compareTo(newCommonOrder.getSettlement()) == 0) {
                    return false;
                }
            }
        }
        return true;
    }
    /**
     * 添加订单
     *
@@ -1378,12 +1402,8 @@
                    commonOrder.getTradeId(), new Date(), commonOrder.getSourceType()));
            return new CommonOrderAddResultDTO(commonOrder, CommonOrderAddResultDTO.TYPE_ADD);
        } else {// 修改
            // 非京东已经结算,已经失效,状态未改变的订单不处理
            if ((oldCommonOrder.getState() == CommonOrder.STATE_JS
                    && oldCommonOrder.getSourceType() != Constant.SOURCE_TYPE_JD)
                    || oldCommonOrder.getState() == CommonOrder.STATE_SX
                    || oldCommonOrder.getState() == CommonOrder.STATE_WQ
                    || (oldCommonOrder.getState().intValue() == commonOrder.getState()&&oldCommonOrder.getPayment().compareTo(commonOrder.getPayment())==0)) {
            if (!needUpdateCommonOrder(oldCommonOrder, commonOrder)) {
                return new CommonOrderAddResultDTO(oldCommonOrder, CommonOrderAddResultDTO.TYPE_NOUPDATE);
            }
            // 交易ID一致才修改
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
@@ -73,7 +73,7 @@
    public BigDecimal computeFanliMoney(CommonOrder order, UserLevelEnum userLevel) {
        SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
        BigDecimal rate = null;
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            rate = userLijinMnager.getUserFanliRate(order.getUserInfo().getId(), order.getThirdCreateTime());
        } else {
            rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(), system)
@@ -97,7 +97,7 @@
    public BigDecimal computeShareMoney(CommonOrder order, UserLevelEnum userLevel) {
        SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return new BigDecimal(0);
        }
@@ -121,7 +121,7 @@
    public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer,
                                              List<UserTeamLevel> bossLevelList) {
        SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return new BigDecimal(0);
        }
        BigDecimal rate = null;
@@ -150,7 +150,7 @@
    public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer,
                                               List<UserTeamLevel> bossLevelList) {
        SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return new BigDecimal(0);
        }
        BigDecimal rate = null;
@@ -187,7 +187,7 @@
     * @Description:
     */
    private BigDecimal getOfficialSubsidyRate(Date date, UserLevelEnum userLevel, boolean share, SystemEnum system) {
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return new BigDecimal(0);
        }
        String key = null;
@@ -205,7 +205,7 @@
    }
    private BigDecimal getRateByLevel(UserLevelEnum level, Date date, SystemEnum system) {
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return new BigDecimal(0);
        }
        BigDecimal baseRate = hongBaoManageService.getBaseFanliRateCache(
@@ -219,7 +219,7 @@
    @Override
    public UserTeamRate getTeamRewardRate(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList, Date date,
                                          int deep, SystemEnum system) {
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return null;
        }
        if (deep == 1) {// 直接邀请人奖金
@@ -286,7 +286,7 @@
    @Override
    public List<UserTeamRate> getTeamRewardMoreThan2LevelRates(UserLevelEnum buyerLevel,
                                                               List<UserTeamLevel> bossLevelList, Date date, SystemEnum system) {
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return null;
        }
        if (bossLevelList == null || bossLevelList.size() < 3)
@@ -321,7 +321,7 @@
    @Override
    public List<UserTeamRate> getTeamDividentsRates(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList,
                                                    Date date, SystemEnum system) {
        if (system == SystemEnum.yhqjx) {
        if (system == SystemEnum.yhqjx||system == SystemEnum.hsb) {
            return null;
        }
        List<UserTeamRate> rateList = new ArrayList<>();
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
@@ -13,6 +13,8 @@
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -63,6 +65,8 @@
@Service
public class OrderMoneySettleServiceImpl implements OrderMoneySettleService {
    Logger logger = LoggerFactory.getLogger(OrderMoneySettleService.class);
    @Resource
    private HongBaoV2Mapper hongBaoV2Mapper;
@@ -530,6 +534,7 @@
    private void fanliInvite(List<HongBaoV2> hongBaoList, Long uid, int sourceType, String key, Date maxPreGetTime)
            throws TeamEincomeRecordException, ParamsException, TeamRewardDebtException {
        logger.info("邀请奖金预到账:uid-{} sourceType-{} key-{}", new Object[]{uid, sourceType, key});
        List<Long> hbIdList = new ArrayList<>();
        BigDecimal invitemoney = new BigDecimal(0);
        Set<String> inviteOrders = new HashSet<>();
@@ -541,6 +546,7 @@
                continue;
            hongBao = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hongBao.getId());
            if (hongBao.getState() == HongBaoV2.STATE_BUKELINGQU || hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
                logger.info("邀请奖金预到账-每个红包-到账开始:hongbaoid-{}", hongBao.getId());
                TeamRewardDebt debt = teamRewardDebtService.selectBySourceId(hongBao.getId());
                BigDecimal money = hongBao.getMoney();
                if (debt != null && debt.getLeftMoney().compareTo(new BigDecimal(0)) > 0
@@ -548,8 +554,9 @@
                    money = money.subtract(debt.getLeftMoney());
                    // 还钱
                    teamRewardDebtService.repayDebt(debt.getId(), debt.getLeftMoney(), null);
                    logger.info("邀请奖金预到账-每个红包-还款:hongbaoid-{} debtId-{} debtMoney-{}", new Object[]{hongBao.getId(), debt.getId(), debt.getLeftMoney()});
                }
                logger.info("邀请奖金预到账-每个红包:hongbaoid-{} money-{}", new Object[]{hongBao.getId(), money});
                invitemoney = invitemoney.add(money);
                HongBaoV2 updateHongBao = new HongBaoV2();
                updateHongBao.setId(hongBao.getId());
@@ -561,6 +568,7 @@
                hbIdList.add(hongBao.getId());
                HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getParent().getId());
                inviteOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
                logger.info("邀请奖金预到账-每个红包-到账成功:hongbaoid-{}", hongBao.getId());
            }
        }
@@ -568,6 +576,7 @@
        if (invitemoney.compareTo(new BigDecimal(0)) > 0) {
            // 获取当前的月份
            teamRewardManager.addToEincome(uid, maxPreGetTime, invitemoney, sourceType);
            logger.info("邀请奖金预到账-添加到团队收益成功:uid-{} day-{} money-{} sourceType-{}", new Object[]{uid, maxPreGetTime, invitemoney, sourceType});
        }
        hongBaoV2SettleTempService.addTemp(hbIdList, key);
fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java
@@ -43,7 +43,6 @@
        addOrderStatistics(uid, orderId, orderType, Constant.TYPE_REBATE, goodsCount, payMoney, money, downTime, null, needNotify);
        SystemEnum system = userInfoService.getUserSystem(uid);
        if (needNotify) {
            PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(orderType, orderId, money);
            try {
@@ -54,6 +53,7 @@
                e.printStackTrace();
            }
        }
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushServiceImpl.java
@@ -433,7 +433,7 @@
                    versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system);
            }
            try {
                newPush(system, uidList, versionCodeList, null, title, content, NewPushExtraParamsFactory.createBaichuan(jumpDetailV2Service.getByTypeCache("system_msg", system), url));
                newPush(system, uidList, versionCodeList, null, title, content, NewPushExtraParamsFactory.createBaichuan(jumpDetailV2Service.getByTypeCache("baichuan", system), url));
            } catch (BPushTaskException e) {
                logger.error("推送-百川:{}", url, e);
            }
@@ -707,11 +707,12 @@
        uidSet.add(6857703L);
        uidSet.add(6845887L);
        if (!uidSet.contains(uidList.get(0))) {
            return;
        }
//      取消灰度测试
//        if (!uidSet.contains(uidList.get(0))) {
//            return;
//      }
        logger.debug("新版推送灰度测试开始:title-{} content-{}", new Object[]{title, content});
        logger.debug("新版推送开始:title-{} content-{}", new Object[]{title, content});
        BPushFilter filter = new BPushFilter();
fanli/src/main/java/com/yeshi/fanli/service/inter/homemodule/HomeNavbarUserService.java
@@ -39,7 +39,7 @@
     * @return
     * @throws HomeNavbarUserException
     */
    public List<HomeNavbarUser> listUserNavbar(Long uid, String device) throws HomeNavbarUserException;
    public List<HomeNavbarUser> listUserNavbar(Long uid, String device,SystemEnum system) throws HomeNavbarUserException;
    /**
     * 同步设备上的设置
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -2062,11 +2062,12 @@
    }
    /**
     * 获取淘宝系统时间
     * 获取淘宝系统时间(收费API,谨慎调用)
     *
     * @return
     */
    public static Date getTaoBaoSystemTime() {   Map<String, String> map = new HashMap<>();
    public static Date getTaoBaoSystemTime() {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.time.get");
        try {
            JSONObject json = TaoKeBaseUtil.baseRequest(map, false);
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java
@@ -123,91 +123,7 @@
                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("item_id"));
                    taoBaoOrder.setClassName(item.optString("item_category_name"));
                    taoBaoOrder.setClickTime(item.optString("click_time"));
                    taoBaoOrder.setPayTime(item.optString("tb_paid_time"));
                    taoBaoOrder.setCount(item.optInt("item_num"));
                    taoBaoOrder.setCreateTime(item.optString("tk_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")));
                    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));
                    if (StringUtil.isNullOrEmpty(item.optString("item_price")))
                        taoBaoOrder.setPrice(new BigDecimal(0));
                    else
                        taoBaoOrder.setPrice(new BigDecimal(item.optString("item_price")));
                    if (!StringUtil.isNullOrEmpty(item.optString("pay_price")))
                        taoBaoOrder.setSettlement(new BigDecimal(item.optString("pay_price")));
                    else
                        taoBaoOrder.setSettlement(taoBaoOrder.getPayment());
                    taoBaoOrder.setSettlementTime(item.optString("tk_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")));
                    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")));
                    else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate")))
                        taoBaoOrder.setTkRate(new BigDecimal(item.optString("total_commission_rate")));
                    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"));
                    if (goods.getImg() != null && !goods.getImg().startsWith("http")) {
                        goods.setImg("http:" + goods.getImg());
                    }
                    taoBaoOrder.setGoods(goods);
                    TaoBaoOrder taoBaoOrder = parseTaoBaoOrderNew(item);
                    orderList.add(taoBaoOrder);
                } catch (Exception e) {
                    try {
@@ -515,6 +431,95 @@
    }
    public static TaoBaoOrder parseTaoBaoOrderNew(JSONObject item) {
        TaoBaoOrder taoBaoOrder = new TaoBaoOrder();
        taoBaoOrder.setAdPositionId(item.optString("adzone_id"));
        taoBaoOrder.setAdPositionName(item.optString("adzone_name"));
        taoBaoOrder.setAuctionId(item.optLong("item_id"));
        taoBaoOrder.setClassName(item.optString("item_category_name"));
        taoBaoOrder.setClickTime(item.optString("click_time"));
        taoBaoOrder.setPayTime(item.optString("tb_paid_time"));
        taoBaoOrder.setCount(item.optInt("item_num"));
        taoBaoOrder.setCreateTime(item.optString("tk_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")));
        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));
        if (StringUtil.isNullOrEmpty(item.optString("item_price")))
            taoBaoOrder.setPrice(new BigDecimal(0));
        else
            taoBaoOrder.setPrice(new BigDecimal(item.optString("item_price")));
        if (!StringUtil.isNullOrEmpty(item.optString("pay_price")))
            taoBaoOrder.setSettlement(new BigDecimal(item.optString("pay_price")));
        else
            taoBaoOrder.setSettlement(taoBaoOrder.getPayment());
        taoBaoOrder.setSettlementTime(item.optString("tk_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")));
        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")));
        else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate")))
            taoBaoOrder.setTkRate(new BigDecimal(item.optString("total_commission_rate")));
        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"));
        if (goods.getImg() != null && !goods.getImg().startsWith("http")) {
            goods.setImg("http:" + goods.getImg());
        }
        taoBaoOrder.setGoods(goods);
        return taoBaoOrder;
    }
    @Deprecated
    public static List<TaoBaoOrder> queryTaoBaoOrder(OrderQuery orderQuery, String appKey, String appSecret) {
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeScApiUtil.java
@@ -1966,7 +1966,7 @@
    }
    /**
     * 获取淘宝系统时间
     * 获取淘宝系统时间(收费API,谨慎调用)
     *
     * @return
     */
fanli/src/main/java/com/yeshi/fanli/util/vipshop/DingDanXiaApiUtil.java
New file
@@ -0,0 +1,138 @@
package com.yeshi.fanli.util.vipshop;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.dto.vip.VIPConvertResultDTO;
import com.yeshi.fanli.dto.vipshop.VipShopOrderQueryModel;
import com.yeshi.fanli.dto.vipshop.VipShopQueryOrderResultDTO;
import com.yeshi.fanli.entity.vipshop.VipShopOrder;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import java.lang.reflect.Type;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
 * 订单侠
 */
public class DingDanXiaApiUtil {
    private final static String API_KEY = "1VCQjf4ymNbNAhvhDZA7WDFgSv6mnDxN";
    public static VIPConvertResultDTO convertLink(String goodsId, String tag) {
        String url = "http://api.tbk.dingdanxia.com/vip/id_privilege?apikey=" + API_KEY;
        url += "&id=" + goodsId;
        if (tag != null) {
            url += "&chanTag=" + tag;
        }
        String result = HttpUtil.get(url);
        System.out.println(result);
        JSONObject data = JSONObject.fromObject(result);
        if (data.optInt("code") != 200) {
            return null;
        }
        data = data.optJSONObject("data");
        Gson gson = JsonUtil.getSimpleGson();
        return gson.fromJson(data.toString(), VIPConvertResultDTO.class);
    }
    public static VIPConvertResultDTO convertLinkByUrl(String url, String tag) {
        String baseUrl = "http://api.tbk.dingdanxia.com/vip/url_privilege?apikey=" + API_KEY;
        baseUrl += "&url=" + URLEncoder.encode(url);
        if (tag != null) {
            baseUrl += "&chanTag=" + tag;
        }
        String result = HttpUtil.get(baseUrl);
        System.out.println(result);
        JSONObject data = JSONObject.fromObject(result);
        if (data.optInt("code") != 200) {
            return null;
        }
        data = data.optJSONObject("data");
        Gson gson = JsonUtil.getSimpleGson();
        return gson.fromJson(data.toString(), VIPConvertResultDTO.class);
    }
    public static VipShopQueryOrderResultDTO getOrderList(VipShopOrderQueryModel query) {
        String url = "http://api.tbk.dingdanxia.com/vip/order_details2?apikey=" + API_KEY;
        url += "&page=" + query.getPage();
        if (query.getPageSize() != null) {
            url += "&pageSize=" + query.getPageSize();
        }
        if (query.getOrderTimeStart() != null) {
            url += "&orderTimeStart=" + query.getOrderTimeStart();
        }
        if (query.getOrderTimeEnd() != null) {
            url += "&orderTimeEnd=" + query.getOrderTimeEnd();
        }
        if (query.getStatus() != null) {
            url += "&status=" + query.getStatus();
        }
        if (query.getUpdateTimeStart() != null) {
            url += "&updateTimeStart=" + query.getUpdateTimeStart();
        }
        if (query.getUpdateTimeEnd() != null) {
            url += "&updateTimeEnd=" + query.getUpdateTimeEnd();
        }
        String result = HttpUtil.get(url);
        System.out.println(result);
        JSONObject data = JSONObject.fromObject(result);
        if (data.optInt("code") != 200) {
            return null;
        }
        int total = data.optInt("total_results");
        JSONArray array = JSONArray.fromObject(data.optJSONArray("data"));
        if (array == null)
            return null;
        Type type = new TypeToken<ArrayList<VipShopOrder>>() {
        }.getType();
        List<VipShopOrder> orderList = new Gson().fromJson(array.toString(), type);
        return new VipShopQueryOrderResultDTO(orderList, total);
    }
    public static VipShopOrder getOrderDetail(String orderSn) {
        String url = "http://api.tbk.dingdanxia.com/vip/order_details?apikey=" + API_KEY;
        url += "&orderSn=" + orderSn;
        String result = HttpUtil.get(url);
        System.out.println(result);
        JSONObject data = JSONObject.fromObject(result);
        if (data.optInt("code") != 200) {
            return null;
        }
        VipShopOrder vipShopOrder = new Gson().fromJson(data.optJSONObject("data").toString(), VipShopOrder.class);
        return vipShopOrder;
    }
    public static void main(String[] args) {
//        convertLinkByUrl("6918302458239328477", "123");
//        convertLinkByUrl("https://t.vip.com/T7RyKKCJLj9", "437032");
//        VipShopOrderQueryModel queryModel = new VipShopOrderQueryModel();
//        queryModel.setPage(1);
//        queryModel.setPageSize(20);
//        queryModel.setOrderTimeEnd(System.currentTimeMillis());
//        queryModel.setOrderTimeStart(System.currentTimeMillis() - 1000 * 60 * 60 * 48L);
//        VipShopQueryOrderResultDTO resultDTO = getOrderList(queryModel);
//        System.out.println(resultDTO);
        getOrderDetail("21081436395569");
    }
}
fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopSCApiUtil.java
New file
@@ -0,0 +1,268 @@
package com.yeshi.fanli.util.vipshop;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.dto.vip.VIPConvertResultDTO;
import com.yeshi.fanli.dto.vip.VIPSearchFilter;
import com.yeshi.fanli.dto.vip.VIPSearchResult;
import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
import com.yeshi.fanli.dto.vipshop.VipShopOrderQueryModel;
import com.yeshi.fanli.dto.vipshop.VipShopQueryOrderResultDTO;
import com.yeshi.fanli.entity.vipshop.VipShopOrder;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.StringUtil;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;
import java.net.URLEncoder;
import java.util.*;
/**
 * 唯品会接口服务商接口
 * 权限文档: https://vop.vip.com/home#/console/app/detail/permission/2343e85c
 *
 * @author Administrator
 */
public class VipShopSCApiUtil {
    private final static String appKey = "2343e85c";
    private final static String appSecret = "16AC47F90859E29078FD59E5A951E335";
    /**
     * 文档:https://vop.vip.com/doccenter/viewdoc/33
     * 授权链接:https://auth.vip.com/oauth2/authorize?client_id=9870c528&response_type=code&redirect_uri=http://www.baidu.com#
     *
     * @param code
     * @return
     */
    private static String getAccessToken(String code) {
        //EFCD81A1A311349E2043F9D97B456B277165D3FE
        Map<String, String> params = new HashMap<>();
        params.put("client_id", appKey);
        params.put("client_secret", appSecret);
        params.put("grant_type", "authorization_code");
        params.put("redirect_uri", "http://www.baidu.com");
        params.put("request_client_ip", "192.168.3.122");
        params.put("code", code);
        List<String> list = new ArrayList<>();
        for (Iterator<String> its = params.keySet().iterator(); its.hasNext(); ) {
            String key = its.next();
            list.add(key + "=" + URLEncoder.encode(params.get(key)));
        }
        String url = "https://auth.vip.com/oauth2/token?" + StringUtil.concat(list, "&");
        String result = HttpUtil.post(url);
        JSONObject data = JSONObject.fromObject(result);
        return data.optString("access_token");
    }
    /**
     * 获取签名
     *
     * @param params
     * @return
     */
    private static String getSign(Map<String, String> systemParams, JSONObject taskParams) {
        List<String> list = new ArrayList<>();
        for (Iterator<String> its = systemParams.keySet().iterator(); its.hasNext(); ) {
            String key = its.next();
            String value = systemParams.get(key);
            list.add(key + value);
        }
        Collections.sort(list);
        String source = "";
        for (String st : list)
            source += st;
        source += taskParams.toString();
        return StringUtil.MD5Hmac(source, appSecret);
    }
    private static Map<String, String> getSystemParams(String service, String method) {
        Map<String, String> params = new HashMap<String, String>();
        params.put("service", service);
        params.put("method", method);
        params.put("version", "1.0");
        params.put("timestamp", System.currentTimeMillis() / 1000 + "");
        params.put("format", "json");
        params.put("appKey", appKey);
        params.put("accessToken", "EFCD81A1A311349E2043F9D97B456B277165D3FE");
        return params;
    }
    /**
     * 基础请求
     *
     * @param service
     * @param method
     * @param taskParams
     * @return
     */
    private static String baseRequest(String service, String method, JSONObject taskParams) {
        Map<String, String> systemParams = getSystemParams(service, method);
        String sign = getSign(systemParams, taskParams);
        systemParams.put("sign", sign);
        String baseUrl = "https://gw.vipapis.com";
        baseUrl += "?";
        for (Iterator<String> its = systemParams.keySet().iterator(); its.hasNext(); ) {
            String key = its.next();
            String value = "";
            try {
                value = URLEncoder.encode(systemParams.get(key), "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            baseUrl += key + "=" + value + "&";
        }
        baseUrl = baseUrl.endsWith("&") ? baseUrl.substring(0, baseUrl.length() - 1) : baseUrl;
        String result = post(baseUrl, taskParams.toString());
        return result;
    }
    @SuppressWarnings("deprecation")
    private static String post(String url, String body) {
        HttpClient client = new HttpClient();
        PostMethod method = new PostMethod(url);
        method.addRequestHeader("Content-Type", "application/json;charset=UTF-8");
        method.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
        method.setRequestBody(body);
        try {
            client.executeMethod(method);
            return method.getResponseBodyAsString();
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 商品ID转链
     *
     * @param goodsId
     */
    public static VIPConvertResultDTO convertLink(String goodsId, String tag) {
        JSONObject taskParams = new JSONObject();
        JSONArray goodsIdArray = new JSONArray();
        goodsIdArray.add(goodsId);
        taskParams.put("goodsIdList", goodsIdArray);
        taskParams.put("chanTag", tag);
        taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
        String result = baseRequest("com.vip.adp.api.open.service.UnionUrlService", "genByGoodsIdWithOauth",
                JSONObject.fromObject(taskParams));
        System.out.println(result);
        JSONObject resultJSON = JSONObject.fromObject(result);
        if (resultJSON.optInt("returnCode") == 0) {
            String re = resultJSON.optJSONObject("result").optJSONArray("urlInfoList").optJSONObject(0).toString();
            return new Gson().fromJson(re, VIPConvertResultDTO.class);
        }
        return null;
    }
    public static VIPConvertResultDTO convertLinkByUrl(String url, String tag) {
        JSONObject taskParams = new JSONObject();
        JSONArray urlArray = new JSONArray();
        urlArray.add(url);
        taskParams.put("urlList", urlArray);
        if (tag != null) {
            taskParams.put("chanTag", tag);
        }
        taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
        String result = baseRequest("com.vip.adp.api.open.service.UnionUrlService", "genByVIPUrl",
                JSONObject.fromObject(taskParams));
        System.out.println(result);
        JSONObject resultJSON = JSONObject.fromObject(result);
        if (resultJSON.optInt("returnCode") == 0) {
            String re = resultJSON.optJSONObject("result").optJSONArray("urlInfoList").optJSONObject(0).toString();
            return new Gson().fromJson(re, VIPConvertResultDTO.class);
        }
        return null;
    }
    /**
     * 根据商品ID获取商品详情
     *
     * @param goodsIdList
     * @return
     */
    public static List<VIPGoodsInfo> getGoodsDetail(List<String> goodsIdList) {
        JSONObject params = new JSONObject();
        params.put("goodsIdList", goodsIdList);
        params.put("requestId", UUID.randomUUID());
        String result = baseRequest("com.vip.adp.api.open.service.UnionGoodsService", "getByGoodsIds",
                JSONObject.fromObject(params));
        System.out.println(result);
        JSONObject resultJson = JSONObject.fromObject(result);
        Gson gson = new Gson();
        List<VIPGoodsInfo> goodsList = new ArrayList<>();
        if (resultJson.optInt("returnCode") == 0) {
            JSONArray array = resultJson.optJSONArray("result");
            for (int i = 0; i < array.size(); i++) {
                VIPGoodsInfo info = gson.fromJson(array.optJSONObject(i).toString(), VIPGoodsInfo.class);
                if (info != null)
                    goodsList.add(info);
            }
            return goodsList;
        }
        return null;
    }
    /**
     * 获取商品详情
     *
     * @param goodsId
     * @return
     */
    public static VIPGoodsInfo getGoodsDetail(String goodsId) {
        List<String> goodsIdList = new ArrayList<>();
        goodsIdList.add(goodsId);
        List<VIPGoodsInfo> goodsList = getGoodsDetail(goodsIdList);
        if (goodsList == null || goodsList.size() == 0)
            return null;
        return goodsList.get(0);
    }
    public static VipShopQueryOrderResultDTO getOrderList(VipShopOrderQueryModel query) {
        JSONObject params = JSONObject.fromObject(new Gson().toJson(query));
        params.put("requestId", UUID.randomUUID());
        JSONObject root = new JSONObject();
        root.put("queryModel", params);
        String result = baseRequest("com.vip.adp.api.open.service.UnionOrderService", "orderList", root);
        System.out.println(result);
        JSONObject json = JSONObject.fromObject(result);
        if (json.optInt("returnCode") == 0) {
            JSONObject resultJson = json.optJSONObject("result");
            int total = resultJson.optInt("total");
            JSONArray array = JSONArray.fromObject(resultJson.optJSONArray("orderInfoList"));
            if (array != null) {
                Type type = new TypeToken<ArrayList<VipShopOrder>>() {
                }.getType();
                List<VipShopOrder> orderList = new Gson().fromJson(array.toString(), type);
                return new VipShopQueryOrderResultDTO(orderList, total);
            }
        }
        return null;
    }
    public static void main(String[] args) {
        VipShopOrderQueryModel model = new VipShopOrderQueryModel();
        model.setPage(1);
        model.setPageSize(20);
        model.setOrderSnList(Arrays.asList(new String[]{"21081436395569", "21072601507337"}));
        VipShopQueryOrderResultDTO dto = getOrderList(model);
        System.out.println(dto);
    }
}
fanli/src/main/resource/mapping/homemodule/HomeNavbarUserMapper.xml
@@ -9,7 +9,8 @@
    <result column="hnu_order" property="order" jdbcType="INTEGER"/>
    <result column="hnu_create_time" property="createTime" jdbcType="TIMESTAMP"/>
    
    <association property="homeNavbar" column="hnu_navbar_id" javaType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbar">
        <association property="homeNavbar" column="hnu_navbar_id"
                     javaType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbar">
        <id column="hnu_navbar_id" property="id" jdbcType="BIGINT" />    
    </association>
  </resultMap>
@@ -20,16 +21,20 @@
    <result column="hnu_device" property="device" jdbcType="VARCHAR"/>
    <result column="hnu_order" property="order" jdbcType="INTEGER"/>
    <result column="hnu_create_time" property="createTime" jdbcType="TIMESTAMP"/>
    <association property="homeNavbar" column="hnu_navbar_id" resultMap="com.yeshi.fanli.dao.mybatis.homemodule.HomeNavbarMapper.BaseResultMap"/>
        <association property="homeNavbar" column="hnu_navbar_id"
                     resultMap="com.yeshi.fanli.dao.mybatis.homemodule.HomeNavbarMapper.BaseResultMap"/>
  </resultMap>
  
  <sql id="Base_Column_List">hnu_id,hnu_uid,hnu_device,hnu_order,hnu_navbar_id,hnu_create_time</sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">select
    <include refid="Base_Column_List"/>from yeshi_ec_home_navbar_user where hnu_id = #{id,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from yeshi_ec_home_navbar_user where hnu_id = #{id,jdbcType=BIGINT}</delete>
  <insert id="insert" parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_home_navbar_user (hnu_id,hnu_uid,hnu_device,hnu_order,hnu_navbar_id,hnu_create_time) values (#{id,jdbcType=BIGINT},#{uid,jdbcType=BIGINT},#{device,jdbcType=VARCHAR},#{order,jdbcType=INTEGER},#{homeNavbar.id,jdbcType=BIGINT},#{createTime,jdbcType=TIMESTAMP})</insert>
  <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_home_navbar_user
    <delete id="deleteByPrimaryKey"
            parameterType="java.lang.Long">delete from yeshi_ec_home_navbar_user where hnu_id = #{id,jdbcType=BIGINT}</delete>
    <insert id="insert" parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser" useGeneratedKeys="true"
            keyProperty="id">insert into yeshi_ec_home_navbar_user (hnu_id,hnu_uid,hnu_device,hnu_order,hnu_navbar_id,hnu_create_time) values (#{id,jdbcType=BIGINT},#{uid,jdbcType=BIGINT},#{device,jdbcType=VARCHAR},#{order,jdbcType=INTEGER},#{homeNavbar.id,jdbcType=BIGINT},#{createTime,jdbcType=TIMESTAMP})</insert>
    <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser"
            useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_home_navbar_user
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">hnu_id,</if>
      <if test="uid != null">hnu_uid,</if>
@@ -37,7 +42,8 @@
      <if test="order != null">hnu_order,</if>
      <if test="homeNavbar != null">hnu_navbar_id,</if>
      <if test="createTime != null">hnu_create_time,</if>
    </trim>values
        </trim>
        values
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">#{id,jdbcType=BIGINT},</if>
      <if test="uid != null">#{uid,jdbcType=BIGINT},</if>
@@ -47,15 +53,18 @@
      <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
    </trim>
  </insert>
  <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser">update yeshi_ec_home_navbar_user set hnu_uid = #{uid,jdbcType=BIGINT},hnu_device = #{device,jdbcType=VARCHAR},hnu_order = #{order,jdbcType=INTEGER},hnu_navbar_id = #{homeNavbar.id,jdbcType=BIGINT},hnu_create_time = #{createTime,jdbcType=TIMESTAMP} where hnu_id = #{id,jdbcType=BIGINT}</update>
  <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser">update yeshi_ec_home_navbar_user
    <update id="updateByPrimaryKey"
            parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser">update yeshi_ec_home_navbar_user set hnu_uid = #{uid,jdbcType=BIGINT},hnu_device = #{device,jdbcType=VARCHAR},hnu_order = #{order,jdbcType=INTEGER},hnu_navbar_id = #{homeNavbar.id,jdbcType=BIGINT},hnu_create_time = #{createTime,jdbcType=TIMESTAMP} where hnu_id = #{id,jdbcType=BIGINT}</update>
    <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.bus.homemodule.HomeNavbarUser">update
        yeshi_ec_home_navbar_user
    <set>
      <if test="uid != null">hnu_uid=#{uid,jdbcType=BIGINT},</if>
      <if test="device != null">hnu_device=#{device,jdbcType=VARCHAR},</if>
      <if test="order != null">hnu_order=#{order,jdbcType=INTEGER},</if>
      <if test="homeNavbar != null">hnu_navbar_id=#{homeNavbar.id,jdbcType=BIGINT},</if>
      <if test="createTime != null">hnu_create_time=#{createTime,jdbcType=TIMESTAMP},</if>
    </set> where hnu_id = #{id,jdbcType=BIGINT}
        </set>
        where hnu_id = #{id,jdbcType=BIGINT}
  </update>
  
    <!-- 批量插入数据 -->
@@ -97,7 +106,8 @@
      <delete id="deleteByPrimaryKeyBatch" parameterType="java.util.List">
        DELETE FROM yeshi_ec_home_navbar_user WHERE hnu_id in
        <foreach collection="list" item="item" open="(" close=")"
            separator=",">#{item}</foreach>
                 separator=",">#{item}
        </foreach>
    </delete>
    
    <delete id="deleteByUid">
@@ -116,6 +126,10 @@
    WHERE h.br_state = 1 
          AND IF(h.br_start_time IS NULL,TRUE, h.br_start_time<![CDATA[<=]]> NOW()) 
          AND IF(h.br_end_time IS NULL,TRUE, h.br_end_time <![CDATA[>=]]> NOW())
        <if test="system!=null">
            AND h.br_system=#{system}
        </if>
        <if test="uid != null"> AND u.`hnu_uid` = #{uid} </if>
        <if test="device != null"> AND u.`hnu_device` = #{device}</if>
    ORDER BY u.`hnu_order`
@@ -127,10 +141,6 @@
        <if test="uid != null"> AND u.`hnu_uid` = #{uid} </if>
        <if test="device != null"> AND u.`hnu_device` = #{device}</if>
  </select>
  
  
</mapper>
fanli/src/main/resource/mapping/push/PushInfoMapper.xml
@@ -95,7 +95,7 @@
        <if test="key != null and key !='' ">
            <if test="keyType == 1">AND pi_title like '%#{key}%'</if>
            <if test="keyType == 2">AND pi_content like '%#{key}%'</if>
            <if test="keyType == 3">AND pi_uids like '%#{key}%'</if>
            <if test="keyType == 3">AND pi_uids like '%${key}%'</if>
        </if>
        <if test="state != null">
            AND pi_state = #{state}
@@ -110,7 +110,7 @@
        <if test="key != null and key !='' ">
            <if test="keyType == 1">AND pi_title like '%#{key}%'</if>
            <if test="keyType == 2">AND pi_content like '%#{key}%'</if>
            <if test="keyType == 3">AND pi_uids like '%#{key}%'</if>
            <if test="keyType == 3">AND pi_uids like '%${key}%'</if>
        </if>
        <if test="state != null">
            AND pi_state = #{state}
fanli/src/main/resource/mapping/vipshop/VipShopOrderMapper.xml
@@ -51,6 +51,45 @@
        from yeshi_ec_vipshop_order where vo_order_sn = #{0}
    </select>
    
    <sql id="listWhere">
        <if test="query.orderSubStatusName!=null">
            and vo_order_sub_status_name=#{query.orderSubStatusName}
        </if>
        <if test="query.minCreateTime!=null">
            and vo_create_time>=#{query.minCreateTime}
        </if>
        <if test="query.maxCreateTime!=null">
            and #{query.maxCreateTime}>vo_create_time
        </if>
    </sql>
    <select id="list" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from yeshi_ec_vipshop_order where 1=1
        <include refid="listWhere"></include>
        <if test="query.sortList!=null">
            <foreach collection="query.sortList" separator="," open=" order by " item="item" close=" ">
                #{item}
            </foreach>
        </if>
        limit #{query.start},#{query.count}
    </select>
    <select id="count" resultType="java.lang.Long">
        select
        count(*)
        from yeshi_ec_vipshop_order where 1=1
        <include refid="listWhere"></include>
    </select>
    
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
        yeshi_ec_vipshop_order where vo_id = #{id,jdbcType=BIGINT}</delete>
@@ -155,9 +194,11 @@
            <if test="orderSubStatusName != null">vo_order_sub_status_name=#{orderSubStatusName,jdbcType=VARCHAR},
            </if>
            <if test="commission != null">vo_commission=#{commission,jdbcType=DECIMAL},</if>
            <if test="afterSaleChangeCommission != null">vo_after_sale_change_commission=#{afterSaleChangeCommission,jdbcType=VARCHAR},
            <if test="afterSaleChangeCommission != null">
                vo_after_sale_change_commission=#{afterSaleChangeCommission,jdbcType=VARCHAR},
            </if>
            <if test="afterSaleChangeGoodsCount != null">vo_after_sale_change_goods_count=#{afterSaleChangeGoodsCount,jdbcType=INTEGER},
            <if test="afterSaleChangeGoodsCount != null">
                vo_after_sale_change_goods_count=#{afterSaleChangeGoodsCount,jdbcType=INTEGER},
            </if>
            <if test="commissionEnterTime != null">vo_commission_enter_time=#{commissionEnterTime,jdbcType=BIGINT},
            </if>