From 271ae63c20fcbe28d29c47f1881138ff6551a2a1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 10 六月 2020 19:26:26 +0800
Subject: [PATCH] 唯品会订单bug修复,APP端佣金比例展示错误bug修复

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java |  469 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 341 insertions(+), 128 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 ad04862..5cd11b7 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,41 +1,61 @@
 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;
 import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
 import com.yeshi.fanli.entity.bus.user.UserActiveLog;
+import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
 import com.yeshi.fanli.entity.common.JumpDetailV2;
 import com.yeshi.fanli.entity.config.AppHomeFloatImg;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.taobao.ClientTBPid;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.homemodule.FloatADService;
 import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService;
-import com.yeshi.fanli.service.inter.redpack.RedPackWinNewUserService;
+import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
 import com.yeshi.fanli.service.inter.user.TBPidService;
 import com.yeshi.fanli.service.inter.user.UserActiveLogService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+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;
 import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
+import com.yeshi.fanli.util.suning.SuningUtil;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.util.vipshop.VipShopUtil;
+import com.yeshi.fanli.vo.elme.ElemeConvertInfoResultVO;
 import com.yeshi.fanli.vo.homemodule.FloatImgDetailVO;
 
 import net.sf.json.JSONObject;
@@ -78,9 +98,14 @@
 	private UserActiveLogService userActiveLogService;
 
 	@Resource
-	private RedPackWinNewUserService redPackWinNewUserService;
-	
-	
+	private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
+
+	@Resource
+	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+	@Resource
+	private RedisManager redisManager;
+
 	/**
 	 * s 棣栭〉閰嶇疆淇℃伅
 	 * 
@@ -110,7 +135,7 @@
 		// 鏃犳柊浜哄脊妗� 鍒欐煡璇㈤粯璁�
 		FloatAD floatAD = floatADService.getEffectiveFloatAD(FloatAD.POSITION_INDEX, 0);
 
-		if (floatAD != null) {
+		if (floatAD != null && floatAD.getTypeEnum() != FloatADTypeEnum.newUserRedPack) {
 			JSONObject detail = new JSONObject();
 			detail.put("img", floatAD.getPicture());
 			detail.put("jumpDetail", floatAD.getJumpDetail());
@@ -121,13 +146,13 @@
 		}
 
 		// 棰嗗埜甯姪閾炬帴,1.5.2鍚庣敓鏁�
-		String couponHelp = configService.get("taobao_coupon_help");
+		String couponHelp = configService.get(ConfigKeyEnum.taobaoCouponHelp.getKey());
 		data.put("couponHelpUrl", couponHelp);
 
 		// 搴曢儴缃戦〉閾炬帴
 		String platform = acceptData.getPlatform();
 		if ("android".equalsIgnoreCase(platform)) {
-			data.put("htmlLink", configService.get("index_html_link_android"));
+			data.put("htmlLink", configService.get(ConfigKeyEnum.indexHtmlLinkAndroid.getKey()));
 		}
 
 		// 鍒ゆ柇鏂拌�佺敤鎴�
@@ -140,60 +165,73 @@
 		} else {// 鑰佷汉
 			data.put("userTimeType", 1);
 		}
-		data.put("hotFuctionLink",
-				configService.getByVersion("hot_function_url", platform, Integer.parseInt(acceptData.getVersion())));
+		data.put("hotFuctionLink", configService.getByVersion(ConfigKeyEnum.hotFunctionUrl.getKey(), platform,
+				Integer.parseInt(acceptData.getVersion())));
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
-	
 	/**
 	 * s 棣栭〉閰嶇疆淇℃伅
 	 * 
 	 * @param acceptData
 	 * @param out
 	 */
-	@RequestMapping(value = "getHomeConfigNew", method = RequestMethod.POST)
-	public void getHomeConfigNew(AcceptData acceptData, Long uid, PrintWriter out) {
+	@RequestMapping(value = "getHomeConfigNew")
+	public void getHomeConfigNew(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
 		if (uid != null && uid == 0L)
 			uid = null;
-		
+
+		String platform = acceptData.getPlatform();
+		String version = acceptData.getVersion();
+
 		// 娲诲姩寮规
-		List<FloatAD> listAD = null;
-		if (redPackWinNewUserService.verifyHasReward(uid)) {
-			listAD = floatADService.getValidByPosition(FloatAD.POSITION_INDEX);
-		} else {
-			listAD = floatADService.getValidCommonByPosition(FloatAD.POSITION_INDEX);
-		}
-		
+		List<FloatAD> listAD = new ArrayList<FloatAD>();
 		List<FloatImgDetailVO> listVO = new ArrayList<FloatImgDetailVO>();
-		if (listAD != null && !listAD.isEmpty()) {
-			for (FloatAD floatAD: listAD) {
-				JumpDetailV2 jumpDetail = floatAD.getJumpDetail();
-				if (jumpDetail != null) {
-					jumpDetail = jumpDetailV2Service.selectByPrimaryKey(jumpDetail.getId());
-					if (jumpDetail != null) {
-						jumpDetail.setNeedLogin(floatAD.isJumpNeedLogin());
-					}
-				} 
-				FloatImgDetailVO floatImgVO = new FloatImgDetailVO();
-				floatImgVO.setId(floatAD.getId().toString());
-				floatImgVO.setImg(floatAD.getPicture());
-				floatImgVO.setParams(floatAD.getParams());
-				floatImgVO.setJumpDetail(jumpDetail);
-				floatImgVO.setShowTime(floatAD.getShowMode());
-				floatImgVO.setAccountLogin(floatAD.isJumpNeedLogin());
-				listVO.add(floatImgVO);
+		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()))) {
+
+				listAD.remove(i);
+				i--;
+				continue;
 			}
+
+			JumpDetailV2 jumpDetail = floatAD.getJumpDetail();
+			if (jumpDetail != null) {
+				jumpDetail = jumpDetailV2Service.selectByPrimaryKey(jumpDetail.getId());
+				if (jumpDetail != null) {
+					jumpDetail.setNeedLogin(floatAD.isJumpNeedLogin());
+				}
+			}
+			FloatImgDetailVO floatImgVO = new FloatImgDetailVO();
+			floatImgVO.setId(floatAD.getId().toString());
+			floatImgVO.setImg(floatAD.getPicture());
+			floatImgVO.setParams(floatAD.getParams());
+			floatImgVO.setJumpDetail(jumpDetail);
+			floatImgVO.setShowTime(floatAD.getShowMode());
+			floatImgVO.setAccountLogin(floatAD.isJumpNeedLogin());
+			if (floatAD.getPlaySound() != null)
+				floatImgVO.setPlaySound(floatAD.getPlaySound());// 榛樿閮芥挱鏀鹃煶鏁�
+			else
+				floatImgVO.setPlaySound(false);
+			listVO.add(floatImgVO);
 		}
-		
+
 		JSONObject data = new JSONObject();
 		data.put("listAD", JsonUtil.getApiCommonGson().toJson(listVO));
-		
+		data.put("protocol", configService.get(ConfigKeyEnum.userProtocolHomeData.getKey()));
+
 		// 棰嗗埜甯姪閾炬帴,1.5.2鍚庣敓鏁�
-		String couponHelp = configService.get("taobao_coupon_help");
+		String couponHelp = configService.get(ConfigKeyEnum.taobaoCouponHelp.getKey());
 		data.put("couponHelpUrl", couponHelp);
 
-		
 		// 鍒ゆ柇鏂拌�佺敤鎴� 鏄剧ず鐑棬鍔熻兘鎸夐挳婊戝姩
 		UserActiveLog da = null;
 		if (uid != null)
@@ -204,15 +242,16 @@
 		} else {// 鑰佷汉
 			data.put("userTimeType", 1);
 		}
-				
+
 		// 鏄惁鏄剧ず鐑棬鍔熻兘鎸夐挳
-		String platform = acceptData.getPlatform();
 		data.put("hotFuctionLink",
-				configService.getByVersion("hot_function_url", platform, Integer.parseInt(acceptData.getVersion())));
-		out.print(JsonUtil.loadTrueResult(data));
+				configService.getByVersion(ConfigKeyEnum.hotFunctionUrl.getKey(), platform, Integer.parseInt(version)));
+		if (StringUtil.isNullOrEmpty(callback))
+			out.print(JsonUtil.loadTrueResult(data));
+		else
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
 	}
-	
-	
+
 	/**
 	 * 娑堟伅涓績寮规
 	 * 
@@ -233,7 +272,8 @@
 		}
 
 		// 鏄惁闇�瑕佽喘鐗╁煄杞摼
-		boolean convert = "0".equalsIgnoreCase(configService.get("show_taobao_cart_convert")) ? false : true;
+		boolean convert = "0".equalsIgnoreCase(configService.get(ConfigKeyEnum.showTaobaoCartConvert.getKey())) ? false
+				: true;
 
 		if (!"cart".equalsIgnoreCase(position) && !convert) {
 			out.print(JsonUtil.loadFalseResult(""));
@@ -247,8 +287,8 @@
 			clientTBPid = tbPidService.getAndroidDefault();
 		}
 
-		String cartJS = configService.get("taobao_cart_js");
-		String cartUrl = configService.get("taobao_cart_link");
+		String cartJS = configService.get(ConfigKeyEnum.taobaoCartJS.getKey());
+		String cartUrl = configService.get(ConfigKeyEnum.taobaoCartLink.getKey());
 		if (!convert)// 涓嶈浆閾�
 		{
 			cartUrl = "http://";
@@ -306,6 +346,18 @@
 
 			data.put("baichuan", false);// 涓嶉渶瑕侀噰鐢ㄩ樋閲岀櫨宸濈殑鏂瑰紡鍔犺浇webview
 
+		} else if (url != null && (url.contains(".vip.com"))) {// 鍞搧浼�
+			String goodsId = VipShopUtil.parseGoodsIdByUrl(url);
+			if (StringUtil.isNullOrEmpty(goodsId))// 涓嶈兘鎷︽埅璇︽儏椤甸潰锛岄槻姝㈠墠绔繘鍏ユ寰幆
+				data.put("goodsDetail", true);
+			else
+				data.put("goodsDetail", false);
+		} else if (url != null && (url.contains(".suning.com"))) {// 鑻忓畞
+			String goodsId = SuningUtil.parseGoodsIdByUrl(url);
+			if (StringUtil.isNullOrEmpty(goodsId))// 涓嶈兘鎷︽埅璇︽儏椤甸潰锛岄槻姝㈠墠绔繘鍏ユ寰幆
+				data.put("goodsDetail", true);
+			else
+				data.put("goodsDetail", false);
 		} else if (url != null && ((url.contains("yangkeduo.com") && !url.contains("yangkeduo.com/goods.html?")
 				&& !url.contains("yangkeduo.com/duo_coupon_landing.html?"))
 				|| (url.startsWith("https://p.pinduoduo.com/")))) {
@@ -315,14 +367,15 @@
 			data.put("baichuan", false);// 涓嶉渶瑕侀噰鐢ㄩ樋閲岀櫨宸濈殑鏂瑰紡鍔犺浇webview
 			data.put("goodsDetail", false);// 涓嶉渶瑕佹嫤鎴晢鍝佽鎯�
 		}
-//TODO 鍓嶇闇�瑕佸鐞�		
-//		if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
-//			JSONObject js = new JSONObject();
-//			String jsStr = configService.get("url_extract_id");
-//			String md5 = StringUtil.Md5(jsStr);
-//			js.put("md5", md5);
-//			data.put("js", js);
-//		}
+		// TODO 鍓嶇闇�瑕佸鐞�
+		// if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(),
+		// acceptData.getVersion())) {
+		// JSONObject js = new JSONObject();
+		// String jsStr = configService.get("url_extract_id");
+		// String md5 = StringUtil.Md5(jsStr);
+		// js.put("md5", md5);
+		// data.put("js", js);
+		// }
 
 		out.print(JsonUtil.loadTrueResult(data));
 	}
@@ -346,75 +399,12 @@
 
 	@RequestMapping(value = "getBindAccountConfig", method = RequestMethod.POST)
 	public void getBindAccountConfig(AcceptData acceptData, PrintWriter out) {
-		String alipayHelpUrl = configService.get("alipay_help");// 鏀粯瀹濆府鍔�
-		String alipayBindFailUrl = configService.get("alipay_bind_fail_reason");// 鏀粯瀹濈粦瀹氬け璐ュ師鍥�
+		String alipayHelpUrl = configService.get(ConfigKeyEnum.alipayHelp.getKey());// 鏀粯瀹濆府鍔�
+		String alipayBindFailUrl = configService.get(ConfigKeyEnum.alipayBindFailReason.getKey());// 鏀粯瀹濈粦瀹氬け璐ュ師鍥�
 		JSONObject data = new JSONObject();
 		data.put("alipayHelp", alipayHelpUrl);
 		data.put("alipayBindFailReason", alipayBindFailUrl);
 		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping(value = "getUserConfig", method = RequestMethod.POST)
-	public void getUserConfig(AcceptData acceptData, PrintWriter out) {
-		try {
-			// 鐢ㄦ埛鍗忚閾炬帴
-			String serviceProtocol = configService.get("service_protocol_link");
-			// 闅愮鏉℃閾炬帴
-			String privacyProtocol = configService.get("privacy_protocol_link");
-			JSONObject data = new JSONObject();
-			data.put("serviceProtocolLink", serviceProtocol);
-			data.put("privacyProtocolLink", privacyProtocol);
-			// 璐墿杞﹁烦杞柟寮�(鍖呭惈jumpDetail涓巔arams)
-			JSONObject source = JSONObject.fromObject(configService.get("taobao_cart_jump_detail"));
-			data.put("taoBaoCart", source);
-			out.print(JsonUtil.loadTrueResult(data));
-		} catch (Exception e) {
-			out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
-			e.printStackTrace();
-		}
-
-	}
-
-	/**
-	 * 璁㈠崟瑙f瀽閰嶇疆
-	 * 
-	 * @param acceptData
-	 * @param out
-	 */
-	@RequestMapping(value = "getOrderParseConfig", method = RequestMethod.POST)
-	public void getOrderParseConfig(AcceptData acceptData, int type, PrintWriter out) {
-
-		switch (type) {
-		case Constant.SOURCE_TYPE_TAOBAO:
-			if ("0".equalsIgnoreCase(configService.get("auto_find_taobao_order")))
-				out.print(JsonUtil.loadFalseResult(1, "鏆備笉鏀寔"));
-			else {
-				String orderJS = configService.get("taobao_order_parse_js");
-				JSONObject data = new JSONObject();
-				try {
-					data.put("orderJS", DESUtil.encode(orderJS, StringUtil.getBase64String("YeShiFANLI889*+"),
-							StringUtil.getBase64String("*M#34f?,")));
-					data.put("orderUrl",
-							DESUtil.encode("https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm",
-									StringUtil.getBase64String("YeShiFANLI889*+"),
-									StringUtil.getBase64String("*M#34f?,")));
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-				out.print(JsonUtil.loadTrueResult(data));
-			}
-			break;
-
-		case Constant.SOURCE_TYPE_JD: {
-
-		}
-			break;
-
-		case Constant.SOURCE_TYPE_PDD: {
-
-		}
-			break;
-		}
 	}
 
 	/**
@@ -428,7 +418,8 @@
 	public void getOrderConfig(AcceptData acceptData, PrintWriter out) {
 		JSONObject data = new JSONObject();
 		// 娴嬭瘯
-		data.put("showTaoBaoOrder", "0".equalsIgnoreCase(configService.get("show_taobao_order").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));
 	}
@@ -436,7 +427,7 @@
 	@RequestMapping(value = "getKeFuConfig", method = RequestMethod.POST)
 	public void getKeFuConfig(AcceptData acceptData, PrintWriter out) {
 		JSONObject data = new JSONObject();
-		data.put("meiqia", "1".equalsIgnoreCase(configService.get("kefu_meiqia")) ? true : false);// 鏄惁璺宠浆缇庢唇锛屼笉璺宠浆缇庢唇灏辩敤鍘熸潵鐨�
+		data.put("meiqia", "1".equalsIgnoreCase(configService.get(ConfigKeyEnum.kefuMeiqia.getKey())) ? true : false);// 鏄惁璺宠浆缇庢唇锛屼笉璺宠浆缇庢唇灏辩敤鍘熸潵鐨�
 		out.print(JsonUtil.loadTrueResult(data));
 		// 璁剧疆娑堟伅宸茶
 		ThreadUtil.run(new Runnable() {
@@ -457,7 +448,7 @@
 	@RequestMapping(value = "getInviteCodeInputHelp", method = RequestMethod.POST)
 	public void getInviteCodeInputHelp(AcceptData acceptData, PrintWriter out) {
 		JSONObject data = new JSONObject();
-		data.put("helpUrl", configService.get("invite_code_input_help"));
+		data.put("helpUrl", configService.get(ConfigKeyEnum.inviteCodeInputHelp.getKey()));
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
@@ -470,9 +461,33 @@
 	 */
 	@RequestMapping(value = "getElemeLink")
 	public void getElemeLink(AcceptData acceptData, Long uid, 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 + "");
+		String elmeLink = redisManager.getCommonString(key);
+		if (StringUtil.isNullOrEmpty(elmeLink)) {
+			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涓皬鏃�
+			}
+		}
+
 		JSONObject data = new JSONObject();
-		data.put("hongBao", configService.get("eleme_hongbao_link").replace("{鐢ㄦ埛ID}", uid + ""));
-		data.put("goods", configService.get("eleme_goods_link").replace("{鐢ㄦ埛ID}", uid + ""));
+
+		// data.put("hongBao",
+		// configService.get("eleme_hongbao_link").replace("{鐢ㄦ埛ID}", uid + ""));
+		// data.put("goods",
+		// configService.get("eleme_goods_link").replace("{鐢ㄦ埛ID}", uid + ""));
+
+		data.put("hongBao", elmeLink);
+		data.put("goods", elmeLink);
 
 		ClientTBPid clientTBPid1 = new ClientTBPid(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_ELEME_PID,
 				null, TaoBaoConstant.TAOBAO_ELEME_PID.split("_")[3]);
@@ -483,4 +498,202 @@
 			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
 	}
 
+	/**
+	 * 
+	 * @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.elmeShare.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)));
+	}
+
+	@RequestMapping(value = "getKouBeiLink")
+	public void getKouBeiLink(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.kouBeiLink, 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_KOUBEI_PID.split("_")[3], activityId,
+						userInfoExtra.getRelationId());
+			}
+
+			if (dto != null) {
+				if (share) {// 鐢熸垚鍙d护
+					String token = TaoKeApiUtil.getTKToken("http://", "鍙g", dto.getClick_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://", "鍙g", dto.getClick_url());
+				dto.setToken(TaoBaoUtil.filterTaoToken(token));
+				redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(dto), 60 * 60);// 缂撳瓨1涓皬鏃�
+			}
+
+		}
+
+		ElemeConvertInfoResultVO info = new ElemeConvertInfoResultVO(null, dto.getToken(), dto.getClick_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.elmeShare.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_KOUBEI_PID, null,
+				TaoBaoConstant.TAOBAO_KOUBEI_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
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "userProtocolListen")
+	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(""));
+	}
+
+	/**
+	 * 鏄惁鏄剧ず骞垮憡
+	 * @Title: showAd
+	 * @Description: 
+	 * @param acceptData
+	 * @param uid
+	 * @param out 
+	 * void 杩斿洖绫诲瀷
+	 * @throws
+	 */
+	@RequestMapping(value = "getShowAd")
+	public void showAd(AcceptData acceptData, Long uid, PrintWriter out) {
+		String value = configService.get(ConfigKeyEnum.showSplashAd.getKey());
+		JSONObject data = new JSONObject();
+		if ("0".equalsIgnoreCase(value.trim())) {
+			data.put("show", false);
+		} else {
+			data.put("show", true);
+		}
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
 }

--
Gitblit v1.8.0