From 31a142ac391b474faa04d82971105cc608a0f973 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期日, 17 五月 2020 19:29:44 +0800
Subject: [PATCH] 新版饿了么相关接口添加

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java |  129 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 115 insertions(+), 14 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java
index 89fe953..698a481 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java
@@ -1,17 +1,23 @@
 package com.yeshi.fanli.controller.client.v2;
 
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.HttpUtil;
 import org.yeshi.utils.JsonUtil;
 import org.yeshi.utils.encrypt.DESUtil;
+import org.yeshi.utils.entity.FileUploadResult;
+import org.yeshi.utils.tencentcloud.COSManager;
 
+import com.yeshi.fanli.dto.taobao.api.TaoKeOfficialActivityConvertResultDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.homemodule.FloatAD;
 import com.yeshi.fanli.entity.bus.homemodule.FloatAD.FloatADTypeEnum;
@@ -36,6 +42,8 @@
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.FilePathEnum;
+import com.yeshi.fanli.util.ImageUtil;
 import com.yeshi.fanli.util.RedisKeyEnum;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
@@ -43,7 +51,9 @@
 import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.elme.ElemeConvertInfoResultVO;
 import com.yeshi.fanli.vo.homemodule.FloatImgDetailVO;
 
 import net.sf.json.JSONObject;
@@ -153,8 +163,8 @@
 		} else {// 鑰佷汉
 			data.put("userTimeType", 1);
 		}
-		data.put("hotFuctionLink",
-				configService.getByVersion(ConfigKeyEnum.hotFunctionUrl.getKey(), platform, Integer.parseInt(acceptData.getVersion())));
+		data.put("hotFuctionLink", configService.getByVersion(ConfigKeyEnum.hotFunctionUrl.getKey(), platform,
+				Integer.parseInt(acceptData.getVersion())));
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
@@ -168,23 +178,23 @@
 	public void getHomeConfigNew(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
 		if (uid != null && uid == 0L)
 			uid = null;
-		
-		String platform = acceptData.getPlatform(); 
+
+		String platform = acceptData.getPlatform();
 		String version = acceptData.getVersion();
 
 		// 娲诲姩寮规
 		List<FloatAD> listAD = new ArrayList<FloatAD>();
 		List<FloatImgDetailVO> listVO = new ArrayList<FloatImgDetailVO>();
-		List<FloatAD> list = floatADService.getValidFloatADCache(FloatAD.POSITION_INDEX, null, platform,Integer.parseInt(version) );
+		List<FloatAD> list = floatADService.getValidFloatADCache(FloatAD.POSITION_INDEX, null, platform,
+				Integer.parseInt(version));
 		if (list != null && !list.isEmpty())
 			listAD.addAll(list);
 
 		for (int i = 0; i < listAD.size(); i++) {
 			FloatAD floatAD = listAD.get(i);
 			FloatADTypeEnum typeEnum = floatAD.getTypeEnum();
-			if (typeEnum == FloatADTypeEnum.newUserRedPack
-					&& (!VersionUtil.greaterThan_2_0_5(platform, version)
-							|| !userTaoLiJinNewbiesService.verifyHasReward(uid, acceptData.getDevice()))) {
+			if (typeEnum == FloatADTypeEnum.newUserRedPack && (!VersionUtil.greaterThan_2_0_5(platform, version)
+					|| !userTaoLiJinNewbiesService.verifyHasReward(uid, acceptData.getDevice()))) {
 
 				listAD.remove(i);
 				i--;
@@ -260,7 +270,8 @@
 		}
 
 		// 鏄惁闇�瑕佽喘鐗╁煄杞摼
-		boolean convert = "0".equalsIgnoreCase(configService.get(ConfigKeyEnum.showTaobaoCartConvert.getKey())) ? false : true;
+		boolean convert = "0".equalsIgnoreCase(configService.get(ConfigKeyEnum.showTaobaoCartConvert.getKey())) ? false
+				: true;
 
 		if (!"cart".equalsIgnoreCase(position) && !convert) {
 			out.print(JsonUtil.loadFalseResult(""));
@@ -393,7 +404,8 @@
 	public void getOrderConfig(AcceptData acceptData, PrintWriter out) {
 		JSONObject data = new JSONObject();
 		// 娴嬭瘯
-		data.put("showTaoBaoOrder", "0".equalsIgnoreCase(configService.get(ConfigKeyEnum.showTaobaoOrder.getKey()).trim()) ? false : true);
+		data.put("showTaoBaoOrder",
+				"0".equalsIgnoreCase(configService.get(ConfigKeyEnum.showTaobaoOrder.getKey()).trim()) ? false : true);
 		data.put("taoBaoOrderUrl", "https://main.m.taobao.com/olist/index.html");
 		out.print(JsonUtil.loadTrueResult(data));
 	}
@@ -444,8 +456,10 @@
 		String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.elmeLink, uid + "");
 		String elmeLink = redisManager.getCommonString(key);
 		if (StringUtil.isNullOrEmpty(elmeLink)) {
-			elmeLink = TaoKeApiUtil.officialActivityConvert(TaoBaoConstant.TAOBAO_ELEME_PID.split("_")[3],
-					"1571715733668", userInfoExtra.getRelationId());
+			TaoKeOfficialActivityConvertResultDTO dto = TaoKeApiUtil.officialActivityConvert(
+					TaoBaoConstant.TAOBAO_ELEME_PID.split("_")[3], "1571715733668", userInfoExtra.getRelationId());
+			if (dto != null)
+				elmeLink = dto.getShort_click_url();
 			if (!StringUtil.isNullOrEmpty(elmeLink)) {
 				redisManager.cacheCommonString(key, elmeLink, 60 * 60);// 缂撳瓨1涓皬鏃�
 			}
@@ -471,6 +485,94 @@
 	}
 
 	/**
+	 * 
+	 * @Title: getElemeLinkNew
+	 * @Description: 
+	 * @param acceptData
+	 * @param uid
+	 * @param activityId 娲诲姩ID
+	 * @param share -鏄惁涓哄垎浜�
+	 * @param callback 
+	 * @param out 
+	 * void 杩斿洖绫诲瀷
+	 * @throws
+	 */
+	@RequestMapping(value = "getElemeLinkNew")
+	public void getElemeLinkNew(AcceptData acceptData, Long uid, String activityId, boolean share, boolean shareImg,
+			String callback, PrintWriter out) {
+
+		UserExtraTaoBaoInfo userInfoExtra = userExtraTaoBaoInfoService.getByUid(uid);
+		if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getRelationId())) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1001, "璇风粦瀹氭窐瀹�")));
+			return;
+		}
+		String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.elmeLink, uid + "-" + activityId + "-" + share);
+		String elmeResult = redisManager.getCommonString(key);
+		JSONObject data = new JSONObject();
+		TaoKeOfficialActivityConvertResultDTO dto = null;
+		if (StringUtil.isNullOrEmpty(elmeResult)) {
+			if (share) {
+				dto = TaoKeApiUtil.officialActivityConvert(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3],
+						activityId, userInfoExtra.getRelationId());
+			} else {
+				dto = TaoKeApiUtil.officialActivityConvert(TaoBaoConstant.TAOBAO_ELEME_PID.split("_")[3], activityId,
+						userInfoExtra.getRelationId());
+			}
+
+			if (dto != null) {
+				if (share) {// 鐢熸垚鍙d护
+					String token = TaoKeApiUtil.getTKToken("http://", "楗夸簡涔�", dto.getShort_click_url());
+					dto.setToken(TaoBaoUtil.filterTaoToken(token));
+				}
+				redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(dto), 60 * 60);// 缂撳瓨1涓皬鏃�
+			}
+		} else {
+			dto = JsonUtil.getSimpleGson().fromJson(elmeResult, TaoKeOfficialActivityConvertResultDTO.class);
+
+			if (share && StringUtil.isNullOrEmpty(dto.getToken())) {
+				// 淇濆瓨鍙d护
+				String token = TaoKeApiUtil.getTKToken("http://", "楗夸簡涔�", dto.getShort_click_url());
+				dto.setToken(TaoBaoUtil.filterTaoToken(token));
+				redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(dto), 60 * 60);// 缂撳瓨1涓皬鏃�
+			}
+
+		}
+
+		ElemeConvertInfoResultVO info = new ElemeConvertInfoResultVO(null, dto.getToken(), dto.getShort_click_url());
+		if (share && shareImg) {
+			InputStream elmeShareImg = ImageUtil.drawSimpleImage(
+					this.getClass().getClassLoader().getResourceAsStream("image/elme_bg.png"), 1080, 1646,
+					HttpUtil.getAsInputStream(dto.getWx_qrcode_url()), 500, 500, 295, 908);
+
+			if (elmeShareImg != null) {
+				String filePath = FilePathEnum.banLiShopClass.getPath() + "-" + uid + "-"
+						+ UUID.randomUUID().toString().replace("-", "") + ".png";
+				FileUploadResult uploadResult = COSManager.getInstance().uploadFile(elmeShareImg, filePath);
+				if (uploadResult != null)
+					info.setQrCodeImg(uploadResult.getUrl());
+			}
+
+			if (info.getQrCodeImg() == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
+				return;
+			}
+
+		}
+
+		data.put("info", info);
+
+		ClientTBPid clientTBPid1 = new ClientTBPid(TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+				share ? TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT : TaoBaoConstant.TAOBAO_ELEME_PID, null,
+				TaoBaoConstant.TAOBAO_ELEME_PID.split("_")[3]);
+		clientTBPid1.setAdZoneId(clientTBPid1.getPid().split("_")[3]);
+		data.put("taoKeParams", clientTBPid1);
+		if (StringUtil.isNullOrEmpty(callback))
+			out.print(JsonUtil.loadTrueResult(data));
+		else
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+	}
+
+	/**
 	 * 鑾峰彇楗夸簡涔堢殑鎺ㄥ箍閾炬帴
 	 * 
 	 * @param acceptData
@@ -481,8 +583,7 @@
 	public void userProtocolListen(AcceptData acceptData, Long uid, int type, PrintWriter out) {
 		LogHelper.userProtocolListen(String.format("%s#%s#%s", acceptData.getDevice(), uid, type));
 		out.print(JsonUtil.loadTrueResult(""));
-		
-		
+
 	}
 
 }

--
Gitblit v1.8.0