123
This commit is contained in:
@@ -2,7 +2,6 @@ package com.ruoyi.web.controller.cai.app;
|
|||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
|
||||||
import com.alipay.api.AlipayApiException;
|
import com.alipay.api.AlipayApiException;
|
||||||
import com.alipay.api.domain.AlipayTradeAppPayModel;
|
import com.alipay.api.domain.AlipayTradeAppPayModel;
|
||||||
import com.alipay.api.internal.util.AlipaySignature;
|
import com.alipay.api.internal.util.AlipaySignature;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ 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_PAY_AWARD(501,AccountCateEnum.SYSTEM,"首充奖励",AccountTypeEnum.INCOME_COIN,"",null),
|
FAST_PAY_AWARD(501,AccountCateEnum.SYSTEM,"邀请奖励(首充)",AccountTypeEnum.INCOME_COIN,"",true),
|
||||||
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),
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import com.ruoyi.cai.domain.Rank;
|
import com.ruoyi.cai.domain.Rank;
|
||||||
import com.ruoyi.cai.domain.User;
|
import com.ruoyi.cai.domain.User;
|
||||||
import com.ruoyi.cai.domain.UserInfo;
|
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.SystemConfigEnum;
|
||||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
||||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||||
@@ -100,13 +102,53 @@ public class AwardManager {
|
|||||||
yunxinHttpService.registerRewardCoin(userId,price,price);
|
yunxinHttpService.registerRewardCoin(userId,price,price);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void giveFastPayAsync(Long userId, Long traceId){
|
public void giveFastPayAsync(RechargeConsumerResp resp){
|
||||||
AwardManager bean = SpringUtil.getBean(AwardManager.class);
|
AwardManager bean = SpringUtil.getBean(AwardManager.class);
|
||||||
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
|
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)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void giveFastPay(Long userId,Long traceId){
|
public void giveFastPay(Long userId,Long traceId){
|
||||||
Long price = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.FAST_PAY_AWARD);
|
Long price = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.FAST_PAY_AWARD);
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class PayManager {
|
|||||||
RechargeConsumerResp resp = consumerManager.rechargeOrderSuccess(orderNo,params,appId,payTypeEnum);
|
RechargeConsumerResp resp = consumerManager.rechargeOrderSuccess(orderNo,params,appId,payTypeEnum);
|
||||||
if(resp.isSuccess()){
|
if(resp.isSuccess()){
|
||||||
// 领取首充奖励
|
// 领取首充奖励
|
||||||
awardManager.giveFastPayAsync(resp.getUserId(), resp.getTraceId());
|
awardManager.giveFastPayAsync(resp);
|
||||||
if(appId != null){
|
if(appId != null){
|
||||||
payTotalService.incsPrice(payTypeEnum,appId,resp.getPrice());
|
payTotalService.incsPrice(payTypeEnum,appId,resp.getPrice());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
sum(if(admin=1 and recharge_type=2 and recharge_coin > 0,recharge_coin,0)) as modify_income_add,
|
sum(if(admin=1 and recharge_type=2 and recharge_coin > 0,recharge_coin,0)) as modify_income_add,
|
||||||
sum(if(admin=1 and recharge_type=2 and recharge_coin < 0,-recharge_coin,0)) as modify_income_sub,
|
sum(if(admin=1 and recharge_type=2 and recharge_coin < 0,-recharge_coin,0)) as modify_income_sub,
|
||||||
sum(if(admin=0,price,0)) as exp_in_money,
|
sum(if(admin=0,price,0)) as exp_in_money,
|
||||||
count(if(admin=0,1,0)) as order_count
|
sum(if(admin=0,1,0)) as order_count
|
||||||
from cai_recharge_order
|
from cai_recharge_order
|
||||||
where pay_status in (1,10)
|
where pay_status in (1,10)
|
||||||
and pay_time between #{startTime} and #{endTime}
|
and pay_time between #{startTime} and #{endTime}
|
||||||
|
|||||||
Reference in New Issue
Block a user