From 8222e8b237c5dfb0affcdc03335bfadc06403bf8 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期五, 19 七月 2019 15:49:39 +0800 Subject: [PATCH] 奖励券使用优化类型 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java | 659 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 592 insertions(+), 67 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java index 7266793..753465e 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java @@ -13,6 +13,7 @@ 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; import org.yeshi.utils.DateUtil; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.JsonUtil; @@ -31,10 +32,13 @@ import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.goods.CommonGoods; +import com.yeshi.fanli.entity.goods.ShareGoodsTextTemplate; import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoLink; +import com.yeshi.fanli.entity.taobao.TaoKeAppInfo; import com.yeshi.fanli.exception.ShareGoodsException; +import com.yeshi.fanli.exception.goods.ShareGoodsTextTemplateException; import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException; @@ -61,6 +65,9 @@ import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TaoBaoConstant; +import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; +import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; @@ -72,6 +79,7 @@ import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.util.taobao.TaoLiJinUtil; import com.yeshi.fanli.vo.goods.GoodsDetailVO; +import com.yeshi.fanli.vo.goods.ShareInfoVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -112,6 +120,12 @@ @Resource private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil; + + @Resource + private JDGoodsCacheUtil jdGoodsCacheUtil; + + @Resource + private PinDuoDuoCacheUtil pinDuoDuoCacheUtil; @Resource private RedisManager redisManager; @@ -186,10 +200,10 @@ return; } } - /** * 鍒涘缓娣樺疂鍒嗕韩淇℃伅 + * * @param acceptData * @param uid * @param goodsId @@ -212,15 +226,17 @@ return; } + // 娣樼ぜ閲戝垱寤哄垎浜� if (source != null && "taolijin".equals(source)) { createTaoLijin(uid, goodsId, totalNum, relationId, request, out); return; } try { + ShareInfoVO shareInfo = new ShareInfoVO(); + TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, goodsId, relationId); - JSONObject data = new JSONObject(); String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(), Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), goodsId + ""); @@ -230,10 +246,10 @@ url = shortLink; } - data.put("clickUrl", url); - data.put("token", taoBaoLink.getTaoToken()); - data.put("rule", configService.get("share_single_goods_rule")); - data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); + shareInfo.setClickUrl(url); + shareInfo.setToken(taoBaoLink.getTaoToken()); + shareInfo.setRule(configService.get("share_single_goods_rule")); + shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); String shareText = ""; // 鏃犲埜 @@ -261,28 +277,34 @@ shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) .replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day())) .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", taoBaoLink.getTaoToken()); - data.put("shareText", shareText); + + shareInfo.setShareText(shareText); + String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim(); - if (descText.startsWith("\\r\\n")) + if (descText.startsWith("\\r\\n")) { descText = descText.substring(0); - data.put("descText", descText); - // + } + shareInfo.setDescText(descText); + + // 鎻愮ず鍥炬枃鍐呭 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)); - data.put("notifyDesc", configService.get("goods_share_notify")); + if (p < array.size()) { + shareInfo.setNotifyPicture(array.optString(p)); + } + shareInfo.setNotifyDesc(configService.get("goods_share_notify")); - // 娣诲姞鍒嗕韩璁板綍 + // 鍒嗕韩閲戦 BigDecimal rate = hongBaoManageService.getShareRate(); BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate); + shareInfo.setShareMoney("楼" + shareMoney.toString()); - data.put("shareMoney", "楼" + shareMoney.toString()); + // 鍒嗕韩id try { ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, Constant.SOURCE_TYPE_TAOBAO); - data.put("shareId", shareRecord.getRedisKey()); + shareInfo.setShareId(shareRecord.getRedisKey()); } catch (Exception e) { try { LogHelper.errorDetailInfo(e); @@ -290,7 +312,8 @@ e1.printStackTrace(); } } - out.print(JsonUtil.loadTrueResult(data)); + + out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo))); final TaoBaoLink taobaoLink = taoBaoLink; // 寮傛鎿嶄綔 @@ -358,8 +381,8 @@ return; } - JSONObject data = new JSONObject(); - data.put("spreadMoney", " 楼" + spreadMoney.toString()); + ShareInfoVO shareInfo = new ShareInfoVO(); + shareInfo.setSpreadMoney(" 楼" + spreadMoney.toString()); String taoLiJinLink = null; Long tljId = null; @@ -367,8 +390,8 @@ UserTaoLiJinRecord record = userTaoLiJinRecordService.createShareTaoLiJin(uid, totalNum, goods); tljId = record.getId(); taoLiJinLink = record.getSendUrl(); - data.put("tljId", tljId); - data.put("surplusMoney", record.getSurplusMoney()); + shareInfo.setTljId(tljId.toString()); + shareInfo.setSurplusMoney(record.getSurplusMoney().toString()); } catch (UserTaoLiJinRecordException e) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); return; @@ -381,7 +404,7 @@ if (!StringUtil.isNullOrEmpty(shortLink)) { url = shortLink; } - data.put("clickUrl", url); + shareInfo.setClickUrl(url); // 鍒涘缓娣樺彛浠� if (!StringUtil.isNullOrEmpty(taoLiJinLink)) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔� @@ -396,11 +419,9 @@ taoBaoLink.setTaoToken(quanToken); } } - data.put("token", taoBaoLink.getTaoToken()); - - data.put("rule", - "http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0"); - data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); + shareInfo.setToken(taoBaoLink.getTaoToken()); + shareInfo.setRule(configService.get("share_single_goods_rule")); + shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); // 鏃犲埜 String shopType = taoBaoLink.getGoods().getUserType() == 0 ? "娣樺疂浠�" : "澶╃尗浠�"; @@ -429,28 +450,30 @@ shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) .replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day())) .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", taoBaoLink.getTaoToken()); - data.put("shareText", shareText); + shareInfo.setShareText(shareText); + String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim(); if (descText.startsWith("\\r\\n")) descText = descText.substring(0); - data.put("descText", descText); + + shareInfo.setDescText(descText); 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)); - data.put("notifyDesc", configService.get("goods_share_notify")); + if (p < array.size()) { + shareInfo.setNotifyPicture(array.optString(p)); + } + shareInfo.setNotifyDesc(configService.get("goods_share_notify")); // 娣诲姞鍒嗕韩璁板綍 BigDecimal rate = hongBaoManageService.getShareRate(); BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate); - - data.put("shareMoney", "楼" + shareMoney.toString()); + shareInfo.setShareMoney("楼" + shareMoney.toString()); try { ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId, Constant.SOURCE_TYPE_TAOBAO); - data.put("shareId", shareRecord.getRedisKey()); + shareInfo.setShareId(shareRecord.getRedisKey()); } catch (Exception e) { try { LogHelper.errorDetailInfo(e); @@ -458,7 +481,7 @@ e1.printStackTrace(); } } - out.print(JsonUtil.loadTrueResult(data)); + out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo))); final TaoBaoLink taobaoLink = taoBaoLink; // 寮傛鎿嶄綔 @@ -521,7 +544,8 @@ return; } - JSONObject data = new JSONObject(); + // TODO + ShareInfoVO shareInfo = new ShareInfoVO(); String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq&goodsType=%s", configService.getH5Host(), Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), goodsId + "", Constant.SOURCE_TYPE_JD); @@ -532,12 +556,11 @@ url = shortLink; } - data.put("clickUrl", url); - data.put("rule", configService.get("share_rule_link_jd")); - data.put("pictUrl", jdGoods.getPicUrl()); + shareInfo.setClickUrl(url); + shareInfo.setRule(configService.get("share_rule_link_jd")); + shareInfo.setPictUrl(jdGoods.getPicUrl()); String shareText = ""; - String shopType = "浜笢浠�"; // 鍒嗕韩妯℃澘 @@ -564,29 +587,31 @@ shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) .replace("{鏈堥攢閲弣", JDUtil.getSaleCount(jdGoods.getInOrderCount30Days())).replace("{棰嗗埜鐭摼}", shortLink) .replace("{娣樺彛浠", null); - data.put("shareText", shareText); + shareInfo.setShareText(shareText); String descText = shareText.replace(jdGoods.getSkuName(), "").trim(); - if (descText.startsWith("\\r\\n")) + if (descText.startsWith("\\r\\n")) { descText = descText.substring(0); - data.put("descText", descText); + } + shareInfo.setDescText(descText); + // 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)); - data.put("notifyDesc", configService.get("goods_share_notify_jd")); + if (p < array.size()) { + shareInfo.setNotifyPicture(array.optString(p)); + } + shareInfo.setNotifyDesc(configService.get("goods_share_notify_jd")); // 娣诲姞鍒嗕韩璁板綍 BigDecimal shareRate = hongBaoManageService.getShareRate(); BigDecimal shareMoney = JDUtil.getGoodsFanLiMoney(jdGoods, shareRate); - - data.put("shareMoney", "楼" + shareMoney.toString()); + shareInfo.setShareMoney("楼" + shareMoney.toString()); try { ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, Constant.SOURCE_TYPE_JD); - data.put("shareId", shareRecord.getRedisKey()); + shareInfo.setShareId(shareRecord.getRedisKey()); } catch (Exception e) { try { LogHelper.errorDetailInfo(e); @@ -594,7 +619,7 @@ e1.printStackTrace(); } } - out.print(JsonUtil.loadTrueResult(data)); + out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo))); // 寮傛鎿嶄綔 final JDGoods goods = jdGoods; @@ -639,7 +664,9 @@ return; } - JSONObject data = new JSONObject(); + ShareInfoVO shareInfo = new ShareInfoVO(); + + // TODO String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq&goodsType=%s", configService.getH5Host(), Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), goodsId + "", Constant.SOURCE_TYPE_PDD); @@ -649,13 +676,11 @@ url = shortLink; } - data.put("clickUrl", url); - // 甯姪涓績-浠嬬粛 - data.put("rule", configService.get("share_rule_link_pdd")); - data.put("pictUrl", goods.getGoodsImageUrl()); + shareInfo.setClickUrl(url); + shareInfo.setRule(configService.get("share_rule_link_pdd")); + shareInfo.setPictUrl(goods.getGoodsImageUrl()); String shareText = ""; - String shopType = "鎷煎澶氫环"; // 鏃犲埜 @@ -682,29 +707,32 @@ shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) .replace("{鏈堥攢閲弣", PinDuoDuoUtil.getSaleCount(goods.getSoldQuantity())).replace("{棰嗗埜鐭摼}", shortLink) .replace("{娣樺彛浠", null); - data.put("shareText", shareText); + shareInfo.setShareText(shareText); + String descText = shareText.replace(goods.getGoodsName(), "").trim(); - if (descText.startsWith("\\r\\n")) + if (descText.startsWith("\\r\\n")) { descText = descText.substring(0); - data.put("descText", descText); + } + shareInfo.setDescText(descText); + // 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)); - - data.put("notifyDesc", configService.get("goods_share_notify_pdd")); + if (p < array.size()) { + shareInfo.setNotifyPicture(array.optString(p)); + } + shareInfo.setNotifyDesc(configService.get("goods_share_notify_pdd")); // 娣诲姞鍒嗕韩璁板綍 BigDecimal shareRate = hongBaoManageService.getShareRate(); BigDecimal shareMoney = PinDuoDuoUtil.getGoodsFanLiMoney(goods, shareRate); + shareInfo.setShareMoney("楼" + shareMoney.toString()); - data.put("shareMoney", "楼" + shareMoney.toString()); try { ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, Constant.SOURCE_TYPE_JD); - data.put("shareId", shareRecord.getRedisKey()); + shareInfo.setShareId(shareRecord.getRedisKey()); } catch (Exception e) { try { LogHelper.errorDetailInfo(e); @@ -712,7 +740,7 @@ e1.printStackTrace(); } } - out.print(JsonUtil.loadTrueResult(data)); + out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo))); // 寮傛鎿嶄綔 com.yeshi.fanli.util.ThreadUtil.run(new Runnable() { @@ -745,6 +773,503 @@ } /** + * 棰勮鍒嗕韩妯℃澘 + * + * @param acceptData + * @param uid + * @param template + * @param goodsId + * @param hasCoupon + * @param out + */ + @RequestMapping(value = "viewShareTextTemplate", method = RequestMethod.POST) + public void viewShareTextTemplate(AcceptData acceptData, Long uid, String template, Integer goodsType, Long goodsId, + Long tljId, Boolean hasCoupon, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (goodsId == null) { + out.print(JsonUtil.loadFalseResult(3, "鍟嗗搧ID涓嶈兘涓虹┖")); + return; + } + + if (goodsType == null || goodsType > 3 || goodsType < 1) { + out.print(JsonUtil.loadFalseResult(3, "骞冲彴绫诲瀷涓嶆纭�")); + return; + } + + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + createTaoBaoViewText(goodsType, uid, template, goodsId, tljId, hasCoupon, out); + return; + } + + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + createJDViewText(goodsType, uid, template, goodsId, hasCoupon, out); + return; + } + + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + createPDDViewText(goodsType, uid, template, goodsId, hasCoupon, out); + return; + } + } + + /** + * 鍒涘缓娣樺疂鍒嗕韩妯℃澘 + * + * @param uid + * @param template + * @param goodsType + * @param goodsId + * @param tljId + * @param hasCoupon + * @param out + */ + public void createTaoBaoViewText(Integer goodsType, Long uid, String template, Long goodsId, Long tljId, + Boolean hasCoupon, PrintWriter out) { + 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(goodsType, uid, hasCoupon, tljId); + } + + // 鏍¢獙鍒告ā鏉挎槸鍚︽纭� + if (hasCoupon) { + // 鏈夊埜鍟嗗搧 + if (tljId != null) { + try { + shareGoodsTextTemplateService.isTaoLiJinTemplateRight(template); + } catch (ShareGoodsTextTemplateException e) { + out.print(JsonUtil.loadFalseResult(5, e.getMsg())); + return; + } + } else { + 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 url = null; + if (tljId != null) { + UserTaoLiJinRecord userTaoLiJinRecord = userTaoLiJinRecordService.selectByPrimaryKey(tljId); + if (userTaoLiJinRecord == null) { + out.print(JsonUtil.loadFalseResult(5, "娣樼ぜ閲戦鍙栭摼鎺ヤ笉瀛樺湪")); + return; + } + url = userTaoLiJinRecord.getSendUrl(); + } else { + url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(), + Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), + goods.getAuctionId() + ""); + } + + String shortLink = HttpUtil.getShortLink(url); + + // 鏌ヨ鏄惁鏈夊垎浜� + UserShareGoodsHistory userShareHistory = shareGoodsService.getShareGoodsHistory(uid, goods.getAuctionId()); + String token = ""; + if (userShareHistory != null) { + token = userShareHistory.getTkCode(); + } + + if (StringUtil.isNullOrEmpty(token)) { + TaoKeAppInfo app = new TaoKeAppInfo(); + app.setAdzoneId(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]); + app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT); + TaoBaoGoodsBrief goodsLink = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); + if (goodsLink != null) + token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), + StringUtil.isNullOrEmpty(goodsLink.getCouponLink()) ? goodsLink.getAuctionUrl() + : goodsLink.getCouponLink()); + } + String content = shareGoodsTextTemplateService.createContentByTemplate(template, uid, goods, token, shortLink, + hasCoupon, tljId); + JSONObject data = new JSONObject(); + data.put("content", content); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鍒涘缓浜笢鍒嗕韩妯℃澘 + * + * @param uid + * @param template + * @param goodsType + * @param goodsId + * @param tljId + * @param hasCoupon + * @param out + */ + public void createJDViewText(Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon, + PrintWriter out) { + JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId); + if (goods == null) { + out.print(JsonUtil.loadFalseResult(4, "鍟嗗搧宸蹭笅鏋�")); + return; + } + + if (StringUtil.isNullOrEmpty(template)) { + template = getShareTemplate(goodsType, uid, hasCoupon, null); + } + + // 鏍¢獙鍒告ā鏉挎槸鍚︽纭� + if (hasCoupon) { + // 鏈夊埜鍟嗗搧 + try { + shareGoodsTextTemplateService.isCouponTemplateRightJD(template); + } catch (ShareGoodsTextTemplateException e) { + out.print(JsonUtil.loadFalseResult(5, e.getMsg())); + return; + } + + } else { + // 鏅�氬晢鍝� + try { + shareGoodsTextTemplateService.isCommonTemplateRightJD(template); + } catch (ShareGoodsTextTemplateException e) { + out.print(JsonUtil.loadFalseResult(5, e.getMsg())); + return; + } + } + + String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(), + Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), + goodsId + ""); + String shortLink = HttpUtil.getShortLink(url); + + String content = shareGoodsTextTemplateService.createContentByTemplateJD(template, uid, goods, shortLink, + hasCoupon); + JSONObject data = new JSONObject(); + data.put("content", content); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鍒涘缓浜笢鍒嗕韩妯℃澘 + * + * @param uid + * @param template + * @param goodsType + * @param goodsId + * @param tljId + * @param hasCoupon + * @param out + */ + public void createPDDViewText(Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon, + PrintWriter out) { + PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); + if (goods == null) { + out.print(JsonUtil.loadFalseResult(4, "鍟嗗搧宸蹭笅鏋�")); + return; + } + + if (StringUtil.isNullOrEmpty(template)) { + template = getShareTemplate(goodsType, uid, hasCoupon, null); + } + + // 鏍¢獙鍒告ā鏉挎槸鍚︽纭� + if (hasCoupon) { + // 鏈夊埜鍟嗗搧 + try { + shareGoodsTextTemplateService.isCouponTemplateRightPDD(template); + } catch (ShareGoodsTextTemplateException e) { + out.print(JsonUtil.loadFalseResult(5, e.getMsg())); + return; + } + + } else { + // 鏅�氬晢鍝� + try { + shareGoodsTextTemplateService.isCommonTemplateRightPDD(template); + } catch (ShareGoodsTextTemplateException e) { + out.print(JsonUtil.loadFalseResult(5, e.getMsg())); + return; + } + } + + // 鍒涘缓h5杩炴帴 + String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(), + Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), + goodsId + ""); + String shortLink = HttpUtil.getShortLink(url); + + // 鍒涘缓鍙d护 + String token = PinDuoDuoApiUtil.createGenerate(goodsId); + + // 鐢熸垚鍒嗕韩鍐呭 + String content = shareGoodsTextTemplateService.createContentByTemplatePDD(template, uid, goods, shortLink, + hasCoupon, token); + + JSONObject data = new JSONObject(); + data.put("content", content); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鑾峰彇鍒嗕韩妯℃澘 + * + * @param uid + * @param hasCoupon + * @param tljId + * @return + */ + private String getShareTemplate(int goodsType, Long uid, boolean hasCoupon, Long tljId) { + String template = ""; + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + if (hasCoupon) { + if (tljId != null) { + template = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid); + if (StringUtil.isNullOrEmpty(template)) + template = configTaoLiJinService.getValueByKey("goods_share_text"); + } else { + template = shareGoodsTextTemplateService.geteCouponTemplate(uid); + if (StringUtil.isNullOrEmpty(template)) + template = configService.get("goods_share_text_coupon"); + } + + } else { + template = shareGoodsTextTemplateService.getCommonTemplate(uid); + if (StringUtil.isNullOrEmpty(template)) + template = configService.get("goods_share_text_nocoupon"); + } + } else if (goodsType == Constant.SOURCE_TYPE_JD) { + ShareGoodsTextTemplate textTemplate = shareGoodsTextTemplateService.getShareGoodsTextTemplate(uid); + if (hasCoupon) { + if (textTemplate != null) { + template = textTemplate.getShareJDTextTemplateCoupon(); + } + if (StringUtil.isNullOrEmpty(template)) { + template = configService.get("goods_share_text_coupon_jd"); + } + } else { + if (textTemplate != null) { + template = textTemplate.getShareJDTextTemplate(); + } + + if (StringUtil.isNullOrEmpty(template)) { + template = configService.get("goods_share_text_nocoupon_jd"); + } + } + } else if (goodsType == Constant.SOURCE_TYPE_PDD) { + ShareGoodsTextTemplate textTemplate = shareGoodsTextTemplateService.getShareGoodsTextTemplate(uid); + if (hasCoupon) { + if (textTemplate != null) { + template = textTemplate.getSharePDDTextTemplateCoupon(); + } + if (StringUtil.isNullOrEmpty(template)) { + template = configService.get("goods_share_text_coupon_pdd"); + } + } else { + if (textTemplate != null) { + template = textTemplate.getSharePDDTextTemplate(); + } + + if (StringUtil.isNullOrEmpty(template)) { + template = configService.get("goods_share_text_nocoupon_pdd"); + } + } + } + return template; + } + + /** + * 鑾峰彇鍒嗕韩妯℃澘 + * + * @param acceptData + * @param uid + * @param hasCoupon + * @param out + */ + @RequestMapping(value = "getShareTextTemplate", method = RequestMethod.POST) + public void getShareTextTemplate(AcceptData acceptData, Integer goodsType, Long uid, Long tljId, Boolean hasCoupon, + PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (hasCoupon == null) { + out.print(JsonUtil.loadFalseResult(1, "鏄惁鏈夊埜瀛楁涓虹┖")); + return; + } + + JSONObject data = new JSONObject(); + data.put("template", getShareTemplate(goodsType, uid, hasCoupon, tljId)); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鑾峰彇鍒嗕韩妯℃澘缂栬緫瑙勫垯 + * + * @param acceptData + * @param out + */ + @RequestMapping(value = "getShareTextTemplateRules", method = RequestMethod.POST) + public void getShareTextTemplateRules(AcceptData acceptData, Integer goodsType, Long tljId, PrintWriter out) { + if (goodsType == null || goodsType > 3 || goodsType < 1) { + out.print(JsonUtil.loadFalseResult(3, "骞冲彴绫诲瀷涓嶆纭�")); + return; + } + + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + if (tljId != null) { + out.print(JsonUtil.loadTrueResult(configTaoLiJinService.getValueByKey("share_goods_rules"))); + } else { + out.print(JsonUtil.loadTrueResult(configService.get("share_goods_template_rules"))); + } + } else if (goodsType == Constant.SOURCE_TYPE_JD) { + out.print(JsonUtil.loadTrueResult(configService.get("share_goods_template_rules_jd"))); + } else if (goodsType == Constant.SOURCE_TYPE_PDD) { + out.print(JsonUtil.loadTrueResult(configService.get("share_goods_template_rules_pdd"))); + } + } + + /** + * 淇濆瓨妯℃澘 + * + * @param acceptData + * @param uid + * @param hasCoupon + * @param template + * @param out + */ + @RequestMapping(value = "saveShareTextTemplate", method = RequestMethod.POST) + public void saveShareTextTemplate(AcceptData acceptData, Integer goodsType, Long uid, Long tljId, Boolean hasCoupon, + String template, PrintWriter out) { + if (StringUtil.isNullOrEmpty(template)) { + out.print(JsonUtil.loadFalseResult(1, "鍒嗕韩妯℃澘涓虹┖")); + return; + } + + if (goodsType == null || goodsType > 3 || goodsType < 1) { + out.print(JsonUtil.loadFalseResult(3, "骞冲彴绫诲瀷涓嶆纭�")); + return; + } + + try { + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + // 鏍¢獙鍒告ā鏉挎槸鍚︽纭� + if (hasCoupon) { + // 鏈夊埜鍟嗗搧 + if (tljId != null) { + shareGoodsTextTemplateService.isTaoLiJinTemplateRight(template); + shareGoodsTextTemplateService.saveTaoLiJinTemplate(uid, template); + } else { + shareGoodsTextTemplateService.isCouponTemplateRight(template); + shareGoodsTextTemplateService.saveCouponTemplate(uid, template); + } + } else { + // 鏅�氬晢鍝� + shareGoodsTextTemplateService.isCommonTemplateRight(template); + shareGoodsTextTemplateService.saveCommonTemplate(uid, template); + } + } else if (goodsType == Constant.SOURCE_TYPE_JD) { + if (hasCoupon) { + shareGoodsTextTemplateService.isCouponTemplateRightJD(template); + shareGoodsTextTemplateService.saveCouponTemplateJD(uid, template); + } else { + shareGoodsTextTemplateService.isCommonTemplateRightJD(template); + shareGoodsTextTemplateService.saveCommonTemplateJD(uid, template); + out.print(JsonUtil.loadTrueResult("")); + } + } else if (goodsType == Constant.SOURCE_TYPE_PDD) { + if (hasCoupon) { + shareGoodsTextTemplateService.isCouponTemplateRightPDD(template); + shareGoodsTextTemplateService.saveCouponTemplatePDD(uid, template); + } else { + shareGoodsTextTemplateService.isCommonTemplateRightPDD(template); + shareGoodsTextTemplateService.saveCommonTemplatePDD(uid, template); + out.print(JsonUtil.loadTrueResult("")); + } + } + } catch (ShareGoodsTextTemplateException e) { + out.print(JsonUtil.loadFalseResult(5, e.getMsg())); + return; + } + out.print(JsonUtil.loadTrueResult("")); + } + + /** + * 杩樺師妯℃澘 + * + * @param acceptData + * @param uid + * @param hasCoupon -鏄惁鏈夊埜 + * @param out + */ + @RequestMapping(value = "resetShareTextTemplate", method = RequestMethod.POST) + public void resetShareTextTemplate(AcceptData acceptData, Long uid, Long goodsId, Long tljId, Boolean hasCoupon, + Integer goodsType, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (goodsType == null || goodsType > 3 || goodsType < 1) { + out.print(JsonUtil.loadFalseResult(3, "骞冲彴绫诲瀷涓嶆纭�")); + return; + } + + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + if (hasCoupon) { + if (tljId != null) { + shareGoodsTextTemplateService.resetTaoLijinTemplate(uid); + } else { + shareGoodsTextTemplateService.resetCouponTemplate(uid); + } + } else { + shareGoodsTextTemplateService.resetCommonTemplate(uid); + } + } else if (goodsType == Constant.SOURCE_TYPE_JD) { + if (hasCoupon) { + shareGoodsTextTemplateService.resetCouponTemplateJD(uid); + } else { + shareGoodsTextTemplateService.resetCommonTemplateJD(uid); + } + } else if (goodsType == Constant.SOURCE_TYPE_PDD) { + if (hasCoupon) { + shareGoodsTextTemplateService.resetCouponTemplatePDD(uid); + } else { + shareGoodsTextTemplateService.resetCommonTemplatePDD(uid); + } + } + + + if (goodsId != null) { + viewShareTextTemplate(acceptData, uid, null, goodsType, goodsId, tljId, hasCoupon, out); + return; + } + out.print(JsonUtil.loadTrueResult("")); + } + + /** * 鑾峰彇鍒嗕韩璁板綍涓殑鍟嗗搧 鍒嗕韩淇℃伅 * * @param acceptData -- Gitblit v1.8.0