admin
2019-06-27 534e0d10fdedf5fdaba6f63c99605520314a97d4
分享爆品修改
7个文件已修改
153 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/web/ShareHotGoodsController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/goods/taobao/dataoke/DaTaoKeGoodsDetailV2Dao.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/taobao/dataoke/DaTaoKeDetailV2.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/ShareHotGoodsServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/ShareHotGoodsService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java
@@ -258,9 +258,6 @@
    @Resource
    private UserTaoLiJinRecordService userTaoLiJinRecordService;
    @Resource
    private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService;
@@ -2061,8 +2058,7 @@
                    redisManager.saveCommonTaoToken(tb.getAuctionId(), token);
                }
            }
            // 测试
            if (!Constant.IS_TEST)
            if (!VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion()))
                tb.setCouponLinkTaoToken(token);
            // 服务端转链
@@ -2080,8 +2076,9 @@
                    + tb.getCouponEffectiveEndTime().replace("-", "."));
            // 券的口令
            // 测试
            if (!Constant.IS_TEST)
            if (VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion()))
                couponInfo.put("couponToken", "");
            else
                couponInfo.put("couponToken", token);
            goodsJson.put("couponInfo", couponInfo);
@@ -2165,7 +2162,6 @@
        String noRebateHelpLink = null;
        
        // 商品链接
        String h5Url = String.format("http://%s%s?id=%s&appType=flq", configService.getH5Host(),
                Constant.systemCommonConfig.getShareGoodsPagePath(), tb.getAuctionId() + "");
@@ -2243,6 +2239,16 @@
            }
            
            noRebateHelpLink = configTaoLiJinService.getValueByKey("share_goods_help_link");
            if (Constant.IS_TEST) {
                fanliValid = true;
                goodsJson.put("shareValid", false);
                JSONObject tljNum = new JSONObject();
                tljNum.put("percent", "80");
                tljNum.put("num", "8825");
                goodsJson.put("tljNum", tljNum);
            }
        }
            
        goodsJson.put("moneyType", moneyType);
@@ -2254,7 +2260,6 @@
        } else {
            data.put("noRebateHelpLink", configService.get("no_rebate_help_link"));
        }
        
        // 取消分享活动
        // if (!StringUtil.isNullOrEmpty(uid)
@@ -2499,7 +2504,6 @@
                    jumpDetail.setNeedLogin(special.isJumpLogin());
                    special.setJumpDetail(jumpDetail);
                }
                
                String name = special.getName();
                if (StringUtil.isNullOrEmpty(name)) {
fanli/src/main/java/com/yeshi/fanli/controller/web/ShareHotGoodsController.java
@@ -12,6 +12,7 @@
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.taobao.ShareHotGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -48,25 +49,16 @@
     * @param out
     */
    @RequestMapping(value = "listPreGoods", method = RequestMethod.GET)
    public void getSugguestSearch(String callback, AcceptData acceptData, String kw, PrintWriter out) {
    public void listPreGoods(String callback, AcceptData acceptData, String kw, PrintWriter out) {
        // 大淘客数据,更新
        List<String> list = TaoBaoUtil.getSuguestSearch(kw);
        if (list != null && list.size() > 0) {
        List<TaoBaoGoodsBrief> list = shareHotGoodsService.listPreGoods();
        BigDecimal rate = hongBaoManageService.getFanLiRate();
            JSONArray array = new JSONArray();
            int num = 0;
            for (String st : list) {
                array.add(st);
                num = num + 1;
                if (num >= 5) {
                    break;
                }
        Gson gson = new Gson();
        for (TaoBaoGoodsBrief goods : list) {
            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, rate + "", null)));
            }
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(array)));
        } else {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("")));
        }
        return;
    }
    /**
@@ -92,12 +84,17 @@
            } catch (TaobaoGoodsDownException e) {
                e.printStackTrace();
            }
            if (goods != null) {
            if (goods != null && goods.getCouponAmount() != null
                    && goods.getCouponAmount().compareTo(new BigDecimal(0)) > 0) {
                if (TaoBaoUtil.getAfterUseCouplePrice(goods).multiply(goods.getTkRate())
                        .compareTo(new BigDecimal("734")) >= 0) {
                count++;
                goods = daTaoKeGoodsDetailService.filterTaoBaoGoods(goods);
                shareHotGoodsService.addShareHotGoods(new ShareHotGoods(null, day, new Date(), goods));
            }
        }
        }
        out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("设置成功:" + count)));
    }
fanli/src/main/java/com/yeshi/fanli/dao/goods/taobao/dataoke/DaTaoKeGoodsDetailV2Dao.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.dao.goods.taobao.dataoke;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
@@ -15,11 +16,13 @@
import com.yeshi.fanli.dao.MongodbBaseDao;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@Repository
public class DaTaoKeGoodsDetailV2Dao extends MongodbBaseDao<DaTaoKeDetailV2> {
    public void updateSelective(DaTaoKeDetailV2 v2) {
        // 计算佣金
        DaTaoKeDetailV2 old = get(v2.getId());
        if (old != null) {// 更新
            Query query = new Query();
@@ -41,6 +44,14 @@
            }
            update(query, update);
        }
    }
    public void saveWithCommision(DaTaoKeDetailV2 v2) {
        BigDecimal commision = MoneyBigDecimalUtil
                .div(MoneyBigDecimalUtil.mul(v2.getActualPrice(), v2.getCommissionRate()), new BigDecimal(100));
        int commissionInt = commision.multiply(new BigDecimal(100)).intValue();
        v2.setCommission(commissionInt);
        save(v2);
    }
    public DaTaoKeDetailV2 selectLatest() {
@@ -76,6 +87,7 @@
        for (int i = 0; i < idsList.size(); i++) {
            criterias[i] = Criteria.where("id").is(idsList.get(i));
        }
        query.addCriteria(new Criteria().orOperator(criterias));
        return mongoTemplate.find(query, getEntityClass());
    }
@@ -136,10 +148,12 @@
     * 
     * @return
     */
    public List<DaTaoKeDetailV2> listPreShareHotGoods(int count) {
        //TODO
    public List<DaTaoKeDetailV2> listPreShareHotGoods(int count, String sortName) {
        Query query = new Query();
        query.addCriteria(new Criteria().andOperator(Criteria.where("commissionRate*actualPrice").gt(7.34)));
        query.addCriteria(Criteria.where("commission").gt(734));
        List<Order> orders = new ArrayList<>();
        orders.add(new Order(Direction.DESC, sortName));
        query.with(new Sort(orders));
        query.limit(count);
        return mongoTemplate.find(query, getEntityClass());
    }
fanli/src/main/java/com/yeshi/fanli/entity/taobao/dataoke/DaTaoKeDetailV2.java
@@ -97,6 +97,17 @@
    private Integer tbcid;// 商品在淘宝的二级分类id ,非大淘客的二级分类
    @Field
    private Date updateTime;
    //额外字段维护
    @Field
    private Integer commission;// 佣金金额,单位为分
    public Integer getCommission() {
        return commission;
    }
    public void setCommission(Integer commission) {
        this.commission = commission;
    }
    public Date getUpdateTime() {
        return updateTime;
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/ShareHotGoodsServiceImpl.java
@@ -1,21 +1,36 @@
package com.yeshi.fanli.service.impl.taobao;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.goods.taobao.dataoke.DaTaoKeGoodsDetailV2Dao;
import com.yeshi.fanli.dao.taobao.ShareHotGoodsDao;
import com.yeshi.fanli.entity.taobao.ShareHotGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.BeanUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@Service
public class ShareHotGoodsServiceImpl implements ShareHotGoodsService {
    @Resource
    private ShareHotGoodsDao shareHotGoodsDao;
    @Resource
    private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
    @Override
    public void addShareHotGoods(ShareHotGoods goods) {
@@ -36,4 +51,15 @@
    public void deleteById(String id) {
        shareHotGoodsDao.delete(id);
    }
    @Override
    public List<TaoBaoGoodsBrief> listPreGoods() {
        List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.listPreShareHotGoods();
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        if (list != null) {
            for (DaTaoKeDetailV2 v2 : list)
                goodsList.add(TaoBaoUtil.convert(v2));
        }
        return goodsList;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java
@@ -1,8 +1,11 @@
package com.yeshi.fanli.service.impl.taobao.dataoke;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -17,6 +20,7 @@
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.BeanUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
@@ -39,7 +43,7 @@
        while (result.getGoodsList() != null && result.getGoodsList().size() > 0) {
            System.out.println(page++);
            for (DaTaoKeDetailV2 v2 : result.getGoodsList())
                daTaoKeGoodsDetailV2Dao.save(v2);
                daTaoKeGoodsDetailV2Dao.saveWithCommision(v2);
            result = DaTaoKeApiUtil.listAll(result.getPageId());
            try {
                Thread.sleep(10);
@@ -97,7 +101,7 @@
        while (!StringUtil.isNullOrEmpty(result.getPageId())) {
            for (DaTaoKeDetailV2 v2 : result.getGoodsList()) {
                v2.setUpdateTime(new Date());
                daTaoKeGoodsDetailV2Dao.save(v2);
                daTaoKeGoodsDetailV2Dao.saveWithCommision(v2);
            }
            result = DaTaoKeApiUtil.getNewGoodsList(result.getPageId(), startTime, null);
            try {
@@ -112,7 +116,7 @@
    private void addGoodsList(List<DaTaoKeDetailV2> goodsList) {
        for (DaTaoKeDetailV2 goods : goodsList) {
            goods.setUpdateTime(new Date());
            daTaoKeGoodsDetailV2Dao.save(goods);
            daTaoKeGoodsDetailV2Dao.saveWithCommision(goods);
        }
    }
@@ -186,10 +190,29 @@
    @Override
    public List<DaTaoKeDetailV2> listPreShareHotGoods() {
        DaTaoKeGoodsDetailV2Dao daTaoKeGoodsDetailV2Dao = BeanUtil.getBean(DaTaoKeGoodsDetailV2Dao.class);
        Map<Long, DaTaoKeDetailV2> map = new HashMap<>();
        List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Dao.listPreShareHotGoods(20, "monthSales");
        System.out.println(list);
        list.addAll(daTaoKeGoodsDetailV2Dao.listPreShareHotGoods(20, "twoHoursSales"));
        list.addAll(daTaoKeGoodsDetailV2Dao.listPreShareHotGoods(20, "dailySales"));
        for (DaTaoKeDetailV2 v2 : list) {
            map.put(v2.getId(), v2);
        }
        
        List<DaTaoKeDetailV2> finalList = new ArrayList<>();
        for (Iterator<Long> its = map.keySet().iterator(); its.hasNext();) {
            finalList.add(map.get(its.next()));
        }
        
        return null;
        Comparator<DaTaoKeDetailV2> cm = new Comparator<DaTaoKeDetailV2>() {
            @Override
            public int compare(DaTaoKeDetailV2 o1, DaTaoKeDetailV2 o2) {
                return o1.getActualPrice().compareTo(o2.getActualPrice());
            }
        };
        Collections.sort(finalList, cm);
        return finalList;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/ShareHotGoodsService.java
@@ -3,6 +3,7 @@
import java.util.List;
import com.yeshi.fanli.entity.taobao.ShareHotGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
public interface ShareHotGoodsService {
@@ -21,11 +22,18 @@
     */
    public List<ShareHotGoods> listByDay(String day);
    
    /**
     * 根据主键删除
     *
     * @param id
     */
    public void deleteById(String id);
    /**
     * 获取备选商品
     *
     * @return
     */
    public List<TaoBaoGoodsBrief> listPreGoods();
}