From 207dc8655711cddac2653e18b51e58a88dba2084 Mon Sep 17 00:00:00 2001 From: yj <Administrator@192> Date: 星期五, 06 三月 2020 18:14:36 +0800 Subject: [PATCH] 发圈处理 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 458 +++++++++++++++++++++++++++++++------------------------- 1 files changed, 251 insertions(+), 207 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java index 75e5d1b..a426347 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java @@ -33,7 +33,6 @@ import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.common.JumpDetailV2; import com.yeshi.fanli.entity.dynamic.CommentInfo; -import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum; import com.yeshi.fanli.entity.dynamic.DynamicInfo; import com.yeshi.fanli.entity.dynamic.GoodsEvaluate; import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum; @@ -41,8 +40,11 @@ import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum; import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.entity.system.ConfigKeyEnum; +import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoLink; +import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException; import com.yeshi.fanli.exception.share.ShareGoodsException; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService; @@ -66,10 +68,12 @@ import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.vo.dynamic.ArticleVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import com.yeshi.fanli.vo.msg.ClientTextStyleVO; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** @@ -125,6 +129,9 @@ @Resource private ConvertLinkManager convertLinkManager; + + @Resource + private ShareGoodsService shareGoodsService; private final static long TYPE_REXIAO = 1;// 鐑攢 private final static long TYPE_TUIJIAN = 2;// 鎺ㄨ崘 @@ -589,97 +596,121 @@ */ @RequestMapping(value = "getDynamicList", method = RequestMethod.POST) public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) { - int type = 1; - if (cid == TYPE_FAQUAN) { - type = 1; - } else if (cid == TYPE_SUCAI) { - type = 2; - } - List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, - Constant.PAGE_SIZE, type); - if (list == null) { - list = new ArrayList<>(); - } - GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); - gsonBuilder.registerTypeAdapter(CommentInfoEnum.class, new JsonSerializer<CommentInfoEnum>() { - @Override - public JsonElement serialize(CommentInfoEnum value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(1); - } else { - return new JsonPrimitive(value.getDesc()); - } + try { + int type = 1; + if (cid == TYPE_FAQUAN) { + type = 1; + } else if (cid == TYPE_SUCAI) { + type = 2; } - }).registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() { - @Override - public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(""); - } else { - return new JsonPrimitive(value.getVlaue()); - } + + List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, + Constant.PAGE_SIZE, type); + if (list == null) { + list = new ArrayList<>(); } - }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { - @Override - public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { - String desc = ""; - if (value != null) { - // 鍒ゆ柇鏄惁鏄悓涓�澶� - Calendar calendar = Calendar.getInstance(); - calendar.setTime(value); - int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤 - int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶� - - Date nowDate = new Date(); - Calendar calendar2 = Calendar.getInstance(); - calendar2.setTime(nowDate); - int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤 - int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶� - - long old = value.getTime(); - long now = nowDate.getTime(); - if (y1 == y2) { - if (d1 == d2) { - long cha = now - old; - if (cha < 1000 * 60 * 2L) { - desc = "鍒氬垰"; - } else if (cha < 1000 * 60 * 60L) { - desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�"; - } else { - desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�"; - } - } else if (d2 - d1 == 1) { - desc = "鏄ㄥぉ"; - } else { - desc = (d2 - d1) + "澶╁墠"; - } + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() { + @Override + public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); } else { - int timeDistance = 0; - for (int i = y1; i < y2; i++) { - if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { - timeDistance += 366; // 闂板勾 + return new JsonPrimitive(value.getVlaue()); + } + } + }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + @Override + public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { + String desc = ""; + if (value != null) { + // 鍒ゆ柇鏄惁鏄悓涓�澶� + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤 + int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶� + + Date nowDate = new Date(); + Calendar calendar2 = Calendar.getInstance(); + calendar2.setTime(nowDate); + int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤 + int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶� + + long old = value.getTime(); + long now = nowDate.getTime(); + if (y1 == y2) { + if (d1 == d2) { + long cha = now - old; + if (cha < 1000 * 60 * 2L) { + desc = "鍒氬垰"; + } else if (cha < 1000 * 60 * 60L) { + desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�"; + } else { + desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�"; + } + } else if (d2 - d1 == 1) { + desc = "鏄ㄥぉ"; } else { - timeDistance += 365; // 涓嶆槸闂板勾 + desc = (d2 - d1) + "澶╁墠"; } + } else { + int timeDistance = 0; + for (int i = y1; i < y2; i++) { + if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { + timeDistance += 366; // 闂板勾 + } else { + timeDistance += 365; // 涓嶆槸闂板勾 + } + } + desc = timeDistance + (d2 - d1) + "澶╁墠"; } - desc = timeDistance + (d2 - d1) + "澶╁墠"; + + return new JsonPrimitive(desc); } - return new JsonPrimitive(desc); + return new JsonPrimitive(""); } + }); + Gson gson = gsonBuilder.create(); + long count = goodsEvaluateService.countValidMaterials(type); - return new JsonPrimitive(""); + JSONArray jsonArray = new JSONArray(); + + String listStr = gson.toJson(list); + JSONArray array = JSONArray.fromObject(listStr); + for (int i = 0; i < array.size(); i++) { + Object object = array.get(i); + JSONObject json = JSONObject.fromObject(object); + Object shareNum = json.get("shareNum"); + if (shareNum != null) { + int num = Integer.parseInt(shareNum.toString()); + + if (num >= 100000000) { + double sales = num; + String salesCountMidea = String.format("%.1f", sales / 100000000); + json.put("shareNum", salesCountMidea + "浜�"); + } else if (num >= 10000) { + double sales = num; + String salesCountMidea = String.format("%.1f", sales / 10000); + json.put("shareNum", salesCountMidea + "涓�"); + } + } + jsonArray.add(json); } - }); - Gson gson = gsonBuilder.create(); - long count = goodsEvaluateService.countValidMaterials(type); - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("list", gson.toJson(list)); - out.print(JsonUtil.loadTrueResult(data)); + JSONObject data = new JSONObject(); + data.put("count", count); + data.put("list", jsonArray); + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + e.printStackTrace(); + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ淇℃伅澶辫触")); + LogHelper.errorDetailInfo(e); + } + } /** @@ -696,115 +727,65 @@ @RequestMapping(value = "evaluateShare", method = RequestMethod.POST) public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType, PrintWriter out) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (StringUtil.isNullOrEmpty(id) || type == null) { - out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�")); - return; - } - - if (type == 1 && (goodsId == null || goodsType == null)) { - out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖")); - return; - } - - GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); - if (goodsEvaluate == null) { - out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�")); - return; - } - - UserInfo user = userInfoService.getUserByIdWithMybatis(uid); - if (user == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); - return; - } - - UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); - String relationId = null; - if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null - && taoBaoInfo.getRelationValid() == true) - relationId = taoBaoInfo.getRelationId(); - - if (StringUtil.isNullOrEmpty(relationId)) { - out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); - return; - } - - String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); - if (StringUtil.isNullOrEmpty(inviteCode)) { - out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�")); - return; - } - - List<ImgInfo> imgs = goodsEvaluate.getImgList(); - if (imgs == null) { - out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�")); - return; - } - - List<String> list = new ArrayList<>(); - Integer dynamicType = goodsEvaluate.getDynamicType(); - if (dynamicType == null || dynamicType.intValue() == 2) { - for (ImgInfo imgInfo : imgs) { - if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video) - continue; - if (imgInfo.getType() == ImgEnum.img) - list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD()); - else if (imgInfo.getType() == ImgEnum.activity) - if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) { - list.add(imgInfo.getActivityPic()); - } + try { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; } - } else { - // 鍗曞搧 - if (goodsEvaluate.getType() == EvaluateEnum.single) { - for (ImgInfo imgInfo : imgs) { - GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); - if (goodsVO == null) { - list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD()); - continue; - } - String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode); - if (!StringUtil.isNullOrEmpty(jumpLink)) { - list.add(jumpLink); - } - } + if (StringUtil.isNullOrEmpty(id) || type == null) { + out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�")); + return; + } - } else if (goodsEvaluate.getType() == EvaluateEnum.multiple) { - if (type == 1) { - for (ImgInfo imgInfo : imgs) { - if (imgInfo.getGoodsVO() != null) - if (imgInfo.getGoodsVO().getGoodsId().longValue() == goodsId.longValue() - && imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) { - String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode); - if (!StringUtil.isNullOrEmpty(jumpLink)) { - list.add(jumpLink); - } - break; - } - } - } else if (type == 2 || type == 3) { - for (ImgInfo imgInfo : imgs) { - if (imgInfo.getGoodsVO() != null) { - String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode); - if (!StringUtil.isNullOrEmpty(jumpLink)) { - list.add(jumpLink); - } - } - } - } + if (type == 1 && (goodsId == null || goodsType == null)) { + out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖")); + return; + } - } else if (goodsEvaluate.getType() == EvaluateEnum.activity) { + GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); + if (goodsEvaluate == null) { + out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�")); + return; + } + + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + if (user == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (user != null && user.getState() != UserInfo.STATE_NORMAL) { + out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + return; + } + + UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); + String relationId = null; + if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null + && taoBaoInfo.getRelationValid() == true) + relationId = taoBaoInfo.getRelationId(); + + if (StringUtil.isNullOrEmpty(relationId)) { + out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); + return; + } + + String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); + if (StringUtil.isNullOrEmpty(inviteCode)) { + out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�")); + return; + } + + List<ImgInfo> imgs = goodsEvaluate.getImgList(); + if (imgs == null) { + out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�")); + return; + } + + List<String> list = new ArrayList<>(); + Integer dynamicType = goodsEvaluate.getDynamicType(); + if (dynamicType == null || dynamicType.intValue() == 2) { for (ImgInfo imgInfo : imgs) { if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video) continue; @@ -815,32 +796,89 @@ list.add(imgInfo.getActivityPic()); } } + } else { + // 鍗曞搧 + if (goodsEvaluate.getType() == EvaluateEnum.single) { + for (ImgInfo imgInfo : imgs) { + if (imgInfo.getType() == ImgEnum.video) + continue; + + GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); + if (goodsVO == null) { + list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() + : imgInfo.getUrlHD()); + continue; + } + + String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode); + if (!StringUtil.isNullOrEmpty(jumpLink)) { + list.add(jumpLink); + } + } + + } else if (goodsEvaluate.getType() == EvaluateEnum.multiple) { + if (type == 1) { + for (ImgInfo imgInfo : imgs) { + if (imgInfo.getGoodsVO() != null) + if (imgInfo.getGoodsVO().getGoodsId().longValue() == goodsId.longValue() + && imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) { + String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode); + if (!StringUtil.isNullOrEmpty(jumpLink)) { + list.add(jumpLink); + } + break; + } + } + } else if (type == 2 || type == 3) { + for (ImgInfo imgInfo : imgs) { + if (imgInfo.getGoodsVO() != null) { + String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode); + if (!StringUtil.isNullOrEmpty(jumpLink)) { + list.add(jumpLink); + } + } + } + } + + } else if (goodsEvaluate.getType() == EvaluateEnum.activity) { + for (ImgInfo imgInfo : imgs) { + if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video) + continue; + if (imgInfo.getType() == ImgEnum.img) + list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() + : imgInfo.getUrlHD()); + else if (imgInfo.getType() == ImgEnum.activity) + if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) { + list.add(imgInfo.getActivityPic()); + } + } + } } - } - Integer shareCount = goodsEvaluate.getShareNum(); - if (shareCount == null) { - shareCount = 0; - } + Integer shareCount = goodsEvaluate.getShareNum(); + if (shareCount == null) { + shareCount = 0; + } - if (type == 3) { - shareCount++; - goodsEvaluateService.addShareNum(id); - } + if (type == 3) { + shareCount++; + goodsEvaluateService.addShareNum(id); + } - if (list.size() == 0) { - out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦")); + if (list.size() == 0) { + out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦")); + return; + } + + JSONObject data = new JSONObject(); + data.put("count", shareCount); + data.put("list", list); + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�")); return; } - - JSONObject data = new JSONObject(); - data.put("count", shareCount); - data.put("list", list); - out.print(JsonUtil.loadTrueResult(data)); } - - @Resource - private ShareGoodsService shareGoodsService; private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode) { String jumpLink = null; @@ -851,9 +889,9 @@ } catch (ShareGoodsException e) { e.printStackTrace(); } - - jumpLink = configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()).replace("[娣樺彛浠", - taoBaoLink.getTaoToken()); + jumpLink = ShareControllerV2.getERCodeContentNew( + configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()), taoBaoLink.getGoods(), + TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) { JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId()); if (jdGoods == null) { @@ -935,8 +973,14 @@ } } + String newText = text; try { - text = convertLinkManager.convertLinkFromText(text, uid, true); + newText = convertLinkManager.convertLinkFromText(text, uid, true); + } catch (ConvertLinkExceptionException e) { + if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { + out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); + return; + } } catch (Exception e) { e.printStackTrace(); out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); @@ -944,7 +988,7 @@ } JSONObject data = new JSONObject(); - data.put("text", text); + data.put("text", newText); out.print(JsonUtil.loadTrueResult(data)); } -- Gitblit v1.8.0