From 9e3cad74d0eb3f0b8a21bc90b651667c3252bad7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 21 八月 2019 14:54:52 +0800
Subject: [PATCH] 积分明细

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java |   75 +++++++++++++++++++++++++++++++++++--
 1 files changed, 71 insertions(+), 4 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java
index 8e40a10..fc802c9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java
@@ -14,13 +14,16 @@
 
 import com.yeshi.fanli.dao.mybatis.integral.IntegralTaskRecordMapper;
 import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
+import com.yeshi.fanli.entity.integral.IntegralDetail;
+import com.yeshi.fanli.entity.integral.IntegralTask;
 import com.yeshi.fanli.entity.integral.IntegralTaskRecord;
 import com.yeshi.fanli.exception.integral.IntegralTaskRecordException;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.integral.IntegralDetailService;
 import com.yeshi.fanli.service.inter.integral.IntegralTaskRecordService;
+import com.yeshi.fanli.service.inter.integral.IntegralTaskService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
-import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 
 @Service
@@ -31,6 +34,14 @@
 
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
+	
+	@Resource
+	private IntegralDetailService integralDetailService;
+	
+	@Resource
+	private IntegralTaskService integralTaskService;
+	
+	
 
 	@Override
 	public Integer getTotalGoldCoin(long uid, Long cid, Integer dateType) {
@@ -140,9 +151,47 @@
 		if (userInfoExtra == null)
 			throw new IntegralTaskRecordException(1, "鐢ㄦ埛淇℃伅涓嶅叏");
 
-		int totalGoldCoin = integralTaskRecordMapper.countTotalGoldCoin(uid);
-		if (totalGoldCoin > 0) {
-			integralTaskRecordMapper.updateReceived(uid);
+		
+	    List<IntegralTaskRecord> list = integralTaskRecordMapper.listNotReceived(Integer.MAX_VALUE, uid);
+	    if (list == null || list.size() == 0) 
+	    	throw new IntegralTaskRecordException(1, "鏆傛棤鍙鍙�");
+	    	
+	    	
+	    Integer totalGoldCoin = 0;
+		for (IntegralTaskRecord record : list) {
+			Long uid2 = record.getUid();
+			if (uid2 == null || uid.longValue() != uid2.longValue())
+				continue; // 鐢ㄦ埛id涓嶇鍚�
+
+			if (record.getState() != null && record.getState().intValue() == 1) {
+				continue; // 宸查鍙�
+			}
+
+			IntegralTaskRecord taskRecord = new IntegralTaskRecord();
+			taskRecord.setId(record.getId());
+			taskRecord.setState(1); // 宸查鍙�
+			taskRecord.setUpdateTime(new Date());
+			integralTaskRecordMapper.updateByPrimaryKeySelective(taskRecord);
+
+			
+			Long taskId = record.getTaskId();
+			if (taskId == null) 
+				continue;
+				
+				
+			IntegralTask integralTask = integralTaskService.selectByPrimaryKey(taskId);
+			if (integralTask == null)
+				continue;
+			
+			// 鍔犲叆鏄庣粏
+			IntegralDetail detail = new IntegralDetail();
+			detail.setUid(uid);
+			detail.setCreateTime(new Date());
+			detail.setMoney(record.getGoldCoin());
+			detail.setTitle(integralTask.getName());
+			integralDetailService.insertSelective(detail);
+			
+			totalGoldCoin += record.getGoldCoin();
 		}
 
 		Integer goldCoin = userInfoExtra.getGoldCoin();
@@ -193,6 +242,24 @@
 			taskRecord.setUpdateTime(new Date());
 			integralTaskRecordMapper.updateByPrimaryKeySelective(taskRecord);
 
+			
+			Long taskId = record.getTaskId();
+			if (taskId == null) 
+				continue;
+				
+				
+			IntegralTask integralTask = integralTaskService.selectByPrimaryKey(taskId);
+			if (integralTask == null)
+				continue;
+			
+			// 鍔犲叆鏄庣粏
+			IntegralDetail detail = new IntegralDetail();
+			detail.setUid(uid);
+			detail.setCreateTime(new Date());
+			detail.setMoney(record.getGoldCoin());
+			detail.setTitle(integralTask.getName());
+			integralDetailService.insertSelective(detail);
+			
 			totalGoldCoin += record.getGoldCoin();
 		}
 

--
Gitblit v1.8.0