From b7a90c576ac6b482c68ad6d0c2777831f9127b4a Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 19 五月 2020 16:48:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java |  299 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 239 insertions(+), 60 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
index e9613d9..3d456e3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -1,14 +1,18 @@
 package com.yeshi.fanli.controller.client.v2;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import javax.annotation.Resource;
 
@@ -17,8 +21,11 @@
 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.QRCodeUtil;
 import org.yeshi.utils.entity.FileUploadResult;
+import org.yeshi.utils.tencentcloud.COSManager;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -67,13 +74,17 @@
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.FilePathEnum;
+import com.yeshi.fanli.util.ImageUtil;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.jd.JDApiUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
 import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
 import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.vo.dynamic.ArticleVO;
@@ -144,11 +155,9 @@
 
 	@Resource
 	private DailyCountMomentsService dailyCountMomentsService;
-	
+
 	@Resource
 	private CommonShareInfoService commonShareInfoService;
-	
-	
 
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
@@ -267,7 +276,7 @@
 			list.add(map.get(TYPE_FAQUAN));
 			list.add(map.get(TYPE_HUODONG));
 			// list.add(map.get(TYPE_XUEYUAN));
-			 list.add(map.get(TYPE_SUCAI));
+			list.add(map.get(TYPE_SUCAI));
 		} else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
 			// 2.0.6杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+瀛﹂櫌+閭�璇�
 			list.add(map.get(TYPE_REXIAO));
@@ -371,8 +380,8 @@
 			listKey.add("special_channel_pdd");
 		}
 
-		List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
-				listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
+		List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE,
+				Constant.PAGE_SIZE, listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
 
 		long time = System.currentTimeMillis();
 
@@ -382,7 +391,7 @@
 			if (special.getState() == 1L) {
 				continue;
 			}
-			
+
 			// 鏄惁娲诲姩宸茶繃鏈�
 			if (special.getStartTime() != null && special.getEndTime() != null) {
 				if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
@@ -392,9 +401,7 @@
 					special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
 				}
 			}
-			
-		 
-			
+
 			// 璁剧疆鏍囩
 			List<SpecialLabel> listLabels = special.getListLabels();
 			if (listLabels != null && !listLabels.isEmpty()) {
@@ -404,7 +411,7 @@
 				}
 				special.setLabels(labels);
 			}
-			 
+
 		}
 
 		long count = specialService.countByPlaceKeyList(listKey, platformCode,
@@ -644,9 +651,12 @@
 						continue;
 					}
 					// 璺宠浆杩囨浮椤�
-					//String jumpLink = configService.get(ConfigKeyEnum.activityDetailLink.getKey()) + "?type=%s&id=%s";
-					//jumpLink = String.format(jumpLink, "circle", evaluateNew.getId());
-					//evaluateNew.setJumpLink(jumpLink);
+					// String jumpLink =
+					// configService.get(ConfigKeyEnum.activityDetailLink.getKey())
+					// + "?type=%s&id=%s";
+					// jumpLink = String.format(jumpLink, "circle",
+					// evaluateNew.getId());
+					// evaluateNew.setJumpLink(jumpLink);
 
 					// 鍥剧墖鏁伴噺
 					if (evaluateNew.getImgList() != null && evaluateNew.getImgList().size() > 0) {
@@ -1009,8 +1019,6 @@
 		return null;
 	}
 
-	
-
 	/**
 	 * 璇勮澶嶅埗-H5
 	 * 
@@ -1108,10 +1116,7 @@
 			}
 		});
 	}
-	
-	
-	
-	
+
 	/**
 	 * 璇勮澶嶅埗-涓撻
 	 * 
@@ -1127,7 +1132,7 @@
 		}
 
 		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name());
-		if (shareInfo == null ||  StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+		if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
 			out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
 			return;
 		}
@@ -1155,7 +1160,7 @@
 		}
 
 		String text = shareInfo.getComment();
-		String newText = text; 
+		String newText = text;
 		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
 			try {
 				newText = convertLinkManager.convertLinkFromText(text, uid, true);
@@ -1175,13 +1180,10 @@
 		data.put("text", newText);
 		out.print(JsonUtil.loadTrueResult(data));
 	}
-	
-	
 
-	
-	
 	@RequestMapping(value = "getActivityDetail")
-	public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id, PrintWriter out) {
+	public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id,
+			PrintWriter out) {
 		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
 			return;
@@ -1190,6 +1192,9 @@
 		String title = "";
 		String comment = "";
 		String params = "";
+		String desc = "";
+		Date startTime = null;
+		Date endTime = null;
 		JumpDetailV2 jumpDetail = null;
 		List<String> imgs = new ArrayList<>();
 		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
@@ -1204,7 +1209,7 @@
 			if (comments != null && comments.size() > 0) {
 				comment = comments.get(0).getContent();
 			}
-			
+
 			String jumpLink = null;
 			if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) {
 				jumpLink = evaluate.getJumpLink();
@@ -1213,25 +1218,26 @@
 			List<ImgInfo> imgList = evaluate.getImgList();
 			if (imgList != null && imgList.size() > 0) {
 				for (ImgInfo imgInfo : imgList) {
-					if (!StringUtil.isNullOrEmpty(imgInfo.getUrl()) 
+					if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())
 							&& (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity)) {
 						imgs.add(imgInfo.getUrl());
 					}
-					
+
 					if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity) {
 						if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
-							jumpLink  = imgInfo.getActivityUrl();
+							jumpLink = imgInfo.getActivityUrl();
 						}
 					}
 				}
 			}
-			
+
 			int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
-			jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode, Integer.parseInt(acceptData.getVersion()));
+			jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode,
+					Integer.parseInt(acceptData.getVersion()));
 			JSONObject inner = new JSONObject();
 			inner.put("url", jumpLink);
 			params = inner.toString();
-		} else { 
+		} else {
 			long pid = Long.parseLong(id);
 			if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) {
 				Special special = specialService.selectByPrimaryKey(pid);
@@ -1239,12 +1245,15 @@
 					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
 					return;
 				}
-				
+
 				params = special.getParams();
 				jumpDetail = special.getJumpDetail();
 				if (!StringUtil.isNullOrEmpty(special.getPicture())) {
 					imgs.add(special.getPicture());
 				}
+				desc = special.getRemark();
+				startTime = special.getStartTime();
+				endTime = special.getEndTime();
 			} else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) {
 				SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid);
 				if (swiper == null) {
@@ -1256,13 +1265,16 @@
 				if (!StringUtil.isNullOrEmpty(swiper.getSrc())) {
 					imgs.add(swiper.getSrc());
 				}
+				desc = swiper.getRemark();
+				startTime = swiper.getStartTime();
+				endTime = swiper.getEndTime();
 			}
 			CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
 			if (shareInfo != null && !StringUtil.isNullOrEmpty(shareInfo.getComment())) {
 				comment = shareInfo.getComment();
 			}
 		}
-		
+
 		if (!StringUtil.isNullOrEmpty(comment)) { // 鏇挎崲娣樺疂瀹樻柟娲诲姩
 			List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(comment);
 			for (String st : activityIdList)
@@ -1271,15 +1283,22 @@
 
 		JSONObject data = new JSONObject();
 		data.put("title", title);
+		data.put("desc", desc);
 		data.put("comment", comment);
 		data.put("params", params);
 		data.put("jumpDetail", jumpDetail);
 		data.put("imgs", imgs);
+		if (startTime != null) {
+			data.put("startTime", TimeUtil.getGernalTime(startTime.getTime(), "yyyy.MM.dd"));
+		}
+
+		if (endTime != null) {
+			data.put("endTime", TimeUtil.getGernalTime(endTime.getTime(), "yyyy.MM.dd"));
+		}
+
 		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 	}
 
-	
-	
 	/**
 	 * 璇勮澶嶅埗-涓撻
 	 * 
@@ -1288,18 +1307,18 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "copyShareComment")
-	public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id,
-			String type, PrintWriter out) {
+	public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, String type,
+			PrintWriter out) {
 		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
 			return;
 		}
-		
+
 		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
 			copyActivityComment(callback, acceptData, uid, id, out);
 			return;
 		}
-		
+
 		long pid = Long.parseLong(id);
 		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
 		if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
@@ -1314,7 +1333,8 @@
 		}
 
 		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+			JsonUtil.printMode(out, callback,
+					JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
 			return;
 		}
 
@@ -1330,18 +1350,18 @@
 		}
 
 		String text = shareInfo.getComment();
-		String newText = text; 
+		String newText = text;
 		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
 			try {
 				newText = convertLinkManager.convertLinkFromText(text, uid, true);
 			} catch (ConvertLinkExceptionException e) {
 				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
-					JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
 					return;
 				}
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
-				JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
 				return;
 			}
 		}
@@ -1350,34 +1370,102 @@
 		data.put("text", newText);
 		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 	}
-	
+
 	/**
-	 * 璇勮澶嶅埗
+	 * 娲诲姩鍒嗕韩缁樺浘
+	 * @Title: createActivityShareImg
+	 * @Description: 
+	 * @param title
+	 * @param desc
+	 * @param imgUrl
+	 * @param erCodeContent
+	 * @return 
+	 * String 杩斿洖绫诲瀷
+	 * @throws
+	 */
+	private String createActivityShareImg(String type, String id, String erCodeContent) {
+
+		String title = "";
+		String desc = "";
+		String img = "";
+		if ("circle".equalsIgnoreCase(type)) {
+
+		} else if ("banner".equalsIgnoreCase(type)) {
+			SwiperPicture picture = swiperPictureService.selectByPrimaryKey(Long.parseLong(id));
+			title = picture.getTitle();
+			desc = picture.getDesc();
+			img = picture.getSrc();
+		} else if ("special".equalsIgnoreCase(type)) {
+			Special special = specialService.selectByPrimaryKey(Long.parseLong(id));
+			title = special.getName();
+			desc = special.getRemark();
+			img = special.getPicture();
+		}
+
+		try {
+			InputStream erCodeInputStream = null;
+			erCodeInputStream = QRCodeUtil.getInstance(250).encode(erCodeContent);
+			int[] size = new int[2];
+			try {
+				size = ImageUtil.getImgWidthAndHeight(img);
+			} catch (MalformedURLException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			InputStream resultInputStream = ImageUtil.drawActivityShareImg(HttpUtil.getAsInputStream(img),
+					(float) size[0] / size[1], title, desc, erCodeInputStream);
+			if (resultInputStream != null) {
+				String filePath = FilePathEnum.activityShare.getPath() + UUID.randomUUID().toString().replace("-", "")
+						+ ".png";
+				FileUploadResult result = COSManager.getInstance().uploadFile(resultInputStream, filePath);
+				if (result != null)
+					return result.getUrl();
+			}
+		} catch (Exception e1) {
+			e1.printStackTrace();
+		}
+
+		return null;
+	}
+
+	/**
+	 * 璇勮澶嶅埗-涓撻
 	 * 
 	 * @param acceptData
 	 * @param id
 	 * @param out
 	 */
-	private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) {
-		if (StringUtil.isNullOrEmpty(id)) {
-			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+	@RequestMapping(value = "getActivityShareImg")
+	public void getActivityShareImg(String callback, AcceptData acceptData, Long uid, String id, String type,
+			PrintWriter out) {
+		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
 			return;
 		}
 
-		GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
-		if (goodsEvaluate == null) {
-			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+			// copyActivityComment(callback, acceptData, uid, id, out);
+			// TODO 鍒嗕韩鍙戝湀鐨勫浘
+			return;
+		}
+
+		long pid = Long.parseLong(id);
+		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+		if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
 			return;
 		}
 
 		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
 		if (user == null) {
-			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
 
 		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+			JsonUtil.printMode(out, callback,
+					JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
 			return;
 		}
 
@@ -1388,7 +1476,98 @@
 			relationId = taoBaoInfo.getRelationId();
 
 		if (StringUtil.isNullOrEmpty(relationId)) {
-			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+			return;
+		}
+
+		String text = shareInfo.getComment();
+		String newText = text;
+		String imgUrl = null;
+		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+			try {
+				String erCodeContent = "";
+				newText = convertLinkManager.convertLinkFromText(text, uid, true);
+				// 鑾峰彇鍙d护
+				List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText);
+				if (tokenList != null && tokenList.size() > 0) {
+					// 鏋勯�犲垎浜摼鎺�
+					erCodeContent = ShareControllerV2.getTaoBaoActiivtyERCodeContentNew(
+							configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), tokenList.get(0));
+				} else {
+					// 鑾峰彇閾炬帴
+					List<String> urlList = JDUtil.getJDShortLinksFromText(newText);
+					if (urlList != null && urlList.size() > 0) {
+						erCodeContent = urlList.get(0);
+					} else {
+						urlList = PinDuoDuoUtil.getPDDShortLinksFromText(newText);
+						if (urlList != null && urlList.size() > 0) {
+							erCodeContent = urlList.get(0);
+						}
+					}
+				}
+
+				imgUrl = createActivityShareImg(type, id, erCodeContent);
+			} catch (ConvertLinkExceptionException e) {
+				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+					return;
+				}
+			} catch (Exception e) {
+				LogHelper.errorDetailInfo(e);
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+				return;
+			}
+		}
+
+		if (StringUtil.isNullOrEmpty(imgUrl)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
+		} else {
+			JSONObject data = new JSONObject();
+			data.put("text", newText);
+			data.put("img", imgUrl);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		}
+	}
+
+	/**
+	 * 璇勮澶嶅埗
+	 * 
+	 * @param acceptData
+	 * @param id
+	 * @param out
+	 */
+	private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) {
+		if (StringUtil.isNullOrEmpty(id)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+			return;
+		}
+
+		GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+		if (goodsEvaluate == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+			return;
+		}
+
+		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+		if (user == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+			JsonUtil.printMode(out, callback,
+					JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+			return;
+		}
+
+		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+		String relationId = null;
+		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+				&& taoBaoInfo.getRelationValid() == true)
+			relationId = taoBaoInfo.getRelationId();
+
+		if (StringUtil.isNullOrEmpty(relationId)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
 			return;
 		}
 
@@ -1407,18 +1586,18 @@
 				newText = convertLinkManager.convertLinkFromText(text, uid, true);
 			} catch (ConvertLinkExceptionException e) {
 				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
-					JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
 					return;
 				}
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
-				JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
 				return;
 			}
 		}
 		JSONObject data = new JSONObject();
 		data.put("text", newText);
-		JsonUtil.printMode(out, callback,JsonUtil.loadTrueResult(data));
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 
 		executor.execute(new Runnable() {
 			@Override

--
Gitblit v1.8.0