add 添加关联订单号

AiBalanceChangeRecord、AiRebateRecord、AiSampleAmountRecord 这三个类需要到对应的表添加关联订单号的字段
This commit is contained in:
chanbook 2026-01-22 17:33:48 +08:00
parent 6701b8f765
commit 497b3b9c80
9 changed files with 156 additions and 128 deletions

View File

@ -2,12 +2,9 @@ package com.ruoyi.api;
import com.ruoyi.ai.domain.AiSampleAmount;
import com.ruoyi.ai.domain.AiSampleAmountRecord;
import com.ruoyi.ai.domain.AiStatistics;
import com.ruoyi.ai.domain.enums.AiConfigEnum;
import com.ruoyi.ai.mapper.AiSampleAmountMapper;
import com.ruoyi.ai.service.EmailVerifyService;
import com.ruoyi.ai.service.IAiSampleAmountRecordService;
import com.ruoyi.ai.service.IAiStatisticsService;
import com.ruoyi.ai.service.IAiUserService;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.constant.BalanceChangerConstants;
@ -22,10 +19,8 @@ import com.ruoyi.common.core.domain.model.RegisterAiUserBody;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.exception.job.TaskException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.IpCountryQueryByApi;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.ip.IpUtils;
import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.quartz.domain.SysJob;
import com.ruoyi.quartz.service.ISysJobService;
@ -40,7 +35,10 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.mail.MessagingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.UUID;
/**
@ -104,8 +102,11 @@ public class AiUserApiController extends BaseController {
// 查询启用状态体验金活动
AiSampleAmount aiSampleAmount = aiSampleAmountMapper.getSampleAmount();
if (aiSampleAmount != null) {
String uuid = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 8);
String dateTime = new SimpleDateFormat("yyyyMMdd").format(new Date());
String orderNo = dateTime + uuid;
// 余额变更记录
aiUserService.addUserBalance(aiUser.getId(), aiSampleAmount.getAmount(), BalanceChangerConstants.EXPERIENCE_GOLD_GIFT);
aiUserService.addUserBalance(orderNo, aiUser.getId(), aiSampleAmount.getAmount(), BalanceChangerConstants.EXPERIENCE_GOLD_GIFT);
// 新增体验金记录
AiSampleAmountRecord aiSampleAmountRecord = new AiSampleAmountRecord();
aiSampleAmountRecord.setUserId(aiUser.getId());
@ -218,6 +219,7 @@ public class AiUserApiController extends BaseController {
/**
* 查询返佣比例配置
*
* @return
*/
@GetMapping("/getRebateConfig")

View File

@ -1,33 +1,27 @@
package com.ruoyi.web.controller.ai;
import cn.hutool.core.util.NumberUtil;
import com.ruoyi.ai.service.EmailVerifyService;
import com.ruoyi.ai.service.IAiUserService;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.BalanceChangerConstants;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.AiUser;
import com.ruoyi.common.core.domain.model.RegisterAiUserBody;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.mail.MessagingException;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* ai-用户信息Controller
@ -77,7 +71,6 @@ public class AiUserController extends BaseController {
}
/**
* 新增ai-用户信息
*/
@ -123,9 +116,12 @@ public class AiUserController extends BaseController {
aiUser.setUpdateBy(getUsername());
// 获取原余额
AiUser u = aiUserService.selectAiUserById(aiUser.getId());
String uuid = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 8);
String dateTime = new SimpleDateFormat("yyyyMMdd").format(new Date());
String orderNo = dateTime + uuid;
// 计算变更余额
BigDecimal amount = NumberUtil.sub(aiUser.getBalance(), u.getBalance());
aiUserService.addUserBalance(aiUser.getId(), amount, BalanceChangerConstants.SYSTEM_OPERATION);
aiUserService.addUserBalance(orderNo, aiUser.getId(), amount, BalanceChangerConstants.SYSTEM_OPERATION);
return toAjax(1);
}
@ -151,8 +147,6 @@ public class AiUserController extends BaseController {
}
// @GetMapping("/addUserBalance")
// public AjaxResult addUserBalance(BigDecimal amount) {
// aiUserService.addUserBalance(SecurityUtils.getAiUserId(), amount, BalanceChangerConstants.RECHARGE);

View File

@ -1,16 +1,14 @@
package com.ruoyi.ai.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
/**
* 余额使用记录对象 ai_balance_change_record
@ -24,13 +22,23 @@ public class AiBalanceChangeRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键ID */
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/** 删除标志0代表存在 2代表删除 */
/**
* 删除标志0代表存在 2代表删除
*/
private String delFlag;
/**
* 关联订单号
*/
@Excel(name = "关联订单号")
private String orderNo;
/**
* 用户ID
*/
@ -42,19 +50,27 @@ public class AiBalanceChangeRecord extends BaseEntity {
@TableField(exist = false)
private String uuid;
/** 操作类型0-充值 1-返佣 2-充值赠送 3-体验金赠送 4-体验金回收 5-图生图 6-一键换脸 7-快捷生图 8-快捷生视频 9-退款 10-系统操作 */
/**
* 操作类型0-充值 1-返佣 2-充值赠送 3-体验金赠送 4-体验金回收 5-图生图 6-一键换脸 7-快捷生图 8-快捷生视频 9-退款 10-系统操作
*/
@Excel(name = "操作类型")
private Integer type;
/** 变更金额 */
/**
* 变更金额
*/
@Excel(name = "变更金额")
private BigDecimal changeAmount;
/** 变更后金额 */
/**
* 变更后金额
*/
@Excel(name = "变更后金额")
private BigDecimal resultAmount;
/** 用户昵称 */
/**
* 用户昵称
*/
@TableField(exist = false)
@Excel(name = "用户昵称")
private String nickname;

View File

@ -1,16 +1,15 @@
package com.ruoyi.ai.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 返佣记录对象 ai_rebate_record
*
@ -23,22 +22,38 @@ public class AiRebateRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键ID */
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/** 删除标志0代表存在 2代表删除 */
/**
* 关联订单号
*/
@Excel(name = "关联订单号")
private String orderNo;
/**
* 删除标志0代表存在 2代表删除
*/
private String delFlag;
/** 上级ID */
/**
* 上级ID
*/
@Excel(name = "上级ID")
private Long superiorId;
/** 下级ID */
/**
* 下级ID
*/
@Excel(name = "下级ID")
private Long subordinateId;
/** 返佣金额 */
/**
* 返佣金额
*/
@Excel(name = "返佣金额")
private BigDecimal amount;

View File

@ -1,18 +1,17 @@
package com.ruoyi.ai.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 体验金领取记录对象 ai_sample_amount_record
*
@ -25,22 +24,38 @@ public class AiSampleAmountRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键ID */
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/** 删除标志0代表存在 2代表删除 */
/**
* 关联订单号
*/
@Excel(name = "关联订单号")
private String orderNo;
/**
* 删除标志0代表存在 2代表删除
*/
private String delFlag;
/** 用户ID */
/**
* 用户ID
*/
@Excel(name = "用户ID")
private Long userId;
/** 体验金额 */
/**
* 体验金额
*/
@Excel(name = "体验金额")
private BigDecimal sampleAmount;
/** 回收时间 */
/**
* 回收时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "回收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date recycleTime;

View File

@ -87,9 +87,9 @@ public interface IAiUserService {
void updateEmail(String email, String code);
void addUserBalance(Long userId, BigDecimal amount, int recharge);
void addUserBalance(String orderNo, Long userId, BigDecimal amount, int recharge);
void addUserBalance(Long userId, BigDecimal amount, int recharge, String remark);
void addUserBalance(String orderNo, Long userId, BigDecimal amount, int recharge, String remark);
AiUser getUserByEmail(String email);
@ -101,7 +101,7 @@ public interface IAiUserService {
public void deductSampleAmount(String userId);
void handleRebate(Long userId, BigDecimal rechargeAmount);
void handleRebate(String orderNo, Long userId, BigDecimal rechargeAmount);
String getRebateConfig();

View File

@ -1,25 +1,20 @@
package com.ruoyi.ai.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ai.domain.AiManager;
import com.ruoyi.ai.domain.AiOrder;
import com.ruoyi.ai.domain.AiStatistics;
import com.ruoyi.ai.mapper.AiOrderMapper;
import com.ruoyi.ai.service.IAiManagerService;
import com.ruoyi.ai.service.IAiOrderService;
import com.ruoyi.ai.service.IAiStatisticsService;
import com.ruoyi.ai.service.IAiUserService;
import com.ruoyi.common.constant.BalanceChangerConstants;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.AiUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
@ -27,11 +22,14 @@ import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.ai.mapper.AiOrderMapper;
import com.ruoyi.ai.domain.AiOrder;
import com.ruoyi.ai.service.IAiOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* 订单管理Service业务层处理
*
@ -123,8 +121,7 @@ public class AiOrderServiceImpl implements IAiOrderService {
* @return 结果
*/
@Override
public int deleteAiOrderByIds(Long[] ids)
{
public int deleteAiOrderByIds(Long[] ids) {
return aiOrderMapper.deleteAiOrderByIds(ids);
}
@ -135,13 +132,13 @@ public class AiOrderServiceImpl implements IAiOrderService {
* @return 结果
*/
@Override
public int deleteAiOrderById(Long id)
{
public int deleteAiOrderById(Long id) {
return aiOrderMapper.deleteAiOrderById(id);
}
/**
* 生成订单
*
* @param aiType 对应的AI类型
* @return
*/
@ -170,7 +167,7 @@ public class AiOrderServiceImpl implements IAiOrderService {
aiOrder.setSource(aiUser.getSource());
aiOrderMapper.insert(aiOrder);
// 执行余额变更
aiUserService.addUserBalance(SecurityUtils.getAiUserId(), NumberUtil.mul(-1, aiManager.getPrice()), getChangerType(aiType));
aiUserService.addUserBalance(orderno, SecurityUtils.getAiUserId(), NumberUtil.mul(-1, aiManager.getPrice()), getChangerType(aiType));
return aiOrder;
}
@ -181,7 +178,7 @@ public class AiOrderServiceImpl implements IAiOrderService {
String remark = MessageUtils.message("order.number.generation.failed", aiOrder.getOrderNum());
aiOrder.setRemark(remark);
aiOrderMapper.updateById(aiOrder);
aiUserService.addUserBalance(SecurityUtils.getAiUserId(), aiOrder.getAmount(), BalanceChangerConstants.REFUND, remark);
aiUserService.addUserBalance(aiOrder.getOrderNum(), SecurityUtils.getAiUserId(), aiOrder.getAmount(), BalanceChangerConstants.REFUND, remark);
}
@Override
@ -191,7 +188,7 @@ public class AiOrderServiceImpl implements IAiOrderService {
aiOrderMapper.updateById(aiOrder);
AiStatistics aiStatistics = new AiStatistics();
aiStatistics.setSource(aiOrder.getSource());
aiStatistics.setGenerateCount(1l);
aiStatistics.setGenerateCount(1L);
// 新增生成数量
aiStatisticsService.saveOrUpdateData(aiStatistics);
}

View File

@ -1,29 +1,24 @@
package com.ruoyi.ai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ai.domain.*;
import com.ruoyi.ai.mapper.AiRechargeMapper;
import com.ruoyi.ai.service.*;
import com.ruoyi.common.constant.BalanceChangerConstants;
import com.ruoyi.common.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ai.domain.*;
import com.ruoyi.ai.domain.enums.AiConfigEnum;
import com.ruoyi.ai.service.*;
import com.ruoyi.common.constant.BalanceChangerConstants;
import com.ruoyi.common.core.domain.entity.AiUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.SysConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.ai.mapper.AiRechargeMapper;
import org.springframework.transaction.annotation.Transactional;
/**
* 充值管理Service业务层处理
*
@ -107,12 +102,10 @@ public class AiRechargeServiceImpl implements IAiRechargeService {
aiRecharge.setGiftAmount(amount);
// 新增用户余额
aiUserService.addUserBalance(aiRecharge.getUserId(), amount, BalanceChangerConstants.RECHARGE);
aiUserService.addUserBalance(orderNo, aiRecharge.getUserId(), amount, BalanceChangerConstants.RECHARGE);
// 处理返佣 (根据充值金额计算返佣)
aiUserService.handleRebate(aiRecharge.getUserId(), aiRechargeGiftGear.getRechargeAmount());
aiUserService.handleRebate(orderNo, aiRecharge.getUserId(), aiRechargeGiftGear.getRechargeAmount());
// 新增充值统计
AiStatistics aiStatistics = new AiStatistics();
aiStatistics.setSource(aiRecharge.getSource());
@ -127,7 +120,7 @@ public class AiRechargeServiceImpl implements IAiRechargeService {
if (isAvailable) {
aiRecharge.setGiveAmount(aiRechargeGiftGear.getGiveAmount());
// 新增用户赠送余额
aiUserService.addUserBalance(aiRecharge.getUserId(), aiRechargeGiftGear.getGiveAmount(), BalanceChangerConstants.RECHARGE_BONUS);
aiUserService.addUserBalance(orderNo, aiRecharge.getUserId(), aiRechargeGiftGear.getGiveAmount(), BalanceChangerConstants.RECHARGE_BONUS);
// 新增充值赠送记录
AiRechargeGiftRecord aiRechargeGiftRecord = new AiRechargeGiftRecord();
aiRechargeGiftRecord.setOrderNum(orderNo);

View File

@ -9,20 +9,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ai.domain.*;
import com.ruoyi.ai.domain.enums.AiConfigEnum;
import com.ruoyi.ai.mapper.AiRechargeMapper;
import com.ruoyi.ai.mapper.AiSampleAmountMapper;
import com.ruoyi.ai.mapper.AiSampleAmountRecordMapper;
import com.ruoyi.ai.mapper.AiUserMapper;
import com.ruoyi.ai.service.*;
import com.ruoyi.common.constant.BalanceChangerConstants;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.domain.entity.AiUser;
import com.ruoyi.ai.mapper.AiUserMapper;
import com.ruoyi.common.core.domain.model.LoginAiUser;
import com.ruoyi.common.core.domain.model.LoginAiUserBody;
import com.ruoyi.common.core.domain.model.RegisterAiUserBody;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.ip.IpUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.mapper.SysConfigMapper;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,7 +27,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -70,7 +66,6 @@ public class AiUserServiceImpl implements IAiUserService {
private AiRechargeMapper aiRechargeMapper;
/**
* 查询ai-用户信息
*
@ -208,7 +203,7 @@ public class AiUserServiceImpl implements IAiUserService {
// 新增访客统计
AiStatistics aiStatistics = new AiStatistics();
aiStatistics.setSource(registerAiUserBody.getSource());
aiStatistics.setAddUserCount(1l);
aiStatistics.setAddUserCount(1L);
aiStatisticsService.saveOrUpdateData(aiStatistics);
return aiUser;
}
@ -352,13 +347,13 @@ public class AiUserServiceImpl implements IAiUserService {
}
@Override
public void addUserBalance(Long userId, BigDecimal amount, int recharge) {
addUserBalance(userId, amount, recharge, null);
public void addUserBalance(String orderNo, Long userId, BigDecimal amount, int recharge) {
addUserBalance(orderNo, userId, amount, recharge, null);
}
@Override
@Transactional
public void addUserBalance(Long userId, BigDecimal amount, int recharge, String remark) {
public void addUserBalance(String orderNo, Long userId, BigDecimal amount, int recharge, String remark) {
// 新增余额使用记录
AiUser aiUser = aiUserMapper.selectById(userId);
AiBalanceChangeRecord balanceChangeRecord = new AiBalanceChangeRecord();
@ -367,6 +362,7 @@ public class AiUserServiceImpl implements IAiUserService {
balanceChangeRecord.setChangeAmount(amount);
balanceChangeRecord.setResultAmount(NumberUtil.add(amount, aiUser.getBalance()));
balanceChangeRecord.setRemark(remark);
balanceChangeRecord.setOrderNo(orderNo);
balanceChangeRecordService.insertAiBalanceChangeRecord(balanceChangeRecord);
// 修改用户余额
aiUser.setBalance(balanceChangeRecord.getResultAmount());
@ -410,14 +406,14 @@ public class AiUserServiceImpl implements IAiUserService {
// if (deductAmount.compareTo(BigDecimal.ZERO) < 0) {
// deductAmount = new BigDecimal(0);
// }
addUserBalance(Long.valueOf(userId), NumberUtil.mul(aiSampleAmountRecord.getSampleAmount(), -1), BalanceChangerConstants.EXPERIENCE_GOLD_RECYCLE);
addUserBalance(aiSampleAmountRecord.getOrderNo(), Long.valueOf(userId), NumberUtil.mul(aiSampleAmountRecord.getSampleAmount(), -1), BalanceChangerConstants.EXPERIENCE_GOLD_RECYCLE);
// 修改状态已回收
aiSampleAmountRecord.setStatus(1);
aiSampleAmountRecordService.updateAiSampleAmountRecord(aiSampleAmountRecord);
}
@Override
public void handleRebate(Long userId, BigDecimal amount) {
public void handleRebate(String orderNo, Long userId, BigDecimal amount) {
AiUser aiUser = aiUserMapper.selectById(userId);
if (aiUser.getSuperiorId() == null) return;
// 查询上级用户
@ -428,7 +424,7 @@ public class AiUserServiceImpl implements IAiUserService {
SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(AiConfigEnum.SYS_INVITE_COMMISSION.getValue());
double decimal = NumberUtil.div(Integer.parseInt(sysConfig.getConfigValue()), 100, 2);
BigDecimal rebateAmount = NumberUtil.mul(amount, decimal);
addUserBalance(superiorUser.getId(), rebateAmount, BalanceChangerConstants.REBATE);
addUserBalance(orderNo, superiorUser.getId(), rebateAmount, BalanceChangerConstants.REBATE);
// 新增返佣记录
AiRebateRecord rebateRecord = new AiRebateRecord();
rebateRecord.setSuperiorId(superiorUser.getId());