From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 5037 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 2,650 insertions(+), 2,387 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
index f135d5e..b1d7ff1 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -1,38 +1,15 @@
 package com.yeshi.fanli.service.impl.dynamic;
 
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-import javax.imageio.ImageIO;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.yeshi.utils.DateUtil;
-import org.yeshi.utils.ImageCropUtil;
-import org.yeshi.utils.tencentcloud.COSManager;
-
+import com.yeshi.common.vo.ClientTextStyleVO;
 import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao;
-import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
 import com.yeshi.fanli.dto.jd.JDCouponInfo;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
 import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
 import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.SystemFunction;
+import com.yeshi.fanli.entity.SystemPIDInfo;
 import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser;
 import com.yeshi.fanli.entity.bus.activity.ActivityUser;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
@@ -45,13 +22,13 @@
 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.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
-import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
 import com.yeshi.fanli.exception.dynamic.ActivityUserException;
 import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
-import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
+import com.yeshi.fanli.exception.goods.ConvertLinkException;
+import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.lijin.manager.GoodsLijinMnager;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.activity.ActivityUserService;
 import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -59,2653 +36,2939 @@
 import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
 import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
+import com.yeshi.fanli.service.manger.PIDManager;
 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.FileUtil;
-import com.yeshi.fanli.util.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager;
+import com.yeshi.fanli.service.manger.goods.tb.DaTaoKeTipOffManager;
+import com.yeshi.fanli.util.*;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
+import com.yeshi.fanli.util.factory.CommonGoodsFactory;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.goods.douyin.vo.DYGoods;
+import com.yeshi.fanli.util.goods.douyin.vo.DYGoodsDetail;
 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.taobao.DaTaoKeTipOffUtil;
 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;
+import com.yeshi.goods.facade.dto.taobao.dataoke.DaTaoKeListTopOffDTO;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2;
+import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.yeshi.utils.DateUtil;
+import org.yeshi.utils.ImageCropUtil;
+import org.yeshi.utils.MoneyBigDecimalUtil;
+import org.yeshi.utils.TimeUtil;
+import org.yeshi.utils.tencentcloud.COSManager;
+
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @Service
 public class GoodsEvaluateServiceImpl implements GoodsEvaluateService {
 
-	@Resource
-	private GoodsEvaluateDao goodsEvaluateDao;
+    @Resource
+    private GoodsEvaluateDao goodsEvaluateDao;
 
-	@Resource
-	private ActivityUserService activityUserService;
+    @Resource
+    private ActivityUserService activityUserService;
 
-	@Resource
-	private RedisManager redisManager;
+    @Resource
+    private RedisManager redisManager;
 
-	@Resource
-	private HongBaoManageService hongBaoManageService;
+    @Resource
+    private HongBaoManageService hongBaoManageService;
 
-	@Resource
-	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+    @Resource
+    private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
-	@Resource(name = "taskExecutor")
-	private TaskExecutor executor;
+    @Resource(name = "taskExecutor")
+    private TaskExecutor executor;
 
-	@Resource
-	private JDGoodsCacheUtil jdGoodsCacheUtil;
+    @Resource
+    private JDGoodsCacheUtil jdGoodsCacheUtil;
 
-	@Resource
-	private PinDuoDuoCacheUtil pinDuoDuoCacheUtil;
+    @Resource
+    private PinDuoDuoCacheUtil pinDuoDuoCacheUtil;
 
-	@Resource
-	private ConfigService configService;
+    @Resource
+    private ConfigService configService;
 
-	@Resource
-	private ShareGoodsService shareGoodsService;
+    @Resource
+    private ShareGoodsService shareGoodsService;
 
-	@Resource
-	private ConvertLinkManager convertLinkManager;
+    @Resource
+    private TaoBaoLinkManager taoBaoLinkManager;
 
-	@Resource
-	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
+    @Resource
+    private ConvertLinkManager convertLinkManager;
 
-	@Override
-	public void switchState(String id) throws GoodsEvaluateException {
-		if (id == null) {
-			throw new GoodsEvaluateException(1, "璇蜂紶閫掓纭弬鏁�");
-		}
+    @Resource
+    private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
-		if (resultObj == null) {
-			throw new GoodsEvaluateException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�");
-		}
 
-		Integer state = resultObj.getState();
-		if (state == null || state == 0) {
-			state = 1;
-		} else {
-			state = 0;
-		}
-		goodsEvaluateDao.updateSatate(id, state);
-	}
+    @Resource
+    private PIDManager pidManager;
 
-	@Override
-	public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
-		Integer state = record.getState();
-		if (state == null) {
-			state = 0;
-		}
-		record.setState(state);
+    @Resource
+    private GoodsLijinMnager goodsLijinMnager;
 
-		String tilte = record.getTitle();
-		if (StringUtil.isNullOrEmpty(tilte)) {
-			throw new GoodsEvaluateException(1, "鎺ㄨ崘璇笉鑳戒负绌�");
-		}
+    @Override
+    public void switchState(String id) throws GoodsEvaluateException {
+        if (id == null) {
+            throw new GoodsEvaluateException(1, "璇蜂紶閫掓纭弬鏁�");
+        }
 
-		try {
-			ActivityUser activityUser = activityUserService.getActivityUserByNickName(record.getUser(), file);
-			if (activityUser == null)
-				throw new GoodsEvaluateException(1, "璇烽�夋嫨鍙戝竷鑰�");
-			record.setUser(activityUser);
-		} catch (ActivityUserException e) {
-			throw new GoodsEvaluateException(1, e.getMsg());
-		}
+        GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
+        if (resultObj == null) {
+            throw new GoodsEvaluateException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�");
+        }
 
-		if (record.getEndTime() != null) {
-			if (record.getStartTime() != null && record.getEndTime().getTime() <= record.getStartTime().getTime())
-				throw new GoodsEvaluateException(1, "鎴鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂�");
-		} else {
-			if (record.getStartTime() == null) {
-				record.setEndTime(DateUtil.plusDayDate(3, new Date()));
-			} else {
-				record.setEndTime(DateUtil.plusDayDate(3, record.getStartTime()));
-			}
-		}
+        Integer state = resultObj.getState();
+        if (state == null || state == 0) {
+            state = 1;
+        } else {
+            state = 0;
+        }
+        goodsEvaluateDao.updateSatate(id, state);
+    }
 
-		Integer dynamicType = record.getDynamicType();
-		if (dynamicType == null) {
-			record.setDynamicType(1);
-		}
+    @Override
+    public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
+        Integer state = record.getState();
+        if (state == null) {
+            state = 0;
+        }
+        record.setState(state);
 
-		if (record.getShareNum() == null || record.getShareNum() <= 0) {
-			record.setShareNum((int) (Math.random() * 5000) + 1000);
-		}
+        String tilte = record.getTitle();
+        if (StringUtil.isNullOrEmpty(tilte)) {
+            throw new GoodsEvaluateException(1, "鎺ㄨ崘璇笉鑳戒负绌�");
+        }
 
-		if (record.getWeight() == null)
-			record.setWeight(0.0);
+        try {
+            ActivityUser activityUser = activityUserService.getActivityUserByNickName(record.getUser(), file);
+            if (activityUser == null)
+                throw new GoodsEvaluateException(1, "璇烽�夋嫨鍙戝竷鑰�");
+            record.setUser(activityUser);
+        } catch (ActivityUserException e) {
+            throw new GoodsEvaluateException(1, e.getMsg());
+        }
 
-		if (record.getStartTime() == null)
-			record.setStartTime(new Date());
+        if (record.getEndTime() != null) {
+            if (record.getStartTime() != null && record.getEndTime().getTime() <= record.getStartTime().getTime())
+                throw new GoodsEvaluateException(1, "鎴鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂�");
+        } else {
+            if (record.getStartTime() == null) {
+                record.setEndTime(DateUtil.plusDayDate(3, new Date()));
+            } else {
+                record.setEndTime(DateUtil.plusDayDate(3, record.getStartTime()));
+            }
+        }
 
-		record.setPublishTime(record.getStartTime());
+        Integer dynamicType = record.getDynamicType();
+        if (dynamicType == null) {
+            record.setDynamicType(1);
+        }
 
-		String id = record.getId();
-		if (StringUtil.isNullOrEmpty(id)) {
-			id = UUID.randomUUID().toString().replace("-", "");
-			record.setId(id);
-			record.setShareNumReal(0);
-			record.setCreateTime(new Date());
-			record.setUpdateTime(new Date());
-			goodsEvaluateDao.save(record);
-		} else {
-			GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
-			if (resultObj == null)
-				throw new GoodsEvaluateException(1, "淇敼鍐呭宸蹭笉瀛樺湪");
+        if (record.getShareNum() == null || record.getShareNum() <= 0) {
+            record.setShareNum((int) (Math.random() * 5000) + 1000);
+        }
 
-			resultObj.setState(record.getState());
-			resultObj.setUser(record.getUser());
-			resultObj.setShareNum(record.getShareNum());
-			resultObj.setWeight(record.getWeight());
-			resultObj.setStartTime(record.getStartTime());
-			resultObj.setEndTime(record.getEndTime());
-			resultObj.setTitle(tilte);
-			resultObj.setUpdateTime(new Date());
-			goodsEvaluateDao.save(resultObj);
-		}
-		return id;
-	}
+        if (record.getWeight() == null)
+            record.setWeight(0.0);
 
-	/**
-	 * 涓婁紶鍥剧墖
-	 * 
-	 * @param file
-	 * @return
-	 * @throws Exception
-	 */
-	private String uploadPicture(MultipartFile file) throws Exception {
-		InputStream inputStream = file.getInputStream();
-		String contentType = file.getContentType();
-		String type = contentType.substring(contentType.indexOf("/") + 1);
-		String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."
-				+ type;
-		return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
-	}
+        if (record.getStartTime() == null)
+            record.setStartTime(new Date());
 
-	private ImgInfo uploadVideoPicture(MultipartFile filevideo) {
-		try {
-			File tempFile = new File(FileUtil.getCacheDir() + "/" + filevideo.getOriginalFilename());
-			if (tempFile.exists())
-				tempFile.delete();
-			tempFile.createNewFile();
-			filevideo.transferTo(tempFile);
-			File destFile = new File(FileUtil.getCacheDir() + "/temp_" + filevideo.getOriginalFilename());
-			// 瑁佸壀瑙嗛灏侀潰锛屽楂樻瘮涓�2:1
-			ImageCropUtil.centerCrop(tempFile, destFile, 2.0f);
-			BufferedImage sourceImg = ImageIO.read(new FileInputStream(destFile));
-			ImgInfo info = new ImgInfo();
-			int width = sourceImg.getWidth();
-			int height = sourceImg.getHeight();
-			String picLink = uploadPicture(destFile, filevideo.getContentType());
-			info.setH(height);
-			info.setW(width);
-			info.setUrl(picLink);
-			return info;
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
+        record.setPublishTime(record.getStartTime());
 
-	private ImgInfo uploadOriginalPicture(MultipartFile file) {
-		try {
-			InputStream inputStream = file.getInputStream();
-			String contentType = file.getContentType();
-			String type = contentType.substring(contentType.indexOf("/") + 1);
-			String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."
-					+ type;
+        String id = record.getId();
+        if (StringUtil.isNullOrEmpty(id)) {
+            id = UUID.randomUUID().toString().replace("-", "");
+            record.setId(id);
+            record.setShareNumReal(0);
+            record.setCreateTime(new Date());
+            record.setUpdateTime(new Date());
+            goodsEvaluateDao.save(record);
+        } else {
+            GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
+            if (resultObj == null)
+                throw new GoodsEvaluateException(1, "淇敼鍐呭宸蹭笉瀛樺湪");
 
-			BufferedImage sourceImg = ImageIO.read(inputStream);
-			ImgInfo info = new ImgInfo();
-			int width = sourceImg.getWidth();
-			int height = sourceImg.getHeight();
+            resultObj.setState(record.getState());
+            resultObj.setUser(record.getUser());
+            resultObj.setShareNum(record.getShareNum());
+            resultObj.setWeight(record.getWeight());
+            resultObj.setStartTime(record.getStartTime());
+            resultObj.setEndTime(record.getEndTime());
+            resultObj.setTitle(tilte);
+            resultObj.setUpdateTime(new Date());
+            goodsEvaluateDao.save(resultObj);
+        }
+        return id;
+    }
 
-			String picLink = COSManager.getInstance().uploadFile(file.getInputStream(), filePath).getUrl();
+    /**
+     * 涓婁紶鍥剧墖
+     *
+     * @param file
+     * @return
+     * @throws Exception
+     */
+    private String uploadPicture(MultipartFile file) throws Exception {
+        InputStream inputStream = file.getInputStream();
+        String contentType = file.getContentType();
+        String type = contentType.substring(contentType.indexOf("/") + 1);
+        String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."
+                + type;
+        return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
+    }
 
-			info.setH(height);
-			info.setW(width);
-			info.setUrl(picLink);
-			return info;
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
+    private ImgInfo uploadVideoPicture(MultipartFile filevideo) {
+        try {
+            File tempFile = new File(FileUtil.getCacheDir() + "/" + filevideo.getOriginalFilename());
+            if (tempFile.exists())
+                tempFile.delete();
+            tempFile.createNewFile();
+            filevideo.transferTo(tempFile);
+            File destFile = new File(FileUtil.getCacheDir() + "/temp_" + filevideo.getOriginalFilename());
+            // 瑁佸壀瑙嗛灏侀潰锛屽楂樻瘮涓�2:1
+            ImageCropUtil.centerCrop(tempFile, destFile, 2.0f);
+            BufferedImage sourceImg = ImageIO.read(new FileInputStream(destFile));
+            ImgInfo info = new ImgInfo();
+            int width = sourceImg.getWidth();
+            int height = sourceImg.getHeight();
+            String picLink = uploadPicture(destFile, filevideo.getContentType());
+            info.setH(height);
+            info.setW(width);
+            info.setUrl(picLink);
+            return info;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 
-	private String uploadPicture(File file, String contentType) throws Exception {
-		InputStream inputStream = new FileInputStream(file);
-		String type = contentType.substring(contentType.indexOf("/") + 1);
-		String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."
-				+ type;
-		return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
-	}
+    private ImgInfo uploadOriginalPicture(MultipartFile file) {
+        try {
+            InputStream inputStream = file.getInputStream();
+            String contentType = file.getContentType();
+            String type = contentType.substring(contentType.indexOf("/") + 1);
+            String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."
+                    + type;
 
-	/**
-	 * 鍒犻櫎鍥剧墖
-	 * 
-	 * @param record
-	 * @throws Exception
-	 */
-	private void removePicture(String picture) throws Exception {
-		if (picture != null && picture.trim().length() > 0) {
-			COSManager.getInstance().deleteFile(picture);
-		}
-	}
+            BufferedImage sourceImg = ImageIO.read(inputStream);
+            ImgInfo info = new ImgInfo();
+            int width = sourceImg.getWidth();
+            int height = sourceImg.getHeight();
 
-	@Override
-	public String saveSingleGoods(String pid, String goodsId, Integer goodsType, String videoUrl, Integer picNum,
-			String picUrls, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
-		if (StringUtil.isNullOrEmpty(pid)) {
-			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
-		}
+            String picLink = COSManager.getInstance().uploadFile(file.getInputStream(), filePath).getUrl();
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+            info.setH(height);
+            info.setW(width);
+            info.setUrl(picLink);
+            return info;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 
-		// 鍘熷皝瑙嗛闈㈠浘
-		ImgInfo imgVideo = null;
-		List<String> listDel = new ArrayList<String>();
-		List<String> listOld = new ArrayList<String>();
+    private String uploadPicture(File file, String contentType) throws Exception {
+        InputStream inputStream = new FileInputStream(file);
+        String type = contentType.substring(contentType.indexOf("/") + 1);
+        String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."
+                + type;
+        return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
+    }
 
-		// 澶勭悊鍥剧墖
-		GoodsDetailVO oldGoodsVO = null;
-		List<ImgInfo> resultList = resultObj.getImgList();
-		if (resultList != null && resultList.size() > 0) {
-			for (ImgInfo info : resultList) {
-				ImgEnum type = info.getType();
-				if (type == ImgEnum.video) {
-					imgVideo = info;
-				} else if (type == ImgEnum.goods) {
-					listOld.add(info.getUrl());
-					oldGoodsVO = info.getGoodsVO();
-				} else if (type == ImgEnum.img) {
-					listOld.add(info.getUrl());
-				}
-			}
-		}
+    /**
+     * 鍒犻櫎鍥剧墖
+     *
+     * @param picture
+     * @throws Exception
+     */
+    private void removePicture(String picture) throws Exception {
+        if (picture != null && picture.trim().length() > 0) {
+            COSManager.getInstance().deleteFile(picture);
+        }
+    }
 
-		// 瑙嗛閮ㄥ垎
-		if (fileRequest != null) {
-			MultipartFile filevideo = fileRequest.getFile("filevideo");
-			if (filevideo != null) {
-				if (StringUtil.isNullOrEmpty(videoUrl)) {
-					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
-				}
-				ImgInfo info = uploadVideoPicture(filevideo);
-				if (info == null)
-					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
-				if (imgVideo != null) {
-					String url = imgVideo.getUrl();
-					if (!StringUtil.isNullOrEmpty(url)) {
-						listDel.add(url);
-					}
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-				} else {
-					imgVideo = new ImgInfo();
-					imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
-					imgVideo.setLarge(true);
-					imgVideo.setPid(pid);
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-					imgVideo.setVideoUrl(videoUrl);
-					imgVideo.setType(ImgEnum.video);
-				}
-				imgVideo.setW(info.getW());
-				imgVideo.setH(info.getH());
-			}
-		}
+    @Override
+    public String saveSingleGoods(String pid, String goodsId, Integer goodsType, String videoUrl, Integer picNum,
+                                  String picUrls, SystemEnum system, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
+        if (StringUtil.isNullOrEmpty(pid)) {
+            throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
+        }
 
-		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
-		if (imgVideo != null) {
-			if (!StringUtil.isNullOrEmpty(videoUrl)) {
-				if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
-					throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
-				}
-				imgVideo.setVideoUrl(videoUrl);
-				listImg.add(imgVideo);
-			} else {
-				String url = imgVideo.getUrl();
-				if (!StringUtil.isNullOrEmpty(url)) {
-					listDel.add(url);
-				}
-			}
-		}
+        GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
+        if (resultObj == null)
+            throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
 
-		// 缂栬緫鍥剧墖
-		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 (picLink.startsWith("http")) {
-						listpic.add(picLink);
-					}
-				}
-			}
-		}
+        // 鍘熷皝瑙嗛闈㈠浘
+        ImgInfo imgVideo = null;
+        List<String> listDel = new ArrayList<String>();
+        List<String> listOld = new ArrayList<String>();
 
-		// 涓婁紶鏂囦欢鏇挎崲
-		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);
-					}
-				}
-			}
-		}
+        // 澶勭悊鍥剧墖
+        GoodsDetailVO oldGoodsVO = null;
+        List<ImgInfo> resultList = resultObj.getImgList();
+        if (resultList != null && resultList.size() > 0) {
+            for (ImgInfo info : resultList) {
+                ImgEnum type = info.getType();
+                if (type == ImgEnum.video) {
+                    imgVideo = info;
+                } else if (type == ImgEnum.goods) {
+                    listOld.add(info.getUrl());
+                    oldGoodsVO = info.getGoodsVO();
+                } else if (type == ImgEnum.img) {
+                    listOld.add(info.getUrl());
+                }
+            }
+        }
+        if (oldGoodsVO != null) {
+            oldGoodsVO.setCreatetime(null);
+        }
 
-		// 鎸囧畾涓诲浘
-		if (picNum == null || picNum > 9 || picNum < 1) {
-			picNum = 1;
-		}
+        // 瑙嗛閮ㄥ垎
+        if (fileRequest != null) {
+            MultipartFile filevideo = fileRequest.getFile("filevideo");
+            if (filevideo != null) {
+                if (StringUtil.isNullOrEmpty(videoUrl)) {
+                    throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
+                }
+                ImgInfo info = uploadVideoPicture(filevideo);
+                if (info == null)
+                    throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
+                if (imgVideo != null) {
+                    String url = imgVideo.getUrl();
+                    if (!StringUtil.isNullOrEmpty(url)) {
+                        listDel.add(url);
+                    }
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                } else {
+                    imgVideo = new ImgInfo();
+                    imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
+                    imgVideo.setLarge(true);
+                    imgVideo.setPid(pid);
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                    imgVideo.setVideoUrl(videoUrl);
+                    imgVideo.setType(ImgEnum.video);
+                }
+                imgVideo.setW(info.getW());
+                imgVideo.setH(info.getH());
+            }
+        }
 
-		GoodsDetailVO goodsDetailVO = null;
-		JDGoods jdGoods = null;
-		PDDGoodsDetail pddGoods = null;
-		ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-			try {
-				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
-				goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
-			} catch (TaobaoGoodsDownException e) {
-				throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
-			}
-		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
-			jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
-			goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
-		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
-			pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
-			goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params);
-		}
+        List<ImgInfo> listImg = new ArrayList<ImgInfo>();
+        if (imgVideo != null) {
+            if (!StringUtil.isNullOrEmpty(videoUrl)) {
+                if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
+                    throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
+                }
+                imgVideo.setVideoUrl(videoUrl);
+                listImg.add(imgVideo);
+            } else {
+                String url = imgVideo.getUrl();
+                if (!StringUtil.isNullOrEmpty(url)) {
+                    listDel.add(url);
+                }
+            }
+        }
 
-		if (goodsDetailVO == null) {
-			throw new GoodsEvaluateException(1, "璇ュ晢鍝佷俊鎭笉瀛樺湪");
-		}
+        // 缂栬緫鍥剧墖
+        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 (picLink.startsWith("http")) {
+                        listpic.add(picLink);
+                    }
+                }
+            }
+        }
 
-		List<ImgInfo> tempList = new ArrayList<ImgInfo>();
-		int totalImg = 0;
-		if (listpic != null && listpic.size() > 0) {
-			for (int i = 0; i < listpic.size() && i < 9; i++) {
-				ImgInfo imgInfo0 = new ImgInfo();
-				imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
-				imgInfo0.setW(1);
-				imgInfo0.setH(1);
-				imgInfo0.setLarge(false);
-				imgInfo0.setPid(pid);
-				imgInfo0.setUrl(listpic.get(i));
-				imgInfo0.setUrlHD(listpic.get(i));
+        // 涓婁紶鏂囦欢鏇挎崲
+        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);
+                    }
+                }
+            }
+        }
 
-				if (picNum - 1 == i) {
-					imgInfo0.setType(ImgEnum.goods);
-					SimpleGoods simpleGoods = new SimpleGoods();
-					simpleGoods.setState(goodsDetailVO.getState());
-					simpleGoods.setGoodsId(goodsId);
-					simpleGoods.setGoodsType(goodsType);
-					CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
-					if (couponInfo == null) {
-						simpleGoods.setPrice(goodsDetailVO.getZkPrice());
-					} else {
-						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
-						simpleGoods.setAmount(couponInfo.getAmount());
-					}
-					imgInfo0.setGoods(simpleGoods);
-					imgInfo0.setGoodsVO(goodsDetailVO);
-					listImg.add(imgInfo0);
-				} else {
-					imgInfo0.setType(ImgEnum.img);
-					tempList.add(imgInfo0);
-				}
-				totalImg++;
-			}
-		}
+        // 鎸囧畾涓诲浘
+        if (picNum == null || picNum > 9 || picNum < 1) {
+            picNum = 1;
+        }
 
-		if (tempList.size() > 0) {
-			listImg.addAll(tempList);
-		}
+        GoodsDetailVO goodsDetailVO = null;
+        JDGoods jdGoods = null;
+        PDDGoodsDetail pddGoods = null;
+        GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+            try {
+                TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+                goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
+            } catch (TaobaoGoodsDownException e) {
+                throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
+            }
+        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
+            jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+            goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
+        } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+            pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+            goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params);
+        }
 
-		if (listOld != null && listOld.size() > 0) {
-			for (int j = 0; j < listOld.size(); j++) {
-				boolean del = true;
-				String oldPic = listOld.get(j);
-				for (ImgInfo imgInfo : listImg) {
-					String url = imgInfo.getUrl();
-					if (url.equals(oldPic)) {
-						del = false;
-					}
-				}
-				if (del)
-					listDel.add(listOld.get(j));
-			}
-		}
+        if (goodsDetailVO == null) {
+            throw new GoodsEvaluateException(1, "璇ュ晢鍝佷俊鎭笉瀛樺湪");
+        }
 
-		int lineNum = 0;
-		if (totalImg > 0) {
-			if (totalImg == 1) {
-				lineNum = 1;
-			} else if (totalImg == 3) {
-				lineNum = 3;
-			} else if (totalImg == 2 || totalImg == 4) {
-				lineNum = 2;
-			} else {
-				lineNum = 3;
-			}
-		}
+        goodsDetailVO.setCreatetime(null);
 
-		resultObj.setLineNum(lineNum);
-		resultObj.setGoods(goodsDetailVO);
-		resultObj.setMainPicNum(picNum);
-		resultObj.setImgList(listImg);
+        List<ImgInfo> tempList = new ArrayList<ImgInfo>();
+        int totalImg = 0;
+        if (listpic != null && listpic.size() > 0) {
+            for (int i = 0; i < listpic.size() && i < 9; i++) {
+                ImgInfo imgInfo0 = new ImgInfo();
+                imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
+                imgInfo0.setW(1);
+                imgInfo0.setH(1);
+                imgInfo0.setLarge(false);
+                imgInfo0.setPid(pid);
+                imgInfo0.setUrl(listpic.get(i));
+                imgInfo0.setUrlHD(listpic.get(i));
 
-		boolean addComment = true;
-		List<CommentInfo> commentsNew = new ArrayList<>();
-		List<CommentInfo> comments = resultObj.getComments();
-		if (comments != null && comments.size() > 0) {
-			for (CommentInfo commentInfo : comments) {
-				if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
-					if (oldGoodsVO != null && oldGoodsVO.getGoodsId().equalsIgnoreCase(goodsId)
-							&& oldGoodsVO.getGoodsType() == goodsType) {
-						addComment = false;
-					}
-					continue;
-				}
-				commentsNew.add(commentInfo);
-			}
-		}
+                if (picNum - 1 == i) {
+                    imgInfo0.setType(ImgEnum.goods);
+                    SimpleGoods simpleGoods = new SimpleGoods();
+                    simpleGoods.setState(goodsDetailVO.getState());
+                    simpleGoods.setGoodsId(goodsId);
+                    simpleGoods.setGoodsType(goodsType);
+                    CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
+                    if (couponInfo == null) {
+                        simpleGoods.setPrice(goodsDetailVO.getZkPrice());
+                    } else {
+                        simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
+                        simpleGoods.setAmount(couponInfo.getAmount());
+                    }
+                    imgInfo0.setGoods(simpleGoods);
+                    imgInfo0.setGoodsVO(goodsDetailVO);
+                    listImg.add(imgInfo0);
+                } else {
+                    imgInfo0.setType(ImgEnum.img);
+                    tempList.add(imgInfo0);
+                }
+                totalImg++;
+            }
+        }
 
-		/*
-		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 =
-		 * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment
-		 * = false; }
-		 */
+        if (tempList.size() > 0) {
+            listImg.addAll(tempList);
+        }
 
-		String commentText = "";
-		if (addComment) {
-			if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, Long.parseLong(goodsId), "0");
-				String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
-				commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
-			} else if (goodsType == Constant.SOURCE_TYPE_JD) {
-				String couponUrl = null;
-				JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
-				if (couponInfo != null) {
-					couponUrl = couponInfo.getLink();
-				}
-				String materialId = "https://item.jd.com/" + goodsId + ".html";
-				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(Long.parseLong(goodsId), PinDuoDuoApiUtil.PID_SHARE + "", "1");
-				if (jumpLink == null) {
-					throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
-				}
-				String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
-				commentText = template.replace("[閾炬帴]", jumpLink);
-			}
+        if (listOld != null && listOld.size() > 0) {
+            for (int j = 0; j < listOld.size(); j++) {
+                boolean del = true;
+                String oldPic = listOld.get(j);
+                for (ImgInfo imgInfo : listImg) {
+                    String url = imgInfo.getUrl();
+                    if (url.equals(oldPic)) {
+                        del = false;
+                    }
+                }
+                if (del)
+                    listDel.add(listOld.get(j));
+            }
+        }
 
-			// commentText = commentText.replace("[鍘熶环]",
-			// MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+"");
-			// if (!goodsDetailVO.isHasCoupon()) {
-			// commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-			// commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-			// } else {
-			// commentText = commentText.replace("[鍒稿悗浠穄",
-			// MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+"");
-			// }
-			//
-			// commentText = commentText.replace("\r\n\r\n",
-			// "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
-			// "\r\n");
+        int lineNum = 0;
+        if (totalImg > 0) {
+            if (totalImg == 1) {
+                lineNum = 1;
+            } else if (totalImg == 3) {
+                lineNum = 3;
+            } else if (totalImg == 2 || totalImg == 4) {
+                lineNum = 2;
+            } else {
+                lineNum = 3;
+            }
+        }
 
-			CommentInfo commentInfo = new CommentInfo();
-			commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-			commentInfo.setContent(commentText);
-			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
-			commentInfo.setNeedSpin(true);
-			commentsNew.add(commentInfo);
-			resultObj.setComments(commentsNew);
-		}
-		resultObj.setUpdateTime(new Date());
-		goodsEvaluateDao.save(resultObj);
+        resultObj.setLineNum(lineNum);
+        resultObj.setGoods(goodsDetailVO);
+        resultObj.setMainPicNum(picNum);
+        resultObj.setImgList(listImg);
 
-		// 鍒犻櫎鍥剧墖
-		if (listDel.size() > 0) {
-			for (String url : listDel) {
-				if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
-					removePicture(url);
-				}
-			}
-		}
+        boolean addComment = true;
+        List<CommentInfo> commentsNew = new ArrayList<>();
+        List<CommentInfo> comments = resultObj.getComments();
+        if (comments != null && comments.size() > 0) {
+            for (CommentInfo commentInfo : comments) {
+                if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
+                    if (oldGoodsVO != null && oldGoodsVO.getGoodsId().equalsIgnoreCase(goodsId)
+                            && oldGoodsVO.getGoodsType() == goodsType) {
+                        addComment = false;
+                    }
+                    continue;
+                }
+                commentsNew.add(commentInfo);
+            }
+        }
 
-		return commentText;
-	}
+        /*
+         * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 =
+         * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment
+         * = false; }
+         */
 
-	private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception {
-		String commentText = "";
-		if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
-			TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L,Long.parseLong(goodsDetailVO.getGoodsId()), "0");
-			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
-			commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
-		} else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
-			String couponUrl = null;
+        String commentText = "";
+        if (addComment) {
+            if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+                TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, 1L, goodsId, "0", null);
+                String template = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(), system);
+                commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+            } else if (goodsType == Constant.SOURCE_TYPE_JD) {
+                String couponUrl = null;
+                JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+                if (couponInfo != null) {
+                    couponUrl = couponInfo.getLink();
+                }
+                String materialId = "https://item.jd.com/" + goodsId + ".html";
+                String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,
+                        pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share), "1");
+                String template = configService.getValue(ConfigKeyEnum.quickShareJDCommentText.getKey(), system);
+                if (jumpLink == null) {
+                    throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
+                }
+                commentText = template.replace("[閾炬帴]", jumpLink);
+            } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+                String sharePid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share);
+                PDDGoodsDetail goodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsId, sharePid, "1");
+                String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetail.getGoodsSign(), sharePid, "1");
+                if (jumpLink == null) {
+                    throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
+                }
+                String template = configService.getValue(ConfigKeyEnum.quickSharePDDCommentText.getKey(), system);
+                commentText = template.replace("[閾炬帴]", jumpLink);
+            }
 
-			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsDetailVO.getGoodsId()));
-			JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
-			if (couponInfo != null) {
-				couponUrl = couponInfo.getLink();
-			}
-			String materialId = "https://item.jd.com/" + goodsDetailVO.getGoodsId() + ".html";
-			String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
-					"1");
-			String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
-			commentText = template.replace("[閾炬帴]", jumpLink);
-		} else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
-			String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsDetailVO.getGoodsId()),
-					PinDuoDuoApiUtil.PID_SHARE + "", "1");
-			String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
-			commentText = template.replace("[閾炬帴]", jumpLink);
-		}
+            // commentText = commentText.replace("[鍘熶环]",
+            // MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+"");
+            // if (!goodsDetailVO.isHasCoupon()) {
+            // commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+            // commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+            // } else {
+            // commentText = commentText.replace("[鍒稿悗浠穄",
+            // MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+"");
+            // }
+            //
+            // commentText = commentText.replace("\r\n\r\n",
+            // "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
+            // "\r\n");
 
-		commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString());
-		if (!goodsDetailVO.isHasCoupon()) {
-			commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-			commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-		} else {
-			commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString());
-		}
+            CommentInfo commentInfo = new CommentInfo();
+            commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+            commentInfo.setContent(commentText);
+            commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+            commentInfo.setNeedSpin(true);
+            commentsNew.add(commentInfo);
+            resultObj.setComments(commentsNew);
+        }
+        resultObj.setUpdateTime(new Date());
+        goodsEvaluateDao.save(resultObj);
 
-		return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
-	}
+        // 鍒犻櫎鍥剧墖
+        if (listDel.size() > 0) {
+            for (String url : listDel) {
+                if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
+                    removePicture(url);
+                }
+            }
+        }
 
-	public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
-		GoodsDetailVO goodsDetail = null;
-		ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-			try {
-				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
-				String pictUrlWhite = goodsBrief.getPictUrlWhite();
-				if (!StringUtil.isNullOrEmpty(pictUrlWhite)) {
-					goodsBrief.setPictUrl(pictUrlWhite);
-				}
-				goodsDetail = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
-			} catch (TaobaoGoodsDownException e) {
-				throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
-			}
-		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
-			JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
-			goodsDetail = GoodsDetailVOFactory.convertJDGoods(goodsInfo, params);
-		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
-			PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
-			goodsDetail = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, params);
-		}
-		return goodsDetail;
-	}
+        return commentText;
+    }
 
-	@Override
-	public void saveMultipleGoods(String pid, String videoUrl, String goodsList,
-			MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
-		if (StringUtil.isNullOrEmpty(pid)) {
-			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
-		}
+    private String createTokenAndLink(GoodsDetailVO goodsDetailVO, SystemEnum system) throws Exception {
+        String commentText = "";
+        if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
+            TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, 1L, goodsDetailVO.getGoodsId(), "0", null);
+            String template = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(), system);
+            commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+        } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
+            String couponUrl = null;
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsDetailVO.getGoodsId());
+            JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+            if (couponInfo != null) {
+                couponUrl = couponInfo.getLink();
+            }
+            String materialId = "https://item.jd.com/" + goodsDetailVO.getGoodsId() + ".html";
+            String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share),
+                    "1");
+            String template = configService.getValue(ConfigKeyEnum.quickShareJDCommentText.getKey(), system);
+            commentText = template.replace("[閾炬帴]", jumpLink);
+        } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
 
-		// 鍘熷皝瑙嗛闈㈠浘
-		ImgInfo imgVideo = null;
-		List<String> listDel = new ArrayList<String>();
-		List<ImgInfo> oldGoodsList = new ArrayList<ImgInfo>();
+            String sharePid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share);
 
-		// 澶勭悊鍥剧墖
-		List<ImgInfo> resultList = resultObj.getImgList();
-		if (resultList != null && resultList.size() > 0) {
-			for (ImgInfo info : resultList) {
-				ImgEnum type = info.getType();
-				if (type == ImgEnum.video) {
-					imgVideo = info;
-				} else if (type == ImgEnum.goods) {
-					oldGoodsList.add(info);
-				}
-			}
-		}
+            PDDGoodsDetail goodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsDetailVO.getGoodsId(),
+                    sharePid, "1");
 
-		// 瑙嗛閮ㄥ垎
-		if (fileRequest != null) {
-			MultipartFile filevideo = fileRequest.getFile("filevideo");
-			if (filevideo != null) {
-				if (StringUtil.isNullOrEmpty(videoUrl)) {
-					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
-				}
+            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetail.getGoodsSign(),
+                    sharePid, "1");
+            String template = configService.getValue(ConfigKeyEnum.quickSharePDDCommentText.getKey(), system);
+            commentText = template.replace("[閾炬帴]", jumpLink);
+        }
 
-				ImgInfo info = uploadVideoPicture(filevideo);
-				if (info == null)
-					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
+        commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString());
+        if (!goodsDetailVO.isHasCoupon()) {
+            commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+            commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+        } else {
+            commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString());
+        }
 
-				if (imgVideo != null) {
-					String url = imgVideo.getUrl();
-					if (!StringUtil.isNullOrEmpty(url)) {
-						listDel.add(url);
-					}
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-				} else {
-					imgVideo = new ImgInfo();
-					imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
-					imgVideo.setLarge(true);
-					imgVideo.setPid(pid);
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-					imgVideo.setVideoUrl(videoUrl);
-					imgVideo.setType(ImgEnum.video);
-				}
-				imgVideo.setW(info.getW());
-				imgVideo.setH(info.getH());
-			}
-		}
+        return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+    }
 
-		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
-		if (imgVideo != null) {
-			if (!StringUtil.isNullOrEmpty(videoUrl)) {
-				if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
-					throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
-				}
-				imgVideo.setVideoUrl(videoUrl);
-				listImg.add(imgVideo);
-			} else {
-				String url = imgVideo.getUrl();
-				if (!StringUtil.isNullOrEmpty(url)) {
-					listDel.add(url);
-				}
-			}
-		}
+    public GoodsDetailVO getGoodsDetailVO(String goodsId, Integer goodsType, SystemEnum system) throws GoodsEvaluateException {
+        GoodsDetailVO goodsDetail = null;
+        GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+            try {
+                TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+                String pictUrlWhite = goodsBrief.getPictUrlWhite();
+                if (!StringUtil.isNullOrEmpty(pictUrlWhite)) {
+                    goodsBrief.setPictUrl(pictUrlWhite);
+                }
+                goodsDetail = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
+            } catch (TaobaoGoodsDownException e) {
+                throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
+            }
+        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
+            JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+            goodsDetail = GoodsDetailVOFactory.convertJDGoods(goodsInfo, params);
+        } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+            PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+            goodsDetail = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, params);
+        }
+        if (goodsDetail != null)
+            goodsDetail.setCreatetime(null);
+        return goodsDetail;
+    }
 
-		int totalImg = 0;
-		if (!StringUtil.isNullOrEmpty(goodsList)) {
-			String[] goodsArray = goodsList.split(",");
-			if (goodsArray != null && goodsArray.length > 0) {
-				for (int i = 0; i < goodsArray.length && i < 9; i++) {
-					String goodsids = goodsArray[i];
-					String[] g = goodsids.split("-");
-					GoodsDetailVO goodsDetailVO = getGoodsDetailVO(Long.parseLong(g[0]), Integer.parseInt(g[1]));
-					if (goodsDetailVO == null) {
-						continue;
-					}
+    @Override
+    public void saveMultipleGoods(String pid, String videoUrl, String goodsList,
+                                  MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
+        if (StringUtil.isNullOrEmpty(pid)) {
+            throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
+        }
 
-					String picUrl = goodsDetailVO.getPicUrl();
-					if (fileRequest != null) {
-						MultipartFile file = fileRequest.getFile("file" + i);
-						if (file != null) {
-							picUrl = uploadPicture(file);
-						}
-					}
+        GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
+        if (resultObj == null)
+            throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
 
-					ImgInfo imgInfo0 = new ImgInfo();
-					imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
-					imgInfo0.setW(1);
-					imgInfo0.setH(1);
-					imgInfo0.setLarge(false);
-					imgInfo0.setPid(pid);
-					imgInfo0.setUrl(picUrl);
-					imgInfo0.setUrlHD(picUrl);
-					imgInfo0.setType(ImgEnum.goods);
+        // 鍘熷皝瑙嗛闈㈠浘
+        ImgInfo imgVideo = null;
+        List<String> listDel = new ArrayList<String>();
+        List<ImgInfo> oldGoodsList = new ArrayList<ImgInfo>();
 
-					SimpleGoods simpleGoods = new SimpleGoods();
-					simpleGoods.setState(goodsDetailVO.getState());
-					simpleGoods.setGoodsId(goodsDetailVO.getGoodsId());
-					simpleGoods.setGoodsType(goodsDetailVO.getGoodsType());
-					CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
-					if (couponInfo == null) {
-						simpleGoods.setPrice(goodsDetailVO.getZkPrice());
-					} else {
-						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
-						simpleGoods.setAmount(couponInfo.getAmount());
-					}
-					imgInfo0.setGoods(simpleGoods);
-					imgInfo0.setGoodsVO(goodsDetailVO);
+        // 澶勭悊鍥剧墖
+        List<ImgInfo> resultList = resultObj.getImgList();
+        if (resultList != null && resultList.size() > 0) {
+            for (ImgInfo info : resultList) {
+                ImgEnum type = info.getType();
+                if (type == ImgEnum.video) {
+                    imgVideo = info;
+                } else if (type == ImgEnum.goods) {
+                    oldGoodsList.add(info);
+                }
+            }
+        }
 
-					listImg.add(imgInfo0);
-					totalImg++;
-				}
-			}
-		}
+        // 瑙嗛閮ㄥ垎
+        if (fileRequest != null) {
+            MultipartFile filevideo = fileRequest.getFile("filevideo");
+            if (filevideo != null) {
+                if (StringUtil.isNullOrEmpty(videoUrl)) {
+                    throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
+                }
 
-		// 鏁版嵁瀵规瘮 鍒犻櫎鍥剧墖
-		if (oldGoodsList != null && oldGoodsList.size() > 0) {
-			for (ImgInfo old : oldGoodsList) {
-				ImgEnum type = old.getType();
-				if (type != ImgEnum.goods) {
-					continue;
-				}
+                ImgInfo info = uploadVideoPicture(filevideo);
+                if (info == null)
+                    throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
 
-				boolean del = false;
-				String oldGoodsId = old.getGoods().getGoodsId();
-				int oldGoodsType = old.getGoods().getGoodsType().intValue();
-				for (ImgInfo newInfo : listImg) {
-					ImgEnum type2 = old.getType();
-					if (type2 != ImgEnum.goods) {
-						continue;
-					}
+                if (imgVideo != null) {
+                    String url = imgVideo.getUrl();
+                    if (!StringUtil.isNullOrEmpty(url)) {
+                        listDel.add(url);
+                    }
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                } else {
+                    imgVideo = new ImgInfo();
+                    imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
+                    imgVideo.setLarge(true);
+                    imgVideo.setPid(pid);
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                    imgVideo.setVideoUrl(videoUrl);
+                    imgVideo.setType(ImgEnum.video);
+                }
+                imgVideo.setW(info.getW());
+                imgVideo.setH(info.getH());
+            }
+        }
 
-					if (oldGoodsId .equalsIgnoreCase(newInfo.getGoods().getGoodsId())
-							&& oldGoodsType == newInfo.getGoods().getGoodsType().intValue()) {
-						String url = newInfo.getUrl();
-						if (url.equals(old.getUrl())) {
+        List<ImgInfo> listImg = new ArrayList<ImgInfo>();
+        if (imgVideo != null) {
+            if (!StringUtil.isNullOrEmpty(videoUrl)) {
+                if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
+                    throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
+                }
+                imgVideo.setVideoUrl(videoUrl);
+                listImg.add(imgVideo);
+            } else {
+                String url = imgVideo.getUrl();
+                if (!StringUtil.isNullOrEmpty(url)) {
+                    listDel.add(url);
+                }
+            }
+        }
 
-						} else if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
-							del = true;
-						} else {
-							newInfo.setUrl(old.getUrl());
-							newInfo.setUrlHD(old.getUrlHD());
-						}
-						break;
-					}
-				}
+        int totalImg = 0;
+        if (!StringUtil.isNullOrEmpty(goodsList)) {
+            String[] goodsArray = goodsList.split(",");
+            if (goodsArray != null && goodsArray.length > 0) {
+                for (int i = 0; i < goodsArray.length && i < 9; i++) {
+                    String goodsids = goodsArray[i];
+                    String[] g = goodsids.split("-");
+                    GoodsDetailVO goodsDetailVO = getGoodsDetailVO(g[0], Integer.parseInt(g[1]), resultObj.getSystem());
+                    if (goodsDetailVO == null) {
+                        continue;
+                    }
 
-				if (del) {
-					listDel.add(old.getUrl());
-				}
-			}
-		}
+                    String picUrl = goodsDetailVO.getPicUrl();
+                    if (fileRequest != null) {
+                        MultipartFile file = fileRequest.getFile("file" + i);
+                        if (file != null) {
+                            picUrl = uploadPicture(file);
+                        }
+                    }
 
-		int lineNum = 0;
-		if (totalImg > 0) {
-			if (totalImg == 1) {
-				lineNum = 1;
-			} else if (totalImg == 3) {
-				lineNum = 3;
-			} else if (totalImg == 2 || totalImg == 4) {
-				lineNum = 2;
-			} else {
-				lineNum = 3;
-			}
-		}
+                    ImgInfo imgInfo0 = new ImgInfo();
+                    imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
+                    imgInfo0.setW(1);
+                    imgInfo0.setH(1);
+                    imgInfo0.setLarge(false);
+                    imgInfo0.setPid(pid);
+                    imgInfo0.setUrl(picUrl);
+                    imgInfo0.setUrlHD(picUrl);
+                    imgInfo0.setType(ImgEnum.goods);
 
-		resultObj.setLineNum(lineNum);
+                    SimpleGoods simpleGoods = new SimpleGoods();
+                    simpleGoods.setState(goodsDetailVO.getState());
+                    simpleGoods.setGoodsId(goodsDetailVO.getGoodsId());
+                    simpleGoods.setGoodsType(goodsDetailVO.getGoodsType());
+                    CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
+                    if (couponInfo == null) {
+                        simpleGoods.setPrice(goodsDetailVO.getZkPrice());
+                    } else {
+                        simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
+                        simpleGoods.setAmount(couponInfo.getAmount());
+                    }
+                    imgInfo0.setGoods(simpleGoods);
+                    imgInfo0.setGoodsVO(goodsDetailVO);
 
-		// 淇濆瓨鍥剧墖淇℃伅
-		resultObj.setImgList(listImg);
-		goodsEvaluateDao.save(resultObj);
+                    listImg.add(imgInfo0);
+                    totalImg++;
+                }
+            }
+        }
 
-		// 鍒犻櫎鍥剧墖
-		if (listDel.size() > 0) {
-			for (String url : listDel) {
-				if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
-					removePicture(url);
-				}
-			}
-		}
-	}
+        // 鏁版嵁瀵规瘮 鍒犻櫎鍥剧墖
+        if (oldGoodsList != null && oldGoodsList.size() > 0) {
+            for (ImgInfo old : oldGoodsList) {
+                ImgEnum type = old.getType();
+                if (type != ImgEnum.goods) {
+                    continue;
+                }
 
-	@Override
-	public void saveGoodsComment(String id, int kind, List<CommentInfo> comments)
-			throws GoodsEvaluateException, Exception {
-		if (comments == null || comments.size() == 0) {
-			throw new GoodsEvaluateException(1, "鍐呭涓嶈兘涓虹┖");
-		}
+                boolean del = false;
+                String oldGoodsId = old.getGoods().getGoodsId();
+                int oldGoodsType = old.getGoods().getGoodsType().intValue();
+                for (ImgInfo newInfo : listImg) {
+                    ImgEnum type2 = old.getType();
+                    if (type2 != ImgEnum.goods) {
+                        continue;
+                    }
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+                    if (oldGoodsId.equalsIgnoreCase(newInfo.getGoods().getGoodsId())
+                            && oldGoodsType == newInfo.getGoods().getGoodsType().intValue()) {
+                        String url = newInfo.getUrl();
+                        if (url.equals(old.getUrl())) {
 
-		GoodsDetailVO goods = resultObj.getGoods();
-		if (kind == 1 && goods == null) {
-			throw new GoodsEvaluateException(1, "璇峰厛褰曞叆鍟嗗搧淇℃伅");
-		}
+                        } else if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
+                            del = true;
+                        } else {
+                            newInfo.setUrl(old.getUrl());
+                            newInfo.setUrlHD(old.getUrlHD());
+                        }
+                        break;
+                    }
+                }
 
-		CommentInfo currencyCoupon = null;
-		List<CommentInfo> oldComments = resultObj.getComments();
-		if (oldComments != null) {
-			for (int i = 0; i < oldComments.size(); i++) {
-				CommentInfo info = oldComments.get(i);
-				if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
-					currencyCoupon = info;
-					continue;
-				}
-			}
-		}
+                if (del) {
+                    listDel.add(old.getUrl());
+                }
+            }
+        }
 
-		List<CommentInfo> newList = new ArrayList<>();
-		for (int i = 0; i < comments.size(); i++) {
-			CommentInfo commentInfo = comments.get(i);
-			String content = commentInfo.getContent();
-			if (StringUtil.isNullOrEmpty(content)) {
-				if (i == 0 && kind == 1) {
-					content = createTokenAndLink(goods);
-				} else {
-					continue;
-				}
-			} else if (i == 0 && kind == 1) {
-				try {
-					convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
-				} catch (Exception e) {
-					throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴");
-				}
-			}
+        int lineNum = 0;
+        if (totalImg > 0) {
+            if (totalImg == 1) {
+                lineNum = 1;
+            } else if (totalImg == 3) {
+                lineNum = 3;
+            } else if (totalImg == 2 || totalImg == 4) {
+                lineNum = 2;
+            } else {
+                lineNum = 3;
+            }
+        }
 
-			if (StringUtil.isNullOrEmpty(commentInfo.getId())) {
-				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-			}
+        resultObj.setLineNum(lineNum);
 
-			commentInfo.setNeedSpin(true);
-			commentInfo.setType(commentInfo.getTags());
-			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
-			newList.add(commentInfo);
-		}
-		if (currencyCoupon != null) {
-			comments.add(currencyCoupon);
-		}
+        // 淇濆瓨鍥剧墖淇℃伅
+        resultObj.setImgList(listImg);
+        goodsEvaluateDao.save(resultObj);
 
-		resultObj.setComments(comments);
-		resultObj.setUpdateTime(new Date());
-		goodsEvaluateDao.save(resultObj);
-	}
+        // 鍒犻櫎鍥剧墖
+        if (listDel.size() > 0) {
+            for (String url : listDel) {
+                if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
+                    removePicture(url);
+                }
+            }
+        }
+    }
 
-	@Override
-	public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo)
-			throws GoodsEvaluateException, Exception {
-		if (StringUtil.isNullOrEmpty(pid)) {
-			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
-		}
+    @Override
+    public void saveGoodsComment(String id, int kind, List<CommentInfo> comments, SystemEnum system)
+            throws GoodsEvaluateException, Exception {
+        if (comments == null || comments.size() == 0) {
+            throw new GoodsEvaluateException(1, "鍐呭涓嶈兘涓虹┖");
+        }
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+        GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
+        if (resultObj == null)
+            throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
 
-		if (EvaluateEnum.activity != resultObj.getType()) {
-			if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
-				throw new GoodsEvaluateException(1, "鍒搁潰棰濅笉鑳戒负绌�");
-			}
+        GoodsDetailVO goods = resultObj.getGoods();
+        if (kind == 1 && goods == null) {
+            throw new GoodsEvaluateException(1, "璇峰厛褰曞叆鍟嗗搧淇℃伅");
+        }
 
-			if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) {
-				throw new GoodsEvaluateException(1, "鎻忚堪璇笉鑳戒负绌�");
-			}
+        CommentInfo currencyCoupon = null;
+        List<CommentInfo> oldComments = resultObj.getComments();
+        if (oldComments != null) {
+            for (int i = 0; i < oldComments.size(); i++) {
+                CommentInfo info = oldComments.get(i);
+                if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
+                    currencyCoupon = info;
+                    continue;
+                }
+            }
+        }
 
-			String tagUrl = commentInfo.getTagUrl();
-			String content = commentInfo.getContent();
-			if (StringUtil.isNullOrEmpty(tagUrl) && StringUtil.isNullOrEmpty(content)) {
-				throw new GoodsEvaluateException(1, "璇勮璇拰閾炬帴涓嶈兘鍚屾椂涓虹┖");
-			}
+        List<CommentInfo> newList = new ArrayList<>();
+        for (int i = 0; i < comments.size(); i++) {
+            CommentInfo commentInfo = comments.get(i);
+            String content = commentInfo.getContent();
+            if (StringUtil.isNullOrEmpty(content)) {
+                if (i == 0 && kind == 1) {
+                    content = createTokenAndLink(goods, system);
+                } else {
+                    continue;
+                }
+            } else if (i == 0 && kind == 1) {
+                try {
+                    convertLinkManager.convertLinkFromText(system, content, Constant.LINK_TOKEN_VERIFY_UID, true, false);
+                } catch (Exception e) {
+                    throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴");
+                }
+            }
 
-			String endTime = commentInfo.getEndTime();
-			if (!StringUtil.isNullOrEmpty(endTime)) {
-				try {
-					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-					sdf.parse(endTime);
-				} catch (Exception e) {
-					throw new GoodsEvaluateException(1, "璇峰~鍐欐纭殑鏃堕棿鏍煎紡锛�2020-03-05");
-				}
-			} else {
-				throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿");
-			}
-		}
+            if (StringUtil.isNullOrEmpty(commentInfo.getId())) {
+                commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+            }
 
-		if (commentInfo.getNeedSpin() == null) {
-			commentInfo.setNeedSpin(false);
-		}
+            commentInfo.setNeedSpin(true);
+            commentInfo.setType(commentInfo.getTags());
+            commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+            newList.add(commentInfo);
+        }
+        if (currencyCoupon != null) {
+            comments.add(currencyCoupon);
+        }
 
-		String content = commentInfo.getContent();
-		if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) {
-			try {
-				convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
-			} catch (ConvertLinkExceptionException e) {
-				if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) {
-					throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
-				}
-			} catch (Exception e) {
-				throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
-			}
-		}
+        resultObj.setComments(comments);
+        resultObj.setUpdateTime(new Date());
+        goodsEvaluateDao.save(resultObj);
+    }
 
-		List<CommentInfo> comments = new ArrayList<>();
-		CommentInfo currencyCoupon = null;
-		List<CommentInfo> oldComments = resultObj.getComments();
-		if (oldComments != null) {
-			for (CommentInfo info : oldComments) {
-				if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
-					comments.add(info);
-				} else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
-					currencyCoupon = info;
-				}
-			}
-		}
+    @Override
+    public void saveCurrencyCoupon(SystemEnum system, String pid, int kind, CommentInfo commentInfo)
+            throws GoodsEvaluateException, Exception {
+        if (StringUtil.isNullOrEmpty(pid)) {
+            throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
+        }
 
-		if (commentInfo != null) {
-			if (currencyCoupon != null) {
-				commentInfo.setId(currencyCoupon.getId());
-			} else {
-				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-			}
-			// 鍒哥被鍨�
+        GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
+        if (resultObj == null)
+            throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
 
-			commentInfo.setType(commentInfo.getTags());
-			commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon);
+        if (EvaluateEnum.activity != resultObj.getType()) {
+            if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
+                throw new GoodsEvaluateException(1, "鍒搁潰棰濅笉鑳戒负绌�");
+            }
 
-			// 鏍囩淇℃伅
-			List<ClientTextStyleVO> tagList = new ArrayList<>();
-			String couponSource = commentInfo.getCouponSource();
-			if (!StringUtil.isNullOrEmpty(couponSource)) {
-				ClientTextStyleVO styleVO = new ClientTextStyleVO();
-				styleVO.setColor("#16C253");
-				styleVO.setContent(couponSource);
-				tagList.add(styleVO);
-			}
-			String coupon = commentInfo.getCoupon();
-			if (!StringUtil.isNullOrEmpty(coupon)) {
-				ClientTextStyleVO styleVO = new ClientTextStyleVO();
-				styleVO.setColor("#E5005C");
-				styleVO.setContent(coupon);
-				tagList.add(styleVO);
-			}
-			commentInfo.setTagList(tagList);
+            if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) {
+                throw new GoodsEvaluateException(1, "鎻忚堪璇笉鑳戒负绌�");
+            }
 
-			comments.add(commentInfo);
-		}
+            String tagUrl = commentInfo.getTagUrl();
+            String content = commentInfo.getContent();
+            if (StringUtil.isNullOrEmpty(tagUrl) && StringUtil.isNullOrEmpty(content)) {
+                throw new GoodsEvaluateException(1, "璇勮璇拰閾炬帴涓嶈兘鍚屾椂涓虹┖");
+            }
 
-		resultObj.setComments(comments);
-		goodsEvaluateDao.save(resultObj);
-	}
+            String endTime = commentInfo.getEndTime();
+            if (!StringUtil.isNullOrEmpty(endTime)) {
+                try {
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                    sdf.parse(endTime);
+                } catch (Exception e) {
+                    throw new GoodsEvaluateException(1, "璇峰~鍐欐纭殑鏃堕棿鏍煎紡锛�2020-03-05");
+                }
+            } else {
+                throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿");
+            }
+        }
 
-	@Override
-	public void saveActivityPic(String pid, ImgInfo imgInfo, String picUrls, MultipartHttpServletRequest fileRequest)
-			throws GoodsEvaluateException, Exception {
-		if (StringUtil.isNullOrEmpty(pid)) {
-			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
-		}
+        if (commentInfo.getNeedSpin() == null) {
+            commentInfo.setNeedSpin(false);
+        }
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+        String content = commentInfo.getContent();
+        if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) {
+            try {
+                convertLinkManager.convertLinkFromText(system, content, Constant.LINK_TOKEN_VERIFY_UID, true, false);
+            } catch (ConvertLinkException e) {
+                if (ConvertLinkException.CODE_NONE != e.getCode()) {
+                    throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
+                }
+            } catch (Exception e) {
+                throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
+            }
+        }
 
-		if (imgInfo == null || StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
-			throw new GoodsEvaluateException(1, "娲诲姩閾炬帴涓嶈兘涓虹┖");
-		}
+        List<CommentInfo> comments = new ArrayList<>();
+        CommentInfo currencyCoupon = null;
+        List<CommentInfo> oldComments = resultObj.getComments();
+        if (oldComments != null) {
+            for (CommentInfo info : oldComments) {
+                if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
+                    comments.add(info);
+                } else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
+                    currencyCoupon = info;
+                }
+            }
+        }
 
-		ImgInfo imgVideo = null;
-		List<String> listDel = new ArrayList<String>();
-		List<ImgInfo> listOld = new ArrayList<ImgInfo>();
-		List<ImgInfo> resultList = resultObj.getImgList();
-		if (resultList != null && resultList.size() > 0) {
-			for (ImgInfo info : resultList) {
-				if (info.getType() == ImgEnum.video) {
-					imgVideo = info;
-				} else {
-					listOld.add(info);
-				}
-			}
-		}
+        if (commentInfo != null) {
+            if (currencyCoupon != null) {
+                commentInfo.setId(currencyCoupon.getId());
+            } else {
+                commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+            }
+            // 鍒哥被鍨�
 
-		// 瑙嗛閮ㄥ垎
-		if (fileRequest != null) {
-			MultipartFile filevideo = fileRequest.getFile("filevideo");
-			if (filevideo != null) {
-				if (StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
-					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
-				}
-				ImgInfo info = uploadVideoPicture(filevideo);
-				if (info == null)
-					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
-				if (imgVideo != null) {
-					String url = imgVideo.getUrl();
-					if (!StringUtil.isNullOrEmpty(url)) {
-						listDel.add(url);
-					}
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-				} else {
-					imgVideo = new ImgInfo();
-					imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
-					imgVideo.setLarge(true);
-					imgVideo.setPid(pid);
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-					imgVideo.setVideoUrl(imgInfo.getVideoUrl());
-					imgVideo.setType(ImgEnum.video);
-				}
-				imgVideo.setW(info.getW());
-				imgVideo.setH(info.getH());
-			}
-		}
+            commentInfo.setType(commentInfo.getTags());
+            commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon);
 
-		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
-		if (imgVideo != null) {
-			if (!StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
-				if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
-					throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
-				}
-				imgVideo.setVideoUrl(imgInfo.getVideoUrl());
-				listImg.add(imgVideo);
-			} else {
-				String url = imgVideo.getUrl();
-				if (!StringUtil.isNullOrEmpty(url)) {
-					listDel.add(url);
-				}
-			}
-		}
+            // 鏍囩淇℃伅
+            List<ClientTextStyleVO> tagList = new ArrayList<>();
+            String couponSource = commentInfo.getCouponSource();
+            if (!StringUtil.isNullOrEmpty(couponSource)) {
+                ClientTextStyleVO styleVO = new ClientTextStyleVO();
+                styleVO.setColor("#16C253");
+                styleVO.setContent(couponSource);
+                tagList.add(styleVO);
+            }
+            String coupon = commentInfo.getCoupon();
+            if (!StringUtil.isNullOrEmpty(coupon)) {
+                ClientTextStyleVO styleVO = new ClientTextStyleVO();
+                styleVO.setColor("#E5005C");
+                styleVO.setContent(coupon);
+                tagList.add(styleVO);
+            }
+            commentInfo.setTagList(tagList);
 
-		String activityUrl = imgInfo.getActivityUrl();
-		// 缂栬緫鍥剧墖
-		List<ImgInfo> tempList = new ArrayList<ImgInfo>();
-		if (!StringUtil.isNullOrEmpty(picUrls)) {
-			String[] pics = picUrls.split(",");
-			if (pics != null) {
-				for (int i = 0; i < pics.length; i++) {
-					String picLink = pics[i];
-					if (picLink.startsWith("http")) {
-						if (listOld != null) {
-							for (ImgInfo info : listOld) {
-								if (info.getUrl().equals(picLink)) {
-									info.setActivityUrl(activityUrl);
-									tempList.add(info);
-									break;
-								}
-							}
-						}
-					}
-				}
-			}
-		}
+            comments.add(commentInfo);
+        }
 
-		// 涓婁紶鏂囦欢鏇挎崲
-		if (fileRequest != null) {
-			for (int i = 0; i < 9; i++) {
-				MultipartFile file = fileRequest.getFile("file" + i);
-				if (file != null) {
-					ImgInfo info = uploadOriginalPicture(file);
-					ImgInfo imgInfo0 = new ImgInfo();
-					imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
-					imgInfo0.setLarge(false);
-					imgInfo0.setPid(pid);
-					imgInfo0.setUrl(info.getUrl());
-					imgInfo0.setUrlHD(info.getUrl());
-					imgInfo0.setType(ImgEnum.activity);
-					imgInfo0.setW(info.getW());
-					imgInfo0.setH(info.getH());
-					imgInfo0.setActivityUrl(activityUrl);
-					if (i < tempList.size()) {
-						tempList.set(i, imgInfo0);
-					} else {
-						tempList.add(imgInfo0);
-					}
-				}
-			}
-		}
+        resultObj.setComments(comments);
+        goodsEvaluateDao.save(resultObj);
+    }
 
-		int lineNum = 0;
-		int totalImg = tempList.size();
-		if (totalImg > 0) {
-			if (totalImg == 1) {
-				lineNum = 1;
-			} else if (totalImg == 3) {
-				lineNum = 3;
-			} else if (totalImg == 2 || totalImg == 4) {
-				lineNum = 2;
-			} else {
-				lineNum = 3;
-			}
-		}
+    @Override
+    public void saveActivityPic(String pid, ImgInfo imgInfo, String picUrls, MultipartHttpServletRequest fileRequest)
+            throws GoodsEvaluateException, Exception {
+        if (StringUtil.isNullOrEmpty(pid)) {
+            throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
+        }
 
-		// 涓�寮犲浘鏄剧ず涓哄ぇ鍥�
-		if (tempList.size() == 1) {
-			tempList.get(0).setLarge(true);
-		}
+        GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
+        if (resultObj == null)
+            throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
 
-		if (tempList.size() > 0) {
-			listImg.addAll(tempList);
-		}
+        if (imgInfo == null || StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
+            throw new GoodsEvaluateException(1, "娲诲姩閾炬帴涓嶈兘涓虹┖");
+        }
 
-		// 娓呯悊鑰佸浘鐗�
-		if (listOld != null && listOld.size() > 0) {
-			for (ImgInfo infoOld : listOld) {
-				boolean del = true;
-				String oldPic = infoOld.getUrl();
-				for (ImgInfo info : listImg) {
-					if (info.getUrl().equals(oldPic)) {
-						del = false;
-					}
-				}
-				if (del)
-					listDel.add(infoOld.getUrl());
-			}
-		}
+        ImgInfo imgVideo = null;
+        List<String> listDel = new ArrayList<String>();
+        List<ImgInfo> listOld = new ArrayList<ImgInfo>();
+        List<ImgInfo> resultList = resultObj.getImgList();
+        if (resultList != null && resultList.size() > 0) {
+            for (ImgInfo info : resultList) {
+                if (info.getType() == ImgEnum.video) {
+                    imgVideo = info;
+                } else {
+                    listOld.add(info);
+                }
+            }
+        }
 
-		resultObj.setJumpLink(activityUrl);
-		resultObj.setLineNum(lineNum);
-		resultObj.setImgList(listImg);
-		goodsEvaluateDao.save(resultObj);
+        // 瑙嗛閮ㄥ垎
+        if (fileRequest != null) {
+            MultipartFile filevideo = fileRequest.getFile("filevideo");
+            if (filevideo != null) {
+                if (StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
+                    throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
+                }
+                ImgInfo info = uploadVideoPicture(filevideo);
+                if (info == null)
+                    throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
+                if (imgVideo != null) {
+                    String url = imgVideo.getUrl();
+                    if (!StringUtil.isNullOrEmpty(url)) {
+                        listDel.add(url);
+                    }
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                } else {
+                    imgVideo = new ImgInfo();
+                    imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
+                    imgVideo.setLarge(true);
+                    imgVideo.setPid(pid);
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                    imgVideo.setVideoUrl(imgInfo.getVideoUrl());
+                    imgVideo.setType(ImgEnum.video);
+                }
+                imgVideo.setW(info.getW());
+                imgVideo.setH(info.getH());
+            }
+        }
 
-		// 鍒犻櫎鍥剧墖
-		if (listDel.size() > 0) {
-			for (String url : listDel) {
-				if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
-					removePicture(url);
-				}
-			}
-		}
-	}
+        List<ImgInfo> listImg = new ArrayList<ImgInfo>();
+        if (imgVideo != null) {
+            if (!StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
+                if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
+                    throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
+                }
+                imgVideo.setVideoUrl(imgInfo.getVideoUrl());
+                listImg.add(imgVideo);
+            } else {
+                String url = imgVideo.getUrl();
+                if (!StringUtil.isNullOrEmpty(url)) {
+                    listDel.add(url);
+                }
+            }
+        }
 
-	@Override
-	public void saveSuCai(String pid, String videoUrl, String picUrls, MultipartHttpServletRequest fileRequest)
-			throws GoodsEvaluateException, Exception {
-		if (StringUtil.isNullOrEmpty(pid)) {
-			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
-		}
+        String activityUrl = imgInfo.getActivityUrl();
+        // 缂栬緫鍥剧墖
+        List<ImgInfo> tempList = new ArrayList<ImgInfo>();
+        if (!StringUtil.isNullOrEmpty(picUrls)) {
+            String[] pics = picUrls.split(",");
+            if (pics != null) {
+                for (int i = 0; i < pics.length; i++) {
+                    String picLink = pics[i];
+                    if (picLink.startsWith("http")) {
+                        if (listOld != null) {
+                            for (ImgInfo info : listOld) {
+                                if (info.getUrl().equals(picLink)) {
+                                    info.setActivityUrl(activityUrl);
+                                    tempList.add(info);
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+        // 涓婁紶鏂囦欢鏇挎崲
+        if (fileRequest != null) {
+            for (int i = 0; i < 9; i++) {
+                MultipartFile file = fileRequest.getFile("file" + i);
+                if (file != null) {
+                    ImgInfo info = uploadOriginalPicture(file);
+                    ImgInfo imgInfo0 = new ImgInfo();
+                    imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
+                    imgInfo0.setLarge(false);
+                    imgInfo0.setPid(pid);
+                    imgInfo0.setUrl(info.getUrl());
+                    imgInfo0.setUrlHD(info.getUrl());
+                    imgInfo0.setType(ImgEnum.activity);
+                    imgInfo0.setW(info.getW());
+                    imgInfo0.setH(info.getH());
+                    imgInfo0.setActivityUrl(activityUrl);
+                    if (i < tempList.size()) {
+                        tempList.set(i, imgInfo0);
+                    } else {
+                        tempList.add(imgInfo0);
+                    }
+                }
+            }
+        }
 
-		// 鍘熷皝瑙嗛闈㈠浘
-		ImgInfo imgVideo = null;
-		ImgInfo imgActivity = null;
-		List<String> listDel = new ArrayList<String>();
-		List<String> listOld = new ArrayList<String>();
+        int lineNum = 0;
+        int totalImg = tempList.size();
+        if (totalImg > 0) {
+            if (totalImg == 1) {
+                lineNum = 1;
+            } else if (totalImg == 3) {
+                lineNum = 3;
+            } else if (totalImg == 2 || totalImg == 4) {
+                lineNum = 2;
+            } else {
+                lineNum = 3;
+            }
+        }
 
-		List<ImgInfo> listOldImgInfo = new ArrayList<ImgInfo>();
-		// 澶勭悊鍥剧墖
-		List<ImgInfo> resultList = resultObj.getImgList();
-		if (resultList != null && resultList.size() > 0) {
-			for (ImgInfo info : resultList) {
-				ImgEnum type = info.getType();
-				if (type == ImgEnum.video) {
-					imgVideo = info;
-				} else if (type == ImgEnum.img) {
-					listOldImgInfo.add(info);
-					String url = info.getUrl();
-					if (!StringUtil.isNullOrEmpty(url)) {
-						listOld.add(url);
-					}
-				} else if (type == ImgEnum.activity) {
-					imgActivity = info;
-				}
-			}
-		}
+        // 涓�寮犲浘鏄剧ず涓哄ぇ鍥�
+        if (tempList.size() == 1) {
+            tempList.get(0).setLarge(true);
+        }
 
-		MultipartFile activityFile = null;
-		// 瑙嗛閮ㄥ垎
-		if (fileRequest != null) {
-			MultipartFile filevideo = fileRequest.getFile("filevideo");
-			if (filevideo != null) {
-				if (StringUtil.isNullOrEmpty(videoUrl)) {
-					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
-				}
-				ImgInfo info = uploadVideoPicture(filevideo);
-				if (info == null)
-					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
-				if (imgVideo != null) {
-					String url = imgVideo.getUrl();
-					if (!StringUtil.isNullOrEmpty(url)) {
-						listDel.add(url);
-					}
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-				} else {
-					imgVideo = new ImgInfo();
-					imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
-					imgVideo.setLarge(true);
-					imgVideo.setPid(pid);
-					imgVideo.setUrl(info.getUrl());
-					imgVideo.setUrlHD(info.getUrl());
-					imgVideo.setVideoUrl(videoUrl);
-					imgVideo.setType(ImgEnum.video);
-				}
-				imgVideo.setW(info.getW());
-				imgVideo.setH(info.getH());
-			}
+        if (tempList.size() > 0) {
+            listImg.addAll(tempList);
+        }
+
+        // 娓呯悊鑰佸浘鐗�
+        if (listOld != null && listOld.size() > 0) {
+            for (ImgInfo infoOld : listOld) {
+                boolean del = true;
+                String oldPic = infoOld.getUrl();
+                for (ImgInfo info : listImg) {
+                    if (info.getUrl().equals(oldPic)) {
+                        del = false;
+                    }
+                }
+                if (del)
+                    listDel.add(infoOld.getUrl());
+            }
+        }
+
+        resultObj.setJumpLink(activityUrl);
+        resultObj.setLineNum(lineNum);
+        resultObj.setImgList(listImg);
+        goodsEvaluateDao.save(resultObj);
+
+        // 鍒犻櫎鍥剧墖
+        if (listDel.size() > 0) {
+            for (String url : listDel) {
+                if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
+                    removePicture(url);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void saveSuCai(String pid, String videoUrl, String picUrls, MultipartHttpServletRequest fileRequest)
+            throws GoodsEvaluateException, Exception {
+        if (StringUtil.isNullOrEmpty(pid)) {
+            throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
+        }
+
+        GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
+        if (resultObj == null)
+            throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+
+        // 鍘熷皝瑙嗛闈㈠浘
+        ImgInfo imgVideo = null;
+        ImgInfo imgActivity = null;
+        List<String> listDel = new ArrayList<String>();
+        List<String> listOld = new ArrayList<String>();
+
+        List<ImgInfo> listOldImgInfo = new ArrayList<ImgInfo>();
+        // 澶勭悊鍥剧墖
+        List<ImgInfo> resultList = resultObj.getImgList();
+        if (resultList != null && resultList.size() > 0) {
+            for (ImgInfo info : resultList) {
+                ImgEnum type = info.getType();
+                if (type == ImgEnum.video) {
+                    imgVideo = info;
+                } else if (type == ImgEnum.img) {
+                    listOldImgInfo.add(info);
+                    String url = info.getUrl();
+                    if (!StringUtil.isNullOrEmpty(url)) {
+                        listOld.add(url);
+                    }
+                } else if (type == ImgEnum.activity) {
+                    imgActivity = info;
+                }
+            }
+        }
+
+        MultipartFile activityFile = null;
+        // 瑙嗛閮ㄥ垎
+        if (fileRequest != null) {
+            MultipartFile filevideo = fileRequest.getFile("filevideo");
+            if (filevideo != null) {
+                if (StringUtil.isNullOrEmpty(videoUrl)) {
+                    throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
+                }
+                ImgInfo info = uploadVideoPicture(filevideo);
+                if (info == null)
+                    throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
+                if (imgVideo != null) {
+                    String url = imgVideo.getUrl();
+                    if (!StringUtil.isNullOrEmpty(url)) {
+                        listDel.add(url);
+                    }
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                } else {
+                    imgVideo = new ImgInfo();
+                    imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
+                    imgVideo.setLarge(true);
+                    imgVideo.setPid(pid);
+                    imgVideo.setUrl(info.getUrl());
+                    imgVideo.setUrlHD(info.getUrl());
+                    imgVideo.setVideoUrl(videoUrl);
+                    imgVideo.setType(ImgEnum.video);
+                }
+                imgVideo.setW(info.getW());
+                imgVideo.setH(info.getH());
+            }
+
+            activityFile = fileRequest.getFile("activityFile");
+        }
+
+        List<ImgInfo> listImg = new ArrayList<ImgInfo>();
+        if (imgVideo != null) {
+            if (!StringUtil.isNullOrEmpty(videoUrl)) {
+                if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
+                    throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
+                }
+
+                imgVideo.setVideoUrl(videoUrl);
+                listImg.add(imgVideo);
+            } else {
+                String url = imgVideo.getUrl();
+                if (!StringUtil.isNullOrEmpty(url)) {
+                    listDel.add(url);
+                }
+            }
+        }
+
+        if (activityFile != null) {
+            InputStream inputStream = activityFile.getInputStream();
+            BufferedImage sourceImg = ImageIO.read(inputStream);
+            int width = sourceImg.getWidth();
+            int height = sourceImg.getHeight();
+
+            String picLink = uploadPicture(activityFile);
+
+            ImgInfo activity = new ImgInfo();
+            activity.setId(UUID.randomUUID().toString().replace("-", ""));
+            activity.setLarge(true);
+            activity.setPid(pid);
+            activity.setUrl(picLink);
+            activity.setUrlHD(picLink);
+            activity.setActivityPic(picLink);
+            activity.setW(width);
+            activity.setH(height);
+            activity.setType(ImgEnum.activity);
+            listImg.add(activity);
+        } else if (imgActivity != null) {
+            listImg.add(imgActivity);
+        }
+
+        // 缂栬緫鍥剧墖
+        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 (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);
+                    }
+                }
+            }
+        }
+
+        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) {
+            for (int j = 0; j < listOld.size(); j++) {
+                boolean del = true;
+                String oldPic = listOld.get(j);
+                for (ImgInfo imgInfo : listImg) {
+                    String url = imgInfo.getUrl();
+                    if (url.equals(oldPic)) {
+                        del = false;
+                    }
+                }
+                if (del)
+                    listDel.add(listOld.get(j));
+            }
+        }
+
+        int lineNum = 0;
+        if (totalImg > 0) {
+            if (totalImg == 1) {
+                lineNum = 1;
+            } else if (totalImg == 3) {
+                lineNum = 3;
+            } else if (totalImg == 2 || totalImg == 4) {
+                lineNum = 2;
+            } else {
+                lineNum = 3;
+            }
+        }
+
+        resultObj.setLineNum(lineNum);
+        resultObj.setImgList(listImg);
+        goodsEvaluateDao.save(resultObj);
+
+        // 鍒犻櫎鍥剧墖
+        if (listDel.size() > 0) {
+            for (String url : listDel) {
+                if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
+                    removePicture(url);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void deleteBatchByPrimaryKey(List<String> list) {
+        if (list == null || list.size() == 0) {
+            return;
+        }
+        for (String id : list) {
+            goodsEvaluateDao.deleteById(id);
+        }
+    }
+
+    @Override
+    public GoodsEvaluate getById(String id) {
+        return goodsEvaluateDao.getById(id);
+    }
+
+
+    @Override
+    public List<GoodsEvaluate> listByStartTime(Date date) {
+        return goodsEvaluateDao.listByStartTime(date);
+    }
+
+    @Override
+    public List<GoodsEvaluate> queryValidSortASC(int start, int count, EvaluateEnum tyepEnum, boolean sortDesc) {
+        return goodsEvaluateDao.queryValidSortASC(start, count, tyepEnum, sortDesc);
+    }
+
+
+    @Override
+    public List<GoodsEvaluate> queryValidZeroPoint(int start, int count) {
+        return goodsEvaluateDao.queryValidZeroPoint(start, count);
+    }
+
+
+    @Override
+    public void saveComment(String pid, CommentInfo commentInfo) throws GoodsEvaluateException {
+        GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(pid);
+        if (goodsEvaluate == null) {
+            throw new GoodsEvaluateException(1, "鍔ㄦ�佸凡涓嶅瓨鍦�");
+        }
+
+        String tags = commentInfo.getTags();
+        if (!StringUtil.isNullOrEmpty(tags)) {
+            String[] arrayTags = tags.split("\\s+");
+            if (arrayTags != null && arrayTags.length > 0) {
+                String[] arrayTagsColour = null;
+                String tagsColour = commentInfo.getTagsColour();
+                if (!StringUtil.isNullOrEmpty(tagsColour)) {
+                    arrayTagsColour = tagsColour.split("\\s+");
+                }
+
+                String color = "#E5005C";
+                List<ClientTextStyleVO> tagList = new ArrayList<ClientTextStyleVO>();
+                for (int i = 0; i < arrayTags.length; i++) {
+                    String tag = arrayTags[i];
+                    if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) {
+                        color = arrayTagsColour[i];
+                    }
+                    ClientTextStyleVO styleVO = new ClientTextStyleVO();
+                    styleVO.setColor(color);
+                    styleVO.setContent(tag);
+                    tagList.add(styleVO);
+                }
+                commentInfo.setTagList(tagList);
+            }
+        }
+
+        List<CommentInfo> comments = goodsEvaluate.getComments();
+        if (comments == null) {
+            comments = new ArrayList<>();
+        }
+
+        Integer weight = commentInfo.getWeight();
+        if (weight == null)
+            commentInfo.setWeight(1);
+
+        comments.add(commentInfo);
+
+        Collections.shuffle(comments);
+        Comparator<CommentInfo> cm = new Comparator<CommentInfo>() {
+            @Override
+            public int compare(CommentInfo o1, CommentInfo o2) {
+                return o1.getWeight() != null && o2.getWeight() != null ? o2.getWeight() - o1.getWeight() : 0;
+            }
+        };
+        Collections.sort(comments, cm);
+
+        goodsEvaluate.setComments(comments);
+        goodsEvaluateDao.save(goodsEvaluate);
+    }
+
+    @Override
+    public void release(String id) throws GoodsEvaluateException {
+        GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(id);
+        if (goodsEvaluate == null) {
+            throw new GoodsEvaluateException(1, "鍔ㄦ�佸凡涓嶅瓨鍦�");
+        }
+        goodsEvaluate.setState(1);
+        goodsEvaluateDao.save(goodsEvaluate);
+    }
+
+    @Override
+    public void deleteComment(String pid, List<String> list) throws GoodsEvaluateException {
+        if (list == null || list.size() == 0) {
+            return;
+        }
+        GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(pid);
+        if (goodsEvaluate == null) {
+            throw new GoodsEvaluateException(1, "鍔ㄦ�佸凡涓嶅瓨鍦�");
+        }
+
+        List<CommentInfo> comments = goodsEvaluate.getComments();
+        if (comments == null || comments.size() == 0) {
+            return;
+        }
+
+        for (String id : list) {
+            for (int i = 0; i < comments.size(); i++) {
+                CommentInfo commentInfo = comments.get(i);
+                if (id.equals(commentInfo.getId())) {
+                    comments.remove(i);
+                    i--;
+                }
+            }
+        }
+        goodsEvaluate.setComments(comments);
+        goodsEvaluateDao.save(goodsEvaluate);
+    }
+
+    @Override
+    public void addShareNum(String id) {
+        GoodsEvaluate article = goodsEvaluateDao.getById(id);
+        if (article != null) {
+            Integer num = article.getShareNum();
+            if (num == null) {
+                num = 0;
+            }
+            article.setShareNum(num + 1);
+
+            Integer numReal = article.getShareNumReal();
+            if (numReal == null) {
+                numReal = 0;
+            }
+            article.setShareNumReal(numReal + 1);
+
+            goodsEvaluateDao.save(article);
+        }
+    }
+
+    @Override
+    public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType,
+                                     String typeEnum, SystemEnum system) {
+        return goodsEvaluateDao.query(start, count, key, state, dynamicType, typeEnum, system);
+    }
+
+    @Override
+    public long count(String key, Integer state, int dynamicType, String typeEnum, SystemEnum system) {
+        return goodsEvaluateDao.count(key, state, dynamicType, typeEnum, system);
+    }
+
+    @Override
+    public void addRanDomShareCount(SystemEnum system) {
+        // 鍙戝湀
+        try {
+            List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 1, system);
+            if (list != null) {
+                for (GoodsEvaluate goodsEvaluate : list) {
+                    Integer shareNum = goodsEvaluate.getShareNum();
+                    if (shareNum == null) {
+                        shareNum = 0;
+                    }
+                    goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
+                    goodsEvaluateDao.save(goodsEvaluate);
+                }
+            }
+        } catch (Exception e) {
+            LogHelper.errorDetailInfo(e);
+        }
+
+        // 绱犳潗
+        try {
+            List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 2, system);
+            if (list != null) {
+                for (GoodsEvaluate goodsEvaluate : list) {
+                    Integer shareNum = goodsEvaluate.getShareNum();
+                    if (shareNum == null) {
+                        shareNum = 0;
+                    }
+                    goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
+                    goodsEvaluateDao.save(goodsEvaluate);
+                }
+            }
+        } catch (Exception e) {
+            LogHelper.errorDetailInfo(e);
+        }
+    }
+
+    @Override
+    @Cacheable(value = "dynamicCache", key = "'queryValidEvaluateCache-'+#start")
+    public List<GoodsEvaluate> queryValidEvaluateCache(int start, int count, SystemEnum system) {
+        List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, 1, system);
+
+        // 鏇存柊鍟嗗搧淇℃伅
+        executor.execute(new Runnable() {
+            @Override
+            public void run() {
+                // 鏇存柊淇℃伅
+                updateGoodInfo(list);
+
+                // 鍒犻櫎宸茶繃鏈�
+                removeOverdue();
+
+                removeDownGoods();
+            }
+        });
+
+        return list;
+    }
+
+    @Override
+    public long countValid(SystemEnum system) {
+        return goodsEvaluateDao.countValid(1, system);
+    }
 
-			activityFile = fileRequest.getFile("activityFile");
-		}
+    @Override
+    @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type+'-'+#system")
+    public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type, SystemEnum system) throws Exception {
+        List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type, system);
+        if (list == null) {
+            list = new ArrayList<>();
+        }
+        Date now = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
-		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
-		if (imgVideo != null) {
-			if (!StringUtil.isNullOrEmpty(videoUrl)) {
-				if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
-					throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
-				}
+        List<GoodsEvaluate> listNew = new ArrayList<>();
+        for (GoodsEvaluate goodsEvaluate : list) {
+            GoodsEvaluate evaluateNew = new GoodsEvaluate();
+            try {
+                PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
+            } catch (Exception e) {
+                e.printStackTrace();
+                continue;
+            }
 
-				imgVideo.setVideoUrl(videoUrl);
-				listImg.add(imgVideo);
-			} else {
-				String url = imgVideo.getUrl();
-				if (!StringUtil.isNullOrEmpty(url)) {
-					listDel.add(url);
-				}
-			}
-		}
+            // 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐��
+            evaluateNew.setPublishTime(evaluateNew.getStartTime());
 
-		if (activityFile != null) {
-			InputStream inputStream = activityFile.getInputStream();
-			BufferedImage sourceImg = ImageIO.read(inputStream);
-			int width = sourceImg.getWidth();
-			int height = sourceImg.getHeight();
+            List<CommentInfo> comments = evaluateNew.getComments();
+            if (comments != null && comments.size() > 0) {
+                EvaluateEnum typeEnum = evaluateNew.getType();
+                List<CommentInfo> commentNew = new ArrayList<>();
 
-			String picLink = uploadPicture(activityFile);
+                boolean singleCoupn = true;
+                boolean currencyCoupon = true;
+                for (CommentInfo commentInfo : comments) {
+                    if (StringUtil.isNullOrEmpty(commentInfo.getContent())
+                            && StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
+                        continue;
+                    }
 
-			ImgInfo activity = new ImgInfo();
-			activity.setId(UUID.randomUUID().toString().replace("-", ""));
-			activity.setLarge(true);
-			activity.setPid(pid);
-			activity.setUrl(picLink);
-			activity.setUrlHD(picLink);
-			activity.setActivityPic(picLink);
-			activity.setW(width);
-			activity.setH(height);
-			activity.setType(ImgEnum.activity);
-			listImg.add(activity);
-		} else if (imgActivity != null) {
-			listImg.add(imgActivity);
-		}
+                    CommentInfo commentInfoNew = new CommentInfo();
+                    try {
+                        PropertyUtils.copyProperties(commentInfoNew, commentInfo);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        continue;
+                    }
 
-		// 缂栬緫鍥剧墖
-		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 (picLink.startsWith("http")) {
-						listpic.add(picLink);
-					}
-				}
-			}
-		}
+                    if (typeEnum != null && typeEnum == EvaluateEnum.single) {
+                        GoodsDetailVO goods = evaluateNew.getGoods();
+                        goods.setCreatetime(null);
+                        if (goods != null) {
+                            String content = commentInfoNew.getContent();
+                            if (!StringUtil.isNullOrEmpty(content)) {
+                                content = content.replace("[鍘熶环]",
+                                        MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
+                                if (goods.isHasCoupon()) {
+                                    content = content.replace("[鍒稿悗浠穄",
+                                            MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + "");
+                                } else {
+                                    singleCoupn = false;
+                                    content = content.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+                                    content = content.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+                                }
+                                content = content.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+                                // 鏇挎崲娣樺疂瀹樻柟娲诲姩
+                                List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
+                                for (String st : activityIdList)
+                                    content = content.replace(st, "");
+                                content = content.replace("{relationId}", "");
+                                if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) {
+                                    content = content.replace("\n", "<br>");
+                                }
+                                commentInfoNew.setContent(content);
+                            }
+                        }
+                    }
+                    if (typeEnum != null && typeEnum == EvaluateEnum.activity) {
+                        // 鏇挎崲娣樺疂瀹樻柟娲诲姩
+                        String content = commentInfoNew.getContent();
+                        List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
+                        for (String st : activityIdList)
+                            content = content.replace(st, "");
+                        content = content.replace("{relationId}", "");
 
-		// 涓婁紶鏂囦欢鏇挎崲
-		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);
-					}
-				}
-			}
-		}
+                        commentInfoNew.setContent(content);
+                    }
 
-		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++;
-		}
+                    CommentInfoEnum typeComment = commentInfoNew.getTypeEnum();
+                    if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) {
+                        GoodsDetailVO goods = evaluateNew.getGoods();
+                        goods.setCreatetime(null);
+                        if (goods != null && goods.isHasCoupon()) {
+                            commentNew.add(commentInfoNew);
+                            continue;
+                        }
+                    }
 
-		// 娓呯悊鑰佸浘鐗�
-		if (listOld != null && listOld.size() > 0) {
-			for (int j = 0; j < listOld.size(); j++) {
-				boolean del = true;
-				String oldPic = listOld.get(j);
-				for (ImgInfo imgInfo : listImg) {
-					String url = imgInfo.getUrl();
-					if (url.equals(oldPic)) {
-						del = false;
-					}
-				}
-				if (del)
-					listDel.add(listOld.get(j));
-			}
-		}
+                    String coupon = commentInfoNew.getCoupon();
+                    String endTime = commentInfoNew.getEndTime();
+                    if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
+                        Date endDay = sdf.parse(endTime);
+                        if (endDay.getTime() > now.getTime()) {
+                            String daysBetween = DateUtil.dateDiff5(now, endDay);
+                            if (!StringUtil.isNullOrEmpty(daysBetween)) {
+                                List<ClientTextStyleVO> tagListNew = new ArrayList<>();
+                                List<ClientTextStyleVO> tagList = commentInfoNew.getTagList();
+                                if (tagList != null) {
+                                    tagListNew.addAll(tagList);
+                                }
 
-		int lineNum = 0;
-		if (totalImg > 0) {
-			if (totalImg == 1) {
-				lineNum = 1;
-			} else if (totalImg == 3) {
-				lineNum = 3;
-			} else if (totalImg == 2 || totalImg == 4) {
-				lineNum = 2;
-			} else {
-				lineNum = 3;
-			}
-		}
+                                ClientTextStyleVO styleVO = new ClientTextStyleVO();
+                                styleVO.setColor("#E5005C");
+                                styleVO.setContent(daysBetween + "鍚庤繃鏈�");
+                                tagListNew.add(styleVO);
+                                commentInfoNew.setTagList(tagListNew);
+                                commentNew.add(commentInfoNew);
+                                continue;
+                            } else {
+                                currencyCoupon = false;
+                                continue;
+                            }
+                        } else {
+                            currencyCoupon = false;
+                            continue;
+                        }
+                    }
 
-		resultObj.setLineNum(lineNum);
-		resultObj.setImgList(listImg);
-		goodsEvaluateDao.save(resultObj);
+                    commentNew.add(commentInfoNew);
+                }
+                evaluateNew.setComments(commentNew);
 
-		// 鍒犻櫎鍥剧墖
-		if (listDel.size() > 0) {
-			for (String url : listDel) {
-				if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
-					removePicture(url);
-				}
-			}
-		}
-	}
+                if (typeEnum != null && typeEnum == EvaluateEnum.single) {
 
-	@Override
-	public void deleteBatchByPrimaryKey(List<String> list) {
-		if (list == null || list.size() == 0) {
-			return;
-		}
-		for (String id : list) {
-			goodsEvaluateDao.deleteById(id);
-		}
-	}
+                    if (!SystemInfoUtil.hasFunctions(system, SystemFunction.share)) {
+                        List<ImgInfo> imgList = evaluateNew.getImgList();
+                        if (imgList != null) {
+                            for (ImgInfo imgInfo : imgList) {
+                                imgInfo.setGoods(null);
+                                if (imgInfo.getType() == ImgEnum.goods)
+                                    imgInfo.setType(ImgEnum.img);
+                            }
+                        }
+                    }
 
-	@Override
-	public GoodsEvaluate getById(String id) {
-		return goodsEvaluateDao.getById(id);
-	}
-	
-	
-	@Override
-	public List<GoodsEvaluate> listByStartTime(Date date) {
-		return goodsEvaluateDao.listByStartTime(date);
-	}
 
-	@Override
-	public List<GoodsEvaluate> queryValidSortASC(int start, int count, EvaluateEnum tyepEnum, boolean sortDesc) {
-		return goodsEvaluateDao.queryValidSortASC(start, count, tyepEnum, sortDesc);
-	}
-	
-	
-	@Override
-	public void saveComment(String pid, CommentInfo commentInfo) throws GoodsEvaluateException {
-		GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(pid);
-		if (goodsEvaluate == null) {
-			throw new GoodsEvaluateException(1, "鍔ㄦ�佸凡涓嶅瓨鍦�");
-		}
+                    if (!currencyCoupon && !singleCoupn) { // 鎵�鏈夊埜璇勮涓嬫灦
+                        GoodsDetailVO goods = evaluateNew.getGoods();
+                        if (goods != null) {
+                            goods.setCreatetime(null);
+                            goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦
+                            evaluateNew.setRemarks("璇勮楠岃瘉涓嬫灦");
+                        }
 
-		String tags = commentInfo.getTags();
-		if (!StringUtil.isNullOrEmpty(tags)) {
-			String[] arrayTags = tags.split("\\s+");
-			if (arrayTags != null && arrayTags.length > 0) {
-				String[] arrayTagsColour = null;
-				String tagsColour = commentInfo.getTagsColour();
-				if (!StringUtil.isNullOrEmpty(tagsColour)) {
-					arrayTagsColour = tagsColour.split("\\s+");
-				}
+                        List<ImgInfo> imgList = evaluateNew.getImgList();
+                        if (imgList != null) {
+                            for (ImgInfo imgInfo : imgList) {
+                                SimpleGoods simpleGoods = imgInfo.getGoods();
+                                if (simpleGoods != null) {
+                                    simpleGoods.setState(1);
+                                    simpleGoods.setRemarks("璇勮楠岃瘉涓嬫灦");
+                                }
+                                if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) {
+                                    imgInfo.setGoods(null);
+                                }
+                            }
 
-				String color = "#E5005C";
-				List<ClientTextStyleVO> tagList = new ArrayList<ClientTextStyleVO>();
-				for (int i = 0; i < arrayTags.length; i++) {
-					String tag = arrayTags[i];
-					if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) {
-						color = arrayTagsColour[i];
-					}
-					ClientTextStyleVO styleVO = new ClientTextStyleVO();
-					styleVO.setColor(color);
-					styleVO.setContent(tag);
-					tagList.add(styleVO);
-				}
-				commentInfo.setTagList(tagList);
-			}
-		}
+                        }
+                    }
+                }
+            }
 
-		List<CommentInfo> comments = goodsEvaluate.getComments();
-		if (comments == null) {
-			comments = new ArrayList<>();
-		}
+            listNew.add(evaluateNew);
+        }
 
-		Integer weight = commentInfo.getWeight();
-		if (weight == null)
-			commentInfo.setWeight(1);
+        List<GoodsEvaluate> listOBJ = list;
+        // 鏇存柊鍟嗗搧淇℃伅
+        executor.execute(new
 
-		comments.add(commentInfo);
+                                 Runnable() {
+                                     @Override
+                                     public void run() {
+                                         updateGoodInfo(listOBJ);
 
-		Collections.shuffle(comments);
-		Comparator<CommentInfo> cm = new Comparator<CommentInfo>() {
-			@Override
-			public int compare(CommentInfo o1, CommentInfo o2) {
-				return o1.getWeight() != null && o2.getWeight() != null ? o2.getWeight() - o1.getWeight() : 0;
-			}
-		};
-		Collections.sort(comments, cm);
+                                         // 鍒犻櫎宸茶繃鏈�
+                                         removeOverdue();
 
-		goodsEvaluate.setComments(comments);
-		goodsEvaluateDao.save(goodsEvaluate);
-	}
+                                         removeDownGoods();
+                                     }
+                                 });
 
-	@Override
-	public void release(String id) throws GoodsEvaluateException {
-		GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(id);
-		if (goodsEvaluate == null) {
-			throw new GoodsEvaluateException(1, "鍔ㄦ�佸凡涓嶅瓨鍦�");
-		}
-		goodsEvaluate.setState(1);
-		goodsEvaluateDao.save(goodsEvaluate);
-	}
+        return listNew;
+    }
 
-	@Override
-	public void deleteComment(String pid, List<String> list) throws GoodsEvaluateException {
-		if (list == null || list.size() == 0) {
-			return;
-		}
-		GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(pid);
-		if (goodsEvaluate == null) {
-			throw new GoodsEvaluateException(1, "鍔ㄦ�佸凡涓嶅瓨鍦�");
-		}
+    @Override
+    public long countValidMaterials(int type, SystemEnum system) {
+        return goodsEvaluateDao.countValid(type, system);
+    }
 
-		List<CommentInfo> comments = goodsEvaluate.getComments();
-		if (comments == null || comments.size() == 0) {
-			return;
-		}
+    /**
+     * 鏇存柊鍟嗗搧淇℃伅
+     */
+    public void updateGoodInfo(List<GoodsEvaluate> list) {
+        if (!Constant.IS_OUTNET) {
+            return; // 澶栫綉杩涜鏇存柊
+        }
 
-		for (String id : list) {
-			for (int i = 0; i < comments.size(); i++) {
-				CommentInfo commentInfo = comments.get(i);
-				if (id.equals(commentInfo.getId())) {
-					comments.remove(i);
-					i--;
-				}
-			}
-		}
-		goodsEvaluate.setComments(comments);
-		goodsEvaluateDao.save(goodsEvaluate);
-	}
+        if (list == null || list.size() == 0) {
+            return;
+        }
 
-	@Override
-	public void addShareNum(String id) {
-		GoodsEvaluate article = goodsEvaluateDao.getById(id);
-		if (article != null) {
-			Integer num = article.getShareNum();
-			if (num == null) {
-				num = 0;
-			}
-			article.setShareNum(num + 1);
+        try {
+            Date now = new Date();
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
-			Integer numReal = article.getShareNumReal();
-			if (numReal == null) {
-				numReal = 0;
-			}
-			article.setShareNumReal(numReal + 1);
+            for (GoodsEvaluate goodsEvaluate : list) {
+                GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", goodsEvaluate.getSystem());
+                params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(goodsEvaluate.getSystem()));
+                // 鏄惁2涓皬鏃朵箣鍐呭凡鏇存柊
+                Date updateTime = goodsEvaluate.getUpdateTime();
+                if (updateTime != null) {
+                    long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
+                    long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
+                    long diff = System.currentTimeMillis() - updateTime.getTime();
+                    long day = diff / nd;// 璁$畻宸灏戝ぉ
+                    long hour = diff % nd / nh + day * 24;// 璁$畻宸灏戝皬鏃�
+                    if (hour < 2) {
+                        continue;
+                    }
+                }
 
-			goodsEvaluateDao.save(article);
-		}
-	}
+                EvaluateEnum type = goodsEvaluate.getType();
+                if (type != null && type == EvaluateEnum.activity) {
+                    List<CommentInfo> comments = goodsEvaluate.getComments();
+                    if (comments != null) {
+                        for (CommentInfo commentInfo : comments) {
+                            CommentInfoEnum commentInfoEnum = commentInfo.getTypeEnum();
+                            if (commentInfoEnum != null && commentInfoEnum == CommentInfoEnum.currencyCoupon) {
+                                String endTime = commentInfo.getEndTime();
+                                if (!StringUtil.isNullOrEmpty(endTime)) {
+                                    Date endDay = format.parse(endTime);
+                                    if (endDay.getTime() < now.getTime()) {
+                                        goodsEvaluate.setState(0); // 娲诲姩杩囨湡
+                                    }
+                                }
+                            }
 
-	@Override
-	public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType,
-			String typeEnum) {
-		return goodsEvaluateDao.query(start, count, key, state, dynamicType, typeEnum);
-	}
+                        }
+                    }
+                }
 
-	@Override
-	public long count(String key, Integer state, int dynamicType, String typeEnum) {
-		return goodsEvaluateDao.count(key, state, dynamicType, typeEnum);
-	}
+                GoodsDetailVO goods = goodsEvaluate.getGoods();
+                if (goods != null) {
+                    GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), params);
+                    if (goodsNew != null) {
+                        goodsEvaluate.setGoods(goodsNew);
+                    } else {
+                        goodsEvaluate.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
+                        goodsEvaluate.setState(0); // 宸插晢鍝佷笅鏋�
+                        goods.setState(1);
+                        goodsEvaluate.setGoods(goods);
+                    }
+                }
+                // 鏇存柊鍟嗗搧淇℃伅
+                List<ImgInfo> imgList = goodsEvaluate.getImgList();
+                if (imgList == null || imgList.size() == 0) {
+                    continue;
+                }
 
-	@Override
-	public void addRanDomShareCount() {
-		// 鍙戝湀
-		try {
-			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 1);
-			if (list != null) {
-				for (GoodsEvaluate goodsEvaluate : list) {
-					Integer shareNum = goodsEvaluate.getShareNum();
-					if (shareNum == null) {
-						shareNum = 0;
-					}
-					goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
-					goodsEvaluateDao.save(goodsEvaluate);
-				}
-			}
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
-		}
+                for (ImgInfo imgInfo : imgList) {
+                    SimpleGoods simpleGoods = imgInfo.getGoods();
+                    if (simpleGoods == null) {
+                        continue;
+                    }
 
-		// 绱犳潗
-		try {
-			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 2);
-			if (list != null) {
-				for (GoodsEvaluate goodsEvaluate : list) {
-					Integer shareNum = goodsEvaluate.getShareNum();
-					if (shareNum == null) {
-						shareNum = 0;
-					}
-					goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
-					goodsEvaluateDao.save(goodsEvaluate);
-				}
-			}
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
-		}
-	}
+                    GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(),
+                            params);
+                    if (goodsDetailVO != null) {
+                        simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
+                        simpleGoods.setState(0);
+                        CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
+                        if (couponInfo == null) {
+                            simpleGoods.setPrice(goodsDetailVO.getZkPrice());
+                        } else {
+                            simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
+                            simpleGoods.setAmount(couponInfo.getAmount());
+                        }
+                        imgInfo.setGoods(simpleGoods);
+                        imgInfo.setGoodsVO(goodsDetailVO);
+                    } else {
+                        simpleGoods.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
+                        simpleGoods.setState(1);
+                        imgInfo.setGoods(simpleGoods);
+                        GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
+                        if (goodsVO != null) {
+                            goodsVO.setState(1);
+                            imgInfo.setGoodsVO(goodsVO);
+                        }
+                    }
+                }
+                goodsEvaluate.setImgList(imgList);
+                goodsEvaluate.setUpdateTime(new Date());
+                goodsEvaluateDao.save(goodsEvaluate);
+            }
+        } catch (Exception e) {
+            LogHelper.errorDetailInfo(e);
+        }
+    }
 
-	@Override
-	@Cacheable(value = "dynamicCache", key = "'queryValidEvaluateCache-'+#start")
-	public List<GoodsEvaluate> queryValidEvaluateCache(int start, int count) {
-		List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, 1);
+    private GoodsDetailVO getGoodsNewInfo(String goodsId, int goodsType, GoodsMoneyConfigParamsDTO paramsDTO) {
+        GoodsDetailVO vo = null;
+        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+            TaoBaoGoodsBrief goods;
+            try {
+                goods = redisManager.getTaoBaoGoodsBrief(goodsId);
+                if (goods != null) {
+                    vo = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
+                }
+            } catch (TaobaoGoodsDownException e) {
+                e.printStackTrace();
+            }
 
-		// 鏇存柊鍟嗗搧淇℃伅
-		executor.execute(new Runnable() {
-			@Override
-			public void run() {
-				// 鏇存柊淇℃伅
-				updateGoodInfo(list);
+        } else if (goodsType == Constant.SOURCE_TYPE_JD) {
+            JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+            if (goodsInfo != null) {
+                vo = GoodsDetailVOFactory.convertJDGoods(goodsInfo, paramsDTO);
+            }
+        } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+            PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+            if (goodsInfo != null)
+                vo = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, paramsDTO);
+        }
+        return vo;
+    }
 
-				// 鍒犻櫎宸茶繃鏈�
-				removeOverdue();
+    @Override
+    public void addGoodsEvaluate(String goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment,
+                                 Date startTime, SystemEnum system) throws GoodsEvaluateException {
+        if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) {
+            throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
+        }
 
-				removeDownGoods();
-			}
-		});
+        Date limitDate = DateUtil.reduceDay(new Date(), 7);
 
-		return list;
-	}
+        List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId, limitDate);
+        if (evaluateList != null && evaluateList.size() > 0)
+            throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪");
 
-	@Override
-	public long countValid() {
-		return goodsEvaluateDao.countValid(1);
-	}
+        TaoBaoGoodsBrief goodsBrief = null;
+        try {
+            goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+        } catch (TaobaoGoodsDownException e) {
+            throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
+        }
 
-	@Override
-	@Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
-	public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception {
-		List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type);
-		if (list == null) {
-			list = new ArrayList<>();
-		}
-		Date now = new Date();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (goodsBrief == null) {
+            throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�");
+        }
 
-		List<GoodsEvaluate> listNew = new ArrayList<>();
-		for (GoodsEvaluate goodsEvaluate : list) {
-			GoodsEvaluate evaluateNew = new GoodsEvaluate();
-			try {
-				PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
-			} catch (Exception e) {
-				e.printStackTrace();
-				continue;
-			}
+        BigDecimal couponAmount = goodsBrief.getCouponAmount();
+        if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
+            throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�");
+        }
 
-			// 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐��
-			evaluateNew.setPublishTime(evaluateNew.getStartTime());
+        // 鐧藉簳鍥�
+        List<String> imgs = new ArrayList<>();
 
-			List<CommentInfo> comments = evaluateNew.getComments();
-			if (comments != null && comments.size() > 0) {
-				EvaluateEnum typeEnum = evaluateNew.getType();
-				List<CommentInfo> commentNew = new ArrayList<>();
+        imgs.addAll(goodsBrief.getImgList());
 
-				boolean singleCoupn = true;
-				boolean currencyCoupon = true;
-				for (CommentInfo commentInfo : comments) {
-					if (StringUtil.isNullOrEmpty(commentInfo.getContent())
-							&& StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
-						continue;
-					}
+        // 鍟嗗搧VO
+        GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+        GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
 
-					CommentInfo commentInfoNew = new CommentInfo();
-					try {
-						PropertyUtils.copyProperties(commentInfoNew, commentInfo);
-					} catch (Exception e) {
-						e.printStackTrace();
-						continue;
-					}
+        // 鍟嗗搧鍥剧墖淇℃伅
+        int i = 0;
+        if (imgList == null)
+            imgList = new ArrayList<ImgInfo>();
 
-					if (typeEnum != null && typeEnum == EvaluateEnum.single) {
-						GoodsDetailVO goods = evaluateNew.getGoods();
-						if (goods != null) {
-							String content = commentInfoNew.getContent();
-							if (!StringUtil.isNullOrEmpty(content)) {
-								content = content.replace("[鍘熶环]",
-										MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
-								if (goods.isHasCoupon()) {
-									content = content.replace("[鍒稿悗浠穄",
-											MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + "");
-								} else {
-									singleCoupn = false;
-									content = content.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-									content = content.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-								}
-								content = content.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
-								// 鏇挎崲娣樺疂瀹樻柟娲诲姩
-								List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
-								for (String st : activityIdList)
-									content = content.replace(st, "");
+        if (imgList.size() == 0)
+            for (String img : imgs) {
+                ImgInfo imgInfo = new ImgInfo();
+                imgInfo.setH(1);
+                imgInfo.setW(1);
+                imgInfo.setLarge(false);
+                imgInfo.setUrl(img);
+                imgInfo.setUrlHD(img);
+                if (i != 0) {
+                    imgInfo.setType(ImgEnum.img);
+                } else {
+                    imgInfo.setType(ImgEnum.goods);
+                    SimpleGoods simpleGoods = new SimpleGoods();
+                    simpleGoods.setGoodsId(goodsVO.getGoodsId());
+                    simpleGoods.setGoodsType(goodsVO.getGoodsType());
+                    simpleGoods.setState(goodsVO.getState());
+                    CouponInfoVO couponInfo = goodsVO.getCouponInfo();
+                    if (couponInfo == null) {
+                        simpleGoods.setPrice(goodsVO.getZkPrice());
+                    } else {
+                        simpleGoods.setPrice(goodsVO.getCouponPrice());
+                        simpleGoods.setAmount(couponInfo.getAmount());
+                    }
+                    imgInfo.setGoods(simpleGoods);
+                    imgInfo.setGoodsVO(goodsVO);
+                }
+                imgList.add(imgInfo);
+                i++;
+            }
 
-								commentInfoNew.setContent(content);
-							}
-						}
-					}
-					if (typeEnum != null && typeEnum == EvaluateEnum.activity) {
-						// 鏇挎崲娣樺疂瀹樻柟娲诲姩
-						String content = commentInfoNew.getContent();
-						List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
-						for (String st : activityIdList)
-							content = content.replace(st, "");
-						commentInfoNew.setContent(content);
-					}
+        // 璇勮鍐呭
+        CommentInfo commentInfo = new CommentInfo();
+        commentInfo.setNeedSpin(true);
+        commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+        commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+        if (!StringUtil.isNullOrEmpty(comment)) {
+            commentInfo.setContent(comment);
+            commentInfo.setType("");
+        } else {
+            goodsBrief.setCouponLink(null);
+            String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
+            String template = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(), system);
+            String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
+            if (!goodsVO.isHasCoupon()) {
+                commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+                commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+                commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
+                        "\r\n");
+            }
+            commentInfo.setContent(commentText);
+            commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+        }
 
-					CommentInfoEnum typeComment = commentInfoNew.getTypeEnum();
-					if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) {
-						GoodsDetailVO goods = evaluateNew.getGoods();
-						if (goods != null && goods.isHasCoupon()) {
-							commentNew.add(commentInfoNew);
-							continue;
-						}
-					}
+        List<CommentInfo> commentsNew = new ArrayList<>();
+        commentsNew.add(commentInfo);
 
-					String coupon = commentInfoNew.getCoupon();
-					String endTime = commentInfoNew.getEndTime();
-					if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
-						Date endDay = sdf.parse(endTime);
-						if (endDay.getTime() > now.getTime()) {
-							String daysBetween = DateUtil.dateDiff5(now, endDay);
-							if (!StringUtil.isNullOrEmpty(daysBetween)) {
-								List<ClientTextStyleVO> tagListNew = new ArrayList<>();
-								List<ClientTextStyleVO> tagList = commentInfoNew.getTagList();
-								if (tagList != null) {
-									tagListNew.addAll(tagList);
-								}
+        // 涓�琛屾樉绀哄灏戜釜鍥剧墖
+        int lineNum = 0;
+        if (imgList.size() > 0) {
+            if (imgList.size() == 1) {
+                lineNum = 1;
+            } else if (imgList.size() == 3) {
+                lineNum = 3;
+            } else if (imgList.size() == 2 || imgList.size() == 4) {
+                lineNum = 2;
+            } else {
+                lineNum = 3;
+            }
+        }
 
-								ClientTextStyleVO styleVO = new ClientTextStyleVO();
-								styleVO.setColor("#E5005C");
-								styleVO.setContent(daysBetween + "鍚庤繃鏈�");
-								tagListNew.add(styleVO);
-								commentInfoNew.setTagList(tagListNew);
-								commentNew.add(commentInfoNew);
-								continue;
-							} else {
-								currencyCoupon = false;
-								continue;
-							}
-						} else {
-							currencyCoupon = false;
-							continue;
-						}
-					}
+        GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
+        goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+        goodsEvaluate.setUser(user);
+        goodsEvaluate.setTitle(getDescNew(title));
+        goodsEvaluate.setState(1);
+        goodsEvaluate.setDynamicType(1);
+        goodsEvaluate.setType(EvaluateEnum.single);
+        goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+        goodsEvaluate.setShareNumReal(0);
+        goodsEvaluate.setWeight(0.0);
+        if (startTime == null)
+            startTime = new Date();
+        goodsEvaluate.setStartTime(startTime);
+        goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
+        goodsEvaluate.setPublishTime(new Date());
+        goodsEvaluate.setCreateTime(new Date());
+        goodsEvaluate.setUpdateTime(new Date());
+        goodsEvaluate.setGoods(goodsVO);
+        goodsEvaluate.setLineNum(lineNum);
+        goodsEvaluate.setImgList(imgList);
+        goodsEvaluate.setComments(commentsNew);
+        goodsEvaluate.setSystem(system);
+        goodsEvaluateDao.save(goodsEvaluate);
+    }
 
-					commentNew.add(commentInfoNew);
-				}
-				evaluateNew.setComments(commentNew);
 
-				if (typeEnum != null && typeEnum == EvaluateEnum.single) {
-					if (!currencyCoupon && !singleCoupn) { // 鎵�鏈夊埜璇勮涓嬫灦
-						GoodsDetailVO goods = evaluateNew.getGoods();
-						if (goods != null) {
-							goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦
-							evaluateNew.setRemarks("璇勮楠岃瘉涓嬫灦");
-						}
+    @Override
+    public int addGoodsEvaluate(TaoBaoGoodsBrief goodsBrief, List<String> imgs, ActivityUser user, String title, SystemEnum system) throws GoodsEvaluateException {
+        if (goodsBrief == null || user == null || StringUtil.isNullOrEmpty(title)) {
+            throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
+        }
+        Date limitDate = DateUtil.reduceDay(new Date(), 7);
 
-						List<ImgInfo> imgList = evaluateNew.getImgList();
-						if (imgList != null) {
-							for (ImgInfo imgInfo : imgList) {
-								SimpleGoods simpleGoods = imgInfo.getGoods();
-								if (simpleGoods != null) {
-									simpleGoods.setState(1);
-									simpleGoods.setRemarks("璇勮楠岃瘉涓嬫灦");
-								}
-							}
+        String goodsId = goodsBrief.getAuctionId();
+        List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId + "", limitDate);
+        if (evaluateList != null && evaluateList.size() > 0)
+            throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪");
 
-						}
-					}
-				}
-			}
+        if (imgs == null) {
+            imgs = new ArrayList<>();
+        }
+        if (imgs.size() == 0) {
+            imgs.addAll(goodsBrief.getImgList());
+        }
 
-			listNew.add(evaluateNew);
-		}
+        // 鍟嗗搧VO
+        GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+        GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
 
-		List<GoodsEvaluate> listOBJ = list;
-		// 鏇存柊鍟嗗搧淇℃伅
-		executor.execute(new Runnable() {
-			@Override
-			public void run() {
-				updateGoodInfo(listOBJ);
+        // 鍟嗗搧鍥剧墖淇℃伅
+        int i = 0;
+        List<ImgInfo> imgList = new ArrayList<>();
 
-				// 鍒犻櫎宸茶繃鏈�
-				removeOverdue();
+        for (String img : imgs) {
+            ImgInfo imgInfo = new ImgInfo();
+            imgInfo.setH(1);
+            imgInfo.setW(1);
+            imgInfo.setLarge(false);
+            imgInfo.setUrl(img);
+            imgInfo.setUrlHD(img);
+            if (i != 0) {
+                imgInfo.setType(ImgEnum.img);
+            } else {
+                imgInfo.setType(ImgEnum.goods);
+                SimpleGoods simpleGoods = new SimpleGoods();
+                simpleGoods.setGoodsId(goodsVO.getGoodsId());
+                simpleGoods.setGoodsType(goodsVO.getGoodsType());
+                simpleGoods.setState(goodsVO.getState());
+                CouponInfoVO couponInfo = goodsVO.getCouponInfo();
+                if (couponInfo == null) {
+                    simpleGoods.setPrice(goodsVO.getZkPrice());
+                } else {
+                    simpleGoods.setPrice(goodsVO.getCouponPrice());
+                    simpleGoods.setAmount(couponInfo.getAmount());
+                }
+                imgInfo.setGoods(simpleGoods);
+                imgInfo.setGoodsVO(goodsVO);
+            }
+            imgList.add(imgInfo);
+            i++;
+        }
 
-				removeDownGoods();
-			}
-		});
 
-		return listNew;
-	}
+        // 鐢熸垚鍙d护
+        String token = null;
+        try {
+            TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, Constant.LINK_TOKEN_VERIFY_UID, goodsBrief.getAuctionId(), Constant.LINK_TOKEN_VERIFY_RELATION_ID, null);
+            token = taoBaoLink.getTaoToken();
+        } catch (TaoBaoConvertLinkException e) {
+            e.printStackTrace();
+            throw new GoodsEvaluateException(1, "杞摼澶辫触");
+        }
 
-	@Override
-	public long countValidMaterials(int type) {
-		return goodsEvaluateDao.countValid(type);
-	}
 
-	/**
-	 * 鏇存柊鍟嗗搧淇℃伅
-	 */
-	public void updateGoodInfo(List<GoodsEvaluate> list) {
-		if (!Constant.IS_OUTNET) {
-			return; // 澶栫綉杩涜鏇存柊
-		}
+        String template = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(), system);
+        String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
+        if (!goodsVO.isHasCoupon()) {
+            commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+            commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+            commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
+                    "\r\n");
+        }
+        // 璇勮鍐呭
+        CommentInfo commentInfo = new CommentInfo();
+        commentInfo.setNeedSpin(true);
+        commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+        commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+        commentInfo.setContent(commentText);
+        commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
 
-		if (list == null || list.size() == 0) {
-			return;
-		}
+        List<CommentInfo> commentsNew = new ArrayList<>();
+        commentsNew.add(commentInfo);
 
-		try {
-			Date now = new Date();
-			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-			ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-			params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-			for (GoodsEvaluate goodsEvaluate : list) {
-				// 鏄惁2涓皬鏃朵箣鍐呭凡鏇存柊
-				Date updateTime = goodsEvaluate.getUpdateTime();
-				if (updateTime != null) {
-					long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
-					long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
-					long diff = System.currentTimeMillis() - updateTime.getTime();
-					long day = diff / nd;// 璁$畻宸灏戝ぉ
-					long hour = diff % nd / nh + day * 24;// 璁$畻宸灏戝皬鏃�
-					if (hour < 2) {
-						continue;
-					}
-				}
+        // 涓�琛屾樉绀哄灏戜釜鍥剧墖
+        int lineNum = 0;
+        if (imgList.size() > 0) {
+            if (imgList.size() == 1) {
+                lineNum = 1;
+            } else if (imgList.size() == 3) {
+                lineNum = 3;
+            } else if (imgList.size() == 2 || imgList.size() == 4) {
+                lineNum = 2;
+            } else {
+                lineNum = 3;
+            }
+        }
 
-				EvaluateEnum type = goodsEvaluate.getType();
-				if (type != null && type == EvaluateEnum.activity) {
-					List<CommentInfo> comments = goodsEvaluate.getComments();
-					if (comments != null) {
-						for (CommentInfo commentInfo : comments) {
-							CommentInfoEnum commentInfoEnum = commentInfo.getTypeEnum();
-							if (commentInfoEnum != null && commentInfoEnum == CommentInfoEnum.currencyCoupon) {
-								String endTime = commentInfo.getEndTime();
-								if (!StringUtil.isNullOrEmpty(endTime)) {
-									Date endDay = format.parse(endTime);
-									if (endDay.getTime() < now.getTime()) {
-										goodsEvaluate.setState(0); // 娲诲姩杩囨湡
-									}
-								}
-							}
+        int result = 0;
+        int zeroPoint = 0;
+        // 鈽呮繁澶滃ぇ绂忓埄锛氬厛鎶㈠埜锛�0鐐瑰噯鏃朵笅鍗曗槄
+        // 鍚繖绉嶆枃鏈殑瀹氫簬姣忔櫄10鐐瑰湪鍔ㄦ��-鍙戝湀 闆嗕腑鍙戯紝姣忔櫄10鐐瑰湪缇ゅ彂鍗曚腑鍙彂涓�鏉°��
+        Date startTime = new Date();
+        if (!StringUtil.isNullOrEmpty(title)) {
+            String value = configService.getValue(ConfigKeyEnum.evaluateZeroKey.getKey(), system);
+            if (!StringUtil.isNullOrEmpty(value)) {
+                List<String> asList = Arrays.asList(value.split(","));
+                if (asList != null && asList.size() > 0) {
+                    boolean zero = false;
+                    for (String zerokey : asList) {
+                        if (title.contains(zerokey)) {
+                            zero = true;
+                            break;
+                        }
+                    }
 
-						}
-					}
-				}
+                    if (zero) {
+                        result = 1;
+                        zeroPoint = 1;
+                        startTime = TimeUtil.parseYYYYMMDD_HHMM(TimeUtil.getGernalTime(startTime) + " 22:00");
+                    }
+                }
+            }
+        }
 
-				GoodsDetailVO goods = goodsEvaluate.getGoods();
-				if (goods != null) {
-					GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), params);
-					if (goodsNew != null) {
-						goodsEvaluate.setGoods(goodsNew);
-					} else {
-						goodsEvaluate.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
-						goodsEvaluate.setState(0); // 宸插晢鍝佷笅鏋�
-						goods.setState(1);
-						goodsEvaluate.setGoods(goods);
-					}
-				}
-				// 鏇存柊鍟嗗搧淇℃伅
-				List<ImgInfo> imgList = goodsEvaluate.getImgList();
-				if (imgList == null || imgList.size() == 0) {
-					continue;
-				}
 
-				for (ImgInfo imgInfo : imgList) {
-					SimpleGoods simpleGoods = imgInfo.getGoods();
-					if (simpleGoods == null) {
-						continue;
-					}
+        GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
+        goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+        goodsEvaluate.setUser(user);
+        goodsEvaluate.setTitle(getDescNew(title));
+        goodsEvaluate.setState(1);
+        goodsEvaluate.setZeroPoint(zeroPoint);
+        goodsEvaluate.setDynamicType(1);
+        goodsEvaluate.setType(EvaluateEnum.single);
+        goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+        goodsEvaluate.setShareNumReal(0);
+        goodsEvaluate.setWeight(0.0);
+        goodsEvaluate.setStartTime(startTime);
+        goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, startTime));
+        goodsEvaluate.setPublishTime(new Date());
+        goodsEvaluate.setCreateTime(new Date());
+        goodsEvaluate.setUpdateTime(new Date());
+        goodsEvaluate.setGoods(goodsVO);
+        goodsEvaluate.setLineNum(lineNum);
+        goodsEvaluate.setImgList(imgList);
+        goodsEvaluate.setComments(commentsNew);
+        goodsEvaluate.setSystem(system);
+        goodsEvaluateDao.save(goodsEvaluate);
+        return result;
+    }
 
-					GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(),
-							params);
-					if (goodsDetailVO != null) {
-						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
-						simpleGoods.setState(0);
-						CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
-						if (couponInfo == null) {
-							simpleGoods.setPrice(goodsDetailVO.getZkPrice());
-						} else {
-							simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
-							simpleGoods.setAmount(couponInfo.getAmount());
-						}
-						imgInfo.setGoods(simpleGoods);
-						imgInfo.setGoodsVO(goodsDetailVO);
-					} else {
-						simpleGoods.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
-						simpleGoods.setState(1);
-						imgInfo.setGoods(simpleGoods);
-						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
-						if (goodsVO != null) {
-							goodsVO.setState(1);
-							imgInfo.setGoodsVO(goodsVO);
-						}
-					}
-				}
-				goodsEvaluate.setImgList(imgList);
-				goodsEvaluate.setUpdateTime(new Date());
-				goodsEvaluateDao.save(goodsEvaluate);
-			}
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
-		}
-	}
+    @Resource
+    private DaTaoKeTipOffManager daTaoKeTipOffManager;
 
-	private GoodsDetailVO getGoodsNewInfo(String goodsId, int goodsType, ConfigParamsDTO paramsDTO) {
-		GoodsDetailVO vo = null;
-		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-			TaoBaoGoodsBrief goods;
-			try {
-				goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
-				if (goods != null) {
-					vo = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
-				}
-			} catch (TaobaoGoodsDownException e) {
-				e.printStackTrace();
-			}
+    @Override
+    public int addGoodsEvaluate(DaTaoKeListTopOffDTO dto, ActivityUser user, SystemEnum system) throws GoodsEvaluateException {
+        if (dto == null || user == null || system == null) {
+            throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
+        }
 
-		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
-			JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
-			if (goodsInfo != null) {
-				vo = GoodsDetailVOFactory.convertJDGoods(goodsInfo, paramsDTO);
-			}
-		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
-			PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
-			if (goodsInfo != null)
-				vo = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, paramsDTO);
-		}
-		return vo;
-	}
+        String title = null;
 
-	@Override
-	public void addGoodsEvaluate(String goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment,
-			Date startTime) throws GoodsEvaluateException {
-		if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) {
-			throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
-		}
+        try {
+            title = daTaoKeTipOffManager.convertLinkForEvaluateWithEncode(dto, system);
+        } catch (Exception e) {
+            throw new GoodsEvaluateException(1, "杞摼鍑洪敊");
+        }
 
-		Date limitDate = DateUtil.reduceDay(new Date(), 7);
-		
-		List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId, limitDate);
-		if (evaluateList != null && evaluateList.size() > 0)
-			throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪");
 
-		TaoBaoGoodsBrief goodsBrief = null;
-		try {
-			goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
-		} catch (TaobaoGoodsDownException e) {
-			throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
-		}
+        Date limitDate = DateUtil.reduceDay(new Date(), 7);
 
-		if (goodsBrief == null) {
-			throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�");
-		}
+        String identifyCode = "dataoke-" + StringUtil.Md5(DaTaoKeTipOffUtil.getRecoomendDesc(dto));
 
-		BigDecimal couponAmount = goodsBrief.getCouponAmount();
-		if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
-			throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�");
-		}
+        GoodsEvaluate evaluate = goodsEvaluateDao.selectExistLimitTime(identifyCode, limitDate);
+        if (evaluate != null)
+            throw new GoodsEvaluateException(1, "绾挎姤宸插瓨鍦�");
 
-		// 鐧藉簳鍥�
-		List<String> imgs = new ArrayList<>();
-		
-		imgs.addAll(goodsBrief.getImgList());
+        List<String> imgs = new ArrayList<>();
+        if (!StringUtil.isNullOrEmpty(dto.getPicUrls())) {
+            imgs.addAll(Arrays.asList(dto.getPicUrls().split(",")));
+        }
 
-		// 鍟嗗搧VO
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
+        GoodsDetailVO goods = null;
 
-		// 鍟嗗搧鍥剧墖淇℃伅
-		int i = 0;
-		if (imgList == null) 
-			imgList = new ArrayList<ImgInfo>();
-		 
-		if (imgList.size() == 0)
-			for (String img : imgs) {
-				ImgInfo imgInfo = new ImgInfo();
-				imgInfo.setH(1);
-				imgInfo.setW(1);
-				imgInfo.setLarge(false);
-				imgInfo.setUrl(img);
-				imgInfo.setUrlHD(img);
-				if (i != 0) {
-					imgInfo.setType(ImgEnum.img);
-				} else {
-					imgInfo.setType(ImgEnum.goods);
-					SimpleGoods simpleGoods = new SimpleGoods();
-					simpleGoods.setGoodsId(goodsVO.getGoodsId());
-					simpleGoods.setGoodsType(goodsVO.getGoodsType());
-					simpleGoods.setState(goodsVO.getState());
-					CouponInfoVO couponInfo = goodsVO.getCouponInfo();
-					if (couponInfo == null) {
-						simpleGoods.setPrice(goodsVO.getZkPrice());
-					} else {
-						simpleGoods.setPrice(goodsVO.getCouponPrice());
-						simpleGoods.setAmount(couponInfo.getAmount());
-					}
-					imgInfo.setGoods(simpleGoods);
-					imgInfo.setGoodsVO(goodsVO);
-				}
-				imgList.add(imgInfo);
-				i++;
-			}
+        //鑾峰彇鍥剧墖
+        if (!StringUtil.isNullOrEmpty( dto.getItemIds())) {
+            Set<String> imgSet = new HashSet<>();
+            imgSet.addAll(imgs);
+            String id = dto.getItemIds().split(",")[0];
+            String source = dto.getPlatform();
+            switch (source) {
+                case "娣樺疂":
+                    try {
+                        TaoBaoGoodsBrief goodsBrief = TaoKeApiUtil.searchGoodsDetail(id);
+                        if (goodsBrief != null && goodsBrief.getImgList() != null) {
+                            GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+                            goods = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
+                            goods = goodsLijinMnager.loadTBMoneyInfo(system, null, goodsBrief, goods, false);
+                            for (String img : goodsBrief.getImgList()) {
+                                if (!imgSet.contains(img) && imgs.size() < 9) {
+                                    imgSet.add(img);
+                                    imgs.add(img);
+                                }
+                            }
+                        }
 
-		// 璇勮鍐呭
-		CommentInfo commentInfo = new CommentInfo();
-		commentInfo.setNeedSpin(true);
-		commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-		commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
-		if (!StringUtil.isNullOrEmpty(comment)) {
-			commentInfo.setContent(comment);
-			commentInfo.setType("");
-		} else {
-			String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
-			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
-			String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
-			if (!goodsVO.isHasCoupon()) {
-				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-				commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
-						"\r\n");
-			}
-			commentInfo.setContent(commentText);
-			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
-		}
+                    } catch (TaobaoGoodsDownException e) {
+                        e.printStackTrace();
+                    }
+                    break;
+                case "浜笢": {
+                    JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id);
+                    if (jdGoods != null && jdGoods.getImageList() != null) {
+                        GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+                        goods = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
+                        goods = goodsLijinMnager.loadOtherMoneyInfo(system, null, CommonGoodsFactory.create(jdGoods), goods);
+                        for (String img : jdGoods.getImageList()) {
+                            if (!imgSet.contains(img) && imgs.size() < 9) {
+                                imgSet.add(img);
+                                imgs.add(img);
+                            }
+                        }
+                    }
+                }
+                break;
+                case "鎷煎澶�": {
+                    PDDGoodsDetail goodsDetail = PinDuoDuoApiUtil.getGoodsDetail(id);
+                    if (goodsDetail != null && goodsDetail.getGoodsGalleryUrls() != null) {
+                        GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+                        goods = GoodsDetailVOFactory.convertPDDGoods(goodsDetail, params);
+                        goods = goodsLijinMnager.loadOtherMoneyInfo(system, null, CommonGoodsFactory.create(goodsDetail), goods);
 
-		List<CommentInfo> commentsNew = new ArrayList<>();
-		commentsNew.add(commentInfo);
+                        for (String img : goodsDetail.getGoodsGalleryUrls()) {
+                            if (!imgSet.contains(img) && imgs.size() < 9) {
+                                imgSet.add(img);
+                                imgs.add(img);
+                            }
+                        }
+                    }
+                }
+                break;
+                default:
+                    throw new GoodsEvaluateException(1, "涓嶆敮鎸佺殑source锛�" + source);
+            }
+        }
 
-		// 涓�琛屾樉绀哄灏戜釜鍥剧墖
-		int lineNum = 0;
-		if (imgList.size() > 0) {
-			if (imgList.size() == 1) {
-				lineNum = 1;
-			} else if (imgList.size() == 3) {
-				lineNum = 3;
-			} else if (imgList.size() == 2 || imgList.size() == 4) {
-				lineNum = 2;
-			} else {
-				lineNum = 3;
-			}
-		}
 
-		GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
-		goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
-		goodsEvaluate.setUser(user);
-		goodsEvaluate.setTitle(getDescNew(title));
-		goodsEvaluate.setState(1);
-		goodsEvaluate.setDynamicType(1);
-		goodsEvaluate.setType(EvaluateEnum.single);
-		goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
-		goodsEvaluate.setShareNumReal(0);
-		goodsEvaluate.setWeight(0.0);
-		if (startTime == null)
-			startTime = new Date();
-		goodsEvaluate.setStartTime(startTime);
-		goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
-		goodsEvaluate.setPublishTime(new Date());
-		goodsEvaluate.setCreateTime(new Date());
-		goodsEvaluate.setUpdateTime(new Date());
-		goodsEvaluate.setGoods(goodsVO);
-		goodsEvaluate.setLineNum(lineNum);
-		goodsEvaluate.setImgList(imgList);
-		goodsEvaluate.setComments(commentsNew);
-		goodsEvaluateDao.save(goodsEvaluate);
-	}
+        // 鍟嗗搧鍥剧墖淇℃伅
+        List<ImgInfo> imgList = new ArrayList<>();
+        for (String img : imgs) {
+            ImgInfo imgInfo = new ImgInfo();
+            imgInfo.setH(1);
+            imgInfo.setW(1);
+            imgInfo.setLarge(false);
+            imgInfo.setUrl(img);
+            imgInfo.setUrlHD(img);
+            imgInfo.setType(ImgEnum.img);
+            imgList.add(imgInfo);
+        }
 
-	
-	@Override
-	public void addGoodsEvaluate2(String goodsId, List<String> imgs, ActivityUser user, String title, String comment) throws GoodsEvaluateException {
-		if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) {
-			throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
-		}
+        // 涓�琛屾樉绀哄灏戜釜鍥剧墖
+        int lineNum = 3;
+        int result = 0;
+        int zeroPoint = 0;
+        Date startTime = new Date();
 
-		Date limitDate = DateUtil.reduceDay(new Date(), 7);
-		
-		List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId, limitDate);
-		if (evaluateList != null && evaluateList.size() > 0)
-			throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪");
 
-		TaoBaoGoodsBrief goodsBrief = null;
-		try {
-			goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
-		} catch (TaobaoGoodsDownException e) {
-			throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
-		}
+        GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
+        goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+        goodsEvaluate.setUser(user);
+        goodsEvaluate.setTitle(title);
+        goodsEvaluate.setState(1);
+        goodsEvaluate.setZeroPoint(zeroPoint);
+        goodsEvaluate.setDynamicType(1);
+        goodsEvaluate.setType(EvaluateEnum.single);
+        goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+        goodsEvaluate.setShareNumReal(0);
+        goodsEvaluate.setWeight(0.0);
+        goodsEvaluate.setStartTime(startTime);
+        goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, startTime));
+        goodsEvaluate.setPublishTime(new Date());
+        goodsEvaluate.setCreateTime(new Date());
+        goodsEvaluate.setUpdateTime(new Date());
+        //绾挎姤涓嶆樉绀哄晢鍝�
+        if (goods != null && goods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
+            goods.setCreatetime(null);
+            goodsEvaluate.setGoods(goods);
+        }
+        goodsEvaluate.setLineNum(lineNum);
+        goodsEvaluate.setImgList(imgList);
+        goodsEvaluate.setComments(null);
+        goodsEvaluate.setSystem(system);
+        goodsEvaluate.setIdentifyCode(identifyCode);
+        goodsEvaluateDao.save(goodsEvaluate);
+        return result;
+    }
 
-		if (goodsBrief == null) {
-			throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�");
-		}
+    @Override
+    public void addGoodsEvaluateByDaTaoKe(SystemEnum system) {
+        List<Long> listId = null;
+        List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist(system);
+        if (listExist != null && listExist.size() > 0) {
+            listId = new ArrayList<Long>();
+            for (GoodsEvaluate goodsEvaluate : listExist) {
+                GoodsDetailVO goods = goodsEvaluate.getGoods();
+                if (goods != null && goods.getGoodsType() == 1) {
+                    listId.add(Long.parseLong(goods.getGoodsId()));
+                }
+            }
+        }
+        // 鐑攢鍗曞搧鐨勫垎绫�
+        List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses;
+        int ci = (int) (Math.random() * listClass.size());
+        Long subId = listClass.get(ci).getId();
 
-		BigDecimal couponAmount = goodsBrief.getCouponAmount();
-		if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
-			throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�");
-		}
+        List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subId, listId, 1);
+        if (list == null || list.size() == 0) {
+            return;
+        }
 
-		if (imgs == null) {
-			imgs = new ArrayList<>();
-		}
-		if (imgs.size() == 0) {
-			imgs.addAll(goodsBrief.getImgList());
-		}
+        for (int i = 0; i < list.size(); i++) {
+            boolean cerateGoods = addByDaTaoKeGoods(list.get(i), system);
+            if (cerateGoods) {
+                break;
+            }
+        }
+    }
 
-		// 鍟嗗搧VO
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
 
-		// 鍟嗗搧鍥剧墖淇℃伅
-		int i = 0;
-		List<ImgInfo> imgList = new ArrayList<ImgInfo>();
-		 
-		for (String img : imgs) {
-			ImgInfo imgInfo = new ImgInfo();
-			imgInfo.setH(1);
-			imgInfo.setW(1);
-			imgInfo.setLarge(false);
-			imgInfo.setUrl(img);
-			imgInfo.setUrlHD(img);
-			if (i != 0) {
-				imgInfo.setType(ImgEnum.img);
-			} else {
-				imgInfo.setType(ImgEnum.goods);
-				SimpleGoods simpleGoods = new SimpleGoods();
-				simpleGoods.setGoodsId(goodsVO.getGoodsId());
-				simpleGoods.setGoodsType(goodsVO.getGoodsType());
-				simpleGoods.setState(goodsVO.getState());
-				CouponInfoVO couponInfo = goodsVO.getCouponInfo();
-				if (couponInfo == null) {
-					simpleGoods.setPrice(goodsVO.getZkPrice());
-				} else {
-					simpleGoods.setPrice(goodsVO.getCouponPrice());
-					simpleGoods.setAmount(couponInfo.getAmount());
-				}
-				imgInfo.setGoods(simpleGoods);
-				imgInfo.setGoodsVO(goodsVO);
-			}
-			imgList.add(imgInfo);
-			i++;
-		}
+    @Override
+    public boolean addByDaTaoKeGoods(DaTaoKeDetailV2 daTaoKe, SystemEnum system) {
+        try {
+            Date limitDate = DateUtil.reduceDay(new Date(), 7);
 
-		// 璇勮鍐呭
-		CommentInfo commentInfo = new CommentInfo();
-		commentInfo.setNeedSpin(true);
-		commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-		commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
-		if (!StringUtil.isNullOrEmpty(comment)) {
-			commentInfo.setContent(comment);
-			commentInfo.setType("");
-		} else {
-			String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
-			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
-			String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
-			if (!goodsVO.isHasCoupon()) {
-				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-				commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
-						"\r\n");
-			}
-			commentInfo.setContent(commentText);
-			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
-		}
+            List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO,
+                    daTaoKe.getGoodsId() + "", limitDate);
+            if (evaluateList != null && evaluateList.size() > 0)
+                return false;
 
-		List<CommentInfo> commentsNew = new ArrayList<>();
-		commentsNew.add(commentInfo);
+            TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId());
+            if (goodsBrief == null) {
+                return false;
+            }
 
-		// 涓�琛屾樉绀哄灏戜釜鍥剧墖
-		int lineNum = 0;
-		if (imgList.size() > 0) {
-			if (imgList.size() == 1) {
-				lineNum = 1;
-			} else if (imgList.size() == 3) {
-				lineNum = 3;
-			} else if (imgList.size() == 2 || imgList.size() == 4) {
-				lineNum = 2;
-			} else {
-				lineNum = 3;
-			}
-		}
+            BigDecimal couponAmount = goodsBrief.getCouponAmount();
+            if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
+                return false;
+            }
 
-		GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
-		goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
-		goodsEvaluate.setUser(user);
-		goodsEvaluate.setTitle(getDescNew(title));
-		goodsEvaluate.setState(1);
-		goodsEvaluate.setDynamicType(1);
-		goodsEvaluate.setType(EvaluateEnum.single);
-		goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
-		goodsEvaluate.setShareNumReal(0);
-		goodsEvaluate.setWeight(0.0);
-		goodsEvaluate.setStartTime(new Date());
-		goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
-		goodsEvaluate.setPublishTime(new Date());
-		goodsEvaluate.setCreateTime(new Date());
-		goodsEvaluate.setUpdateTime(new Date());
-		goodsEvaluate.setGoods(goodsVO);
-		goodsEvaluate.setLineNum(lineNum);
-		goodsEvaluate.setImgList(imgList);
-		goodsEvaluate.setComments(commentsNew);
-		goodsEvaluateDao.save(goodsEvaluate);
-	}
-	
-	@Override
-	public void addGoodsEvaluateByDaTaoKe() {
-		List<Long> listId = null;
-		List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist();
-		if (listExist != null && listExist.size() > 0) {
-			listId = new ArrayList<Long>();
-			for (GoodsEvaluate goodsEvaluate : listExist) {
-				GoodsDetailVO goods = goodsEvaluate.getGoods();
-				if (goods != null && goods.getGoodsType() == 1) {
-					listId.add(Long.parseLong(goods.getGoodsId()));
-				}
-			}
-		}
-		// 鐑攢鍗曞搧鐨勫垎绫�
-		List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses;
-		int ci = (int) (Math.random() * listClass.size());
-		Long subId = listClass.get(ci).getId();
+            GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+            GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
 
-		List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subId, listId, 1);
-		if (list == null || list.size() == 0) {
-			return;
-		}
+            ActivityUser user = null;
+            if (daTaoKe.getCid() != null) {
+                user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
+            } else {
+                List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20);
+                user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
+            }
 
-		for (int i = 0; i < list.size(); i++) {
-			boolean cerateGoods = addByDaTaoKeGoods(list.get(i));
-			if (cerateGoods) {
-				break;
-			}
-		}
-	}
 
-	
-	@Override
-	public boolean addByDaTaoKeGoods(DaTaoKeDetailV2 daTaoKe) {
-		try {
-			Date limitDate = DateUtil.reduceDay(new Date(), 7);
-			
-			List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, 
-					daTaoKe.getGoodsId()+"", limitDate);
-			if (evaluateList != null && evaluateList.size() > 0)
-				return false;
+            String desc = daTaoKe.getDesc().replace(",", "锛�");
+            String[] split = desc.split("锛�");
+            int max = 1;
+            if (Math.random() > 0.5) {
+                max = 2;
+            }
+            int e = 0;
+            String emojis = "";
+            String descNew = "";
+            if (split.length > 0) {
+                for (int i = 0; i < split.length; i++) {
+                    if (Math.random() > 0.5 && e < max) {
+                        for (int j = 0; j < 10; j++) {
+                            String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
+                            if (!emojis.equals(emojisTemp)) {
+                                emojis = emojisTemp;
+                                break;
+                            }
+                        }
+                        e++;
+                        descNew += split[i] + emojis;
+                    } else {
+                        descNew += split[i] + "锛�";
+                    }
+                }
+            } else {
+                descNew = desc;
+            }
 
-			TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId());
-			if (goodsBrief == null) {
-				return false;
-			}
+            if (descNew.endsWith("锛�")) {
+                descNew = descNew.substring(0, descNew.length() - 1);
+            }
 
-			BigDecimal couponAmount = goodsBrief.getCouponAmount();
-			if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
-				return false;
-			}
+            GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
+            goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+            goodsEvaluate.setUser(user);
+            goodsEvaluate.setTitle(descNew);
+            goodsEvaluate.setState(1);
+            goodsEvaluate.setDynamicType(1);
+            goodsEvaluate.setType(EvaluateEnum.single);
+            goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+            goodsEvaluate.setShareNumReal(0);
+            goodsEvaluate.setWeight(0.0);
+            goodsEvaluate.setStartTime(new Date());
+            goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
+            goodsEvaluate.setPublishTime(new Date());
+            goodsEvaluate.setCreateTime(new Date());
+            goodsEvaluate.setUpdateTime(new Date());
+            goodsEvaluate.setSystem(system);
 
-			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-			GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
-			
-			ActivityUser user = null;
-			if(daTaoKe.getCid() != null) {
-				user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
-			} else {
-				List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20);
-				user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
-			}
-			
+            List<String> goodsimgs = goodsBrief.getImgList();
 
-			String desc = daTaoKe.getDesc().replace(",", "锛�");
-			String[] split = desc.split("锛�");
-			int max = 1;
-			if (Math.random() > 0.5) {
-				max = 2;
-			}
-			int e = 0;
-			String emojis = "";
-			String descNew = "";
-			if (split.length > 0) {
-				for (int i = 0; i < split.length; i++) {
-					if (Math.random() > 0.5 && e < max) {
-						for (int j = 0; j < 10; j++) {
-							String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
-							if (!emojis.equals(emojisTemp)) {
-								emojis = emojisTemp;
-								break;
-							}
-						}
-						e++;
-						descNew += split[i] + emojis;
-					} else {
-						descNew += split[i] + "锛�";
-					}
-				}
-			} else {
-				descNew = desc;
-			}
+            List<String> imgs = new ArrayList<>();
+            imgs.addAll(goodsimgs);
 
-			if (descNew.endsWith("锛�")) {
-				descNew = descNew.substring(0, descNew.length() - 1);
-			}
+            int i = 0;
+            List<ImgInfo> imgList = new ArrayList<>();
+            for (String img : imgs) {
+                ImgInfo imgInfo = new ImgInfo();
+                imgInfo.setH(1);
+                imgInfo.setW(1);
+                imgInfo.setLarge(false);
+                imgInfo.setUrl(img);
+                imgInfo.setUrlHD(img);
+                if (i != 0) {
+                    imgInfo.setType(ImgEnum.img);
+                } else {
+                    imgInfo.setType(ImgEnum.goods);
+                    SimpleGoods simpleGoods = new SimpleGoods();
+                    simpleGoods.setGoodsId(goodsVO.getGoodsId());
+                    simpleGoods.setGoodsType(goodsVO.getGoodsType());
+                    simpleGoods.setState(goodsVO.getState());
+                    CouponInfoVO couponInfo = goodsVO.getCouponInfo();
+                    if (couponInfo == null) {
+                        simpleGoods.setPrice(goodsVO.getZkPrice());
+                    } else {
+                        simpleGoods.setPrice(goodsVO.getCouponPrice());
+                        simpleGoods.setAmount(couponInfo.getAmount());
+                    }
+                    imgInfo.setGoods(simpleGoods);
+                    imgInfo.setGoodsVO(goodsVO);
 
-			GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
-			goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
-			goodsEvaluate.setUser(user);
-			goodsEvaluate.setTitle(descNew);
-			goodsEvaluate.setState(1);
-			goodsEvaluate.setDynamicType(1);
-			goodsEvaluate.setType(EvaluateEnum.single);
-			goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
-			goodsEvaluate.setShareNumReal(0);
-			goodsEvaluate.setWeight(0.0);
-			goodsEvaluate.setStartTime(new Date());
-			goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
-			goodsEvaluate.setPublishTime(new Date());
-			goodsEvaluate.setCreateTime(new Date());
-			goodsEvaluate.setUpdateTime(new Date());
+                    // TaoBaoLink taoBaoLink =
+                    // shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID,
+                    // goodsVO.getGoodsId(), null);
 
-			List<String> goodsimgs = goodsBrief.getImgList();
+                    String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
 
-			List<String> imgs = new ArrayList<>();
-			imgs.addAll(goodsimgs);
+                    String template = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(), system);
+                    String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
+                    if (!goodsVO.isHasCoupon()) {
+                        commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+                        commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+                        commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n")
+                                .replace("\r\n\r\n", "\r\n");
+                    }
 
-			int i = 0;
-			List<ImgInfo> imgList = new ArrayList<>();
-			for (String img : imgs) {
-				ImgInfo imgInfo = new ImgInfo();
-				imgInfo.setH(1);
-				imgInfo.setW(1);
-				imgInfo.setLarge(false);
-				imgInfo.setUrl(img);
-				imgInfo.setUrlHD(img);
-				if (i != 0) {
-					imgInfo.setType(ImgEnum.img);
-				} else {
-					imgInfo.setType(ImgEnum.goods);
-					SimpleGoods simpleGoods = new SimpleGoods();
-					simpleGoods.setGoodsId(goodsVO.getGoodsId());
-					simpleGoods.setGoodsType(goodsVO.getGoodsType());
-					simpleGoods.setState(goodsVO.getState());
-					CouponInfoVO couponInfo = goodsVO.getCouponInfo();
-					if (couponInfo == null) {
-						simpleGoods.setPrice(goodsVO.getZkPrice());
-					} else {
-						simpleGoods.setPrice(goodsVO.getCouponPrice());
-						simpleGoods.setAmount(couponInfo.getAmount());
-					}
-					imgInfo.setGoods(simpleGoods);
-					imgInfo.setGoodsVO(goodsVO);
+                    CommentInfo commentInfo = new CommentInfo();
+                    commentInfo.setNeedSpin(true);
+                    commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+                    commentInfo.setContent(commentText);
+                    commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+                    commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
 
-					// TaoBaoLink taoBaoLink =
-					// shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID,
-					// goodsVO.getGoodsId(), null);
+                    String text2 = "";
+                    String evaluateEmojis = configService.getValue(ConfigKeyEnum.evaluateEmojis.getKey(), system);
+                    if (!StringUtil.isNullOrEmpty(evaluateEmojis)) {
+                        text2 = evaluateEmojis + "\n";
+                    }
 
-					String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
+                    String evaluateText = configService.getValue(ConfigKeyEnum.evaluateText.getKey(), system);
+                    if (!StringUtil.isNullOrEmpty(evaluateText)) {
+                        text2 += evaluateText;
+                    }
 
-					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
-					String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
-					if (!goodsVO.isHasCoupon()) {
-						commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-						commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-						commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n")
-								.replace("\r\n\r\n", "\r\n");
-					}
+                    String dtitle = daTaoKe.getDtitle();
+                    if (!StringUtil.isNullOrEmpty(dtitle)) {
+                        text2 = text2 + dtitle + "\n";
+                    } else if (!StringUtil.isNullOrEmpty(evaluateText)) {
+                        text2 += "\n";
+                    }
+                    text2 += "鍏堥銆�" + couponAmount + "鍏冧紭鎯犲埜銆戜笅鍗�";
 
-					CommentInfo commentInfo = new CommentInfo();
-					commentInfo.setNeedSpin(true);
-					commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-					commentInfo.setContent(commentText);
-					commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
-					commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+                    CommentInfo commentInfo2 = new CommentInfo();
+                    commentInfo2.setId(UUID.randomUUID().toString().replace("-", ""));
+                    commentInfo2.setContent(text2);
+                    commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon);
+                    commentInfo2.setType("");
+                    commentInfo2.setNeedSpin(true);
 
-					String text2 = "";
-					String evaluateEmojis = configService.get(ConfigKeyEnum.evaluateEmojis.getKey());
-					if (!StringUtil.isNullOrEmpty(evaluateEmojis)) {
-						text2 = evaluateEmojis + "\n";
-					}
+                    List<CommentInfo> commentsNew = new ArrayList<>();
+                    commentsNew.add(commentInfo);
+                    commentsNew.add(commentInfo2);
+                    goodsEvaluate.setComments(commentsNew);
+                }
+                imgList.add(imgInfo);
+                i++;
+            }
 
-					String evaluateText = configService.get(ConfigKeyEnum.evaluateText.getKey());
-					if (!StringUtil.isNullOrEmpty(evaluateText)) {
-						text2 += evaluateText;
-					}
+            int lineNum = 0;
+            if (imgList.size() > 0) {
+                if (imgList.size() == 1) {
+                    lineNum = 1;
+                } else if (imgList.size() == 3) {
+                    lineNum = 3;
+                } else if (imgList.size() == 2 || imgList.size() == 4) {
+                    lineNum = 2;
+                } else {
+                    lineNum = 3;
+                }
+            }
+            goodsEvaluate.setLineNum(lineNum);
 
-					String dtitle = daTaoKe.getDtitle();
-					if (!StringUtil.isNullOrEmpty(dtitle)) {
-						text2 = text2 + dtitle + "\n";
-					} else if (!StringUtil.isNullOrEmpty(evaluateText)) {
-						text2 += "\n";
-					}
-					text2 += "鍏堥銆�" + couponAmount + "鍏冧紭鎯犲埜銆戜笅鍗�";
+            goodsEvaluate.setGoods(goodsVO);
+            goodsEvaluate.setImgList(imgList);
+            goodsEvaluateDao.save(goodsEvaluate);
+        } catch (Exception e) {
+            e.printStackTrace();
+            LogHelper.errorDetailInfo(e);
+            return false;
+        }
+        return true;
+    }
 
-					CommentInfo commentInfo2 = new CommentInfo();
-					commentInfo2.setId(UUID.randomUUID().toString().replace("-", ""));
-					commentInfo2.setContent(text2);
-					commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon);
-					commentInfo2.setType("");
-					commentInfo2.setNeedSpin(true);
+    /**
+     * 鍙戝湀鏍囬 鍔犲叆琛ㄦ儏
+     *
+     * @param desc
+     * @return
+     */
+    private String getDescNew(String desc) {
+        String[] split = desc.split("锛�");
+        int max = 1;
+        if (Math.random() > 0.5) {
+            max = 2;
+        }
+        int e = 0;
+        String emojis = "";
+        String descNew = "";
+        if (split.length > 0) {
+            for (int i = 0; i < split.length; i++) {
+                if (Math.random() > 0.5 && e < max) {
+                    for (int j = 0; j < 10; j++) {
+                        String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
+                        if (!emojis.equals(emojisTemp)) {
+                            emojis = emojisTemp;
+                            break;
+                        }
+                    }
+                    e++;
+                    descNew += split[i] + emojis;
+                } else {
+                    descNew += split[i] + "锛�";
+                }
+            }
+        } else {
+            descNew = desc;
+        }
 
-					List<CommentInfo> commentsNew = new ArrayList<>();
-					commentsNew.add(commentInfo);
-					commentsNew.add(commentInfo2);
-					goodsEvaluate.setComments(commentsNew);
-				}
-				imgList.add(imgInfo);
-				i++;
-			}
+        if (descNew.endsWith("锛�")) {
+            descNew = descNew.substring(0, descNew.length() - 1);
+        }
+        return descNew;
+    }
 
-			int lineNum = 0;
-			if (imgList.size() > 0) {
-				if (imgList.size() == 1) {
-					lineNum = 1;
-				} else if (imgList.size() == 3) {
-					lineNum = 3;
-				} else if (imgList.size() == 2 || imgList.size() == 4) {
-					lineNum = 2;
-				} else {
-					lineNum = 3;
-				}
-			}
-			goodsEvaluate.setLineNum(lineNum);
+    @Override
+    public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) {
+        try {
+            if (goods == null) {
+                return;
+            }
+            for (SystemEnum system : SystemEnum.values()) {
+                List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,
+                        goods.getAuctionId(), system);
+                if (queryExist == null || queryExist.size() == 0) {
+                    continue;
+                }
+                GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+                paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+                GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
+                updateGoods(queryExist, goodsNew);
+            }
 
-			goodsEvaluate.setGoods(goodsVO);
-			goodsEvaluate.setImgList(imgList);
-			goodsEvaluateDao.save(goodsEvaluate);
-		} catch (Exception e) {
-			e.printStackTrace();
-			LogHelper.errorDetailInfo(e);
-			return false;
-		}
-		return true;
-	}
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
-	/**
-	 * 鍙戝湀鏍囬 鍔犲叆琛ㄦ儏
-	 * @param desc
-	 * @return
-	 */
-	private String getDescNew(String desc) {
-		String[] split = desc.split("锛�");
-		int max = 1;
-		if (Math.random() > 0.5) {
-			max = 2;
-		}
-		int e = 0;
-		String emojis = "";
-		String descNew = "";
-		if (split.length > 0) {
-			for (int i = 0; i < split.length; i++) {
-				if (Math.random() > 0.5 && e < max) {
-					for (int j = 0; j < 10; j++) {
-						String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
-						if (!emojis.equals(emojisTemp)) {
-							emojis = emojisTemp;
-							break;
-						}
-					}
-					e++;
-					descNew += split[i] + emojis;
-				} else {
-					descNew += split[i] + "锛�";
-				}
-			}
-		} else {
-			descNew = desc;
-		}
+    @Override
+    public void updateJDGoods(JDGoods jdGoods) {
+        if (jdGoods == null) {
+            return;
+        }
+        for (SystemEnum system : SystemEnum.values()) {
+            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getItemId() + "", system);
+            if (queryExist == null || queryExist.size() == 0) {
+                continue;
+            }
 
-		if (descNew.endsWith("锛�")) {
-			descNew = descNew.substring(0, descNew.length() - 1);
-		}
-		return descNew;
-	}
+            GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
 
-	@Override
-	public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) {
-		try {
-			if (goods == null) {
-				return;
-			}
-			List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,
-					goods.getAuctionId()+"");
-			if (queryExist == null || queryExist.size() == 0) {
-				return;
-			}
+            updateGoods(queryExist, goodsNew);
+        }
+    }
 
-			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-			GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
-			updateGoods(queryExist, goodsNew);
+    @Override
+    public void updatePDDGoods(PDDGoodsDetail pddGoods) {
+        if (pddGoods == null) {
+            return;
+        }
+        for (SystemEnum system : SystemEnum.values()) {
+            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId() + "", system);
+            if (queryExist == null || queryExist.size() == 0) {
+                continue;
+            }
 
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+            GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
+            updateGoods(queryExist, goodsNew);
+        }
+    }
 
-	@Override
-	public void updateJDGoods(JDGoods jdGoods) {
-		if (jdGoods == null) {
-			return;
-		}
-		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId()+"");
-		if (queryExist == null || queryExist.size() == 0) {
-			return;
-		}
+    @Override
+    public void updateVIPGoods(VIPGoodsInfo goods) {
+        if (goods == null) {
+            return;
+        }
+        for (SystemEnum system : SystemEnum.values()) {
+            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_VIP,
+                    goods.getGoodsId(), system);
+            if (queryExist == null || queryExist.size() == 0) {
+                continue;
+            }
 
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
+            GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertVIPGoods(goods, paramsDTO);
+            updateGoods(queryExist, goodsNew);
+        }
+    }
 
-		updateGoods(queryExist, goodsNew);
-	}
+    @Override
+    public void updateDYGoods(DYGoodsDetail goods) {
+        if (goods == null) {
+            return;
+        }
+        for (SystemEnum system : SystemEnum.values()) {
+            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_DY,
+                    goods.getProduct_id()+"", system);
+            if (queryExist == null || queryExist.size() == 0) {
+                continue;
+            }
 
-	@Override
-	public void updatePDDGoods(PDDGoodsDetail pddGoods) {
-		if (pddGoods == null) {
-			return;
-		}
-		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId()+"");
-		if (queryExist == null || queryExist.size() == 0) {
-			return;
-		}
+            GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertDYGoods(goods, paramsDTO);
+            updateGoods(queryExist, goodsNew);
+        }
+    }
 
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
-		updateGoods(queryExist, goodsNew);
-	}
+    @Override
+    public void updateSuningGoods(SuningGoodsInfo goods) {
+        if (goods == null) {
+            return;
+        }
+        for (SystemEnum system : SystemEnum.values()) {
+            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_SUNING,
+                    goods.getCommodityInfo().getCommodityCode(), system);
+            if (queryExist == null || queryExist.size() == 0) {
+                continue;
+            }
+            GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
+            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
+            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO);
+            updateGoods(queryExist, goodsNew);
+        }
+    }
 
-	@Override
-	public void updateVIPGoods(VIPGoodsInfo goods) {
-		if (goods == null) {
-			return;
-		}
-		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_VIP,
-				goods.getGoodsId());
-		if (queryExist == null || queryExist.size() == 0) {
-			return;
-		}
+    private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
+        for (GoodsEvaluate goodsEvaluate : listExist) {
+            String goodsId = goodsNew.getGoodsId();
+            int goodsType = goodsNew.getGoodsType();
 
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertVIPGoods(goods, paramsDTO);
-		updateGoods(queryExist, goodsNew);
-	}
+            GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
+            if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId().equalsIgnoreCase(goodsId)
+                    && goodsDetailVO.getGoodsType() == goodsType) {
+                goodsEvaluate.setGoods(goodsNew);
+            }
 
-	@Override
-	public void updateSuningGoods(SuningGoodsInfo goods) {
-		if (goods == null) {
-			return;
-		}
-		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_SUNING,
-				goods.getCommodityInfo().getCommodityCode());
-		if (queryExist == null || queryExist.size() == 0) {
-			return;
-		}
+            // 鏇存柊鍟嗗搧淇℃伅
+            List<ImgInfo> imgList = goodsEvaluate.getImgList();
+            if (imgList == null || imgList.size() == 0) {
+                continue;
+            }
 
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
-		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
-		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO);
-		updateGoods(queryExist, goodsNew);
-	}
+            for (ImgInfo imgInfo : imgList) {
+                SimpleGoods simpleGoods = imgInfo.getGoods();
+                if (simpleGoods == null || !simpleGoods.getGoodsId().equalsIgnoreCase(goodsId)
+                        || goodsType != simpleGoods.getGoodsType()) {
+                    continue;
+                }
 
-	private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
-		String goodsId = goodsNew.getGoodsId();
-		int goodsType = goodsNew.getGoodsType();
-		for (GoodsEvaluate goodsEvaluate : listExist) {
-			GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
-			if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId().equalsIgnoreCase(goodsId)
-					&& goodsDetailVO.getGoodsType() == goodsType) {
-				goodsEvaluate.setGoods(goodsNew);
-			}
+                simpleGoods.setState(0);
+                simpleGoods.setPrice(goodsNew.getCouponPrice());
+                CouponInfoVO couponInfo = goodsNew.getCouponInfo();
+                if (couponInfo == null) {
+                    simpleGoods.setPrice(goodsNew.getZkPrice());
+                } else {
+                    simpleGoods.setPrice(goodsNew.getCouponPrice());
+                    simpleGoods.setAmount(couponInfo.getAmount());
+                }
 
-			// 鏇存柊鍟嗗搧淇℃伅
-			List<ImgInfo> imgList = goodsEvaluate.getImgList();
-			if (imgList == null || imgList.size() == 0) {
-				continue;
-			}
+                imgInfo.setGoods(simpleGoods);
+                imgInfo.setGoodsVO(goodsNew);
+            }
 
-			for (ImgInfo imgInfo : imgList) {
-				SimpleGoods simpleGoods = imgInfo.getGoods();
-				if (simpleGoods == null || !simpleGoods.getGoodsId().equalsIgnoreCase(goodsId)
-						|| goodsType != simpleGoods.getGoodsType()) {
-					continue;
-				}
+            goodsEvaluate.setImgList(imgList);
+            goodsEvaluate.setUpdateTime(new Date());
+            goodsEvaluateDao.save(goodsEvaluate);
+        }
+    }
 
-				simpleGoods.setState(0);
-				simpleGoods.setPrice(goodsNew.getCouponPrice());
-				CouponInfoVO couponInfo = goodsNew.getCouponInfo();
-				if (couponInfo == null) {
-					simpleGoods.setPrice(goodsNew.getZkPrice());
-				} else {
-					simpleGoods.setPrice(goodsNew.getCouponPrice());
-					simpleGoods.setAmount(couponInfo.getAmount());
-				}
+    @Override
+    public void offlineTaoBaoGoods(String goodsId) {
+        try {
+            if (goodsId == null) {
+                return;
+            }
 
-				imgInfo.setGoods(simpleGoods);
-				imgInfo.setGoodsVO(goodsNew);
-			}
+            for (SystemEnum system : SystemEnum.values()) {
+                List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId, system);
+                if (list == null || list.size() == 0) {
+                    continue;
+                }
+                // 涓嬫灦鍟嗗搧
+                offlineGoods(list, Constant.SOURCE_TYPE_TAOBAO, goodsId);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
-			goodsEvaluate.setImgList(imgList);
-			goodsEvaluate.setUpdateTime(new Date());
-			goodsEvaluateDao.save(goodsEvaluate);
-		}
-	}
+    @CacheEvict(value = "dynamicCache", allEntries = true)
+    public void offlineGoods(List<GoodsEvaluate> list, int goodsType, String goodsId) {
 
-	@Override
-	public void offlineTaoBaoGoods(String goodsId) {
-		try {
-			if (goodsId == null) {
-				return;
-			}
-			List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,goodsId);
-			if (list == null || list.size() == 0) {
-				return;
-			}
+        for (GoodsEvaluate goodsEvaluate : list) {
+            // 鍟嗗搧涓嬫灦
+            GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
+            goodsDetailVO.setState(1);
 
-			// 涓嬫灦鍟嗗搧
-			offlineGoods(list, Constant.SOURCE_TYPE_TAOBAO, goodsId);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+            List<ImgInfo> imgList = goodsEvaluate.getImgList();
+            if (imgList == null || imgList.size() == 0) {
+                goodsEvaluate.setUpdateTime(new Date());
+                goodsEvaluateDao.save(goodsEvaluate);
+                continue;
+            }
 
-	@CacheEvict(value = "dynamicCache", allEntries = true)
-	private void offlineGoods(List<GoodsEvaluate> list, int goodsType, String goodsId) {
+            for (ImgInfo imgInfo : imgList) {
+                SimpleGoods simpleGoods = imgInfo.getGoods();
+                if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId
+                        || goodsType != simpleGoods.getGoodsType()) {
+                    continue;
+                }
+                simpleGoods.setState(1);
+                GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
+                goodsVO.setState(1);
 
-		for (GoodsEvaluate goodsEvaluate : list) {
-			// 鍟嗗搧涓嬫灦
-			GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
-			goodsDetailVO.setState(1);
+                imgInfo.setGoods(simpleGoods);
+                imgInfo.setGoodsVO(goodsVO);
+            }
 
-			List<ImgInfo> imgList = goodsEvaluate.getImgList();
-			if (imgList == null || imgList.size() == 0) {
-				goodsEvaluate.setUpdateTime(new Date());
-				goodsEvaluateDao.save(goodsEvaluate);
-				continue;
-			}
+            goodsEvaluate.setImgList(imgList);
+            goodsEvaluate.setUpdateTime(new Date());
+            goodsEvaluateDao.save(goodsEvaluate);
+        }
+    }
 
-			for (ImgInfo imgInfo : imgList) {
-				SimpleGoods simpleGoods = imgInfo.getGoods();
-				if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId
-						|| goodsType != simpleGoods.getGoodsType()) {
-					continue;
-				}
-				simpleGoods.setState(1);
-				GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
-				goodsVO.setState(1);
+    /**
+     * 鍒犻櫎宸茶繃鏈熸椂闂�
+     */
+    private void removeOverdue() {
+        if (1 > 0)
+            return;
 
-				imgInfo.setGoods(simpleGoods);
-				imgInfo.setGoodsVO(goodsVO);
-			}
+        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;// 涓�澶╃殑姣鏁�
 
-			goodsEvaluate.setImgList(imgList);
-			goodsEvaluate.setUpdateTime(new Date());
-			goodsEvaluateDao.save(goodsEvaluate);
-		}
-	}
+        long time = java.lang.System.currentTimeMillis();
+        for (GoodsEvaluate goodsEvaluate : list) {
+            long diff = time - goodsEvaluate.getEndTime().getTime();
+            long min = diff % nd % nh / nm;
 
-	/**
-	 * 鍒犻櫎宸茶繃鏈熸椂闂�
-	 */
-	private void removeOverdue() {
-		if (1 > 0)
-			return;
+            // 杩囨湡瓒呰繃10鍒嗛挓灏卞垹闄�
+            if (min > 10) {
+                goodsEvaluateDao.remove(goodsEvaluate);
+            }
+        }
+    }
 
-		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;// 涓�澶╃殑姣鏁�
+    /**
+     * 鍒犻櫎鍟嗗搧宸蹭笅鏋�-鍗曞搧
+     */
+    private void removeDownGoods() {
+        if (1 > 0)
+            return;
+        try {
+            List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods();
+            if (list == null || list.size() == 0) {
+                return;
+            }
 
-		long time = java.lang.System.currentTimeMillis();
-		for (GoodsEvaluate goodsEvaluate : list) {
-			long diff = time - goodsEvaluate.getEndTime().getTime();
-			long min = diff % nd % nh / nm;
+            for (GoodsEvaluate goodsEvaluate : list) {
+                goodsEvaluateDao.remove(goodsEvaluate);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
-			// 杩囨湡瓒呰繃10鍒嗛挓灏卞垹闄�
-			if (min > 10) {
-				goodsEvaluateDao.remove(goodsEvaluate);
-			}
-		}
-	}
 
-	/**
-	 * 鍒犻櫎鍟嗗搧宸蹭笅鏋�-鍗曞搧
-	 */
-	private void removeDownGoods() {
-		if (1 > 0)
-			return;
-		try {
-			List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods();
-			if (list == null || list.size() == 0) {
-				return;
-			}
+    @Override
+    public GoodsEvaluate queryExistSingle(String goodsId, int goodsType, SystemEnum system) {
+        List<GoodsEvaluate> list = goodsEvaluateDao.queryExistSingle(goodsType, goodsId, system);
+        if (list != null && list.size() > 0)
+            return list.get(0);
+        return null;
+    }
 
-			for (GoodsEvaluate goodsEvaluate : list) {
-				goodsEvaluateDao.remove(goodsEvaluate);
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
 
-	
-	@Override
-	public GoodsEvaluate queryExistSingle(String goodsId, int goodsType) {
-		List<GoodsEvaluate> list = goodsEvaluateDao.queryExistSingle(goodsType, goodsId);
-		if (list != null && list.size() > 0)
-			return list.get(0);
-		return null;
-	}
-	
-	
 }

--
Gitblit v1.8.0