init
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
package com.ruoyi.cai.manager;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserInfo;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||
import com.ruoyi.cai.mapper.AccountMapper;
|
||||
import com.ruoyi.cai.service.AccountChangeLogService;
|
||||
import com.ruoyi.cai.service.UserInfoService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class AwardManager {
|
||||
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Resource
|
||||
private AccountMapper accountMapper;
|
||||
@Autowired
|
||||
private AccountChangeLogService accountChangeLogService;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private UserInfoService userInfoService;
|
||||
|
||||
public void giveRegisterAsync(Long userId){
|
||||
AwardManager bean = SpringUtil.getBean(AwardManager.class);
|
||||
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
|
||||
bean.giveRegister(userId);
|
||||
});
|
||||
}
|
||||
|
||||
public void giveRegister(Long userId){
|
||||
Long price = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.REGISTER_AWARD);
|
||||
if(price == 0){
|
||||
return;
|
||||
}
|
||||
User user = userService.getById(userId);
|
||||
if(user == null){
|
||||
log.error("注册奖励领取失败 用户不存在 userId={}",userId);
|
||||
return;
|
||||
}
|
||||
accountMapper.incsIncomeCoin(userId,price);
|
||||
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.REGISTER_AWARD,price,null);
|
||||
}
|
||||
|
||||
public void giveFastPayAsync(Long userId, Long traceId){
|
||||
AwardManager bean = SpringUtil.getBean(AwardManager.class);
|
||||
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
|
||||
bean.giveFastPay(userId,traceId);
|
||||
});
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void giveFastPay(Long userId,Long traceId){
|
||||
Long price = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.FAST_PAY_AWARD);
|
||||
if(price == 0){
|
||||
return;
|
||||
}
|
||||
User user = userService.getById(userId);
|
||||
if(user == null){
|
||||
log.error("首充奖励领取失败 用户不存在 userId={}",userId);
|
||||
return;
|
||||
}
|
||||
UserInfo userInfo = userInfoService.getByUserId(userId);
|
||||
if(userInfo == null || BooleanUtils.isNotTrue(userInfo.getFastPay())){
|
||||
log.warn("首充奖励领取失败 用户已领取 userId={}",userId);
|
||||
return;
|
||||
}
|
||||
boolean update = userInfoService.update(Wrappers.lambdaUpdate(UserInfo.class)
|
||||
.eq(UserInfo::getId, userInfo.getUserId())
|
||||
.eq(UserInfo::getFastPay, false)
|
||||
.set(UserInfo::getFastPay, true));
|
||||
if(!update){
|
||||
log.warn("首充奖励领取失败 用户已领取 userId={}",userId);
|
||||
return;
|
||||
}
|
||||
accountMapper.incsIncomeCoin(userId,price);
|
||||
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.FAST_PAY_AWARD,price,traceId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user