From ddf5db7d31af51fcf697eac0cee7dd46ff73bcc1 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期二, 18 二月 2020 12:50:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 783 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 770 insertions(+), 13 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 7689c23..c1d14e7 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 @@ -2,6 +2,7 @@ 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; @@ -12,7 +13,9 @@ 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.entity.FileUploadResult; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -20,13 +23,50 @@ 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.activity.ActivityUser; +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.CommentInfo.CommentInfoEnum; import com.yeshi.fanli.entity.dynamic.DynamicInfo; +import com.yeshi.fanli.entity.dynamic.GoodsEvaluate; +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.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.TaoBaoGoodsBriefService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; +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.UserInfoService; +import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.util.AESUtil; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.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.vo.dynamic.ArticleVO; +import com.yeshi.fanli.vo.goods.GoodsDetailVO; +import com.yeshi.fanli.vo.msg.ClientTextStyleVO; import net.sf.json.JSONObject; @@ -52,9 +92,125 @@ @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 UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + @Resource + private JDGoodsCacheUtil jdGoodsCacheUtil; + + @Resource + private QrCodeService qrCodeService; + + /** + * 鏌ヨ椤堕儴鍒嗙被 + * + * @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 @@ -68,15 +224,26 @@ 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); + 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 { @@ -89,10 +256,84 @@ 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() { @@ -104,18 +345,18 @@ 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);//鑾峰彇骞翠腑绗嚑澶� + 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);//鑾峰彇骞翠腑绗嚑澶� - + 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) { @@ -123,9 +364,9 @@ long cha = now - old; if (cha < 1000 * 60 * 2L) { desc = "鍒氬垰"; - }else if (cha < 1000 * 60 * 60L) { + } else if (cha < 1000 * 60 * 60L) { desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�"; - }else { + } else { desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�"; } } else if (d2 - d1 == 1) { @@ -155,4 +396,520 @@ 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)); + } + //鍙戝湀娴嬭瘯 + @RequestMapping(value = "evaluate", method = RequestMethod.POST) + public void evaluate(AcceptData acceptData, PrintWriter out) { + out.print(configService.get("test")); + } + + /** + * 鍙戝湀鍒楄〃 + * + * @param acceptData + * @param page + * @param out + */ + @RequestMapping(value = "evaluate", method = RequestMethod.POST) + public void evaluate(AcceptData acceptData, Integer page, PrintWriter out) { + long cid = 1; + long subId = 1; + List<DynamicInfo> listd = dynamicInfoService.queryV2(2, 74, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, + cid, subId); + 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(); + user.setTag("鐑х儰杈句汉"); + goodsEvaluate.setUser(user); + goodsEvaluate.setTitle(info.getTitle().get(0).getContent()); + goodsEvaluate.setShareNum(info.getShareCount()); + goodsEvaluate.setPublishTime(info.getCreateTime()); + goodsEvaluate.setLineNum(2); + List<GoodsPicture> imgs = info.getImgs(); + + List<ImgInfo> imgList = new ArrayList<>(); + int i = 0; + for (GoodsPicture goodsPicture : imgs) { + ImgInfo imgInfo = new ImgInfo(); + GoodsDetailVO goodsVO = goodsPicture.getGoodsVO(); + imgInfo.setH(100); + imgInfo.setW(100); + if (goodsVO != null) { + imgInfo.setType(ImgEnum.goods); + + SimpleGoods simpleGoods = new SimpleGoods(); + simpleGoods.setPrice(goodsVO.getZkPrice()); + simpleGoods.setAmount(new BigDecimal(115)); + simpleGoods.setGoodsId(goodsVO.getGoodsId()); + simpleGoods.setGoodsType(1); + simpleGoods.setState(1); + imgInfo.setGoods(simpleGoods); + + goodsEvaluate.setGoods(goodsVO); + } else { + imgInfo.setType(ImgEnum.img); + } + + imgInfo.setLarge(false); + imgInfo.setUrl(goodsPicture.getUrl()); + imgInfo.setUrlHD(goodsPicture.getUrl()); + +// if (i == 0) { +// imgInfo.setUrl(goodsPicture.getUrl()); +// imgInfo.setType(ImgEnum.video); +// imgInfo.setLarge(true); +// imgInfo.setVideoUrl( +// "http://pgcvideo.cdn.xiaodutv.com/754825344_367171606_2020010816001720200108174342.mp4?Cache-Control=max-age%3D8640000&responseExpires=Fri%2C+17+Apr+2020+18%3A11%3A55+GMT&xcode=0b0f3962eddaf66837d4af61a22c57bae3a5055540c75232&time=1579077845&_=1578992502888"); +// } else { +// imgInfo.setType(ImgEnum.img); +// imgInfo.setLarge(true); +// imgInfo.setUrl(goodsPicture.getUrl()); +// } +// i++; + + imgList.add(imgInfo); + } + + goodsEvaluate.setImgList(imgList); + + CommentInfo commentInfo = new CommentInfo(); + commentInfo.setId(info.getId() + "09"); + commentInfo.setContent("馃槅7.9鍏凁焿�1鍙効绔ョ墮鍒�!!瀹夊Ξ璐濇媺鍗¢�氱増鍎跨鐗欌瓡PBT鏉愯川锛屾瘺鍒风粏鑵绘煍猸曞瑙傚崱閫氫汉鐗╅�犲瀷璁捐"); + commentInfo.setType(CommentInfoEnum.goodsCoupon); + +// ClientTextStyleVO text1 = new ClientTextStyleVO(); +// text1.setContent("鐚秴"); +// text1.setColor("#1D9B31"); +// +// ClientTextStyleVO text2 = new ClientTextStyleVO(); +// text2.setContent("婊�150鍑�15"); +// text2.setColor("#E5005C"); +// List<ClientTextStyleVO> tagList = new ArrayList<>(); +// tagList.add(text1); +// tagList.add(text2); +// commentInfo.setTagList(tagList); +// commentInfo.setTagDesc("闄ょ敓椴滃強閮ㄥ垎閰掓按闄ょ敓椴滃強闄ょ敓椴滃強"); + + CommentInfo commentInfo2 = new CommentInfo(); + commentInfo2.setContent("馃槅7.9鍏凁焿�1鍙効绔ョ墮鍒�!!瀹夊Ξ璐濇媺鍗¢�氱増鍎跨鐗欌瓡PBT鏉愯川锛屾瘺鍒风粏鑵绘煍猸曞瑙傚崱閫氫汉鐗╅�犲瀷璁捐"); + commentInfo2.setType(CommentInfoEnum.goodsCoupon); + + ClientTextStyleVO text1 = new ClientTextStyleVO(); + text1.setContent("鐚秴"); + text1.setColor("#1D9B31"); + + ClientTextStyleVO text2 = new ClientTextStyleVO(); + text2.setContent("婊�150鍑�15"); + text2.setColor("#E5005C"); + List<ClientTextStyleVO> tagList = new ArrayList<>(); + tagList.add(text1); + tagList.add(text2); + commentInfo2.setTagList(tagList); + commentInfo2.setTagDesc("闄ょ敓椴滃強閮ㄥ垎閰掓按闄ょ敓椴滃強闄ょ敓椴滃強"); + commentInfo.setTagUrl("http://www.baidu.com"); + + List<CommentInfo> commentList = new ArrayList<>(); + commentList.add(commentInfo); + commentList.add(commentInfo2); + + goodsEvaluate.setComments(commentList); + list.add(goodsEvaluate); + } + +// List<GoodsEvaluate> list = goodsEvaluateService.queryValidEvaluateCache((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE); +// 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()); + } + } + }).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(""); + } + }); + Gson gson = gsonBuilder.create(); + long count = dynamicInfoService.count(cid, subId); // goodsEvaluateService.countValid() + + JSONObject data = new JSONObject(); + data.put("count", count); + data.put("list", gson.toJson(list)); + out.print(JsonUtil.loadTrueResult(data)); + } + + @RequestMapping(value = "evaluateShare", method = RequestMethod.POST) + public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (StringUtil.isNullOrEmpty(id) || type == null) { + out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�")); + return; + } + + if (type == 1 && (goodsId == null || goodsType == null)) { + out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖")); + return; + } + + DynamicInfo dynamicInfo = dynamicInfoService.getById(id); + if (dynamicInfo == 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; + } + + List<GoodsPicture> imgs = dynamicInfo.getImgs(); + if (imgs == null) { + out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�")); + return; + } + + int total = 0; + for (GoodsPicture goodsPicture : imgs) { + GoodsDetailVO goodsVO = goodsPicture.getGoodsVO(); + if (goodsVO != null) { + total ++; + } + } + + List<String> list = new ArrayList<>(); + for (GoodsPicture goodsPicture : imgs) { + GoodsDetailVO goodsVO = goodsPicture.getGoodsVO(); + if (goodsVO == null && total <= 1) { + list.add(goodsPicture.getUrl()); + continue; + } + + if (type == 1) { + if (goodsVO.getGoodsId().longValue() == goodsId.longValue() && goodsVO.getGoodsType() == goodsType.intValue()) { + String jumpLink = getJumpLink(goodsVO, user); + if (!StringUtil.isNullOrEmpty(jumpLink)) { + list.add(jumpLink); + } + } + } else { + String jumpLink = getJumpLink(goodsVO, user); + 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); + out.print(JsonUtil.loadTrueResult(data)); + } + + private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user) { + 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; + } + } 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.drawGoodsPoster(jumpLink, user.getPortrait(), 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; + } + + DynamicInfo dynamicInfo = dynamicInfoService.getById(id); + if (dynamicInfo == 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; + } + + JSONObject data = new JSONObject(); + data.put("text", "瀹夊Ξ璐濇媺鍗¢�氱増鍎挎媺鍗¢�氱増鎷夊崱閫氱増鎷夊崱閫氱増鎷夊崱閫氱増鎷夊崱閫氱増鎷夊崱閫氱増鎷夊崱閫氱増"); + out.print(JsonUtil.loadTrueResult(data)); + } } -- Gitblit v1.8.0