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/user/PreviewInfoServiceImpl.java |  154 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 108 insertions(+), 46 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java
index 0e1f246..3d914b5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java
@@ -1,20 +1,15 @@
 package com.yeshi.fanli.service.impl.user;
 
-import java.io.File;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
-import java.util.UUID;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-import org.yeshi.utils.FileUtil;
-import org.yeshi.utils.tencentcloud.COSManager;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
@@ -23,16 +18,16 @@
 import com.yeshi.fanli.entity.bus.user.Extract;
 import com.yeshi.fanli.entity.bus.user.PreviewInfo;
 import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum;
+import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail;
 import com.yeshi.fanli.exception.user.PreviewInfoException;
 import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
 import com.yeshi.fanli.service.inter.user.PreviewInfoService;
-import com.yeshi.fanli.util.FilePathEnum;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService;
+import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.vo.money.MoneyStatisticVO;
 import com.yeshi.fanli.vo.user.MineInfoVO;
-
-import net.coobird.thumbnailator.Thumbnails;
 
 @Service
 public class PreviewInfoServiceImpl implements PreviewInfoService {
@@ -43,20 +38,58 @@
 	@Resource
 	private BindingAccountService bindingAccountService;
 	
+	@Resource
+	private RedisManager redisManager;
 	
+	@Resource
+	private ThreeSaleDetailService threeSaleDetailService;
+	
+	
+	 
 	
 	@Override
-	public void save(Long uid, PreviewEnum type, String content) {
-		String id = StringUtil.Md5(uid + "#" + type.name());
-		
+	public void save(Long createUid, Long preUid, PreviewEnum type, String content) {
+		String id = StringUtil.Md5(createUid + "#" + type.name());
 		PreviewInfo info = new PreviewInfo();
 		info.setId(id);
-		info.setUid(uid);
+		info.setUid(preUid);
+		info.setCreateUid(createUid);
 		info.setContent(content);
 		info.setType(type);
 		info.setUpdateTime(new Date());
 		previewInfoDao.save(info);
+		
+		if (type == PreviewEnum.extractRecord) {
+			return;
+		}
+		
+		if (StringUtil.isNullOrEmpty(content)) {
+			removePreview(preUid, type);
+		} else {
+			adddPreview(preUid, type, content);
+		}
+		
 	}
+	
+	// 缂撳瓨10鍒嗛挓
+	private void adddPreview(Long uid, PreviewEnum type, String content) {
+		String key = StringUtil.Md5("preview" + uid + "#" + type.name());
+		redisManager.cacheCommonString(key, content, 60 * 10);
+	}
+	
+	// 缂撳瓨10鍒嗛挓
+	private void removePreview(Long uid, PreviewEnum type) {
+		String key = StringUtil.Md5("preview" + uid + "#" + type.name());
+		redisManager.removeCommonString(key);
+	}
+		
+	
+	@Override
+	public String getRedisContent(Long uid, PreviewEnum previewEnum) {
+		String key = StringUtil.Md5("preview" + uid + "#" + previewEnum.name());
+		return redisManager.getCommonString(key);
+	}
+	
 	
 	@Override
 	public PreviewInfo get(Long uid, PreviewEnum previewEnum) {
@@ -68,7 +101,7 @@
 	public void saveMoneyInfo(Long uid, MoneyStatisticVO vo) throws PreviewInfoException {
 		if (vo == null)
 			throw new PreviewInfoException(1, "璇峰畬鍠勯〉闈俊鎭�");
-		save(uid, PreviewEnum.moneyInfo, new Gson().toJson(vo));
+		save(uid, uid, PreviewEnum.moneyInfo, new Gson().toJson(vo));
 	}
 	
 	
@@ -77,25 +110,29 @@
 		BindingAccount alipay = bindingAccountService.getBindingAccountByUidAndType(uid, BindingAccount.TYPE_ALIPAY);
 		if (alipay == null)
 			throw new PreviewInfoException(1, "鏈粦瀹氭彁鐜拌处鍙�");
+		if (money == null || money.compareTo(BigDecimal.ZERO) <= 0)
+			throw new PreviewInfoException(1, "璇疯緭鍏ユ纭殑閲戦");
 		if (StringUtil.isNullOrEmpty(time))
 			throw new PreviewInfoException(1, "鎻愮幇鏃堕棿涓嶈兘涓虹┖");
-		if (money.compareTo(BigDecimal.ZERO) <= 0)
-			throw new PreviewInfoException(1, "鎻愮幇閲戦涓嶈兘灏忎簬0");
+	
+		Date parse = TimeUtil.parseDotCommon2(time);
+		if (parse == null)
+			throw new PreviewInfoException(1, "璇疯緭鍏ユ纭殑鏃堕棿鏍煎紡锛屽锛�2020.01.01 01:01");
+		
 		
 		Gson gson = new Gson();
-		List<Extract> list = null;
+		List<Extract> list = new ArrayList<Extract>();
 		
 		Extract extract = new Extract();
 		extract.setName(alipay.getName());
 		extract.setAccount(alipay.getAccount());
 		extract.setMoney(money);
-		extract.setReceiveTime(TimeUtil.parseDotCommon(time));
+		extract.setReceiveTime(TimeUtil.parseDotCommon2(time));
 		extract.setId(java.lang.System.currentTimeMillis());
 		
 		String id = StringUtil.Md5(uid + "#" + PreviewEnum.extractRecord.name());
 		PreviewInfo previewInfo = previewInfoDao.get(id);
 		if (previewInfo == null) {
-			 list = new ArrayList<Extract>();
 			 list.add(extract);
 		} else {
 			String content = previewInfo.getContent();
@@ -113,13 +150,35 @@
 				Comparator<Extract> cm = new Comparator<Extract>() {
 					@Override
 					public int compare(Extract o1, Extract o2) {
-						return (int) (o2.getReceiveTime().getTime() - o1.getReceiveTime().getTime());
+						if (o2.getReceiveTime().getTime() > o1.getReceiveTime().getTime()) {
+							return 1;
+						} else {
+							return -1;
+						}
 					}
 				};
 				Collections.sort(list, cm);
 			}
 		}
-		save(uid, PreviewEnum.extractRecord, gson.toJson(list));
+		save(uid, uid, PreviewEnum.extractRecord, gson.toJson(list));
+	}
+	
+	
+
+	@Override
+	public void previewExtractRecord(Long uid) throws PreviewInfoException{
+		String id = StringUtil.Md5(uid + "#" + PreviewEnum.extractRecord.name());
+		PreviewInfo previewInfo = previewInfoDao.get(id);
+		if (previewInfo == null) {
+			throw new PreviewInfoException(1, "璇锋坊鍔犳彁鐜拌褰曚俊鎭�");
+		} 
+		
+		String content = previewInfo.getContent();
+		if (StringUtil.isNullOrEmpty(content)) {
+			throw new PreviewInfoException(1, "璇锋坊鍔犳彁鐜拌褰曚俊鎭�");
+		}
+
+		adddPreview(uid, PreviewEnum.extractRecord, content);
 	}
 	
 	
@@ -149,38 +208,36 @@
 				break;
 			}
 		}
-		save(uid, PreviewEnum.extractRecord, gson.toJson(list));
+		
+		save(uid, uid, PreviewEnum.extractRecord, gson.toJson(list));
+		
+		// 鍙栨秷棰勮
+		removePreview(uid, PreviewEnum.extractRecord);
 	}
 	
 	
 	
 	@Override
-	public void saveMineInfo(MineInfoVO infoVO, MultipartFile file) throws Exception {
+	public void saveMineInfo(MineInfoVO infoVO) throws PreviewInfoException  {
 		Long uid = infoVO.getUid();
-		if (file != null) {
-			// 璋锋瓕鍘嬬缉鍥剧墖
-			String targetPath = FileUtil.getCacheDir() + "/preview" + uid + "_" + System.currentTimeMillis()+ ".jpg";
-			Thumbnails.of(file.getInputStream()).size(200, 200).toFile(targetPath);
-			// 鎵ц涓婁紶
-			String filePath =FilePathEnum.userPreview.getPath() + UUID.randomUUID().toString().replace("-", "") + ".jpg";
-			String fileLink = COSManager.getInstance().uploadFile(new File(targetPath), filePath).getUrl();
-			// 鍒犻櫎鏈湴鍥剧墖
-			if (new File(targetPath).exists()) {
-				new File(targetPath).delete();
-			}
-			infoVO.setPortrait(fileLink);
-			
-			// 鍒犻櫎涔嬪墠涓婁紶鍥�
-			String id = StringUtil.Md5(uid + "#" + PreviewEnum.mineInfo.name());
-			PreviewInfo previewInfo = previewInfoDao.get(id);
-			if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) {
-				MineInfoVO dto = new Gson().fromJson(previewInfo.getContent(), MineInfoVO.class);
-				if (dto != null && StringUtil.isNullOrEmpty(dto.getPortrait()));
-					COSManager.getInstance().deleteFile(dto.getPortrait());
-			}
+		Long preUid = infoVO.getPreUid();
+		if (uid == null || preUid == null)
+			throw new PreviewInfoException(1, "璇峰畬鍠勬墍鏈夋暟鎹�");
+		
+		if (uid.longValue() != preUid.longValue()) {
+			// preUid 蹇呴』鏄笅绾�
+			ThreeSaleDetail detail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, preUid);
+			if (detail == null) 
+				throw new PreviewInfoException(1, preUid + "涓嶆槸鎮ㄧ殑涓嬬骇");
 		}
+		
+		if (StringUtil.isNullOrEmpty(infoVO.getSelfRebate()) || StringUtil.isNullOrEmpty(infoVO.getShareBonus())
+				|| StringUtil.isNullOrEmpty(infoVO.getTeamBonus())) {
+			throw new PreviewInfoException(1, "璇峰畬鍠勬墍鏈夋暟鎹�");
+		}
+		
 		Gson gson = new Gson();
-		save(uid, PreviewEnum.mineInfo, gson.toJson(infoVO));
+		save(uid, preUid, PreviewEnum.mineInfo, gson.toJson(infoVO));
 	}
 	
 
@@ -191,9 +248,14 @@
 		if (money == null )
 			throw new PreviewInfoException(1, "璇疯緭鍏ラ噾棰�");
 		if(StringUtil.isNullOrEmpty(time))
-			throw new PreviewInfoException(1, "璇疯緭鍏ュ垱寤烘椂闂�");
-		if(StringUtil.isNullOrEmpty(time))
 			throw new PreviewInfoException(1, "璇疯緭鍏ヨ鍗曞彿");
+		if(StringUtil.isNullOrEmpty(time))
+			throw new PreviewInfoException(1, "璇疯緭鍏ュ垱寤烘椂闂�");
+		Date parse = TimeUtil.parseDotCommon2(time);
+		if (parse == null)
+			throw new PreviewInfoException(1, "璇疯緭鍏ユ纭殑鏃堕棿鏍煎紡锛屽锛�2020.01.01 01:01");
+		
+		
 		String content = ""; // TODO
 		// save(uid, PreviewEnum.moneyArrival, gson.toJson(infoVO));
 		return content;

--
Gitblit v1.8.0