From aa784ab65cc24caf45a4c38af7e5fdeb526eb393 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 14 五月 2019 14:49:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java |  284 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 264 insertions(+), 20 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java
index def96c7..c2d92e7 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java
@@ -9,6 +9,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -16,13 +17,21 @@
 import org.yeshi.utils.JsonUtil;
 import org.yeshi.utils.taobao.TbImgUtil;
 
+import com.yeshi.fanli.dto.share.ShareInfoDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord;
+import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum;
 import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
+import com.yeshi.fanli.entity.dynamic.DynamicInfo;
+import com.yeshi.fanli.entity.dynamic.GoodsPicture;
+import com.yeshi.fanli.entity.system.BusinessSystem;
+import com.yeshi.fanli.entity.system.SystemClientParams;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
 import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
 import com.yeshi.fanli.exception.ShareGoodsException;
@@ -30,12 +39,16 @@
 import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
+import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
 import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
 import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.monitor.MonitorService;
+import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
 import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
@@ -45,10 +58,12 @@
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
+import com.yeshi.fanli.util.account.UserUtil;
 import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
 import com.yeshi.fanli.util.factory.MonitorFactory;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
 
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -57,6 +72,9 @@
 @RequestMapping("api/v1/share")
 public class ShareController {
 
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
+	
 	@Resource
 	private ShareGoodsService shareGoodsService;
 
@@ -92,6 +110,19 @@
 
 	@Resource
 	private ShareGoodsTextTemplateService shareGoodsTextTemplateService;
+	
+	@Resource
+	private SystemClientParamsService systemClientParamsService;
+	
+	@Resource
+	private DynamicInfoService dynamicInfoService;
+
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+	
+	@Resource
+	private SpreadUserImgService spreadUserImgService;
+	
 
 	// 鑾峰彇鍟嗗搧鍒嗕韩閾炬帴
 	@RequestMapping(value = "getGoodsShareUrl")
@@ -192,36 +223,40 @@
 
 			// 娣诲姞鍒嗕韩璁板綍
 			BigDecimal rate = hongBaoManageService.getShareRate();
-			UserShareGoodsHistory history = new UserShareGoodsHistory();
-			history.setTkCode(taoBaoLink.getTaoToken());
-			history.setLink(taoBaoLink.getClickUrl());
-			history.setQuanLink(taoBaoLink.getCouponLink());
-
-			history.setCreateTime(new Date());
-			history.setGoodsId(taoBaoLink.getGoods().getAuctionId());
-			history.setGoodsType(UserShareGoodsHistory.TYPE_TAOBAO);
-			history.setHongbao(TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate));
-			List<String> imgList = taoBaoLink.getGoods().getImgList();
-			if (imgList == null) {
-				imgList = new ArrayList<>();
-			}
-			history.setPictures(JsonUtil.getGson().toJson(imgList));
-			history.setUser(new UserInfo(uid));
-			history.setPostPicture(taoBaoLink.getGoods().getPictUrl());
-
-			data.put("shareMoney", "楼" + history.getHongbao().toString());
-
+			BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate);
+			
+			data.put("shareMoney", "楼" + shareMoney.toString());
+			data.put("shareId", userShareGoodsRecordService.saveSingleShareRecord(uid, auctionId));
 			out.print(JsonUtil.loadTrueResult(data));
 
 			// 寮傛鎿嶄綔
 			com.yeshi.fanli.util.ThreadUtil.run(new Runnable() {
-
 				@Override
 				public void run() {
+					//寮傛鎿嶄綔 娣诲姞鍒嗕韩璁板綍
+					UserShareGoodsHistory history = new UserShareGoodsHistory();
+					history.setUser(new UserInfo(uid));
+					history.setHongbao(shareMoney);
+					history.setCreateTime(new Date());
+					history.setGoodsType(UserShareGoodsHistory.TYPE_TAOBAO);
+					history.setTkCode(taoBaoLink.getTaoToken());
+					history.setLink(taoBaoLink.getClickUrl());
+					history.setQuanLink(taoBaoLink.getCouponLink());
+					history.setGoodsId(taoBaoLink.getGoods().getAuctionId());
+					history.setPostPicture(taoBaoLink.getGoods().getPictUrl());
+					
+					List<String> imgList = taoBaoLink.getGoods().getImgList();
+					if (imgList == null) {
+						imgList = new ArrayList<>();
+					}
+					history.setPictures(JsonUtil.getGson().toJson(imgList));
 					shareGoodsService.addShareGoodsHistory(history);
 				}
 			});
 			return;
+		} catch (UserShareGoodsRecordException e) {
+			out.print(JsonUtil.loadFalseResult(e.getMsg()));
+			e.printStackTrace();
 		} catch (ShareGoodsException e) {
 			try {
 				monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊"));
@@ -590,4 +625,213 @@
 		out.print(JsonUtil.loadTrueResult(configService.get("share_goods_template_rules")));
 	}
 
+	
+
+	/**
+	 * 鏌ヨ椤堕儴鍒嗙被
+	 * @param acceptData
+	 * @param page
+	 * @param cid
+	 * @param out
+	 */
+	@RequestMapping(value = "shareDynamic", method = RequestMethod.POST)
+	public void shareDynamic(AcceptData acceptData, String id, Long uid, PrintWriter out) {
+		try {
+			
+			if (uid == null || uid <= 0) {
+				out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+				return;
+			}
+			
+			if (StringUtil.isNullOrEmpty(id)) {
+				out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+				return;
+			}
+			
+			DynamicInfo dynamicInfo = dynamicInfoService.getById(id);
+			if (dynamicInfo == null) {
+				out.print(JsonUtil.loadFalseResult("璇ュ姩鎬佷俊鎭凡涓嶅瓨鍦�"));
+				return;
+			}
+			
+			
+			
+			JSONObject data = new JSONObject();
+			// 鍒嗙被id
+			long cid = dynamicInfo.getClassId();
+			
+			if (cid == 1) { 	// 鐑攢鍗曞搧
+				// 鏂囧瓧鍐呭
+				String title ="";
+				List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle();
+				if (listTitle != null && listTitle.size() > 0) {
+					for (ClientTextStyleVO textStyleVO : listTitle) {
+						title += textStyleVO.getContent();
+					}
+				}
+				data.put("title", title);
+				data.put("content", "鎴戝湪杩斿埄鍒稿彂鐜颁簡涓�涓緢濂界殑鍟嗗搧锛屽揩鏉ョ湅鐪媬");
+				
+				// 鍒嗕韩濂栭噾
+				ClientTextStyleVO desc = dynamicInfo.getDesc();
+				String content = desc.getContent();
+				int index = content.indexOf("楼");
+				data.put("shareMoney", new BigDecimal(content.substring(index + 1, content.length())));
+			
+				// 鍟嗗搧鍒嗕韩閾炬帴
+				List<GoodsPicture> imgs2 = dynamicInfo.getImgs();
+				GoodsPicture goodsPicture = imgs2.get(0);
+				Long auctionId = goodsPicture.getGoods().getAuctionId();
+				String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
+						Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
+						auctionId + "");
+				String shortLink = HttpUtil.getShortLink(url);
+				if (!StringUtil.isNullOrEmpty(shortLink)) {
+					url = shortLink;
+				}
+				data.put("clickUrl", url);
+				
+				// 鍒嗕韩鎻愮ず鍥剧墖
+				String imgs = configService.get("goods_share_notify_imgs");
+				JSONArray array = JSONArray.fromObject(imgs);
+				int p = (int) (array.size() * Math.random());
+				if (p < array.size()) {
+					data.put("notifyPicture", array.optString(p));
+				}
+				
+				
+				UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid);
+				String relationId = null;
+				if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
+						&& extraInfo.getRelationValid() == true) {
+					relationId = extraInfo.getRelationId();
+				}
+				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, relationId);
+				
+				data.put("pictUrl", TbImgUtil.getTBSizeImg(goodsPicture.getUrl(), 500));
+				// 娣樺疂鍙d护
+				data.put("token", taoBaoLink.getTaoToken());
+				// 甯姪閾炬帴
+				data.put("helpLink","http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0");
+				// 鍒嗕韩鎻愰啋
+				data.put("notifyDesc", configService.get("goods_share_notify"));
+				// 鍒嗕韩璁板綍id
+				data.put("shareId", userShareGoodsRecordService.saveSingleShareRecord(uid, auctionId));
+				
+			} else if (cid == 2) { 	// 鎺ㄨ崘濂借揣
+				
+				String picUrl = null;
+				List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
+				List<GoodsPicture> listImgs = dynamicInfo.getImgs();
+				for (GoodsPicture goodsPicture: listImgs) {
+					TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
+					listGoods.add(goods);
+					
+					if (picUrl == null) {
+						picUrl = goodsPicture.getUrl();
+					}
+				}
+				
+				// 鏂囧瓧鍐呭
+				String title ="";
+				List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle();
+				if (listTitle != null && listTitle.size() > 0) {
+					for (ClientTextStyleVO textStyleVO : listTitle) {
+						title += textStyleVO.getContent();
+					}
+				}
+				data.put("title", title);
+				data.put("content", "鎴戝湪杩斿埄鍒稿彂鐜颁簡涓�涓緢濂界殑鍟嗗搧锛屽揩鏉ョ湅鐪媬");
+				
+				// 鍒嗕韩濂栭噾
+				ClientTextStyleVO desc = dynamicInfo.getDesc();
+				String content = desc.getContent();
+				int index = content.indexOf("楼");
+				data.put("shareMoney", new BigDecimal(content.substring(index + 1 , content.length())));
+				
+				// 鍒嗕韩閾炬帴
+				ShareInfoDTO shareInfo = userShareGoodsRecordService.saveShareRecord(uid, 
+						ShareSourceTypeEnum.activity, title, listGoods);
+				data.put("shareId", shareInfo.getShareId());
+				data.put("clickUrl", shareInfo.getCodeUrl());
+				data.put("pictUrl", TbImgUtil.getTBSizeImg(picUrl, 500));
+				// 甯姪閾炬帴
+				data.put("helpLink","http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0");
+				// 鍒嗕韩鎻愰啋
+				data.put("notifyDesc", configService.get("goods_share_notify"));
+				// 鍒嗕韩鎻愰啋璇�
+				String notifyImgs = configService.get("goods_share_notify_imgs");
+				JSONArray array = JSONArray.fromObject(notifyImgs);
+				int p = (int) (array.size() * Math.random());
+				if (p < array.size()) {
+					data.put("notifyPicture", array.optString(p));
+				}
+				
+			} else if (cid == 4) { // 閭�璇峰垎浜�
+				
+				String inviteCode = null;
+				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+				if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
+					inviteCode = userInfoExtra.getInviteCode();
+				} else {
+					out.print(JsonUtil.loadFalseResult(9001, "閭�璇风爜鏈縺娲�"));
+					return;
+				}
+				
+				Integer showType = dynamicInfo.getShowType();
+				if (showType == 0) {  // 鏃犲浘鍒嗕韩
+					String title ="";
+					List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle();
+					if (listTitle != null && listTitle.size() > 0) {
+						for (ClientTextStyleVO textStyleVO : listTitle) {
+							title += textStyleVO.getContent();
+						}
+					}
+					title = title.replace("銆愰個璇风爜銆�", inviteCode);
+					title = title.replace("銆愰個璇烽摼鎺ャ��", UserUtil.getInviteShortLink(uid));
+					data.put("title", title);
+					
+				} else { // 鏈夊浘鍒嗕韩
+					
+					// 閭�璇烽摼鎺�
+					String shortLink = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/" 
+							+ Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
+					data.put("inviteLink", shortLink);
+					data.put("inviteCode", inviteCode);
+					
+					// 閭�璇峰浘鐗�
+					List<GoodsPicture> imgs = dynamicInfo.getImgs();
+					String imgLink = spreadUserImgService.getInviteImg(uid, imgs.get(0).getUrl(), inviteCode);
+					data.put("imgLink", imgLink);
+					
+					//  閭�璇疯鍒�
+					BusinessSystem system = new BusinessSystem();
+					system.setCreatetime(java.lang.System.currentTimeMillis());
+					system.setPlatform(1);
+					system.setId(4L);
+					String key = "inviteRules"; // key鍊�
+					SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, key);
+					String valueN = values.getValue();
+					String valueBr = valueN.replace("\n", "<br><br>");
+					data.put("inviteRules", valueBr);
+				}
+			}
+			out.print(JsonUtil.loadTrueResult(data));
+			
+			// 鏇存柊鍒嗕韩娆℃暟
+			executor.execute(new Runnable() {
+				@Override
+				public void run() {
+					Integer shareCount = dynamicInfo.getShareCount();
+					dynamicInfo.setShareCount(shareCount + 1);
+					dynamicInfoService.updateShareCount(dynamicInfo);
+				}
+			});
+			
+		} catch (Exception e) {
+			out.print(JsonUtil.loadFalseResult("鍒嗕韩璁板綍澶辫触"));
+			e.printStackTrace();
+		}
+	}
+	
 }

--
Gitblit v1.8.0