From 616608ec1005bff373bc380ecc3bf02a1063497c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 19 八月 2019 17:42:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java |   78 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java
index 6fd8a39..6e87300 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java
@@ -1,5 +1,6 @@
 package com.yeshi.fanli.service.impl.integral;
 
+import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
@@ -7,9 +8,14 @@
 import org.springframework.stereotype.Service;
 
 import com.yeshi.fanli.dao.mybatis.integral.IntegralExchangeRecordMapper;
+import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
 import com.yeshi.fanli.entity.integral.IntegralExchange;
+import com.yeshi.fanli.entity.integral.IntegralExchange.ExchangeTypeEnum;
+import com.yeshi.fanli.entity.integral.IntegralExchangeRecord;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.integral.IntegralExchangeRecordService;
 import com.yeshi.fanli.service.inter.integral.IntegralExchangeService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.util.StringUtil;
 
 @Service
@@ -21,6 +27,9 @@
 	@Resource
 	private IntegralExchangeService integralExchangeService;
 	
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+	
 	@Override
 	public List<IntegralExchange> listExchange(long start, int count, Long uid){
 		List<IntegralExchange> listValid = integralExchangeService.listValidCache(start, count);
@@ -28,16 +37,64 @@
 			return listValid;
 		}
 		
-		for(IntegralExchange integralExchange: listValid) {
-			String progress = integralExchange.getProgress();
+		boolean hasCode = false;
+		try {
+			UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+			if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
+				hasCode = true;
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+		
+		for(int i = 0; i < listValid.size(); i++) {
+			IntegralExchange exchange = listValid.get(i);
+			
+			ExchangeTypeEnum type = exchange.getType();
+			if (type == null) {
+				listValid.remove(i);
+				i --;
+				continue;
+			}
+			
+			Long id = exchange.getId();
+			if (type == ExchangeTypeEnum.freeCouponBuy) {
+				// 娉細鍥犺嚜璐厤鍗曞埜锛屼竴涓敤鎴峰彧鑳藉厬鎹竴娆★紝鍒欏綋鍓嶇敤鎴蜂竴鏃﹀厬鎹㈡垚鍔燂紝鑷喘鍏嶅崟鍒稿厬鎹㈠叆鍙f案涔呭湪褰撳墠鐢ㄦ埛閲戝竵鍏戞崲鍒楄〃涓秷澶便��
+				long num = integralExchangeRecordMapper.countRecordByUid(id, uid);
+				if (num >= 1) {
+					listValid.remove(i);
+					i --;
+					continue;
+				}
+			}
+			
+			// 閭�璇风爜婵�娲诲崱锛屽厬鎹㈤」锛屽鏋滃綋鍓嶇敤鎴峰凡缁忔縺娲讳簡閭�璇峰姛鑳斤紝鍒欎笉闇�瑕佹樉绀鸿鍏戞崲椤广��
+			if (type == ExchangeTypeEnum.inviteCodeActivate && hasCode) {
+				listValid.remove(i);
+				i --;
+				continue;
+			}
+			
+			// 閭�璇风爜鍙戝竷鍗★紝鍏戞崲椤癸紝濡傛灉褰撳墠鐢ㄦ埛鏈縺娲婚個璇峰姛鑳斤紝鍒欎笉闇�瑕佹樉绀鸿鍏戞崲椤广��
+			if (type == ExchangeTypeEnum.inviteCodePublish && !hasCode) {
+				listValid.remove(i);
+				i --;
+				continue;
+			}
+			
+			String progress = exchange.getProgress();
 			if (StringUtil.isNullOrEmpty(progress))
 				continue;
 			
 			// 浠婃棩鍏戞崲鎯呭喌
-			long exchange = integralExchangeRecordMapper.countRecordByUid(integralExchange.getId(), uid);
-			
-			progress = progress.replace("{宸插厬鎹", exchange + "").replace("{涓婇檺鏁皚", integralExchange.getUpperLimit() + "");
-			integralExchange.setProgress(progress);
+			long num = integralExchangeRecordMapper.countRecordByUid(id, uid);
+			Integer upperLimit = exchange.getUpperLimit();
+			if (upperLimit == null) {
+				progress = progress.replace("{宸插厬鎹", num + "").replace("/{涓婇檺鏁皚", "");
+			} else {
+				progress = progress.replace("{宸插厬鎹", num + "").replace("{涓婇檺鏁皚", exchange.getUpperLimit() + "");
+			}
+			exchange.setProgress(progress);
 		}
 		return listValid;
 	}
@@ -46,4 +103,13 @@
 	public long countRecordByUid(long exchangeid, Long uid){
 		return integralExchangeRecordMapper.countRecordByUid(exchangeid, uid);
 	}
+	
+	@Override
+	public void addExchangeRecord(long exchangeid, Long uid){
+		IntegralExchangeRecord record = new IntegralExchangeRecord();
+		record.setExchangeId(exchangeid);
+		record.setUid(uid);
+		record.setCreateTime(new Date());
+		integralExchangeRecordMapper.insertSelective(record);
+	}
 }

--
Gitblit v1.8.0