admin
2020-03-01 ec8a1c6f81b5747e9efce86faaba33d10df7f61d
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -2,18 +2,18 @@
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
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 +25,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;
@@ -37,17 +36,19 @@
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.share.ShareGoodsException;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.goods.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,7 +57,7 @@
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.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
@@ -122,6 +123,67 @@
   @Resource
   private QrCodeService qrCodeService;
   @Resource
   private ConvertLinkManager convertLinkManager;
   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 +193,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 +232,37 @@
      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));
@@ -521,18 +579,25 @@
   }
   /**
    * 发圈列表
    * 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) {
   @RequestMapping(value = "getDynamicList", method = RequestMethod.POST)
   public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) {
      int type = 1;
      if (cid == TYPE_FAQUAN) {
         type = 1;
      } else if (cid == TYPE_SUCAI) {
         type = 2;
      }
      List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, type);
      List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE,
            Constant.PAGE_SIZE, type);
      if (list == null) {
         list = new ArrayList<>();
      }
@@ -610,232 +675,37 @@
      });
      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));
   }
   /**
    * 发圈列表
    * 
    * @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) {
   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;
@@ -874,41 +744,76 @@
         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 ++;
         }
      }
      List<String> list = new ArrayList<>();
      for (ImgInfo imgInfo : imgs) {
         GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
         if (goodsVO == null && total <= 1) {
            list.add(imgInfo.getUrl());
            continue;
      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());
               }
         }
         if (type == 1) {
            if (goodsVO.getGoodsId().longValue() == goodsId.longValue() && goodsVO.getGoodsType() == goodsType.intValue()) {
               String jumpLink = getJumpLink(goodsVO, user, inviteCode);
      } 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);
               }
            }
         } else {
            String jumpLink = getJumpLink(goodsVO, user, 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());
                  }
            }
         }
      }
@@ -927,29 +832,34 @@
         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) {
   @Resource
   private ShareGoodsService shareGoodsService;
   private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode) {
      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 = configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()).replace("[淘口令]",
               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 +869,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,
            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 +896,7 @@
         out.print(JsonUtil.loadFalseResult("id不能为空"));
         return;
      }
      GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
      if (goodsEvaluate == null) {
         out.print(JsonUtil.loadFalseResult("该内容已不存在"));
@@ -1001,7 +913,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 +924,28 @@
         out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号"));
         return;
      }
      String text = "";
      List<CommentInfo> comments = goodsEvaluate.getComments();
      if (comments != null) {
         for (CommentInfo commentInfo: comments){
         for (CommentInfo commentInfo : comments) {
            if (cid.equals(commentInfo.getId())) {
               text = commentInfo.getContent();
            }
         }
      }
      try {
         text = convertLinkManager.convertLinkFromText(text, uid, true);
      } catch (Exception e) {
         e.printStackTrace();
         out.print(JsonUtil.loadFalseResult("评论生成失败"));
         return;
      }
      JSONObject data = new JSONObject();
      data.put("text", text);
      out.print(JsonUtil.loadTrueResult(data));
   }
}