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