yujian
2020-03-24 f15acf7f2d57db3a32c574b0dfc21f564dca6024
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -70,10 +70,8 @@
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.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.CouponInfoVO;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
@@ -329,21 +327,29 @@
      }
      // 编辑图片
      List<String> listpic = null;
      List<String> listpic = new ArrayList<>();
      if (!StringUtil.isNullOrEmpty(picUrls)) {
         String[] pics = picUrls.split(",");
         if (pics != null) {
            listpic = new ArrayList<>();
            for (int i = 0; i < pics.length; i++) {
               String picLink = pics[i];
               if (fileRequest != null) {
                  MultipartFile file = fileRequest.getFile("file" + i);
                  if (file != null) {
                     picLink = uploadPicture(file);
                  }
               }
               if (picLink.startsWith("http")) {
                  listpic.add(picLink);
               }
            }
         }
      }
      // 上传文件替换
      if (fileRequest != null) {
         for (int i = 0; i < 9; i++) {
            MultipartFile file = fileRequest.getFile("file" + i);
            if (file != null) {
               String picLink = uploadPicture(file);
               if (i < listpic.size()) {
                  listpic.set(i, picLink);
               } else {
                  listpic.add(picLink);
               }
            }
@@ -490,9 +496,15 @@
            String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl,
                  JDApiUtil.POSITION_SHARE + "", "1");
            String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
            if (jumpLink == null) {
               throw new GoodsEvaluateException(1, "该商品转链失败");
            }
            commentText = template.replace("[链接]", jumpLink);
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
            if (jumpLink == null) {
               throw new GoodsEvaluateException(1, "该商品转链失败");
            }
            String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
            commentText = template.replace("[链接]", jumpLink);
         }
@@ -1244,47 +1256,48 @@
         listImg.add(imgActivity);
      }
      int totalImg = 0;
      // 编辑图片
      List<String> listpic = new ArrayList<>();
      if (!StringUtil.isNullOrEmpty(picUrls)) {
         String[] pics = picUrls.split(",");
         if (pics != null) {
            for (int i = 0; i < pics.length; i++) {
               String picLink = pics[i];
               if (fileRequest != null) {
                  MultipartFile file = fileRequest.getFile("file" + i);
                  if (file != null) {
                     picLink = uploadPicture(file);
                     ImgInfo imgInfo0 = new ImgInfo();
                     imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
                     imgInfo0.setLarge(false);
                     imgInfo0.setPid(pid);
                     imgInfo0.setUrl(picLink);
                     imgInfo0.setUrlHD(picLink);
                     imgInfo0.setType(ImgEnum.img);
                     imgInfo0.setW(1);
                     imgInfo0.setH(1);
                     listImg.add(imgInfo0);
                     totalImg++;
                     continue;
                  }
               }
               if (picLink.startsWith("http")) {
                  if (listOldImgInfo != null) {
                     for (ImgInfo imgInfo : listOldImgInfo) {
                        String url = imgInfo.getUrl();
                        if (picLink.equals(url)) {
                           listImg.add(imgInfo);
                           totalImg++;
                           break;
                        }
                     }
                  }
                  listpic.add(picLink);
               }
            }
         }
      }
      // 上传文件替换
      if (fileRequest != null) {
         for (int i = 0; i < 9; i++) {
            MultipartFile file = fileRequest.getFile("file" + i);
            if (file != null) {
               String picLink = uploadPicture(file);
               if (i < listpic.size()) {
                  listpic.set(i, picLink);
               } else {
                  listpic.add(picLink);
               }
            }
         }
      }
      int totalImg = 0;
      for (String pic : listpic) {
         ImgInfo imgInfo0 = new ImgInfo();
         imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
         imgInfo0.setLarge(false);
         imgInfo0.setPid(pid);
         imgInfo0.setUrl(pic);
         imgInfo0.setUrlHD(pic);
         imgInfo0.setType(ImgEnum.img);
         imgInfo0.setW(1);
         imgInfo0.setH(1);
         listImg.add(imgInfo0);
         totalImg++;
      }
      if (listOld != null && listOld.size() > 0) {
@@ -1517,7 +1530,11 @@
      executor.execute(new Runnable() {
         @Override
         public void run() {
            // 更新信息
            updateGoodInfo(list);
            // 删除已过期
            removeOverdue();
         }
      });
@@ -1664,6 +1681,9 @@
         @Override
         public void run() {
            updateGoodInfo(listOBJ);
            // 删除已过期
            removeOverdue();
         }
      });
@@ -2286,13 +2306,8 @@
      for (GoodsEvaluate goodsEvaluate: listExist) {
         GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
         if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null 
            && goodsDetailVO.getGoodsId() == goodsId && goodsDetailVO.getGoodsType() == goodsType ) {
            if (goodsDetailVO.getTitle().equalsIgnoreCase(goodsNew.getTitle())) {
               goodsEvaluate.setGoods(goodsNew);
            } else {
               goodsEvaluate.setState(1);
               goodsEvaluate.setRemarks("商品标题发生变化下架:" + goodsDetailVO.getTitle() +" / 新:" + goodsNew.getTitle());
            }
            && goodsDetailVO.getGoodsId() == goodsId && goodsDetailVO.getGoodsType() == goodsType) {
            goodsEvaluate.setGoods(goodsNew);
         }
         
         // 更新商品信息
@@ -2308,26 +2323,19 @@
               continue;
            }
            GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
            if (goodsVO != null) {
               if (goodsVO.getTitle().equalsIgnoreCase(goodsNew.getTitle())) {
                  simpleGoods.setState(0);
               } else {
                  simpleGoods.setState(1);
                  simpleGoods.setRemarks("商品标题发生变化下架:" + goodsVO.getTitle() +" / 新:" + goodsNew.getTitle());
               }
            }
            
            simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
            CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
            simpleGoods.setState(0);
            simpleGoods.setPrice(goodsNew.getCouponPrice());
            CouponInfoVO couponInfo = goodsNew.getCouponInfo();
            if (couponInfo == null) {
               simpleGoods.setPrice(goodsDetailVO.getZkPrice());
               simpleGoods.setPrice(goodsNew.getZkPrice());
            } else {
               simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
               simpleGoods.setPrice(goodsNew.getCouponPrice());
               simpleGoods.setAmount(couponInfo.getAmount());
            }
            imgInfo.setGoods(simpleGoods);
            imgInfo.setGoodsVO(goodsDetailVO);
            imgInfo.setGoodsVO(goodsNew);
         }
         
         goodsEvaluate.setImgList(imgList);
@@ -2336,5 +2344,24 @@
      }
   }
   
   private void removeOverdue() {
      List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue();
      if (list == null || list.size() == 0) {
         return;
      }
      long nm = 1000 * 60;// 一分钟的毫秒数
      long nh = 1000 * 60 * 60;// 一小时的毫秒数
      long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
      long time = java.lang.System.currentTimeMillis();
      for (GoodsEvaluate goodsEvaluate: list) {
         long diff = time - goodsEvaluate.getEndTime().getTime();
         long min = diff % nd % nh / nm;
         // 过期超过10分钟就删除
         if (min > 10) {
            goodsEvaluateDao.remove(goodsEvaluate);
         }
      }
   }
}