yujian
2019-10-31 e9285f6e48b26bdd494569e660006ec87f3ad66b
Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

# Conflicts:
# fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
3个文件已修改
181 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/dataoke/DingDongTime.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -17,6 +17,7 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.dataoke.DingDongTime;
import com.yeshi.fanli.dto.jd.JDSearchResult;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
@@ -128,11 +129,9 @@
    @Resource
    private DaTaoKeGoodsService daTaoKeGoodsService;
    @Resource
    private HongBaoV2CountService hongBaoV2CountService;
    /**
     * 新版推荐专题管理(1.5.3)
@@ -209,22 +208,23 @@
    private JSONObject getSpikeGoodsContent(AcceptData acceptData) {
        long nowTime = System.currentTimeMillis();
        Calendar calendar=    Calendar.getInstance();
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(nowTime);
        List<String> dtoList = DaTaoKeUtil.getDingDongQiangTime(calendar);
        List<DingDongTime> dtoList = DaTaoKeUtil.getDingDongQiangTime(calendar);
        int dateNum = Integer.parseInt(TimeUtil.getGernalTime(nowTime, "ddHH"));
        String timeStr = null;
        int nextPos = 0;
        for (int i = 0; i < dtoList.size() - 1; i++) {
            if (dateNum >= Integer.parseInt(dtoList.get(i)) && dateNum < Integer.parseInt(dtoList.get(i + 1))) {
                timeStr = dtoList.get(i);
            if (dateNum >= Integer.parseInt(dtoList.get(i).getTime())
                    && dateNum < Integer.parseInt(dtoList.get(i + 1).getTime())) {
                timeStr = dtoList.get(i).getTime();
                nextPos = i + 1;
                break;
            }
        }
        if (timeStr == null)
            timeStr = dtoList.get(dtoList.size() - 1);
            timeStr = dtoList.get(dtoList.size() - 1).getTime();
        long nextTime = nowTime + 1000 * 60 * 60L;// 默认为1小时
        if (nextPos < dtoList.size()) {
@@ -250,13 +250,12 @@
        }
        JumpDetailV2 jumpDetail = null;
        if(VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
        if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
            jumpDetail = jumpDetailV2Service.getByTypeCache("spike_goods_list");
        } else {
            jumpDetail = jumpDetailV2Service.getByTypeCache("web");
        }
        if (array == null) {
            array = new JSONArray();
@@ -282,7 +281,8 @@
                if (taoBaoGoodsBrief == null) {
                    continue;
                }
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE));
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief,
                        new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE));
                JSONObject params = new JSONObject();
                params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId());
@@ -342,10 +342,9 @@
        return root;
    }
    /**
     * 限时秒杀列表
     *
     * @param acceptData
     * @param page
     * @param auctionId
@@ -354,76 +353,31 @@
     */
    @RequestMapping("getSpikTime")
    public void getSpikTime(AcceptData acceptData, PrintWriter out) {
        List<DingDongTime> timeList = DaTaoKeUtil.getDingDongQiangTime(Calendar.getInstance());
        List<SpikeTimeVO> list = new ArrayList<SpikeTimeVO>();
        SpikeTimeVO spikeTime0 = new SpikeTimeVO();
        spikeTime0.setTime("00:00");
        spikeTime0.setState("进行中");
        spikeTime0.setRequestTime("2400");
        SpikeTimeVO spikeTime1 = new SpikeTimeVO();
        spikeTime1.setTime("08:00");
        spikeTime1.setState("进行中");
        spikeTime1.setRequestTime("2408");
        SpikeTimeVO spikeTime2 = new SpikeTimeVO();
        spikeTime2.setTime("10:00");
        spikeTime2.setState("进行中");
        spikeTime2.setChecked(true);
        spikeTime2.setRequestTime("2410");
        SpikeTimeVO spikeTime3 = new SpikeTimeVO();
        spikeTime3.setTime("13:00");
        spikeTime3.setState("即将开始");
        spikeTime3.setRequestTime("2413");
        SpikeTimeVO spikeTime4 = new SpikeTimeVO();
        spikeTime4.setTime("15:00");
        spikeTime4.setState("即将开始");
        spikeTime4.setRequestTime("2415");
        SpikeTimeVO spikeTime5 = new SpikeTimeVO();
        spikeTime5.setTime("17:00");
        spikeTime5.setState("即将开始");
        spikeTime5.setRequestTime("2417");
        SpikeTimeVO spikeTime6 = new SpikeTimeVO();
        spikeTime6.setTime("19:00");
        spikeTime6.setState("即将开始");
        spikeTime6.setRequestTime("2419");
        SpikeTimeVO spikeTime7 = new SpikeTimeVO();
        spikeTime7.setTime("20:00");
        spikeTime7.setState("即将开始");
        spikeTime7.setRequestTime("2420");
        SpikeTimeVO spikeTime8 = new SpikeTimeVO();
        spikeTime8.setTime("21:00");
        spikeTime8.setState("即将开始");
        spikeTime8.setRequestTime("2421");
        list.add(spikeTime0);
        list.add(spikeTime1);
        list.add(spikeTime2);
        list.add(spikeTime3);
        list.add(spikeTime4);
        list.add(spikeTime5);
        list.add(spikeTime6);
        list.add(spikeTime7);
        list.add(spikeTime8);
        for (int i = 0; i < timeList.size(); i++) {
            SpikeTimeVO spikeTime1 = new SpikeTimeVO();
            spikeTime1.setTime(
                     timeList.get(i).getTime().subSequence(2, 4)+":00");
            if (timeList.get(i).getState() <= 0)
                spikeTime1.setState("进行中");
            else
                spikeTime1.setState("即将开始");
            if (timeList.get(i).getState() == 0)
                spikeTime1.setChecked(true);
            spikeTime1.setRequestTime(timeList.get(i).getTime());
            list.add(spikeTime1);
        }
        JSONObject data = new JSONObject();
        data.put("count", list.size());
        data.put("list", list);
        out.print(JsonUtil.loadTrueResult(data));
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 限时秒杀列表
     *
     * @param acceptData
     * @param page
     * @param auctionId
@@ -435,7 +389,7 @@
        List<DaTaoKeDetailV2> detailList0 = daTaoKeGoodsDetailV2Service.getDingDongQiangData(qtime);
        if (detailList0 == null)
            detailList0 = new ArrayList<>();
        List<DaTaoKeDetailV2> detailList = new ArrayList<>();
        detailList.addAll(detailList0);
        JSONArray array = new JSONArray();
@@ -449,13 +403,13 @@
                }
            }
        }
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        if (detailList != null) {
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
            ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
            for (DaTaoKeDetailV2 detail : detailList) {
                array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(detail), paramsDTO)));
@@ -465,12 +419,9 @@
        JSONObject data = new JSONObject();
        data.put("count", detailList.size());
        data.put("list", array);
        out.print(JsonUtil.loadTrueResult(data));
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 金币兑换信息
     * 
@@ -604,7 +555,7 @@
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
            ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
            for (TaoBaoGoodsBrief goods : goodsList) {
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
@@ -622,7 +573,7 @@
                List<TLJBuyGoods> list = homeRecommendGoodsService.getZiGouLiJianHotGoods(acceptData.getDevice());
                if (list != null && list.size() > 0) {
                    BigDecimal rateBuy = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
                     ConfigParamsDTO paramsBuy = new ConfigParamsDTO(rateBuy, rateBuy, Constant.MAX_REWARD_RATE);
                    ConfigParamsDTO paramsBuy = new ConfigParamsDTO(rateBuy, rateBuy, Constant.MAX_REWARD_RATE);
                    for (int i = list.size() - 1; i >= 0; i--) {
                        TLJBuyGoods goods = list.get(i);
                        GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), paramsBuy);
@@ -680,7 +631,7 @@
                    if (gList != null) {
                        BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                        BigDecimal shareRate = hongBaoManageService.getShareRate();
                         ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                        ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                        for (TaoBaoGoodsBrief goods : gList) {
                            if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null
                                    && goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0
@@ -753,7 +704,7 @@
            if (goodsList != null && goodsList.size() > 0) {
                BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                BigDecimal shareRate = hongBaoManageService.getShareRate();
                ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                        .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
@@ -787,7 +738,7 @@
            if (goodsList != null && goodsList.size() > 0) {
                BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                BigDecimal shareRate = hongBaoManageService.getShareRate();
                ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                for (PDDGoodsDetail goods : goodsList) {
                    GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO);
@@ -822,7 +773,7 @@
                count = arrayKeys.size();
                BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                BigDecimal shareRate = hongBaoManageService.getShareRate();
                ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
                int j = 1;
                for (int i = (page - 1) * 3; i < arrayKeys.size(); i++) {
@@ -835,7 +786,8 @@
                    List<DaTaoKeDetailV2> listTaoKe = daTaoKeGoodsService.getSearchDiscoveryGoods(words);
                    if (listTaoKe != null && listTaoKe.size() > 0) {
                        for (DaTaoKeDetailV2 daTaoKeDetailV2 : listTaoKe) {
                            listGoods.add(GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(daTaoKeDetailV2), paramsDTO));
                            listGoods.add(
                                    GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(daTaoKeDetailV2), paramsDTO));
                            if (listGoods.size() >= 3)
                                break;
                        }
@@ -889,7 +841,7 @@
                    special.setTimeTask(true);
                else
                    special.setTimeTask(false);
                if (special.isTimeTask()) {
                    if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
                        list.remove(i--);
@@ -912,7 +864,6 @@
            out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 获取专题渠道活动
     * 
@@ -940,14 +891,14 @@
            } else {
                // 赚钱版
                tips = configService.get("tip_guide_share_invite");
            }
            }
        }
        if (StringUtil.isNullOrEmpty(tips)) {
            out.print(JsonUtil.loadFalseResult("暂无提示"));
            return;
        }
        JSONObject data = JSONObject.fromObject(tips);
        out.print(JsonUtil.loadTrueResult(data));
    }
fanli/src/main/java/com/yeshi/fanli/dto/dataoke/DingDongTime.java
@@ -4,6 +4,17 @@
    private String key;
    private String value;
    private String time;
    private int state;//-1 当前时间之前  0:当前时间  1当前时间之后
    public int getState() {
        return state;
    }
    public void setState(int state) {
        this.state = state;
    }
    public String getTime() {
        return time;
@@ -13,6 +24,12 @@
        this.time = time;
    }
    public DingDongTime(String key, String value,int state) {
        this.key = key;
        this.value = value;
        this.state= state;
    }
    public DingDongTime(String key, String value) {
        this.key = key;
        this.value = value;
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java
@@ -580,7 +580,7 @@
        return detail;
    }
    public static List<String> getDingDongQiangTime(Calendar nowDate) {
    public static List<DingDongTime> getDingDongQiangTime(Calendar nowDate) {
        // 获取当前的小时数
        DingDongTime[] times = new DingDongTime[] { new DingDongTime("0", "00:00"), new DingDongTime("8", "08:00"),
@@ -614,36 +614,35 @@
        //获取当前时间之前的5个数据
        for (int i = 5; i >= 0; i--) {
            int p = pos - i < 0 ? (times.length + pos - i) : pos - i;
            DingDongTime itemData = new DingDongTime(times[p].getKey(), times[p].getValue());
            DingDongTime itemData = new DingDongTime(times[p].getKey(), times[p].getValue(),-1);
            if (pos - i < 0)
                itemData.setTime(
                        preDay + "" + (itemData.getKey().length() < 2 ? ("0" + itemData.getKey()) : itemData.getKey()));
            else
                itemData.setTime(
                        nowDay + "" + (itemData.getKey().length() < 2 ? ("0" + itemData.getKey()) : itemData.getKey()));
            if(pos==p)
                itemData.setState(0);
            list.add(itemData);
        }
        //向后添加剩下的
        if (pos + 1 < times.length)
            for (int i = pos + 1; i < times.length; i++) {
                DingDongTime itemData = new DingDongTime(times[i].getKey(), times[i].getValue());
                DingDongTime itemData = new DingDongTime(times[i].getKey(), times[i].getValue(),1);
                itemData.setTime(
                        nowDay + "" + (itemData.getKey().length() < 2 ? ("0" + itemData.getKey()) : itemData.getKey()));
                list.add(itemData);
            }
        if (times.length - (pos + 1) < 2) {
            DingDongTime itemData = new DingDongTime(times[0].getKey(), times[0].getValue());
            DingDongTime itemData = new DingDongTime(times[0].getKey(), times[0].getValue(),1);
            itemData.setTime(
                    nextDay + "" + (itemData.getKey().length() < 2 ? ("0" + itemData.getKey()) : itemData.getKey()));
            list.add(itemData);
        }
        List<String> finalTimeList = new ArrayList<>();
        for (DingDongTime time : list)
            finalTimeList.add(time.getTime());
        return finalTimeList;
        return list;
    }
}