系统用户钱包 拆分

This commit is contained in:
wangw 2025-01-06 14:32:42 +08:00
parent 33b350e7b6
commit 0e512bfc69
15 changed files with 183 additions and 74 deletions

View File

@ -360,24 +360,24 @@ public class UserController {
@PostMapping("/updateSysUserMoney")
@ApiOperation("修改金币")
public Result updateSysUserMoney(Long userId, Double money, Integer type) {
userMoneyService.updateSysMoney(type, userId, money);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setSysUserId(userId);
if (type == 1) {
userMoneyDetails.setTitle("[增加金币]平台增加金币:" + money);
userMoneyDetails.setContent("[增加金币]平台增加金币:" + money);
} else {
userMoneyDetails.setTitle("[减少金币]平台减少金币:" + money);
userMoneyDetails.setContent("[减少金币]平台减少金币:" + money);
}
userMoneyDetails.setMoneyType(2);
userMoneyDetails.setType(type);
//
userMoneyDetails.setClassify(8);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetailsService.save(userMoneyDetails);
// userMoneyService.updateSysMoney(type, userId, money);
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
// userMoneyDetails.setSysUserId(userId);
// if (type == 1) {
// userMoneyDetails.setTitle("[增加金币]平台增加金币:" + money);
// userMoneyDetails.setContent("[增加金币]平台增加金币:" + money);
// } else {
// userMoneyDetails.setTitle("[减少金币]平台减少金币:" + money);
// userMoneyDetails.setContent("[减少金币]平台减少金币:" + money);
// }
// userMoneyDetails.setMoneyType(2);
// userMoneyDetails.setType(type);
// //
// userMoneyDetails.setClassify(8);
// userMoneyDetails.setMoney(new BigDecimal(money));
// userMoneyDetails.setCreateTime(sdf.format(new Date()));
// userMoneyDetailsService.save(userMoneyDetails);
return Result.success();
}

View File

@ -3,6 +3,7 @@ package com.sqx.modules.app.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.sys.service.SysUserMoneyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
public class UserMoneyDetailsController {
private UserMoneyDetailsService userMoneyDetailsService;
private UserMoneyService userMoneyService;
private SysUserMoneyService sysUserMoneyService;
@ApiOperation("钱包明细")
@ -34,7 +36,7 @@ public class UserMoneyDetailsController {
@GetMapping("/selectSysUserMoney")
@ApiOperation("代理钱包")
public Result selectSysUserMoney(Long userId){
return Result.success().put("data",userMoneyService.selectSysUserMoneyByUserId(userId));
return Result.success().put("data",sysUserMoneyService.selectSysUserMoneyByUserId(userId));
}

View File

@ -14,10 +14,6 @@ public interface UserMoneyDao extends BaseMapper<UserMoney> {
void updateMayAmount(@Param("type") Integer type, @Param("userId")Long userId, @Param("amount") Double amount);
void updateSysMoney(@Param("type") Integer type, @Param("sysUserId")Long sysUserId, @Param("money") Double money);
void updateSysAmount(@Param("type") Integer type, @Param("sysUserId")Long sysUserId, @Param("amount") Double amount);
@Select("select sum(money) from user_money_details where user_id=#{userId} and classify in (6,1) and (content like '%额外奖励金币%' or content like '获取金币')")
BigDecimal sumMoney(Long userId);

View File

@ -7,13 +7,7 @@ public interface UserMoneyService extends IService<UserMoney> {
UserMoney selectUserMoneyByUserId(Long userId);
UserMoney selectSysUserMoneyByUserId(Long userId);
void updateMoney(int i, Long userId, double money);
void updateAmount(int i, Long userId, double amount);
void updateSysMoney(int i, Long userId, double money);
void updateSysAmount(int i, Long userId, double amount);
}

View File

@ -24,18 +24,6 @@ public class UserMoneyServiceImpl extends ServiceImpl<UserMoneyDao, UserMoney> i
baseMapper.updateMayAmount(i,userId,amount);
}
@Override
public void updateSysMoney(int i, Long userId, double money){
selectSysUserMoneyByUserId(userId);
baseMapper.updateSysMoney(i,userId,money);
}
@Override
public void updateSysAmount(int i, Long userId, double amount){
selectSysUserMoneyByUserId(userId);
baseMapper.updateSysAmount(i,userId,amount);
}
@Override
public UserMoney selectUserMoneyByUserId(Long userId){
UserMoney userMoney = baseMapper.selectOne(new QueryWrapper<UserMoney>().eq("user_id", userId));
@ -48,19 +36,4 @@ public class UserMoneyServiceImpl extends ServiceImpl<UserMoneyDao, UserMoney> i
}
return userMoney;
}
@Override
public UserMoney selectSysUserMoneyByUserId(Long userId){
UserMoney userMoney = baseMapper.selectOne(new QueryWrapper<UserMoney>().eq("sys_user_id", userId));
if(userMoney==null){
userMoney=new UserMoney();
userMoney.setSysUserId(userId);
userMoney.setMoney(new BigDecimal("0.00"));
userMoney.setAmount(new BigDecimal("0.00"));
baseMapper.insert(userMoney);
}
return userMoney;
}
}

View File

@ -1,12 +1,16 @@
package com.sqx.modules.course.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CourseDetailsSetVo {
@JsonSerialize(using = ToStringSerializer.class)
private Long courseId;
@JsonSerialize(using = ToStringSerializer.class)
private Long courseDetailsId;
private String courseDetailsName;
private Integer current = 0;

View File

@ -24,6 +24,7 @@ import com.sqx.modules.invite.service.InviteService;
import com.sqx.modules.sys.entity.SysUserEntity;
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
import com.sqx.modules.sys.service.SysUserMoneyService;
import com.sqx.modules.sys.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -52,6 +53,8 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
@Autowired
private UserMoneyService userMoneyService;
@Autowired
private SysUserMoneyService sysUserMoneyService;
@Autowired
private UserMoneyDetailsService userMoneyDetailsService;
@Autowired
private InviteAwardService inviteAwardService;
@ -366,7 +369,7 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
if (sumMoney.compareTo(BigDecimal.ZERO) <= 0) {
return result;
}
userMoneyService.updateSysAmount(1, sysUserEntity.getUserId(), sumMoney.doubleValue());
sysUserMoneyService.updateSysMoney(1, sysUserEntity.getUserId(), sumMoney.doubleValue());
SysUserMoneyDetails userMoneyDetails = new SysUserMoneyDetails();
userMoneyDetails.setSysUserId(sysUserEntity.getUserId());
userMoneyDetails.setUserId(sysUserEntity.getUserId());

View File

@ -32,8 +32,10 @@ import com.sqx.modules.pay.entity.PayDetails;
import com.sqx.modules.pay.wuyou.BaseResp;
import com.sqx.modules.pay.wuyou.WuyouPay;
import com.sqx.modules.sys.entity.SysUserEntity;
import com.sqx.modules.sys.entity.SysUserMoney;
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
import com.sqx.modules.sys.service.SysUserMoneyService;
import com.sqx.modules.sys.service.SysUserService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -69,6 +71,8 @@ public class TempOrdersTask {
@Resource
private UserMoneyService userMoneyService;
@Resource
private SysUserMoneyService sysUserMoneyService;
@Resource
private SysUserService sysUserService;
@Resource
private InviteDao inviteDao;
@ -238,14 +242,14 @@ public class TempOrdersTask {
sysUser.getUserId(), sysUser.getUserId(), null, "[分享达标额外奖励]", 6, 1, 2,
new BigDecimal(qdAward), "推广人员首次达标,额外奖励现金红包" + qdAward, 2);
userMoneyService.updateSysAmount(1, sysUser.getUserId(), Double.parseDouble(qdAward));
sysUserMoneyService.updateSysMoney(1, sysUser.getUserId(), Double.parseDouble(qdAward));
sysUserMoneyDetailsService.save(userMoneyDetails4);
UserMoney userMoney = userMoneyService.selectSysUserMoneyByUserId(sysUser.getSysUserId());
userMoney.setInviteIncomeMoney(userMoney.getInviteIncomeMoney().add(new BigDecimal(qdAward)));
userMoneyService.update(userMoney, new LambdaQueryWrapper<UserMoney>()
.eq(UserMoney::getSysUserId, userMoney.getSysUserId())
.eq(UserMoney::getId, userMoney.getId()));
SysUserMoney sysUserMoney = sysUserMoneyService.selectSysUserMoneyByUserId(sysUser.getSysUserId());
sysUserMoney.setInviteIncomeMoney(sysUserMoney.getInviteIncomeMoney().add(new BigDecimal(qdAward)));
sysUserMoneyService.update(sysUserMoney, new LambdaQueryWrapper<SysUserMoney>()
.eq(SysUserMoney::getUserId, sysUserMoney.getUserId())
.eq(SysUserMoney::getId, sysUserMoney.getId()));
}
}
}

View File

@ -31,6 +31,9 @@ import com.sqx.modules.pay.entity.AliPayWithdrawModel;
import com.sqx.modules.pay.entity.CashOut;
import com.sqx.modules.pay.service.CashOutService;
import com.sqx.modules.pay.service.PayDetailsService;
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
import com.sqx.modules.sys.service.SysUserMoneyService;
import com.sqx.modules.utils.AmountCalUtils;
import com.sqx.modules.utils.excel.ExcelData;
import com.sqx.modules.utils.excel.ExportExcelUtils;
@ -86,6 +89,8 @@ public class CashController {
@Autowired
private UserMoneyDetailsService userMoneyDetailsService;
@Autowired
private SysUserMoneyDetailsService sysUserMoneyDetailsService;
@Autowired
private MessageService messageService;
@Autowired
private InviteMoneyDao inviteMoneyDao;
@ -93,6 +98,8 @@ public class CashController {
private OrdersService ordersService;
@Autowired
private UserMoneyService userMoneyService;
@Autowired
private SysUserMoneyService sysUserMoneyService;
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
@RequestMapping(value = "/sendMsgByUserId", method = RequestMethod.GET)
@ -460,18 +467,19 @@ public class CashController {
}
//将金币退还
if (one.getSysUserId() != null) {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setSysUserId(one.getSysUserId());
userMoneyDetails.setTitle("[退款提醒]提现失败:" + one.getMoney() + ",退还手续费:" + one.getRate() + ",总退还:" + v);
userMoneyDetails.setContent(content);
userMoneyDetails.setType(1);
SysUserMoneyDetails sysUserMoneyDetails = new SysUserMoneyDetails();
sysUserMoneyDetails.setSysUserId(one.getSysUserId());
sysUserMoneyDetails.setUserId(one.getSysUserId());
sysUserMoneyDetails.setTitle("[退款提醒]提现失败:" + one.getMoney() + ",退还手续费:" + one.getRate() + ",总退还:" + v);
sysUserMoneyDetails.setContent(content);
sysUserMoneyDetails.setType(1);
//
userMoneyDetails.setClassify(4);
userMoneyDetails.setMoney(new BigDecimal(v));
userMoneyDetails.setCreateTime(sdf.format(now));
userMoneyDetails.setMoneyType(2);
userMoneyDetailsService.save(userMoneyDetails);
userMoneyService.updateSysMoney(1, userId, v);
sysUserMoneyDetails.setClassify(4);
sysUserMoneyDetails.setMoney(new BigDecimal(v));
sysUserMoneyDetails.setCreateTime(sdf.format(now));
sysUserMoneyDetails.setMoneyType(2);
sysUserMoneyDetailsService.save(sysUserMoneyDetails);
sysUserMoneyService.updateSysMoney(1, userId, v);
} else {
UserEntity userInfo = userService.queryByUserId(userId);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();

View File

@ -0,0 +1,14 @@
package com.sqx.modules.sys.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.sys.entity.SysUserMoney;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface SysUserMoneyDao extends BaseMapper<SysUserMoney> {
void updateSysMoney(@Param("type") Integer type, @Param("userId")Long userId, @Param("money") Double money);
}

View File

@ -0,0 +1,41 @@
package com.sqx.modules.sys.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
/**
* 系统用户钱包(SysUserMoney)表实体类
*
* @author ww
* @since 2025-01-06 13:37:36
*/
@Data
@TableName("sys_user_money")
@ApiModel(value = "系统用户钱包 实体类")
public class SysUserMoney extends Model<SysUserMoney> {
@ApiModelProperty("钱包id")
@TableId(type = IdType.ID_WORKER)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ApiModelProperty("钱包金额 钱")
private BigDecimal money;
@ApiModelProperty("渠道 系统用户userId")
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
private BigDecimal inviteIncomeMoney;
private BigDecimal inviteIncomeCoin;
}

View File

@ -0,0 +1,17 @@
package com.sqx.modules.sys.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.app.entity.UserMoney;
import com.sqx.modules.sys.entity.SysUserMoney;
import java.util.Map;
public interface SysUserMoneyService extends IService<SysUserMoney> {
SysUserMoney selectSysUserMoneyByUserId(Long userId);
void updateSysMoney(int i, Long userId, double money);
}

View File

@ -0,0 +1,37 @@
package com.sqx.modules.sys.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.app.entity.UserMoney;
import com.sqx.modules.sys.dao.SysUserMoneyDao;
import com.sqx.modules.sys.entity.SysUserMoney;
import com.sqx.modules.sys.service.SysUserMoneyService;
import org.springframework.stereotype.Service;
import org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal;
import java.util.Map;
@Service
public class SysUserMoneyServiceImpl extends ServiceImpl<SysUserMoneyDao, SysUserMoney> implements SysUserMoneyService {
@Override
public void updateSysMoney(int i, Long userId, double money){
selectSysUserMoneyByUserId(userId);
baseMapper.updateSysMoney(i,userId,money);
}
@Override
public SysUserMoney selectSysUserMoneyByUserId(Long userId){
SysUserMoney userMoney = baseMapper.selectOne(new QueryWrapper<SysUserMoney>().eq("user_id", userId));
if(userMoney==null){
userMoney=new SysUserMoney();
userMoney.setUserId(userId);
userMoney.setMoney(new BigDecimal("0.00"));
baseMapper.insert(userMoney);
}
return userMoney;
}
}

View File

@ -70,6 +70,7 @@ spring:
- sys_user
#中心表
center-tables:
- sys_user_money
- course
- message_info
- announcement

View File

@ -0,0 +1,15 @@
<?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.sqx.modules.sys.dao.SysUserMoneyDao">
<update id="updateSysMoney">
update sys_user_money set
<if test="type==1">
money=money+#{money}
</if>
<if test="type==2">
money=money-#{money}
</if>
where user_id=#{userId}
</update>
</mapper>