From ec60e757d358636dcac1589c44a66f3e276fe58c Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期一, 29 六月 2020 14:41:42 +0800 Subject: [PATCH] 拉新 --- fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java | 204 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 164 insertions(+), 40 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java b/fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java index fb515a2..c17a307 100644 --- a/fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java +++ b/fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java @@ -1,12 +1,14 @@ package com.yeshi.fanli.job; import java.math.BigDecimal; +import java.net.URLDecoder; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; +import org.apache.commons.lang.StringEscapeUtils; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.yeshi.utils.DateUtil; @@ -14,12 +16,21 @@ import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import com.yeshi.fanli.dto.ConfigParamsDTO; +import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult; +import com.yeshi.fanli.dto.taobao.haodanku.HDKGoodsListResultDTO; +import com.yeshi.fanli.dto.taobao.haodanku.HDKWXCircleContentDTO; +import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser; +import com.yeshi.fanli.entity.bus.activity.ActivityUser; import com.yeshi.fanli.entity.bus.activity.RecommendActivity; import com.yeshi.fanli.entity.bus.activity.RecommendActivityInviteInfo; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; import com.yeshi.fanli.entity.dynamic.GoodsPicture; import com.yeshi.fanli.entity.dynamic.WXMPDynamicInfo; import com.yeshi.fanli.entity.goods.jd.NYouHuiGoods; import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; +import com.yeshi.fanli.entity.taobao.haodanku.HDKGoodsDetail; +import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.activity.ActivityService; import com.yeshi.fanli.service.inter.activity.ActivityUserService; @@ -28,12 +39,17 @@ import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; import com.yeshi.fanli.service.inter.dynamic.WXMPDynamicInfoService; import com.yeshi.fanli.service.inter.goods.jd.NYouHuiService; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; import com.yeshi.fanli.service.manger.goods.ConvertLinkManager; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; +import com.yeshi.fanli.util.factory.goods.TaoBaoGoodsFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; +import com.yeshi.fanli.util.taobao.HaoDanKuApiUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; @Component public class DynamicInfoJob { @@ -64,9 +80,12 @@ @Resource private GoodsEvaluateService goodsEvaluateService; - + + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; + /** - * 姣�10鍒嗛挓 鏅氫笂00:00~06:00涓嶄笅鍙戜换浣曚竴涓晢鍝� + * 姣�10鍒嗛挓 鏅氫笂00:00~06:00涓嶄笅鍙戜换浣曚竴涓晢鍝� */ @Scheduled(cron = "0 0/10 6-23 * * ?") public void insetDynamicInfo() { @@ -203,11 +222,10 @@ } /** - * 鍚庡彴缂栬緫鍔ㄦ�侊細 姣�3鍒嗛挓妫�绱� + * 鍚庡彴缂栬緫鍔ㄦ�侊細 姣�3鍒嗛挓妫�绱� */ @Scheduled(cron = "0 0/3 * * * ?") public void activityNeedPublish() { - if (!Constant.IS_TASK) { return; } @@ -254,7 +272,6 @@ */ @Scheduled(cron = "0 0 6 * * ?") public void insertTimeInvite() { - if (!Constant.IS_TASK) { return; } @@ -272,13 +289,8 @@ /** * - * @Title: demoJobHandler - * @Description: 鏇存柊灏忕▼搴忓姩鎬佸晢鍝� - * @param param - * @return - * @throws Exception - * ReturnT<String> 杩斿洖绫诲瀷 - * @throws + * @Title: demoJobHandler @Description: 鏇存柊灏忕▼搴忓姩鎬佸晢鍝� @param + * param @return @throws Exception ReturnT<String> 杩斿洖绫诲瀷 @throws */ @XxlJob("dynamic-updateWXMPDynamicInfo") public ReturnT<String> updateWXMPDynamicInfoHandler(String param) throws Exception { @@ -287,11 +299,7 @@ } /** - * 娣诲姞鍐呬紭鎯犵浉鍏冲晢鍝� - * @Title: addJDNYHInfo - * @Description: - * void 杩斿洖绫诲瀷 - * @throws + * 娣诲姞鍐呬紭鎯犵浉鍏冲晢鍝� @Title: addJDNYHInfo @Description: void 杩斿洖绫诲瀷 @throws */ private void addJDNYHInfo() throws Exception { @@ -326,7 +334,7 @@ GoodsDetailVOFactory.convertJDGoods(jdGoods, new ConfigParamsDTO(hongBaoManageService.getFanLiRate(), hongBaoManageService.getShareRate(), null, - hongBaoManageService.getVIPFanLiRate()))); + hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP)))); picture.setGoodState(0); picture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail")); picture.setParams(null); @@ -356,28 +364,6 @@ wxmpDynamicInfoService.addWXMPDynamicInfo(info); } } - - - /** - * 鑷姩鐢熸垚鍙戝湀 - * 鏃╀笂6,7,15,16,21,22,23鐐规洿鏂�1娆� - */ - @Scheduled(cron = "0 0 6,7,15,16,21,22,23 * * ? ") - public void insetEvaluate() { - if (!Constant.IS_TASK) { - return; - } - - try { - goodsEvaluateService.addGoodsEvaluateByDaTaoKe(); - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } /** @@ -400,4 +386,142 @@ } } } + + + /** + * 鍟嗗搧鍔犲叆鍙戝湀 + */ + @XxlJob("dynamic-insertEvaluate") + public ReturnT<String> insertEvaluate(String param) throws Exception { + // 濂藉崟搴� + boolean addResult = addHDKListSelected(); + // 澶ф窐瀹㈠鐢� + if (!addResult) { + addDTKFriendsFircleList(); + } + return ReturnT.SUCCESS; + } + + + /** + * 濂藉崟搴撳晢鍝佸姞鍏ュ彂鍦� + * @return + */ + private boolean addHDKListSelected () { + boolean addResult = false; + Integer minId = 1; + while (minId != null) { + HDKGoodsListResultDTO dto = HaoDanKuApiUtil.getInstance().listSelected(minId); + if (dto == null) { + minId = null; + } else { + minId = dto.getMinId(); + List<HDKWXCircleContentDTO> list = dto.getList(); + if (list== null || list.size() == 0) { + continue; + } + + for (HDKWXCircleContentDTO circleContentDTO: list) { + try { + String itemid = circleContentDTO.getItemid(); + HDKGoodsDetail hdkGoods = HaoDanKuApiUtil.getInstance().getItemDetail(itemid); + if (hdkGoods == null) { + continue; + } + + List<String> pics = circleContentDTO.getItempic(); + String copy_content = circleContentDTO.getCopy_content(); + String showtitle = StringEscapeUtils.unescapeHtml(copy_content); + showtitle = showtitle.replace("<br>", "\r\n"); + + List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20); + ActivityUser user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser(); + + int addProcess = goodsEvaluateService.addGoodsEvaluate(TaoBaoGoodsFactory.create(hdkGoods), pics, user, showtitle); + if (addProcess == 0) { + addResult = true; + break; + } + } catch (GoodsEvaluateException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + if(addResult) + break; + } + return addResult; + } + + + /** + * 澶ф窐瀹㈠晢鍝佸姞鍏ュ彂鍦� + * @return + */ + private boolean addDTKFriendsFircleList() { + boolean addResult = false; + try { + DaTaoKeGoodsResult result = DaTaoKeApiUtil.getFriendsFircleList("1", 100); + while (result.getGoodsList() != null && result.getGoodsList().size() > 0) { + for (DaTaoKeDetailV2 detailV2 : result.getGoodsList()) { + try { + Long goodsId = detailV2.getGoodsId(); + + String circleText = detailV2.getCircleText(); + if (circleText == null) { + continue; + } + String showtitle = URLDecoder.decode(circleText, "UTF-8"); + showtitle = showtitle.replace(" ", " "); + + DaTaoKeDetailV2 tkGoods = DaTaoKeApiUtil.getGoodsDetailByGoodsId(goodsId); + if(tkGoods == null) { + continue; + } + + ActivityUser user = null; + if (detailV2.getCid() != null) { + user = activityUserService.getRandomByDaTaoKeCid(detailV2.getCid()); + } + if (user == null) { + List<ActivityRuleUser> ruleList = activityUserService + .listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20); + user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser(); + } + + int addProcess = goodsEvaluateService.addGoodsEvaluate(TaoBaoUtil.convert(tkGoods), null, user, showtitle); + if (addProcess == 0) { + addResult = true; + break; + } + } catch (GoodsEvaluateException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + if (addResult) { + break; + } + + try { + result = DaTaoKeApiUtil.getFriendsFircleList(result.getPageId(), 100); + } catch (Exception e) { + result = DaTaoKeApiUtil.getFriendsFircleList(result.getPageId(), 100); + } + try { + Thread.sleep(10); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + return addResult; + } + } -- Gitblit v1.8.0