From 9b4bf99c1a30f3a7c2bdd6faba7589ff4f7e48e5 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 22 五月 2019 10:28:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java |  815 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 490 insertions(+), 325 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 934c44d..9797aa5 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,6 +1,7 @@
 package com.yeshi.fanli.service.impl.dynamic;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -8,8 +9,10 @@
 
 import javax.annotation.Resource;
 
+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;
 
@@ -21,6 +24,7 @@
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 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;
@@ -30,10 +34,12 @@
 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.TaoBaoShopService;
 import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
+import com.yeshi.fanli.service.inter.user.QrCodeService;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
@@ -75,6 +81,13 @@
 	@Resource
 	private TaoBaoShopService taoBaoShopService;
 	
+	@Resource
+	private InviteMaterialService inviteMaterialService;
+	
+	@Resource
+	private QrCodeService qrCodeService;
+	
+	
 	@Override
 	public void insert(DynamicInfo record) {
 		 dynamicInfoDao.insert(record);
@@ -86,337 +99,103 @@
 		return dynamicInfoDao.getById(id);
 	}
 	
-
-	@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 count = 0;
-			double random = Math.random();
-			if (random > 0.5) {
-				count = 9;
-			} else {
-				count = 4;
-			}
-
-			List<DaTaoKeDetail> listDaTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, null, count);
-
-			DaTaoKeDetail daTaoKeDetail = null;
-			// 鍟嗗搧鍒楄〃
-			List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
-
-			// 鍒嗕韩濂栭噾
-			BigDecimal shareMoney = new BigDecimal(0);
-
-			BigDecimal proportion = hongBaoManageService.getFanLiRate();
-			for (DaTaoKeDetail daTaoKe : listDaTaoKe) {
-				if (daTaoKeDetail == null) {
-					daTaoKeDetail = daTaoKe;
-				}
-				// 鍒嗕韩濂栭噾
-
-				TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
-				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.setImgs(listPicture);
-
-			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) {
-			e.printStackTrace();
-		}
-	}
-
-	// 瀹氭椂鎻掑叆
-	@Override
-	public void insertTimeHotSale() {
-		Long classId = 1L;
-		try {
-			saveHotSale(classId, 0L);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		// 鐑攢鍗曞搧鐨勫垎绫�
-		List<GoodsClass> list = DaTaoKeUtil.goodsClasses;
-		for (GoodsClass goodsClass : list) {
-			try {
-				saveHotSale(classId, goodsClass.getId());
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	/**
-	 * 淇濆瓨鐑攢鍗曞搧
-	 * 
-	 * @param classId
-	 * @param subclassId
-	 * @throws TaobaoGoodsDownException
-	 */
-	public void saveHotSale(Long classId, Long subclassId) throws TaobaoGoodsDownException {
-		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);
-
-		
-		TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-		TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null);
-		if (!taoBaoGoodsBriefExtra.isCoupon()) {
-			taoBaoGoodsBriefExtra.setState(1);
-		}
-		
-		// 鍒嗕韩濂栭噾
-		BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
-		ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-		shareMoneyDesc.setColor("#FFFFFF");
-		shareMoneyDesc.setBottomColor("#E8AE48");
-		shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-		// 鍟嗗搧鍥剧墖
-		GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
-		taoBaoGoodsBriefExtra.setUpdatetime(new Date());
-		taoBaoGoodsBriefExtra.setCouponInfo(null);
-		goodsPicture.setGoods(taoBaoGoodsBriefExtra);
-		// 鍟嗗搧鍒楄〃
-		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);
-			}
-		}
-		
-		taoBaoGoodsBriefExtra.setImgList(imgList);
-
-		// 缁勭粐鍔ㄦ�佷俊鎭�
-		DynamicInfo dynamicInfo = getDynamicInfo(daTaoKe, classId, subclassId);
-
-		dynamicInfo.setImgs(listPicture);
-		dynamicInfo.setDesc(shareMoneyDesc);
-		dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_ONE);
-		dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO);
-
-		// 淇濆瓨淇℃伅
-		dynamicInfoDao.insert(dynamicInfo);
-	}
-
-	/**
-	 * 鏁版嵁缁勭粐瀛樺叆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));
-		// 闅忔満鍒嗗竷鐢ㄦ埛
-		dynamicInfo.setUser(activityUserService.listRand(1).get(0));
-		// 鍐呭
-		dynamicInfo.setTitle(convertIntroduce(DaTaoKeUtil.getDesc(daTaoKe)));
-
-		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 long count(Long cid, Long subId) {
-		return dynamicInfoDao.count(cid, subId);
-	}
-
-	@Override
-	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;
-	}
-
-	@Override
-	public void updateShareCount(DynamicInfo record) {
-		dynamicInfoDao.updateShareCount(record);
-	}
-	
 	
 	@Override
-	public void insertInviteMaterial(String title, String picUrl, Long activityId, ActivityUser activityUser) {
+	public void insertTimeInvite() {
+		InviteMaterial inviteMaterial = inviteMaterialService.getInviteMaterial();
+		if (inviteMaterial == null) {
+			return;
+		}
 		
-		DynamicInfo existInfo = null;
-		if (activityId != null) {
-			existInfo = dynamicInfoDao.getByActivityId(activityId);
-			if (existInfo != null) {
-				dynamicInfoDao.deleteById(existInfo.getId());
-			}
+		Date date = new Date();
+		String materialId = inviteMaterial.getId();
+		String content = inviteMaterial.getText();
+		
+		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(activityUserService.listRand(1).get(0));
+			dynamicTxt.setShareCount(1000 + (int) (Math.random() * 8000));
+			dynamicTxt.setCreateTime(date);
+			dynamicTxt.setUpdateTime(date);
 			
-			if (!StringUtil.isNullOrEmpty(title)) {
-				title = title.replace("<p>", "");
-				title = title.replace("</p>", "");
+			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锛氥�愰個璇烽摼鎺ャ��");
+		
+        
+			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(activityUserService.listRand(1).get(0));
+			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();
+				}
 			}
 		}
-		
-		DynamicInfo dynamicVO = new DynamicInfo();
-		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());
-		
-		if (existInfo != null) {
-			dynamicVO.setCreateTime(existInfo.getCreateTime());
-			dynamicVO.setShareCount(existInfo.getShareCount());
-		} else {
-			dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
-			dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000));
-		}
-		
-		if (activityUser == null) {
-			dynamicVO.setUser(activityUserService.listRand(1).get(0));
-		} else {
-			dynamicVO.setUser(activityUser);
-		}
-		
-		
-		// 浠嬬粛鍐呭
-		ClientTextStyleVO row1 = new ClientTextStyleVO();
-		row1.setColor("#333333");
-		row1.setContent(title);
-		List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
-		listtitle.add(row1);
-		dynamicVO.setTitle(listtitle);
-				
-		List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
-		if(!StringUtil.isNullOrEmpty(picUrl)) {
-			GoodsPicture p2 = new GoodsPicture();
-			p2.setW(100);
-			p2.setH(100);
-			p2.setUrl(picUrl);
-			listImg.add(p2);
-			dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE);
-		} else {
-			dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
-		}
-		
-		dynamicVO.setImgs(listImg);
-		dynamicInfoDao.insert(dynamicVO);
+		// 鏇存柊绱犳潗鐘舵��
+		inviteMaterialService.updateState(1, materialId);
 	}
-	
+
 	
 	@Override
 	public void insertShopInfo() {
@@ -531,6 +310,362 @@
 		
 		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>();
+
+			// 鍒嗕韩濂栭噾
+			BigDecimal shareMoney = new BigDecimal(0);
+
+			BigDecimal proportion = hongBaoManageService.getFanLiRate();
+			for (DaTaoKeDetail daTaoKe : listDaTaoKe) {
+				if (daTaoKeDetail == null) {
+					daTaoKeDetail = daTaoKe;
+				}
+				// 鍒嗕韩濂栭噾
+
+				TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
+				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);
+
+			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 {
+			saveHotSale(classId, 0L);
+		} catch (Exception e) {
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+		}
+
+		// 鐑攢鍗曞搧鐨勫垎绫�
+		List<GoodsClass> list = DaTaoKeUtil.goodsClasses;
+		for (GoodsClass goodsClass : list) {
+			try {
+				saveHotSale(classId, goodsClass.getId());
+			} catch (Exception e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+		}
+	}
+
+	/**
+	 * 淇濆瓨鐑攢鍗曞搧
+	 * 
+	 * @param classId
+	 * @param subclassId
+	 * @throws TaobaoGoodsDownException
+	 */
+	public void saveHotSale(Long classId, Long subclassId) throws TaobaoGoodsDownException {
+		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);
+
+		
+		TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
+		BigDecimal proportion = hongBaoManageService.getFanLiRate();
+		TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null);
+		if (!taoBaoGoodsBriefExtra.isCoupon()) {
+			taoBaoGoodsBriefExtra.setState(1);
+		}
+		
+		// 鍒嗕韩濂栭噾
+		BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
+		ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+		shareMoneyDesc.setColor("#FFFFFF");
+		shareMoneyDesc.setBottomColor("#E8AE48");
+		shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
+		// 鍟嗗搧鍥剧墖
+		GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
+		taoBaoGoodsBriefExtra.setUpdatetime(new Date());
+		taoBaoGoodsBriefExtra.setCouponInfo(null);
+		goodsPicture.setGoods(taoBaoGoodsBriefExtra);
+		// 鍟嗗搧鍒楄〃
+		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);
+			}
+		}
+		
+		taoBaoGoodsBriefExtra.setImgList(imgList);
+
+		// 缁勭粐鍔ㄦ�佷俊鎭�
+		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);
+		
+		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);
+	}
+
+	/**
+	 * 鏁版嵁缁勭粐瀛樺叆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 updateShareCount(DynamicInfo record) {
+		dynamicInfoDao.updateShareCount(record);
+	}
+	
+	
+	@Override
+	public void insertInviteMaterial(String title, String picUrl, Long activityId, ActivityUser activityUser) {
+		
+		DynamicInfo existInfo = null;
+		if (activityId != null) {
+			existInfo = dynamicInfoDao.getByActivityId(activityId);
+			if (existInfo != null) {
+				dynamicInfoDao.deleteById(existInfo.getId());
+			}
+			
+			if (!StringUtil.isNullOrEmpty(title)) {
+				title = title.replace("<p>", "");
+				title = title.replace("</p>", "");
+			}
+		}
+		
+		DynamicInfo dynamicVO = new DynamicInfo();
+		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());
+		
+		if (existInfo != null) {
+			dynamicVO.setCreateTime(existInfo.getCreateTime());
+			dynamicVO.setShareCount(existInfo.getShareCount());
+		} else {
+			dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8));
+			dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000));
+		}
+		
+		if (activityUser == null) {
+			dynamicVO.setUser(activityUserService.listRand(1).get(0));
+		} else {
+			dynamicVO.setUser(activityUser);
+		}
+		
+		
+		List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
+		
+				
+		List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
+		if(StringUtil.isNullOrEmpty(picUrl)) {
+			dynamicVO.setImgs(listImg);
+			dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
+			
+			// 浠嬬粛鍐呭
+			ClientTextStyleVO row1 = new ClientTextStyleVO();
+			row1.setColor("#333333");
+			row1.setContent(title);
+			listtitle.add(row1);
+			dynamicVO.setTitle(listtitle);
+			dynamicInfoDao.insert(dynamicVO);
+		} else {
+			try {
+				dynamicVO.setTitle(listtitle);
+				dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE);
+				
+				// 鍥剧墖
+				String imgLink = qrCodeService.drawInviteQrCodeNew(picUrl , null, null, null);
+				GoodsPicture p2 = new GoodsPicture();
+				p2.setW(100);
+				p2.setH(100);
+				p2.setUrl(imgLink);
+				p2.setUrlOriginal(picUrl);
+				listImg.add(p2);
+				dynamicVO.setImgs(listImg);
+				
+				
+				dynamicInfoDao.insert(dynamicVO);
+			} catch (Exception e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+		}
+		
+	}
+	
+	
 	
 	@Override
 	public void removeByDate(Date createTime) {
@@ -743,7 +878,37 @@
 			dynamicInfoDao.insert(dynamicInfo);
 
 		} catch (Exception e) {
-			e.printStackTrace();
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
 		}
 	}
+	
+	
+	
+	
+	
+	@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;
+	}
 }

--
Gitblit v1.8.0