From 6f3eb63c05041b388a7252bdd42494848f237b3c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 11 四月 2019 12:03:13 +0800
Subject: [PATCH] 独立淘宝商品缓存,增加分享模板

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java |  190 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 190 insertions(+), 0 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 3346708..01af6fe 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
@@ -23,12 +23,16 @@
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord;
 import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
 import com.yeshi.fanli.exception.ShareGoodsException;
+import com.yeshi.fanli.exception.goods.ShareGoodsTextTemplateException;
 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.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.UserExtraTaoBaoInfoService;
@@ -37,7 +41,9 @@
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
 import com.yeshi.fanli.util.factory.MonitorFactory;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 
@@ -74,6 +80,15 @@
 
 	@Resource
 	private UserInfoService userInfoService;
+
+	@Resource
+	private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
+
+	@Resource
+	private RedisManager redisManager;
+
+	@Resource
+	private ShareGoodsTextTemplateService shareGoodsTextTemplateService;
 
 	// 鑾峰彇鍟嗗搧鍒嗕韩閾炬帴
 	@RequestMapping(value = "getGoodsShareUrl")
@@ -360,4 +375,179 @@
 		}
 	}
 
+	/**
+	 * 棰勮鍒嗕韩妯℃澘
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param template
+	 * @param goodsId
+	 * @param hasCoupon
+	 * @param out
+	 */
+	@RequestMapping(value = "viewShareTextTemplate", method = RequestMethod.POST)
+	public void preViewShareTextTemplate(AcceptData acceptData, Long uid, String template, Long goodsId,
+			Boolean hasCoupon, PrintWriter out) {
+		if (uid == null) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if (goodsId == null) {
+			out.print(JsonUtil.loadFalseResult(3, "鍟嗗搧ID涓嶈兘涓虹┖"));
+			return;
+		}
+
+		TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goodsId);
+		if (goods == null)
+			try {
+				goods = redisManager.getTaoBaoGoodsBrief(goodsId);
+			} catch (TaobaoGoodsDownException e) {
+				goods = null;
+			}
+
+		if (goods == null) {
+			out.print(JsonUtil.loadFalseResult(4, "鍟嗗搧宸蹭笅鏋�"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(template))
+			template = getShareTemplate(uid, hasCoupon);
+
+		// 鏍¢獙鍒告ā鏉挎槸鍚︽纭�
+		if (hasCoupon) {
+			// 鏈夊埜鍟嗗搧
+			try {
+				shareGoodsTextTemplateService.isCouponTemplateRight(template);
+			} catch (ShareGoodsTextTemplateException e) {
+				out.print(JsonUtil.loadFalseResult(5, e.getMsg()));
+				return;
+			}
+
+		} else {
+			// 鏅�氬晢鍝�
+			try {
+				shareGoodsTextTemplateService.isCommonTemplateRight(template);
+			} catch (ShareGoodsTextTemplateException e) {
+				out.print(JsonUtil.loadFalseResult(5, e.getMsg()));
+				return;
+			}
+		}
+
+		String content = shareGoodsTextTemplateService.createContentByTemplate(template, uid, goods, hasCoupon);
+		JSONObject data = new JSONObject();
+		data.put("content", content);
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 淇濆瓨妯℃澘
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param hasCoupon
+	 * @param template
+	 * @param out
+	 */
+	@RequestMapping(value = "saveShareTextTemplate", method = RequestMethod.POST)
+	public void saveShareTextTemplate(AcceptData acceptData, Long uid, Boolean hasCoupon, String template,
+			PrintWriter out) {
+		if (StringUtil.isNullOrEmpty(template)) {
+			out.print(JsonUtil.loadFalseResult(1, "鍒嗕韩妯℃澘涓虹┖"));
+			return;
+		}
+		// 鏍¢獙鍒告ā鏉挎槸鍚︽纭�
+		if (hasCoupon) {
+			// 鏈夊埜鍟嗗搧
+			try {
+				shareGoodsTextTemplateService.isCouponTemplateRight(template);
+				shareGoodsTextTemplateService.saveCouponTemplate(uid, template);
+				out.print(JsonUtil.loadTrueResult(""));
+			} catch (ShareGoodsTextTemplateException e) {
+				out.print(JsonUtil.loadFalseResult(5, e.getMsg()));
+				return;
+			}
+
+		} else {
+			// 鏅�氬晢鍝�
+			try {
+				shareGoodsTextTemplateService.isCommonTemplateRight(template);
+				shareGoodsTextTemplateService.saveCommonTemplate(uid, template);
+				out.print(JsonUtil.loadTrueResult(""));
+			} catch (ShareGoodsTextTemplateException e) {
+				out.print(JsonUtil.loadFalseResult(5, e.getMsg()));
+				return;
+			}
+		}
+
+	}
+
+	/**
+	 * 杩樺師妯℃澘
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param hasCoupon
+	 *            -鏄惁鏈夊埜
+	 * @param out
+	 */
+	@RequestMapping(value = "resetShareTextTemplate", method = RequestMethod.POST)
+	public void resetShareTextTemplate(AcceptData acceptData, Long uid, Boolean hasCoupon, PrintWriter out) {
+		if (uid == null) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+		if (hasCoupon) {
+			shareGoodsTextTemplateService.resetCouponTemplate(uid);
+		} else {
+			shareGoodsTextTemplateService.resetCommonTemplate(uid);
+		}
+
+		out.print(JsonUtil.loadTrueResult(""));
+	}
+
+	private String getShareTemplate(Long uid, boolean hasCoupon) {
+		if (hasCoupon) {
+			String template = shareGoodsTextTemplateService.geteCouponTemplate(uid);
+			if (StringUtil.isNullOrEmpty(template))
+				template = configService.get("goods_share_text_coupon");
+			return template;
+		} else {
+			String template = shareGoodsTextTemplateService.getCommonTemplate(uid);
+			if (StringUtil.isNullOrEmpty(template))
+				template = configService.get("goods_share_text_nocoupon");
+			return template;
+		}
+	}
+
+	/**
+	 * 鑾峰彇鍒嗕韩妯℃澘
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param hasCoupon
+	 * @param out
+	 */
+	@RequestMapping(value = "getShareTextTemplate", method = RequestMethod.POST)
+	public void getShareTextTemplate(AcceptData acceptData, Long uid, Boolean hasCoupon, PrintWriter out) {
+		if (uid == null) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+		JSONObject data = new JSONObject();
+		data.put("template", getShareTemplate(uid, hasCoupon));
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鑾峰彇鍒嗕韩妯℃澘缂栬緫瑙勫垯
+	 * 
+	 * @param acceptData
+	 * @param out
+	 */
+	@RequestMapping(value = "getShareTextTemplateRules", method = RequestMethod.POST)
+	public void getShareTextTemplateRules(AcceptData acceptData, PrintWriter out) {
+		out.print(JsonUtil.loadTrueResult(configService.get("share_goods_template_rules")));
+	}
+
 }

--
Gitblit v1.8.0