From 4d6fc41d443de862e7aa592112f3a4851723230c Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 26 五月 2020 12:29:03 +0800
Subject: [PATCH] 排行榜统计大于0的
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 1348 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 884 insertions(+), 464 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 ac930c1..f5ce570 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
@@ -1,23 +1,31 @@
package com.yeshi.fanli.controller.client.v2;
+import java.io.IOException;
+import java.io.InputStream;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
+import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import javax.annotation.Resource;
+import org.apache.commons.beanutils.PropertyUtils;
+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.QRCodeUtil;
import org.yeshi.utils.entity.FileUploadResult;
+import org.yeshi.utils.tencentcloud.COSManager;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -27,8 +35,9 @@
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dto.jd.JDCouponInfo;
import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo;
+import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo.CommonShareInfoEnum;
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
@@ -36,22 +45,26 @@
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;
-import com.yeshi.fanli.entity.dynamic.GoodsPicture;
import com.yeshi.fanli.entity.dynamic.ImgInfo;
import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
-import com.yeshi.fanli.entity.dynamic.SimpleGoods;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
+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.count.DailyCountMomentsService;
import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
+import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
+import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
@@ -60,20 +73,27 @@
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
-import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.FilePathEnum;
+import com.yeshi.fanli.util.ImageUtil;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
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.CouponInfoVO;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+import com.yeshi.fanli.vo.homemodule.BannerVO;
+import com.yeshi.fanli.vo.homemodule.SpecialVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
+import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
@@ -126,9 +146,21 @@
@Resource
private QrCodeService qrCodeService;
-
+
@Resource
private ConvertLinkManager convertLinkManager;
+
+ @Resource
+ private ShareGoodsService shareGoodsService;
+
+ @Resource
+ private DailyCountMomentsService dailyCountMomentsService;
+
+ @Resource
+ private CommonShareInfoService commonShareInfoService;
+
+ @Resource(name = "taskExecutor")
+ private TaskExecutor executor;
private final static long TYPE_REXIAO = 1;// 鐑攢
private final static long TYPE_TUIJIAN = 2;// 鎺ㄨ崘
@@ -245,7 +277,6 @@
list.add(map.get(TYPE_HUODONG));
// list.add(map.get(TYPE_XUEYUAN));
list.add(map.get(TYPE_SUCAI));
-
} else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
// 2.0.6杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+瀛﹂櫌+閭�璇�
list.add(map.get(TYPE_REXIAO));
@@ -349,8 +380,8 @@
listKey.add("special_channel_pdd");
}
- List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
- listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
+ List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE,
+ Constant.PAGE_SIZE, listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
long time = System.currentTimeMillis();
@@ -358,31 +389,29 @@
for (int i = 0; i < list.size(); i++) {
Special special = list.get(i);
if (special.getState() == 1L) {
- list.remove(i--);
- } else {
- if (special.getStartTime() != null && special.getEndTime() != null)
+ continue;
+ }
+
+ // 鏄惁娲诲姩宸茶繃鏈�
+ if (special.getStartTime() != null && special.getEndTime() != null) {
+ if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
+ continue;
+ } else {
special.setTimeTask(true);
- else
- special.setTimeTask(false);
-
- if (special.isTimeTask()) {
- if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
- list.remove(i--);
- } else// 璁剧疆鍊掕鏃�
- {
- special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
- }
- }
-
- List<SpecialLabel> listLabels = special.getListLabels();
- if (listLabels != null && !listLabels.isEmpty()) {
- List<ClientTextStyleVO> labels = new ArrayList<>();
- for (SpecialLabel specialLabel : listLabels) {
- labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor()));
- }
- special.setLabels(labels);
+ special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
}
}
+
+ // 璁剧疆鏍囩
+ List<SpecialLabel> listLabels = special.getListLabels();
+ if (listLabels != null && !listLabels.isEmpty()) {
+ List<ClientTextStyleVO> labels = new ArrayList<>();
+ for (SpecialLabel specialLabel : listLabels) {
+ labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor()));
+ }
+ special.setLabels(labels);
+ }
+
}
long count = specialService.countByPlaceKeyList(listKey, platformCode,
@@ -510,18 +539,18 @@
JSONObject data = new JSONObject();
if (page == 1 && !search) {
- List<SwiperPicture> banners = swiperPictureService.getByBannerCardAndVersion("article_banners",
+ List<BannerVO> banners = swiperPictureService.getByBannerCardAndVersion("article_banners",
acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
if (banners == null)
banners = new ArrayList<>();
data.put("banners", gson.toJson(banners));
- List<Special> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials",
+ List<SpecialVO> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials",
acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
if (listSpecial == null)
listSpecial = new ArrayList<>();
- for (Special special : listSpecial) {
+ for (SpecialVO special : listSpecial) {
boolean needLogin = special.isJumpLogin();
JumpDetailV2 jumpDetail = special.getJumpDetail();
if (jumpDetail != null) {
@@ -593,99 +622,183 @@
*/
@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;
- oldDynamicInfo(acceptData, page, subId, out); // 鑰佺増鍔ㄦ��
- return;
- } 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());
- }
- }
- }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
- @Override
- public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
- String desc = "";
- if (value != null) {
- // 鍒ゆ柇鏄惁鏄悓涓�澶�
+ List<GoodsEvaluate> listNew = new ArrayList<GoodsEvaluate>();
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(value);
- int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
- int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+ List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE,
+ Constant.PAGE_SIZE, type);
- 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) + "澶╁墠";
- }
- } 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) + "澶╁墠";
+ if (!VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) {
+ listNew.addAll(list);
+ } else if (list.size() > 0) { // 娲诲姩鍥剧墖涓嶅厑璁歌烦杞�
+ for (GoodsEvaluate goodsEvaluate : list) {
+ if (goodsEvaluate.getType() != EvaluateEnum.activity) {
+ listNew.add(goodsEvaluate);
+ continue;
}
- return new JsonPrimitive(desc);
+ GoodsEvaluate evaluateNew = new GoodsEvaluate();
+ try {
+ PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
+ } catch (Exception e) {
+ e.printStackTrace();
+ continue;
+ }
+ // 璺宠浆杩囨浮椤�
+ // String jumpLink =
+ // configService.get(ConfigKeyEnum.activityDetailLink.getKey())
+ // + "?type=%s&id=%s";
+ // jumpLink = String.format(jumpLink, "circle",
+ // evaluateNew.getId());
+ // evaluateNew.setJumpLink(jumpLink);
+
+ // 鍥剧墖鏁伴噺
+ if (evaluateNew.getImgList() != null && evaluateNew.getImgList().size() > 0) {
+ int size = evaluateNew.getImgList().size();
+ List<ImgInfo> listInfoNew = new ArrayList<ImgInfo>();
+
+ for (ImgInfo imgInfo : goodsEvaluate.getImgList()) {
+ if (imgInfo.getType() != ImgEnum.activity) {
+ listInfoNew.add(imgInfo);
+ continue;
+ }
+ ImgInfo infoNew = new ImgInfo();
+ try {
+ PropertyUtils.copyProperties(infoNew, imgInfo);
+ } catch (Exception e) {
+ e.printStackTrace();
+ continue;
+ }
+ infoNew.setType(ImgEnum.img);
+ // 鍥剧墖澶т簬涓�寮犳椂 鏄剧ず涔濆鏍煎浘
+ if (size > 1) {
+ infoNew.setW(1);
+ infoNew.setH(1);
+ }
+ listInfoNew.add(infoNew);
+ }
+ evaluateNew.setImgList(listInfoNew);
+ }
+ listNew.add(evaluateNew);
}
-
- return new JsonPrimitive("");
}
- });
- 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));
+ 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 {
+ return new JsonPrimitive(value.getVlaue());
+ }
+ }
+ }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+ @Override
+ public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+ if (value == null) {
+ return new JsonPrimitive("");
+ } else {
+ // 淇濈暀2浣嶅皬鏁�
+ return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value) + "");
+ }
+ }
+ }).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) + "澶╁墠";
+ }
+ } 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) + "澶╁墠";
+ }
+
+ return new JsonPrimitive(desc);
+ }
+
+ return new JsonPrimitive("");
+ }
+ });
+ Gson gson = gsonBuilder.create();
+ long count = goodsEvaluateService.countValidMaterials(type);
+
+ JSONArray jsonArray = new JSONArray();
+
+ String listStr = gson.toJson(listNew);
+ 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);
+ }
+
+ 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);
+ }
+
}
/**
@@ -702,154 +815,183 @@
@RequestMapping(value = "evaluateShare", method = RequestMethod.POST)
public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType,
PrintWriter out) {
-
- // 鑰佺増鍔ㄦ��
- if (1 > 0) {
- oldDynamicShare(acceptData, uid, id, type, goodsId, goodsType, out);
- return;
- }
-
-
- 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<>();
- // 鍗曞搧
- 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, inviteCode);
- if (!StringUtil.isNullOrEmpty(jumpLink)) {
- list.add(jumpLink);
- }
+ try {
+ if (uid == null) {
+ out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+ return;
}
- } else if (goodsEvaluate.getType() == EvaluateEnum.multiple) {
- if (type == 1) {
+ 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.getGoodsVO() != null)
- if (imgInfo.getGoodsVO().getGoodsId().longValue() == goodsId.longValue()
- && imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) {
- String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, inviteCode);
- if (!StringUtil.isNullOrEmpty(jumpLink)) {
- list.add(jumpLink);
- }
- break;
+ 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());
}
}
- } else if (type == 2 || type == 3) {
- for (ImgInfo imgInfo : imgs) {
- if (imgInfo.getGoodsVO() != null) {
- String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, inviteCode);
+ } 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, imgInfo.getUrl());
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,
+ imgInfo.getUrl());
+ 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,
+ imgInfo.getUrl());
+ 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());
+ } else if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())) {
+ list.add(imgInfo.getUrl());
+ }
+ }
}
}
- } 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);
- }
+ executor.execute(new Runnable() {
+ @Override
+ public void run() { // 娣诲姞姣忔棩缁熻
+ dailyCountMomentsService.addShareClick();
+ }
+ });
+ }
- 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));
}
- private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String inviteCode) {
+ private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode,
+ String mainPic) {
String jumpLink = null;
if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
- String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
- Constant.systemCommonConfig.getShareGoodsPagePath(),
- AESUtil.encrypt(user.getId() + "", Constant.UIDAESKEY), goodsVO.getGoodsId() + "");
- String shortLink = HttpUtil.getShortLink(url);
- if (!StringUtil.isNullOrEmpty(shortLink)) {
- url = shortLink;
+ TaoBaoLink taoBaoLink = null;
+ try {
+ taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(user.getId(), goodsVO.getGoodsId(), relationId);
+ } catch (ShareGoodsException e) {
+ e.printStackTrace();
}
- jumpLink = url;
+ jumpLink = ShareControllerV2.getERCodeContentNew(
+ configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), taoBaoLink.getGoods(),
+ TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
} else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId());
if (jdGoods == null) {
@@ -870,7 +1012,7 @@
}
FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode,
- goodsVO);
+ mainPic, goodsVO);
if (uploadResult != null) {
return uploadResult.getUrl();
}
@@ -878,7 +1020,7 @@
}
/**
- * 璇勮澶嶅埗
+ * 璇勮澶嶅埗-H5
*
* @param acceptData
* @param id
@@ -922,204 +1064,79 @@
}
String text = "";
+ CommentInfo comment = null;
List<CommentInfo> comments = goodsEvaluate.getComments();
if (comments != null) {
for (CommentInfo commentInfo : comments) {
if (cid.equals(commentInfo.getId())) {
text = commentInfo.getContent();
+ comment = commentInfo;
+ break;
}
}
}
-
- try {
- text=convertLinkManager.convertLinkFromText(text, uid, true);
- } catch (Exception e) {
- e.printStackTrace();
- out.print(JsonUtil.loadFalseResult("杞摼澶辫触"));
- return;
+
+ String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
+ if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
+ try {
+ newText = convertLinkManager.convertLinkFromText(text, uid, true);
+ } catch (ConvertLinkExceptionException e) {
+ if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ }
+
+ // 鏇挎崲浠锋牸
+ if (goodsEvaluate.getType() == EvaluateEnum.single) {
+ GoodsDetailVO goods = goodsEvaluate.getGoods();
+ newText = newText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
+ if (!goods.isHasCoupon()) {
+ newText = newText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+ newText = newText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+ } else {
+ newText = newText.replace("[鍒稿悗浠穄", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + "");
+ }
+ newText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
}
JSONObject data = new JSONObject();
- data.put("text", text);
+ data.put("text", newText);
out.print(JsonUtil.loadTrueResult(data));
- }
-
-
- public void oldDynamicInfo(AcceptData acceptData, Integer page, String subId, PrintWriter out) {
- long cid = 1;
- Long sid = null;
- if (!StringUtil.isNullOrEmpty(subId)){
- sid = Long.parseLong(subId);
- }
- List<DynamicInfo> listd = dynamicInfoService.queryV2(2, 74, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
- cid, sid);
- if (listd == null) {
- listd = new ArrayList<DynamicInfo>();
- }
- List<GoodsEvaluate> list = new ArrayList<>();
- for (DynamicInfo info : listd) {
- GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
- goodsEvaluate.setId(info.getId());
- ActivityUser user = info.getUser();
- goodsEvaluate.setUser(user);
- List<ClientTextStyleVO> titles = info.getTitle();
- if (titles != null) {
- goodsEvaluate.setTitle(info.getTitle().get(0).getContent());
- } else {
- goodsEvaluate.setTitle("");
- }
- goodsEvaluate.setShareNum(info.getShareCount());
- goodsEvaluate.setPublishTime(info.getCreateTime());
- goodsEvaluate.setLineNum(2);
- List<GoodsPicture> imgs = info.getImgs();
-
- int i = 0;
- GoodsDetailVO goods= null;
- List<ImgInfo> imgList = new ArrayList<>();
- for (GoodsPicture goodsPicture : imgs) {
- ImgInfo imgInfo = new ImgInfo();
- imgInfo.setH(1);
- imgInfo.setW(1);
- imgInfo.setLarge(false);
- imgInfo.setUrl(goodsPicture.getUrl());
- imgInfo.setUrlHD(goodsPicture.getUrl());
-
- GoodsDetailVO goodsVO = goodsPicture.getGoodsVO();
- if (goodsVO == null) {
- imgInfo.setType(ImgEnum.img);
- } else {
- imgInfo.setType(ImgEnum.goods);
- SimpleGoods simpleGoods = new SimpleGoods();
- simpleGoods.setGoodsId(goodsVO.getGoodsId());
- simpleGoods.setGoodsType(goodsVO.getGoodsType());
-
- CouponInfoVO couponInfo = goodsVO.getCouponInfo();
- if (couponInfo == null) {
- simpleGoods.setState(0);
- simpleGoods.setPrice(goodsVO.getZkPrice());
- } else {
- simpleGoods.setState(goodsVO.getState());
- simpleGoods.setPrice(goodsVO.getCouponPrice());
- simpleGoods.setAmount(couponInfo.getAmount());
- }
- imgInfo.setGoods(simpleGoods);
- goods = goodsVO;
- i++;
- }
- imgList.add(imgInfo);
- }
-
- goodsEvaluate.setImgList(imgList);
- if (i == 1) {
- goodsEvaluate.setGoods(goods);
- }
- list.add(goodsEvaluate);
- }
-
- GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
- gsonBuilder.registerTypeAdapter(CommentInfoEnum.class, new JsonSerializer<CommentInfoEnum>() {
+ executor.execute(new Runnable() {
@Override
- public JsonElement serialize(CommentInfoEnum value, Type theType, JsonSerializationContext context) {
- if (value == null) {
- return new JsonPrimitive(1);
- } else {
- return new JsonPrimitive(value.getDesc());
- }
- }
- }).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());
- }
- }
- }).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) + "澶╁墠";
- }
- } 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) + "澶╁墠";
- }
-
- return new JsonPrimitive(desc);
- }
-
- return new JsonPrimitive("");
+ public void run() { // 娣诲姞姣忔棩缁熻
+ dailyCountMomentsService.addCopyComment();
}
});
- Gson gson = gsonBuilder.create();
-
- JSONObject data = new JSONObject();
- data.put("list", gson.toJson(list));
- data.put("count", dynamicInfoService.count(cid, sid));
- out.print(JsonUtil.loadTrueResult(data));
}
-
- public void oldDynamicShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType,
- PrintWriter out) {
- if (uid == null) {
- out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+
+ /**
+ * 璇勮澶嶅埗-涓撻
+ *
+ * @param acceptData
+ * @param id
+ * @param out
+ */
+ @RequestMapping(value = "copySpecialComment", method = RequestMethod.POST)
+ public void copySpecialComment(AcceptData acceptData, Long uid, Long id, PrintWriter out) {
+ if (uid == null || id == 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;
- }
-
- DynamicInfo dynamicInfo = dynamicInfoService.getById(id);
- if (dynamicInfo == null) {
+ CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name());
+ if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
return;
}
-
+
UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
if (user == null) {
out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
@@ -1142,53 +1159,456 @@
return;
}
- String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
- if (StringUtil.isNullOrEmpty(inviteCode)) {
- out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�"));
- return;
- }
-
- List<GoodsPicture> imgs = dynamicInfo.getImgs();
- if (imgs == null) {
- out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�"));
- return;
- }
-
- List<String> list = new ArrayList<>();
- // 鐑攢涓哄崟鍝�
- for (GoodsPicture imgInfo : imgs) {
- GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
- if (goodsVO == null) {
- list.add(imgInfo.getUrl());
- continue;
+ String text = shareInfo.getComment();
+ String newText = text;
+ if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+ try {
+ newText = convertLinkManager.convertLinkFromText(text, uid, true);
+ } catch (ConvertLinkExceptionException e) {
+ if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
}
-
- String jumpLink = getJumpLink(goodsVO, user, inviteCode);
- if (!StringUtil.isNullOrEmpty(jumpLink)) {
- list.add(jumpLink);
- }
- }
-
- Integer shareCount = dynamicInfo.getShareCount();
- if (shareCount == null) {
- shareCount = 0;
- }
-
- if (type == 3) {
- shareCount++;
- dynamicInfoService.updateShareCount(dynamicInfo);
- }
-
- if (list.size() == 0) {
- out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦"));
- return;
}
JSONObject data = new JSONObject();
- data.put("count", shareCount);
- data.put("list", list);
+ data.put("text", newText);
out.print(JsonUtil.loadTrueResult(data));
}
-}
+ @RequestMapping(value = "getActivityDetail")
+ public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id,
+ PrintWriter out) {
+ if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+ return;
+ }
+ String title = "";
+ String comment = "";
+ String params = "";
+ String desc = "";
+ Date startTime = null;
+ Date endTime = null;
+ JumpDetailV2 jumpDetail = null;
+ List<String> imgs = new ArrayList<>();
+ if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+ GoodsEvaluate evaluate = goodsEvaluateService.getById(id);
+ if (evaluate == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+ return;
+ }
+
+ title = evaluate.getTitle();
+ List<CommentInfo> comments = evaluate.getComments();
+ if (comments != null && comments.size() > 0) {
+ comment = comments.get(0).getContent();
+ }
+
+ String jumpLink = null;
+ if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) {
+ jumpLink = evaluate.getJumpLink();
+ }
+
+ List<ImgInfo> imgList = evaluate.getImgList();
+ if (imgList != null && imgList.size() > 0) {
+ for (ImgInfo imgInfo : imgList) {
+ if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())
+ && (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity)) {
+ imgs.add(imgInfo.getUrl());
+ }
+
+ if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity) {
+ if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
+ jumpLink = imgInfo.getActivityUrl();
+ }
+ }
+ }
+ }
+
+ int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
+ jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode,
+ Integer.parseInt(acceptData.getVersion()));
+ JSONObject inner = new JSONObject();
+ inner.put("url", jumpLink);
+ params = inner.toString();
+ } else {
+ long pid = Long.parseLong(id);
+ if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) {
+ Special special = specialService.selectByPrimaryKey(pid);
+ if (special == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+ return;
+ }
+
+ params = special.getParams();
+ jumpDetail = special.getJumpDetail();
+ if (!StringUtil.isNullOrEmpty(special.getPicture())) {
+ imgs.add(special.getPicture());
+ }
+
+ title = special.getName();
+
+ desc = special.getRemark();
+ startTime = special.getStartTime();
+ endTime = special.getEndTime();
+ } else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) {
+ SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid);
+ if (swiper == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+ return;
+ }
+ params = swiper.getParams();
+ jumpDetail = swiper.getJumpDetail();
+ if (!StringUtil.isNullOrEmpty(swiper.getSrc())) {
+ imgs.add(swiper.getSrc());
+ }
+
+ title = swiper.getTitle();
+ desc = swiper.getDesc();
+ startTime = swiper.getStartTime();
+ endTime = swiper.getEndTime();
+ }
+ CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+ if (shareInfo != null && !StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+ comment = shareInfo.getComment();
+ }
+ }
+
+ if (!StringUtil.isNullOrEmpty(comment)) { // 鏇挎崲娣樺疂瀹樻柟娲诲姩
+ List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(comment);
+ for (String st : activityIdList)
+ comment = comment.replace(st, "");
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("title", title);
+ data.put("desc", desc);
+ data.put("comment", comment);
+ data.put("params", params);
+ data.put("jumpDetail", jumpDetail);
+ data.put("imgs", imgs);
+ if (startTime != null) {
+ data.put("startTime", TimeUtil.getGernalTime(startTime.getTime(), "yyyy.MM.dd"));
+ }
+
+ if (endTime != null) {
+ data.put("endTime", TimeUtil.getGernalTime(endTime.getTime(), "yyyy.MM.dd"));
+ }
+
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 璇勮澶嶅埗-涓撻
+ *
+ * @param acceptData
+ * @param id
+ * @param out
+ */
+ @RequestMapping(value = "copyShareComment")
+ public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, String type,
+ PrintWriter out) {
+ if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+ return;
+ }
+
+ if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+ copyActivityComment(callback, acceptData, uid, id, out);
+ return;
+ }
+
+ long pid = Long.parseLong(id);
+ CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+ if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ if (user == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+ return;
+ }
+
+ if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+ JsonUtil.printMode(out, callback,
+ 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)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+ return;
+ }
+
+ String text = shareInfo.getComment();
+ String newText = text;
+ if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+ try {
+ newText = convertLinkManager.convertLinkFromText(text, uid, true);
+ } catch (ConvertLinkExceptionException e) {
+ if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("text", newText);
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 娲诲姩鍒嗕韩缁樺浘
+ * @Title: createActivityShareImg
+ * @Description:
+ * @param title
+ * @param desc
+ * @param imgUrl
+ * @param erCodeContent
+ * @return
+ * String 杩斿洖绫诲瀷
+ * @throws
+ */
+ private String createActivityShareImg(String type, String id, String erCodeContent) {
+
+ String title = "";
+ String desc = "";
+ String img = "";
+ if ("circle".equalsIgnoreCase(type)) {
+
+ } else if ("banner".equalsIgnoreCase(type)) {
+ SwiperPicture picture = swiperPictureService.selectByPrimaryKey(Long.parseLong(id));
+ title = picture.getTitle();
+ desc = picture.getDesc();
+ img = picture.getSrc();
+ } else if ("special".equalsIgnoreCase(type)) {
+ Special special = specialService.selectByPrimaryKey(Long.parseLong(id));
+ title = special.getName();
+ desc = special.getRemark();
+ img = special.getPicture();
+ }
+
+ try {
+ InputStream erCodeInputStream = null;
+ erCodeInputStream = QRCodeUtil.getInstance(250).encode(erCodeContent);
+ int[] size = new int[2];
+ try {
+ size = ImageUtil.getImgWidthAndHeight(img);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ InputStream resultInputStream = ImageUtil.drawActivityShareImg(HttpUtil.getAsInputStream(img),
+ (float) size[0] / size[1], title, desc, erCodeInputStream);
+ if (resultInputStream != null) {
+ String filePath = FilePathEnum.activityShare.getPath() + UUID.randomUUID().toString().replace("-", "")
+ + ".png";
+ FileUploadResult result = COSManager.getInstance().uploadFile(resultInputStream, filePath);
+ if (result != null)
+ return result.getUrl();
+ }
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+
+ return null;
+ }
+
+ /**
+ * 璇勮澶嶅埗-涓撻
+ *
+ * @param acceptData
+ * @param id
+ * @param out
+ */
+ @RequestMapping(value = "getActivityShareImg")
+ public void getActivityShareImg(String callback, AcceptData acceptData, Long uid, String id, String type,
+ PrintWriter out) {
+ if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+ return;
+ }
+
+ if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+ // copyActivityComment(callback, acceptData, uid, id, out);
+ // TODO 鍒嗕韩鍙戝湀鐨勫浘
+ return;
+ }
+
+ long pid = Long.parseLong(id);
+ CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+ if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ if (user == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+ return;
+ }
+
+ if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+ JsonUtil.printMode(out, callback,
+ 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)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+ return;
+ }
+
+ String text = shareInfo.getComment();
+ String newText = text;
+ String imgUrl = null;
+ if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+ try {
+ String erCodeContent = "";
+ newText = convertLinkManager.convertLinkFromText(text, uid, true);
+ // 鑾峰彇鍙d护
+ List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText);
+ if (tokenList != null && tokenList.size() > 0) {
+ // 鏋勯�犲垎浜摼鎺�
+ erCodeContent = ShareControllerV2.getTaoBaoActiivtyERCodeContentNew(
+ configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), tokenList.get(0));
+ } else {
+ // 鑾峰彇閾炬帴
+ List<String> urlList = JDUtil.getJDShortLinksFromText(newText);
+ if (urlList != null && urlList.size() > 0) {
+ erCodeContent = urlList.get(0);
+ } else {
+ urlList = PinDuoDuoUtil.getPDDShortLinksFromText(newText);
+ if (urlList != null && urlList.size() > 0) {
+ erCodeContent = urlList.get(0);
+ }
+ }
+ }
+
+ imgUrl = createActivityShareImg(type, id, erCodeContent);
+ } catch (ConvertLinkExceptionException e) {
+ if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ }
+
+ if (StringUtil.isNullOrEmpty(imgUrl)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
+ } else {
+ JSONObject data = new JSONObject();
+ data.put("text", newText);
+ data.put("img", imgUrl);
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+ }
+ }
+
+ /**
+ * 璇勮澶嶅埗
+ *
+ * @param acceptData
+ * @param id
+ * @param out
+ */
+ private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) {
+ if (StringUtil.isNullOrEmpty(id)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+ return;
+ }
+
+ GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+ if (goodsEvaluate == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ if (user == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+ return;
+ }
+
+ if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+ JsonUtil.printMode(out, callback,
+ 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)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+ return;
+ }
+
+ String text = "";
+ CommentInfo comment = null;
+ List<CommentInfo> comments = goodsEvaluate.getComments();
+ if (comments != null && comments.size() > 0) {
+ CommentInfo info = comments.get(0);
+ text = info.getContent();
+ comment = info;
+ }
+
+ String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
+ if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
+ try {
+ newText = convertLinkManager.convertLinkFromText(text, uid, true);
+ } catch (ConvertLinkExceptionException e) {
+ if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+ return;
+ }
+ }
+ JSONObject data = new JSONObject();
+ data.put("text", newText);
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() { // 娣诲姞姣忔棩缁熻
+ dailyCountMomentsService.addCopyComment();
+ }
+ });
+ }
+}
--
Gitblit v1.8.0