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(); }