init
This commit is contained in:
@@ -11,10 +11,7 @@ import com.ruoyi.cai.enums.CodeEnum;
|
|||||||
import com.ruoyi.cai.enums.GenderEnum;
|
import com.ruoyi.cai.enums.GenderEnum;
|
||||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||||
import com.ruoyi.cai.manager.CodeManager;
|
import com.ruoyi.cai.manager.*;
|
||||||
import com.ruoyi.cai.manager.LockManager;
|
|
||||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
|
||||||
import com.ruoyi.cai.manager.UserForbidManager;
|
|
||||||
import com.ruoyi.cai.service.*;
|
import com.ruoyi.cai.service.*;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
@@ -72,14 +69,14 @@ public class CaiLoginManager {
|
|||||||
private UnionService unionService;
|
private UnionService unionService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UnionUserService unionUserService;
|
private UnionUserService unionUserService;
|
||||||
@Autowired
|
|
||||||
private Yunxin yunxin;
|
|
||||||
@Resource
|
@Resource
|
||||||
private ImUserClient imUserClient;
|
private ImUserClient imUserClient;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserCountService userCountService;
|
private UserCountService userCountService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserForbidManager userForbidManager;
|
private UserForbidManager userForbidManager;
|
||||||
|
@Autowired
|
||||||
|
private AwardManager awardManager;
|
||||||
|
|
||||||
public String login(String username,String password){
|
public String login(String username,String password){
|
||||||
User user = userService.getByUsername(username);
|
User user = userService.getByUsername(username);
|
||||||
@@ -121,13 +118,14 @@ public class CaiLoginManager {
|
|||||||
if(lock.isLocked()){
|
if(lock.isLocked()){
|
||||||
throw new ServiceException("您点击太快了");
|
throw new ServiceException("您点击太快了");
|
||||||
}
|
}
|
||||||
lock.lock(5, TimeUnit.SECONDS);
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
CaiLoginManager bean = SpringUtil.getBean(CaiLoginManager.class);
|
CaiLoginManager bean = SpringUtil.getBean(CaiLoginManager.class);
|
||||||
user = bean.registerUser(caiUser);
|
user = bean.registerUser(caiUser);
|
||||||
}finally {
|
}finally {
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
}
|
}
|
||||||
|
awardManager.giveRegisterAsync(user.getId());
|
||||||
if(user.getInviteId() != null){
|
if(user.getInviteId() != null){
|
||||||
User finalUser = user;
|
User finalUser = user;
|
||||||
ExecutorConstant.COMMON_EXECUTOR.execute(() -> dealInviteId(finalUser));
|
ExecutorConstant.COMMON_EXECUTOR.execute(() -> dealInviteId(finalUser));
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ public class UserInfo {
|
|||||||
* 登录次数
|
* 登录次数
|
||||||
*/
|
*/
|
||||||
private Integer loginCount;
|
private Integer loginCount;
|
||||||
|
/**
|
||||||
|
* 是否领取首充奖励(true领取 false未领取)
|
||||||
|
*/
|
||||||
|
private Boolean fastPay;
|
||||||
/**
|
/**
|
||||||
* 最后登录IP
|
* 最后登录IP
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ConsumeResp {
|
public class ConsumeResp {
|
||||||
|
private Long userId;
|
||||||
private Long consumeLogId;
|
private Long consumeLogId;
|
||||||
private boolean success;
|
private boolean success;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import lombok.Getter;
|
|||||||
* @author ZL
|
* @author ZL
|
||||||
*/
|
*/
|
||||||
public enum SystemConfigEnum {
|
public enum SystemConfigEnum {
|
||||||
|
REGISTER_AWARD("88", "注册奖励",SystemConfigGroupEnum.BUSINESS),
|
||||||
|
FAST_PAY_AWARD("300", "首充奖励",SystemConfigGroupEnum.BUSINESS),
|
||||||
GUARD_PRICE("1314", "守护价格",SystemConfigGroupEnum.BUSINESS),
|
GUARD_PRICE("1314", "守护价格",SystemConfigGroupEnum.BUSINESS),
|
||||||
DEFAULT_ANCHOR_PRICE("200","主播默认价格",SystemConfigGroupEnum.BUSINESS),
|
DEFAULT_ANCHOR_PRICE("200","主播默认价格",SystemConfigGroupEnum.BUSINESS),
|
||||||
DEFAULT_ANCHOR_GUARD_PRICE("0.5","主播默认守护提成",SystemConfigGroupEnum.BUSINESS),
|
DEFAULT_ANCHOR_GUARD_PRICE("0.5","主播默认守护提成",SystemConfigGroupEnum.BUSINESS),
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ public enum AccountChangeCodeEnum {
|
|||||||
GIFT_COIN_OUT(402,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.COIN,"",false),
|
GIFT_COIN_OUT(402,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.COIN,"",false),
|
||||||
GIFT_INCOME_COIN_OUT(403,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.INCOME_COIN,"",false),
|
GIFT_INCOME_COIN_OUT(403,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.INCOME_COIN,"",false),
|
||||||
|
|
||||||
FAST_WITHDRAW(501,AccountCateEnum.SYSTEM,"首冲奖励",AccountTypeEnum.INCOME_COIN,"",null),
|
FAST_PAY_AWARD(501,AccountCateEnum.SYSTEM,"首充奖励",AccountTypeEnum.INCOME_COIN,"",null),
|
||||||
RECHARGE_INVITE(502,AccountCateEnum.SYSTEM,"邀请奖励(充值)",AccountTypeEnum.INCOME_COIN,"",true),
|
RECHARGE_INVITE(502,AccountCateEnum.SYSTEM,"邀请奖励(充值)",AccountTypeEnum.INCOME_COIN,"",true),
|
||||||
VIDEO_INVITE(503,AccountCateEnum.SYSTEM,"邀请奖励(视频)",AccountTypeEnum.INCOME_COIN,"",true),
|
VIDEO_INVITE(503,AccountCateEnum.SYSTEM,"邀请奖励(视频)",AccountTypeEnum.INCOME_COIN,"",true),
|
||||||
GIFT_INVITE(504,AccountCateEnum.SYSTEM,"邀请奖励(礼物)",AccountTypeEnum.INCOME_COIN,"",true),
|
GIFT_INVITE(504,AccountCateEnum.SYSTEM,"邀请奖励(礼物)",AccountTypeEnum.INCOME_COIN,"",true),
|
||||||
GUARD_INVITE(505,AccountCateEnum.SYSTEM,"邀请奖励(守护)",AccountTypeEnum.INCOME_COIN,"",true),
|
GUARD_INVITE(505,AccountCateEnum.SYSTEM,"邀请奖励(守护)",AccountTypeEnum.INCOME_COIN,"",true),
|
||||||
REGISTER_INVITE(506,AccountCateEnum.SYSTEM,"注册奖励",AccountTypeEnum.INCOME_COIN,"",null),
|
REGISTER_AWARD(506,AccountCateEnum.SYSTEM,"注册奖励",AccountTypeEnum.INCOME_COIN,"",null),
|
||||||
RAKE_INVITE(507,AccountCateEnum.SYSTEM,"排行榜奖励",AccountTypeEnum.INCOME_COIN,"",null),
|
RAKE_AWARD(507,AccountCateEnum.SYSTEM,"排行榜奖励",AccountTypeEnum.INCOME_COIN,"",null),
|
||||||
|
|
||||||
IM_INCOME(701,AccountCateEnum.IM,"收到私信",AccountTypeEnum.INCOME_COIN,"",true),
|
IM_INCOME(701,AccountCateEnum.IM,"收到私信",AccountTypeEnum.INCOME_COIN,"",true),
|
||||||
IM_COIN_OUT(702,AccountCateEnum.IM,"私信支出",AccountTypeEnum.COIN,"",false),
|
IM_COIN_OUT(702,AccountCateEnum.IM,"私信支出",AccountTypeEnum.COIN,"",false),
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
package com.ruoyi.cai.pay;
|
package com.ruoyi.cai.pay;
|
||||||
|
|
||||||
|
import com.ruoyi.cai.dto.ConsumeResp;
|
||||||
|
import com.ruoyi.cai.manager.AwardManager;
|
||||||
import com.ruoyi.cai.manager.ConsumerManager;
|
import com.ruoyi.cai.manager.ConsumerManager;
|
||||||
import com.ruoyi.cai.service.RechargeOrderService;
|
|
||||||
import com.ruoyi.cai.service.VipOrderService;
|
import com.ruoyi.cai.service.VipOrderService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -15,6 +16,8 @@ public class PayManager {
|
|||||||
private VipOrderService vipOrderService;
|
private VipOrderService vipOrderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ConsumerManager consumerManager;
|
private ConsumerManager consumerManager;
|
||||||
|
@Autowired
|
||||||
|
private AwardManager awardManager;
|
||||||
|
|
||||||
public void callBack(String orderNo){
|
public void callBack(String orderNo){
|
||||||
OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo);
|
OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo);
|
||||||
@@ -27,7 +30,10 @@ public class PayManager {
|
|||||||
vipOrderService.orderSuccess(orderNo);
|
vipOrderService.orderSuccess(orderNo);
|
||||||
break;
|
break;
|
||||||
case RECHARGE_ORDER_SUB:
|
case RECHARGE_ORDER_SUB:
|
||||||
consumerManager.rechargeOrderSuccess(orderNo);
|
ConsumeResp resp = consumerManager.rechargeOrderSuccess(orderNo);
|
||||||
|
if(resp.isSuccess()){
|
||||||
|
awardManager.giveFastPayAsync(resp.getUserId(), resp.getConsumeLogId());
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
|||||||
ConsumeResp resp = new ConsumeResp();
|
ConsumeResp resp = new ConsumeResp();
|
||||||
resp.setSuccess(true);
|
resp.setSuccess(true);
|
||||||
resp.setConsumeLogId(consumeLog.getId());
|
resp.setConsumeLogId(consumeLog.getId());
|
||||||
|
resp.setUserId(user.getId());
|
||||||
return resp;
|
return resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user