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/activity/ActivityServiceImpl.java |  473 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 350 insertions(+), 123 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
index 7595912..494f6d1 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
@@ -1,18 +1,18 @@
 package com.yeshi.fanli.service.impl.activity;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 import javax.annotation.Resource;
 
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
+import org.jsoup.Jsoup;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.yeshi.utils.NumberUtil;
 import org.yeshi.utils.entity.FileUploadResult;
 import org.yeshi.utils.taobao.TbImgUtil;
 
@@ -22,14 +22,15 @@
 import com.yeshi.fanli.dao.mybatis.activity.RecommendActivityInviteInfoMapper;
 import com.yeshi.fanli.dao.mybatis.activity.RecommendActivityMapper;
 import com.yeshi.fanli.dao.mybatis.activity.RecommendActivityTaoBaoGoodsMapper;
+import com.yeshi.fanli.dto.share.ShareGoodsRecordDTO;
 import com.yeshi.fanli.entity.bus.activity.ActivityShareResult;
 import com.yeshi.fanli.entity.bus.activity.ActivityUser;
 import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
 import com.yeshi.fanli.entity.bus.activity.RecommendActivityImg;
 import com.yeshi.fanli.entity.bus.activity.RecommendActivityInviteInfo;
 import com.yeshi.fanli.entity.bus.activity.RecommendActivityTaoBaoGoods;
-import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum;
 import com.yeshi.fanli.entity.goods.CommonGoods;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.exception.ActivityException;
 import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
@@ -37,7 +38,9 @@
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.activity.ActivityService;
+import com.yeshi.fanli.service.inter.activity.ActivityUserService;
 import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
 import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
 import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
@@ -53,6 +56,9 @@
 import com.yeshi.fanli.util.factory.CommonGoodsFactory;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 @Service
 public class ActivityServiceImpl implements ActivityService {
@@ -98,12 +104,19 @@
 
 	@Resource
 	private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
-	
+
 	@Resource
 	private UserShareGoodsRecordService userShareGoodsRecordService;
-	
+
 	@Resource
 	private CommonGoodsService commonGoodsService;
+	
+	@Resource
+	private DynamicInfoService dynamicInfoService;
+	
+	@Resource
+	private ActivityUserService activityUserService;
+	
 
 	@Override
 	public List<RecommendActivity> getRecommendActivityList(int page, int pageSize) {
@@ -116,130 +129,132 @@
 	}
 
 	@Override
-	public long getRecommendActivityCount() {
-		return recommendActivityMapper.getRecommendActivityCount();
+	public long getRecommendActivityCount(String title) {
+		return recommendActivityMapper.getRecommendActivityCount(title);
 	}
 
 	@Override
-	public ActivityShareResult shareActivityGoods(Long uid, Long activityId) throws ActivityException,UserShareGoodsRecordException {
-		
+	public ActivityShareResult shareActivityGoods(Long uid, Long activityId)
+			throws ActivityException, UserShareGoodsRecordException {
+
 		RecommendActivity activity = recommendActivityMapper.selectByPrimaryKey(activityId);
-		
+
 		if (activity == null)
 			throw new ActivityException(2, "鍔ㄦ�佷笉瀛樺湪");
-		
+
 		if (activity.getType() != RecommendActivity.TYPE_SHARE_GOODS)
 			throw new ActivityException(3, "涓嶅睘浜庡垎浜晢鍝佸姩鎬�");
-	
+
 		ActivityShareResult result = new ActivityShareResult();
-		
+
 		String title = activity.getTitle().replace("<br>", "/n").replace("<p>", "").replace("</p>", "");
 		if (title != null && title.trim().endsWith("/n"))
 			title = title.trim().substring(0, title.trim().length() - 2);
 		result.setTitle(title);
 		List<FileUploadResult> imgList = new ArrayList<>();
-		
+
 		List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
-		
+
 		if (activity.getGoodsList() != null) {
-			
+
 			activity.getGoodsList().stream().parallel().forEach(goodsActivity -> {
-				
+
 				try {
-					TaoBaoGoodsBrief goodsBrief = 
-							redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
+					TaoBaoGoodsBrief goodsBrief = redisManager
+							.getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
 					listGoodsBrief.add(goodsBrief);
 				} catch (TaobaoGoodsDownException e) {
-					
-					CommonGoods commonGoods= commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(Long.parseLong(goodsActivity.getAuctionId()),
-							CommonGoods.GOODS_TYPE_TB);
+
+					CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(
+							Long.parseLong(goodsActivity.getAuctionId()), CommonGoods.GOODS_TYPE_TB);
 					if (commonGoods != null) {
-						TaoBaoGoodsBrief goodsBrief =  TaoBaoUtil.convert(commonGoods);
+						TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
 						goodsBrief.setState(1);
 						listGoodsBrief.add(goodsBrief);
 					}
-					
+
 					try {
-						LogHelper.errorDetailInfo(e, "鍒嗕韩鍟嗗搧鍑洪敊-鍟嗗搧ID:" + goodsActivity.getAuctionId(),	"--");
+						LogHelper.errorDetailInfo(e, "鍒嗕韩鍟嗗搧鍑洪敊-鍟嗗搧ID:" + goodsActivity.getAuctionId(), "--");
 					} catch (Exception e1) {
 						e1.printStackTrace();
 					}
 				}
 			});
 		}
-		
+
 		if (listGoodsBrief.size() < 1) {
 			throw new ActivityException(1, "鍟嗗搧涓嬫灦");
 		}
+
+		ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordActivity(uid, listGoodsBrief);
+		FileUploadResult loadResult  = new FileUploadResult();
+		loadResult.setUrl(shareRecord.getSharePictureUrl());
 		
-		Map<String,Object> map =  userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title, listGoodsBrief);
-		imgList.add((FileUploadResult) map.get("loadResult"));
+		imgList.add(loadResult);
 		result.setImgList(imgList);
-		
+
 		return result;
 	}
-	
-	
+
 	@Override
-	public JSONObject shareGoodsV2(Long uid, Long activityId) throws ActivityException,UserShareGoodsRecordException {
-		
+	public JSONObject shareGoodsV2(Long uid, Long activityId) throws ActivityException, UserShareGoodsRecordException {
+
 		RecommendActivity activity = recommendActivityMapper.selectByPrimaryKey(activityId);
-		
+
 		if (activity == null)
 			throw new ActivityException(2, "鍔ㄦ�佷笉瀛樺湪");
-		
+
 		if (activity.getType() != RecommendActivity.TYPE_SHARE_GOODS)
 			throw new ActivityException(3, "涓嶅睘浜庡垎浜晢鍝佸姩鎬�");
-	
+
 		ActivityShareResult result = new ActivityShareResult();
-		
+
 		String title = activity.getTitle().replace("<br>", "/n").replace("<p>", "").replace("</p>", "");
 		if (title != null && title.trim().endsWith("/n"))
 			title = title.trim().substring(0, title.trim().length() - 2);
-		
+
 		result.setTitle(title);
-		
+
 		List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
-		
+
 		if (activity.getGoodsList() != null) {
 			activity.getGoodsList().stream().parallel().forEach(goodsActivity -> {
 				try {
-					TaoBaoGoodsBrief goodsBrief = 
-							redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
+					TaoBaoGoodsBrief goodsBrief = redisManager
+							.getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
 					listGoodsBrief.add(goodsBrief);
-					
+
 				} catch (TaobaoGoodsDownException e) {
-					
-					CommonGoods commonGoods= commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(Long.parseLong(goodsActivity.getAuctionId()),
-							CommonGoods.GOODS_TYPE_TB);
+
+					CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(
+							Long.parseLong(goodsActivity.getAuctionId()), CommonGoods.GOODS_TYPE_TB);
 					if (commonGoods != null) {
-						TaoBaoGoodsBrief goodsBrief =  TaoBaoUtil.convert(commonGoods);
+						TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
 						goodsBrief.setState(1);
 						listGoodsBrief.add(goodsBrief);
 					}
-					
+
 					try {
-						LogHelper.errorDetailInfo(e, "鍒嗕韩鍟嗗搧鍑洪敊-鍟嗗搧ID:" + goodsActivity.getAuctionId(),	"--");
+						LogHelper.errorDetailInfo(e, "鍒嗕韩鍟嗗搧鍑洪敊-鍟嗗搧ID:" + goodsActivity.getAuctionId(), "--");
 					} catch (Exception e1) {
 						e1.printStackTrace();
 					}
 				}
 			});
 		}
-		
+
 		if (listGoodsBrief.size() < 1) {
 			throw new ActivityException(1, "鍟嗗搧涓嬫灦");
 		}
-		
-		
+
 		String fontColor1 = "#000000";
 		String fontColor2 = "#E5005C";
 		JSONArray array = new JSONArray();
-		
+
 		JSONObject contentJson1 = new JSONObject();
 		contentJson1.put("color", fontColor1);
 		contentJson1.put("content", "棰勪及鍒嗕韩濂栭噾:");
-		
+		String shareMoney = "0";
 		String revenue = "楼0";
 		String totalGetMoney = activity.getTotalGetMoney();
 		if (totalGetMoney != null && totalGetMoney.trim().length() > 0) {
@@ -247,27 +262,34 @@
 			if (split != null) {
 				revenue = split[1];
 			}
+
+			String[] splitMoney = totalGetMoney.split("楼");
+			if (splitMoney != null) {
+				shareMoney = splitMoney[1];
+			}
 		}
-		
+
 		JSONObject contentJson2 = new JSONObject();
 		contentJson2.put("color", fontColor2);
 		contentJson2.put("content", revenue);
 		
 		array.add(contentJson1);
 		array.add(contentJson2);
-		
+
+		ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordActivity(uid, listGoodsBrief);
+		FileUploadResult loadResult  = new FileUploadResult();
+		loadResult.setUrl(shareRecord.getSharePictureUrl());
+
 		JSONObject data = new JSONObject();
-		
-		Map<String,Object> map = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title, listGoodsBrief);
-		
 		data.put("title", title);
 		data.put("revenue", array);
-		data.put("shareId", map.get("shareId"));
-		data.put("shareImg", map.get("loadResult"));
-		data.put("notifyDesc", configService.get("goods_share_notify"));
+		data.put("fanMoney", shareMoney);
+		data.put("shareId", shareRecord.getRedisKey());
+		data.put("shareImg", loadResult);
+		data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareMultipleNotify.getKey()));
 
 		return data;
-		
+
 	}
 
 	@Override
@@ -299,31 +321,45 @@
 		return activityUserMapper.selectList();
 	}
 
+	@Transactional(rollbackFor=Exception.class)
 	@Override
-	public RecommendActivity addShareGoodsRecommendActivity(Long activityUid, String title, List<Long> goodsList,
-			boolean top, int shareCount) throws ActivityException {
+	public RecommendActivity addShareGoodsRecommendActivity(Long activityUid, List<Long> goodsList,
+			RecommendActivity activity) throws ActivityException , Exception{
 
 		if (goodsList == null || goodsList.size() == 0 || goodsList.size() > 9)
 			throw new ActivityException(1, "鍟嗗搧鏁伴噺閿欒锛�10>鍟嗗搧鏁伴噺>0");
-
-		RecommendActivity activity = new RecommendActivity();
+		
+		if (StringUtil.isNullOrEmpty(activity.getTitle())) {
+			throw new ActivityException(1, "鏍囬涓嶈兘涓虹┖");
+		}
+		
+		Integer shareCount = activity.getShareCount();
+		if (shareCount == null) {
+			activity.setShareCount(0);
+		}
+		
+		Boolean top = activity.getTop();
+		if (top == null) {
+			activity.setTop(false);
+		}
+		
+		// 鏃堕棿杞崲
+		conversionTime(activity);
+		
 		activity.setActivityUser(new ActivityUser(activityUid));
 		activity.setCreateTime(new Date());
 		activity.setGoodsList(null);
 		activity.setOrderBy(0);
-		activity.setShareCount(shareCount);
-		activity.setTitle(title);
-		activity.setTop(top);
 		activity.setType(RecommendActivity.TYPE_SHARE_GOODS);
 		recommendActivityMapper.insertSelective(activity);
-		
+
 		List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
-		
+
 		BigDecimal taotaoMoney = new BigDecimal(0);
 		for (long auctionId : goodsList) {
 			TaoBaoGoodsBrief tb = null;
 			try {
-				tb = TaoKeApiUtil.searchGoodsDetail(auctionId);
+				tb = redisManager.getTaoBaoGoodsBrief(auctionId);
 			} catch (TaobaoGoodsDownException e) {
 				e.printStackTrace();
 			}
@@ -341,12 +377,12 @@
 			recommendActivityTaoBaoGoodsMapper.insertSelective(goods);
 			BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
 			taotaoMoney = taotaoMoney.add(money);
-			
+
 			// 杞崲绠�鐗堝晢鍝佷俊鎭�
 			CommonGoods commonGoods = CommonGoodsFactory.create(tb);
 			listCommonGoods.add(commonGoods);
 		}
-		
+
 		try {
 			// 鏇存柊绠�鐗堜俊鎭�
 			commonGoodsService.addBatchCommonGoods(listCommonGoods);
@@ -356,23 +392,36 @@
 
 		RecommendActivity updateActivity = new RecommendActivity();
 		updateActivity.setId(activity.getId());
-		updateActivity.setTotalGetMoney("棰勮鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
+		updateActivity.setTotalGetMoney("棰勪及鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
 		recommendActivityMapper.updateByPrimaryKeySelective(updateActivity);
 
 		return activity;
 	}
 
+	@Transactional(rollbackFor=Exception.class)
 	@Override
-	public RecommendActivity addInviteImgRecommendActivity(Long activityUid, String title, String url, boolean top,
-			int shareCount, int px, int py, int erCodeSize) throws ActivityException {
-		RecommendActivity activity = new RecommendActivity();
+	public RecommendActivity addInviteImgRecommendActivity(Long activityUid, RecommendActivity activity, String url,
+			 int px, int py, int erCodeSize) throws ActivityException, Exception {
+		if (StringUtil.isNullOrEmpty(url))
+			throw new ActivityException(1, "鍥剧墖涓虹┖");
+		
+		Integer shareCount = activity.getShareCount();
+		if (shareCount == null) {
+			activity.setShareCount(0);
+		}
+		
+		Boolean top = activity.getTop();
+		if (top == null) {
+			activity.setTop(false);
+		}
+		
+		// 鏃堕棿杞崲
+		conversionTime(activity);
+		
 		activity.setActivityUser(new ActivityUser(activityUid));
 		activity.setCreateTime(new Date());
 		activity.setGoodsList(null);
 		activity.setOrderBy(0);
-		activity.setShareCount(shareCount);
-		activity.setTitle(title);
-		activity.setTop(top);
 		activity.setType(RecommendActivity.TYPE_INVITE);
 		recommendActivityMapper.insertSelective(activity);
 		RecommendActivityImg img = new RecommendActivityImg();
@@ -394,22 +443,32 @@
 		recommendActivityInviteInfo.setRecommendActivity(activity);
 		recommendActivityInviteInfo.setSize(erCodeSize);
 		recommendActivityInviteInfoMapper.insertSelective(recommendActivityInviteInfo);
-
 		recommendActivityImgMapper.insertSelective(img);
 		return activity;
 	}
 
+	@Transactional(rollbackFor=Exception.class)
 	@Override
-	public RecommendActivity addTextAndImgRecommendActivity(Long activityUid, String title, List<String> imgList,
-			boolean top, int shareCount) throws ActivityException {
-		RecommendActivity activity = new RecommendActivity();
+	public RecommendActivity addTextAndImgRecommendActivity(Long activityUid,  List<String> imgList,
+			RecommendActivity activity) throws ActivityException, Exception {
+		
+		Integer shareCount = activity.getShareCount();
+		if (shareCount == null) {
+			activity.setShareCount(0);
+		}
+		
+		Boolean top = activity.getTop();
+		if (top == null) {
+			activity.setTop(false);
+		}
+		
+		// 鏃堕棿杞崲
+		conversionTime(activity);
+				
 		activity.setActivityUser(new ActivityUser(activityUid));
 		activity.setCreateTime(new Date());
 		activity.setGoodsList(null);
 		activity.setOrderBy(0);
-		activity.setShareCount(shareCount);
-		activity.setTitle(title);
-		activity.setTop(top);
 		activity.setType(RecommendActivity.TYPE_TEXTIMG);
 		recommendActivityMapper.insertSelective(activity);
 		for (String imgUrl : imgList) {
@@ -429,11 +488,20 @@
 		return activity;
 	}
 
+	@Transactional
 	@Override
 	public void deleteRecommendActivity(long[] ids) {
 		recommendActivityMapper.batchDeleteByPrimaryKey(ids);
 		recommendActivityImgMapper.batchDeleteByActivityid(ids);
 		recommendActivityTaoBaoGoodsMapper.batchDeleteByActivityid(ids);
+		
+		try {
+			for (Long id: ids) {
+				dynamicInfoService.deleteActivity(id);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 
 	}
 
@@ -442,31 +510,45 @@
 		return recommendActivityMapper.selectByPrimaryKey(id);
 	}
 
+	@Transactional(rollbackFor=Exception.class)
 	@Override
-	public RecommendActivity updateShareGoodsRecommendActivity(Long id, Long activityUid, String title,
-			List<Long> goodsList, boolean top, int shareCount) throws ActivityException {
+	public RecommendActivity updateShareGoodsRecommendActivity(Long activityUid,
+			List<Long> goodsList, RecommendActivity activity) throws ActivityException , Exception{
+		
 		if (goodsList == null || goodsList.size() == 0 || goodsList.size() > 9)
 			throw new ActivityException(1, "鍟嗗搧鏁伴噺閿欒锛�10>鍟嗗搧鏁伴噺>0");
+	
 		// 鍒犻櫎涔嬪墠鐨勫晢鍝�
-		recommendActivityTaoBaoGoodsMapper.batchDeleteByActivityid(new long[] { id });
-		RecommendActivity activity = new RecommendActivity();
-		activity.setId(id);
+		recommendActivityTaoBaoGoodsMapper.batchDeleteByActivityid(new long[] { activity.getId() });
+		
+		
 		activity.setActivityUser(new ActivityUser(activityUid));
 		activity.setGoodsList(null);
 		activity.setOrderBy(0);
-		activity.setShareCount(shareCount);
-		activity.setTitle(title);
-		activity.setTop(top);
+		
+		Integer shareCount = activity.getShareCount();
+		if (shareCount == null) {
+			activity.setShareCount(0);
+		}
+		
+		Boolean top = activity.getTop();
+		if (top == null) {
+			activity.setTop(false);
+		}
+		
+		// 鏃堕棿杞崲
+		conversionTime(activity);
 
 		activity.setType(RecommendActivity.TYPE_SHARE_GOODS);
 		recommendActivityMapper.updateByPrimaryKeySelective(activity);
 
+		List<RecommendActivityTaoBaoGoods> listgoods = new ArrayList<RecommendActivityTaoBaoGoods>();
 		BigDecimal taotaoMoney = new BigDecimal(0);
 		for (long auctionId : goodsList) {
 			TaoBaoGoodsBrief tb = null;
 
 			try {
-				tb = TaoKeApiUtil.searchGoodsDetail(auctionId);
+				tb = redisManager.getTaoBaoGoodsBrief(auctionId);
 			} catch (TaobaoGoodsDownException e) {
 				e.printStackTrace();
 			}
@@ -486,28 +568,53 @@
 			recommendActivityTaoBaoGoodsMapper.insertSelective(goods);
 			BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
 			taotaoMoney = taotaoMoney.add(money);
+			
+			listgoods.add(goods);
 		}
 
 		RecommendActivity updateActivity = new RecommendActivity();
 		updateActivity.setId(activity.getId());
-		updateActivity.setTotalGetMoney("棰勮鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
+		updateActivity.setTotalGetMoney("棰勪及鍒嗕韩濂栭噾锛毬�" + taotaoMoney.toString());
 		recommendActivityMapper.updateByPrimaryKeySelective(updateActivity);
-
+		
+		//  1.5.4 鍔ㄦ�佷俊鎭洿鏂�
+		RecommendActivity exist = recommendActivityMapper.selectByPrimaryKey(activity.getId());
+		if (exist.getState() != null && exist.getState() == 1) {
+			try {
+				ActivityUser activityUser = activityUserService.selectByPrimaryKey(activityUid);
+				exist.setActivityUser(activityUser);
+				exist.setGoodsList(listgoods);
+				dynamicInfoService.insertActivityRecommend(exist);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		
 		return activity;
 	}
 
+	@Transactional(rollbackFor=Exception.class)
 	@Override
-	public RecommendActivity updateInviteImgRecommendActivity(Long id, Long activityUid, String title, String url,
-			boolean top, int shareCount, int px, int py, int erCodeSize) throws ActivityException {
-		recommendActivityImgMapper.batchDeleteByActivityid(new long[] { id });
-		RecommendActivity activity = new RecommendActivity();
-		activity.setId(id);
+	public RecommendActivity updateInviteImgRecommendActivity(Long activityUid, RecommendActivity activity, String url,
+			int px, int py, int erCodeSize) throws ActivityException , Exception{
+		recommendActivityImgMapper.batchDeleteByActivityid(new long[] { activity.getId() });
+		
+		Integer shareCount = activity.getShareCount();
+		if (shareCount == null) {
+			activity.setShareCount(0);
+		}
+		
+		Boolean top = activity.getTop();
+		if (top == null) {
+			activity.setTop(false);
+		}
+		
+		// 鏃堕棿杞崲
+		conversionTime(activity);
+				
 		activity.setActivityUser(new ActivityUser(activityUid));
 		activity.setGoodsList(null);
 		activity.setOrderBy(0);
-		activity.setShareCount(shareCount);
-		activity.setTitle(title);
-		activity.setTop(top);
 		activity.setType(RecommendActivity.TYPE_INVITE);
 		recommendActivityMapper.updateByPrimaryKeySelective(activity);
 		RecommendActivityImg img = new RecommendActivityImg();
@@ -535,21 +642,45 @@
 		recommendActivityInviteInfo.setSize(erCodeSize);
 		recommendActivityInviteInfoMapper.insertSelective(recommendActivityInviteInfo);
 
+		
+		RecommendActivity exist = recommendActivityMapper.selectByPrimaryKey(activity.getId());
+		if (exist.getState() != null && exist.getState() == 1) {
+			try {
+				ActivityUser activityUser = activityUserService.selectByPrimaryKey(activityUid);
+				activity.setActivityUser(activityUser);
+				activity.setInviteInfo(recommendActivityInviteInfo);
+				List<String> imageList = new ArrayList<String>();
+				imageList.add(url);
+				activity.setImageList(imageList);
+				dynamicInfoService.insertInviteActivity(activity);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
 		return activity;
 	}
 
+	@Transactional(rollbackFor=Exception.class)
 	@Override
-	public RecommendActivity updateTextAndImgRecommendActivity(Long id, Long activityUid, String title,
-			List<String> imgList, boolean top, int shareCount) throws ActivityException {
-		recommendActivityImgMapper.batchDeleteByActivityid(new long[] { id });
-		RecommendActivity activity = new RecommendActivity();
-		activity.setId(id);
+	public RecommendActivity updateTextAndImgRecommendActivity(Long activityUid, List<String> imgList, 
+			RecommendActivity activity) throws ActivityException , Exception{
+		recommendActivityImgMapper.batchDeleteByActivityid(new long[] { activity.getId() });
+		
+		Integer shareCount = activity.getShareCount();
+		if (shareCount == null) {
+			activity.setShareCount(0);
+		}
+		
+		Boolean top = activity.getTop();
+		if (top == null) {
+			activity.setTop(false);
+		}
+		// 鏃堕棿杞崲
+		conversionTime(activity);
+		
 		activity.setActivityUser(new ActivityUser(activityUid));
 		activity.setGoodsList(null);
 		activity.setOrderBy(0);
-		activity.setShareCount(shareCount);
-		activity.setTitle(title);
-		activity.setTop(top);
 		activity.setType(RecommendActivity.TYPE_TEXTIMG);
 		recommendActivityMapper.updateByPrimaryKeySelective(activity);
 		for (String imgUrl : imgList) {
@@ -578,22 +709,54 @@
 	@Override
 	public List<RecommendActivity> getRecommendActivityListCache(int page, int pageSize) {
 		List<RecommendActivity> activityList = getRecommendActivityList(page, pageSize);
-		if (activityList != null)
-			for (RecommendActivity activity : activityList) {
-				if (activity != null && activity.getGoodsList() != null)
+		if (activityList != null) {
+			for (int i = 0; i < activityList.size(); i++) {
+				
+				RecommendActivity activity = activityList.get(i);
+				
+				// 绛涢�夊嚭涓嶈冻9涓殑鍟嗗搧
+				if (RecommendActivity.TYPE_SHARE_GOODS == activity.getType()
+						&& (activity.getGoodsList() == null || activity.getGoodsList().size() < 9)) {
+					activityList.remove(activity);
+					i--;
+					continue;
+				}
+				
+				
+				if (activity != null && activity.getGoodsList() != null) {
 					for (RecommendActivityTaoBaoGoods goods : activity.getGoodsList()) {
 						goods.setQuanPrice(goods.getDesc().replace("鍒稿悗浠凤細楼", ""));
 					}
+				}
+				
+				// 杩囨护涓�閬�
+				if (!StringUtil.isNullOrEmpty(activity.getTitle())) {
+					activity.setTitle(Jsoup.parse(activity.getTitle()).text());
+					if (activity.getShareCount() >= 10000) {
+						activity.setShareCountShow(NumberUtil.get1PointNumber(activity.getShareCount() / 10000.0) + "涓�");
+					} else {
+						activity.setShareCountShow(activity.getShareCount() + "");
+					}
+				}
+				
+				Date startTime = activity.getStartTime();
+				if (startTime != null) {
+					activity.setCreateTime(startTime);
+				}
+				
 			}
+		
+		}
 		return activityList;
 	}
 
 	@Cacheable(value = "activityCache", key = "'getRecommendActivityCount'")
 	@Override
 	public long getRecommendActivityCountCache() {
-		return getRecommendActivityCount();
+		return recommendActivityMapper.getRecommendActivityEffectiveCount();
 	}
 
+	@Transactional(rollbackFor=Exception.class)
 	@Override
 	public void upgradeShareGoodsRecommendActivity(Long id) throws ActivityException {
 		// 鑾峰彇鍟嗗搧
@@ -629,7 +792,7 @@
 					update.setId(goods.getId());
 					update.setState(RecommendActivityTaoBaoGoods.STATE_UNSHELVE);
 					recommendActivityTaoBaoGoodsMapper.updateByPrimaryKeySelective(update);
-					taoBaoGoodsUpdateService.downTaoBaoGoods(Long.parseLong(goods.getAuctionId()));
+					taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(goods.getAuctionId()));
 				}
 			}
 	}
@@ -698,4 +861,68 @@
 	public ActivityUser selectActivityUserByPrimaryKey(Long id) {
 		return activityUserMapper.selectByPrimaryKey(id);
 	}
+
+	@Transactional
+	@Override
+	public void updateRecommendActivityGoods(TaoBaoGoodsBrief goods) {
+		List<RecommendActivityTaoBaoGoods> list = recommendActivityTaoBaoGoodsMapper
+				.selectByAuctionId(goods.getAuctionId());
+
+		BigDecimal d = TaoBaoUtil.getAfterUseCouplePrice(goods);
+
+		RecommendActivityTaoBaoGoods updateGoods = new RecommendActivityTaoBaoGoods();
+		if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
+			updateGoods.setDesc("鍒稿悗浠凤細楼" + d);
+			updateGoods.setState(RecommendActivityTaoBaoGoods.STATE_NORMAL);
+		} else {
+			updateGoods.setState(RecommendActivityTaoBaoGoods.STATE_UNSHELVE);
+		}
+
+		if (list != null)
+			for (RecommendActivityTaoBaoGoods tbGoods : list) {
+				updateGoods.setId(tbGoods.getId());
+				recommendActivityTaoBaoGoodsMapper.updateByPrimaryKeySelective(updateGoods);
+			}
+	}
+	
+	/**
+	 * web娈垫椂闂磋浆鎹�
+	 * @param record
+	 */
+	public void conversionTime(RecommendActivity record) throws ActivityException, Exception {
+		// 鏄惁鏃堕棿鎺у埗
+		if(!record.isTimeTask()) {
+			record.setStartTime(null);
+			record.setEndTime(null);
+		} else {
+			String startTime_str = record.getStartTime_str();
+			String endTime_str = record.getEndTime_str();
+			
+			if ((startTime_str == null|| startTime_str.trim().length() == 0) 
+					&& (endTime_str == null || endTime_str.trim().length() == 0)) {
+				throw new ActivityException(1, "璇疯緭鍏ユ帶鍒舵椂闂�");
+			} else {
+				SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+				if (startTime_str != null && startTime_str.trim().length() > 0) {
+					startTime_str = startTime_str.replaceAll("T", " ");
+					record.setStartTime(format.parse(startTime_str));
+				}
+				
+				if (endTime_str != null && endTime_str.trim().length() > 0) {
+					endTime_str = endTime_str.replaceAll("T", " ");
+					record.setEndTime(format.parse(endTime_str));
+				}
+			}
+		}
+	}
+	
+	@Override
+	public List<String> getImgByActivityId(Long activityId){
+		return recommendActivityImgMapper.getImgByActivityId(activityId);
+	}
+	
+	@Override
+	public List<RecommendActivity> getNeedPublish() {
+		return recommendActivityMapper.getNeedPublish();
+	}
 }

--
Gitblit v1.8.0