From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 19 五月 2020 17:13:23 +0800
Subject: [PATCH] 饿了么绘图,添加口碑

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 2469 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,242 insertions(+), 1,227 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
index 5ea4058..1b795c0 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -1,1227 +1,1242 @@
-package com.yeshi.fanli.service.impl.dynamic;
-
-import java.lang.reflect.InvocationTargetException;
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Service;
-import org.yeshi.utils.DateLunarUtil;
-import org.yeshi.utils.DateUtil;
-import org.yeshi.utils.taobao.TbImgUtil;
-
-import com.yeshi.fanli.dao.dynamic.DynamicInfoDao;
-import com.yeshi.fanli.dto.taobao.TaoBaoShopDTO;
-import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser;
-import com.yeshi.fanli.entity.bus.activity.ActivityUser;
-import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
-import com.yeshi.fanli.entity.bus.activity.RecommendActivityInviteInfo;
-import com.yeshi.fanli.entity.bus.activity.RecommendActivityTaoBaoGoods;
-import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
-import com.yeshi.fanli.entity.common.JumpDetailV2;
-import com.yeshi.fanli.entity.dynamic.DynamicInfo;
-import com.yeshi.fanli.entity.dynamic.GoodsPicture;
-import com.yeshi.fanli.entity.dynamic.InviteMaterial;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
-import com.yeshi.fanli.entity.taobao.TaoBaoShop;
-import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.activity.ActivityUserService;
-import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
-import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
-import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
-import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
-import com.yeshi.fanli.service.inter.user.QrCodeService;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
-import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
-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.GoodsDetailVO;
-import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
-
-import net.sf.json.JSONObject;
-
-@Service
-public class DynamicInfoServiceImpl implements DynamicInfoService {
-
-	@Resource(name = "taskExecutor")
-	private TaskExecutor executor;
-
-	@Resource
-	private DynamicInfoDao dynamicInfoDao;
-
-	@Resource
-	private RedisManager redisManager;
-
-	@Resource
-	private DaTaoKeGoodsService daTaoKeGoodsService;
-
-	@Resource
-	private JumpDetailV2Service jumpDetailV2Service;
-
-	@Resource
-	private ActivityUserService activityUserService;
-
-	@Resource
-	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
-
-	@Resource
-	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private TaoBaoShopService taoBaoShopService;
-
-	@Resource
-	private InviteMaterialService inviteMaterialService;
-
-	@Resource
-	private QrCodeService qrCodeService;
-
-	@Resource
-	private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
-
-	@Override
-	public void insert(DynamicInfo record) {
-		dynamicInfoDao.insert(record);
-	}
-
-	@Override
-	public DynamicInfo getById(String id) {
-		return dynamicInfoDao.getById(id);
-	}
-
-	@Override
-	public void insertTimeInvite() {
-		InviteMaterial inviteMaterial = inviteMaterialService.getInviteMaterial();
-		if (inviteMaterial == null) {
-			return;
-		}
-
-		Date date = new Date();
-		String materialId = inviteMaterial.getId();
-		String content = inviteMaterial.getText();
-
-		ActivityUser user = activityUserService.selectByPrimaryKey(2L);
-
-		if (!StringUtil.isNullOrEmpty(content)) {
-			DynamicInfo dynamicTxt = new DynamicInfo();
-			dynamicTxt.setId(UUID.randomUUID().toString().replace("-", ""));
-			dynamicTxt.setInviteMaterialId(materialId);
-			dynamicTxt.setClassId(4L);
-			dynamicTxt.setSubclassId(0L);
-			dynamicTxt.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
-			dynamicTxt.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
-			dynamicTxt.setUser(user);
-			dynamicTxt.setShareCount(1000 + (int) (Math.random() * 8000));
-			dynamicTxt.setCreateTime(date);
-			dynamicTxt.setUpdateTime(date);
-
-			SimpleDateFormat format = new SimpleDateFormat("MM鏈坉d鏃�");
-
-			StringBuffer buffer = new StringBuffer();
-			buffer.append("-------------------\n");
-			buffer.append("浠婂ぉ : " + format.format(date));
-			buffer.append("     ");
-			buffer.append(DateLunarUtil.getWeekd(date) + "\n");
-			buffer.append("鍚勪綅浜茬埍鐨勪綘");
-			buffer.append("         ");
-			buffer.append("鏃╁畨锝瀄n");
-			buffer.append("鎴戠殑閭�璇风爜锛氥�愰個璇风爜銆慭n");
-			buffer.append("璐墿鐪侀挶杩斿埄鍒窤pp锛氥�愰個璇烽摼鎺ャ��");
-
-			content = content.replaceAll("\\,", "\\锛�").replaceAll("\\.", "\\銆�").replaceAll("\\;", "\\锛�")
-					.replaceAll("\\!", "\\锛�").replaceAll("\\?", "\\锛�").replaceAll("\\:", "\\锛�");
-
-			ClientTextStyleVO row1 = new ClientTextStyleVO();
-			row1.setColor("#333333");
-			row1.setContent(content + "\n" + buffer.toString());
-			List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
-			listtitle.add(row1);
-			dynamicTxt.setTitle(listtitle);
-
-			// 绌烘暟鎹�
-			List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
-			dynamicTxt.setImgs(listImg);
-
-			dynamicInfoDao.insert(dynamicTxt);
-		}
-
-		String picture = inviteMaterial.getPicture();
-		if (!StringUtil.isNullOrEmpty(picture)) {
-			DynamicInfo dynamicPic = new DynamicInfo();
-			dynamicPic.setId(UUID.randomUUID().toString().replace("-", ""));
-			dynamicPic.setInviteMaterialId(materialId);
-			dynamicPic.setClassId(4L);
-			dynamicPic.setSubclassId(0L);
-			dynamicPic.setShowType(DynamicInfo.SHOW_TYPE_ONE);
-			dynamicPic.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
-			dynamicPic.setUser(user);
-			dynamicPic.setShareCount(1000 + (int) (Math.random() * 8000));
-			dynamicPic.setCreateTime(date);
-			dynamicPic.setUpdateTime(date);
-
-			try {
-				// 鐢诲浘
-				String url = qrCodeService.drawInviteToGreet(picture, null, null, null, content, new Date());
-
-				List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
-				dynamicPic.setTitle(listtitle);
-
-				GoodsPicture p2 = new GoodsPicture();
-				p2.setW(100);
-				p2.setH(100);
-				p2.setUrl(url);
-				p2.setUrlOriginal(picture);
-				p2.setTitleOriginal(content);
-				List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
-				listImg.add(p2);
-				dynamicPic.setImgs(listImg);
-
-				dynamicInfoDao.insert(dynamicPic);
-			} catch (Exception e) {
-				try {
-					LogHelper.errorDetailInfo(e);
-				} catch (Exception e1) {
-					e1.printStackTrace();
-				}
-			}
-		}
-		// 鏇存柊绱犳潗鐘舵��
-		inviteMaterialService.updateState(1, materialId);
-	}
-
-	@Override
-	public void insertShopInfo() {
-		List<String> brandIdList = DaTaoKeApiUtil.getBrandIdList();
-		if (brandIdList == null || brandIdList.size() == 0) {
-			LogHelper.test("澶ф窐瀹㈠搧鐗宨d鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�");
-			return;
-		}
-
-		Long classId = 3L;
-		Long subclassId = 0L;
-		List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId);
-
-		// 娓呯悊宸插瓨鍦ㄥ搧鐗�
-		if (listInfo != null && listInfo.size() > 0) {
-			for (int i = 0; i < brandIdList.size(); i++) {
-				String brandId = brandIdList.get(i);
-
-				for (int j = 0; j < listInfo.size(); j++) {
-					String id = listInfo.get(j).getId();
-					if (brandId.equals(id)) {
-						brandIdList.remove(brandId);
-						i--;
-
-						listInfo.remove(listInfo.get(j));
-						j--;
-					}
-				}
-			}
-		}
-
-		if (brandIdList == null || brandIdList.size() == 0) {
-			LogHelper.test("澶ф窐瀹㈠搧鐗屽凡鍏ㄩ儴鐖彇锛圖ynamicInfoService-insertShopInfo锛�");
-			return;
-		}
-
-		int index = (int) (Math.random() * brandIdList.size());
-		String brandId = brandIdList.get(index);
-
-		TaoBaoShopDTO dynamicShopInfo = DaTaoKeApiUtil.getDynamicShopInfo(brandId);
-		if (dynamicShopInfo == null) {
-			LogHelper.test("澶ф窐瀹㈠搧鐗屼俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�");
-			return;
-		}
-
-		List<TaoBaoGoodsBrief> listGoods = dynamicShopInfo.getListGoods();
-		if (listGoods == null || listGoods.size() == 0) {
-			LogHelper.test("澶ф窐瀹㈠搧鐗屽晢鍝佷俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�");
-			return;
-		}
-
-		Long sellerId = dynamicShopInfo.getSellerId();
-		TaoBaoGoodsBrief taoBaoGoodsBrief = listGoods.get(0);
-		TaoBaoShop taoBaoShop = taoBaoShopService.getTaoBaoShop(taoBaoGoodsBrief.getAuctionId(), sellerId);
-		if (taoBaoShop == null) {
-			LogHelper.test("搴楅摵璇︽儏淇℃伅鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�");
-			return;
-		}
-		String shopLink = taoBaoShop.getShopLink();
-		if (StringUtil.isNullOrEmpty(shopLink)) {
-			taoBaoShop.setShopLink(TaoBaoUtil.getShopLink(taoBaoShop.getId()));
-		}
-		
-		if(StringUtil.isNullOrEmpty(taoBaoShop.getShopIcon())) 
-			taoBaoShop.setShopIcon(dynamicShopInfo.getShopIcon());
-
-		DynamicInfo dynamicVO = new DynamicInfo();
-		dynamicVO.setId(brandId);
-		dynamicVO.setClassId(classId);
-		dynamicVO.setSubclassId(subclassId);
-		dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_TWO);
-		dynamicVO.setShop(taoBaoShop);
-		List<ActivityRuleUser> userList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAODIAN, 1, 50);
-		dynamicVO.setUser(userList.get((int) (userList.size() * Math.random())).getActivityUser());
-		dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
-		dynamicVO.setUpdateTime(new Date());
-
-		// 浠嬬粛鍐呭
-		ClientTextStyleVO row1 = new ClientTextStyleVO();
-		row1.setColor("#333333");
-		row1.setContent(dynamicShopInfo.getBrandDes());
-		List<ClientTextStyleVO> listTitle = new ArrayList<ClientTextStyleVO>();
-		listTitle.add(row1);
-		dynamicVO.setTitle(listTitle);
-
-		// 鍟嗗搧淇℃伅
-		List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
-		for (TaoBaoGoodsBrief goodsBrief : listGoods) {
-			BigDecimal proportion = hongBaoManageService.getFanLiRate();
-			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
-					proportion.toString(), null);
-			taoBaoGoodsBriefExtra.setCouponInfo(null);
-			taoBaoGoodsBriefExtra.setUpdatetime(new Date());
-
-			if (!taoBaoGoodsBriefExtra.isCoupon()) {
-				taoBaoGoodsBriefExtra.setState(1);
-			}
-
-			String goodsId = goodsBrief.getAuctionId().toString();
-			JSONObject item = new JSONObject();
-			item.put("id", goodsId);
-			item.put("from", "dynamics");
-
-			GoodsPicture goodsPicture = new GoodsPicture();
-			goodsPicture.setH(100);
-			goodsPicture.setW(100);
-			goodsPicture.setUrl(TbImgUtil.getTBSize320Img(goodsBrief.getPictUrl()));
-			goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail"));
-			goodsPicture.setParams(item.toString());
-			goodsPicture.setGoods(taoBaoGoodsBriefExtra);
-
-			listPicture.add(goodsPicture);
-		}
-		dynamicVO.setImgs(listPicture);
-
-		dynamicInfoDao.insert(dynamicVO);
-	}
-
-	@Override
-	public void insertTimeRecommend() {
-		try {
-			Long classId = 2L;
-			List<GoodsClass> list = DaTaoKeUtil.goodsClasses;
-			int index = (int) (Math.random() * list.size());
-			Long subclassId = list.get(index).getId();
-			int cid = Integer.parseInt(subclassId + "");
-			int count = 0;
-			double random = Math.random();
-			if (random > 0.4) {
-				count = 9;
-			} else {
-				count = 4;
-			}
-
-			List<DaTaoKeDetail> listDaTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, null, count);
-
-			DaTaoKeDetail daTaoKeDetail = null;
-			// 鍟嗗搧鍒楄〃
-			List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
-			// 鍟嗗搧鍒楄〃
-			List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
-			// 鍒嗕韩濂栭噾
-			BigDecimal shareMoney = new BigDecimal(0);
-
-			BigDecimal proportion = hongBaoManageService.getFanLiRate();
-			for (DaTaoKeDetail daTaoKe : listDaTaoKe) {
-				if (daTaoKeDetail == null) {
-					daTaoKeDetail = daTaoKe;
-				}
-				// 鍒嗕韩濂栭噾
-				TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
-				listGoods.add(taoBaoGoodsBrief);
-
-				TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-						proportion.toString(), null);
-				if (!taoBaoGoodsBriefExtra.isCoupon()) {
-					taoBaoGoodsBriefExtra.setState(1);
-				}
-
-				BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
-				shareMoney = MoneyBigDecimalUtil.add(shareMoney, money);
-				// 鍟嗗搧鍥剧墖
-				taoBaoGoodsBriefExtra.setUpdatetime(new Date());
-				taoBaoGoodsBriefExtra.setCouponInfo(null);
-				GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
-				goodsPicture.setGoods(taoBaoGoodsBriefExtra);
-
-				listPicture.add(goodsPicture);
-			}
-
-			// 缁勭粐鍔ㄦ�佷俊鎭�
-			DynamicInfo dynamicInfo = getDynamicInfo(daTaoKeDetail, classId, subclassId);
-			// 鏃犲唴瀹�
-			dynamicInfo.setTitle(new ArrayList<ClientTextStyleVO>());
-			// 鍙戝竷鐢ㄦ埛
-			dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(cid));
-			dynamicInfo.setImgs(listPicture);
-			dynamicInfo.setListGoodsBrief(listGoods);
-
-			ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-			shareMoneyDesc.setColor("#FFFFFF");
-			shareMoneyDesc.setBottomColor("#E8AE48");
-			shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-			dynamicInfo.setDesc(shareMoneyDesc);
-			dynamicInfo.setShowType(2);
-
-			if (count == 4) {
-				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO);
-				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_FOUR); // 鍒嗕韩绫诲瀷4鍥�
-			} else {
-				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_THREE);
-				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_NINE); // 鍒嗕韩绫诲瀷9鍥�
-			}
-			// 淇濆瓨淇℃伅
-			dynamicInfoDao.insert(dynamicInfo);
-
-		} catch (Exception e) {
-			try {
-				LogHelper.errorDetailInfo(e);
-			} catch (Exception e1) {
-				e1.printStackTrace();
-			}
-		}
-	}
-
-	// 瀹氭椂鎻掑叆
-	@Override
-	public void insertTimeHotSale() {
-		Long classId = 1L;
-		try {
-			for (int i = 0; i < 3; i++) {
-				boolean addSuccess = saveHotSale(classId, 0L);
-				if (addSuccess) {
-					break;
-				}
-			}
-		} catch (Exception e) {
-			try {
-				LogHelper.errorDetailInfo(e);
-			} catch (Exception e1) {
-				e1.printStackTrace();
-			}
-		}
-
-		// 鐑攢鍗曞搧鐨勫垎绫�
-		List<GoodsClass> list = DaTaoKeUtil.goodsClasses;
-		for (GoodsClass goodsClass : list) {
-			try {
-				for (int i = 0; i < 3; i++) {
-					boolean addSuccess = saveHotSale(classId, goodsClass.getId());
-					if (addSuccess) {
-						break;
-					}
-				}
-			} catch (Exception e) {
-				try {
-					LogHelper.errorDetailInfo(e);
-				} catch (Exception e1) {
-					e1.printStackTrace();
-				}
-			}
-		}
-	}
-
-	/**
-	 * 淇濆瓨鐑攢鍗曞搧
-	 * 
-	 * @param classId
-	 * @param subclassId
-	 * @throws TaobaoGoodsDownException
-	 */
-	public boolean saveHotSale(Long classId, Long subclassId) throws TaobaoGoodsDownException {
-		boolean addSuccess = false;
-		List<Long> listId = null;
-		List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId);
-		if (listInfo != null && listInfo.size() > 0) {
-			listId = new ArrayList<Long>();
-			for (DynamicInfo dynamicInfo : listInfo) {
-				Long daTaoKeId = dynamicInfo.getDaTaoKeId();
-				if (daTaoKeId != null) {
-					listId.add(dynamicInfo.getDaTaoKeId());
-				}
-			}
-		}
-		// 澶ф窐瀹㈡暟鎹�
-		DaTaoKeDetail daTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, listId, 1).get(0);
-		if (daTaoKe == null) {
-			return addSuccess;
-		}
-
-		try {
-			daTaoKe = DaTaoKeUtil.filterDaTaoKe(TaoKeApiUtil.searchGoodsDetail(daTaoKe.getGoodsId()), daTaoKe);
-		} catch (Exception e) {
-
-		}
-
-		TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-		TaoBaoGoodsBriefExtra goodsExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
-				null);
-
-		if (!goodsExtra.isCoupon() || (goodsExtra.getState() != null && goodsExtra.getState() == 1)) {
-			return addSuccess; // 宸蹭笅鏋� 銆佹棤鍒� 涓嶅姞鍏�
-		}
-
-		List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
-		listGoods.add(taoBaoGoodsBrief);
-
-		goodsExtra.setTkRate(taoBaoGoodsBrief.getTkRate());
-		goodsExtra.setUpdatetime(new Date());
-		goodsExtra.setCouponInfo(null);
-
-		GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
-		goodsPicture.setGoods(goodsExtra);
-		// 鍟嗗搧鍒楄〃
-		List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
-		listPicture.add(goodsPicture);
-
-		// 鑾峰彇鍟嗗搧鍒楄〃鍥剧墖
-		TaoBaoGoodsBrief taoBaoGoodsBrief2 = TaoKeApiUtil.getSimpleGoodsInfo(daTaoKe.getGoodsId());
-		List<String> imgList = taoBaoGoodsBrief2.getImgList();
-		List<String> listimgs = new ArrayList<String>();
-		String pic = daTaoKe.getPic();
-		listimgs.add(TbImgUtil.getTBSize320Img(pic));
-		if (imgList != null && imgList.size() > 0) {
-			for (String img : imgList) {
-
-				if (listPicture.size() >= 4) {
-					break;
-				}
-				if (pic.equals(img)) {
-					continue;
-				}
-
-				listimgs.add(img);
-				GoodsPicture picture = new GoodsPicture();
-				picture.setH(100);
-				picture.setW(100);
-				picture.setUrl(TbImgUtil.getTBSize320Img(img));
-				listPicture.add(picture);
-			}
-		}
-		goodsExtra.setImgList(imgList);
-
-		// 鍒嗕韩濂栭噾
-		BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
-		ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-		shareMoneyDesc.setColor("#FFFFFF");
-		shareMoneyDesc.setBottomColor("#E8AE48");
-		shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-
-		// 缁勭粐鍔ㄦ�佷俊鎭�
-		DynamicInfo dynamicInfo = getDynamicInfo(daTaoKe, classId, subclassId);
-		dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()));
-		dynamicInfo.setImgs(listPicture);
-		dynamicInfo.setDesc(shareMoneyDesc);
-		dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_ONE);
-		dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO);
-		dynamicInfo.setListGoodsBrief(listGoods);
-
-		String desc = DaTaoKeUtil.getDesc(daTaoKe);
-		if (!StringUtil.isNullOrEmpty(desc)) {
-			int index = desc.lastIndexOf("\n");
-			String newDesc = desc.substring(index + 1);
-			if (StringUtil.isNullOrEmpty(newDesc)) {
-				desc = desc.substring(0, index);
-			}
-		}
-		dynamicInfo.setTitle(convertIntroduce(desc));
-
-		// 淇濆瓨淇℃伅
-		dynamicInfoDao.insert(dynamicInfo);
-
-		addSuccess = true;
-		return addSuccess;
-	}
-
-	/**
-	 * 鏁版嵁缁勭粐瀛樺叆MongoDB涓�
-	 * 
-	 * @param daTaoKe
-	 * @param classId
-	 * @param subclassId
-	 * @throws TaobaoGoodsDownException
-	 */
-	public DynamicInfo getDynamicInfo(DaTaoKeDetail daTaoKe, Long classId, Long subclassId) {
-		DynamicInfo dynamicInfo = new DynamicInfo();
-		dynamicInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-		dynamicInfo.setClassId(classId);
-		dynamicInfo.setSubclassId(subclassId);
-		dynamicInfo.setDaTaoKeId(daTaoKe.getId());
-		dynamicInfo.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
-		dynamicInfo.setUpdateTime(new Date());
-		// 闅忔満鍒嗕韩娆℃暟
-		dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000));
-
-		return dynamicInfo;
-	}
-
-	/**
-	 * 鏂囧瓧鍐呭
-	 * 
-	 * @param introduce
-	 * @return
-	 */
-	public List<ClientTextStyleVO> convertIntroduce(String introduce) {
-		List<ClientTextStyleVO> title = new ArrayList<ClientTextStyleVO>();
-		ClientTextStyleVO desc = new ClientTextStyleVO();
-		desc.setColor("#333333");
-		desc.setContent(introduce);
-		title.add(desc);
-		return title;
-	}
-
-	/**
-	 * 鍥剧墖鍒楄〃
-	 * 
-	 * @param daTaoKe
-	 * @return
-	 */
-	public GoodsPicture getGoodsPicture(DaTaoKeDetail daTaoKe) {
-		GoodsPicture goodsPicture = new GoodsPicture();
-		goodsPicture.setH(100);
-		goodsPicture.setW(100);
-		goodsPicture.setUrl(TbImgUtil.getTBSize320Img(daTaoKe.getPic()));
-		goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail"));
-
-		String goodsId = daTaoKe.getGoodsId().toString();
-		JSONObject item = new JSONObject();
-		item.put("id", goodsId);
-		item.put("from", "dynamics");
-		goodsPicture.setParams(item.toString());
-		return goodsPicture;
-	}
-
-	@Override
-	public void insertInviteActivity(RecommendActivity activity) throws Exception {
-
-		String title = activity.getTitle();
-
-		String picUrl = null;
-		List<String> imageList = activity.getImageList();
-		if (imageList != null && imageList.size() > 0) {
-			picUrl = imageList.get(0);
-		}
-
-		if (StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(picUrl)) {
-			return;
-		}
-
-		// 鍒ゆ柇鏄惁宸插瓨鍦�
-		String dynamicInfoId = null;
-
-		Long activityId = activity.getId();
-		DynamicInfo dynamicVO = dynamicInfoDao.getByActivityId(activityId);
-		if (dynamicVO == null) {
-			dynamicVO = new DynamicInfo();
-			dynamicVO.setId(UUID.randomUUID().toString().replace("-", ""));
-			dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
-		} else {
-			dynamicInfoId = dynamicVO.getId();
-		}
-
-		if (!StringUtil.isNullOrEmpty(title)) {
-			title = title.replaceAll("<p>", "").replaceAll("</p>", "").replaceAll("<br>", "\n");
-
-			int index = title.lastIndexOf("\n");
-			String newDesc = title.substring(index + 1);
-			if (StringUtil.isNullOrEmpty(newDesc)) {
-				title = title.substring(0, index);
-			}
-
-			title = title.replaceAll("\\,", "\\锛�").replaceAll("\\.", "\\銆�").replaceAll("\\;", "\\锛�")
-					.replaceAll("\\!", "\\锛�").replaceAll("\\?", "\\锛�").replaceAll("\\:", "\\锛�");
-		}
-
-		dynamicVO.setId(UUID.randomUUID().toString().replace("-", ""));
-		dynamicVO.setActivityId(activityId);
-		dynamicVO.setClassId(4L);
-		dynamicVO.setSubclassId(0L);
-		dynamicVO.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
-		dynamicVO.setUpdateTime(new Date());
-
-		Integer shareCount = activity.getShareCount();
-		if (shareCount == null || shareCount <= 0) {
-			dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000));
-		} else {
-			dynamicVO.setShareCount(shareCount);
-		}
-
-		// 鍙戝竷鐢ㄦ埛
-		ActivityUser activityUser = activity.getActivityUser();
-		if (activityUser == null) {
-			dynamicVO.setUser(activityUserService.selectByPrimaryKey(2L));
-		} else {
-			dynamicVO.setUser(activityUser);
-		}
-
-		// 浠嬬粛鍐呭
-		List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
-		if (!StringUtil.isNullOrEmpty(title)) {
-			ClientTextStyleVO row1 = new ClientTextStyleVO();
-			row1.setColor("#333333");
-			row1.setContent(title);
-			listtitle.add(row1);
-		}
-
-		// 鍥剧墖
-		List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
-		if (StringUtil.isNullOrEmpty(picUrl)) {
-			dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
-		} else {
-			dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE);
-			RecommendActivityInviteInfo inviteInfo = activity.getInviteInfo();
-
-			Integer pX = null;
-			Integer pY = null;
-			Integer size = null;
-			if (inviteInfo != null) {
-				pX = inviteInfo.getPx();
-				pY = inviteInfo.getPy();
-				size = inviteInfo.getSize();
-			}
-
-			// 鍥剧墖
-			String imgLink = qrCodeService.drawInviteQrCodeNew(picUrl, null, null, pX, pY, size, null);
-			GoodsPicture p2 = new GoodsPicture();
-			p2.setW(100);
-			p2.setH(100);
-			p2.setUrl(imgLink);
-			p2.setUrlOriginal(picUrl);
-			p2.setPx(pX);
-			p2.setPy(pY);
-			p2.setSize(size);
-
-			listImg.add(p2);
-		}
-
-		dynamicVO.setImgs(listImg);
-		dynamicVO.setTitle(listtitle);
-
-		if (!StringUtil.isNullOrEmpty(dynamicInfoId)) {
-			dynamicInfoDao.deleteById(dynamicInfoId);
-		}
-
-		dynamicInfoDao.insert(dynamicVO);
-	}
-
-	@Override
-	public void insertActivityRecommend(RecommendActivity activity) {
-		if (activity == null || activity.getGoodsList() == null) {
-			return;
-		}
-
-		try {
-			String dynamicInfoId = null;
-			DynamicInfo dynamicInfo = dynamicInfoDao.getByActivityId(activity.getId());
-			if (dynamicInfo == null) {
-				dynamicInfo = new DynamicInfo();
-				dynamicInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-				dynamicInfo.setCreateTime(new Date());
-			} else {
-				dynamicInfoId = dynamicInfo.getId();
-			}
-
-			dynamicInfo.setClassId(2L);
-			dynamicInfo.setSubclassId(0L);
-			dynamicInfo.setUser(activity.getActivityUser());
-			dynamicInfo.setActivityId(activity.getId());
-			dynamicInfo.setUpdateTime(new Date());
-
-			List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
-			String title = activity.getTitle();
-			if (!StringUtil.isNullOrEmpty(title)) {
-				title = title.replaceAll("<p>", "");
-				title = title.replaceAll("</p>", "");
-				title = title.replaceAll("<br>", "\n");
-
-				int index = title.lastIndexOf("\n");
-				String newDesc = title.substring(index + 1);
-				if (StringUtil.isNullOrEmpty(newDesc)) {
-					title = title.substring(0, index);
-				}
-
-				ClientTextStyleVO row1 = new ClientTextStyleVO();
-				row1.setColor("#333333");
-				row1.setContent(title);
-				listtitle.add(row1);
-			}
-			dynamicInfo.setTitle(listtitle);
-
-			Integer shareCount = activity.getShareCount();
-			if (shareCount == null || shareCount <= 0) {
-				dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000));
-			} else {
-				dynamicInfo.setShareCount(shareCount);
-			}
-
-			// 鍙戝竷鐢ㄦ埛
-			ActivityUser activityUser = activity.getActivityUser();
-			if (activityUser == null) {
-				dynamicInfo.setUser(activityUserService.selectByPrimaryKey(2L));
-			} else {
-				dynamicInfo.setUser(activityUser);
-			}
-
-			List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
-			// 鍟嗗搧鍒楄〃
-			List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
-			BigDecimal proportion = hongBaoManageService.getFanLiRate();
-			// 鍒嗕韩濂栭噾
-			BigDecimal shareMoney = new BigDecimal(0);
-
-			if (activity.getGoodsList() != null) {
-				for (RecommendActivityTaoBaoGoods activityGoods : activity.getGoodsList()) {
-
-					TaoBaoGoodsBrief taoBaoGoodsBrief = null;
-					TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = null;
-					String auctionId = activityGoods.getAuctionId();
-					try {
-						taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(auctionId));
-
-						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-								proportion.toString(), null);
-						if (!taoBaoGoodsBriefExtra.isCoupon()) {
-							taoBaoGoodsBriefExtra.setState(1);
-						}
-
-						BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
-						shareMoney = MoneyBigDecimalUtil.add(shareMoney, money);
-					} catch (TaobaoGoodsDownException e) {
-						taoBaoGoodsBrief = activityGoods.getTaoBaoGoodsBrief();
-						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-								proportion.toString(), null);
-						taoBaoGoodsBriefExtra.setState(1);
-						taoBaoGoodsBriefExtra.setCoupon(false);
-					}
-					listGoods.add(taoBaoGoodsBrief);
-
-					// 鍟嗗搧鍥剧墖
-					taoBaoGoodsBriefExtra.setCouponInfo(null);
-					taoBaoGoodsBriefExtra.setUpdatetime(new Date());
-
-					JSONObject item = new JSONObject();
-					item.put("id", auctionId);
-					item.put("from", "dynamics");
-
-					GoodsPicture goodsPicture = new GoodsPicture();
-					goodsPicture.setH(100);
-					goodsPicture.setW(100);
-					goodsPicture.setUrl(TbImgUtil.getTBSize320Img(taoBaoGoodsBrief.getPictUrl()));
-					goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail"));
-					goodsPicture.setParams(item.toString());
-					goodsPicture.setGoods(taoBaoGoodsBriefExtra);
-
-					listPicture.add(goodsPicture);
-				}
-			}
-			dynamicInfo.setImgs(listPicture);
-			dynamicInfo.setListGoodsBrief(listGoods);
-
-			ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-			shareMoneyDesc.setColor("#FFFFFF");
-			shareMoneyDesc.setBottomColor("#E8AE48");
-			shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-			dynamicInfo.setDesc(shareMoneyDesc);
-			dynamicInfo.setShowType(2);
-
-			if (listPicture.size() < 7) {
-				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO);
-				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_FOUR); // 鍒嗕韩绫诲瀷4鍥�
-			} else {
-				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_THREE);
-				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_NINE); // 鍒嗕韩绫诲瀷9鍥�
-			}
-
-			if (!StringUtil.isNullOrEmpty(dynamicInfoId)) {
-				dynamicInfoDao.deleteById(dynamicInfoId);
-			}
-			// 淇濆瓨淇℃伅
-			dynamicInfoDao.insert(dynamicInfo);
-
-		} catch (Exception e) {
-			try {
-				LogHelper.errorDetailInfo(e);
-			} catch (Exception e1) {
-				e1.printStackTrace();
-			}
-		}
-	}
-
-	@Override
-	public void deleteActivity(Long activityId) {
-		DynamicInfo dynamicInfo = dynamicInfoDao.getByActivityId(activityId);
-		if (dynamicInfo != null) {
-			// 鍒犻櫎涔嬪墠鐨�
-			dynamicInfoDao.deleteById(dynamicInfo.getId());
-		}
-	}
-
-	@Override
-	public void removeByDate(Date createTime) {
-		dynamicInfoDao.removeByDate(createTime);
-	}
-
-	@Override
-	public void updateShareCount(DynamicInfo record) {
-		dynamicInfoDao.updateShareCount(record);
-	}
-
-	@Override
-	@Cacheable(value = "dynamicCache", key = "'count-'+#cid+'-'+#subId")
-	public long count(Long cid, Long subId) {
-		return dynamicInfoDao.count(cid, subId);
-	}
-
-	@Override
-	@Cacheable(value = "dynamicCache", key = "'query-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
-	public List<DynamicInfo> query(int start, int count, Long cid, Long subId) {
-		List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId);
-
-		// 鏇存柊鍟嗗搧淇℃伅
-		executor.execute(new Runnable() {
-			@Override
-			public void run() {
-				updateGoodInfo(list);
-			}
-		});
-
-		return list;
-	}
-
-	private Map<Long, TaoBaoGoodsBrief> getFilterGoodsMap(List<DynamicInfo> list) {
-		// 鎻愬彇杩囨护鍟嗗搧
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-		for (DynamicInfo dynamicInfo : list) {
-			List<GoodsPicture> gpList = dynamicInfo.getImgs();
-			if (gpList != null)
-				for (GoodsPicture gp : gpList) {
-					if (gp != null && gp.getGoods() != null) {
-						TaoBaoGoodsBriefExtra newGoods = new TaoBaoGoodsBriefExtra();
-						try {
-							PropertyUtils.copyProperties(newGoods, gp.getGoods());
-							goodsList.add(newGoods);
-						} catch (IllegalAccessException e) {
-							e.printStackTrace();
-						} catch (InvocationTargetException e) {
-							e.printStackTrace();
-						} catch (NoSuchMethodException e) {
-							e.printStackTrace();
-						}
-
-					}
-				}
-		}
-		goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
-		Map<Long, TaoBaoGoodsBrief> map = new HashMap<>();
-		if (goodsList != null)
-			for (TaoBaoGoodsBrief goods : goodsList)
-				map.put(goods.getAuctionId(), goods);
-		return map;
-	}
-
-	@Override
-	@Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
-	public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) {
-		List<DynamicInfo> listNew = new ArrayList<DynamicInfo>();
-		List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId);
-		// 闇�瑕佹洿鏂扮殑鍟嗗搧
-		List<TaoBaoGoodsBrief> taoBaoGoodsUpdateList = new ArrayList<>();
-		if (list != null && list.size() > 0) {
-			// 鎻愬彇鍟嗗搧
-			Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterGoodsMap(list);
-
-			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-			BigDecimal shareRate = hongBaoManageService.getShareRate();
-			for (DynamicInfo dynamicInfo : list) {
-				DynamicInfo dynamicNew = new DynamicInfo();
-				try {
-					PropertyUtils.copyProperties(dynamicNew, dynamicInfo);
-				} catch (Exception e) {
-					e.printStackTrace();
-					continue;
-				}
-
-				// 搴楅摵淇℃伅
-				TaoBaoShop shop = dynamicNew.getShop();
-				if (shop != null) {
-					TaoBaoShop shopNew = new TaoBaoShop();
-					try {
-						PropertyUtils.copyProperties(shopNew, shop);
-					} catch (Exception e) {
-						e.printStackTrace();
-						continue;
-					}
-					Integer userType = shopNew.getUserType();
-					if (userType == null || userType == 0) {
-						shopNew.setUserType(10);
-					} else {
-						shopNew.setUserType(11);
-					}
-					dynamicNew.setShop(shopNew);
-				}
-
-				List<GoodsPicture> imgsNew = new ArrayList<GoodsPicture>();
-				List<GoodsPicture> imgs = dynamicNew.getImgs();
-				if (imgs != null && imgs.size() > 0) {
-					for (GoodsPicture goodsPicture : imgs) {
-						TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
-						if (goods == null) {
-							imgsNew.add(goodsPicture);
-							continue;
-						}
-
-						taoBaoGoodsUpdateList.add(goods);
-
-						GoodsPicture goodsNew = new GoodsPicture();
-						try {
-							PropertyUtils.copyProperties(goodsNew, goodsPicture);
-						} catch (Exception e) {
-							e.printStackTrace();
-							continue;
-						}
-
-						// 杩囨护鍒镐俊鎭笌璧勯噾淇℃伅
-						goods.setCouponAmount(goodsMap.get(goods.getAuctionId()).getCouponAmount());
-						goods.setZkPrice(goodsMap.get(goods.getAuctionId()).getZkPrice());
-						goods.setCouponStartFee(goodsMap.get(goods.getAuctionId()).getCouponStartFee());
-						goods.setTkRate(goodsMap.get(goods.getAuctionId()).getTkRate());
-
-						GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate,
-								shareRate);
-
-						goodsNew.setGoodsVO(detailVO);
-						goodsNew.setGoods(null);
-
-						JumpDetailV2 jumpDetail = goodsNew.getJumpDetail();
-						if (jumpDetail != null) {
-							JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache(jumpDetail.getType(),
-									platform, version);
-							if (jumpDetailV2 != null) {
-								goodsNew.setJumpDetail(jumpDetailV2);
-							}
-						}
-
-						imgsNew.add(goodsNew);
-					}
-					dynamicNew.setImgs(imgsNew);
-				}
-				listNew.add(dynamicNew);
-			}
-		}
-
-		// 鏇存柊鍟嗗搧淇℃伅
-		executor.execute(new Runnable() {
-			@Override
-			public void run() {
-				updateGoodInfo(list);
-			}
-		});
-
-		taoBaoGoodsUpdateService.addUpdateQueueAsync(taoBaoGoodsUpdateList);
-		return listNew;
-	}
-
-	/**
-	 * 鏇存柊鍟嗗搧淇℃伅
-	 */
-	public void updateGoodInfo(List<DynamicInfo> list) {
-		if (!Constant.IS_OUTNET) {
-			return; // 澶栫綉杩涜鏇存柊
-		}
-
-		if (list == null || list.size() == 0) {
-			return;
-		}
-
-		try {
-			BigDecimal proportion = hongBaoManageService.getFanLiRate();
-			for (DynamicInfo dynamicInfo : list) {
-				// 閭�璇锋暟鎹笉鍋氭洿鏂�
-				long classId = dynamicInfo.getClassId();
-				if (classId == 4) {
-					break;
-				}
-
-				// 鏇存柊鍟嗗搧淇℃伅
-				List<GoodsPicture> listPicture = dynamicInfo.getImgs();
-				if (listPicture == null || listPicture.size() == 0) {
-					continue;
-				}
-
-				// 鏄惁涓�涓皬鏃朵箣鍐呭凡鏇存柊
-				Date updateTime = dynamicInfo.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 < 1) {
-						continue;
-					}
-				}
-
-				boolean needUpdate = false;
-				// 宸蹭笅鏋禝D
-				List<Long> listDown = new ArrayList<Long>();
-				// 鍟嗗搧鍒楄〃
-				List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
-
-				for (GoodsPicture goodsPicture : listPicture) {
-					TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods();
-					if (oldExtra == null) {
-						continue;
-					}
-
-					Integer state = oldExtra.getState();
-					if (state != null && state == 1) {
-						continue;
-					}
-
-					TaoBaoGoodsBrief goodsBrief = null;
-					try {
-						goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId());
-					} catch (TaobaoGoodsDownException e) {
-					}
-
-					// 鏄惁涓嬫灦 锛� 1銆佸晢鍝佹湰韬笅鏋� 2銆佹棤鍒镐俊鎭垯璁や负涓嬫灦
-					boolean isDown = true;
-
-					if (goodsBrief == null) {
-						listDown.add(oldExtra.getAuctionId()); // 涓嬫灦鍟嗗搧
-					} else if (goodsBrief.getCouponAmount() != null
-							&& goodsBrief.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) {
-						isDown = false;
-					}
-
-					if (isDown) {
-						oldExtra.setState(1);
-						oldExtra.setCoupon(false);
-						oldExtra.setUpdatetime(new Date());
-						goodsPicture.setGoods(oldExtra);
-
-						// 鍟嗗搧宸叉姠鍏�
-						goodsPicture.setGoodState(1);
-
-						// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲�
-						if (classId == 1) {
-							ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-							shareMoneyDesc.setColor("#FFFFFF");
-							shareMoneyDesc.setBottomColor("#E8AE48");
-							shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + new BigDecimal(0));
-							dynamicInfo.setDesc(shareMoneyDesc);
-						}
-					} else {
-						listGoods.add(goodsBrief);
-
-						TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
-								proportion.toString(), null);
-						newExtra.setUpdatetime(new Date());
-						goodsPicture.setGoods(newExtra);
-
-						// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲�
-						if (classId == 1) {
-							BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief);
-							ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-							shareMoneyDesc.setColor("#FFFFFF");
-							shareMoneyDesc.setBottomColor("#E8AE48");
-							shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-							dynamicInfo.setDesc(shareMoneyDesc);
-						}
-					}
-
-					// 闇�瑕佹洿鏂颁俊鎭紱
-					needUpdate = true;
-				}
-
-				// 鏃犳晥鏇存柊淇℃伅
-				if (!needUpdate) {
-					continue;
-				}
-
-				// 鏇存柊鍟嗗搧淇℃伅
-				dynamicInfo.setImgs(listPicture);
-
-				// 鍟嗗搧宸蹭笅鏋�
-				List<TaoBaoGoodsBrief> listGoodsBrief = dynamicInfo.getListGoodsBrief();
-				if (listGoodsBrief != null && listGoodsBrief.size() > 0) {
-					// 娣樺疂宸蹭笅鏋跺晢鍝�
-					if (listDown.size() > 0) {
-						for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
-							if (listDown.contains(taoBaoGoodsBrief.getAuctionId())) {
-								taoBaoGoodsBrief.setState(1);
-							}
-						}
-					}
-
-					if (listGoods.size() == 0) {
-						dynamicInfo.setListGoodsBrief(listGoodsBrief);
-					} else {
-						List<TaoBaoGoodsBrief> listNew = new ArrayList<TaoBaoGoodsBrief>();
-						for (int i = 0; i < listGoodsBrief.size(); i++) {
-							TaoBaoGoodsBrief taoBaoGoodsBrief = listGoodsBrief.get(i);
-							if (taoBaoGoodsBrief.getState() != null && taoBaoGoodsBrief.getState() == 1) {
-								listNew.add(taoBaoGoodsBrief);
-							} else {
-								boolean isUpdate = false;
-								Long auctionId = taoBaoGoodsBrief.getAuctionId();
-								for (TaoBaoGoodsBrief goods : listGoods) {
-									if (goods.getAuctionId().equals(auctionId) || goods.getAuctionId() == auctionId) {
-										listNew.add(goods);
-										isUpdate = true;
-										break;
-									}
-								}
-
-								if (!isUpdate) {
-									listNew.add(taoBaoGoodsBrief);
-								}
-							}
-						}
-						dynamicInfo.setListGoodsBrief(listNew);
-					}
-				}
-				dynamicInfo.setUpdateTime(new Date());
-				dynamicInfoDao.updateGoodInfo(dynamicInfo);
-			}
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
-		}
-
-	}
-
-}
+package com.yeshi.fanli.service.impl.dynamic;
+
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Service;
+import org.yeshi.utils.DateLunarUtil;
+import org.yeshi.utils.DateUtil;
+import org.yeshi.utils.HttpUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
+
+import com.yeshi.fanli.dao.dynamic.DynamicInfoDao;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.taobao.TaoBaoShopDTO;
+import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser;
+import com.yeshi.fanli.entity.bus.activity.ActivityUser;
+import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
+import com.yeshi.fanli.entity.bus.activity.RecommendActivityInviteInfo;
+import com.yeshi.fanli.entity.bus.activity.RecommendActivityTaoBaoGoods;
+import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
+import com.yeshi.fanli.entity.common.JumpDetailV2;
+import com.yeshi.fanli.entity.dynamic.DynamicInfo;
+import com.yeshi.fanli.entity.dynamic.GoodsPicture;
+import com.yeshi.fanli.entity.dynamic.InviteMaterial;
+import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
+import com.yeshi.fanli.entity.taobao.TaoBaoShop;
+import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
+import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.activity.ActivityUserService;
+import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
+import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
+import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
+import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService;
+import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
+import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
+import com.yeshi.fanli.service.inter.user.QrCodeService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.RedisManager;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+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.GoodsDetailVO;
+import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
+
+import net.sf.json.JSONObject;
+
+@Service
+public class DynamicInfoServiceImpl implements DynamicInfoService {
+
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
+
+	@Resource
+	private DynamicInfoDao dynamicInfoDao;
+
+	@Resource
+	private RedisManager redisManager;
+
+	@Resource
+	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
+
+	@Resource
+	private JumpDetailV2Service jumpDetailV2Service;
+
+	@Resource
+	private ActivityUserService activityUserService;
+
+	@Resource
+	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
+
+	@Resource
+	private HongBaoManageService hongBaoManageService;
+
+	@Resource
+	private TaoBaoShopService taoBaoShopService;
+
+	@Resource
+	private InviteMaterialService inviteMaterialService;
+
+	@Resource
+	private QrCodeService qrCodeService;
+
+	@Resource
+	private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
+	@Resource
+	private GoodsEvaluateService goodsEvaluateService;
+	
+	@Override
+	public void insert(DynamicInfo record) {
+		dynamicInfoDao.insert(record);
+	}
+
+	@Override
+	public DynamicInfo getById(String id) {
+		return dynamicInfoDao.getById(id);
+	}
+
+	@Override
+	public void insertTimeInvite() {
+		InviteMaterial inviteMaterial = inviteMaterialService.getInviteMaterial();
+		if (inviteMaterial == null) {
+			return;
+		}
+
+		Date date = new Date();
+		String materialId = inviteMaterial.getId();
+		String content = inviteMaterial.getText();
+
+		ActivityUser user = activityUserService.selectByPrimaryKey(2L);
+
+		if (!StringUtil.isNullOrEmpty(content)) {
+			DynamicInfo dynamicTxt = new DynamicInfo();
+			dynamicTxt.setId(UUID.randomUUID().toString().replace("-", ""));
+			dynamicTxt.setInviteMaterialId(materialId);
+			dynamicTxt.setClassId(4L);
+			dynamicTxt.setSubclassId(0L);
+			dynamicTxt.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
+			dynamicTxt.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
+			dynamicTxt.setUser(user);
+			dynamicTxt.setShareCount(1000 + (int) (Math.random() * 8000));
+			dynamicTxt.setCreateTime(date);
+			dynamicTxt.setUpdateTime(date);
+
+			SimpleDateFormat format = new SimpleDateFormat("MM鏈坉d鏃�");
+
+			StringBuffer buffer = new StringBuffer();
+			buffer.append("-------------------\n");
+			buffer.append("浠婂ぉ : " + format.format(date));
+			buffer.append("     ");
+			buffer.append(DateLunarUtil.getWeekd(date) + "\n");
+			buffer.append("鍚勪綅浜茬埍鐨勪綘");
+			buffer.append("         ");
+			buffer.append("鏃╁畨锝瀄n");
+			buffer.append("鎴戠殑閭�璇风爜锛氥�愰個璇风爜銆慭n");
+			buffer.append("璐墿鐪侀挶鏉挎牀蹇渷App锛氥�愰個璇烽摼鎺ャ��");
+
+			content = content.replaceAll("\\,", "\\锛�").replaceAll("\\.", "\\銆�").replaceAll("\\;", "\\锛�")
+					.replaceAll("\\!", "\\锛�").replaceAll("\\?", "\\锛�").replaceAll("\\:", "\\锛�");
+
+			ClientTextStyleVO row1 = new ClientTextStyleVO();
+			row1.setColor("#333333");
+			row1.setContent(content + "\n" + buffer.toString());
+			List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
+			listtitle.add(row1);
+			dynamicTxt.setTitle(listtitle);
+
+			// 绌烘暟鎹�
+			List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
+			dynamicTxt.setImgs(listImg);
+
+			dynamicInfoDao.insert(dynamicTxt);
+		}
+
+		String picture = inviteMaterial.getPicture();
+		if (!StringUtil.isNullOrEmpty(picture)) {
+			DynamicInfo dynamicPic = new DynamicInfo();
+			dynamicPic.setId(UUID.randomUUID().toString().replace("-", ""));
+			dynamicPic.setInviteMaterialId(materialId);
+			dynamicPic.setClassId(4L);
+			dynamicPic.setSubclassId(0L);
+			dynamicPic.setShowType(DynamicInfo.SHOW_TYPE_ONE);
+			dynamicPic.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
+			dynamicPic.setUser(user);
+			dynamicPic.setShareCount(1000 + (int) (Math.random() * 8000));
+			dynamicPic.setCreateTime(date);
+			dynamicPic.setUpdateTime(date);
+
+			try {
+				// 鐢诲浘
+				String url = qrCodeService.drawInviteToGreet(picture, null, null, null, content, new Date());
+
+				List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
+				dynamicPic.setTitle(listtitle);
+
+				GoodsPicture p2 = new GoodsPicture();
+				p2.setW(100);
+				p2.setH(100);
+				p2.setUrl(url);
+				p2.setUrlOriginal(picture);
+				p2.setTitleOriginal(content);
+				List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
+				listImg.add(p2);
+				dynamicPic.setImgs(listImg);
+
+				dynamicInfoDao.insert(dynamicPic);
+			} catch (Exception e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+		}
+		// 鏇存柊绱犳潗鐘舵��
+		inviteMaterialService.updateState(1, materialId);
+	}
+
+	@Override
+	public void insertShopInfo() {
+		List<String> brandIdList = DaTaoKeApiUtil.getBrandIdList();
+		if (brandIdList == null || brandIdList.size() == 0) {
+			LogHelper.test("澶ф窐瀹㈠搧鐗宨d鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�");
+			return;
+		}
+
+		Long classId = 3L;
+		Long subclassId = 0L;
+		List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId);
+
+		// 娓呯悊宸插瓨鍦ㄥ搧鐗�
+		if (listInfo != null && listInfo.size() > 0) {
+			for (int i = 0; i < brandIdList.size(); i++) {
+				String brandId = brandIdList.get(i);
+
+				for (int j = 0; j < listInfo.size(); j++) {
+					String id = listInfo.get(j).getId();
+					if (brandId.equals(id)) {
+						brandIdList.remove(brandId);
+						i--;
+
+						listInfo.remove(listInfo.get(j));
+						j--;
+					}
+				}
+			}
+		}
+
+		if (brandIdList == null || brandIdList.size() == 0) {
+			LogHelper.test("澶ф窐瀹㈠搧鐗屽凡鍏ㄩ儴鐖彇锛圖ynamicInfoService-insertShopInfo锛�");
+			return;
+		}
+
+		int index = (int) (Math.random() * brandIdList.size());
+		String brandId = brandIdList.get(index);
+
+		TaoBaoShopDTO dynamicShopInfo = DaTaoKeApiUtil.getDynamicShopInfo(brandId);
+		if (dynamicShopInfo == null) {
+			LogHelper.test("澶ф窐瀹㈠搧鐗屼俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�");
+			return;
+		}
+
+		List<TaoBaoGoodsBrief> listGoods = dynamicShopInfo.getListGoods();
+		if (listGoods == null || listGoods.size() == 0) {
+			LogHelper.test("澶ф窐瀹㈠搧鐗屽晢鍝佷俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�");
+			return;
+		}
+
+		Long sellerId = dynamicShopInfo.getSellerId();
+		TaoBaoGoodsBrief taoBaoGoodsBrief = listGoods.get(0);
+		TaoBaoShop taoBaoShop = taoBaoShopService.getTaoBaoShop(taoBaoGoodsBrief.getAuctionId(), sellerId);
+		if (taoBaoShop == null) {
+			LogHelper.test("搴楅摵璇︽儏淇℃伅鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�");
+			return;
+		}
+		String shopLink = taoBaoShop.getShopLink();
+		if (StringUtil.isNullOrEmpty(shopLink)) {
+			taoBaoShop.setShopLink(TaoBaoUtil.getShopLink(taoBaoShop.getId()));
+		}
+		
+		if(StringUtil.isNullOrEmpty(taoBaoShop.getShopIcon())) 
+			taoBaoShop.setShopIcon(dynamicShopInfo.getShopIcon());
+
+		DynamicInfo dynamicVO = new DynamicInfo();
+		dynamicVO.setId(brandId);
+		dynamicVO.setClassId(classId);
+		dynamicVO.setSubclassId(subclassId);
+		dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_TWO);
+		dynamicVO.setShop(taoBaoShop);
+		List<ActivityRuleUser> userList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAODIAN, 1, 50);
+		dynamicVO.setUser(userList.get((int) (userList.size() * Math.random())).getActivityUser());
+		dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
+		dynamicVO.setUpdateTime(new Date());
+
+		// 浠嬬粛鍐呭
+		ClientTextStyleVO row1 = new ClientTextStyleVO();
+		row1.setColor("#333333");
+		row1.setContent(dynamicShopInfo.getBrandDes());
+		List<ClientTextStyleVO> listTitle = new ArrayList<ClientTextStyleVO>();
+		listTitle.add(row1);
+		dynamicVO.setTitle(listTitle);
+
+		// 鍟嗗搧淇℃伅
+		List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
+		for (TaoBaoGoodsBrief goodsBrief : listGoods) {
+			BigDecimal proportion = hongBaoManageService.getFanLiRate();
+			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
+					proportion.toString(), null);
+			taoBaoGoodsBriefExtra.setCouponInfo(null);
+			taoBaoGoodsBriefExtra.setUpdatetime(new Date());
+
+			if (!taoBaoGoodsBriefExtra.isCoupon()) {
+				taoBaoGoodsBriefExtra.setState(1);
+			}
+
+			String goodsId = goodsBrief.getAuctionId().toString();
+			JSONObject item = new JSONObject();
+			item.put("id", goodsId);
+			item.put("from", "dynamics");
+
+			GoodsPicture goodsPicture = new GoodsPicture();
+			goodsPicture.setH(100);
+			goodsPicture.setW(100);
+			goodsPicture.setUrl(TbImgUtil.getTBSize320Img(goodsBrief.getPictUrl()));
+			goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail"));
+			goodsPicture.setParams(item.toString());
+			goodsPicture.setGoods(taoBaoGoodsBriefExtra);
+
+			listPicture.add(goodsPicture);
+		}
+		dynamicVO.setImgs(listPicture);
+
+		dynamicInfoDao.insert(dynamicVO);
+	}
+
+	@Override
+	public void insertTimeRecommend() {
+		try {
+			Long classId = 2L;
+			List<GoodsClass> list = DaTaoKeUtil.goodsClasses;
+			int index = (int) (Math.random() * list.size());
+			Long subclassId = list.get(index).getId();
+			int cid = Integer.parseInt(subclassId + "");
+			int count = 0;
+			double random = Math.random();
+			if (random > 0.4) {
+				count = 9;
+			} else {
+				count = 4;
+			}
+
+			List<DaTaoKeDetailV2> listDaTaoKe = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subclassId, null, count);
+
+			DaTaoKeDetailV2 daTaoKeDetail = null;
+			// 鍟嗗搧鍒楄〃
+			List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
+			// 鍟嗗搧鍒楄〃
+			List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
+			// 鍒嗕韩濂栭噾
+			BigDecimal shareMoney = new BigDecimal(0);
+
+			BigDecimal proportion = hongBaoManageService.getFanLiRate();
+			for (DaTaoKeDetailV2 daTaoKe : listDaTaoKe) {
+				if (daTaoKeDetail == null) {
+					daTaoKeDetail = daTaoKe;
+				}
+				// 鍒嗕韩濂栭噾
+				TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
+				listGoods.add(taoBaoGoodsBrief);
+
+				TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+						proportion.toString(), null);
+				if (!taoBaoGoodsBriefExtra.isCoupon()) {
+					taoBaoGoodsBriefExtra.setState(1);
+				}
+
+				BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
+				shareMoney = MoneyBigDecimalUtil.add(shareMoney, money);
+				// 鍟嗗搧鍥剧墖
+				taoBaoGoodsBriefExtra.setUpdatetime(new Date());
+				taoBaoGoodsBriefExtra.setCouponInfo(null);
+				GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
+				goodsPicture.setGoods(taoBaoGoodsBriefExtra);
+
+				listPicture.add(goodsPicture);
+			}
+
+			// 缁勭粐鍔ㄦ�佷俊鎭�
+			DynamicInfo dynamicInfo = getDynamicInfo(daTaoKeDetail, classId, subclassId);
+			// 鏃犲唴瀹�
+			dynamicInfo.setTitle(new ArrayList<ClientTextStyleVO>());
+			// 鍙戝竷鐢ㄦ埛
+			dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(cid));
+			dynamicInfo.setImgs(listPicture);
+			dynamicInfo.setListGoodsBrief(listGoods);
+
+			ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+			shareMoneyDesc.setColor("#FFFFFF");
+			shareMoneyDesc.setBottomColor("#E8AE48");
+			shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
+			dynamicInfo.setDesc(shareMoneyDesc);
+			dynamicInfo.setShowType(2);
+
+			if (count == 4) {
+				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO);
+				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_FOUR); // 鍒嗕韩绫诲瀷4鍥�
+			} else {
+				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_THREE);
+				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_NINE); // 鍒嗕韩绫诲瀷9鍥�
+			}
+			// 淇濆瓨淇℃伅
+			dynamicInfoDao.insert(dynamicInfo);
+
+		} catch (Exception e) {
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+		}
+	}
+
+	// 瀹氭椂鎻掑叆
+	@Override
+	public void insertTimeHotSale() {
+		Long classId = 1L;
+		try {
+			for (int i = 0; i < 3; i++) {
+				boolean addSuccess = saveHotSale(classId, 0L);
+				if (addSuccess) {
+					break;
+				}
+			}
+		} catch (Exception e) {
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+		}
+
+		// 鐑攢鍗曞搧鐨勫垎绫�
+		List<GoodsClass> list = DaTaoKeUtil.goodsClasses;
+		for (GoodsClass goodsClass : list) {
+			try {
+				for (int i = 0; i < 3; i++) {
+					boolean addSuccess = saveHotSale(classId, goodsClass.getId());
+					if (addSuccess) {
+						break;
+					}
+				}
+			} catch (Exception e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+		}
+	}
+
+	/**
+	 * 淇濆瓨鐑攢鍗曞搧
+	 * 
+	 * @param classId
+	 * @param subclassId
+	 * @throws TaobaoGoodsDownException
+	 */
+	public boolean saveHotSale(Long classId, Long subclassId) throws TaobaoGoodsDownException {
+		boolean addSuccess = false;
+		List<Long> listId = null;
+		List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId);
+		if (listInfo != null && listInfo.size() > 0) {
+			listId = new ArrayList<Long>();
+			for (DynamicInfo dynamicInfo : listInfo) {
+				Long daTaoKeId = dynamicInfo.getDaTaoKeId();
+				if (daTaoKeId != null) {
+					listId.add(dynamicInfo.getDaTaoKeId());
+				}
+			}
+		}
+		// 澶ф窐瀹㈡暟鎹�
+		DaTaoKeDetailV2 daTaoKe = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subclassId, listId, 1).get(0);
+		if (daTaoKe == null) {
+			return addSuccess;
+		}
+
+		try {
+			daTaoKe = DaTaoKeUtil.filterDaTaoKe(TaoKeApiUtil.searchGoodsDetail(daTaoKe.getGoodsId()), daTaoKe);
+		} catch (Exception e) {
+
+		}
+
+		TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
+		BigDecimal proportion = hongBaoManageService.getFanLiRate();
+		TaoBaoGoodsBriefExtra goodsExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
+				null);
+
+		if (!goodsExtra.isCoupon() || (goodsExtra.getState() != null && goodsExtra.getState() == 1)) {
+			return addSuccess; // 宸蹭笅鏋� 銆佹棤鍒� 涓嶅姞鍏�
+		}
+
+		List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
+		listGoods.add(taoBaoGoodsBrief);
+
+		goodsExtra.setTkRate(taoBaoGoodsBrief.getTkRate());
+		goodsExtra.setUpdatetime(new Date());
+		goodsExtra.setCouponInfo(null);
+
+		GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
+		goodsPicture.setGoods(goodsExtra);
+		// 鍟嗗搧鍒楄〃
+		List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
+		listPicture.add(goodsPicture);
+
+		// 鑾峰彇鍟嗗搧鍒楄〃鍥剧墖
+		TaoBaoGoodsBrief taoBaoGoodsBrief2 = TaoKeApiUtil.getSimpleGoodsInfo(daTaoKe.getGoodsId());
+		List<String> imgList = taoBaoGoodsBrief2.getImgList();
+		List<String> listimgs = new ArrayList<String>();
+		String pic = daTaoKe.getMainPic();
+		listimgs.add(TbImgUtil.getTBSize320Img(pic));
+		if (imgList != null && imgList.size() > 0) {
+			for (String img : imgList) {
+
+				if (listPicture.size() >= 4) {
+					break;
+				}
+				if (pic.equals(img)) {
+					continue;
+				}
+
+				listimgs.add(img);
+				GoodsPicture picture = new GoodsPicture();
+				picture.setH(100);
+				picture.setW(100);
+				picture.setUrl(TbImgUtil.getTBSize320Img(img));
+				listPicture.add(picture);
+			}
+		}
+		goodsExtra.setImgList(imgList);
+
+		// 鍒嗕韩濂栭噾
+		BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
+		ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+		shareMoneyDesc.setColor("#FFFFFF");
+		shareMoneyDesc.setBottomColor("#E8AE48");
+		shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
+
+		// 缁勭粐鍔ㄦ�佷俊鎭�
+		DynamicInfo dynamicInfo = getDynamicInfo(daTaoKe, classId, subclassId);
+		dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()));
+		dynamicInfo.setImgs(listPicture);
+		dynamicInfo.setDesc(shareMoneyDesc);
+		dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_ONE);
+		dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO);
+		dynamicInfo.setListGoodsBrief(listGoods);
+
+		String desc = DaTaoKeUtil.getDesc(daTaoKe);
+		if (!StringUtil.isNullOrEmpty(desc)) {
+			int index = desc.lastIndexOf("\n");
+			String newDesc = desc.substring(index + 1);
+			if (StringUtil.isNullOrEmpty(newDesc)) {
+				desc = desc.substring(0, index);
+			}
+		}
+		dynamicInfo.setTitle(convertIntroduce(desc));
+
+		// 淇濆瓨淇℃伅
+		dynamicInfoDao.insert(dynamicInfo);
+		
+		addSuccess = true;
+		return addSuccess;
+	}
+
+	/**
+	 * 鏁版嵁缁勭粐瀛樺叆MongoDB涓�
+	 * 
+	 * @param daTaoKe
+	 * @param classId
+	 * @param subclassId
+	 * @throws TaobaoGoodsDownException
+	 */
+	public DynamicInfo getDynamicInfo(DaTaoKeDetailV2 daTaoKe, Long classId, Long subclassId) {
+		DynamicInfo dynamicInfo = new DynamicInfo();
+		dynamicInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+		dynamicInfo.setClassId(classId);
+		dynamicInfo.setSubclassId(subclassId);
+		dynamicInfo.setDaTaoKeId(daTaoKe.getId());
+		dynamicInfo.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
+		dynamicInfo.setUpdateTime(new Date());
+		// 闅忔満鍒嗕韩娆℃暟
+		dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000));
+
+		return dynamicInfo;
+	}
+
+	/**
+	 * 鏂囧瓧鍐呭
+	 * 
+	 * @param introduce
+	 * @return
+	 */
+	public List<ClientTextStyleVO> convertIntroduce(String introduce) {
+		List<ClientTextStyleVO> title = new ArrayList<ClientTextStyleVO>();
+		ClientTextStyleVO desc = new ClientTextStyleVO();
+		desc.setColor("#333333");
+		desc.setContent(introduce);
+		title.add(desc);
+		return title;
+	}
+
+	/**
+	 * 鍥剧墖鍒楄〃
+	 * 
+	 * @param daTaoKe
+	 * @return
+	 */
+	public GoodsPicture getGoodsPicture(DaTaoKeDetailV2 daTaoKe) {
+		GoodsPicture goodsPicture = new GoodsPicture();
+		goodsPicture.setH(100);
+		goodsPicture.setW(100);
+		goodsPicture.setUrl(TbImgUtil.getTBSize320Img(daTaoKe.getMainPic()));
+		goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail"));
+
+		String goodsId = daTaoKe.getGoodsId().toString();
+		JSONObject item = new JSONObject();
+		item.put("id", goodsId);
+		item.put("from", "dynamics");
+		goodsPicture.setParams(item.toString());
+		return goodsPicture;
+	}
+
+	@Override
+	public void insertInviteActivity(RecommendActivity activity) throws Exception {
+
+		String title = activity.getTitle();
+
+		String picUrl = null;
+		List<String> imageList = activity.getImageList();
+		if (imageList != null && imageList.size() > 0) {
+			picUrl = imageList.get(0);
+		}
+
+		if (StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(picUrl)) {
+			return;
+		}
+
+		// 鍒ゆ柇鏄惁宸插瓨鍦�
+		String dynamicInfoId = null;
+
+		Long activityId = activity.getId();
+		DynamicInfo dynamicVO = dynamicInfoDao.getByActivityId(activityId);
+		if (dynamicVO == null) {
+			dynamicVO = new DynamicInfo();
+			dynamicVO.setId(UUID.randomUUID().toString().replace("-", ""));
+			dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
+		} else {
+			dynamicInfoId = dynamicVO.getId();
+		}
+
+		if (!StringUtil.isNullOrEmpty(title)) {
+			title = title.replaceAll("<p>", "").replaceAll("</p>", "").replaceAll("<br>", "\n");
+
+			int index = title.lastIndexOf("\n");
+			String newDesc = title.substring(index + 1);
+			if (StringUtil.isNullOrEmpty(newDesc)) {
+				title = title.substring(0, index);
+			}
+
+			title = title.replaceAll("\\,", "\\锛�").replaceAll("\\.", "\\銆�").replaceAll("\\;", "\\锛�")
+					.replaceAll("\\!", "\\锛�").replaceAll("\\?", "\\锛�").replaceAll("\\:", "\\锛�");
+		}
+
+		dynamicVO.setId(UUID.randomUUID().toString().replace("-", ""));
+		dynamicVO.setActivityId(activityId);
+		dynamicVO.setClassId(4L);
+		dynamicVO.setSubclassId(0L);
+		dynamicVO.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
+		dynamicVO.setUpdateTime(new Date());
+
+		Integer shareCount = activity.getShareCount();
+		if (shareCount == null || shareCount <= 0) {
+			dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000));
+		} else {
+			dynamicVO.setShareCount(shareCount);
+		}
+
+		// 鍙戝竷鐢ㄦ埛
+		ActivityUser activityUser = activity.getActivityUser();
+		if (activityUser == null) {
+			dynamicVO.setUser(activityUserService.selectByPrimaryKey(2L));
+		} else {
+			dynamicVO.setUser(activityUser);
+		}
+
+		// 浠嬬粛鍐呭
+		List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
+		if (!StringUtil.isNullOrEmpty(title)) {
+			ClientTextStyleVO row1 = new ClientTextStyleVO();
+			row1.setColor("#333333");
+			row1.setContent(title);
+			listtitle.add(row1);
+		}
+
+		// 鍥剧墖
+		List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
+		if (StringUtil.isNullOrEmpty(picUrl)) {
+			dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
+		} else {
+			dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE);
+			RecommendActivityInviteInfo inviteInfo = activity.getInviteInfo();
+
+			Integer pX = null;
+			Integer pY = null;
+			Integer size = null;
+			if (inviteInfo != null) {
+				pX = inviteInfo.getPx();
+				pY = inviteInfo.getPy();
+				size = inviteInfo.getSize();
+			}
+
+			InputStream asInputStream = HttpUtil.getAsInputStream(picUrl);
+			
+			int index = picUrl.lastIndexOf("/");
+			String newUrl = picUrl.substring(index + 1);
+			String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf("."));
+			
+			// 鍥剧墖
+			String imgLink = qrCodeService.drawInviteQrCodeNew(asInputStream, urlMd5, null, null, pX, pY, size, null);
+			GoodsPicture p2 = new GoodsPicture();
+			p2.setW(100);
+			p2.setH(100);
+			p2.setUrl(imgLink);
+			p2.setUrlOriginal(picUrl);
+			p2.setPx(pX);
+			p2.setPy(pY);
+			p2.setSize(size);
+
+			listImg.add(p2);
+		}
+
+		dynamicVO.setImgs(listImg);
+		dynamicVO.setTitle(listtitle);
+
+		if (!StringUtil.isNullOrEmpty(dynamicInfoId)) {
+			dynamicInfoDao.deleteById(dynamicInfoId);
+		}
+
+		dynamicInfoDao.insert(dynamicVO);
+	}
+
+	@Override
+	public void insertActivityRecommend(RecommendActivity activity) {
+		if (activity == null || activity.getGoodsList() == null) {
+			return;
+		}
+
+		try {
+			String dynamicInfoId = null;
+			DynamicInfo dynamicInfo = dynamicInfoDao.getByActivityId(activity.getId());
+			if (dynamicInfo == null) {
+				dynamicInfo = new DynamicInfo();
+				dynamicInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+				dynamicInfo.setCreateTime(new Date());
+			} else {
+				dynamicInfoId = dynamicInfo.getId();
+			}
+
+			dynamicInfo.setClassId(2L);
+			dynamicInfo.setSubclassId(0L);
+			dynamicInfo.setUser(activity.getActivityUser());
+			dynamicInfo.setActivityId(activity.getId());
+			dynamicInfo.setUpdateTime(new Date());
+
+			List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
+			String title = activity.getTitle();
+			if (!StringUtil.isNullOrEmpty(title)) {
+				title = title.replaceAll("<p>", "");
+				title = title.replaceAll("</p>", "");
+				title = title.replaceAll("<br>", "\n");
+
+				int index = title.lastIndexOf("\n");
+				String newDesc = title.substring(index + 1);
+				if (StringUtil.isNullOrEmpty(newDesc)) {
+					title = title.substring(0, index);
+				}
+
+				ClientTextStyleVO row1 = new ClientTextStyleVO();
+				row1.setColor("#333333");
+				row1.setContent(title);
+				listtitle.add(row1);
+			}
+			dynamicInfo.setTitle(listtitle);
+
+			Integer shareCount = activity.getShareCount();
+			if (shareCount == null || shareCount <= 0) {
+				dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000));
+			} else {
+				dynamicInfo.setShareCount(shareCount);
+			}
+
+			// 鍙戝竷鐢ㄦ埛
+			ActivityUser activityUser = activity.getActivityUser();
+			if (activityUser == null) {
+				dynamicInfo.setUser(activityUserService.selectByPrimaryKey(2L));
+			} else {
+				dynamicInfo.setUser(activityUser);
+			}
+
+			List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
+			// 鍟嗗搧鍒楄〃
+			List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
+			BigDecimal proportion = hongBaoManageService.getFanLiRate();
+			// 鍒嗕韩濂栭噾
+			BigDecimal shareMoney = new BigDecimal(0);
+
+			if (activity.getGoodsList() != null) {
+				for (RecommendActivityTaoBaoGoods activityGoods : activity.getGoodsList()) {
+
+					TaoBaoGoodsBrief taoBaoGoodsBrief = null;
+					TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = null;
+					String auctionId = activityGoods.getAuctionId();
+					try {
+						taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(auctionId));
+
+						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+								proportion.toString(), null);
+						if (!taoBaoGoodsBriefExtra.isCoupon()) {
+							taoBaoGoodsBriefExtra.setState(1);
+						}
+
+						BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
+						shareMoney = MoneyBigDecimalUtil.add(shareMoney, money);
+					} catch (TaobaoGoodsDownException e) {
+						taoBaoGoodsBrief = activityGoods.getTaoBaoGoodsBrief();
+						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+								proportion.toString(), null);
+						taoBaoGoodsBriefExtra.setState(1);
+						taoBaoGoodsBriefExtra.setCoupon(false);
+					}
+					listGoods.add(taoBaoGoodsBrief);
+
+					// 鍟嗗搧鍥剧墖
+					taoBaoGoodsBriefExtra.setCouponInfo(null);
+					taoBaoGoodsBriefExtra.setUpdatetime(new Date());
+
+					JSONObject item = new JSONObject();
+					item.put("id", auctionId);
+					item.put("from", "dynamics");
+
+					GoodsPicture goodsPicture = new GoodsPicture();
+					goodsPicture.setH(100);
+					goodsPicture.setW(100);
+					goodsPicture.setUrl(TbImgUtil.getTBSize320Img(taoBaoGoodsBrief.getPictUrl()));
+					goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail"));
+					goodsPicture.setParams(item.toString());
+					goodsPicture.setGoods(taoBaoGoodsBriefExtra);
+
+					listPicture.add(goodsPicture);
+				}
+			}
+			dynamicInfo.setImgs(listPicture);
+			dynamicInfo.setListGoodsBrief(listGoods);
+
+			ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+			shareMoneyDesc.setColor("#FFFFFF");
+			shareMoneyDesc.setBottomColor("#E8AE48");
+			shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
+			dynamicInfo.setDesc(shareMoneyDesc);
+			dynamicInfo.setShowType(2);
+
+			if (listPicture.size() < 7) {
+				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO);
+				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_FOUR); // 鍒嗕韩绫诲瀷4鍥�
+			} else {
+				dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_THREE);
+				dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_NINE); // 鍒嗕韩绫诲瀷9鍥�
+			}
+
+			if (!StringUtil.isNullOrEmpty(dynamicInfoId)) {
+				dynamicInfoDao.deleteById(dynamicInfoId);
+			}
+			// 淇濆瓨淇℃伅
+			dynamicInfoDao.insert(dynamicInfo);
+
+		} catch (Exception e) {
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+		}
+	}
+
+	@Override
+	public void deleteActivity(Long activityId) {
+		DynamicInfo dynamicInfo = dynamicInfoDao.getByActivityId(activityId);
+		if (dynamicInfo != null) {
+			// 鍒犻櫎涔嬪墠鐨�
+			dynamicInfoDao.deleteById(dynamicInfo.getId());
+		}
+	}
+
+	@Override
+	public void removeByDate(Date createTime) {
+		dynamicInfoDao.removeByDate(createTime);
+	}
+
+	@Override
+	public void updateShareCount(DynamicInfo record) {
+		dynamicInfoDao.updateShareCount(record);
+	}
+
+	@Override
+	@Cacheable(value = "dynamicCache", key = "'count-'+#cid+'-'+#subId")
+	public long count(Long cid, Long subId) {
+		return dynamicInfoDao.count(cid, subId);
+	}
+
+	@Override
+	@Cacheable(value = "dynamicCache", key = "'query-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
+	public List<DynamicInfo> query(int start, int count, Long cid, Long subId) {
+		List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId);
+
+		// 鏇存柊鍟嗗搧淇℃伅
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				updateGoodInfo(list);
+			}
+		});
+
+		return list;
+	}
+
+	private Map<Long, TaoBaoGoodsBrief> getFilterGoodsMap(List<DynamicInfo> list) {
+		// 鎻愬彇杩囨护鍟嗗搧
+		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+		for (DynamicInfo dynamicInfo : list) {
+			List<GoodsPicture> gpList = dynamicInfo.getImgs();
+			if (gpList != null)
+				for (GoodsPicture gp : gpList) {
+					if (gp != null && gp.getGoods() != null) {
+						TaoBaoGoodsBriefExtra newGoods = new TaoBaoGoodsBriefExtra();
+						try {
+							PropertyUtils.copyProperties(newGoods, gp.getGoods());
+							goodsList.add(newGoods);
+						} catch (IllegalAccessException e) {
+							e.printStackTrace();
+						} catch (InvocationTargetException e) {
+							e.printStackTrace();
+						} catch (NoSuchMethodException e) {
+							e.printStackTrace();
+						}
+
+					}
+				}
+		}
+		goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
+		Map<Long, TaoBaoGoodsBrief> map = new HashMap<>();
+		if (goodsList != null)
+			for (TaoBaoGoodsBrief goods : goodsList)
+				map.put(goods.getAuctionId(), goods);
+		return map;
+	}
+
+	@Override
+	@Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
+	public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) {
+		List<DynamicInfo> listNew = new ArrayList<DynamicInfo>();
+		List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId);
+		// 闇�瑕佹洿鏂扮殑鍟嗗搧
+		List<TaoBaoGoodsBrief> taoBaoGoodsUpdateList = new ArrayList<>();
+		if (list != null && list.size() > 0) {
+			// 鎻愬彇鍟嗗搧
+			Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterGoodsMap(list);
+
+			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
+			BigDecimal shareRate = hongBaoManageService.getShareRate();
+		    ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP));
+
+			for (DynamicInfo dynamicInfo : list) {
+				DynamicInfo dynamicNew = new DynamicInfo();
+				try {
+					PropertyUtils.copyProperties(dynamicNew, dynamicInfo);
+				} catch (Exception e) {
+					e.printStackTrace();
+					continue;
+				}
+
+				// 搴楅摵淇℃伅
+				TaoBaoShop shop = dynamicNew.getShop();
+				if (shop != null) {
+					TaoBaoShop shopNew = new TaoBaoShop();
+					try {
+						PropertyUtils.copyProperties(shopNew, shop);
+					} catch (Exception e) {
+						e.printStackTrace();
+						continue;
+					}
+					Integer userType = shopNew.getUserType();
+					if (userType == null || userType == 0) {
+						shopNew.setUserType(10);
+					} else {
+						shopNew.setUserType(11);
+					}
+					dynamicNew.setShop(shopNew);
+				}
+
+				List<GoodsPicture> imgsNew = new ArrayList<GoodsPicture>();
+				List<GoodsPicture> imgs = dynamicNew.getImgs();
+				if (imgs != null && imgs.size() > 0) {
+					for (GoodsPicture goodsPicture : imgs) {
+						TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
+						if (goods == null) {
+							imgsNew.add(goodsPicture);
+							continue;
+						}
+
+						taoBaoGoodsUpdateList.add(goods);
+
+						GoodsPicture goodsNew = new GoodsPicture();
+						try {
+							PropertyUtils.copyProperties(goodsNew, goodsPicture);
+						} catch (Exception e) {
+							e.printStackTrace();
+							continue;
+						}
+
+						// 杩囨护鍒镐俊鎭笌璧勯噾淇℃伅
+						goods.setCouponAmount(goodsMap.get(goods.getAuctionId()).getCouponAmount());
+						goods.setZkPrice(goodsMap.get(goods.getAuctionId()).getZkPrice());
+						goods.setCouponStartFee(goodsMap.get(goods.getAuctionId()).getCouponStartFee());
+						goods.setTkRate(goodsMap.get(goods.getAuctionId()).getTkRate());
+
+						GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, paramsDTO);
+
+						goodsNew.setGoodsVO(detailVO);
+						goodsNew.setGoods(null);
+
+						JumpDetailV2 jumpDetail = goodsNew.getJumpDetail();
+						if (jumpDetail != null) {
+							JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache(jumpDetail.getType(),
+									platform, version);
+							if (jumpDetailV2 != null) {
+								goodsNew.setJumpDetail(jumpDetailV2);
+							}
+						}
+
+						imgsNew.add(goodsNew);
+					}
+					dynamicNew.setImgs(imgsNew);
+				}
+				listNew.add(dynamicNew);
+			}
+		}
+
+		// 鏇存柊鍟嗗搧淇℃伅
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				updateGoodInfo(list);
+			}
+		});
+
+		taoBaoGoodsUpdateService.addUpdateQueueAsync(taoBaoGoodsUpdateList);
+		return listNew;
+	}
+
+	/**
+	 * 鏇存柊鍟嗗搧淇℃伅
+	 */
+	public void updateGoodInfo(List<DynamicInfo> list) {
+		if (!Constant.IS_OUTNET) {
+			return; // 澶栫綉杩涜鏇存柊
+		}
+
+		if (list == null || list.size() == 0) {
+			return;
+		}
+
+		try {
+			BigDecimal proportion = hongBaoManageService.getFanLiRate();
+			for (DynamicInfo dynamicInfo : list) {
+				// 閭�璇锋暟鎹笉鍋氭洿鏂�
+				long classId = dynamicInfo.getClassId();
+				if (classId == 4) {
+					break;
+				}
+
+				// 鏇存柊鍟嗗搧淇℃伅
+				List<GoodsPicture> listPicture = dynamicInfo.getImgs();
+				if (listPicture == null || listPicture.size() == 0) {
+					continue;
+				}
+
+				// 鏄惁涓�涓皬鏃朵箣鍐呭凡鏇存柊
+				Date updateTime = dynamicInfo.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 < 1) {
+						continue;
+					}
+				}
+
+				boolean needUpdate = false;
+				// 宸蹭笅鏋禝D
+				List<Long> listDown = new ArrayList<Long>();
+				// 鍟嗗搧鍒楄〃
+				List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
+
+				for (GoodsPicture goodsPicture : listPicture) {
+					TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods();
+					if (oldExtra == null) {
+						continue;
+					}
+
+					/*
+					 * Integer state = oldExtra.getState(); if (state != null && state == 1) {
+					 * continue; }
+					 */
+
+					TaoBaoGoodsBrief goodsBrief = null;
+					try {
+						goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId());
+					} catch (TaobaoGoodsDownException e) {
+					}
+
+					// 鏄惁涓嬫灦 锛� 1銆佸晢鍝佹湰韬笅鏋� 2銆佹棤鍒镐俊鎭垯璁や负涓嬫灦
+					boolean isDown = true;
+
+					if (goodsBrief == null) {
+						listDown.add(oldExtra.getAuctionId()); // 涓嬫灦鍟嗗搧
+					} else if (goodsBrief.getCouponAmount() != null
+							&& goodsBrief.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) {
+						isDown = false;
+					}
+
+					if (isDown) {
+						oldExtra.setState(1);
+						oldExtra.setCoupon(false);
+						oldExtra.setUpdatetime(new Date());
+						goodsPicture.setGoods(oldExtra);
+
+						// 鍟嗗搧宸叉姠鍏�
+						goodsPicture.setGoodState(1);
+
+						// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲�
+						if (classId == 1) {
+							ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+							shareMoneyDesc.setColor("#FFFFFF");
+							shareMoneyDesc.setBottomColor("#E8AE48");
+							shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + new BigDecimal(0));
+							dynamicInfo.setDesc(shareMoneyDesc);
+						}
+					} else {
+						listGoods.add(goodsBrief);
+
+						TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
+								proportion.toString(), null);
+						newExtra.setUpdatetime(new Date());
+						goodsPicture.setGoods(newExtra);
+
+						// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲�
+						if (classId == 1) {
+							BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief);
+							ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+							shareMoneyDesc.setColor("#FFFFFF");
+							shareMoneyDesc.setBottomColor("#E8AE48");
+							shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
+							dynamicInfo.setDesc(shareMoneyDesc);
+						}
+					}
+
+					// 闇�瑕佹洿鏂颁俊鎭紱
+					needUpdate = true;
+				}
+
+				// 鏃犳晥鏇存柊淇℃伅
+				if (!needUpdate) {
+					continue;
+				}
+
+				// 鏇存柊鍟嗗搧淇℃伅
+				dynamicInfo.setImgs(listPicture);
+
+				// 鍟嗗搧宸蹭笅鏋�
+				List<TaoBaoGoodsBrief> listGoodsBrief = dynamicInfo.getListGoodsBrief();
+				if (listGoodsBrief != null && listGoodsBrief.size() > 0) {
+					// 娣樺疂宸蹭笅鏋跺晢鍝�
+					if (listDown.size() > 0) {
+						for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
+							if (listDown.contains(taoBaoGoodsBrief.getAuctionId())) {
+								taoBaoGoodsBrief.setState(1);
+							}
+						}
+					}
+
+					if (listGoods.size() == 0) {
+						dynamicInfo.setListGoodsBrief(listGoodsBrief);
+					} else {
+						List<TaoBaoGoodsBrief> listNew = new ArrayList<TaoBaoGoodsBrief>();
+						for (int i = 0; i < listGoodsBrief.size(); i++) {
+							TaoBaoGoodsBrief taoBaoGoodsBrief = listGoodsBrief.get(i);
+							if (taoBaoGoodsBrief.getState() != null && taoBaoGoodsBrief.getState() == 1) {
+								listNew.add(taoBaoGoodsBrief);
+							} else {
+								boolean isUpdate = false;
+								Long auctionId = taoBaoGoodsBrief.getAuctionId();
+								for (TaoBaoGoodsBrief goods : listGoods) {
+									if (goods.getAuctionId().equals(auctionId) || goods.getAuctionId() == auctionId) {
+										listNew.add(goods);
+										isUpdate = true;
+										break;
+									}
+								}
+
+								if (!isUpdate) {
+									listNew.add(taoBaoGoodsBrief);
+								}
+							}
+						}
+						dynamicInfo.setListGoodsBrief(listNew);
+					}
+				}
+				dynamicInfo.setUpdateTime(new Date());
+				dynamicInfoDao.updateGoodInfo(dynamicInfo);
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+
+	}
+
+}

--
Gitblit v1.8.0