yj
2020-03-06 207dc8655711cddac2653e18b51e58a88dba2084
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -33,7 +33,6 @@
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.GoodsEvaluate.EvaluateEnum;
@@ -41,7 +40,9 @@
import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
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;
@@ -67,10 +68,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;
/**
@@ -123,9 +126,12 @@
   @Resource
   private QrCodeService qrCodeService;
   @Resource
   private ConvertLinkManager convertLinkManager;
   @Resource
   private ShareGoodsService shareGoodsService;
   private final static long TYPE_REXIAO = 1;// 热销
   private final static long TYPE_TUIJIAN = 2;// 推荐
@@ -590,9 +596,10 @@
    */
   @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;
@@ -603,7 +610,7 @@
         if (list == null) {
            list = new ArrayList<>();
         }
         GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
         gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
            @Override
@@ -670,15 +677,40 @@
         Gson gson = gsonBuilder.create();
         long count = goodsEvaluateService.countValidMaterials(type);
         JSONArray jsonArray = new JSONArray();
         String listStr = gson.toJson(list);
         JSONArray array = JSONArray.fromObject(listStr);
         for (int i = 0; i < array.size(); i++) {
            Object object = array.get(i);
            JSONObject json = JSONObject.fromObject(object);
            Object shareNum = json.get("shareNum");
            if (shareNum != null) {
               int num = Integer.parseInt(shareNum.toString());
               if (num >= 100000000) {
                  double sales = num;
                  String salesCountMidea = String.format("%.1f", sales / 100000000);
                  json.put("shareNum", salesCountMidea + "亿");
               } else if (num >= 10000) {
                  double sales = num;
                  String salesCountMidea = String.format("%.1f", sales / 10000);
                  json.put("shareNum", salesCountMidea + "万");
               }
            }
            jsonArray.add(json);
         }
         JSONObject data = new JSONObject();
         data.put("count", count);
         data.put("list", 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);
      }
   }
   /**
@@ -695,115 +727,65 @@
   @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;
@@ -814,45 +796,102 @@
                     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);
                  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);
                           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);
                        }
                     }
                  }
               }
            } 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());
                     }
               }
            }
         }
      }
      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("该信息已下架"));
         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 jumpLink = null;
      if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
         TaoBaoLink taoBaoLink=null;
         TaoBaoLink taoBaoLink = null;
         try {
            taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(user.getId(), goodsVO.getGoodsId(), relationId);
         } catch (ShareGoodsException e) {
            e.printStackTrace();
         }
         jumpLink =configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()).replace("[淘口令]", taoBaoLink.getTaoToken());
         jumpLink = ShareControllerV2.getERCodeContentNew(
               configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()), taoBaoLink.getGoods(),
               TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
      } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
         JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId());
         if (jdGoods == null) {
@@ -933,19 +972,24 @@
            }
         }
      }
      String newText =  text;
      try {
         text=convertLinkManager.convertLinkFromText(text, uid, true);
         newText = convertLinkManager.convertLinkFromText(text, uid, true);
      } catch (ConvertLinkExceptionException e) {
         if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
            out.print(JsonUtil.loadFalseResult("评论生成失败"));
            return;
         }
      } catch (Exception e) {
         e.printStackTrace();
         out.print(JsonUtil.loadFalseResult("转链失败"));
         out.print(JsonUtil.loadFalseResult("评论生成失败"));
         return;
      }
      JSONObject data = new JSONObject();
      data.put("text", text);
      data.put("text", newText);
      out.print(JsonUtil.loadTrueResult(data));
   }
}
}