This commit is contained in:
张良(004796)
2024-01-19 16:55:36 +08:00
parent edbae82e7d
commit a98d191bb4
17 changed files with 189 additions and 244 deletions

View File

@@ -5,14 +5,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountChangeLog; import com.ruoyi.cai.domain.AccountChangeLog;
import com.ruoyi.cai.dto.admin.CaiDictVo; import com.ruoyi.cai.dto.admin.CaiDictVo;
import com.ruoyi.cai.enums.AccountChangeEnum; import com.ruoyi.cai.enums.account.AccountCateEnum;
import com.ruoyi.cai.service.AccountChangeLogService; import com.ruoyi.cai.service.AccountChangeLogService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
@@ -43,10 +42,10 @@ public class AccountChangeLogController extends BaseController {
@GetMapping("/listChangeType") @GetMapping("/listChangeType")
public R<List<CaiDictVo>> listChangeType(){ public R<List<CaiDictVo>> listChangeType(){
List<CaiDictVo> res = Arrays.stream(AccountChangeEnum.values()).map(i -> { List<CaiDictVo> res = Arrays.stream(AccountCateEnum.values()).map(i -> {
CaiDictVo vo = new CaiDictVo(); CaiDictVo vo = new CaiDictVo();
vo.setValue(i.getCode() + ""); vo.setValue(i.getCode() + "");
vo.setLabel(i.getAdminName()); vo.setLabel(i.getText());
return vo; return vo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return R.ok(res); return R.ok(res);

View File

@@ -27,13 +27,14 @@ public class ConsumeLog implements Serializable {
@TableId(value = "id",type = IdType.AUTO) @TableId(value = "id",type = IdType.AUTO)
private Long id; private Long id;
/** /**
* 类型 1-充值 2-礼物 3-守护 4-通话 * @see com.ruoyi.cai.enums.ConsumeLogType
*/ */
private Integer type; private Integer type;
/** /**
* 业务状态码 * 业务状态码
*/ */
@Deprecated
private String businessEnum; private String businessEnum;
/** /**
* 跟踪ID * 跟踪ID

View File

@@ -11,7 +11,7 @@ public class AddRechargeOrderAdminDto {
private String usercode; private String usercode;
/** /**
* 1-充值余额 2-充值收益 * 1-余额 2-收益
*/ */
private Integer rechargeType; private Integer rechargeType;

View File

@@ -1,51 +0,0 @@
package com.ruoyi.cai.enums;
import lombok.Getter;
@Getter
public enum AccountBusinessEnum {
/**
* 提现
*/
// WITHDRAW(AccountChangeEnum.WITHDRAW,null,null,null),
/**
* 守护
*/
GUARD(AccountChangeEnum.USER_GUARD,AccountChangeEnum.ANCHOR_GUARD,AccountChangeEnum.ONE_GUARD,AccountChangeEnum.UNION_GUARD),
/**
* 赠送礼物
*/
GIFT(AccountChangeEnum.USER_GIFT,AccountChangeEnum.ANCHOR_GIFT,AccountChangeEnum.ONE_GIFT,AccountChangeEnum.UNION_GIFT),
/**
* 视频
*/
VIDEO(AccountChangeEnum.USER_VIDEO,AccountChangeEnum.ANCHOR_VIDEO,AccountChangeEnum.ONE_VIDEO,AccountChangeEnum.UNION_VIDEO),
/**
* 充值
*/
RECHARGE(AccountChangeEnum.USER_RECHARGE,null,AccountChangeEnum.ONE_RECHARGE,null),
;
private final AccountChangeEnum sourceEnum;
private final AccountChangeEnum targetEnum;
private final AccountChangeEnum oneEnum;
private final AccountChangeEnum unionEnum;
AccountBusinessEnum(AccountChangeEnum sourceEnum, AccountChangeEnum targetEnum, AccountChangeEnum oneEnum, AccountChangeEnum unionEnum) {
this.sourceEnum = sourceEnum;
this.targetEnum = targetEnum;
this.oneEnum = oneEnum;
this.unionEnum = unionEnum;
}
public static AccountBusinessEnum getByName(String name){
AccountBusinessEnum[] values = AccountBusinessEnum.values();
for (AccountBusinessEnum value : values) {
if(value.name().equals(name)){
return value;
}
}
return null;
}
}

View File

@@ -1,57 +0,0 @@
package com.ruoyi.cai.enums;
import lombok.Getter;
@Getter
public enum AccountChangeEnum {
// 用户端
USER_RECHARGE(101,"充值","购买紫贝","RECHARGE",""),
// A2(102,"注册奖励","增加充值的紫贝"),
// A3(103,"首充奖励","增加充值的紫贝"),
USER_GIFT(104,"送出礼物","送出礼物","GIFT",""),
USER_GUARD(105,"送出守护","送出守护","GUARD",""),
USER_VIDEO(106,"视频支出","视频支出","VIDEO",""),
USER_IM(107,"聊天支出","聊天支出","IM",""),
WITHDRAW(108,"提现","提现","WITHDRAW",""),
WITHDRAW_ROLLBACK(109,"提现失败","提现失败","WITHDRAW",""),
// 主播端
ANCHOR_GIFT(201,"收到礼物","收到礼物","GIFT",""),
ANCHOR_GUARD(202,"收到守护","收到守护","GUARD",""),
ANCHOR_VIDEO(203,"视频收入","视频收入","VIDEO",""),
ANCHOR_IM(204,"聊天收入","视频收入","IM",""),
// 分销
ONE_RECHARGE(301,"充值分成","邀请奖励","RECHARGE",""),
ONE_GIFT(302,"礼物分成","邀请奖励","GIFT",""),
ONE_GUARD(303,"守护分成","邀请奖励","GUARD",""),
ONE_VIDEO(304,"视频分成","邀请奖励","VIDEO",""),
// 工会
UNION_GIFT(401,"礼物工会分成","工会提成","GIFT",""),
UNION_GUARD(402,"守护工会分成","工会提成","GUARD",""),
UNION_VIDEO(403,"视频工会分成","工会提成","VIDEO",""),
// 系统
SYSTEM_COIN_INCS(9001,"后台新增余额","系统调账","RECHARGE","后台人工调增余额"),
SYSTEM_COIN_DECR(9002,"后台减少余额","系统调账","RECHARGE","后台人工调减余额"),
SYSTEM_INCOME_COIN_INCS(9003,"后台新增收益","系统调账","RECHARGE","后台人工调增收益"),
SYSTEM_INCOME_COIN_DECR(9004,"后台减小收益","系统调账","RECHARGE","后台人工调减收益"),
;
private final Integer code;
private final String adminName;
private final String appName;
private final String traceIdLink;
private final String desc;
AccountChangeEnum(Integer code, String adminName, String appName, String traceIdLink, String desc) {
this.code = code;
this.adminName = adminName;
this.appName = appName;
this.traceIdLink = traceIdLink;
this.desc = desc;
}
}

View File

@@ -1,7 +1,8 @@
package com.ruoyi.cai.enums; package com.ruoyi.cai.enums;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.enums.account.AccountTypeEnum;
import lombok.Getter; import lombok.Getter;
import org.springframework.stereotype.Component;
/** /**
@@ -22,4 +23,76 @@ public enum ConsumeLogType {
ConsumeLogType(Integer code) { ConsumeLogType(Integer code) {
this.code = code; this.code = code;
} }
public static ConsumeLogType getByCode(Integer code){
ConsumeLogType[] values = ConsumeLogType.values();
for (ConsumeLogType value : values) {
if(value.getCode().equals(code)){
return value;
}
}
return null;
}
public static AccountChangeCodeEnum getTargetChange(ConsumeLogType type){
if(type == RECHARGE){ // 充值
return AccountChangeCodeEnum.RECHARGE;
}else if(type == GIFT){
return AccountChangeCodeEnum.GIFT_INCOME;
}else if(type == GUARD){
return AccountChangeCodeEnum.GUARD_INCOME;
}else if(type == VIDEO){
return AccountChangeCodeEnum.VIDEO_INCOME;
}
return null;
}
public static AccountChangeCodeEnum getSourceChange(ConsumeLogType type, AccountTypeEnum typeEnum){
if(type == GIFT){
if(typeEnum == AccountTypeEnum.COIN){
return AccountChangeCodeEnum.GIFT_COIN_OUT;
}else{
return AccountChangeCodeEnum.GIFT_INCOME_COIN_OUT;
}
}else if(type == GUARD){
if(typeEnum == AccountTypeEnum.COIN){
return AccountChangeCodeEnum.GUARD_COIN_OUT;
}else{
return AccountChangeCodeEnum.GUARD_INCOME_COIN_OUT;
}
}else if(type == VIDEO){
if(typeEnum == AccountTypeEnum.COIN){
return AccountChangeCodeEnum.VIDEO_COIN_OUT;
}else{
return AccountChangeCodeEnum.VIDEO_INCOME_COIN_OUT;
}
}
return null;
}
public static AccountChangeCodeEnum getOneInviteChange(ConsumeLogType type){
if(type == GIFT){
return AccountChangeCodeEnum.GIFT_INVITE;
}else if(type == GUARD){
return AccountChangeCodeEnum.GUARD_INVITE;
}else if(type == VIDEO){
return AccountChangeCodeEnum.VIDEO_INVITE;
}else if(type == RECHARGE){ // 充值
return AccountChangeCodeEnum.RECHARGE_INVITE;
}
return null;
}
public static AccountChangeCodeEnum getUnionChange(ConsumeLogType type){
if(type == GIFT){
return AccountChangeCodeEnum.UNION_INVITE;
}else if(type == GUARD){
return AccountChangeCodeEnum.UNION_INVITE;
}else if(type == VIDEO){
return AccountChangeCodeEnum.UNION_INVITE;
}
return null;
}
} }

View File

@@ -5,41 +5,41 @@ import lombok.Getter;
@Getter @Getter
public enum AccountChangeCodeEnum { public enum AccountChangeCodeEnum {
RECHARGE(101,AccountCateEnum.RECHARGE,"余额充值",AccountTypeEnum.COIN), RECHARGE(101,AccountCateEnum.RECHARGE,"余额充值",AccountTypeEnum.COIN,""),
WITHDRAW(201,AccountCateEnum.WITHDRAW,"提现",AccountTypeEnum.INCOME_COIN), WITHDRAW(201,AccountCateEnum.WITHDRAW,"提现",AccountTypeEnum.INCOME_COIN,""),
WITHDRAW_FAIL(202,AccountCateEnum.WITHDRAW,"提现失败",AccountTypeEnum.INCOME_COIN), WITHDRAW_FAIL(202,AccountCateEnum.WITHDRAW,"提现失败",AccountTypeEnum.INCOME_COIN,""),
VIDEO_INCOME(301,AccountCateEnum.VIDEO,"视频收入",AccountTypeEnum.INCOME_COIN), VIDEO_INCOME(301,AccountCateEnum.VIDEO,"视频收入",AccountTypeEnum.INCOME_COIN,""),
VIDEO_COIN_OUT(302,AccountCateEnum.VIDEO,"视频支出",AccountTypeEnum.COIN), VIDEO_COIN_OUT(302,AccountCateEnum.VIDEO,"视频支出",AccountTypeEnum.COIN,""),
VIDEO_INCOME_COIN_OUT(303,AccountCateEnum.VIDEO,"视频支出",AccountTypeEnum.INCOME_COIN), VIDEO_INCOME_COIN_OUT(303,AccountCateEnum.VIDEO,"视频支出",AccountTypeEnum.INCOME_COIN,""),
GIFT_INCOME(401,AccountCateEnum.GIFT,"收到礼物",AccountTypeEnum.INCOME_COIN), GIFT_INCOME(401,AccountCateEnum.GIFT,"收到礼物",AccountTypeEnum.INCOME_COIN,""),
GIFT_COIN_OUT(402,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.COIN), GIFT_COIN_OUT(402,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.COIN,""),
GIFT_INCOME_COIN_OUT(403,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.INCOME_COIN), GIFT_INCOME_COIN_OUT(403,AccountCateEnum.GIFT,"送出礼物",AccountTypeEnum.INCOME_COIN,""),
FAST_WITHDRAW(501,AccountCateEnum.SYSTEM,"首冲奖励",AccountTypeEnum.INCOME_COIN), FAST_WITHDRAW(501,AccountCateEnum.SYSTEM,"首冲奖励",AccountTypeEnum.INCOME_COIN,""),
WITHDRAW_INVITE(502,AccountCateEnum.SYSTEM,"邀请奖励(充值)",AccountTypeEnum.INCOME_COIN), RECHARGE_INVITE(502,AccountCateEnum.SYSTEM,"邀请奖励(充值)",AccountTypeEnum.INCOME_COIN,""),
VIDEO_INVITE(503,AccountCateEnum.SYSTEM,"邀请奖励(视频)",AccountTypeEnum.INCOME_COIN), VIDEO_INVITE(503,AccountCateEnum.SYSTEM,"邀请奖励(视频)",AccountTypeEnum.INCOME_COIN,""),
GIFT_INVITE(504,AccountCateEnum.SYSTEM,"邀请奖励(礼物)",AccountTypeEnum.INCOME_COIN), GIFT_INVITE(504,AccountCateEnum.SYSTEM,"邀请奖励(礼物)",AccountTypeEnum.INCOME_COIN,""),
GUARD_INVITE(505,AccountCateEnum.SYSTEM,"邀请奖励(守护)",AccountTypeEnum.INCOME_COIN), GUARD_INVITE(505,AccountCateEnum.SYSTEM,"邀请奖励(守护)",AccountTypeEnum.INCOME_COIN,""),
REGISTER_INVITE(506,AccountCateEnum.SYSTEM,"注册奖励",AccountTypeEnum.INCOME_COIN), REGISTER_INVITE(506,AccountCateEnum.SYSTEM,"注册奖励",AccountTypeEnum.INCOME_COIN,""),
RAKE_INVITE(507,AccountCateEnum.SYSTEM,"排行榜奖励",AccountTypeEnum.INCOME_COIN), RAKE_INVITE(507,AccountCateEnum.SYSTEM,"排行榜奖励",AccountTypeEnum.INCOME_COIN,""),
IM_INCOME(701,AccountCateEnum.IM,"收到的私信",AccountTypeEnum.INCOME_COIN), IM_INCOME(701,AccountCateEnum.IM,"收到的私信",AccountTypeEnum.INCOME_COIN,""),
IM_COIN_OUT(702,AccountCateEnum.IM,"送出私信",AccountTypeEnum.COIN), IM_COIN_OUT(702,AccountCateEnum.IM,"送出私信",AccountTypeEnum.COIN,""),
IM_INCOME_COIN_OUT(703,AccountCateEnum.IM,"送出私信",AccountTypeEnum.INCOME_COIN), IM_INCOME_COIN_OUT(703,AccountCateEnum.IM,"送出私信",AccountTypeEnum.INCOME_COIN,""),
SYSTEM_COIN_INCS(801,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.COIN), SYSTEM_COIN_INCS(801,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.COIN,""),
SYSTEM_COIN_DECR(802,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.COIN), SYSTEM_COIN_DECR(802,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.COIN,""),
SYSTEM_INCOME_COIN_INCS(803,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.INCOME_COIN), SYSTEM_INCOME_COIN_INCS(803,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.INCOME_COIN,""),
SYSTEM_INCOME_COIN_DECR(804,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.INCOME_COIN), SYSTEM_INCOME_COIN_DECR(804,AccountCateEnum.SYSTEM_TRANS,"系统调账",AccountTypeEnum.INCOME_COIN,""),
GUARD_INCOME(901,AccountCateEnum.GUARD,"收到守护",AccountTypeEnum.INCOME_COIN), GUARD_INCOME(901,AccountCateEnum.GUARD,"收到守护",AccountTypeEnum.INCOME_COIN,""),
GUARD_COIN_OUT(902,AccountCateEnum.GUARD,"送出守护",AccountTypeEnum.COIN), GUARD_COIN_OUT(902,AccountCateEnum.GUARD,"送出守护",AccountTypeEnum.COIN,""),
GUARD_INCOME_COIN_OUT(903,AccountCateEnum.GUARD,"送出守护",AccountTypeEnum.INCOME_COIN), GUARD_INCOME_COIN_OUT(903,AccountCateEnum.GUARD,"送出守护",AccountTypeEnum.INCOME_COIN,""),
UNION_INVITE(1001,AccountCateEnum.UNION,"工会分成",AccountTypeEnum.INCOME_COIN), UNION_INVITE(1001,AccountCateEnum.UNION,"工会分成",AccountTypeEnum.INCOME_COIN,""),
; ;
@@ -51,11 +51,13 @@ public enum AccountChangeCodeEnum {
* 2-收益 * 2-收益
*/ */
private final AccountTypeEnum accountType; private final AccountTypeEnum accountType;
private final String desc;
AccountChangeCodeEnum(Integer code, AccountCateEnum cate, String text, AccountTypeEnum accountType) { AccountChangeCodeEnum(Integer code, AccountCateEnum cate, String text, AccountTypeEnum accountType, String desc) {
this.code = code; this.code = code;
this.cate = cate; this.cate = cate;
this.text = text; this.text = text;
this.accountType = accountType; this.accountType = accountType;
this.desc = desc;
} }
} }

View File

@@ -13,4 +13,14 @@ public enum AccountTypeEnum {
AccountTypeEnum(Integer code) { AccountTypeEnum(Integer code) {
this.code = code; this.code = code;
} }
public static AccountTypeEnum getByCode(Integer code) {
AccountTypeEnum[] values = AccountTypeEnum.values();
for (AccountTypeEnum value : values) {
if(value.getCode().equals(code)){
return value;
}
}
return null;
}
} }

View File

@@ -1,29 +0,0 @@
package com.ruoyi.cai.pay;
import lombok.Getter;
@Getter
public enum RechargeTypeEnum {
COIN(1,"余额调整"),
COIN_INCOME(2,"收益调整"),
;
private final Integer code;
private final String name;
RechargeTypeEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
public static RechargeTypeEnum getByCode(Integer code){
RechargeTypeEnum[] values = RechargeTypeEnum.values();
for (RechargeTypeEnum value : values) {
if(value.getCode().equals(code)){
return value;
}
}
return null;
}
}

View File

@@ -2,10 +2,7 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.AccountChangeLog; import com.ruoyi.cai.domain.AccountChangeLog;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.enums.AccountBusinessEnum;
import com.ruoyi.cai.enums.AccountChangeEnum;
import com.ruoyi.cai.pay.RechargeTypeEnum;
/** /**
* 账户明细Service接口 * 账户明细Service接口
@@ -15,9 +12,9 @@ import com.ruoyi.cai.pay.RechargeTypeEnum;
*/ */
public interface AccountChangeLogService extends IService<AccountChangeLog> { public interface AccountChangeLogService extends IService<AccountChangeLog> {
AccountChangeLog saveLogNoAdmin(Long userId, String usercode, RechargeTypeEnum rechargeTypeEnum, AccountChangeEnum accountChangeEnum, Long price,Long traceId); AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId);
AccountChangeLog saveLog(Long userId,String usercode, RechargeTypeEnum rechargeTypeEnum, AccountChangeEnum accountChangeEnum, Long price, Long traceId,Integer admin); AccountChangeLog saveLog(Long userId,String usercode, AccountChangeCodeEnum change, Long price, Long traceId,Integer admin);
AccountChangeLog saveLogAdmin(Long userId,String usercode, RechargeTypeEnum rechargeTypeEnum, AccountChangeEnum accountChangeEnum, Long price,Long traceId); AccountChangeLog saveLogAdmin(Long userId,String usercode, AccountChangeCodeEnum change, Long price,Long traceId);
} }

View File

@@ -8,8 +8,8 @@ import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo; import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
import com.ruoyi.cai.dto.video.VideoSettleResp; import com.ruoyi.cai.dto.video.VideoSettleResp;
import com.ruoyi.cai.dto.video.WithholdingFeeUserResp; import com.ruoyi.cai.dto.video.WithholdingFeeUserResp;
import com.ruoyi.cai.enums.AccountBusinessEnum; import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.enums.AccountChangeEnum; import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.ws.bean.Room; import com.ruoyi.cai.ws.bean.Room;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -24,20 +24,19 @@ public interface AccountService extends IService<Account> {
Account getByUserId(Long userId); Account getByUserId(Long userId);
ConsumeLog decr(ConsumeLog log, AccountBusinessEnum businessEnum); ConsumeLog decr(ConsumeLog log, ConsumeLogType consumeLogType);
Long imDesc(User fromUser, User toUser, Long price); Long imDesc(User fromUser, User toUser, Long price);
void withdraw(Long userId, Long incomeCoin, Long traceId); void withdraw(Long userId, Long incomeCoin, Long traceId);
@Transactional(rollbackFor = Exception.class)
void withdrawFail(Long userId, Long incomeCoin, Long traceId); void withdrawFail(Long userId, Long incomeCoin, Long traceId);
void recharge(ConsumeLog consumeLog); void recharge(ConsumeLog consumeLog);
Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo); Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo);
void distribution(Long userId, Long amount, AccountChangeEnum oneEnum,Long traceId); void distribution(Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum, Long traceId);
WithholdingFeeUserResp withholdingFeeUser(Long userId, Long price); WithholdingFeeUserResp withholdingFeeUser(Long userId, Long price);

View File

@@ -2,9 +2,8 @@ package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.AccountChangeLog; import com.ruoyi.cai.domain.AccountChangeLog;
import com.ruoyi.cai.enums.AccountChangeEnum; import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.mapper.AccountChangeLogMapper; import com.ruoyi.cai.mapper.AccountChangeLogMapper;
import com.ruoyi.cai.pay.RechargeTypeEnum;
import com.ruoyi.cai.service.AccountChangeLogService; import com.ruoyi.cai.service.AccountChangeLogService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -19,23 +18,22 @@ public class AccountChangeLogServiceImpl extends ServiceImpl<AccountChangeLogMap
@Override @Override
public AccountChangeLog saveLogNoAdmin(Long userId, String usercode, RechargeTypeEnum rechargeTypeEnum, AccountChangeEnum accountChangeEnum, Long price,Long traceId){ public AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId){
return this.saveLog(userId,usercode,rechargeTypeEnum,accountChangeEnum,price,traceId,0); return this.saveLog(userId,usercode,change,price,traceId,0);
} }
@Override @Override
public AccountChangeLog saveLog(Long userId,String usercode, RechargeTypeEnum rechargeTypeEnum, public AccountChangeLog saveLog(Long userId,String usercode, AccountChangeCodeEnum change, Long price, Long traceId,Integer admin){
AccountChangeEnum accountChangeEnum, Long price, Long traceId,Integer admin){
AccountChangeLog log = new AccountChangeLog(); AccountChangeLog log = new AccountChangeLog();
log.setUserId(userId); log.setUserId(userId);
log.setUsercode(usercode); log.setUsercode(usercode);
log.setTraceId(traceId); log.setTraceId(traceId);
log.setAccountType(rechargeTypeEnum.getCode()); log.setAccountType(change.getAccountType().getCode());
log.setCateId(accountChangeEnum.getCode()); log.setCateId(change.getCate().getCode());
log.setCateAppName(accountChangeEnum.getAppName()); log.setCateAppName(change.getText());
log.setCateAdminName(accountChangeEnum.getAdminName()); log.setCateAdminName(change.getText());
log.setTraceLinkType(accountChangeEnum.getTraceIdLink()); log.setTraceLinkType(change.getCate().name());
log.setRemark(accountChangeEnum.getDesc()); log.setRemark(change.getDesc());
log.setChangeValue(price); log.setChangeValue(price);
log.setIsAdmin(admin); log.setIsAdmin(admin);
this.save(log); this.save(log);
@@ -43,8 +41,8 @@ public class AccountChangeLogServiceImpl extends ServiceImpl<AccountChangeLogMap
} }
@Override @Override
public AccountChangeLog saveLogAdmin(Long userId, String usercode, RechargeTypeEnum rechargeTypeEnum, AccountChangeEnum accountChangeEnum, Long price,Long traceId) { public AccountChangeLog saveLogAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price,Long traceId) {
return this.saveLog(userId,usercode,rechargeTypeEnum,accountChangeEnum,price,traceId,1); return this.saveLog(userId,usercode,change,price,traceId,1);
} }

View File

@@ -6,18 +6,20 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.config.CaiProperties; import com.ruoyi.cai.config.CaiProperties;
import com.ruoyi.cai.domain.*; import com.ruoyi.cai.domain.Account;
import com.ruoyi.cai.domain.ConsumeLog;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCall;
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo; import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
import com.ruoyi.cai.dto.video.VideoSettleResp; import com.ruoyi.cai.dto.video.VideoSettleResp;
import com.ruoyi.cai.dto.video.WithholdingFeeUserResp; import com.ruoyi.cai.dto.video.WithholdingFeeUserResp;
import com.ruoyi.cai.enums.AccountBusinessEnum;
import com.ruoyi.cai.enums.AccountChangeEnum;
import com.ruoyi.cai.enums.ConsumeLogType; import com.ruoyi.cai.enums.ConsumeLogType;
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.AccountTypeEnum;
import com.ruoyi.cai.manager.IdManager; import com.ruoyi.cai.manager.IdManager;
import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.AccountMapper; import com.ruoyi.cai.mapper.AccountMapper;
import com.ruoyi.cai.pay.RechargeTypeEnum;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
import com.ruoyi.cai.util.NumCaUtil; import com.ruoyi.cai.util.NumCaUtil;
import com.ruoyi.cai.ws.bean.Room; import com.ruoyi.cai.ws.bean.Room;
@@ -63,7 +65,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ConsumeLog decr(ConsumeLog consumeLog, AccountBusinessEnum businessEnum) { public ConsumeLog decr(ConsumeLog consumeLog, ConsumeLogType consumeLogType) {
log.info("开始扣费 consumeLog={}", JSON.toJSONString(consumeLog)); log.info("开始扣费 consumeLog={}", JSON.toJSONString(consumeLog));
Long userId = consumeLog.getSourceUserId(); Long userId = consumeLog.getSourceUserId();
Long amount = consumeLog.getAmount(); Long amount = consumeLog.getAmount();
@@ -102,14 +104,17 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
} }
// 记录消费方的流水 // 记录消费方的流水
if(coin != 0){ if(coin != 0){
accountChangeLogService.saveLogNoAdmin(userId,consumeLog.getSourceUsercode(), RechargeTypeEnum.COIN,businessEnum.getSourceEnum(),coin,consumeLog.getTraceId()); AccountChangeCodeEnum change = ConsumeLogType.getSourceChange(consumeLogType, AccountTypeEnum.COIN);
accountChangeLogService.saveLogNoAdmin(userId,consumeLog.getSourceUsercode(), change, coin,consumeLog.getTraceId());
} }
if(incomeCoin != 0){ if(incomeCoin != 0){
accountChangeLogService.saveLogNoAdmin(userId,consumeLog.getSourceUsercode(), RechargeTypeEnum.COIN_INCOME,businessEnum.getSourceEnum(),incomeCoin,consumeLog.getTraceId()); AccountChangeCodeEnum change = ConsumeLogType.getSourceChange(consumeLogType, AccountTypeEnum.INCOME_COIN);
accountChangeLogService.saveLogNoAdmin(userId,consumeLog.getSourceUsercode(), change,incomeCoin,consumeLog.getTraceId());
} }
// 记录接收方的流水 // 记录接收方的流水
if(targetUserId != null){ if(targetUserId != null){
accountChangeLogService.saveLogNoAdmin(targetUserId,consumeLog.getTargetUsercode(), RechargeTypeEnum.COIN_INCOME,businessEnum.getTargetEnum(),consumeLog.getAnchorAmount(),consumeLog.getTraceId()); AccountChangeCodeEnum change = ConsumeLogType.getTargetChange(consumeLogType);
accountChangeLogService.saveLogNoAdmin(targetUserId,consumeLog.getTargetUsercode(), change,consumeLog.getAnchorAmount(),consumeLog.getTraceId());
} }
// 获取分销的比例和用户 // 获取分销的比例和用户
consumeLogService.calculateInitFenxiao(consumeLog); consumeLogService.calculateInitFenxiao(consumeLog);
@@ -153,14 +158,14 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
Long tractId = IdManager.nextId(); Long tractId = IdManager.nextId();
// 记录消费方的流水 // 记录消费方的流水
if(coin != 0){ if(coin != 0){
accountChangeLogService.saveLogNoAdmin(fromUserId,fromUser.getUsercode(), RechargeTypeEnum.COIN, AccountChangeEnum.USER_IM, coin, tractId); accountChangeLogService.saveLogNoAdmin(fromUserId,fromUser.getUsercode(), AccountChangeCodeEnum.IM_COIN_OUT, coin, tractId);
} }
if(incomeCoin != 0){ if(incomeCoin != 0){
accountChangeLogService.saveLogNoAdmin(fromUserId,fromUser.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountChangeEnum.USER_IM,incomeCoin,tractId); accountChangeLogService.saveLogNoAdmin(fromUserId,fromUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME_COIN_OUT,incomeCoin,tractId);
} }
// 记录接收方的流水 // 记录接收方的流水
if(anchorAmount != 0){ if(anchorAmount != 0){
accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountChangeEnum.ANCHOR_IM,anchorAmount,tractId); accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME,anchorAmount,tractId);
} }
return tractId; return tractId;
} }
@@ -180,7 +185,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
if(!incs){ if(!incs){
throw new ServiceException(""+incomeCoin+caiProperties.getCoinName()+"才可提现"); throw new ServiceException(""+incomeCoin+caiProperties.getCoinName()+"才可提现");
} }
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountChangeEnum.WITHDRAW,incomeCoin,traceId); accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.WITHDRAW,incomeCoin,traceId);
} }
@Override @Override
@@ -192,7 +197,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
throw new ServiceException("无效账号"); throw new ServiceException("无效账号");
} }
baseMapper.incsIncomeCoin(userId, incomeCoin); baseMapper.incsIncomeCoin(userId, incomeCoin);
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountChangeEnum.WITHDRAW_ROLLBACK,incomeCoin,traceId); accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.WITHDRAW_FAIL,incomeCoin,traceId);
} }
@Override @Override
@@ -207,7 +212,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
throw new ServiceException("无效账号"); throw new ServiceException("无效账号");
} }
baseMapper.incsCoin(userId, amount); baseMapper.incsCoin(userId, amount);
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), RechargeTypeEnum.COIN,AccountBusinessEnum.RECHARGE.getSourceEnum(),amount,consumeLog.getTraceId()); accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.RECHARGE,amount,consumeLog.getTraceId());
// 获取分销的比例和用户 // 获取分销的比例和用户
consumeLogService.calculateInitFenxiao(consumeLog); consumeLogService.calculateInitFenxiao(consumeLog);
consumeLogService.save(consumeLog); consumeLogService.save(consumeLog);
@@ -223,7 +228,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
* 分销 * 分销
*/ */
@Override @Override
public void distribution(Long userId, Long amount, AccountChangeEnum accountChangeEnum,Long traceId) { public void distribution(Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum,Long traceId) {
User user = userService.getById(userId); User user = userService.getById(userId);
Account account = this.getByUserId(userId); Account account = this.getByUserId(userId);
if(account == null || user == null){ if(account == null || user == null){
@@ -235,7 +240,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
return; return;
} }
baseMapper.incsCoin(userId, amount); baseMapper.incsCoin(userId, amount);
accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), RechargeTypeEnum.COIN_INCOME,accountChangeEnum,amount,traceId); accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,traceId);
} }
/** /**
@@ -346,19 +351,18 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
Long tractId = IdManager.nextId(); Long tractId = IdManager.nextId();
// 记录消费方的流水 // 记录消费方的流水
if(payCoin != 0){ if(payCoin != 0){
accountChangeLogService.saveLogNoAdmin(fromUser.getId(),fromUser.getUsercode(), RechargeTypeEnum.COIN, AccountChangeEnum.USER_VIDEO, payCoin, tractId); accountChangeLogService.saveLogNoAdmin(fromUser.getId(),fromUser.getUsercode(), AccountChangeCodeEnum.VIDEO_COIN_OUT, payCoin, tractId);
} }
if(payIncome != 0){ if(payIncome != 0){
accountChangeLogService.saveLogNoAdmin(fromUser.getId(),fromUser.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountChangeEnum.USER_VIDEO,payIncome,tractId); accountChangeLogService.saveLogNoAdmin(fromUser.getId(),fromUser.getUsercode(), AccountChangeCodeEnum.VIDEO_INCOME_COIN_OUT,payIncome,tractId);
} }
// 记录接收方的流水 // 记录接收方的流水
if(anchorAmount != 0){ if(anchorAmount != 0){
accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountChangeEnum.ANCHOR_VIDEO,anchorAmount,tractId); accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), AccountChangeCodeEnum.VIDEO_INCOME,anchorAmount,tractId);
} }
ConsumeLog consumeLog = new ConsumeLog(); ConsumeLog consumeLog = new ConsumeLog();
consumeLog.init(fromUser,toUser); consumeLog.init(fromUser,toUser);
consumeLog.setType(ConsumeLogType.VIDEO.getCode()); consumeLog.setType(ConsumeLogType.VIDEO.getCode());
consumeLog.setBusinessEnum(AccountBusinessEnum.VIDEO.name());
consumeLog.setTraceId(tractId); consumeLog.setTraceId(tractId);
consumeLog.setTargetRate(roomData.getVideoDivide()); consumeLog.setTargetRate(roomData.getVideoDivide());
consumeLog.setAmount(amountReal); consumeLog.setAmount(amountReal);

View File

@@ -1,13 +1,12 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.*; import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.enums.AccountBusinessEnum;
import com.ruoyi.cai.enums.ConsumeLogStatus; import com.ruoyi.cai.enums.ConsumeLogStatus;
import com.ruoyi.cai.enums.ConsumeLogType; import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.mapper.ConsumeLogMapper; import com.ruoyi.cai.mapper.ConsumeLogMapper;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
import com.ruoyi.cai.util.NumCaUtil; import com.ruoyi.cai.util.NumCaUtil;
@@ -85,8 +84,8 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
log.error("无需分销 consumer={}", JSON.toJSONString(consumer)); log.error("无需分销 consumer={}", JSON.toJSONString(consumer));
return; return;
} }
AccountBusinessEnum accountBusinessEnum = AccountBusinessEnum.getByName(consumer.getBusinessEnum()); ConsumeLogType code = ConsumeLogType.getByCode(consumer.getType());
if(accountBusinessEnum == null){ if(code == null){
log.error("分销失败 BusinessEnum状态错误! consumerLog={}",JSON.toJSONString(consumer)); log.error("分销失败 BusinessEnum状态错误! consumerLog={}",JSON.toJSONString(consumer));
throw new ServiceException("分销失败!请联系管理员排查问题!"); throw new ServiceException("分销失败!请联系管理员排查问题!");
} }
@@ -94,12 +93,14 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
// 计算一级 // 计算一级
if(consumer.getOneUserId() != null && BooleanUtils.isTrue(consumer.getOneJoin()) if(consumer.getOneUserId() != null && BooleanUtils.isTrue(consumer.getOneJoin())
&& consumer.getOneAmount() > 0){ && consumer.getOneAmount() > 0){
accountService.distribution(consumer.getOneUserId(),consumer.getOneAmount(),accountBusinessEnum.getOneEnum(),consumer.getTraceId()); AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getOneInviteChange(code);
accountService.distribution(consumer.getOneUserId(),consumer.getOneAmount(),changeCodeEnum,consumer.getTraceId());
} }
// 计算工会 // 计算工会
if(consumer.getUnionUserId() != null && BooleanUtils.isTrue(consumer.getUnionJoin()) if(consumer.getUnionUserId() != null && BooleanUtils.isTrue(consumer.getUnionJoin())
&& consumer.getUnionAmount() > 0){ && consumer.getUnionAmount() > 0){
accountService.distribution(consumer.getUnionUserId(),consumer.getUnionAmount(),accountBusinessEnum.getUnionEnum(),consumer.getTraceId()); AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getUnionChange(code);
accountService.distribution(consumer.getUnionUserId(),consumer.getUnionAmount(),changeCodeEnum,consumer.getTraceId());
} }
}catch (Exception e){ }catch (Exception e){
log.error("分销发生未知错误,请联系开发检查!",e); log.error("分销发生未知错误,请联系开发检查!",e);

View File

@@ -6,11 +6,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.*; import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.ConsumeResp; import com.ruoyi.cai.dto.ConsumeResp;
import com.ruoyi.cai.dto.app.dto.GuardNum; import com.ruoyi.cai.dto.app.dto.GuardNum;
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
import com.ruoyi.cai.dto.app.dto.GuardTotalDTO; import com.ruoyi.cai.dto.app.dto.GuardTotalDTO;
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
import com.ruoyi.cai.dto.app.vo.index.GuardIndexVo; import com.ruoyi.cai.dto.app.vo.index.GuardIndexVo;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo; import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.cai.enums.AccountBusinessEnum;
import com.ruoyi.cai.enums.ConsumeLogType; import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.IdManager; import com.ruoyi.cai.manager.IdManager;
@@ -111,10 +110,9 @@ public class GuardTotalServiceImpl extends ServiceImpl<GuardTotalMapper, GuardTo
consumeLog.init(fromUser,toUser); consumeLog.init(fromUser,toUser);
consumeLog.setTraceId(tractId); consumeLog.setTraceId(tractId);
consumeLog.setType(ConsumeLogType.GUARD.getCode()); consumeLog.setType(ConsumeLogType.GUARD.getCode());
consumeLog.setBusinessEnum(AccountBusinessEnum.GUARD.name());
consumeLog.setAmount(guardValue); consumeLog.setAmount(guardValue);
consumeLog.setTargetRate(anchor.getGuardRate()); consumeLog.setTargetRate(anchor.getGuardRate());
consumeLog = accountService.decr(consumeLog, AccountBusinessEnum.GUARD); consumeLog = accountService.decr(consumeLog, ConsumeLogType.GUARD);
resp.setConsumeLogId(consumeLog.getId()); resp.setConsumeLogId(consumeLog.getId());
GuardLog guardLog = new GuardLog(); GuardLog guardLog = new GuardLog();
guardLog.setFromUserId(fromUserId); guardLog.setFromUserId(fromUserId);

View File

@@ -9,13 +9,16 @@ import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
import com.ruoyi.cai.dto.AddRechargeOrderDto; import com.ruoyi.cai.dto.AddRechargeOrderDto;
import com.ruoyi.cai.dto.ConsumeResp; import com.ruoyi.cai.dto.ConsumeResp;
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo; import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
import com.ruoyi.cai.enums.AccountBusinessEnum;
import com.ruoyi.cai.enums.AccountChangeEnum;
import com.ruoyi.cai.enums.ConsumeLogType; import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.enums.account.AccountTypeEnum;
import com.ruoyi.cai.manager.IdManager; import com.ruoyi.cai.manager.IdManager;
import com.ruoyi.cai.mapper.AccountMapper; import com.ruoyi.cai.mapper.AccountMapper;
import com.ruoyi.cai.mapper.RechargeOrderMapper; import com.ruoyi.cai.mapper.RechargeOrderMapper;
import com.ruoyi.cai.pay.*; import com.ruoyi.cai.pay.OrderNoUtil;
import com.ruoyi.cai.pay.OrderTypeEnum;
import com.ruoyi.cai.pay.PayStatusEnum;
import com.ruoyi.cai.pay.PlatformTypeEnum;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
@@ -79,7 +82,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
order.setRechargeId(goods.getId()); order.setRechargeId(goods.getId());
order.setRechargeName(goods.getName()); order.setRechargeName(goods.getName());
order.setRechargeCoin(goods.getAmount()); order.setRechargeCoin(goods.getAmount());
order.setRechargeType(RechargeTypeEnum.COIN.getCode()); order.setRechargeType(AccountTypeEnum.COIN.getCode());
order.setPrice(goods.getPrice()); order.setPrice(goods.getPrice());
order.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.RECHARGE_ORDER_SUB)); order.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.RECHARGE_ORDER_SUB));
order.setPayStatus(PayStatusEnum.READY_PAY.getCode()); order.setPayStatus(PayStatusEnum.READY_PAY.getCode());
@@ -114,7 +117,6 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
consumeLog.init(user,null); consumeLog.init(user,null);
consumeLog.setTraceId(traceId); consumeLog.setTraceId(traceId);
consumeLog.setType(ConsumeLogType.RECHARGE.getCode()); consumeLog.setType(ConsumeLogType.RECHARGE.getCode());
consumeLog.setBusinessEnum(AccountBusinessEnum.RECHARGE.name());
consumeLog.setAmount(rechargeOrder.getRechargeCoin()); consumeLog.setAmount(rechargeOrder.getRechargeCoin());
accountService.recharge(consumeLog); accountService.recharge(consumeLog);
ConsumeResp resp = new ConsumeResp(); ConsumeResp resp = new ConsumeResp();
@@ -130,15 +132,15 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
if(user == null){ if(user == null){
throw new ServiceException("用户不存在"); throw new ServiceException("用户不存在");
} }
RechargeTypeEnum rechargeTypeEnum = RechargeTypeEnum.getByCode(dto.getRechargeType()); AccountTypeEnum accountTypeEnum = AccountTypeEnum.getByCode(dto.getRechargeType());
if(rechargeTypeEnum == null){ if(accountTypeEnum == null){
throw new ServiceException("参数错误"); throw new ServiceException("参数错误");
} }
Long userId = user.getId(); Long userId = user.getId();
Long traceId = IdManager.nextId(); Long traceId = IdManager.nextId();
RechargeOrder order = new RechargeOrder(); RechargeOrder order = new RechargeOrder();
order.setUserId(userId); order.setUserId(userId);
order.setRechargeName(rechargeTypeEnum.getName()); order.setRechargeName(accountTypeEnum == AccountTypeEnum.COIN ? "余额调整" : "收益调整");
order.setRechargeCoin(dto.getRechargeCoin()); order.setRechargeCoin(dto.getRechargeCoin());
order.setPrice(BigDecimal.ZERO); order.setPrice(BigDecimal.ZERO);
order.setRechargeType(dto.getRechargeType()); order.setRechargeType(dto.getRechargeType());
@@ -152,10 +154,10 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
order.setTraceId(traceId); order.setTraceId(traceId);
this.save(order); this.save(order);
Account account = accountService.getByUserId(userId); Account account = accountService.getByUserId(userId);
if(rechargeTypeEnum == RechargeTypeEnum.COIN){ // 余额调整 if(accountTypeEnum == AccountTypeEnum.COIN){ // 余额调整
if(dto.getRechargeCoin() > 0){ if(dto.getRechargeCoin() > 0){
accountMapper.incsCoin(userId,dto.getRechargeCoin()); accountMapper.incsCoin(userId,dto.getRechargeCoin());
accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(),RechargeTypeEnum.COIN, AccountChangeEnum.SYSTEM_COIN_INCS,dto.getRechargeCoin(),traceId); accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.SYSTEM_COIN_INCS ,dto.getRechargeCoin(),traceId);
}else{ }else{
if(account.getCoin() < -dto.getRechargeCoin()){ if(account.getCoin() < -dto.getRechargeCoin()){
throw new ServiceException("调整后余额为负数,无法调整"); throw new ServiceException("调整后余额为负数,无法调整");
@@ -164,12 +166,12 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
if(!l){ if(!l){
throw new ServiceException("调整后收益为负数,无法调整"); throw new ServiceException("调整后收益为负数,无法调整");
} }
accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(),RechargeTypeEnum.COIN, AccountChangeEnum.SYSTEM_COIN_DECR,dto.getRechargeCoin(),traceId); accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.SYSTEM_COIN_DECR,dto.getRechargeCoin(),traceId);
} }
}else{ }else{
if(dto.getRechargeCoin() > 0){ if(dto.getRechargeCoin() > 0){
accountMapper.incsIncomeCoin(userId,dto.getRechargeCoin()); accountMapper.incsIncomeCoin(userId,dto.getRechargeCoin());
accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(),RechargeTypeEnum.COIN_INCOME, AccountChangeEnum.SYSTEM_INCOME_COIN_INCS,dto.getRechargeCoin(),traceId); accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.SYSTEM_INCOME_COIN_INCS,dto.getRechargeCoin(),traceId);
}else{ }else{
if(account.getIncomeCoin() < -dto.getRechargeCoin()){ if(account.getIncomeCoin() < -dto.getRechargeCoin()){
throw new ServiceException("调整后收益为负数,无法调整"); throw new ServiceException("调整后收益为负数,无法调整");
@@ -178,7 +180,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
if(!l){ if(!l){
throw new ServiceException("调整后收益为负数,无法调整"); throw new ServiceException("调整后收益为负数,无法调整");
} }
accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(),RechargeTypeEnum.COIN_INCOME, AccountChangeEnum.SYSTEM_INCOME_COIN_DECR,dto.getRechargeCoin(),traceId); accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.SYSTEM_INCOME_COIN_DECR,dto.getRechargeCoin(),traceId);
} }
} }
return order; return order;

View File

@@ -5,7 +5,6 @@ import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.ConsumeResp; import com.ruoyi.cai.dto.ConsumeResp;
import com.ruoyi.cai.dto.app.query.GiveGiftRes; import com.ruoyi.cai.dto.app.query.GiveGiftRes;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo; import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import com.ruoyi.cai.enums.AccountBusinessEnum;
import com.ruoyi.cai.enums.ConsumeLogType; import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.manager.IdManager; import com.ruoyi.cai.manager.IdManager;
import com.ruoyi.cai.manager.LockManager; import com.ruoyi.cai.manager.LockManager;
@@ -76,10 +75,9 @@ public class UserGiftServiceImpl extends ServiceImpl<UserGiftMapper, UserGift> i
consumeLog.init(fromUser,toUser); consumeLog.init(fromUser,toUser);
consumeLog.setTraceId(traceId); consumeLog.setTraceId(traceId);
consumeLog.setType(ConsumeLogType.GIFT.getCode()); consumeLog.setType(ConsumeLogType.GIFT.getCode());
consumeLog.setBusinessEnum(AccountBusinessEnum.GIFT.name());
consumeLog.setAmount(giftAmount); consumeLog.setAmount(giftAmount);
consumeLog.setTargetRate(anchor.getGiftRate()); consumeLog.setTargetRate(anchor.getGiftRate());
consumeLog = accountService.decr(consumeLog, AccountBusinessEnum.GIFT); consumeLog = accountService.decr(consumeLog, ConsumeLogType.GIFT);
resp.setConsumeLogId(consumeLog.getId()); resp.setConsumeLogId(consumeLog.getId());
UserGift userGift = new UserGift(); UserGift userGift = new UserGift();
userGift.setType(query.getType()); userGift.setType(query.getType());