This commit is contained in:
77
2024-04-12 23:29:05 +08:00
parent 9fb10b024a
commit a91f9fe242
5 changed files with 47 additions and 6 deletions

View File

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.cai.domain.Rank;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserInfo;
import com.ruoyi.cai.domain.UserInvite;
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.executor.ExecutorConstant;
@@ -100,13 +102,53 @@ public class AwardManager {
yunxinHttpService.registerRewardCoin(userId,price,price);
}
public void giveFastPayAsync(Long userId, Long traceId){
public void giveFastPayAsync(RechargeConsumerResp resp){
AwardManager bean = SpringUtil.getBean(AwardManager.class);
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
bean.giveFastPay(userId,traceId);
// bean.giveFastPay(resp.getUserId(), resp.getTraceId());
bean.giveFastPayInvite(resp);
});
}
@Transactional(rollbackFor = Exception.class)
public void giveFastPayInvite(RechargeConsumerResp resp){
Long price = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.FAST_PAY_AWARD);
if(price == 0){
return;
}
Long userId = resp.getUserId();
User user = userService.getById(userId);
if(user == null){
log.error("首充奖励领取失败 用户不存在 userId={}",userId);
return;
}
UserInfo userInfo = userInfoService.getByUserId(userId);
if(userInfo == null || BooleanUtils.isNotFalse(userInfo.getFastPay())){
log.warn("首充奖励领取失败 用户已领取 128 userId={}",userId);
return;
}
boolean update = userInfoService.update(Wrappers.lambdaUpdate(UserInfo.class)
.eq(UserInfo::getId, userInfo.getId())
.eq(UserInfo::getFastPay, false)
.set(UserInfo::getFastPay, true));
if(!update){
log.warn("首充奖励领取失败 用户已领取 无需二次领取 136 userId={}",userId);
return;
}
UserInvite userInvite = userInviteService.getByUserId(userId);
if(userInvite == null){
log.warn("首充奖励分发失败 用户无邀请人,首冲奖励流失");
return;
}
User oneUser = userService.getById(userInvite.getInviteId());
if(oneUser == null || oneUser.getStatus() != 0){
log.warn("首充奖励分发失败 用户无邀请人,或者邀请人已经被封号,首冲奖励流失");
return;
}
accountMapper.incsIncomeCoin(oneUser.getId(),price);
accountChangeLogService.saveLogNoAdmin(oneUser.getId(),oneUser.getUsercode(), AccountChangeCodeEnum.FAST_PAY_AWARD,price,resp.getTraceId(),userId);
}
@Transactional(rollbackFor = Exception.class)
public void giveFastPay(Long userId,Long traceId){
Long price = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.FAST_PAY_AWARD);