From 6783b45620c1812c67f7d848586949b70b5bf973 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 16 四月 2020 15:27:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 1531 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 1,051 insertions(+), 480 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 dd812bf..b467a7b 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,480 +1,1051 @@
-package com.yeshi.fanli.controller.client.v2;
-
-import java.io.PrintWriter;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.JsonUtil;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
-import com.yeshi.fanli.entity.bus.homemodule.Special;
-import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
-import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
-import com.yeshi.fanli.entity.common.JumpDetailV2;
-import com.yeshi.fanli.entity.dynamic.DynamicInfo;
-import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
-import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService;
-import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
-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;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.VersionUtil;
-import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
-import com.yeshi.fanli.vo.dynamic.ArticleVO;
-import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
-
-import net.sf.json.JSONObject;
-
-/**
- * 鍔ㄦ��
- *
- * @author Administrator
- *
- */
-@Controller
-@RequestMapping("api/v2/dynamic")
-public class DynamicControllerV2 {
-
- @Resource
- private HongBaoManageService hongBaoManageService;
-
- @Resource
- private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
-
- @Resource
- private JumpDetailV2Service jumpDetailV2Service;
-
- @Resource
- private DynamicInfoService dynamicInfoService;
-
- @Resource
- private SpecialService specialService;
-
- @Resource
- private ArticleOfficialService articleOfficialService;
-
- @Resource
- private SwiperPictureService swiperPictureService;
-
- @Resource
- private ConfigService configService;
-
-
- /**
- * 鏌ヨ椤堕儴鍒嗙被
- *
- * @param acceptData
- * @param page
- * @param cid
- * @param out
- */
- @RequestMapping(value = "getClass", method = RequestMethod.POST)
- public void getClass(AcceptData acceptData, Integer cid, PrintWriter out) {
- // ios 鍙繑鍥炲瓙闆嗗垎绫�
- if (cid != null) {
- List<GoodsClass> list = new ArrayList<GoodsClass>();
-
- switch (cid) {
- case 1:
- list.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
- list.addAll(DaTaoKeUtil.goodsClasses);
- break;
- case 2:
- break;
- case 3:
- break;
- case 4:
- break;
- case 5:
- list.add(new GoodsClass(0L, "鍏ㄩ儴"));
- list.add(new GoodsClass(1L, "娣樺疂"));
- list.add(new GoodsClass(2L, "浜笢"));
- list.add(new GoodsClass(3L, "鎷煎澶�"));
- break;
- default:
- break;
- }
- JSONObject data = new JSONObject();
- data.put("list", JsonUtil.getApiCommonGson().toJson(list));
- out.print(JsonUtil.loadTrueResult(data));
- return;
- }
-
- // Android 杩斿洖鍒嗙被浠ュ強椤堕儴鏁版嵁
- List<GoodsClass> listSub = new ArrayList<GoodsClass>();
- listSub.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
- listSub.addAll(DaTaoKeUtil.goodsClasses);
-
- GoodsClass menu1 = new GoodsClass(1L, "鐑攢");
- menu1.setListSub(listSub);
-
- GoodsClass menu2 = new GoodsClass(2L, "鎺ㄨ崘");
- menu2.setListSub(new ArrayList<GoodsClass>());
-
- GoodsClass menu3 = new GoodsClass(3L, "濂藉簵");
- menu3.setListSub(new ArrayList<GoodsClass>());
-
- GoodsClass menu4 = new GoodsClass(4L, "閭�璇�");
- menu4.setListSub(new ArrayList<GoodsClass>());
-
- GoodsClass menu5 = new GoodsClass(5L, "娲诲姩");
- List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
- sub5.add(new GoodsClass(0L, "鍏ㄩ儴"));
- sub5.add(new GoodsClass(1L, "娣樺疂"));
- sub5.add(new GoodsClass(2L, "浜笢"));
- sub5.add(new GoodsClass(3L, "鎷煎澶�"));
- menu5.setListSub(sub5);
-
- GoodsClass menu6 = new GoodsClass(6L, "瀛﹂櫌");
- menu6.setListSub(new ArrayList<GoodsClass>());
-
- List<GoodsClass> list = new ArrayList<GoodsClass>();
- list.add(menu1);
- list.add(menu5);
- list.add(menu2);
-
- // 2.0.5鐗堟湰闅愯棌 濂藉簵鏍忕洰
- if (!VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
- list.add(menu3);
- }
-
- // 2.0.6鐗堟湰澧炲姞 瀛﹂櫌鏍忕洰
- if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
- //list.add(menu6);
- }
- list.add(menu4);
-
- JSONObject data = new JSONObject();
- data.put("list", JsonUtil.getApiCommonGson().toJson(list));
- out.print(JsonUtil.loadTrueResult(data));
- }
-
- /**
- * 鍔ㄦ�佸晢鍝佸垪琛�
- *
- * @param acceptData
- * @param page
- * @param cid
- * @param subId
- * @param out
- */
- @RequestMapping(value = "getList", method = RequestMethod.POST)
- public void getList(AcceptData acceptData, Integer page, Long cid, Long subId, PrintWriter out) {
- if (cid == null) {
- out.print(JsonUtil.loadFalseResult("涓诲垎绫籭d涓嶈兘涓虹┖"));
- return;
- }
-
- if (cid != null) {
- if (cid == 5) { // 娲诲姩涓婚
- getSpecialList(acceptData, page, subId, out);
- return;
- } else if (cid == 6) { // 瀛﹂櫌
- getArticleList(acceptData, page, null, false, out);
- return;
- }
- }
-
- long count = 0;
-
- int platform = 1;
- if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
- platform = 2;
- }
-
- int version = Integer.parseInt(acceptData.getVersion());
- List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE,
- Constant.PAGE_SIZE, cid, subId);
- if (list == null) {
- list = new ArrayList<DynamicInfo>();
- } else {
- count = dynamicInfoService.count(cid, subId);
- }
-
- JSONObject data = new JSONObject();
- data.put("count", count);
- data.put("list", getGson().toJson(list));
- out.print(JsonUtil.loadTrueResult(data));
- }
-
- /**
- * 娲诲姩鍒楄〃
- *
- * @param acceptData
- * @param out
- */
- private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) {
- if (subId == null) {
- out.print(JsonUtil.loadFalseResult("鍒嗙被id涓嶈兘涓虹┖"));
- return;
- }
-
- // 骞冲彴鍖哄垎
- int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
- List<String> listKey = new ArrayList<String>();
-
- if (subId == 1) { // 娣樺疂
- listKey.add("special_channel_tb");
- } else if (subId == 2) { // 浜笢
- listKey.add("special_channel_jd");
- } else if (subId == 3) { // 鎷煎澶�
- listKey.add("special_channel_pdd");
- } else { // 鍏ㄩ儴
- listKey.add("special_channel_tb");
- listKey.add("special_channel_jd");
- listKey.add("special_channel_pdd");
- }
-
- List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
- listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
-
- long time = System.currentTimeMillis();
-
- // 鍒犻櫎灏氭湭鍚敤鐨勮繃鏈熺殑
- 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)
- 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);
- }
- }
- }
-
- long count = specialService.countByPlaceKeyList(listKey, platformCode,
- Integer.parseInt(acceptData.getVersion()));
-
- GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
- Gson gson = gsonBuilder.create();
- JSONObject data = new JSONObject();
- data.put("count", count);
- data.put("list", gson.toJson(list));
- out.print(JsonUtil.loadTrueResult(data));
- }
-
-
-
-
- /**
- * 鏃堕棿澶勭悊
- *
- * @return
- */
- private Gson getGson() {
- GsonBuilder gb = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
- gb.excludeFieldsWithoutExposeAnnotation();
- gb.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 = gb.create();
- return gson;
- }
-
- /**
- * 娲诲姩鍒楄〃
- *
- * @param acceptData
- * @param out
- */
- private void getArticleList(AcceptData acceptData, Integer page, String key, boolean search, PrintWriter out) {
- List<ArticleVO> list = articleOfficialService.queryValid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, key);
- if (list != null) {
- for (ArticleVO article: list) {
- String tags = article.getTags();
- if (StringUtil.isNullOrEmpty(tags)) {
- continue;
- }
-
- String[] arrayTags = tags.split("\\s+");
- if (arrayTags == null || arrayTags.length == 0) {
- continue;
- }
-
- String[] arrayTagsColour = null;
- String tagsColour = article.getTagsColour();
- if (!StringUtil.isNullOrEmpty(tagsColour)) {
- arrayTagsColour = tagsColour.split("\\s+");
- }
-
- String color = "#FE0014";
- List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
- for (int i = 0; i < arrayTags.length;i ++) {
- String tag = arrayTags[i];
- if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) {
- color = arrayTagsColour[i];
- }
- ClientTextStyleVO styleVO = new ClientTextStyleVO();
- styleVO.setColor(color);
- styleVO.setContent(tag);
- labels.add(styleVO);
- }
- article.setLabels(labels);
- }
- }
-
- GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
- Gson gson = gsonBuilder.create();
-
- JSONObject data = new JSONObject();
- if (page == 1 && !search) {
- List<SwiperPicture> 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",
- acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
- if (listSpecial == null)
- listSpecial = new ArrayList<>();
-
- for (Special special : listSpecial) {
- boolean needLogin = special.isJumpLogin();
- JumpDetailV2 jumpDetail = special.getJumpDetail();
- if (jumpDetail != null) {
- jumpDetail.setNeedLogin(needLogin);
- special.setJumpDetail(jumpDetail);
- }
- }
- data.put("specials", gson.toJson(listSpecial));
- }
- data.put("count", articleOfficialService.countValid(key));
- data.put("list", gson.toJson(list));
- out.print(JsonUtil.loadTrueResult(data));
- }
-
- /**
- * 鏂囩珷鎼滅储
- * @param acceptData
- * @param page
- * @param key
- * @param out
- */
- @RequestMapping(value = "readArticle", method = RequestMethod.POST)
- public void readArticle(AcceptData acceptData, String id, PrintWriter out) {
- if(StringUtil.isNullOrEmpty(id)) {
- out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
- return;
- }
- articleOfficialService.updateReadNum(id);
- out.print(JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
- }
-
-
- /**
- * 鏂囩珷鎼滅储
- * @param acceptData
- * @param page
- * @param key
- * @param out
- */
- @RequestMapping(value = "searchArticle", method = RequestMethod.POST)
- public void searchArticle(AcceptData acceptData, Integer page, String key, PrintWriter out) {
- getArticleList(acceptData, page, key, true, out);
- }
-
-
- /**
- * 鏂囩珷鎼滅储
- * @param acceptData
- * @param page
- * @param key
- * @param out
- */
- @RequestMapping(value = "getArticleHot", method = RequestMethod.POST)
- public void getArticleHot(AcceptData acceptData, PrintWriter out) {
- JSONObject data = new JSONObject();
- data.put("words", configService.get("article_hot_words"));
- out.print(JsonUtil.loadTrueResult(data));
- }
-
-}
+package com.yeshi.fanli.controller.client.v2;
+
+import java.io.PrintWriter;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+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 javax.annotation.Resource;
+
+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.JsonUtil;
+import org.yeshi.utils.entity.FileUploadResult;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.yeshi.fanli.dto.jd.JDCouponInfo;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.entity.bus.homemodule.Special;
+import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
+import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
+import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
+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.DynamicInfo;
+import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
+import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum;
+import com.yeshi.fanli.entity.dynamic.ImgInfo;
+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.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;
+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.SpecialService;
+import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.user.QrCodeService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+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.Constant;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.StringUtil;
+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.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;
+
+/**
+ * 鍔ㄦ��
+ *
+ * @author Administrator
+ *
+ */
+@Controller
+@RequestMapping("api/v2/dynamic")
+public class DynamicControllerV2 {
+
+ @Resource
+ private HongBaoManageService hongBaoManageService;
+
+ @Resource
+ private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
+
+ @Resource
+ private JumpDetailV2Service jumpDetailV2Service;
+
+ @Resource
+ private DynamicInfoService dynamicInfoService;
+
+ @Resource
+ private SpecialService specialService;
+
+ @Resource
+ private ArticleOfficialService articleOfficialService;
+
+ @Resource
+ private SwiperPictureService swiperPictureService;
+
+ @Resource
+ private ConfigService configService;
+
+ @Resource
+ private GoodsEvaluateService goodsEvaluateService;
+
+ @Resource
+ private UserInfoService userInfoService;
+ @Resource
+ private UserInfoExtraService userInfoExtraService;
+
+ @Resource
+ private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+ @Resource
+ private JDGoodsCacheUtil jdGoodsCacheUtil;
+
+ @Resource
+ private QrCodeService qrCodeService;
+
+ @Resource
+ private ConvertLinkManager convertLinkManager;
+
+ @Resource
+ private ShareGoodsService shareGoodsService;
+
+ // @Resource
+ // private DailyCountMomentsService dailyCountMomentsService;
+
+ @Resource(name = "taskExecutor")
+ private TaskExecutor executor;
+
+ private final static long TYPE_REXIAO = 1;// 鐑攢
+ private final static long TYPE_TUIJIAN = 2;// 鎺ㄨ崘
+ private final static long TYPE_HAODIAN = 3;// 濂藉簵
+ private final static long TYPE_YAOQING = 4;// 閭�璇�
+ private final static long TYPE_HUODONG = 5;// 娲诲姩
+ private final static long TYPE_XUEYUAN = 6;// 瀛﹂櫌
+ private final static long TYPE_FAQUAN = 7;// 鍙戝湀
+ private final static long TYPE_SUCAI = 8;// 绱犳潗
+
+ private static Map<Long, GoodsClass> classMap = null;
+
+ private Map<Long, GoodsClass> getAllDynamicClass() {
+ if (classMap != null && classMap.size() > 0)
+ return classMap;
+ classMap = new HashMap<Long, GoodsClass>();
+ List<GoodsClass> listSub = new ArrayList<GoodsClass>();
+ listSub.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
+ listSub.addAll(DaTaoKeUtil.goodsClasses);
+
+ GoodsClass menu = new GoodsClass(TYPE_REXIAO, "鐑攢");
+ menu.setListSub(listSub);
+ classMap.put(TYPE_REXIAO, menu);
+
+ menu = new GoodsClass(TYPE_TUIJIAN, "鎺ㄨ崘");
+ menu.setListSub(new ArrayList<GoodsClass>());
+ classMap.put(TYPE_TUIJIAN, menu);
+
+ menu = new GoodsClass(TYPE_HAODIAN, "濂藉簵");
+ menu.setListSub(new ArrayList<GoodsClass>());
+ classMap.put(TYPE_HAODIAN, menu);
+
+ menu = new GoodsClass(TYPE_YAOQING, "閭�璇�");
+ menu.setListSub(new ArrayList<GoodsClass>());
+ classMap.put(TYPE_YAOQING, menu);
+
+ menu = new GoodsClass(TYPE_HUODONG, "娲诲姩");
+ List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
+ sub5.add(new GoodsClass(0L, "鍏ㄩ儴"));
+ sub5.add(new GoodsClass(1L, "娣樺疂"));
+ sub5.add(new GoodsClass(2L, "浜笢"));
+ sub5.add(new GoodsClass(3L, "鎷煎澶�"));
+ menu.setListSub(sub5);
+ classMap.put(TYPE_HUODONG, menu);
+
+ menu = new GoodsClass(TYPE_XUEYUAN, "瀛﹂櫌");
+ menu.setListSub(new ArrayList<GoodsClass>());
+ classMap.put(TYPE_XUEYUAN, menu);
+
+ menu = new GoodsClass(TYPE_FAQUAN, "鍙戝湀");
+ menu.setListSub(new ArrayList<GoodsClass>());
+ classMap.put(TYPE_FAQUAN, menu);
+
+ menu = new GoodsClass(TYPE_SUCAI, "绱犳潗");
+ menu.setListSub(new ArrayList<GoodsClass>());
+ classMap.put(TYPE_SUCAI, menu);
+ return classMap;
+ }
+
+ /**
+ * 鏌ヨ椤堕儴鍒嗙被
+ *
+ * @param acceptData
+ * @param page
+ * @param cid
+ * @param out
+ */
+ @RequestMapping(value = "getClass", method = RequestMethod.POST)
+ public void getClass(AcceptData acceptData, Long cid, PrintWriter out) {
+ // ios 鍙繑鍥炲瓙闆嗗垎绫�
+ if (cid != null) {
+ Map<Long, GoodsClass> map = getAllDynamicClass();
+ JSONObject data = new JSONObject();
+ data.put("list", JsonUtil.getApiCommonGson().toJson(map.get(cid).getListSub()));
+ out.print(JsonUtil.loadTrueResult(data));
+ return;
+ }
+
+ // Android 杩斿洖鍒嗙被浠ュ強椤堕儴鏁版嵁
+ List<GoodsClass> listSub = new ArrayList<GoodsClass>();
+ listSub.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
+ listSub.addAll(DaTaoKeUtil.goodsClasses);
+
+ GoodsClass menu1 = new GoodsClass(1L, "鐑攢");
+ menu1.setListSub(listSub);
+
+ GoodsClass menu2 = new GoodsClass(2L, "鎺ㄨ崘");
+ menu2.setListSub(new ArrayList<GoodsClass>());
+
+ GoodsClass menu3 = new GoodsClass(3L, "濂藉簵");
+ menu3.setListSub(new ArrayList<GoodsClass>());
+
+ GoodsClass menu4 = new GoodsClass(4L, "閭�璇�");
+ menu4.setListSub(new ArrayList<GoodsClass>());
+
+ GoodsClass menu5 = new GoodsClass(5L, "娲诲姩");
+ List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
+ sub5.add(new GoodsClass(0L, "鍏ㄩ儴"));
+ sub5.add(new GoodsClass(1L, "娣樺疂"));
+ sub5.add(new GoodsClass(2L, "浜笢"));
+ sub5.add(new GoodsClass(3L, "鎷煎澶�"));
+ menu5.setListSub(sub5);
+
+ GoodsClass menu6 = new GoodsClass(6L, "瀛﹂櫌");
+ menu6.setListSub(new ArrayList<GoodsClass>());
+
+ List<GoodsClass> list = new ArrayList<GoodsClass>();
+
+ Map<Long, GoodsClass> map = getAllDynamicClass();
+
+ if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
+ // 2.0.7杩斿洖鍙戝湀+娲诲姩+瀛﹂櫌+绱犳潗
+ list.add(map.get(TYPE_FAQUAN));
+ 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));
+ list.add(map.get(TYPE_HUODONG));
+ list.add(map.get(TYPE_TUIJIAN));
+ // list.add(map.get(TYPE_XUEYUAN));
+ list.add(map.get(TYPE_YAOQING));
+ } else if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
+ // 2.0.5杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+閭�璇�
+ list.add(map.get(TYPE_REXIAO));
+ list.add(map.get(TYPE_HUODONG));
+ list.add(map.get(TYPE_TUIJIAN));
+ list.add(map.get(TYPE_YAOQING));
+ } else {
+ // 2.0.5浠ュ墠鐨勭増鏈繑鍥炵儹閿�+娲诲姩+鎺ㄨ崘+濂藉簵+閭�璇�
+ list.add(map.get(TYPE_REXIAO));
+ list.add(map.get(TYPE_HUODONG));
+ list.add(map.get(TYPE_TUIJIAN));
+ list.add(map.get(TYPE_HAODIAN));
+ list.add(map.get(TYPE_YAOQING));
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("list", JsonUtil.getApiCommonGson().toJson(list));
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 鍔ㄦ�佸晢鍝佸垪琛�
+ *
+ * @param acceptData
+ * @param page
+ * @param cid
+ * @param subId
+ * @param out
+ */
+ @RequestMapping(value = "getList", method = RequestMethod.POST)
+ public void getList(AcceptData acceptData, Integer page, Long cid, Long subId, PrintWriter out) {
+ if (cid == null) {
+ out.print(JsonUtil.loadFalseResult("涓诲垎绫籭d涓嶈兘涓虹┖"));
+ return;
+ }
+
+ if (cid != null) {
+ if (cid == 5) { // 娲诲姩涓婚
+ getSpecialList(acceptData, page, subId, out);
+ return;
+ } else if (cid == 6) { // 瀛﹂櫌
+ getArticleList(acceptData, page, null, false, out);
+ return;
+ }
+ }
+
+ long count = 0;
+
+ int platform = 1;
+ if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
+ platform = 2;
+ }
+
+ int version = Integer.parseInt(acceptData.getVersion());
+ List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE,
+ Constant.PAGE_SIZE, cid, subId);
+ if (list == null) {
+ list = new ArrayList<DynamicInfo>();
+ } else {
+ count = dynamicInfoService.count(cid, subId);
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("count", count);
+ data.put("list", getGson().toJson(list));
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 娲诲姩鍒楄〃
+ *
+ * @param acceptData
+ * @param out
+ */
+ private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) {
+ if (subId == null) {
+ out.print(JsonUtil.loadFalseResult("鍒嗙被id涓嶈兘涓虹┖"));
+ return;
+ }
+
+ // 骞冲彴鍖哄垎
+ int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
+ List<String> listKey = new ArrayList<String>();
+
+ if (subId == 1) { // 娣樺疂
+ listKey.add("special_channel_tb");
+ } else if (subId == 2) { // 浜笢
+ listKey.add("special_channel_jd");
+ } else if (subId == 3) { // 鎷煎澶�
+ listKey.add("special_channel_pdd");
+ } else { // 鍏ㄩ儴
+ listKey.add("special_channel_tb");
+ listKey.add("special_channel_jd");
+ listKey.add("special_channel_pdd");
+ }
+
+ List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
+ listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
+
+ long time = System.currentTimeMillis();
+
+ // 鍒犻櫎灏氭湭鍚敤鐨勮繃鏈熺殑
+ 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)
+ 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);
+ }
+ }
+ }
+
+ long count = specialService.countByPlaceKeyList(listKey, platformCode,
+ Integer.parseInt(acceptData.getVersion()));
+
+ GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+ Gson gson = gsonBuilder.create();
+ JSONObject data = new JSONObject();
+ data.put("count", count);
+ data.put("list", gson.toJson(list));
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 鏃堕棿澶勭悊
+ *
+ * @return
+ */
+ private Gson getGson() {
+ GsonBuilder gb = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
+ gb.excludeFieldsWithoutExposeAnnotation();
+ gb.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 = gb.create();
+ return gson;
+ }
+
+ /**
+ * 娲诲姩鍒楄〃
+ *
+ * @param acceptData
+ * @param out
+ */
+ private void getArticleList(AcceptData acceptData, Integer page, String key, boolean search, PrintWriter out) {
+ List<ArticleVO> list = articleOfficialService.queryValid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
+ key);
+ if (list != null) {
+ for (ArticleVO article : list) {
+ String tags = article.getTags();
+ if (StringUtil.isNullOrEmpty(tags)) {
+ continue;
+ }
+
+ String[] arrayTags = tags.split("\\s+");
+ if (arrayTags == null || arrayTags.length == 0) {
+ continue;
+ }
+
+ String[] arrayTagsColour = null;
+ String tagsColour = article.getTagsColour();
+ if (!StringUtil.isNullOrEmpty(tagsColour)) {
+ arrayTagsColour = tagsColour.split("\\s+");
+ }
+
+ String color = "#FE0014";
+ List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
+ for (int i = 0; i < arrayTags.length; i++) {
+ String tag = arrayTags[i];
+ if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) {
+ color = arrayTagsColour[i];
+ }
+ ClientTextStyleVO styleVO = new ClientTextStyleVO();
+ styleVO.setColor(color);
+ styleVO.setContent(tag);
+ labels.add(styleVO);
+ }
+ article.setLabels(labels);
+ }
+ }
+
+ GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+ Gson gson = gsonBuilder.create();
+
+ JSONObject data = new JSONObject();
+ if (page == 1 && !search) {
+ List<SwiperPicture> 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",
+ acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
+ if (listSpecial == null)
+ listSpecial = new ArrayList<>();
+
+ for (Special special : listSpecial) {
+ boolean needLogin = special.isJumpLogin();
+ JumpDetailV2 jumpDetail = special.getJumpDetail();
+ if (jumpDetail != null) {
+ jumpDetail.setNeedLogin(needLogin);
+ special.setJumpDetail(jumpDetail);
+ }
+ }
+ data.put("specials", gson.toJson(listSpecial));
+ }
+ data.put("count", articleOfficialService.countValid(key));
+ data.put("list", gson.toJson(list));
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 鏂囩珷鎼滅储
+ *
+ * @param acceptData
+ * @param page
+ * @param key
+ * @param out
+ */
+ @RequestMapping(value = "readArticle", method = RequestMethod.POST)
+ public void readArticle(AcceptData acceptData, String id, PrintWriter out) {
+ if (StringUtil.isNullOrEmpty(id)) {
+ out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+ return;
+ }
+ articleOfficialService.updateReadNum(id);
+ out.print(JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
+ }
+
+ /**
+ * 鏂囩珷鎼滅储
+ *
+ * @param acceptData
+ * @param page
+ * @param key
+ * @param out
+ */
+ @RequestMapping(value = "searchArticle", method = RequestMethod.POST)
+ public void searchArticle(AcceptData acceptData, Integer page, String key, PrintWriter out) {
+ getArticleList(acceptData, page, key, true, out);
+ }
+
+ /**
+ * 鏂囩珷鎼滅储
+ *
+ * @param acceptData
+ * @param page
+ * @param key
+ * @param out
+ */
+ @RequestMapping(value = "getArticleHot", method = RequestMethod.POST)
+ public void getArticleHot(AcceptData acceptData, PrintWriter out) {
+ JSONObject data = new JSONObject();
+ data.put("words", configService.get(ConfigKeyEnum.articleHotWords.getKey()));
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 2.0.7鐗堟湰鍚庤皟鐢� 鍔ㄦ�佸垪琛紙閫傜敤浜庡彂鍦堜笌绱犳潗锛�
+ *
+ * @param acceptData
+ * @param page
+ * @param cid
+ * @param subId
+ * @param out
+ */
+ @RequestMapping(value = "getDynamicList", method = RequestMethod.POST)
+ public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) {
+
+ try {
+ 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(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(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);
+ }
+
+ 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);
+ }
+
+ }
+
+ /**
+ *
+ * @param acceptData
+ * @param uid
+ * @param id
+ * @param type
+ * 1-鏀惧ぇ 2-淇濆瓨 3-鍒嗕韩
+ * @param goodsId
+ * @param goodsType
+ * @param out
+ */
+ @RequestMapping(value = "evaluateShare", method = RequestMethod.POST)
+ public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType,
+ PrintWriter out) {
+ try {
+ 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());
+ }
+ }
+ } 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());
+ }
+ }
+ }
+ }
+
+ Integer shareCount = goodsEvaluate.getShareNum();
+ if (shareCount == null) {
+ shareCount = 0;
+ }
+
+ if (type == 3) {
+ shareCount++;
+ goodsEvaluateService.addShareNum(id);
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() { // 娣诲姞姣忔棩缁熻
+ // TODO
+ // dailyCountMomentsService.addShareClick();
+ }
+ });
+ }
+
+ 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;
+ }
+ }
+
+ private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode,
+ String mainPic) {
+ String jumpLink = null;
+ if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
+ TaoBaoLink taoBaoLink = null;
+ try {
+ taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(user.getId(), goodsVO.getGoodsId(), relationId);
+ } catch (ShareGoodsException e) {
+ e.printStackTrace();
+ }
+ 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) {
+ return null;
+ }
+
+ String couponUrl = null;
+ JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+ if (couponInfo != null) {
+ couponUrl = couponInfo.getLink();
+ }
+ String materialId = "https://item.jd.com/" + goodsVO.getGoodsId() + ".html";
+ jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
+ user.getId() + "");
+ } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
+ jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "",
+ user.getId() + "");
+ }
+
+ FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode,
+ mainPic, goodsVO);
+ if (uploadResult != null) {
+ return uploadResult.getUrl();
+ }
+ return null;
+ }
+
+ /**
+ * 璇勮澶嶅埗
+ *
+ * @param acceptData
+ * @param id
+ * @param cid
+ * 璇勮id
+ * @param out
+ */
+ @RequestMapping(value = "evaluateComment", method = RequestMethod.POST)
+ public void evaluateComment(AcceptData acceptData, Long uid, String id, String cid, PrintWriter out) {
+ if (StringUtil.isNullOrEmpty(id)) {
+ out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+ 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 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;
+ }
+ }
+ }
+
+ 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", newText);
+ out.print(JsonUtil.loadTrueResult(data));
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() { // 娣诲姞姣忔棩缁熻
+ // TODO
+ // dailyCountMomentsService.addCopyComment();
+ }
+ });
+ }
+
+}
--
Gitblit v1.8.0