This commit is contained in:
张良(004796)
2024-01-19 17:59:01 +08:00
parent a98d191bb4
commit 87ed8dbfa7
16 changed files with 105 additions and 293 deletions

View File

@@ -1,96 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountDetail;
import com.ruoyi.cai.service.AccountDetailService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 账户明细
*
* @author 77
* @date 2023-12-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/accountDetail")
public class AccountDetailController extends BaseController {
private final AccountDetailService caiAccountDetailService;
/**
* 查询账户明细列表
*/
@SaCheckPermission("cai:accountDetail:list")
@GetMapping("/list")
public TableDataInfo<AccountDetail> list(AccountDetail bo, PageQuery pageQuery) {
Page<AccountDetail> page = caiAccountDetailService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByDesc(AccountDetail::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取账户明细详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:accountDetail:query")
@GetMapping("/{id}")
public R<AccountDetail> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(caiAccountDetailService.getById(id));
}
/**
* 新增账户明细
*/
@SaCheckPermission("cai:accountDetail:add")
@Log(title = "账户明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody AccountDetail bo) {
return toAjax(caiAccountDetailService.save(bo));
}
/**
* 修改账户明细
*/
@SaCheckPermission("cai:accountDetail:edit")
@Log(title = "账户明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody AccountDetail bo) {
return toAjax(caiAccountDetailService.updateById(bo));
}
/**
* 删除账户明细
*
* @param ids 主键串
*/
@SaCheckPermission("cai:accountDetail:remove")
@Log(title = "账户明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(caiAccountDetailService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -17,7 +17,6 @@ import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.BeanConvertUtil;

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import lombok.Data;
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -34,6 +35,9 @@ public class AccountChangeLog implements Serializable {
* 蜜瓜号
*/
private String usercode;
private Long tarUserId;
private String tarParam;
private String tarImg;
/**
* 账户类型 1-余额 2-收益
*/
@@ -70,4 +74,14 @@ public class AccountChangeLog implements Serializable {
private LocalDateTime createTime;
public void init(AccountChangeCodeEnum change){
this.setAccountType(change.getAccountType().getCode());
this.setCateId(change.getCate().getCode());
this.setCateAppName(change.getText());
this.setCateAdminName(change.getText());
this.setTraceLinkType(change.getCate().name());
this.setRemark(change.getDesc());
}
}

View File

@@ -1,84 +0,0 @@
package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 账户明细对象 cai_account_detail
*
* @author 77
* @date 2023-12-22
*/
@Data
@TableName("cai_account_detail")
public class AccountDetail implements Serializable {
private static final long serialVersionUID=1L;
/**
* 积分记录ID
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* 用户ID
*/
private Long userId;
/**
* 账户类型ID 1 。充值的金额 2 。收益的金额 3 。充值的彩币 4 收益的彩币
*/
private Integer accountType;
/**
* 类别
*/
private Integer cateId;
/**
* 业务码
*/
private Long businessCode;
/**
* 订单号
*/
private String orderNo;
/**
* 原有积分
*/
private BigDecimal beforeAmount;
/**
* 变化后积分
*/
private BigDecimal afterAmount;
/**
* 变化值,为正 或者为负
*/
private BigDecimal changeValue;
/**
*
*/
private Long trackUserId;
/**
* 跟踪的关键字
*/
private String trackParam;
/**
* 备注
*/
private String remark;
/**
* 操作IP
*/
private String operateIp;
/**
* 是否为后台用户手动调整
*/
private Integer isAdmin;
private LocalDateTime createTime;
}

View File

@@ -34,8 +34,7 @@ public class ConsumeLog implements Serializable {
/**
* 业务状态码
*/
@Deprecated
private String businessEnum;
private String businessParam;
/**
* 跟踪ID
*/

View File

@@ -1,14 +0,0 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cai.domain.AccountDetail;
/**
* 账户明细Mapper接口
*
* @author 77
* @date 2023-12-22
*/
public interface AccountDetailMapper extends BaseMapper<AccountDetail> {
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.AccountChangeLog;
import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
/**
@@ -12,9 +13,15 @@ import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
*/
public interface AccountChangeLogService extends IService<AccountChangeLog> {
AccountChangeLog getLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId);
AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId);
AccountChangeLog saveLog(Long userId,String usercode, AccountChangeCodeEnum change, Long price, Long traceId,Integer admin);
AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId
, Long tarUserId);
AccountChangeLog saveLogAdmin(Long userId,String usercode, AccountChangeCodeEnum change, Long price,Long traceId);
AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId
, Long tarUserId, Gift gift);
AccountChangeLog saveLogAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId);
}

View File

@@ -1,15 +0,0 @@
package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.AccountDetail;
/**
* 账户明细Service接口
*
* @author 77
* @date 2023-12-22
*/
public interface AccountDetailService extends IService<AccountDetail> {
}

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.Account;
import com.ruoyi.cai.domain.ConsumeLog;
import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
import com.ruoyi.cai.dto.video.VideoSettleResp;
@@ -12,7 +13,6 @@ import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.ws.bean.Room;
import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.transaction.annotation.Transactional;
/**
* 用户账户Service接口
@@ -24,7 +24,9 @@ public interface AccountService extends IService<Account> {
Account getByUserId(Long userId);
ConsumeLog decr(ConsumeLog log, ConsumeLogType consumeLogType);
ConsumeLog guardDecr(ConsumeLog log, ConsumeLogType consumeLogType);
ConsumeLog giftDecr(ConsumeLog consumeLog, ConsumeLogType consumeLogType, Gift gift);
Long imDesc(User fromUser, User toUser, Long price);
@@ -36,7 +38,7 @@ public interface AccountService extends IService<Account> {
Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo);
void distribution(Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum, Long traceId);
void distribution(ConsumeLog consumeLog,Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum);
WithholdingFeeUserResp withholdingFeeUser(Long userId, Long price);

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.AccountChangeLog;
import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.mapper.AccountChangeLogMapper;
import com.ruoyi.cai.service.AccountChangeLogService;
@@ -16,33 +17,56 @@ import org.springframework.stereotype.Service;
@Service
public class AccountChangeLogServiceImpl extends ServiceImpl<AccountChangeLogMapper,AccountChangeLog> implements AccountChangeLogService {
@Override
public AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId){
return this.saveLog(userId,usercode,change,price,traceId,0);
public AccountChangeLog getLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId){
return this.getAccountChangeLog(userId, usercode, change, price, traceId, 0);
}
@Override
public AccountChangeLog saveLog(Long userId,String usercode, AccountChangeCodeEnum change, Long price, Long traceId,Integer admin){
public AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId){
AccountChangeLog changeLog = this.getAccountChangeLog(userId, usercode, change, price, traceId, 0);
this.save(changeLog);
return changeLog;
}
@Override
public AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId
,Long tarUserId){
AccountChangeLog changeLog = this.getAccountChangeLog(userId, usercode, change, price, traceId, 0);
changeLog.setTarUserId(userId);
this.save(changeLog);
return changeLog;
}
@Override
public AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId
, Long tarUserId, Gift gift){
AccountChangeLog changeLog = this.getAccountChangeLog(userId, usercode, change, price, traceId, 0);
changeLog.setTarUserId(userId);
if(gift != null){
changeLog.setTarParam(gift.getId()+"");
changeLog.setTarImg(gift.getImg());
}
this.save(changeLog);
return changeLog;
}
private AccountChangeLog getAccountChangeLog(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId, Integer admin){
AccountChangeLog log = new AccountChangeLog();
log.init(change);
log.setUserId(userId);
log.setUsercode(usercode);
log.setTraceId(traceId);
log.setAccountType(change.getAccountType().getCode());
log.setCateId(change.getCate().getCode());
log.setCateAppName(change.getText());
log.setCateAdminName(change.getText());
log.setTraceLinkType(change.getCate().name());
log.setRemark(change.getDesc());
log.setChangeValue(price);
log.setIsAdmin(admin);
this.save(log);
return log;
}
@Override
public AccountChangeLog saveLogAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price,Long traceId) {
return this.saveLog(userId,usercode,change,price,traceId,1);
AccountChangeLog changeLog = this.getAccountChangeLog(userId, usercode, change, price, traceId, 1);
this.save(changeLog);
return changeLog;
}

View File

@@ -1,19 +0,0 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.AccountDetail;
import com.ruoyi.cai.mapper.AccountDetailMapper;
import com.ruoyi.cai.service.AccountDetailService;
import org.springframework.stereotype.Service;
/**
* 账户明细Service业务层处理
*
* @author 77
* @date 2023-12-22
*/
@Service
public class AccountDetailServiceImpl extends ServiceImpl<AccountDetailMapper, AccountDetail> implements AccountDetailService {
}

View File

@@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.config.CaiProperties;
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.domain.*;
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
import com.ruoyi.cai.dto.video.VideoSettleResp;
import com.ruoyi.cai.dto.video.WithholdingFeeUserResp;
@@ -65,11 +62,16 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
@Override
@Transactional(rollbackFor = Exception.class)
public ConsumeLog decr(ConsumeLog consumeLog, ConsumeLogType consumeLogType) {
public ConsumeLog guardDecr(ConsumeLog consumeLog, ConsumeLogType consumeLogType){
return giftDecr(consumeLog,consumeLogType,null);
}
@Override
@Transactional(rollbackFor = Exception.class)
public ConsumeLog giftDecr(ConsumeLog consumeLog, ConsumeLogType consumeLogType, Gift gift) {
log.info("开始扣费 consumeLog={}", JSON.toJSONString(consumeLog));
Long userId = consumeLog.getSourceUserId();
Long amount = consumeLog.getAmount();
Account account = this.getByUserId(userId);
long totalCoin = account.getIncomeCoin() + account.getCoin();
if(totalCoin < amount){
@@ -105,16 +107,19 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
// 记录消费方的流水
if(coin != 0){
AccountChangeCodeEnum change = ConsumeLogType.getSourceChange(consumeLogType, AccountTypeEnum.COIN);
accountChangeLogService.saveLogNoAdmin(userId,consumeLog.getSourceUsercode(), change, coin,consumeLog.getTraceId());
accountChangeLogService.saveLogNoAdmin(userId, consumeLog.getSourceUsercode(), change, coin, consumeLog.getTraceId()
,consumeLog.getTargetUserId(),gift);
}
if(incomeCoin != 0){
AccountChangeCodeEnum change = ConsumeLogType.getSourceChange(consumeLogType, AccountTypeEnum.INCOME_COIN);
accountChangeLogService.saveLogNoAdmin(userId,consumeLog.getSourceUsercode(), change,incomeCoin,consumeLog.getTraceId());
accountChangeLogService.saveLogNoAdmin(userId, consumeLog.getSourceUsercode(), change, coin, consumeLog.getTraceId()
,consumeLog.getTargetUserId(),gift);
}
// 记录接收方的流水
if(targetUserId != null){
AccountChangeCodeEnum change = ConsumeLogType.getTargetChange(consumeLogType);
accountChangeLogService.saveLogNoAdmin(targetUserId,consumeLog.getTargetUsercode(), change,consumeLog.getAnchorAmount(),consumeLog.getTraceId());
accountChangeLogService.saveLogNoAdmin(userId, consumeLog.getSourceUsercode(), change, coin, consumeLog.getTraceId()
,consumeLog.getSourceUserId(),gift);
}
// 获取分销的比例和用户
consumeLogService.calculateInitFenxiao(consumeLog);
@@ -158,14 +163,14 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
Long tractId = IdManager.nextId();
// 记录消费方的流水
if(coin != 0){
accountChangeLogService.saveLogNoAdmin(fromUserId,fromUser.getUsercode(), AccountChangeCodeEnum.IM_COIN_OUT, coin, tractId);
accountChangeLogService.saveLogNoAdmin(fromUser.getId(),fromUser.getUsercode(), AccountChangeCodeEnum.IM_COIN_OUT, coin, tractId, toUser.getId());
}
if(incomeCoin != 0){
accountChangeLogService.saveLogNoAdmin(fromUserId,fromUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME_COIN_OUT,incomeCoin,tractId);
accountChangeLogService.saveLogNoAdmin(fromUser.getId(),fromUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME_COIN_OUT,incomeCoin,tractId,toUser.getId());
}
// 记录接收方的流水
if(anchorAmount != 0){
accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME,anchorAmount,tractId);
accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME,anchorAmount,tractId,fromUser.getId());
}
return tractId;
}
@@ -224,11 +229,14 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
return baseMapper.pageAdmin(pageQuery.build(),bo);
}
@Autowired
private GiftService giftService;
/**
* 分销
*/
@Override
public void distribution(Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum,Long traceId) {
public void distribution(ConsumeLog consumeLog,Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum) {
User user = userService.getById(userId);
Account account = this.getByUserId(userId);
if(account == null || user == null){
@@ -240,7 +248,18 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
return;
}
baseMapper.incsCoin(userId, amount);
accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,traceId);
if(ConsumeLogType.GIFT.getCode().equals(consumeLog.getType())){ // 礼物
Gift gift = giftService.getById(consumeLog.getBusinessParam());
accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,consumeLog.getTraceId(),
consumeLog.getTargetUserId(),gift);
}else if(ConsumeLogType.VIDEO.getCode().equals(consumeLog.getType())
|| ConsumeLogType.GUARD.getCode().equals(consumeLog.getType())){ // 视频和守护
accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,consumeLog.getTraceId(),
consumeLog.getTargetUserId());
}else if(ConsumeLogType.RECHARGE.getCode().equals(consumeLog.getType())){ // 充值
accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,consumeLog.getTraceId(),
consumeLog.getSourceUserId());
}
}
/**
@@ -299,6 +318,9 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
Long callTime = roomService.getCallTime(room);
// 本次支付金额
long totalAmount = callPrice * ((callTime / 60) + 1); // 本次需要支付的金额
if(callTime % 60 == 0){
totalAmount = callPrice * (callTime / 60);
}
Long payCoin = roomData.getPayCoin(); // 已经支付的余额
Long payIncome = roomData.getPayIncome(); // 已经支付的收益
// 补差价

View File

@@ -94,13 +94,13 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
if(consumer.getOneUserId() != null && BooleanUtils.isTrue(consumer.getOneJoin())
&& consumer.getOneAmount() > 0){
AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getOneInviteChange(code);
accountService.distribution(consumer.getOneUserId(),consumer.getOneAmount(),changeCodeEnum,consumer.getTraceId());
accountService.distribution(consumer,consumer.getOneUserId(),consumer.getOneAmount(),changeCodeEnum);
}
// 计算工会
if(consumer.getUnionUserId() != null && BooleanUtils.isTrue(consumer.getUnionJoin())
&& consumer.getUnionAmount() > 0){
AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getUnionChange(code);
accountService.distribution(consumer.getUnionUserId(),consumer.getUnionAmount(),changeCodeEnum,consumer.getTraceId());
accountService.distribution(consumer,consumer.getUnionUserId(),consumer.getUnionAmount(),changeCodeEnum);
}
}catch (Exception e){
log.error("分销发生未知错误,请联系开发检查!",e);

View File

@@ -112,7 +112,7 @@ public class GuardTotalServiceImpl extends ServiceImpl<GuardTotalMapper, GuardTo
consumeLog.setType(ConsumeLogType.GUARD.getCode());
consumeLog.setAmount(guardValue);
consumeLog.setTargetRate(anchor.getGuardRate());
consumeLog = accountService.decr(consumeLog, ConsumeLogType.GUARD);
consumeLog = accountService.guardDecr(consumeLog, ConsumeLogType.GUARD);
resp.setConsumeLogId(consumeLog.getId());
GuardLog guardLog = new GuardLog();
guardLog.setFromUserId(fromUserId);

View File

@@ -77,7 +77,7 @@ public class UserGiftServiceImpl extends ServiceImpl<UserGiftMapper, UserGift> i
consumeLog.setType(ConsumeLogType.GIFT.getCode());
consumeLog.setAmount(giftAmount);
consumeLog.setTargetRate(anchor.getGiftRate());
consumeLog = accountService.decr(consumeLog, ConsumeLogType.GIFT);
consumeLog = accountService.giftDecr(consumeLog, ConsumeLogType.GIFT, gift);
resp.setConsumeLogId(consumeLog.getId());
UserGift userGift = new UserGift();
userGift.setType(query.getType());

View File

@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.AccountDetailMapper">
<resultMap type="com.ruoyi.cai.domain.AccountDetail" id="CaiAccountDetailResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="accountType" column="account_type"/>
<result property="cateId" column="cate_id"/>
<result property="businessCode" column="business_code"/>
<result property="orderNo" column="order_no"/>
<result property="beforeAmount" column="before_amount"/>
<result property="afterAmount" column="after_amount"/>
<result property="changeValue" column="change_value"/>
<result property="createTime1" column="create_time_1"/>
<result property="createTime" column="create_time"/>
<result property="trackUserId" column="track_user_id"/>
<result property="trackParam" column="track_param"/>
<result property="remark" column="remark"/>
<result property="operateIp" column="operate_ip"/>
<result property="isAdmin" column="is_admin"/>
</resultMap>
</mapper>