123
This commit is contained in:
@@ -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)));
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -34,8 +34,7 @@ public class ConsumeLog implements Serializable {
|
||||
/**
|
||||
* 业务状态码
|
||||
*/
|
||||
@Deprecated
|
||||
private String businessEnum;
|
||||
private String businessParam;
|
||||
/**
|
||||
* 跟踪ID
|
||||
*/
|
||||
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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 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);
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
}
|
||||
@@ -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(); // 已经支付的收益
|
||||
// 补差价
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user