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 |  178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 166 insertions(+), 12 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 a2810b9..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,6 +80,9 @@
 
 	@Resource
 	private GoodsEvaluateService goodsEvaluateService;
+	
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
 	/**
 	 * 姣�10鍒嗛挓 鏅氫笂00:00~06:00涓嶄笅鍙戜换浣曚竴涓晢鍝�
@@ -207,7 +226,6 @@
 	 */
 	@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;
 		}
@@ -317,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);
@@ -348,18 +365,19 @@
 		}
 	}
 
+	
 	/**
-	 * 鍔ㄦ�佸彂鍦�
-	 * 
-	 * @param param
-	 * @return
-	 * @throws Exception
+	 *  姣忎竴涓皬鏃堕殢鏈哄湪鍒嗕韩鏁扮殑鍩虹涓婂姞10~100銆傚鍔犵殑鏃堕棿娈垫槸姣忓ぉ8~22鐐广��
+	 * 鏃╀笂6,7,15,16,21,22,23鐐规洿鏂�1娆�
 	 */
-	// @Scheduled(cron = "0 0 6,7,15,16,21,22,23 * * ? ")
-	@XxlJob("dynamic-insertEvaluate")
-	public ReturnT<String> insertEvaluate(String param) throws Exception {
+	@Scheduled(cron = "0 0 8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 * * ? ")
+	public void addRanDomShareCount() {
+		if (!Constant.IS_TASK) {
+			return;
+		}
+
 		try {
-			goodsEvaluateService.addGoodsEvaluateByDaTaoKe();
+			goodsEvaluateService.addRanDomShareCount();
 		} catch (Exception e) {
 			try {
 				LogHelper.errorDetailInfo(e);
@@ -367,7 +385,143 @@
 				e1.printStackTrace();
 			}
 		}
+	}
+	
+	
+	/**
+	 * 鍟嗗搧鍔犲叆鍙戝湀
+	 */
+	@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("&nbsp;", " ");
 
+						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