From b7a90c576ac6b482c68ad6d0c2777831f9127b4a Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期二, 19 五月 2020 16:48:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 299 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 239 insertions(+), 60 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 e9613d9..3d456e3 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,14 +1,18 @@ package com.yeshi.fanli.controller.client.v2; +import java.io.IOException; +import java.io.InputStream; import java.io.PrintWriter; import java.lang.reflect.Type; import java.math.BigDecimal; +import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import javax.annotation.Resource; @@ -17,8 +21,11 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.yeshi.utils.HttpUtil; import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.QRCodeUtil; import org.yeshi.utils.entity.FileUploadResult; +import org.yeshi.utils.tencentcloud.COSManager; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -67,13 +74,17 @@ 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.FilePathEnum; +import com.yeshi.fanli.util.ImageUtil; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; +import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.vo.dynamic.ArticleVO; @@ -144,11 +155,9 @@ @Resource private DailyCountMomentsService dailyCountMomentsService; - + @Resource private CommonShareInfoService commonShareInfoService; - - @Resource(name = "taskExecutor") private TaskExecutor executor; @@ -267,7 +276,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)); + 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)); @@ -371,8 +380,8 @@ listKey.add("special_channel_pdd"); } - List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, - listKey, platformCode, Integer.parseInt(acceptData.getVersion())); + List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, + Constant.PAGE_SIZE, listKey, platformCode, Integer.parseInt(acceptData.getVersion())); long time = System.currentTimeMillis(); @@ -382,7 +391,7 @@ if (special.getState() == 1L) { continue; } - + // 鏄惁娲诲姩宸茶繃鏈� if (special.getStartTime() != null && special.getEndTime() != null) { if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) { @@ -392,9 +401,7 @@ special.setCountDownTime((special.getEndTime().getTime() - time) / 1000); } } - - - + // 璁剧疆鏍囩 List<SpecialLabel> listLabels = special.getListLabels(); if (listLabels != null && !listLabels.isEmpty()) { @@ -404,7 +411,7 @@ } special.setLabels(labels); } - + } long count = specialService.countByPlaceKeyList(listKey, platformCode, @@ -644,9 +651,12 @@ continue; } // 璺宠浆杩囨浮椤� - //String jumpLink = configService.get(ConfigKeyEnum.activityDetailLink.getKey()) + "?type=%s&id=%s"; - //jumpLink = String.format(jumpLink, "circle", evaluateNew.getId()); - //evaluateNew.setJumpLink(jumpLink); + // String jumpLink = + // configService.get(ConfigKeyEnum.activityDetailLink.getKey()) + // + "?type=%s&id=%s"; + // jumpLink = String.format(jumpLink, "circle", + // evaluateNew.getId()); + // evaluateNew.setJumpLink(jumpLink); // 鍥剧墖鏁伴噺 if (evaluateNew.getImgList() != null && evaluateNew.getImgList().size() > 0) { @@ -1009,8 +1019,6 @@ return null; } - - /** * 璇勮澶嶅埗-H5 * @@ -1108,10 +1116,7 @@ } }); } - - - - + /** * 璇勮澶嶅埗-涓撻 * @@ -1127,7 +1132,7 @@ } CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name()); - if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { + if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�")); return; } @@ -1155,7 +1160,7 @@ } String text = shareInfo.getComment(); - String newText = text; + String newText = text; if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { try { newText = convertLinkManager.convertLinkFromText(text, uid, true); @@ -1175,13 +1180,10 @@ data.put("text", newText); out.print(JsonUtil.loadTrueResult(data)); } - - - - @RequestMapping(value = "getActivityDetail") - public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id, PrintWriter out) { + public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id, + PrintWriter out) { if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖")); return; @@ -1190,6 +1192,9 @@ String title = ""; String comment = ""; String params = ""; + String desc = ""; + Date startTime = null; + Date endTime = null; JumpDetailV2 jumpDetail = null; List<String> imgs = new ArrayList<>(); if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩 @@ -1204,7 +1209,7 @@ if (comments != null && comments.size() > 0) { comment = comments.get(0).getContent(); } - + String jumpLink = null; if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) { jumpLink = evaluate.getJumpLink(); @@ -1213,25 +1218,26 @@ List<ImgInfo> imgList = evaluate.getImgList(); if (imgList != null && imgList.size() > 0) { for (ImgInfo imgInfo : imgList) { - if (!StringUtil.isNullOrEmpty(imgInfo.getUrl()) + if (!StringUtil.isNullOrEmpty(imgInfo.getUrl()) && (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity)) { imgs.add(imgInfo.getUrl()); } - + if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity) { if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { - jumpLink = imgInfo.getActivityUrl(); + jumpLink = imgInfo.getActivityUrl(); } } } } - + int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); - jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode, Integer.parseInt(acceptData.getVersion())); + jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode, + Integer.parseInt(acceptData.getVersion())); JSONObject inner = new JSONObject(); inner.put("url", jumpLink); params = inner.toString(); - } else { + } else { long pid = Long.parseLong(id); if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) { Special special = specialService.selectByPrimaryKey(pid); @@ -1239,12 +1245,15 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦")); return; } - + params = special.getParams(); jumpDetail = special.getJumpDetail(); if (!StringUtil.isNullOrEmpty(special.getPicture())) { imgs.add(special.getPicture()); } + desc = special.getRemark(); + startTime = special.getStartTime(); + endTime = special.getEndTime(); } else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) { SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid); if (swiper == null) { @@ -1256,13 +1265,16 @@ if (!StringUtil.isNullOrEmpty(swiper.getSrc())) { imgs.add(swiper.getSrc()); } + desc = swiper.getRemark(); + startTime = swiper.getStartTime(); + endTime = swiper.getEndTime(); } CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); if (shareInfo != null && !StringUtil.isNullOrEmpty(shareInfo.getComment())) { comment = shareInfo.getComment(); } } - + if (!StringUtil.isNullOrEmpty(comment)) { // 鏇挎崲娣樺疂瀹樻柟娲诲姩 List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(comment); for (String st : activityIdList) @@ -1271,15 +1283,22 @@ JSONObject data = new JSONObject(); data.put("title", title); + data.put("desc", desc); data.put("comment", comment); data.put("params", params); data.put("jumpDetail", jumpDetail); data.put("imgs", imgs); + if (startTime != null) { + data.put("startTime", TimeUtil.getGernalTime(startTime.getTime(), "yyyy.MM.dd")); + } + + if (endTime != null) { + data.put("endTime", TimeUtil.getGernalTime(endTime.getTime(), "yyyy.MM.dd")); + } + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } - - /** * 璇勮澶嶅埗-涓撻 * @@ -1288,18 +1307,18 @@ * @param out */ @RequestMapping(value = "copyShareComment") - public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, - String type, PrintWriter out) { + public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, String type, + PrintWriter out) { if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖")); return; } - + if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩 copyActivityComment(callback, acceptData, uid, id, out); return; } - + long pid = Long.parseLong(id); CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { @@ -1314,7 +1333,8 @@ } if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + JsonUtil.printMode(out, callback, + JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } @@ -1330,18 +1350,18 @@ } String text = shareInfo.getComment(); - String newText = text; + String newText = text; if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { try { newText = convertLinkManager.convertLinkFromText(text, uid, true); } catch (ConvertLinkExceptionException e) { if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } } catch (Exception e) { LogHelper.errorDetailInfo(e); - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } } @@ -1350,34 +1370,102 @@ data.put("text", newText); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } - + /** - * 璇勮澶嶅埗 + * 娲诲姩鍒嗕韩缁樺浘 + * @Title: createActivityShareImg + * @Description: + * @param title + * @param desc + * @param imgUrl + * @param erCodeContent + * @return + * String 杩斿洖绫诲瀷 + * @throws + */ + private String createActivityShareImg(String type, String id, String erCodeContent) { + + String title = ""; + String desc = ""; + String img = ""; + if ("circle".equalsIgnoreCase(type)) { + + } else if ("banner".equalsIgnoreCase(type)) { + SwiperPicture picture = swiperPictureService.selectByPrimaryKey(Long.parseLong(id)); + title = picture.getTitle(); + desc = picture.getDesc(); + img = picture.getSrc(); + } else if ("special".equalsIgnoreCase(type)) { + Special special = specialService.selectByPrimaryKey(Long.parseLong(id)); + title = special.getName(); + desc = special.getRemark(); + img = special.getPicture(); + } + + try { + InputStream erCodeInputStream = null; + erCodeInputStream = QRCodeUtil.getInstance(250).encode(erCodeContent); + int[] size = new int[2]; + try { + size = ImageUtil.getImgWidthAndHeight(img); + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + InputStream resultInputStream = ImageUtil.drawActivityShareImg(HttpUtil.getAsInputStream(img), + (float) size[0] / size[1], title, desc, erCodeInputStream); + if (resultInputStream != null) { + String filePath = FilePathEnum.activityShare.getPath() + UUID.randomUUID().toString().replace("-", "") + + ".png"; + FileUploadResult result = COSManager.getInstance().uploadFile(resultInputStream, filePath); + if (result != null) + return result.getUrl(); + } + } catch (Exception e1) { + e1.printStackTrace(); + } + + return null; + } + + /** + * 璇勮澶嶅埗-涓撻 * * @param acceptData * @param id * @param out */ - private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) { - if (StringUtil.isNullOrEmpty(id)) { - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("id涓嶈兘涓虹┖")); + @RequestMapping(value = "getActivityShareImg") + public void getActivityShareImg(String callback, AcceptData acceptData, Long uid, String id, String type, + PrintWriter out) { + if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖")); return; } - GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); - if (goodsEvaluate == null) { - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�")); + if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩 + // copyActivityComment(callback, acceptData, uid, id, out); + // TODO 鍒嗕韩鍙戝湀鐨勫浘 + return; + } + + long pid = Long.parseLong(id); + CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); + if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user == null) { - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + JsonUtil.printMode(out, callback, + JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } @@ -1388,7 +1476,98 @@ relationId = taoBaoInfo.getRelationId(); if (StringUtil.isNullOrEmpty(relationId)) { - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); + return; + } + + String text = shareInfo.getComment(); + String newText = text; + String imgUrl = null; + if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { + try { + String erCodeContent = ""; + newText = convertLinkManager.convertLinkFromText(text, uid, true); + // 鑾峰彇鍙d护 + List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText); + if (tokenList != null && tokenList.size() > 0) { + // 鏋勯�犲垎浜摼鎺� + erCodeContent = ShareControllerV2.getTaoBaoActiivtyERCodeContentNew( + configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), tokenList.get(0)); + } else { + // 鑾峰彇閾炬帴 + List<String> urlList = JDUtil.getJDShortLinksFromText(newText); + if (urlList != null && urlList.size() > 0) { + erCodeContent = urlList.get(0); + } else { + urlList = PinDuoDuoUtil.getPDDShortLinksFromText(newText); + if (urlList != null && urlList.size() > 0) { + erCodeContent = urlList.get(0); + } + } + } + + imgUrl = createActivityShareImg(type, id, erCodeContent); + } catch (ConvertLinkExceptionException e) { + if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); + return; + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); + return; + } + } + + if (StringUtil.isNullOrEmpty(imgUrl)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�")); + } else { + JSONObject data = new JSONObject(); + data.put("text", newText); + data.put("img", imgUrl); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } + } + + /** + * 璇勮澶嶅埗 + * + * @param acceptData + * @param id + * @param out + */ + private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) { + if (StringUtil.isNullOrEmpty(id)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("id涓嶈兘涓虹┖")); + return; + } + + GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); + if (goodsEvaluate == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�")); + return; + } + + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + if (user == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (user != null && user.getState() != UserInfo.STATE_NORMAL) { + JsonUtil.printMode(out, callback, + JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + return; + } + + UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); + String relationId = null; + if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null + && taoBaoInfo.getRelationValid() == true) + relationId = taoBaoInfo.getRelationId(); + + if (StringUtil.isNullOrEmpty(relationId)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿")); return; } @@ -1407,18 +1586,18 @@ newText = convertLinkManager.convertLinkFromText(text, uid, true); } catch (ConvertLinkExceptionException e) { if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } } catch (Exception e) { LogHelper.errorDetailInfo(e); - JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } } JSONObject data = new JSONObject(); data.put("text", newText); - JsonUtil.printMode(out, callback,JsonUtil.loadTrueResult(data)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); executor.execute(new Runnable() { @Override -- Gitblit v1.8.0