From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 06 五月 2020 12:02:09 +0800 Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 905 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 460 insertions(+), 445 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 d234050..93c7820 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 @@ -6,14 +6,16 @@ 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.HttpUtil; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.entity.FileUploadResult; @@ -25,7 +27,6 @@ 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; @@ -34,20 +35,24 @@ 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.GoodsEvaluate.EvaluateEnum; 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.SpecialService; import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; @@ -56,8 +61,9 @@ 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.util.AESUtil; +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; @@ -65,10 +71,12 @@ import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.vo.dynamic.ArticleVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import com.yeshi.fanli.vo.msg.ClientTextStyleVO; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** @@ -122,6 +130,76 @@ @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; + } + /** * 鏌ヨ椤堕儴鍒嗙被 * @@ -131,33 +209,12 @@ * @param out */ @RequestMapping(value = "getClass", method = RequestMethod.POST) - public void getClass(AcceptData acceptData, Integer cid, PrintWriter out) { + public void getClass(AcceptData acceptData, Long 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; - } + Map<Long, GoodsClass> map = getAllDynamicClass(); JSONObject data = new JSONObject(); - data.put("list", JsonUtil.getApiCommonGson().toJson(list)); + data.put("list", JsonUtil.getApiCommonGson().toJson(map.get(cid).getListSub())); out.print(JsonUtil.loadTrueResult(data)); return; } @@ -191,20 +248,36 @@ 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); - } + Map<Long, GoodsClass> map = getAllDynamicClass(); - // 2.0.6鐗堟湰澧炲姞 瀛﹂櫌鏍忕洰 - if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) { - // list.add(menu6); + 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)); } - list.add(menu4); JSONObject data = new JSONObject(); data.put("list", JsonUtil.getApiCommonGson().toJson(list)); @@ -298,12 +371,7 @@ 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 (special.getStartTime() != null && special.getEndTime() != null) { if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) { list.remove(i--); } else// 璁剧疆鍊掕鏃� @@ -521,435 +589,340 @@ } /** - * 鍙戝湀鍒楄〃 + * 2.0.7鐗堟湰鍚庤皟鐢� 鍔ㄦ�佸垪琛紙閫傜敤浜庡彂鍦堜笌绱犳潗锛� * * @param acceptData * @param page + * @param cid + * @param subId * @param out */ - @RequestMapping(value = "evaluate2", method = RequestMethod.POST) - public void evaluate2(AcceptData acceptData, Integer page,Integer type, PrintWriter out) { - if(type == null) { - type = 1; - } - 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()); - } + @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; } - }).registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() { - @Override - public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(""); - } else { - return new JsonPrimitive(value.getVlaue()); - } + + List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, + Constant.PAGE_SIZE, type); + if (list == null) { + list = new ArrayList<>(); } - }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { - @Override - public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { - String desc = ""; - if (value != null) { - // 鍒ゆ柇鏄惁鏄悓涓�澶� - Calendar calendar = Calendar.getInstance(); - calendar.setTime(value); - int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤 - int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶� - - Date nowDate = new Date(); - Calendar calendar2 = Calendar.getInstance(); - calendar2.setTime(nowDate); - int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤 - int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶� - - long old = value.getTime(); - long now = nowDate.getTime(); - if (y1 == y2) { - if (d1 == d2) { - long cha = now - old; - if (cha < 1000 * 60 * 2L) { - desc = "鍒氬垰"; - } else if (cha < 1000 * 60 * 60L) { - desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�"; - } else { - desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�"; - } - } else if (d2 - d1 == 1) { - desc = "鏄ㄥぉ"; - } else { - desc = (d2 - d1) + "澶╁墠"; - } + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() { + @Override + public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); } else { - int timeDistance = 0; - for (int i = y1; i < y2; i++) { - if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { - timeDistance += 366; // 闂板勾 + return new JsonPrimitive(value.getVlaue()); + } + } + }).registerTypeAdapter(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 { - timeDistance += 365; // 涓嶆槸闂板勾 + desc = (d2 - d1) + "澶╁墠"; } + } else { + int timeDistance = 0; + for (int i = y1; i < y2; i++) { + if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { + timeDistance += 366; // 闂板勾 + } else { + timeDistance += 365; // 涓嶆槸闂板勾 + } + } + desc = timeDistance + (d2 - d1) + "澶╁墠"; } - desc = timeDistance + (d2 - d1) + "澶╁墠"; + + return new JsonPrimitive(desc); } - return new JsonPrimitive(desc); + return new JsonPrimitive(""); } + }); + Gson gson = gsonBuilder.create(); + long count = goodsEvaluateService.countValidMaterials(type); - return new JsonPrimitive(""); + JSONArray jsonArray = new JSONArray(); + + String listStr = gson.toJson(list); + JSONArray array = JSONArray.fromObject(listStr); + for (int i = 0; i < array.size(); i++) { + Object object = array.get(i); + JSONObject json = JSONObject.fromObject(object); + Object shareNum = json.get("shareNum"); + if (shareNum != null) { + int num = Integer.parseInt(shareNum.toString()); + + if (num >= 100000000) { + double sales = num; + String salesCountMidea = String.format("%.1f", sales / 100000000); + json.put("shareNum", salesCountMidea + "浜�"); + } else if (num >= 10000) { + double sales = num; + String salesCountMidea = String.format("%.1f", sales / 10000); + json.put("shareNum", salesCountMidea + "涓�"); + } + } + jsonArray.add(json); } - }); - Gson gson = gsonBuilder.create(); - long count = goodsEvaluateService.countValidMaterials(type); - - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("list", gson.toJson(list)); - out.print(JsonUtil.loadTrueResult(data)); + + JSONObject data = new JSONObject(); + data.put("count", count); + data.put("list", jsonArray); + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + e.printStackTrace(); + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ淇℃伅澶辫触")); + LogHelper.errorDetailInfo(e); + } + } - - + /** - * 鍙戝湀鍒楄〃 * * @param acceptData - * @param page + * @param uid + * @param id + * @param type + * 1-鏀惧ぇ 2-淇濆瓨 3-鍒嗕韩 + * @param goodsId + * @param goodsType * @param out */ - @RequestMapping(value = "evaluate", method = RequestMethod.POST) - public void evaluate(AcceptData acceptData, Integer page, Integer type, 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; - } - - 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; - } - - int total = 0; - for (ImgInfo imgInfo : imgs) { - SimpleGoods goods = imgInfo.getGoods(); - if (goods != null) { - total ++; + 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; } - } - List<String> list = new ArrayList<>(); - for (ImgInfo imgInfo : imgs) { - GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); - if (goodsVO == null && total <= 1) { - list.add(imgInfo.getUrl()); - continue; + if (StringUtil.isNullOrEmpty(id) || type == null) { + out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�")); + return; } - - - if (type == 1) { - if (goodsVO.getGoodsId().longValue() == goodsId.longValue() && goodsVO.getGoodsType() == goodsType.intValue()) { - String jumpLink = getJumpLink(goodsVO, user, inviteCode); - if (!StringUtil.isNullOrEmpty(jumpLink)) { - list.add(jumpLink); - } + + 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 { - String jumpLink = getJumpLink(goodsVO, user, inviteCode); - if (!StringUtil.isNullOrEmpty(jumpLink)) { - list.add(jumpLink); + // 鍗曞搧 + 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; - } + Integer shareCount = goodsEvaluate.getShareNum(); + if (shareCount == null) { + shareCount = 0; + } - if (type == 3) { - shareCount++; - goodsEvaluateService.addShareNum(id); - } + if (type == 3) { + shareCount++; + goodsEvaluateService.addShareNum(id); - if (list.size() == 0) { - out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦")); + executor.execute(new Runnable() { + @Override + public void run() { // 娣诲姞姣忔棩缁熻 + 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; } - - 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 = 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 ) { + if (jdGoods == null) { return null; } - + String couponUrl = null; JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); if (couponInfo != null) { @@ -959,23 +932,25 @@ 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() + ""); + jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "", + user.getId() + ""); } - - - FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode, goodsVO); + + 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 cid + * 璇勮id * @param out */ @RequestMapping(value = "evaluateComment", method = RequestMethod.POST) @@ -984,7 +959,7 @@ out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖")); return; } - + GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); if (goodsEvaluate == null) { out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�")); @@ -1001,7 +976,7 @@ 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 @@ -1012,19 +987,59 @@ out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); return; } - + String text = ""; + CommentInfo comment = null; List<CommentInfo> comments = goodsEvaluate.getComments(); if (comments != null) { - for (CommentInfo commentInfo: comments){ + 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", text); + data.put("text", newText); out.print(JsonUtil.loadTrueResult(data)); + + executor.execute(new Runnable() { + @Override + public void run() { // 娣诲姞姣忔棩缁熻 + dailyCountMomentsService.addCopyComment(); + } + }); } + } -- Gitblit v1.8.0