admin
2019-11-24 c54d8d8a56d127de4e0fdd1e21a822dabff92281
大淘客处理
5个文件已修改
98 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dao/goods/taobao/dataoke/DaTaoKeGoodsDetailV2Dao.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/dataoke/DaTaoKeGoodsDetailV2Service.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/goods/taobao/dataoke/DaTaoKeGoodsDetailV2Dao.java
@@ -18,6 +18,7 @@
import com.yeshi.fanli.dao.MongodbBaseDao;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
@Repository
public class DaTaoKeGoodsDetailV2Dao extends MongodbBaseDao<DaTaoKeDetailV2> {
@@ -183,4 +184,31 @@
        return mongoTemplate.count(query, DaTaoKeDetailV2.class);
    }
    public List<DaTaoKeDetailV2> listByMaxPrice(Integer cid, BigDecimal maxPrice, String sortName, int start,
            int count) {
        Query query = new Query();
        if (cid != null)
            query.addCriteria(Criteria.where("actualPrice").lt(maxPrice).andOperator(Criteria.where("cid").is(cid)));
        else
            query.addCriteria(Criteria.where("actualPrice").lt(maxPrice));
        if (!StringUtil.isNullOrEmpty(sortName)) {
            List<Order> orders = new ArrayList<>();
            orders.add(new Order(Direction.DESC, sortName));
            query.with(new Sort(orders));
        }
        query.skip(start);
        query.limit(count);
        return mongoTemplate.find(query, getEntityClass());
    }
    public long countByMaxPrice(Integer cid, BigDecimal maxPrice) {
        Query query = new Query();
        if (cid != null)
            query.addCriteria(Criteria.where("actualPrice").lt(maxPrice).andOperator(Criteria.where("cid").is(cid)));
        else
            query.addCriteria(Criteria.where("actualPrice").lt(maxPrice));
        return mongoTemplate.count(query, getEntityClass());
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java
@@ -36,6 +36,7 @@
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
@@ -50,6 +51,9 @@
    @Resource
    private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
    @Resource
    private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
    @Resource
    private TaobaoMeterialService taobaoMeterialService;
@@ -212,15 +216,36 @@
        if ("-1".equalsIgnoreCase(cid)) {
            result = DaTaoKeApiUtil.search("", null, null, new BigDecimal("10"), page, pageSize,
                    DaTaoKeApiUtil.SORT_DEFAULT);
            if (result == null || result.getGoodsList() == null || result.getGoodsList().size() == 0) {
                result = new DaTaoKeGoodsResult();
                result.setGoodsList(daTaoKeGoodsDetailV2Service.listByMaxPrice(null,
                        new BigDecimal("10"),null, page, pageSize));
                result.setTotalCount(
                        daTaoKeGoodsDetailV2Service.countByMaxPrice(null, new BigDecimal("10")));
            }
        } else if ("0".equalsIgnoreCase(cid)) {
            result = DaTaoKeApiUtil.search("", null, null, new BigDecimal("10"), page, pageSize,
                    DaTaoKeApiUtil.SORT_CREATETIME);
            if (result == null || result.getGoodsList() == null || result.getGoodsList().size() == 0) {
                result = new DaTaoKeGoodsResult();
                result.setGoodsList(daTaoKeGoodsDetailV2Service.listByMaxPrice(null,
                        new BigDecimal("10"),"createTime", page, pageSize));
                result.setTotalCount(
                        daTaoKeGoodsDetailV2Service.countByMaxPrice(null, new BigDecimal("10")));
            }
        } else {
            List<Integer> cidList = new ArrayList<>();
            cidList.add(Integer.parseInt(cid));
            result = DaTaoKeApiUtil.search("", cidList, null, new BigDecimal("10"), page, pageSize,
                    DaTaoKeApiUtil.SORT_DEFAULT);
            if (result == null || result.getGoodsList() == null || result.getGoodsList().size() == 0) {
                result = new DaTaoKeGoodsResult();
                result.setGoodsList(daTaoKeGoodsDetailV2Service.listByMaxPrice(Integer.parseInt(cid),
                        new BigDecimal("10"),null, page, pageSize));
                result.setTotalCount(
                        daTaoKeGoodsDetailV2Service.countByMaxPrice(Integer.parseInt(cid), new BigDecimal("10")));
            }
        }
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java
@@ -340,7 +340,8 @@
    @Async
    private void updateGoods(Long id) {
        DaTaoKeDetailV2 v2 = DaTaoKeApiUtil.getGoodsDetail(id);
        // TODO暂时关闭服务
        DaTaoKeDetailV2 v2 = null;// DaTaoKeApiUtil.getGoodsDetail(id);
        if (v2 != null)
            daTaoKeGoodsDetailV2Dao.save(v2);
    }
@@ -382,8 +383,10 @@
                idList.add(td.getId());
            List<DaTaoKeDetailV2> finalList = listByIds(idList);
            if (finalList.size() != idList.size()) {
                for (Long id : idList)
                    updateGoods(id);
                for (Long id : idList) {
                    // updateGoods(id);
                    // TODO 不能异步调用
                }
                finalList = listByIds(idList);
            }
@@ -419,4 +422,15 @@
        return dateList;
    }
    @Override
    public List<DaTaoKeDetailV2> listByMaxPrice(Integer cid, BigDecimal maxPrice,String sortName, int page, int count) {
        return daTaoKeGoodsDetailV2Dao.listByMaxPrice(cid, maxPrice,sortName, (page - 1) * count, count);
    }
    @Override
    public int countByMaxPrice(Integer cid, BigDecimal maxPrice) {
        return (int) daTaoKeGoodsDetailV2Dao.countByMaxPrice(cid, maxPrice);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/dataoke/DaTaoKeGoodsDetailV2Service.java
@@ -4,6 +4,7 @@
import java.util.Date;
import java.util.List;
import com.yeshi.fanli.dao.goods.taobao.dataoke.DaTaoKeGoodsDetailV2Dao;
import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
@@ -160,5 +161,10 @@
    public List<DaTaoKeDetailV2> getDingDongQiangData(String time);
    
    
    public List<DaTaoKeDetailV2> listByMaxPrice(Integer cid,BigDecimal maxPrice,String sortName, int page,int count);
    public int countByMaxPrice(Integer cid,BigDecimal maxPrice);
}
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java
@@ -1,7 +1,9 @@
package com.yeshi.fanli.util.dataoke;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -359,6 +361,20 @@
        return null;
    }
    private static String requestGet(String url, Map<String, String> params) {
        Iterator<String> keys = params.keySet().iterator();
        url += "?";
        while (keys.hasNext()) {
            String key = keys.next();
            try {
                url += String.format("%s=%s&", key, URLEncoder.encode(params.get(key), "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return HttpUtil.get(url, 10000);
    }
    public static DaTaoKeGoodsResult search(String key, List<Integer> cidList, BigDecimal priceLowerLimit,
            BigDecimal priceUpperLimit, int page, int pageSize, Integer sort) {
@@ -388,8 +404,7 @@
        if (sort != null)
            params.put("sort", sort + "");
        params.put("sign", getSign(params, app.getAppSecret()));
        String result = HttpUtil.get("https://openapi.dataoke.com/api/goods/get-dtk-search-goods", params,
                new HashMap<>());
        String result = requestGet("https://openapi.dataoke.com/api/goods/get-dtk-search-goods", params);
        JSONObject json = JSONObject.fromObject(result);
        JSONObject dataJson = json.optJSONObject("data");