From fe16122ad77ccd69c7f3c6dfff123c0c3aa3d35f Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期三, 17 七月 2019 10:05:12 +0800 Subject: [PATCH] 商品详情 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java | 596 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 306 insertions(+), 290 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 57321ec..7266793 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 @@ -76,7 +76,6 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; - @Controller @RequestMapping("api/v2/share") public class ShareControllerV2 { @@ -141,144 +140,20 @@ @Resource private UserTaoLiJinRecordService userTaoLiJinRecordService; - /** - * 鑾峰彇鍒嗕韩璁板綍涓殑鍟嗗搧 鍒嗕韩淇℃伅 + * 鑾峰彇娣樺疂鐨勫垎浜摼鎺� * * @param acceptData - * @param recordId - * @param out - */ - @RequestMapping(value = "getShareGoods") - public void getShareGoods(AcceptData acceptData, Long recordId, PrintWriter out) { - - if (recordId == null) { - out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); - return; - } - - try { - JSONArray array = new JSONArray(); - JSONObject data = new JSONObject(); - - List<UserShareGoodsGroup> list = userShareGoodsGroupService.listByRecordId(recordId); - if (list == null || list.size() == 0) { - data.put("title", "鍒嗕韩鍟嗗搧"); - data.put("count", 0); - data.put("result_list", array); - out.print(JsonUtil.loadTrueResult(data)); - return; - } - - // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭 - List<TaoBaoGoodsBrief> listTaoKeGoods = null; - List<Long> listGid = new ArrayList<Long>(); - for (UserShareGoodsGroup goodsGroup : list) { - CommonGoods commonGoods = goodsGroup.getCommonGoods(); - if (commonGoods == null || commonGoods.getGoodsType() != Constant.SOURCE_TYPE_TAOBAO) { - continue; - } - listGid.add(commonGoods.getGoodsId()); - } - - if (listGid.size() > 0) { - try { - listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid); - } catch (TaoKeApiException e) { - e.printStackTrace(); - } catch (TaobaoGoodsDownException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - - for (UserShareGoodsGroup goodsGroup : list) { - CommonGoods commonGoods = goodsGroup.getCommonGoods(); - if (commonGoods == null) { - continue; - } - - if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 - && commonGoods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { - - int state = 1; // 榛樿鍋滃敭 - Long goodsId = commonGoods.getGoodsId(); - for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) { - Long auctionId = taoKeGoods.getAuctionId(); - if (goodsId == auctionId || goodsId.equals(auctionId)) { - state = 0; // 鍦ㄥ敭 - break; - } - } - commonGoods.setState(state); - } - - // 浠婃棩娴忚璁板綍澶勭悊 - Date date = new Date(); - Date browseTime = goodsGroup.getBrowseTime(); - if (!DateUtil.isSameDay(browseTime, date)) { - goodsGroup.setTodayBrowse(0); // 涓嶆槸鍚屼竴澶╂祻瑙堣褰曡缃�0 - } - - JSONObject dataObject = new JSONObject(); - dataObject.put("todayBrowse", goodsGroup.getTodayBrowse()); - dataObject.put("totalBrowse", goodsGroup.getTotalBrowse()); - dataObject.put("totalOrder", goodsGroup.getTotalOrder()); - dataObject.put("totalMoney", "楼" + goodsGroup.getTotalMoney()); - - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, - shareRate); - detailVO.setId(commonGoods.getId()); - dataObject.put("goods", gson.toJson(detailVO)); - array.add(dataObject); - } - - String title = ""; - UserShareGoodsRecord userShareGoodsRecord = userShareGoodsRecordService.selectByPrimaryKey(recordId); - if (userShareGoodsRecord != null) { - title = userShareGoodsRecord.getTitle(); - } - - data.put("title", title); - data.put("count", list.size()); - data.put("result_list", array); - out.print(JsonUtil.loadTrueResult(data)); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult("鍔犺浇澶辫触")); - e.printStackTrace(); - } - } - - - - /** - * 鍒涘缓鍒嗕韩 - * @param acceptData - * @param uid - * @param auctionId - * @param source - * @param totalNum - * @param goodsType - * @param request + * @param uid -鐢ㄦ埛ID + * @param auctionId-鍟嗗搧ID * @param out */ @RequestMapping(value = "createShareInfo") public void createShareInfo(AcceptData acceptData, Long uid, Long goodsId, String source, Integer totalNum, Integer goodsType, HttpServletRequest request, PrintWriter out) { + if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); - return; - } - - if (goodsId == null || goodsId <= 0) { - out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧ID涓嶈兘涓虹┖")); return; } @@ -288,40 +163,68 @@ return; } - if (goodsType == null) { - goodsType = Constant.SOURCE_TYPE_TAOBAO; + if (goodsId == null || goodsId <= 0) { + out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧ID涓嶈兘涓虹┖")); + return; } - + + // 娣樺疂 + if (goodsType == null || goodsType == Constant.SOURCE_TYPE_TAOBAO) { + createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, request, out); + return; + } + + // 浜笢 if (goodsType == Constant.SOURCE_TYPE_JD) { - // 浜笢 createJDShare(acceptData, uid, goodsId, source, out); return; - } else if (goodsType == Constant.SOURCE_TYPE_PDD) { - // 鎷煎澶� + } + + // 鎷煎澶� + if (goodsType == Constant.SOURCE_TYPE_PDD) { createPDDShare(acceptData, uid, goodsId, source, out); return; } - + } + + + /** + * 鍒涘缓娣樺疂鍒嗕韩淇℃伅 + * @param acceptData + * @param uid + * @param goodsId + * @param totalNum + * @param source + * @param request + * @param out + */ + public void createTaoBaoShare(AcceptData acceptData, Long uid, Long goodsId, Integer totalNum, String source, + HttpServletRequest request, PrintWriter out) { 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, goodsId, totalNum, relationId, request, out); return; } - + try { 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 + ""); - + String shortLink = HttpUtil.getShortLink(url); if (!StringUtil.isNullOrEmpty(shortLink)) { url = shortLink; @@ -329,14 +232,13 @@ data.put("clickUrl", url); data.put("token", taoBaoLink.getTaoToken()); - data.put("rule", configService.get("share_rule_link_tb")); + 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 ? "娣樺疂浠�" : "澶╃尗浠�"; - if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { String text = shareGoodsTextTemplateService.getCommonTemplate(uid); if (StringUtil.isNullOrEmpty(text)) @@ -348,14 +250,14 @@ 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("{娣樺彛浠", taoBaoLink.getTaoToken()); @@ -378,7 +280,8 @@ data.put("shareMoney", "楼" + shareMoney.toString()); try { - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, Constant.SOURCE_TYPE_TAOBAO); + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, + Constant.SOURCE_TYPE_TAOBAO); data.put("shareId", shareRecord.getRedisKey()); } catch (Exception e) { try { @@ -416,7 +319,7 @@ }); return; } catch (ShareGoodsException e) { - LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:"+uid+"auctionId:"+goodsId, ""); + LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:" + uid + " goodsId:" + goodsId, ""); // 鍒嗕韩鍑洪敊鎶ヨ try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊")); @@ -425,11 +328,12 @@ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(goodsId + "")); } + } - - + /** * 娣樼ぜ閲戝垱寤哄垎浜� + * * @param uid * @param auctionId * @param totalNum @@ -437,25 +341,26 @@ * @param request * @param out */ - public void createTaoLijin(Long uid, Long auctionId, int totalNum, String relationId, HttpServletRequest request, PrintWriter 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"); 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 { @@ -468,17 +373,16 @@ 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)); + 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); @@ -486,19 +390,22 @@ taoBaoLink.setTaoToken(quanToken); } } else if (!StringUtil.isNullOrEmpty(taoBaoLink.getClickUrl())) { - String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), taoBaoLink.getClickUrl()); + String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), + taoBaoLink.getClickUrl()); if (!StringUtil.isNullOrEmpty(quanToken)) { taoBaoLink.setTaoToken(quanToken); } } data.put("token", taoBaoLink.getTaoToken()); - data.put("rule", configService.get("share_rule_link_tb")); + + 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 ? "娣樺疂浠�" : "澶╃尗浠�"; String shareText = ""; - + if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { String text = shareGoodsTextTemplateService.getCommonTemplate(uid); if (StringUtil.isNullOrEmpty(text)) @@ -510,7 +417,7 @@ String text = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid); if (StringUtil.isNullOrEmpty(text)) text = configTaoLiJinService.getValueByKey("goods_share_text"); - + shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()) .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "") .replace("{浼樻儬鍒搁潰棰潁", @@ -518,7 +425,7 @@ .replace("{娣樼ぜ閲戦潰棰潁", MoneyBigDecimalUtil.getWithNoZera(spreadMoney).toString()) .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + ""); } - + shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) .replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day())) .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", taoBaoLink.getTaoToken()); @@ -527,7 +434,7 @@ 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()); @@ -541,7 +448,8 @@ data.put("shareMoney", "楼" + shareMoney.toString()); try { - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId, Constant.SOURCE_TYPE_TAOBAO); + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId, + Constant.SOURCE_TYPE_TAOBAO); data.put("shareId", shareRecord.getRedisKey()); } catch (Exception e) { try { @@ -579,7 +487,7 @@ }); return; } catch (ShareGoodsException e) { - LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:"+uid+"auctionId:"+auctionId, ""); + LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:" + uid + "auctionId:" + auctionId, ""); // 鍒嗕韩鍑洪敊鎶ヨ try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊")); @@ -589,11 +497,10 @@ businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + "")); } } - - - + /** * 浜笢鍒涘缓鍒嗕韩 + * * @param acceptData * @param uid * @param goodsId @@ -603,123 +510,122 @@ * @param out */ public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) { - - JDGoods jdGoods = JDApiUtil.queryGoodsDetail(goodsId); - if (jdGoods == null) { - jdGoods = JDApiUtil.getGoodsDetail(goodsId); + + JDGoods jdGoods = JDApiUtil.queryGoodsDetail(goodsId); + if (jdGoods == null) { + jdGoods = JDApiUtil.getGoodsDetail(goodsId); + } + + if (jdGoods == null) { + out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐宸蹭笅鏋�")); + return; + } + + JSONObject data = new JSONObject(); + 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); + + // 鍒哥煭杩炴帴 + String shortLink = HttpUtil.getShortLink(url); + if (!StringUtil.isNullOrEmpty(shortLink)) { + url = shortLink; + } + + data.put("clickUrl", url); + data.put("rule", configService.get("share_rule_link_jd")); + data.put("pictUrl", jdGoods.getPicUrl()); + + String shareText = ""; + + String shopType = "浜笢浠�"; + + // 鍒嗕韩妯℃澘 + JDCouponInfo couponInfo = jdGoods.getCouponInfo(); + if (couponInfo == null) { + String text = shareGoodsTextTemplateService.getCommonTemplate(uid); + if (StringUtil.isNullOrEmpty(text)) { + text = configService.get("goods_share_text_nocoupon"); } - - if (jdGoods == null) { - out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐宸蹭笅鏋�")); - return; - } - + shareText = text.replace("{鏍囬}", jdGoods.getSkuName()).replace("{鍟嗗搧鍘熶环}", + MoneyBigDecimalUtil.getWithNoZera(jdGoods.getPrice()) + ""); + } else// 鏈夊埜 + { + String text = shareGoodsTextTemplateService.geteCouponTemplate(uid); + if (StringUtil.isNullOrEmpty(text)) + text = configService.get("goods_share_text_coupon"); - JSONObject data = new JSONObject(); - 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); - - // 鍒哥煭杩炴帴 - String shortLink = HttpUtil.getShortLink(url); - if (!StringUtil.isNullOrEmpty(shortLink)) { - url = shortLink; - } + shareText = text.replace("{鏍囬}", jdGoods.getSkuName()) + .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(jdGoods.getPrice()) + "") + .replace("{浼樻儬鍒搁潰棰潁", MoneyBigDecimalUtil.getWithNoZera(couponInfo.getDiscount()) + "") + .replace("{浼樻儬鍒镐环}", JDUtil.getQuanPrice(jdGoods) + ""); + } - data.put("clickUrl", url); - data.put("rule", configService.get("share_rule_link_jd")); - data.put("pictUrl", jdGoods.getPicUrl()); + shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) + .replace("{鏈堥攢閲弣", JDUtil.getSaleCount(jdGoods.getInOrderCount30Days())).replace("{棰嗗埜鐭摼}", shortLink) + .replace("{娣樺彛浠", null); + data.put("shareText", shareText); - String shareText = ""; - - String shopType = "浜笢浠�"; + String descText = shareText.replace(jdGoods.getSkuName(), "").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_jd")); - // 鍒嗕韩妯℃澘 - JDCouponInfo couponInfo = jdGoods.getCouponInfo(); - if (couponInfo == null) { - String text = shareGoodsTextTemplateService.getCommonTemplate(uid); - if (StringUtil.isNullOrEmpty(text)) { - text = configService.get("goods_share_text_nocoupon"); - } - shareText = text.replace("{鏍囬}", jdGoods.getSkuName()).replace("{鍟嗗搧鍘熶环}", - MoneyBigDecimalUtil.getWithNoZera(jdGoods.getPrice()) + ""); - } else// 鏈夊埜 - { - String text = shareGoodsTextTemplateService.geteCouponTemplate(uid); - if (StringUtil.isNullOrEmpty(text)) - text = configService.get("goods_share_text_coupon"); - - shareText = text.replace("{鏍囬}", jdGoods.getSkuName()) - .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(jdGoods.getPrice()) + "") - .replace("{浼樻儬鍒搁潰棰潁", MoneyBigDecimalUtil.getWithNoZera(couponInfo.getDiscount()) + "") - .replace("{浼樻儬鍒镐环}", JDUtil.getQuanPrice(jdGoods) + "" ); - } - - shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) - .replace("{鏈堥攢閲弣", JDUtil.getSaleCount(jdGoods.getInOrderCount30Days())) - .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", null); - data.put("shareText", shareText); - - - String descText = shareText.replace(jdGoods.getSkuName(), "").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_jd")); + // 娣诲姞鍒嗕韩璁板綍 + BigDecimal shareRate = hongBaoManageService.getShareRate(); + BigDecimal shareMoney = JDUtil.getGoodsFanLiMoney(jdGoods, shareRate); - // 娣诲姞鍒嗕韩璁板綍 - BigDecimal shareRate = hongBaoManageService.getShareRate(); - BigDecimal shareMoney =JDUtil.getGoodsFanLiMoney(jdGoods, shareRate); - - data.put("shareMoney", "楼" + shareMoney.toString()); + data.put("shareMoney", "楼" + shareMoney.toString()); + try { + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, + Constant.SOURCE_TYPE_JD); + data.put("shareId", shareRecord.getRedisKey()); + } catch (Exception e) { try { - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, Constant.SOURCE_TYPE_JD); - data.put("shareId", shareRecord.getRedisKey()); - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); } - out.print(JsonUtil.loadTrueResult(data)); + } + out.print(JsonUtil.loadTrueResult(data)); - // 寮傛鎿嶄綔 - final JDGoods goods = jdGoods; - 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(Constant.SOURCE_TYPE_JD); - history.setTkCode(null); - history.setLink(null); - history.setQuanLink(null); - history.setGoodsId(goodsId); - history.setPostPicture(goods.getPicUrl()); + // 寮傛鎿嶄綔 + final JDGoods goods = jdGoods; + 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(Constant.SOURCE_TYPE_JD); + history.setTkCode(null); + history.setLink(null); + history.setQuanLink(null); + history.setGoodsId(goodsId); + history.setPostPicture(goods.getPicUrl()); - List<String> imgList = goods.getImageList(); - if (imgList == null) { - imgList = new ArrayList<>(); - } - history.setPictures(JsonUtil.getGson().toJson(imgList)); - shareGoodsService.addShareGoodsHistory(history); + List<String> imgList = goods.getImageList(); + if (imgList == null) { + imgList = new ArrayList<>(); } - }); + history.setPictures(JsonUtil.getGson().toJson(imgList)); + shareGoodsService.addShareGoodsHistory(history); + } + }); } - - + /** * 鎷煎澶氬垎浜� + * * @param acceptData * @param uid * @param goodsId @@ -727,7 +633,6 @@ * @param out */ public void createPDDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) { - PDDGoodsDetail goods = PinDuoDuoApiUtil.getGoodsDetail(goodsId); if (goods == null) { out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佸凡涓嬫灦")); @@ -737,8 +642,8 @@ JSONObject data = new JSONObject(); 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); - + goodsId + "", Constant.SOURCE_TYPE_PDD); + String shortLink = HttpUtil.getShortLink(url); if (!StringUtil.isNullOrEmpty(shortLink)) { url = shortLink; @@ -750,11 +655,11 @@ data.put("pictUrl", goods.getGoodsImageUrl()); String shareText = ""; - + String shopType = "鎷煎澶氫环"; // 鏃犲埜 - if (goods.getHasCoupon()== null || !goods.getHasCoupon()) { + if (goods.getHasCoupon() == null || !goods.getHasCoupon()) { String text = shareGoodsTextTemplateService.getCommonTemplate(uid); if (StringUtil.isNullOrEmpty(text)) text = configService.get("goods_share_text_nocoupon"); @@ -765,16 +670,18 @@ String text = shareGoodsTextTemplateService.geteCouponTemplate(uid); if (StringUtil.isNullOrEmpty(text)) text = configService.get("goods_share_text_coupon"); - + shareText = text.replace("{鏍囬}", goods.getGoodsName()) - .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMinNormalPrice())) + "") - .replace("{浼樻儬鍒搁潰棰潁", MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getCouponDiscount())) + "") - .replace("{浼樻儬鍒镐环}", PinDuoDuoUtil.getQuanPrice(goods) + "" ); + .replace("{鍟嗗搧鍘熶环}", + MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMinNormalPrice())) + "") + .replace("{浼樻儬鍒搁潰棰潁", + MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getCouponDiscount())) + "") + .replace("{浼樻儬鍒镐环}", PinDuoDuoUtil.getQuanPrice(goods) + ""); } - + shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) - .replace("{鏈堥攢閲弣", PinDuoDuoUtil.getSaleCount(goods.getSoldQuantity())) - .replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", null); + .replace("{鏈堥攢閲弣", PinDuoDuoUtil.getSaleCount(goods.getSoldQuantity())).replace("{棰嗗埜鐭摼}", shortLink) + .replace("{娣樺彛浠", null); data.put("shareText", shareText); String descText = shareText.replace(goods.getGoodsName(), "").trim(); if (descText.startsWith("\\r\\n")) @@ -786,16 +693,17 @@ 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")); // 娣诲姞鍒嗕韩璁板綍 BigDecimal shareRate = hongBaoManageService.getShareRate(); - BigDecimal shareMoney =PinDuoDuoUtil.getGoodsFanLiMoney(goods, shareRate); + BigDecimal shareMoney = PinDuoDuoUtil.getGoodsFanLiMoney(goods, shareRate); data.put("shareMoney", "楼" + shareMoney.toString()); try { - ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, Constant.SOURCE_TYPE_JD); + ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId, + Constant.SOURCE_TYPE_JD); data.put("shareId", shareRecord.getRedisKey()); } catch (Exception e) { try { @@ -821,7 +729,7 @@ history.setQuanLink(null); history.setGoodsId(goodsId); history.setPostPicture(goods.getGoodsImageUrl()); - + List<String> imgList = null; String[] goodsGalleryUrls = goods.getGoodsGalleryUrls(); if (goodsGalleryUrls != null) { @@ -834,7 +742,115 @@ shareGoodsService.addShareGoodsHistory(history); } }); -} - + } + + /** + * 鑾峰彇鍒嗕韩璁板綍涓殑鍟嗗搧 鍒嗕韩淇℃伅 + * + * @param acceptData + * @param recordId + * @param out + */ + @RequestMapping(value = "getShareGoods") + public void getShareGoods(AcceptData acceptData, Long recordId, PrintWriter out) { + + if (recordId == null) { + out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶆纭�")); + return; + } + + JSONArray array = new JSONArray(); + JSONObject data = new JSONObject(); + + List<UserShareGoodsGroup> list = userShareGoodsGroupService.listByRecordId(recordId); + if (list == null || list.size() == 0) { + data.put("title", "鍒嗕韩鍟嗗搧"); + data.put("count", 0); + data.put("result_list", array); + out.print(JsonUtil.loadTrueResult(data)); + return; + } + + // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭 + List<TaoBaoGoodsBrief> listTaoKeGoods = null; + List<Long> listGid = new ArrayList<Long>(); + for (UserShareGoodsGroup goodsGroup : list) { + CommonGoods commonGoods = goodsGroup.getCommonGoods(); + Integer goodsType = commonGoods.getGoodsType(); + if (commonGoods == null || goodsType == null || goodsType != Constant.SOURCE_TYPE_TAOBAO) { + continue; + } + listGid.add(commonGoods.getGoodsId()); + } + + if (listGid.size() > 0) { + try { + listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid); + } catch (TaoKeApiException e) { + e.printStackTrace(); + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); + BigDecimal shareRate = hongBaoManageService.getShareRate(); + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + + for (UserShareGoodsGroup goodsGroup : list) { + CommonGoods commonGoods = goodsGroup.getCommonGoods(); + if (commonGoods == null) { + continue; + } + + // 楠岃瘉娣樺疂鍟嗗搧鏄惁鍦ㄥ敭 + Integer goodsType = commonGoods.getGoodsType(); + if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 && goodsType != null + && goodsType == Constant.SOURCE_TYPE_TAOBAO) { + int state = 1; // 榛樿鍋滃敭 + Long goodsId = commonGoods.getGoodsId(); + for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) { + Long auctionId = taoKeGoods.getAuctionId(); + if (goodsId == auctionId || goodsId.equals(auctionId)) { + state = 0; // 鍦ㄥ敭 + break; + } + } + commonGoods.setState(state); + } + + // 浠婃棩娴忚璁板綍澶勭悊 + Date date = new Date(); + Date browseTime = goodsGroup.getBrowseTime(); + if (!DateUtil.isSameDay(browseTime, date)) { + goodsGroup.setTodayBrowse(0); // 涓嶆槸鍚屼竴澶╂祻瑙堣褰曡缃�0 + } + + JSONObject dataObject = new JSONObject(); + dataObject.put("todayBrowse", goodsGroup.getTodayBrowse()); + dataObject.put("totalBrowse", goodsGroup.getTotalBrowse()); + dataObject.put("totalOrder", goodsGroup.getTotalOrder()); + dataObject.put("totalMoney", "楼" + goodsGroup.getTotalMoney()); + + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, shareRate); + detailVO.setId(commonGoods.getId()); + dataObject.put("goods", gson.toJson(detailVO)); + array.add(dataObject); + } + + String title = ""; + UserShareGoodsRecord userShareGoodsRecord = userShareGoodsRecordService.selectByPrimaryKey(recordId); + if (userShareGoodsRecord != null) { + title = userShareGoodsRecord.getTitle(); + } + + data.put("title", title); + data.put("count", list.size()); + data.put("result_list", array); + out.print(JsonUtil.loadTrueResult(data)); + } } -- Gitblit v1.8.0