钱包操作加锁

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.Purse;
import com.ruoyi.mybasic.api.domain.UserMoneyLogs; import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord; 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.mapper.InvitationMapper;
import com.ruoyi.mybasic.service.InvitationService; import com.ruoyi.mybasic.service.InvitationService;
import com.ruoyi.mybasic.service.PurseServiceTwo; import com.ruoyi.mybasic.service.PurseServiceTwo;
@ -12,6 +11,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.concurrent.locks.ReentrantLock;
/** /**
* @ClassName InvitationServiceImpl * @ClassName InvitationServiceImpl
@ -53,6 +53,11 @@ public class InvitationServiceImpl implements InvitationService {
//邀请人id //邀请人id
Integer userId = requestInvitationRecord.getUserId(); Integer userId = requestInvitationRecord.getUserId();
//创建锁
ReentrantLock reentrantLock = new ReentrantLock();
//加锁
reentrantLock.lock();
try{
//修改邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间) //修改邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间)
i = invitationMapper.updateUserPurse(userId); i = invitationMapper.updateUserPurse(userId);
if (i < 0){ if (i < 0){
@ -82,6 +87,13 @@ public class InvitationServiceImpl implements InvitationService {
PurseMoneyLogsTwo.setCreateTime(new Date()); PurseMoneyLogsTwo.setCreateTime(new Date());
invitationMapper.insertUserMoneyLogs(PurseMoneyLogsTwo); invitationMapper.insertUserMoneyLogs(PurseMoneyLogsTwo);
}finally {
//解锁
reentrantLock.unlock();
}
} }
/** /**

View File

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