| | |
| | | package com.yeshi.fanli.controller.client.v2; |
| | | |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.PrintWriter; |
| | | import java.lang.reflect.Type; |
| | | import java.math.BigDecimal; |
| | | import java.net.MalformedURLException; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.UUID; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.apache.commons.beanutils.PropertyUtils; |
| | | import org.springframework.core.task.TaskExecutor; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.yeshi.utils.HttpUtil; |
| | | import org.yeshi.utils.JsonUtil; |
| | | import org.yeshi.utils.QRCodeUtil; |
| | | import org.yeshi.utils.entity.FileUploadResult; |
| | | import org.yeshi.utils.tencentcloud.COSManager; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | |
| | | 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.CommonShareInfo; |
| | | import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo.CommonShareInfoEnum; |
| | | import com.yeshi.fanli.entity.bus.homemodule.Special; |
| | | import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel; |
| | | import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; |
| | |
| | | import com.yeshi.fanli.entity.jd.JDGoods; |
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoLink; |
| | | import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException; |
| | | import com.yeshi.fanli.exception.share.ShareGoodsException; |
| | | import com.yeshi.fanli.log.LogHelper; |
| | | import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; |
| | | import com.yeshi.fanli.service.inter.config.ConfigService; |
| | | import com.yeshi.fanli.service.inter.count.DailyCountMomentsService; |
| | | import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService; |
| | | import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService; |
| | | import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; |
| | | import com.yeshi.fanli.service.inter.goods.ShareGoodsService; |
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; |
| | | import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService; |
| | | import com.yeshi.fanli.service.inter.homemodule.SpecialService; |
| | | import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; |
| | | import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; |
| | |
| | | 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; |
| | | import com.yeshi.fanli.vo.goods.GoodsDetailVO; |
| | | import com.yeshi.fanli.vo.homemodule.BannerVO; |
| | | import com.yeshi.fanli.vo.homemodule.SpecialVO; |
| | | import com.yeshi.fanli.vo.msg.ClientTextStyleVO; |
| | | |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | |
| | | /** |
| | |
| | | |
| | | @Resource |
| | | private ConvertLinkManager convertLinkManager; |
| | | |
| | | @Resource |
| | | private ShareGoodsService shareGoodsService; |
| | | |
| | | @Resource |
| | | private DailyCountMomentsService dailyCountMomentsService; |
| | | |
| | | @Resource |
| | | private CommonShareInfoService commonShareInfoService; |
| | | |
| | | @Resource(name = "taskExecutor") |
| | | private TaskExecutor executor; |
| | | |
| | | private final static long TYPE_REXIAO = 1;// 热销 |
| | | private final static long TYPE_TUIJIAN = 2;// 推荐 |
| | |
| | | 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)); |
| | |
| | | listKey.add("special_channel_pdd"); |
| | | } |
| | | |
| | | List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, |
| | | listKey, platformCode, Integer.parseInt(acceptData.getVersion())); |
| | | List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, |
| | | Constant.PAGE_SIZE, listKey, platformCode, Integer.parseInt(acceptData.getVersion())); |
| | | |
| | | long time = System.currentTimeMillis(); |
| | | |
| | |
| | | for (int i = 0; i < list.size(); i++) { |
| | | Special special = list.get(i); |
| | | if (special.getState() == 1L) { |
| | | list.remove(i--); |
| | | } else { |
| | | if (special.getStartTime() != null && special.getEndTime() != null) |
| | | continue; |
| | | } |
| | | |
| | | // 是否活动已过期 |
| | | if (special.getStartTime() != null && special.getEndTime() != null) { |
| | | if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) { |
| | | continue; |
| | | } else { |
| | | special.setTimeTask(true); |
| | | else |
| | | special.setTimeTask(false); |
| | | |
| | | if (special.isTimeTask()) { |
| | | if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) { |
| | | list.remove(i--); |
| | | } else// 设置倒计时 |
| | | { |
| | | special.setCountDownTime((special.getEndTime().getTime() - time) / 1000); |
| | | } |
| | | } |
| | | |
| | | List<SpecialLabel> listLabels = special.getListLabels(); |
| | | if (listLabels != null && !listLabels.isEmpty()) { |
| | | List<ClientTextStyleVO> labels = new ArrayList<>(); |
| | | for (SpecialLabel specialLabel : listLabels) { |
| | | labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor())); |
| | | } |
| | | special.setLabels(labels); |
| | | special.setCountDownTime((special.getEndTime().getTime() - time) / 1000); |
| | | } |
| | | } |
| | | |
| | | // 设置标签 |
| | | List<SpecialLabel> listLabels = special.getListLabels(); |
| | | if (listLabels != null && !listLabels.isEmpty()) { |
| | | List<ClientTextStyleVO> labels = new ArrayList<>(); |
| | | for (SpecialLabel specialLabel : listLabels) { |
| | | labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor())); |
| | | } |
| | | special.setLabels(labels); |
| | | } |
| | | |
| | | } |
| | | |
| | | long count = specialService.countByPlaceKeyList(listKey, platformCode, |
| | |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | if (page == 1 && !search) { |
| | | List<SwiperPicture> banners = swiperPictureService.getByBannerCardAndVersion("article_banners", |
| | | List<BannerVO> banners = swiperPictureService.getByBannerCardAndVersion("article_banners", |
| | | acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion())); |
| | | if (banners == null) |
| | | banners = new ArrayList<>(); |
| | | data.put("banners", gson.toJson(banners)); |
| | | |
| | | List<Special> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials", |
| | | List<SpecialVO> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials", |
| | | acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion())); |
| | | if (listSpecial == null) |
| | | listSpecial = new ArrayList<>(); |
| | | |
| | | for (Special special : listSpecial) { |
| | | for (SpecialVO special : listSpecial) { |
| | | boolean needLogin = special.isJumpLogin(); |
| | | JumpDetailV2 jumpDetail = special.getJumpDetail(); |
| | | if (jumpDetail != null) { |
| | |
| | | */ |
| | | @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){ |
| | | if (cid == TYPE_FAQUAN) { |
| | | type = 1; |
| | | } else if (cid == TYPE_SUCAI) { |
| | | type = 2; |
| | | } |
| | | List<GoodsEvaluate> listNew = new ArrayList<GoodsEvaluate>(); |
| | | |
| | | List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, |
| | | Constant.PAGE_SIZE, type); |
| | | if (list == null) { |
| | | list = new ArrayList<>(); |
| | | |
| | | if (!VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | listNew.addAll(list); |
| | | } else if (list.size() > 0) { // 活动图片不允许跳转 |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | if (goodsEvaluate.getType() != EvaluateEnum.activity) { |
| | | listNew.add(goodsEvaluate); |
| | | continue; |
| | | } |
| | | |
| | | GoodsEvaluate evaluateNew = new GoodsEvaluate(); |
| | | try { |
| | | PropertyUtils.copyProperties(evaluateNew, goodsEvaluate); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | continue; |
| | | } |
| | | // 跳转过渡页 |
| | | // String jumpLink = |
| | | // configService.get(ConfigKeyEnum.activityDetailLink.getKey()) |
| | | // + "?type=%s&id=%s"; |
| | | // jumpLink = String.format(jumpLink, "circle", |
| | | // evaluateNew.getId()); |
| | | // evaluateNew.setJumpLink(jumpLink); |
| | | |
| | | // 图片数量 |
| | | if (evaluateNew.getImgList() != null && evaluateNew.getImgList().size() > 0) { |
| | | int size = evaluateNew.getImgList().size(); |
| | | List<ImgInfo> listInfoNew = new ArrayList<ImgInfo>(); |
| | | |
| | | for (ImgInfo imgInfo : goodsEvaluate.getImgList()) { |
| | | if (imgInfo.getType() != ImgEnum.activity) { |
| | | listInfoNew.add(imgInfo); |
| | | continue; |
| | | } |
| | | ImgInfo infoNew = new ImgInfo(); |
| | | try { |
| | | PropertyUtils.copyProperties(infoNew, imgInfo); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | continue; |
| | | } |
| | | infoNew.setType(ImgEnum.img); |
| | | // 图片大于一张时 显示九宫格图 |
| | | if (size > 1) { |
| | | infoNew.setW(1); |
| | | infoNew.setH(1); |
| | | } |
| | | listInfoNew.add(infoNew); |
| | | } |
| | | evaluateNew.setImgList(listInfoNew); |
| | | } |
| | | listNew.add(evaluateNew); |
| | | } |
| | | } |
| | | |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); |
| | | gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() { |
| | | @Override |
| | |
| | | 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>() { |
| | |
| | | Gson gson = gsonBuilder.create(); |
| | | long count = goodsEvaluateService.countValidMaterials(type); |
| | | |
| | | JSONArray jsonArray = new JSONArray(); |
| | | |
| | | String listStr = gson.toJson(listNew); |
| | | JSONArray array = JSONArray.fromObject(listStr); |
| | | for (int i = 0; i < array.size(); i++) { |
| | | Object object = array.get(i); |
| | | JSONObject json = JSONObject.fromObject(object); |
| | | Object shareNum = json.get("shareNum"); |
| | | if (shareNum != null) { |
| | | int num = Integer.parseInt(shareNum.toString()); |
| | | |
| | | if (num >= 100000000) { |
| | | double sales = num; |
| | | String salesCountMidea = String.format("%.1f", sales / 100000000); |
| | | json.put("shareNum", salesCountMidea + "亿"); |
| | | } else if (num >= 10000) { |
| | | double sales = num; |
| | | String salesCountMidea = String.format("%.1f", sales / 10000); |
| | | json.put("shareNum", salesCountMidea + "万"); |
| | | } |
| | | } |
| | | jsonArray.add(json); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", count); |
| | | data.put("list", gson.toJson(list)); |
| | | data.put("list", jsonArray); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | out.print(JsonUtil.loadFalseResult(1, "查询信息失败")); |
| | | LogHelper.errorDetailInfo(e); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | @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; |
| | | } |
| | | |
| | | 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()); |
| | | } |
| | | try { |
| | | if (uid == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | } else { |
| | | // 单品 |
| | | if (goodsEvaluate.getType() == EvaluateEnum.single) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); |
| | | if (goodsVO == null) { |
| | | list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD()); |
| | | continue; |
| | | } |
| | | |
| | | String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | } |
| | | if (StringUtil.isNullOrEmpty(id) || type == null) { |
| | | out.print(JsonUtil.loadFalseResult("传递参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | } 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); |
| | | 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); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (type == 1 && (goodsId == null || goodsType == null)) { |
| | | out.print(JsonUtil.loadFalseResult("商品参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | } else if (goodsEvaluate.getType() == EvaluateEnum.activity) { |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | 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)); |
| | | } |
| | | |
| | | @Resource |
| | | private ShareGoodsService shareGoodsService; |
| | | |
| | | private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, 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) { |
| | | TaoBaoLink taoBaoLink = null; |
| | |
| | | } catch (ShareGoodsException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | jumpLink = configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()).replace("[淘口令]", |
| | | taoBaoLink.getTaoToken()); |
| | | 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) { |
| | |
| | | } |
| | | |
| | | FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode, |
| | | goodsVO); |
| | | mainPic, goodsVO); |
| | | if (uploadResult != null) { |
| | | return uploadResult.getUrl(); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 评论复制 |
| | | * 评论复制-H5 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | |
| | | } |
| | | |
| | | String text = ""; |
| | | CommentInfo comment = null; |
| | | List<CommentInfo> comments = goodsEvaluate.getComments(); |
| | | if (comments != null) { |
| | | for (CommentInfo commentInfo : comments) { |
| | | if (cid.equals(commentInfo.getId())) { |
| | | text = commentInfo.getContent(); |
| | | comment = commentInfo; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | try { |
| | | text = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | String newText = text; // 非通用券需要验证 |
| | | if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 替换价格 |
| | | if (goodsEvaluate.getType() == EvaluateEnum.single) { |
| | | GoodsDetailVO goods = goodsEvaluate.getGoods(); |
| | | newText = newText.replace("[原价]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + ""); |
| | | if (!goods.isHasCoupon()) { |
| | | newText = newText.replace("领券抢购", "抢购"); |
| | | newText = newText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | newText = newText.replace("[券后价]", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + ""); |
| | | } |
| | | newText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", text); |
| | | data.put("text", newText); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { // 添加每日统计 |
| | | dailyCountMomentsService.addCopyComment(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 评论复制-专题 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "copySpecialComment", method = RequestMethod.POST) |
| | | public void copySpecialComment(AcceptData acceptData, Long uid, Long id, PrintWriter out) { |
| | | if (uid == null || id == null) { |
| | | out.print(JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name()); |
| | | if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { |
| | | out.print(JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | 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 = shareInfo.getComment(); |
| | | String newText = text; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | @RequestMapping(value = "getActivityDetail") |
| | | public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id, |
| | | PrintWriter out) { |
| | | if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | String title = ""; |
| | | String comment = ""; |
| | | String params = ""; |
| | | String desc = ""; |
| | | Date startTime = null; |
| | | Date endTime = null; |
| | | JumpDetailV2 jumpDetail = null; |
| | | List<String> imgs = new ArrayList<>(); |
| | | if ("circle".equalsIgnoreCase(type)) { // 发圈活动 |
| | | GoodsEvaluate evaluate = goodsEvaluateService.getById(id); |
| | | if (evaluate == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该活动已下架")); |
| | | return; |
| | | } |
| | | |
| | | title = evaluate.getTitle(); |
| | | List<CommentInfo> comments = evaluate.getComments(); |
| | | if (comments != null && comments.size() > 0) { |
| | | comment = comments.get(0).getContent(); |
| | | } |
| | | |
| | | String jumpLink = null; |
| | | if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) { |
| | | jumpLink = evaluate.getJumpLink(); |
| | | } |
| | | |
| | | List<ImgInfo> imgList = evaluate.getImgList(); |
| | | if (imgList != null && imgList.size() > 0) { |
| | | for (ImgInfo imgInfo : imgList) { |
| | | if (!StringUtil.isNullOrEmpty(imgInfo.getUrl()) |
| | | && (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity)) { |
| | | imgs.add(imgInfo.getUrl()); |
| | | } |
| | | |
| | | if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity) { |
| | | if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { |
| | | jumpLink = imgInfo.getActivityUrl(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); |
| | | jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode, |
| | | Integer.parseInt(acceptData.getVersion())); |
| | | JSONObject inner = new JSONObject(); |
| | | inner.put("url", jumpLink); |
| | | params = inner.toString(); |
| | | } else { |
| | | long pid = Long.parseLong(id); |
| | | if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) { |
| | | Special special = specialService.selectByPrimaryKey(pid); |
| | | if (special == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该活动已下架")); |
| | | return; |
| | | } |
| | | |
| | | params = special.getParams(); |
| | | jumpDetail = special.getJumpDetail(); |
| | | if (!StringUtil.isNullOrEmpty(special.getPicture())) { |
| | | imgs.add(special.getPicture()); |
| | | } |
| | | title=special.getName(); |
| | | desc = special.getRemark(); |
| | | startTime = special.getStartTime(); |
| | | endTime = special.getEndTime(); |
| | | } else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) { |
| | | SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid); |
| | | if (swiper == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该活动已下架")); |
| | | return; |
| | | } |
| | | params = swiper.getParams(); |
| | | jumpDetail = swiper.getJumpDetail(); |
| | | if (!StringUtil.isNullOrEmpty(swiper.getSrc())) { |
| | | imgs.add(swiper.getSrc()); |
| | | } |
| | | title=swiper.getTitle(); |
| | | desc = swiper.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) |
| | | comment = comment.replace(st, ""); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("title", title); |
| | | data.put("desc", desc); |
| | | data.put("comment", comment); |
| | | data.put("params", params); |
| | | data.put("jumpDetail", jumpDetail); |
| | | data.put("imgs", imgs); |
| | | if (startTime != null) { |
| | | data.put("startTime", TimeUtil.getGernalTime(startTime.getTime(), "yyyy.MM.dd")); |
| | | } |
| | | |
| | | if (endTime != null) { |
| | | data.put("endTime", TimeUtil.getGernalTime(endTime.getTime(), "yyyy.MM.dd")); |
| | | } |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * 评论复制-专题 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "copyShareComment") |
| | | public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, String type, |
| | | PrintWriter out) { |
| | | if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if ("circle".equalsIgnoreCase(type)) { // 发圈活动 |
| | | copyActivityComment(callback, acceptData, uid, id, out); |
| | | return; |
| | | } |
| | | |
| | | long pid = Long.parseLong(id); |
| | | CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); |
| | | if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | JsonUtil.printMode(out, callback, |
| | | JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | String text = shareInfo.getComment(); |
| | | String newText = text; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * 活动分享绘图 |
| | | * @Title: createActivityShareImg |
| | | * @Description: |
| | | * @param title |
| | | * @param desc |
| | | * @param imgUrl |
| | | * @param erCodeContent |
| | | * @return |
| | | * String 返回类型 |
| | | * @throws |
| | | */ |
| | | private String createActivityShareImg(String type, String id, String erCodeContent) { |
| | | |
| | | String title = ""; |
| | | String desc = ""; |
| | | String img = ""; |
| | | if ("circle".equalsIgnoreCase(type)) { |
| | | |
| | | } else if ("banner".equalsIgnoreCase(type)) { |
| | | SwiperPicture picture = swiperPictureService.selectByPrimaryKey(Long.parseLong(id)); |
| | | title = picture.getTitle(); |
| | | desc = picture.getDesc(); |
| | | img = picture.getSrc(); |
| | | } else if ("special".equalsIgnoreCase(type)) { |
| | | Special special = specialService.selectByPrimaryKey(Long.parseLong(id)); |
| | | title = special.getName(); |
| | | desc = special.getRemark(); |
| | | img = special.getPicture(); |
| | | } |
| | | |
| | | try { |
| | | InputStream erCodeInputStream = null; |
| | | erCodeInputStream = QRCodeUtil.getInstance(250).encode(erCodeContent); |
| | | int[] size = new int[2]; |
| | | try { |
| | | size = ImageUtil.getImgWidthAndHeight(img); |
| | | } catch (MalformedURLException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | InputStream resultInputStream = ImageUtil.drawActivityShareImg(HttpUtil.getAsInputStream(img), |
| | | (float) size[0] / size[1], title, desc, erCodeInputStream); |
| | | if (resultInputStream != null) { |
| | | String filePath = FilePathEnum.activityShare.getPath() + UUID.randomUUID().toString().replace("-", "") |
| | | + ".png"; |
| | | FileUploadResult result = COSManager.getInstance().uploadFile(resultInputStream, filePath); |
| | | if (result != null) |
| | | return result.getUrl(); |
| | | } |
| | | } catch (Exception e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 评论复制-专题 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getActivityShareImg") |
| | | public void getActivityShareImg(String callback, AcceptData acceptData, Long uid, String id, String type, |
| | | PrintWriter out) { |
| | | if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if ("circle".equalsIgnoreCase(type)) { // 发圈活动 |
| | | // copyActivityComment(callback, acceptData, uid, id, out); |
| | | // TODO 分享发圈的图 |
| | | return; |
| | | } |
| | | |
| | | long pid = Long.parseLong(id); |
| | | CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); |
| | | if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | JsonUtil.printMode(out, callback, |
| | | JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | String text = shareInfo.getComment(); |
| | | String newText = text; |
| | | String imgUrl = null; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | String erCodeContent = ""; |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | // 获取口令 |
| | | List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText); |
| | | if (tokenList != null && tokenList.size() > 0) { |
| | | // 构造分享链接 |
| | | erCodeContent = ShareControllerV2.getTaoBaoActiivtyERCodeContentNew( |
| | | configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), tokenList.get(0)); |
| | | } else { |
| | | // 获取链接 |
| | | List<String> urlList = JDUtil.getJDShortLinksFromText(newText); |
| | | if (urlList != null && urlList.size() > 0) { |
| | | erCodeContent = urlList.get(0); |
| | | } else { |
| | | urlList = PinDuoDuoUtil.getPDDShortLinksFromText(newText); |
| | | if (urlList != null && urlList.size() > 0) { |
| | | erCodeContent = urlList.get(0); |
| | | } |
| | | } |
| | | } |
| | | |
| | | imgUrl = createActivityShareImg(type, id, erCodeContent); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(imgUrl)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("分享图生成失败")); |
| | | } else { |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | data.put("img", imgUrl); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 评论复制 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(id)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("id不能为空")); |
| | | return; |
| | | } |
| | | |
| | | GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); |
| | | if (goodsEvaluate == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | JsonUtil.printMode(out, callback, |
| | | JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | String text = ""; |
| | | CommentInfo comment = null; |
| | | List<CommentInfo> comments = goodsEvaluate.getComments(); |
| | | if (comments != null && comments.size() > 0) { |
| | | CommentInfo info = comments.get(0); |
| | | text = info.getContent(); |
| | | comment = info; |
| | | } |
| | | |
| | | String newText = text; // 非通用券需要验证 |
| | | if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { // 添加每日统计 |
| | | dailyCountMomentsService.addCopyComment(); |
| | | } |
| | | }); |
| | | } |
| | | } |