feat(myInvitation): 添加金币收入记录功能

master
yang 2025-03-29 15:52:34 +08:00
parent b74323dfcc
commit d8e55d9021
8 changed files with 104 additions and 0 deletions

View File

@ -12,6 +12,7 @@ import com.mcwl.memberCenter.domain.MemberConsume;
import com.mcwl.memberCenter.domain.vo.MemberConsumeVO;
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
import com.mcwl.memberCenter.service.MemberService;
import com.mcwl.myInvitation.service.CommissionService;
import com.mcwl.myInvitation.service.ConsumeService;
import com.mcwl.pay.service.OrderTradeService;
import com.mcwl.resource.domain.dto.ModelImagePageRes;
@ -54,6 +55,8 @@ public class PersonalCenterController {
private final ConsumeService consumeService;
private final CommissionService commissionService;
/**
* -
@ -150,6 +153,16 @@ public class PersonalCenterController {
return consumeService.getWalletRecord(pageDomain);
}
/**
*
*/
@ApiOperation(value = "获取金币收入记录")
@PostMapping("/getWalletIncomeRecord")
public TableDataInfo getWalletIncomeRecord(@Valid @RequestBody PageDomain pageDomain) {
return commissionService.getWalletIncomeRecord(pageDomain);
}
/**
*
*/

View File

@ -24,4 +24,7 @@ public class Commission extends BaseEntity {
// 提成金额
private Double amount;
// 剩余金币
private Double wallet;
}

View File

@ -32,6 +32,9 @@ public class Consume extends BaseEntity {
// 商品类型 0模型 1工作流 2图片
private Integer type;
// 剩余金币
private Double wallet;
// 消费时间
private Date consumeDate;
}

View File

@ -0,0 +1,39 @@
package com.mcwl.myInvitation.domain.vo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
*
*/
@Data
@ApiModel(description = "金币收入")
public class CommissionVo {
/**
*
*/
@ApiModelProperty("收入金币")
private Double amount;
/**
*
*/
@ApiModelProperty("剩余金币")
private Double wallet;
/**
*
*/
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}

View File

@ -31,6 +31,12 @@ public class ConsumeVo {
@ApiModelProperty(value = "商品名称")
private String productName;
/**
*
*/
@ApiModelProperty(value = "剩余金币")
private Double wallet;
// 消费时间
@ApiModelProperty(value = "消费时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

View File

@ -1,8 +1,13 @@
package com.mcwl.myInvitation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.myInvitation.domain.Commission;
import javax.validation.Valid;
public interface CommissionService extends IService<Commission> {
TableDataInfo getWalletIncomeRecord(PageDomain pageDomain);
}

View File

@ -1,16 +1,45 @@
package com.mcwl.myInvitation.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.myInvitation.domain.Commission;
import com.mcwl.myInvitation.domain.vo.CommissionVo;
import com.mcwl.myInvitation.mapper.CommissionMapper;
import com.mcwl.myInvitation.service.CommissionService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commission> implements CommissionService {
@Override
public TableDataInfo getWalletIncomeRecord(PageDomain pageDomain) {
Page<Commission> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
baseMapper.selectPage(page, new LambdaQueryWrapper<Commission>()
.eq(Commission::getUserId, SecurityUtils.getUserId()));
List<Commission> commissionList = page.getRecords();
List<CommissionVo> commissionVoList = BeanUtil.copyToList(commissionList, CommissionVo.class);
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(commissionVoList);
rspData.setTotal(page.getTotal());
return rspData;
}
}

View File

@ -154,6 +154,7 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
consume.setAmount(price);
consume.setProductId(productId);
consume.setType(productType);
consume.setWallet(sysUser.getWallet());
consume.setConsumeDate(new Date());
consumeService.save(consume);
@ -163,10 +164,15 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
return;
}
if (amount == 0) {
return;
}
// 保存提成表
Commission commission = new Commission();
commission.setUserId(inviterUserId);
commission.setAmount(amount);
commission.setWallet(sysUser.getWallet());
commissionService.save(commission);
}