From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java | 2455 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,230 insertions(+), 1,225 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java index 13ca73e..f841010 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java @@ -1,1225 +1,1230 @@ -package com.yeshi.fanli.controller.client.v1; - -import java.io.PrintWriter; -import java.lang.reflect.Type; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -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; -import org.yeshi.utils.HttpUtil; -import org.yeshi.utils.JsonUtil; -import org.yeshi.utils.taobao.TbImgUtil; - -import com.fasterxml.jackson.core.util.VersionUtil; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import com.yeshi.fanli.controller.client.v2.ShareControllerV2; -import com.yeshi.fanli.dto.share.ShareGoodsRecordDTO; -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.tlj.UserTaoLiJinRecord; -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.goods.ShareGoodsTextTemplateException; -import com.yeshi.fanli.exception.share.ShareGoodsException; -import com.yeshi.fanli.exception.share.UserShareGoodsRecordException; -import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; -import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException; -import com.yeshi.fanli.log.LogHelper; -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.monitor.BusinessEmergent110Service; -import com.yeshi.fanli.service.inter.monitor.MonitorService; -import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; -import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService; -import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService; -import com.yeshi.fanli.service.inter.user.SpreadUserImgService; -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; -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.MoneyBigDecimalUtil; -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.util.taobao.TaoLiJinUtil; -import com.yeshi.fanli.vo.msg.ClientTextStyleVO; - -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - -@Controller(value = "ShareController1") -@RequestMapping("api/v1/share") -public class ShareController { - - @Resource(name = "taskExecutor") - private TaskExecutor executor; - - @Resource - private ShareGoodsService shareGoodsService; - - @Resource - private ConfigService configService; - - @Resource - private HongBaoManageService hongBaoManageService; - - @Resource - private MonitorService monitorService; - - @Resource - private UserShareGoodsRecordService userShareGoodsRecordService; - - @Resource - private UserShareGoodsGroupService userShareGoodsGroupService; - - @Resource - private CommonGoodsService commonGoodsService; - - @Resource - private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; - - @Resource - private UserInfoService userInfoService; - - @Resource - private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil; - - @Resource - private RedisManager redisManager; - - @Resource - private ShareGoodsTextTemplateService shareGoodsTextTemplateService; - - @Resource - private SystemClientParamsService systemClientParamsService; - - @Resource - private DynamicInfoService dynamicInfoService; - - @Resource - private UserInfoExtraService userInfoExtraService; - - @Resource - private SpreadUserImgService spreadUserImgService; - - @Resource - private BusinessEmergent110Service businessEmergent110Service; - - @Resource - private ConfigTaoLiJinService configTaoLiJinService; - - @Resource - private UserTaoLiJinRecordService userTaoLiJinRecordService; - - // 鑾峰彇鍟嗗搧鍒嗕韩閾炬帴 - @RequestMapping(value = "getGoodsShareUrl") - public void getGoodsShareUrl(AcceptData acceptData, long id, PrintWriter out) { - out.print(JsonUtil - .loadTrueResult(String.format("%s?id=" + id, Constant.systemCommonConfig.getAppShareInfoUrl()))); - } - - /** - * 鑾峰彇娣樺疂鐨勫垎浜摼鎺� - * - * @param acceptData - * @param uid - * -鐢ㄦ埛ID - * @param auctionId-鍟嗗搧ID - * @param out - */ - @RequestMapping(value = "gettaobaosharelink") - public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, String source, Integer totalNum, - HttpServletRequest request, PrintWriter out) { - - if (uid == null || uid <= 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); - return; - } - - UserInfo user = userInfoService.getUserByIdWithMybatis(uid); - if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); - return; - } - - if (auctionId == null || auctionId <= 0) { - out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧ID涓嶈兘涓虹┖")); - return; - } - - UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid); - String relationId = null; - if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null - && extraInfo.getRelationValid() == true) - relationId = extraInfo.getRelationId(); - - if (StringUtil.isNullOrEmpty(relationId)) { - out.print(JsonUtil.loadFalseResult(3, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); - return; - } - - if (source != null && "taolijin".equals(source)) { - createTaoLijin(uid, auctionId, totalNum, relationId, request, out); - return; - } - - try { - TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, 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), - auctionId + ""); - - String shortLink = HttpUtil.getShortLink(url); - if (!StringUtil.isNullOrEmpty(shortLink)) { - url = shortLink; - } - - data.put("clickUrl", url); - data.put("token", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); - data.put("rule", configService.get("share_single_goods_rule")); - data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); - - String shareText = ""; - // 鏃犲埜 - String shopType = taoBaoLink.getGoods().getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO - : TaoBaoConstant.SHARE_PRICE_TM; - - if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { - String text = shareGoodsTextTemplateService.getCommonTemplate(uid); - if (StringUtil.isNullOrEmpty(text)) - text = configService.get("goods_share_text_nocoupon"); - shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()).replace("{鍟嗗搧鍘熶环}", - MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + ""); - } else// 鏈夊埜 - { - String text = shareGoodsTextTemplateService.geteCouponTemplate(uid); - if (StringUtil.isNullOrEmpty(text)) - text = configService.get("goods_share_text_coupon"); - - shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()) - .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "") - .replace("{浼樻儬鍒搁潰棰潁", - MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString()) - .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + ""); - } - - shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) - .replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day())) - .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); - data.put("shareText", shareText); - String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim(); - if (descText.startsWith("\\r\\n")) - descText = descText.substring(0); - data.put("descText", 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")); - - // 娣诲姞鍒嗕韩璁板綍 - BigDecimal rate = hongBaoManageService.getShareRate(); - BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate); - - data.put("shareMoney", "楼" + shareMoney.toString()); - try { - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId, - Constant.SOURCE_TYPE_TAOBAO, false); - data.put("shareId", shareRecord.getRedisKey()); - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - out.print(JsonUtil.loadTrueResult(data)); - - final TaoBaoLink taobaoLink = taoBaoLink; - // 寮傛鎿嶄綔 - 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(TaoBaoUtil.filterTaoToken(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 (ShareGoodsException e) { - LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:" + uid + "auctionId:" + auctionId, ""); - // 鍒嗕韩鍑洪敊鎶ヨ - try { - monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊")); - } catch (Exception e1) { - } - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); - businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + "")); - } - } - - /** - * 娣樼ぜ閲戝垱寤哄垎浜� - * - * @param uid - * @param auctionId - * @param totalNum - * @param relationId - * @param request - * @param out - */ - public void createTaoLijin(Long uid, Long auctionId, int totalNum, String relationId, HttpServletRequest request, - PrintWriter out) { - try { - TaoBaoLink taoBaoLink = shareGoodsService.getTaoLiJinLinkForShare(uid, auctionId, relationId); - - TaoBaoGoodsBrief goods = taoBaoLink.getGoods(); - - // 璁$畻鎺ㄥ箍绾㈠寘 - String warningRate = configTaoLiJinService.getValueByKey("warning_value", null); - BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, goods); - - // 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1 - if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) { - out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐绀奸噾涓嶈冻")); - return; - } - - JSONObject data = new JSONObject(); - data.put("spreadMoney", " 楼" + spreadMoney.toString()); - - String taoLiJinLink = null; - Long tljId = null; - try { - UserTaoLiJinRecord record = userTaoLiJinRecordService.createShareTaoLiJin(uid, totalNum, goods); - tljId = record.getId(); - taoLiJinLink = record.getSendUrl(); - data.put("tljId", tljId); - data.put("surplusMoney", record.getSurplusMoney()); - } catch (UserTaoLiJinRecordException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - return; - } - - String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq&tid=%s", configService.getH5Host(), - Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), - auctionId + "", AESUtil.encrypt(tljId + "", Constant.UIDAESKEY)); - String shortLink = HttpUtil.getShortLink(url); - if (!StringUtil.isNullOrEmpty(shortLink)) { - url = shortLink; - } - data.put("clickUrl", url); - - // 鍒涘缓娣樺彛浠� - if (!StringUtil.isNullOrEmpty(taoLiJinLink)) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔� - String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), taoLiJinLink); - if (!StringUtil.isNullOrEmpty(quanToken)) { - taoBaoLink.setTaoToken(quanToken); - } - } else if (!StringUtil.isNullOrEmpty(taoBaoLink.getClickUrl())) { - String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), - taoBaoLink.getClickUrl()); - if (!StringUtil.isNullOrEmpty(quanToken)) { - taoBaoLink.setTaoToken(quanToken); - } - } - data.put("token", TaoBaoUtil.filterTaoToken(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)); - - // 鏃犲埜 - String shopType = taoBaoLink.getGoods().getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO - : TaoBaoConstant.SHARE_PRICE_TM; - String shareText = ""; - - if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { - String text = shareGoodsTextTemplateService.getCommonTemplate(uid); - if (StringUtil.isNullOrEmpty(text)) - text = configService.get("goods_share_text_nocoupon"); - shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()).replace("{鍟嗗搧鍘熶环}", - MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + ""); - } else// 鏈夊埜 - { - String text = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid); - if (StringUtil.isNullOrEmpty(text)) - text = configTaoLiJinService.getValueByKey("goods_share_text", new Date()); - - shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()) - .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "") - .replace("{浼樻儬鍒搁潰棰潁", - MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString()) - .replace("{娣樼ぜ閲戦潰棰潁", MoneyBigDecimalUtil.getWithNoZera(spreadMoney).toString()) - .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + ""); - } - - shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) - .replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day())) - .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); - data.put("shareText", shareText); - String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim(); - if (descText.startsWith("\\r\\n")) - descText = descText.substring(0); - data.put("descText", 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")); - - // 娣诲姞鍒嗕韩璁板綍 - BigDecimal rate = hongBaoManageService.getShareRate(); - BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate); - - data.put("shareMoney", "楼" + shareMoney.toString()); - try { - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId, - Constant.SOURCE_TYPE_TAOBAO, true); - data.put("shareId", shareRecord.getRedisKey()); - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - out.print(JsonUtil.loadTrueResult(data)); - - final TaoBaoLink taobaoLink = taoBaoLink; - // 寮傛鎿嶄綔 - 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(TaoBaoUtil.filterTaoToken(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 (ShareGoodsException e) { - LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:" + uid + "auctionId:" + auctionId, ""); - // 鍒嗕韩鍑洪敊鎶ヨ - try { - monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊")); - } catch (Exception e1) { - } - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); - businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + "")); - } - } - - /** - * 鍒嗕韩璁板綍缁熻鍒楄〃 - * - * @param acceptData - * @param page - * 鍒濆1 - * @param uid - * @param source - * @param out - */ - @RequestMapping(value = "getlistrecord", method = RequestMethod.POST) - public void getListRecord(AcceptData acceptData, Integer page, Long uid, String source, PrintWriter out) { - - if (page == null || page < 1) { - out.print(JsonUtil.loadFalseResult("椤电爜涓嶆纭�")); - } - - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - } - - if ("all".equals(source)) { - source = null;// 鏌ヨ鍏ㄩ儴 - } - - try { - int pageSize = Constant.PAGE_SIZE; - - JSONObject data = new JSONObject(); - List<UserShareGoodsRecord> list = new ArrayList<UserShareGoodsRecord>(); - - long count = userShareGoodsRecordService.countQueryByUid(uid, source); - if (count > 0) { - list = userShareGoodsRecordService.getMyShareGoodsRecords((page - 1) * pageSize, pageSize, uid, source); - } - - GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); - gsonBuilder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { - @Override - public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(""); - } else { - // 淇濈暀2浣嶅皬鏁� - value = value.setScale(2); - return new JsonPrimitive(value.toString()); - } - } - }); - Gson gson = gsonBuilder.create(); - - data.put("count", count); - data.put("result_list", gson.toJson(list)); - out.print(JsonUtil.loadTrueResult(data)); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鑾峰彇鍒嗕韩鍟嗗搧 - * - * @param acceptData - * @param recordId - * @param out - */ - @RequestMapping(value = "getrecordgoods", method = RequestMethod.POST) - public void getRecordGoods(AcceptData acceptData, Long recordId, PrintWriter out) { - - if (recordId == null) { - out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); - } - - try { - JSONObject data = userShareGoodsRecordService.getGoodsGroup(recordId); - out.print(JsonUtil.loadTrueResult(data)); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鑾峰彇鍒嗕韩鍟嗗搧鍗曚釜缁熻淇℃伅 - * - * @param acceptData - * @param groupId - * @param out - */ - @RequestMapping(value = "getgoodsdata", method = RequestMethod.POST) - public void getGoodsData(AcceptData acceptData, Long groupId, PrintWriter out) { - - if (groupId == null) { - out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); - } - - try { - UserShareGoodsGroup userShareGoodsGroup = userShareGoodsGroupService.selectByPrimaryKey(groupId); - if (userShareGoodsGroup != null) { - userShareGoodsGroup.setBrowseTime(null); - userShareGoodsGroup.setCreateTime(null); - userShareGoodsGroup.setUpdateTime(null); - userShareGoodsGroup.setRecordId(null); - } - - JSONObject data = new JSONObject(); - data.put("goodsData", userShareGoodsGroup); - out.print(JsonUtil.loadTrueResult(data)); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鍟嗗搧璇︽儏鍒嗕韩 - * - * @param acceptData - * @param uid - * 鐢ㄦ埛id - * @param auctionId - * 鍟嗗搧id - * @param type - * 鍥剧墖鍒嗕韩绫诲瀷 鍗曞浘single 澶氬浘many - * @param out - */ - @RequestMapping(value = "sharedetail", method = RequestMethod.POST) - public void shareDetail(AcceptData acceptData, Long uid, Long auctionId, String type, PrintWriter out) { - try { - userShareGoodsRecordService.saveSingleShareRecord(uid, auctionId, Constant.SOURCE_TYPE_TAOBAO); - out.print(JsonUtil.loadTrueResult("鍒嗕韩鎴愬姛")); - } catch (UserShareGoodsRecordException e) { - out.print(JsonUtil.loadFalseResult(e.getMsg())); - e.printStackTrace(); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鏇存柊鍒嗕韩璁板綍 - * - * @param acceptData - * @param shareId - * @param out - */ - @RequestMapping(value = "updaterecord", method = RequestMethod.POST) - public void updateRecord(AcceptData acceptData, String shareId, String type, PrintWriter out) { - if (StringUtil.isNullOrEmpty(shareId)) { - out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); - return; - } - - // 鏇存柊鍒嗕韩鐢熸晥 - executor.execute(new Runnable() { - @Override - public void run() { - try { - userShareGoodsRecordService.takeEffectShareRecord(acceptData, shareId); - } catch (UserShareGoodsRecordException eu) { - - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } - }); - out.print(JsonUtil.loadTrueResult("鍒嗕韩鎴愬姛")); - } - - /** - * 棰勮鍒嗕韩妯℃澘 - * - * @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, 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; - } - - 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, 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 acceptData - * @param uid - * @param hasCoupon - * @param template - * @param out - */ - @RequestMapping(value = "saveShareTextTemplate", method = RequestMethod.POST) - public void saveShareTextTemplate(AcceptData acceptData, Long uid, Long tljId, Boolean hasCoupon, String template, - PrintWriter out) { - if (StringUtil.isNullOrEmpty(template)) { - out.print(JsonUtil.loadFalseResult(1, "鍒嗕韩妯℃澘涓虹┖")); - return; - } - // 鏍¢獙鍒告ā鏉挎槸鍚︽纭� - if (hasCoupon) { - // 鏈夊埜鍟嗗搧 - if (tljId != null) { - try { - shareGoodsTextTemplateService.isTaoLiJinTemplateRight(template); - shareGoodsTextTemplateService.saveTaoLiJinTemplate(uid, template); - out.print(JsonUtil.loadTrueResult("")); - } catch (ShareGoodsTextTemplateException e) { - out.print(JsonUtil.loadFalseResult(5, e.getMsg())); - return; - } - } else { - 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, Long goodsId, Long tljId, Boolean hasCoupon, - PrintWriter out) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (hasCoupon) { - if (tljId != null) { - shareGoodsTextTemplateService.resetTaoLijinTemplate(uid); - } else { - shareGoodsTextTemplateService.resetCouponTemplate(uid); - } - } else { - shareGoodsTextTemplateService.resetCommonTemplate(uid); - } - - if (goodsId != null) { - preViewShareTextTemplate(acceptData, uid, null, goodsId, tljId, hasCoupon, out); - return; - } - - out.print(JsonUtil.loadTrueResult("")); - } - - private String getShareTemplate(Long uid, boolean hasCoupon, Long tljId) { - if (hasCoupon) { - if (tljId != null) { - String template = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid); - if (StringUtil.isNullOrEmpty(template)) - template = configTaoLiJinService.getValueByKey("goods_share_text", new Date()); - return template; - } else { - 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, 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(uid, hasCoupon, tljId)); - out.print(JsonUtil.loadTrueResult(data)); - } - - /** - * 鑾峰彇鍒嗕韩妯℃澘缂栬緫瑙勫垯 - * - * @param acceptData - * @param out - */ - @RequestMapping(value = "getShareTextTemplateRules", method = RequestMethod.POST) - public void getShareTextTemplateRules(AcceptData acceptData, Long tljId, PrintWriter out) { - if (tljId != null) { - out.print(JsonUtil.loadTrueResult(configTaoLiJinService.getValueByKey("share_goods_rules", new Date()))); - } else { - 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 || cid == 2) { // 1 鐑攢鍗曞搧 2 鎺ㄨ崘濂借揣 - if (cid == 1) { - List<GoodsPicture> imgs = dynamicInfo.getImgs(); - if (imgs == null || imgs.size() == 0) { - out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); - return; - } - - GoodsPicture goodsPicture = imgs.get(0); - if (goodsPicture.getGoodState() == 1) { - out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); - return; - } - - TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods(); - if (goods == null) { - out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); - return; - } - - if (goods.getState() != null && goods.getState() == 1) { - out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); - return; - } - - if (!goods.isCoupon()) { - out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); - return; - } - - try { - TaoKeApiUtil.getSimpleGoodsInfo(goods.getAuctionId()); - } catch (TaobaoGoodsDownException e) { - out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); - return; - } - - } else { - List<GoodsPicture> imgs = dynamicInfo.getImgs(); - if (imgs == null || imgs.size() == 0) { - out.print(JsonUtil.loadFalseResult("鎵�鏈夊晢鍝佸凡鎶㈠厜")); - return; - } - - int count = 0; - for (GoodsPicture goodsPicture : imgs) { - if (goodsPicture.getGoodState() == 1) { - count++; - continue; - } - - TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods(); - if (goods == null) { - count++; - continue; - } - - if (goods.getState() != null && goods.getState() == 1) { - count++; - continue; - } - - if (!goods.isCoupon()) { - count++; - continue; - } - } - - if (count >= imgs.size()) { - out.print(JsonUtil.loadFalseResult("鎵�鏈夊晢鍝佸凡鎶㈠厜")); - return; - } - } - - // 鍒嗕韩鏂囧瓧 - String title = null; - List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle(); - if (listTitle != null && listTitle.size() > 0) { - title = ""; - for (ClientTextStyleVO textStyleVO : listTitle) { - title += textStyleVO.getContent(); - } - } - - if (StringUtil.isNullOrEmpty(title)) { - title = "缁欎綘鎺ㄨ崘绮鹃�夊ソ鐗╀紭鎯犲埜锛岃喘鐗╁墠鍏堥鍒革紝鍒敊杩囦紭鎯犲摝~"; - } - data.put("title", title); - data.put("content", String.format("鎴戝湪%s鍙戠幇浜嗕竴涓緢濂界殑鍟嗗搧锛屽揩鏉ョ湅鐪媬", - Constant.getAppName(acceptData.getPlatform(), acceptData.getVersion()))); - - // 鍒嗕韩濂栭噾 - ClientTextStyleVO desc = dynamicInfo.getDesc(); - String content = desc.getContent(); - int index = content.indexOf("楼"); - data.put("shareMoney", new BigDecimal(content.substring(index + 1, content.length())).toString()); - - // 鍒嗕韩鎻愰啋 - data.put("notifyDesc", configService.get("goods_share_notify")); - - // 鍒嗕韩鎻愮ず璇� - 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)); - } - - // 鍒嗕韩鍑哄幓鐨勫浘鐗� - String pictUrl = dynamicInfo.getImgs().get(0).getUrl(); - data.put("pictUrl", TbImgUtil.getTBSizeImg(pictUrl, 500)); - - // 甯姪閾炬帴 - data.put("helpLink", - "http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0"); - - if (cid == 2) { // 2 鎺ㄨ崘濂借揣 - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordDynamic(uid, - dynamicInfo.getListGoodsBrief()); - data.put("shareId", shareRecord.getRedisKey()); - data.put("clickUrl", shareRecord.getShareUrl()); - } else { - // 鍒嗕韩id - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordDynamic(uid, - dynamicInfo.getListGoodsBrief()); - data.put("shareId", shareRecord.getRedisKey()); - - Long auctionId = dynamicInfo.getImgs().get(0).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); - - // 娣樺疂鍙d护 - 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); - TaoBaoGoodsBrief goods = taoBaoLink.getGoods(); - if (!com.yeshi.fanli.util.VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), - acceptData.getVersion())) - data.put("clickUrl", ShareControllerV2.getERCodeContent(goods, taoBaoLink.getTaoToken())); - - data.put("token", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); - - String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); - // 娴嬭瘯 - List<String> commentTexts = new ArrayList<>(); - String commentTextStr = configService.get("share_single_goods_comment_text"); - if (!StringUtil.isNullOrEmpty(commentTextStr)) { - JSONArray arr = JSONArray.fromObject(commentTextStr); - for (int i = 0; i < arr.size(); i++) { - if (StringUtil.isNullOrEmpty(inviteCode)) { - if (arr.optString(i).contains("[閭�璇风爜]")) { - continue; - } - } - if (StringUtil.isNullOrEmpty(inviteCode)) - commentTexts.add(arr.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK) - .replace("[娣樺彛浠", data.optString("token"))); - else - commentTexts.add(arr.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK) - .replace("[閭�璇风爜]", inviteCode).replace("[娣樺彛浠", data.optString("token"))); - } - } - data.put("commentTexts", commentTexts); - data.put("wxErCode", ShareControllerV2.getERCodeContent(goods, taoBaoLink.getTaoToken())); - } - - } else if (cid == 4) { // 閭�璇峰垎浜� - - String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); - if (StringUtil.isNullOrEmpty(inviteCode)) { - out.print(JsonUtil.loadFalseResult(9001, "閭�璇风爜鏈縺娲�")); - return; - } - - Integer showType = dynamicInfo.getShowType(); - if (showType == 0) { // 鏃犲浘鍒嗕韩 - String title = null; - List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle(); - if (listTitle != null && listTitle.size() > 0) { - title = ""; - for (ClientTextStyleVO textStyleVO : listTitle) { - title += textStyleVO.getContent(); - } - } - title = title.replace("銆愰個璇风爜銆�", inviteCode); - title = title.replace("銆愰個璇烽摼鎺ャ��", Constant.YINGYONGBAO_LINK); - data.put("title", title); - - } else { // 鏈夊浘鍒嗕韩 - List<GoodsPicture> imgs = dynamicInfo.getImgs(); - - GoodsPicture goodsPicture = imgs.get(0); - String bgUrl = goodsPicture.getUrlOriginal(); - - if (StringUtil.isNullOrEmpty(bgUrl)) { - out.print(JsonUtil.loadFalseResult("鍥剧墖璺緞涓嶅瓨鍦�")); - return; - } - - // 鐢ㄦ埛淇℃伅 - UserInfo userInfo = userInfoService.selectByPKey(uid); - String portrait = userInfo.getPortrait(); - // 鐢婚個璇峰浘鐗� - - Long activityId = dynamicInfo.getActivityId(); - if (activityId != null) { - Integer pX = goodsPicture.getPx(); - ; - Integer pY = goodsPicture.getPy(); - ; - Integer size = goodsPicture.getSize(); - - String imgLink = spreadUserImgService.drawInviteQrCodeNew(bgUrl, uid, portrait, pX, pY, size, - inviteCode); - - data.put("imgLink", imgLink); - } else { - String title = imgs.get(0).getTitleOriginal(); - String imgLink = spreadUserImgService.getInviteImgToGreet(bgUrl, uid, portrait, inviteCode, - title, new Date()); - 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); - - // 閭�璇烽摼鎺� - String shortLink = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/" - + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid); - data.put("inviteLink", shortLink); - data.put("inviteCode", inviteCode); - data.put("helpLink", configService.get("invite_help_link")); - } - } - 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("鍒嗕韩璁板綍澶辫触")); - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } -} +package com.yeshi.fanli.controller.client.v1; + +import java.io.PrintWriter; +import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.entity.SystemPIDInfo; +import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; +import com.yeshi.fanli.service.manger.PIDManager; +import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; +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.HttpUtil; +import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.taobao.TbImgUtil; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.yeshi.fanli.controller.client.v2.ShareControllerV2; +import com.yeshi.fanli.dto.share.ShareGoodsRecordDTO; +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.tlj.UserTaoLiJinRecord; +import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; +import com.yeshi.fanli.entity.bus.user.UserInfo; +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.ConfigKeyEnum; +import com.yeshi.fanli.entity.system.SystemClientParams; +import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra; +import com.yeshi.fanli.entity.taobao.TaoBaoLink; +import com.yeshi.common.entity.taobao.TaoKeAppInfo; +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.exception.tlj.UserTaoLiJinRecordException; +import com.yeshi.fanli.log.LogHelper; +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.monitor.BusinessEmergent110Service; +import com.yeshi.fanli.service.inter.monitor.MonitorService; +import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService; +import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService; +import com.yeshi.fanli.service.inter.user.SpreadUserImgService; +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; +import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.util.AESUtil; +import com.yeshi.fanli.util.Constant; +import org.yeshi.utils.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.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.util.taobao.TaoLiJinUtil; +import com.yeshi.common.vo.ClientTextStyleVO; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +@Controller(value = "ShareController1") +@RequestMapping("api/v1/share") +public class ShareController { + + @Resource(name = "taskExecutor") + private TaskExecutor executor; + + @Resource + private ShareGoodsService shareGoodsService; + + @Resource + private TaoBaoLinkManager taoBaoLinkManager; + + @Resource + private ConfigService configService; + + @Resource + private HongBaoManageService hongBaoManageService; + + @Resource + private MonitorService monitorService; + + @Resource + private UserShareGoodsRecordService userShareGoodsRecordService; + + @Resource + private UserShareGoodsGroupService userShareGoodsGroupService; + + @Resource + private CommonGoodsService commonGoodsService; + + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + @Resource + private UserInfoService userInfoService; + + @Resource + private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil; + + @Resource + private RedisManager redisManager; + + @Resource + private ShareGoodsTextTemplateService shareGoodsTextTemplateService; + + @Resource + private SystemClientParamsService systemClientParamsService; + + @Resource + private DynamicInfoService dynamicInfoService; + + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private SpreadUserImgService spreadUserImgService; + + @Resource + private BusinessEmergent110Service businessEmergent110Service; + + @Resource + private ConfigTaoLiJinService configTaoLiJinService; + + @Resource + private UserTaoLiJinRecordService userTaoLiJinRecordService; + + @Resource + private PIDManager pidManager; + + // 鑾峰彇鍟嗗搧鍒嗕韩閾炬帴 + @RequestMapping(value = "getGoodsShareUrl") + public void getGoodsShareUrl(AcceptData acceptData, long id, PrintWriter out) { + out.print(JsonUtil + .loadTrueResult(String.format("%s?id=" + id, Constant.systemCommonConfig.getAppShareInfoUrl()))); + } + + /** + * 鑾峰彇娣樺疂鐨勫垎浜摼鎺� + * + * @param acceptData + * @param uid -鐢ㄦ埛ID + * @param auctionId-鍟嗗搧ID + * @param out + */ + @RequestMapping(value = "gettaobaosharelink") + public void getTaobaoShareLink(AcceptData acceptData, Long uid, String auctionId, String source, Integer totalNum, + HttpServletRequest request, PrintWriter out) { + + if (uid == null || uid <= 0) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); + return; + } + + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + if (user != null && user.getState() != UserInfo.STATE_NORMAL) { + out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + return; + } + + if (StringUtil.isNullOrEmpty( auctionId)) { + out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧ID涓嶈兘涓虹┖")); + return; + } + + UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid); + String relationId = null; + if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null + && extraInfo.getRelationValid() == true) + relationId = extraInfo.getRelationId(); + + if (StringUtil.isNullOrEmpty(relationId)) { + out.print(JsonUtil.loadFalseResult(3, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); + return; + } + + if (source != null && "taolijin".equals(source)) { + createTaoLijin(uid, auctionId, totalNum, relationId, acceptData.getSystem(), request, out); + return; + } + + try { + TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(acceptData.getSystem(), uid, auctionId, relationId, null); + + JSONObject data = new JSONObject(); + String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(acceptData.getSystem()), + Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), + auctionId + ""); + + String shortLink = HttpUtil.getShortLink(url); + if (!StringUtil.isNullOrEmpty(shortLink)) { + url = shortLink; + } + + data.put("clickUrl", url); + data.put("token", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); + data.put("rule", configService.getValue(ConfigKeyEnum.shareSingleGoodsRule.getKey(), acceptData.getSystem())); + data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); + + String shareText = ""; + // 鏃犲埜 + String shopType = taoBaoLink.getGoods().getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO + : TaoBaoConstant.SHARE_PRICE_TM; + + if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { + String text = shareGoodsTextTemplateService.getCommonTemplate(uid); + if (StringUtil.isNullOrEmpty(text)) + text = configService.getValue(ConfigKeyEnum.goodsShareTextNoCoupon.getKey(), acceptData.getSystem()); + shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()).replace("{鍟嗗搧鍘熶环}", + MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + ""); + } else// 鏈夊埜 + { + String text = shareGoodsTextTemplateService.geteCouponTemplate(uid); + if (StringUtil.isNullOrEmpty(text)) + text = configService.getValue(ConfigKeyEnum.goodsShareTextCoupon.getKey(), acceptData.getSystem()); + + shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()) + .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "") + .replace("{浼樻儬鍒搁潰棰潁", + MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString()) + .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getCouponPrice(taoBaoLink.getGoods()) + ""); + } + + shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) + .replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day())) + .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); + data.put("shareText", shareText); + String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim(); + if (descText.startsWith("\\r\\n")) + descText = descText.substring(0); + data.put("descText", descText); + // + String imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), acceptData.getSystem()); + 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.getValue(ConfigKeyEnum.goodsShareNotify.getKey(), acceptData.getSystem())); + + // 娣诲姞鍒嗕韩璁板綍 + BigDecimal rate = hongBaoManageService.getShareRate(acceptData.getSystem()); + BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate); + + data.put("shareMoney", "楼" + shareMoney.toString()); + try { + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId, + Constant.SOURCE_TYPE_TAOBAO, false); + data.put("shareId", shareRecord.getRedisKey()); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + out.print(JsonUtil.loadTrueResult(data)); + + final TaoBaoLink taobaoLink = taoBaoLink; + // 寮傛鎿嶄綔 + 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(TaoBaoUtil.filterTaoToken(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 (TaoBaoConvertLinkException e) { + LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:" + uid + "auctionId:" + auctionId, ""); + // 鍒嗕韩鍑洪敊鎶ヨ + try { + monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊")); + } catch (Exception e1) { + } + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); + businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + ""), acceptData.getSystem()); + } + } + + /** + * 娣樼ぜ閲戝垱寤哄垎浜� + * + * @param uid + * @param auctionId + * @param totalNum + * @param relationId + * @param request + * @param out + */ + public void createTaoLijin(Long uid, String auctionId, int totalNum, String relationId, SystemEnum system, HttpServletRequest request, + PrintWriter out) { + try { + TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoLiJinLinkForShare(system, uid, auctionId, relationId, null); + + TaoBaoGoodsBrief goods = taoBaoLink.getGoods(); + + // 璁$畻鎺ㄥ箍绾㈠寘 + String warningRate = configTaoLiJinService.getValueByKey("warning_value", null); + BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, goods); + + // 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1 + if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) { + out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐绀奸噾涓嶈冻")); + return; + } + + JSONObject data = new JSONObject(); + data.put("spreadMoney", " 楼" + spreadMoney.toString()); + + String taoLiJinLink = null; + Long tljId = null; + try { + UserTaoLiJinRecord record = userTaoLiJinRecordService.createShareTaoLiJin(uid, totalNum, goods); + tljId = record.getId(); + taoLiJinLink = record.getSendUrl(); + data.put("tljId", tljId); + data.put("surplusMoney", record.getSurplusMoney()); + } catch (UserTaoLiJinRecordException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + return; + } + + String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq&tid=%s", configService.getH5Host(system), + Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), + auctionId + "", AESUtil.encrypt(tljId + "", Constant.UIDAESKEY)); + String shortLink = HttpUtil.getShortLink(url); + if (!StringUtil.isNullOrEmpty(shortLink)) { + url = shortLink; + } + data.put("clickUrl", url); + + // 鍒涘缓娣樺彛浠� + if (!StringUtil.isNullOrEmpty(taoLiJinLink)) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔� + String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), taoLiJinLink); + if (!StringUtil.isNullOrEmpty(quanToken)) { + taoBaoLink.setTaoToken(quanToken); + } + } else if (!StringUtil.isNullOrEmpty(taoBaoLink.getClickUrl())) { + String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), + taoBaoLink.getClickUrl()); + if (!StringUtil.isNullOrEmpty(quanToken)) { + taoBaoLink.setTaoToken(quanToken); + } + } + data.put("token", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); + + data.put("rule", + "http://apph5.banliapp.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0"); + data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); + + // 鏃犲埜 + String shopType = taoBaoLink.getGoods().getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO + : TaoBaoConstant.SHARE_PRICE_TM; + String shareText = ""; + + if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { + String text = shareGoodsTextTemplateService.getCommonTemplate(uid); + if (StringUtil.isNullOrEmpty(text)) + text = configService.getValue(ConfigKeyEnum.goodsShareTextNoCoupon.getKey(), system); + shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()).replace("{鍟嗗搧鍘熶环}", + MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + ""); + } else// 鏈夊埜 + { + String text = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid); + if (StringUtil.isNullOrEmpty(text)) + text = configTaoLiJinService.getValueByKey("goods_share_text", new Date()); + + shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()) + .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "") + .replace("{浼樻儬鍒搁潰棰潁", + MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString()) + .replace("{娣樼ぜ閲戦潰棰潁", MoneyBigDecimalUtil.getWithNoZera(spreadMoney).toString()) + .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getCouponPrice(taoBaoLink.getGoods()) + ""); + } + + shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) + .replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day())) + .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); + data.put("shareText", shareText); + String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim(); + if (descText.startsWith("\\r\\n")) + descText = descText.substring(0); + data.put("descText", descText); + + String imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), system); + 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.getValue(ConfigKeyEnum.goodsShareNotify.getKey(), system)); + + // 娣诲姞鍒嗕韩璁板綍 + BigDecimal rate = hongBaoManageService.getShareRate(system); + BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate); + + data.put("shareMoney", "楼" + shareMoney.toString()); + try { + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId, + Constant.SOURCE_TYPE_TAOBAO, true); + data.put("shareId", shareRecord.getRedisKey()); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + out.print(JsonUtil.loadTrueResult(data)); + + final TaoBaoLink taobaoLink = taoBaoLink; + // 寮傛鎿嶄綔 + 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(TaoBaoUtil.filterTaoToken(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 (TaoBaoConvertLinkException e) { + LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:" + uid + "auctionId:" + auctionId, ""); + // 鍒嗕韩鍑洪敊鎶ヨ + try { + monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊")); + } catch (Exception e1) { + } + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); + businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + ""), system); + } + } + + /** + * 鍒嗕韩璁板綍缁熻鍒楄〃 + * + * @param acceptData + * @param page 鍒濆1 + * @param uid + * @param source + * @param out + */ + @RequestMapping(value = "getlistrecord", method = RequestMethod.POST) + public void getListRecord(AcceptData acceptData, Integer page, Long uid, String source, PrintWriter out) { + + if (page == null || page < 1) { + out.print(JsonUtil.loadFalseResult("椤电爜涓嶆纭�")); + } + + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + } + + if ("all".equals(source)) { + source = null;// 鏌ヨ鍏ㄩ儴 + } + + try { + int pageSize = Constant.PAGE_SIZE; + + JSONObject data = new JSONObject(); + List<UserShareGoodsRecord> list = new ArrayList<UserShareGoodsRecord>(); + + long count = userShareGoodsRecordService.countQueryByUid(uid, source); + if (count > 0) { + list = userShareGoodsRecordService.getMyShareGoodsRecords((page - 1) * pageSize, pageSize, uid, source); + } + + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + gsonBuilder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { + @Override + public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + // 淇濈暀2浣嶅皬鏁� + value = value.setScale(2); + return new JsonPrimitive(value.toString()); + } + } + }); + Gson gson = gsonBuilder.create(); + + data.put("count", count); + data.put("result_list", gson.toJson(list)); + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); + e.printStackTrace(); + } + } + + /** + * 鑾峰彇鍒嗕韩鍟嗗搧 + * + * @param acceptData + * @param recordId + * @param out + */ + @RequestMapping(value = "getrecordgoods", method = RequestMethod.POST) + public void getRecordGoods(AcceptData acceptData, Long recordId, PrintWriter out) { + + if (recordId == null) { + out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); + } + + try { + JSONObject data = userShareGoodsRecordService.getGoodsGroup(recordId, acceptData.getSystem()); + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); + e.printStackTrace(); + } + } + + /** + * 鑾峰彇鍒嗕韩鍟嗗搧鍗曚釜缁熻淇℃伅 + * + * @param acceptData + * @param groupId + * @param out + */ + @RequestMapping(value = "getgoodsdata", method = RequestMethod.POST) + public void getGoodsData(AcceptData acceptData, Long groupId, PrintWriter out) { + + if (groupId == null) { + out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); + } + + try { + UserShareGoodsGroup userShareGoodsGroup = userShareGoodsGroupService.selectByPrimaryKey(groupId); + if (userShareGoodsGroup != null) { + userShareGoodsGroup.setBrowseTime(null); + userShareGoodsGroup.setCreateTime(null); + userShareGoodsGroup.setUpdateTime(null); + userShareGoodsGroup.setRecordId(null); + } + + JSONObject data = new JSONObject(); + data.put("goodsData", userShareGoodsGroup); + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); + e.printStackTrace(); + } + } + + /** + * 鍟嗗搧璇︽儏鍒嗕韩 + * + * @param acceptData + * @param uid 鐢ㄦ埛id + * @param auctionId 鍟嗗搧id + * @param type 鍥剧墖鍒嗕韩绫诲瀷 鍗曞浘single 澶氬浘many + * @param out + */ + @RequestMapping(value = "sharedetail", method = RequestMethod.POST) + public void shareDetail(AcceptData acceptData, Long uid, String auctionId, String type, PrintWriter out) { + try { + userShareGoodsRecordService.saveSingleShareRecord(uid, auctionId, Constant.SOURCE_TYPE_TAOBAO); + out.print(JsonUtil.loadTrueResult("鍒嗕韩鎴愬姛")); + } catch (UserShareGoodsRecordException e) { + out.print(JsonUtil.loadFalseResult(e.getMsg())); + e.printStackTrace(); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); + e.printStackTrace(); + } + } + + /** + * 鏇存柊鍒嗕韩璁板綍 + * + * @param acceptData + * @param shareId + * @param out + */ + @RequestMapping(value = "updaterecord", method = RequestMethod.POST) + public void updateRecord(AcceptData acceptData, String shareId, String type, PrintWriter out) { + if (StringUtil.isNullOrEmpty(shareId)) { + out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); + return; + } + + // 鏇存柊鍒嗕韩鐢熸晥 + executor.execute(new Runnable() { + @Override + public void run() { + try { + userShareGoodsRecordService.takeEffectShareRecord(acceptData, shareId); + } catch (UserShareGoodsRecordException eu) { + + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + }); + out.print(JsonUtil.loadTrueResult("鍒嗕韩鎴愬姛")); + } + + /** + * 棰勮鍒嗕韩妯℃澘 + * + * @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, String 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; + } + + 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, tljId, acceptData.getSystem()); + + // 鏍¢獙鍒告ā鏉挎槸鍚︽纭� + 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(acceptData.getSystem()), + 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.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + app.setPid(pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.share)); + app.setAdzoneId(app.getPid().split("_")[3]); + TaoBaoGoodsBrief goodsLink = TaoKeApiUtil.specialConvertCouponV2(goods.getAuctionId(), app, null, null); + 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 acceptData + * @param uid + * @param hasCoupon + * @param template + * @param out + */ + @RequestMapping(value = "saveShareTextTemplate", method = RequestMethod.POST) + public void saveShareTextTemplate(AcceptData acceptData, Long uid, Long tljId, Boolean hasCoupon, String template, + PrintWriter out) { + if (StringUtil.isNullOrEmpty(template)) { + out.print(JsonUtil.loadFalseResult(1, "鍒嗕韩妯℃澘涓虹┖")); + return; + } + // 鏍¢獙鍒告ā鏉挎槸鍚︽纭� + if (hasCoupon) { + // 鏈夊埜鍟嗗搧 + if (tljId != null) { + try { + shareGoodsTextTemplateService.isTaoLiJinTemplateRight(template); + shareGoodsTextTemplateService.saveTaoLiJinTemplate(uid, template); + out.print(JsonUtil.loadTrueResult("")); + } catch (ShareGoodsTextTemplateException e) { + out.print(JsonUtil.loadFalseResult(5, e.getMsg())); + return; + } + } else { + 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, String goodsId, Long tljId, Boolean hasCoupon, + PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (hasCoupon) { + if (tljId != null) { + shareGoodsTextTemplateService.resetTaoLijinTemplate(uid); + } else { + shareGoodsTextTemplateService.resetCouponTemplate(uid); + } + } else { + shareGoodsTextTemplateService.resetCommonTemplate(uid); + } + + if (goodsId != null) { + preViewShareTextTemplate(acceptData, uid, null, goodsId, tljId, hasCoupon, out); + return; + } + + out.print(JsonUtil.loadTrueResult("")); + } + + private String getShareTemplate(Long uid, boolean hasCoupon, Long tljId, SystemEnum system) { + if (hasCoupon) { + if (tljId != null) { + String template = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid); + if (StringUtil.isNullOrEmpty(template)) + template = configTaoLiJinService.getValueByKey("goods_share_text", new Date()); + return template; + } else { + String template = shareGoodsTextTemplateService.geteCouponTemplate(uid); + if (StringUtil.isNullOrEmpty(template)) + template = configService.getValue(ConfigKeyEnum.goodsShareTextCoupon.getKey(), system); + return template; + } + + } else { + String template = shareGoodsTextTemplateService.getCommonTemplate(uid); + if (StringUtil.isNullOrEmpty(template)) + template = configService.getValue(ConfigKeyEnum.goodsShareTextNoCoupon.getKey(), system); + return template; + } + } + + /** + * 鑾峰彇鍒嗕韩妯℃澘 + * + * @param acceptData + * @param uid + * @param hasCoupon + * @param out + */ + @RequestMapping(value = "getShareTextTemplate", method = RequestMethod.POST) + public void getShareTextTemplate(AcceptData acceptData, 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(uid, hasCoupon, tljId, acceptData.getSystem())); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鑾峰彇鍒嗕韩妯℃澘缂栬緫瑙勫垯 + * + * @param acceptData + * @param out + */ + @RequestMapping(value = "getShareTextTemplateRules", method = RequestMethod.POST) + public void getShareTextTemplateRules(AcceptData acceptData, Long tljId, PrintWriter out) { + if (tljId != null) { + out.print(JsonUtil.loadTrueResult(configTaoLiJinService.getValueByKey("share_goods_rules", new Date()))); + } else { + out.print(JsonUtil.loadTrueResult(configService.getValue(ConfigKeyEnum.shareGoodsTemplateRules.getKey(), acceptData.getSystem()))); + } + } + + /** + * 鏌ヨ椤堕儴鍒嗙被 + * + * @param acceptData + * @param id + * @param uid + * @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 || cid == 2) { // 1 鐑攢鍗曞搧 2 鎺ㄨ崘濂借揣 + if (cid == 1) { + List<GoodsPicture> imgs = dynamicInfo.getImgs(); + if (imgs == null || imgs.size() == 0) { + out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); + return; + } + + GoodsPicture goodsPicture = imgs.get(0); + if (goodsPicture.getGoodState() == 1) { + out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); + return; + } + + TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods(); + if (goods == null) { + out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); + return; + } + + if (goods.getState() != null && goods.getState() == 1) { + out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); + return; + } + + if (!goods.isCoupon()) { + out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); + return; + } + + try { + TaoKeApiUtil.getSimpleGoodsInfo(goods.getAuctionId()); + } catch (TaobaoGoodsDownException e) { + out.print(JsonUtil.loadFalseResult("璇ュ晢鍝佸凡涓嬫灦")); + return; + } + + } else { + List<GoodsPicture> imgs = dynamicInfo.getImgs(); + if (imgs == null || imgs.size() == 0) { + out.print(JsonUtil.loadFalseResult("鎵�鏈夊晢鍝佸凡鎶㈠厜")); + return; + } + + int count = 0; + for (GoodsPicture goodsPicture : imgs) { + if (goodsPicture.getGoodState() == 1) { + count++; + continue; + } + + TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods(); + if (goods == null) { + count++; + continue; + } + + if (goods.getState() != null && goods.getState() == 1) { + count++; + continue; + } + + if (!goods.isCoupon()) { + count++; + continue; + } + } + + if (count >= imgs.size()) { + out.print(JsonUtil.loadFalseResult("鎵�鏈夊晢鍝佸凡鎶㈠厜")); + return; + } + } + + // 鍒嗕韩鏂囧瓧 + String title = null; + List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle(); + if (listTitle != null && listTitle.size() > 0) { + title = ""; + for (ClientTextStyleVO textStyleVO : listTitle) { + title += textStyleVO.getContent(); + } + } + + if (StringUtil.isNullOrEmpty(title)) { + title = "缁欎綘鎺ㄨ崘绮鹃�夊ソ鐗╀紭鎯犲埜锛岃喘鐗╁墠鍏堥鍒革紝鍒敊杩囦紭鎯犲摝~"; + } + data.put("title", title); + data.put("content", String.format("鎴戝湪%s鍙戠幇浜嗕竴涓緢濂界殑鍟嗗搧锛屽揩鏉ョ湅鐪媬", + Constant.getAppName(acceptData.getPlatform(), acceptData.getVersion()))); + + // 鍒嗕韩濂栭噾 + ClientTextStyleVO desc = dynamicInfo.getDesc(); + String content = desc.getContent(); + int index = content.indexOf("楼"); + data.put("shareMoney", new BigDecimal(content.substring(index + 1, content.length())).toString()); + + // 鍒嗕韩鎻愰啋 + data.put("notifyDesc", configService.getValue(ConfigKeyEnum.goodsShareNotify.getKey(), acceptData.getSystem())); + + // 鍒嗕韩鎻愮ず璇� + String imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), acceptData.getSystem()); + JSONArray array = JSONArray.fromObject(imgs); + int p = (int) (array.size() * Math.random()); + if (p < array.size()) { + data.put("notifyPicture", array.optString(p)); + } + + // 鍒嗕韩鍑哄幓鐨勫浘鐗� + String pictUrl = dynamicInfo.getImgs().get(0).getUrl(); + data.put("pictUrl", TbImgUtil.getTBSizeImg(pictUrl, 500)); + + // 甯姪閾炬帴 + data.put("helpLink", + "http://apph5.banliapp.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0"); + + if (cid == 2) { // 2 鎺ㄨ崘濂借揣 + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordDynamic(uid, + dynamicInfo.getListGoodsBrief()); + data.put("shareId", shareRecord.getRedisKey()); + data.put("clickUrl", shareRecord.getShareUrl()); + } else { + // 鍒嗕韩id + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordDynamic(uid, + dynamicInfo.getListGoodsBrief()); + data.put("shareId", shareRecord.getRedisKey()); + + String auctionId = dynamicInfo.getImgs().get(0).getGoods().getAuctionId(); + // 鍟嗗搧鍒嗕韩閾炬帴 + String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(acceptData.getSystem()), + Constant.systemCommonConfig.getShareGoodsPagePath(), + AESUtil.encrypt(uid + "", Constant.UIDAESKEY), auctionId + ""); + String shortLink = HttpUtil.getShortLink(url); + if (!StringUtil.isNullOrEmpty(shortLink)) { + url = shortLink; + } + + data.put("clickUrl", url); + + // 娣樺疂鍙d护 + 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 = taoBaoLinkManager.getTaoBaoLinkForShare(acceptData.getSystem(), uid, auctionId, relationId, null); + TaoBaoGoodsBrief goods = taoBaoLink.getGoods(); + if (!com.yeshi.fanli.util.VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), + acceptData.getVersion())) + data.put("clickUrl", + ShareControllerV2.getERCodeContentNew( + configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), acceptData.getSystem()), goods, + taoBaoLink.getTaoToken())); + + data.put("token", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); + + String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); + // 娴嬭瘯 + List<String> commentTexts = new ArrayList<>(); + String commentTextStr = configService.getValue(ConfigKeyEnum.shareSingleGoodsCommentText.getKey(), acceptData.getSystem()); + if (!StringUtil.isNullOrEmpty(commentTextStr)) { + JSONArray arr = JSONArray.fromObject(commentTextStr); + for (int i = 0; i < arr.size(); i++) { + if (StringUtil.isNullOrEmpty(inviteCode)) { + if (arr.optString(i).contains("[閭�璇风爜]")) { + continue; + } + } + if (StringUtil.isNullOrEmpty(inviteCode)) + commentTexts.add(arr.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK) + .replace("[娣樺彛浠", data.optString("token"))); + else + commentTexts.add(arr.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK) + .replace("[閭�璇风爜]", inviteCode).replace("[娣樺彛浠", data.optString("token"))); + } + } + data.put("commentTexts", commentTexts); + data.put("wxErCode", + ShareControllerV2.getERCodeContentNew( + configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), acceptData.getSystem()), goods, + taoBaoLink.getTaoToken())); + } + + } else if (cid == 4) { // 閭�璇峰垎浜� + + String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); + if (StringUtil.isNullOrEmpty(inviteCode)) { + out.print(JsonUtil.loadFalseResult(9001, "閭�璇风爜鏈縺娲�")); + return; + } + + Integer showType = dynamicInfo.getShowType(); + if (showType == 0) { // 鏃犲浘鍒嗕韩 + String title = null; + List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle(); + if (listTitle != null && listTitle.size() > 0) { + title = ""; + for (ClientTextStyleVO textStyleVO : listTitle) { + title += textStyleVO.getContent(); + } + } + title = title.replace("銆愰個璇风爜銆�", inviteCode); + title = title.replace("銆愰個璇烽摼鎺ャ��", Constant.YINGYONGBAO_LINK); + data.put("title", title); + + } else { // 鏈夊浘鍒嗕韩 + List<GoodsPicture> imgs = dynamicInfo.getImgs(); + + GoodsPicture goodsPicture = imgs.get(0); + String bgUrl = goodsPicture.getUrlOriginal(); + + if (StringUtil.isNullOrEmpty(bgUrl)) { + out.print(JsonUtil.loadFalseResult("鍥剧墖璺緞涓嶅瓨鍦�")); + return; + } + + // 鐢ㄦ埛淇℃伅 + UserInfo userInfo = userInfoService.selectByPKey(uid); + String portrait = userInfo.getPortrait(); + // 鐢婚個璇峰浘鐗� + + Long activityId = dynamicInfo.getActivityId(); + if (activityId != null) { + Integer pX = goodsPicture.getPx(); + ; + Integer pY = goodsPicture.getPy(); + ; + Integer size = goodsPicture.getSize(); + + String imgLink = spreadUserImgService.drawInviteQrCodeNew(bgUrl, uid, portrait, pX, pY, size, + inviteCode); + + data.put("imgLink", imgLink); + } else { + String title = imgs.get(0).getTitleOriginal(); + String imgLink = spreadUserImgService.getInviteImgToGreet(bgUrl, uid, portrait, inviteCode, + title, new Date()); + 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); + + data.put("inviteLink", Constant.YINGYONGBAO_LINK); + data.put("inviteCode", inviteCode); + data.put("helpLink", configService.getValue(ConfigKeyEnum.inviteHelpLink.getKey(), acceptData.getSystem())); + } + } + 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("鍒嗕韩璁板綍澶辫触")); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } +} -- Gitblit v1.8.0