钱包操作加锁

master
ZhiShuo_Lou 2023-11-04 14:16:31 +08:00
parent 5facd548b4
commit 921abd3c45
2 changed files with 38 additions and 32 deletions

View File

@ -3,7 +3,6 @@ package com.ruoyi.mybasic.service.Impl;
import com.ruoyi.mybasic.api.domain.Purse;
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
import com.ruoyi.mybasic.mapper.InvitationMapper;
import com.ruoyi.mybasic.service.InvitationService;
import com.ruoyi.mybasic.service.PurseServiceTwo;
@ -12,6 +11,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.concurrent.locks.ReentrantLock;
/**
* @ClassName InvitationServiceImpl
@ -53,34 +53,46 @@ public class InvitationServiceImpl implements InvitationService {
//邀请人id
Integer userId = requestInvitationRecord.getUserId();
//修改邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间)
i = invitationMapper.updateUserPurse(userId);
if (i < 0){
throw new RuntimeException("获利金额未增加到可用余额");
}
//同时添加钱包变更记录表
UserMoneyLogs PurseMoneyLogs = new UserMoneyLogs();
PurseMoneyLogs.setUserId(userId);
PurseMoneyLogs.setMoneyTypeName("NEW_USER_INVITE");
PurseMoneyLogs.setStatus(2);
PurseMoneyLogs.setAmountIncome(300);
PurseMoneyLogs.setCreateTime(new Date());
invitationMapper.insertUserMoneyLogs(PurseMoneyLogs);
//创建锁
ReentrantLock reentrantLock = new ReentrantLock();
//加锁
reentrantLock.lock();
try{
//修改邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间)
i = invitationMapper.updateUserPurse(userId);
if (i < 0){
throw new RuntimeException("获利金额未增加到可用余额");
}
//同时添加钱包变更记录表
UserMoneyLogs PurseMoneyLogs = new UserMoneyLogs();
PurseMoneyLogs.setUserId(userId);
PurseMoneyLogs.setMoneyTypeName("NEW_USER_INVITE");
PurseMoneyLogs.setStatus(2);
PurseMoneyLogs.setAmountIncome(300);
PurseMoneyLogs.setCreateTime(new Date());
invitationMapper.insertUserMoneyLogs(PurseMoneyLogs);
//修改被邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间)
i = invitationMapper.updateUserPurse(userPid);
if (i < 0){
throw new RuntimeException("获利金额未增加到可用余额");
//修改被邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间)
i = invitationMapper.updateUserPurse(userPid);
if (i < 0){
throw new RuntimeException("获利金额未增加到可用余额");
}
//同时添加钱包变更记录表
UserMoneyLogs PurseMoneyLogsTwo = new UserMoneyLogs();
PurseMoneyLogsTwo.setUserId(userPid);
PurseMoneyLogsTwo.setMoneyTypeName("NEW_USER_INVITE");
PurseMoneyLogsTwo.setStatus(2);
PurseMoneyLogsTwo.setAmountIncome(300);
PurseMoneyLogsTwo.setCreateTime(new Date());
invitationMapper.insertUserMoneyLogs(PurseMoneyLogsTwo);
}finally {
//解锁
reentrantLock.unlock();
}
//同时添加钱包变更记录表
UserMoneyLogs PurseMoneyLogsTwo = new UserMoneyLogs();
PurseMoneyLogsTwo.setUserId(userPid);
PurseMoneyLogsTwo.setMoneyTypeName("NEW_USER_INVITE");
PurseMoneyLogsTwo.setStatus(2);
PurseMoneyLogsTwo.setAmountIncome(300);
PurseMoneyLogsTwo.setCreateTime(new Date());
invitationMapper.insertUserMoneyLogs(PurseMoneyLogsTwo);
}

View File

@ -1,8 +1,6 @@
package com.ruoyi.mybasic.util;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPObject;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.mybasic.common.domain.BankConfig;
@ -13,11 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -96,7 +91,6 @@ public class BankScan {
bankConfig.setBankName(bankConfig1.getBankName());
bankConfig.setBankId(bankConfig1.getBankId());
bankConfig.setUserId(SecurityUtils.getUserId());
//绑定银行卡 添加到银行卡表中
messageMapper.addBank(bankConfig);