From 10abb8f04d3bacd4cead1758aae48726ccd29c66 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 22 十月 2019 10:43:48 +0800
Subject: [PATCH] 淘礼金赠送红包功能恢复

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java |  127 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 109 insertions(+), 18 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
index 02ad80f..50dacf3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
@@ -1,15 +1,26 @@
 package com.yeshi.fanli.service.impl.tlj;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
 
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.tlj.UserTaoLiJinOriginMapper;
+import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
+import com.yeshi.fanli.dto.msg.MsgOtherTaoLiJinContentDTO;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinGiveRecord;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin.TaoLiJinOriginEnum;
+import com.yeshi.fanli.exception.tlj.UserTaoLiJinOriginException;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
 import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
 import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
@@ -20,68 +31,148 @@
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 
 @Service
-public class UserTaoLiJinOriginServiceImpl implements UserTaoLiJinOriginService{
+public class UserTaoLiJinOriginServiceImpl implements UserTaoLiJinOriginService {
 
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
-	
+
 	@Resource
 	private UserTaoLiJinOriginMapper userTaoLiJinOriginMapper;
-	
+
 	@Resource
 	private UserMoneyExtraService userMoneyExtraService;
-	
+
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
-	
+
 	@Resource
 	private UserTaoLiJinDetailService userTaoLiJinDetailService;
-	
+
 	@Resource
 	private UserOtherMsgNotificationService userOtherMsgNotificationService;
-	
+
 	@Resource
 	private ConfigTaoLiJinService configTaoLiJinService;
-	
+
 	@Resource
 	private UserTaoLiJinRecordService userTaoLiJinRecordService;
-	
+
 	@Resource
 	private UserTaoLiJinReportService userTaoLiJinReportService;
-	
-	
+
 	@Override
 	public void updateByPrimaryKeySelective(UserTaoLiJinOrigin record) {
 		userTaoLiJinOriginMapper.updateByPrimaryKeySelective(record);
 	}
-	
+
 	@Override
 	public BigDecimal countMoneyByDate(long uid, int dateType) {
 		return userTaoLiJinOriginMapper.countMoneyByDate(uid, dateType);
 	}
-	
+
 	@Override
 	public long countByUidAndOrigin(long uid, String origin) {
 		return userTaoLiJinOriginMapper.countByUidAndOrigin(uid, origin);
 	}
-	
+
 	@Override
 	public UserTaoLiJinOrigin getByUidAndOrigin(long uid, String origin) {
 		return userTaoLiJinOriginMapper.getByUidAndOrigin(uid, origin);
 	}
-	
+
 	@Override
 	public UserTaoLiJinOrigin getRankByThisMonth(long uid, String type) {
 		return userTaoLiJinOriginMapper.getRankByThisMonth(uid, type);
 	}
 
-	
 	@Override
 	public List<UserTaoLiJinOrigin> getSurplusLiJin(long uid) {
 		return userTaoLiJinOriginMapper.getSurplusLiJin(uid);
 	}
 
+	@Override
+	@Transactional
+	public UserTaoLiJinOrigin receiveFriendsGive(Long uid, BigDecimal money) throws UserTaoLiJinOriginException {
+		if (uid == null || money == null) {
+			throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
+		}
 
-	
-	
+		// 娣诲姞绾㈠寘浣欓
+		userMoneyExtraService.addTaoLiJin(uid, money, false);
+		// 娣诲姞鏂板璁板綍
+		UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.friendsGive);
+		// 绾㈠寘鏄庣粏
+		userTaoLiJinDetailService.createAddDetail(origin);
+		// 娑堟伅
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				try {
+					MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
+					content.setState("绾㈠寘澧炲姞");
+					content.setSource("濂藉弸璧犻��");
+					content.setMoney(money);
+					userOtherMsgNotificationService.taoLiJinMsg(uid, "", content);
+				} catch (Exception e) {
+					LogHelper.errorDetailInfo(e);
+				}
+			}
+		});
+		return origin;
+	}
+
+	@Override
+	@Transactional
+	public void giveSendBack(Long uid, UserTaoLiJinGiveRecord record) throws UserTaoLiJinOriginException {
+		if (uid == null || record == null) {
+			throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
+		}
+
+		BigDecimal money = record.getAmount();
+
+		// 娣诲姞绾㈠寘浣欓
+		userMoneyExtraService.addTaoLiJin(uid, money, false);
+		// 娣诲姞鏂板璁板綍
+		saveOrigin(uid, 1, money, TaoLiJinOriginEnum.giveSendBack);
+		// 绾㈠寘鏄庣粏
+		UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
+		detail.setUid(uid);
+		detail.setMoney(money);
+		detail.setType(TaoLiJinDetailTypeEnum.giveBack);
+		detail.setTitle(TaoLiJinDetailTypeEnum.giveBack.getDesc());
+		detail.setCreateTime(new Date());
+		userTaoLiJinDetailService.insertSelective(detail);
+
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				// 閫�鍥炴秷鎭�
+				String beiZhu = "璇峰埌鎴戠殑-鎺ㄥ箍绾㈠寘鏌ョ湅";
+				SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+				MsgOtherGiveContentDTO msgOther = new MsgOtherGiveContentDTO();
+				msgOther.setType(MsgOtherGiveContentDTO.TYEP_TLJ);
+				msgOther.setTitle("鎺ㄥ箍绾㈠寘閫�鍥�");
+				msgOther.setGiveType("浣犺禒閫佺殑楼" + money + "鍏冩帹骞跨孩鍖呮湭琚鍙�");
+				msgOther.setGiveTime(sd.format(record.getGiveTime()));
+				msgOther.setReturnTime(sd.format(new Date()));
+				userOtherMsgNotificationService.tokenGiveMsg(record.getGiveUid(), beiZhu, msgOther);
+			}
+		});
+	}
+
+	// 娣诲姞鏂板璁板綍
+	public UserTaoLiJinOrigin saveOrigin(Long uid, int type, BigDecimal money, TaoLiJinOriginEnum originEnum) {
+		UserTaoLiJinOrigin taoLiJinOrigin = new UserTaoLiJinOrigin();
+		taoLiJinOrigin.setUid(uid);
+		taoLiJinOrigin.setType(type);
+		taoLiJinOrigin.setOrigin(originEnum);
+		taoLiJinOrigin.setMoney(money);
+		taoLiJinOrigin.setMoneySurplus(money);
+		taoLiJinOrigin.setCreateTime(new Date());
+		taoLiJinOrigin.setUpdateTime(new Date());
+		taoLiJinOrigin.setRemark(originEnum.getDesc());
+		userTaoLiJinOriginMapper.insertSelective(taoLiJinOrigin);
+		return taoLiJinOrigin;
+	}
+
 }

--
Gitblit v1.8.0