add 添加关联订单号
AiBalanceChangeRecord、AiRebateRecord、AiSampleAmountRecord 这三个类需要到对应的表添加关联订单号的字段
This commit is contained in:
parent
6701b8f765
commit
497b3b9c80
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue