钱包整改
parent
18915baa22
commit
f6b14edcd2
|
@ -0,0 +1,35 @@
|
|||
package com.ruoyi.mybasic.common.domain;
|
||||
|
||||
import com.alibaba.druid.sql.visitor.functions.Char;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @ClassName MoneyLog
|
||||
* @Description 钱包收支记录
|
||||
* @Author WenHao.Sao
|
||||
*/
|
||||
@Data
|
||||
public class MoneyLog {
|
||||
private Long id;
|
||||
|
||||
private Long userId; //用户id
|
||||
|
||||
private int status;//状态 1:支出 2 收入
|
||||
|
||||
private Date createTime;//操作时间
|
||||
|
||||
private String moneyTypeName;//详情
|
||||
|
||||
private Integer amountIncome;//收入支出金额
|
||||
|
||||
private String createBy;//创建人
|
||||
|
||||
private Char delFlag;//删除标志
|
||||
|
||||
private String updateBy;//修改人
|
||||
|
||||
private Date updateTime;//修改时间
|
||||
|
||||
}
|
|
@ -17,7 +17,7 @@ public class Purse {
|
|||
/**
|
||||
* 钱包编号
|
||||
*/
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
/**
|
||||
* 钱包总收入
|
||||
*/
|
||||
|
@ -36,5 +36,11 @@ public class Purse {
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
private Date updateTime;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package com.ruoyi.mybasic.common.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 充值记录表
|
||||
* @author swh
|
||||
*/
|
||||
@Data
|
||||
public class RechargeLog {
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 充值渠道 支付宝/微信
|
||||
*/
|
||||
private String rechargeType;
|
||||
|
||||
/**
|
||||
* 充值金额 单位 rmb
|
||||
*/
|
||||
private Double rechargeAmount;
|
||||
|
||||
/**
|
||||
* 充值时间
|
||||
*/
|
||||
private Date createTime;
|
||||
}
|
|
@ -9,7 +9,7 @@ import lombok.Data;
|
|||
* @Author WenHao.Sao
|
||||
*/
|
||||
@Data
|
||||
public class PurseRequest extends PurseResponse {
|
||||
public class PurseRequest {
|
||||
|
||||
private String userId;//用户编号
|
||||
|
||||
|
|
|
@ -9,8 +9,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.exception.ServiceException;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.MoneyLog;
|
||||
import com.ruoyi.mybasic.common.domain.Purse;
|
||||
import com.ruoyi.mybasic.common.domain.RechargeLog;
|
||||
import com.ruoyi.mybasic.common.domain.ailPay.AliPay;
|
||||
import com.ruoyi.mybasic.common.domain.ailPay.AliPayConfig;
|
||||
import com.ruoyi.mybasic.common.domain.request.MoneyLogsRequest;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
import com.ruoyi.mybasic.service.PurseServiceTwo;
|
||||
|
@ -69,11 +74,8 @@ public class PurseControllerTwo {
|
|||
*/
|
||||
@GetMapping("/purseObject")
|
||||
public R<PurseResponse> purseObject(){
|
||||
//当前登录人的UserId
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
PurseResponse purseResponseR = purseServiceTwo.purseObject(userId);
|
||||
R<PurseResponse> ok = R.ok(purseResponseR);
|
||||
return ok;
|
||||
PurseResponse purseResponseR = purseServiceTwo.purseObject();
|
||||
return R.ok(purseResponseR);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -106,32 +108,25 @@ public class PurseControllerTwo {
|
|||
request.setBizContent(bizContent.toString());
|
||||
|
||||
|
||||
/**
|
||||
* 进行添加H币
|
||||
*/
|
||||
// Long userId = SecurityUtils.getUserId();
|
||||
long userId = 1;
|
||||
PurseResponse purseResponse = purseServiceTwo.purseObject(userId);
|
||||
UserMoneyLogs userMoneyLogs = new UserMoneyLogs();
|
||||
|
||||
//获取到当前余额
|
||||
int balanceFee = purseResponse.getBalanceFee();
|
||||
|
||||
//获取前台传入的一个参数
|
||||
//获取前台传入的一个参数 充值金额
|
||||
double totalAmount = aliPay.getTotalAmount();
|
||||
double totalAmountOne = (totalAmount * 100);// 1/100
|
||||
|
||||
PurseRequest purseRequest = new PurseRequest();
|
||||
|
||||
purseRequest.setUserId(userId + "");
|
||||
purseRequest.setBalanceFee(balanceFee);
|
||||
purseRequest.setAmountIncome(totalAmountOne);
|
||||
purseRequest.setStatus(2);
|
||||
userMoneyLogs.setUserId(Math.toIntExact(SecurityUtils.getUserId()));
|
||||
userMoneyLogs.setAmountIncome((int) totalAmountOne);
|
||||
userMoneyLogs.setMoneyTypeName("支付宝充值");
|
||||
userMoneyLogs.setStatus(2);
|
||||
//调用修改钱包接口
|
||||
purseServiceTwo.updPurseHBi(purseRequest);
|
||||
purseServiceTwo.purseBalanceChange(userMoneyLogs);
|
||||
|
||||
//充值记录表
|
||||
purseServiceTwo.addPurseLogs(purseRequest);
|
||||
|
||||
RechargeLog rechargeLog = new RechargeLog();
|
||||
rechargeLog.setUserId(SecurityUtils.getUserId());
|
||||
rechargeLog.setRechargeType("支付宝");
|
||||
rechargeLog.setRechargeAmount(totalAmount);
|
||||
purseServiceTwo.insertRechargeLog(rechargeLog);
|
||||
|
||||
// 执行请求,拿到响应的结果,返回给浏览器
|
||||
String form = "";
|
||||
|
@ -218,7 +213,7 @@ public class PurseControllerTwo {
|
|||
public R<?> withdrawPurse(AliPay aliPay, HttpServletResponse httpResponse){
|
||||
//获取当前用户的userId 里面的余额
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
PurseResponse purseResponse = purseServiceTwo.purseObject(userId);
|
||||
PurseResponse purseResponse = purseServiceTwo.purseObject();
|
||||
//获取当前用户的余额
|
||||
int balanceFee = purseResponse.getBalanceFee();
|
||||
//获取前台输入的金额
|
||||
|
@ -234,6 +229,11 @@ public class PurseControllerTwo {
|
|||
//修改H币 以及添加提现事物里面的金额
|
||||
purseServiceTwo.updWithdrawPurse(purseRequest);
|
||||
|
||||
//添加记录表
|
||||
MoneyLogsRequest moneyLogsRequest = new MoneyLogsRequest();
|
||||
moneyLogsRequest.setStatus(1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -252,8 +252,8 @@ public class PurseControllerTwo {
|
|||
* 添加一条收支记录表
|
||||
*/
|
||||
@PostMapping("/purseBalanceChange")
|
||||
public R<?> purseBalanceChange(@RequestBody PurseRequest purseRequest){
|
||||
purseServiceTwo.purseBalanceChange(purseRequest);
|
||||
public R<?> purseBalanceChange(@RequestBody UserMoneyLogs userMoneyLogs){
|
||||
purseServiceTwo.purseBalanceChange(userMoneyLogs);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
@ -266,8 +266,10 @@ public class PurseControllerTwo {
|
|||
* 说明:根据userId添加钱包
|
||||
*/
|
||||
@PostMapping("/addPurse/{userId}")
|
||||
public R addPurse(@PathVariable String userId){
|
||||
return purseServiceTwo.addPurse(userId);
|
||||
public R<?> addPurse(@PathVariable Long userId){
|
||||
purseServiceTwo.addPurse(userId);
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
package com.ruoyi.mybasic.mapper;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.MoneyLog;
|
||||
import com.ruoyi.mybasic.common.domain.Purse;
|
||||
import com.ruoyi.mybasic.common.domain.RechargeLog;
|
||||
import com.ruoyi.mybasic.common.domain.request.MoneyLogsRequest;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
|
@ -23,15 +27,15 @@ public interface PurseMapperTwo{
|
|||
PurseResponse purseObject(@Param("userId") Long userId);
|
||||
|
||||
//添加记录表
|
||||
void addMoneyLogs(MoneyLogsRequest moneyLogsRequest);
|
||||
void addMoneyLogs(UserMoneyLogs userMoneyLogs);
|
||||
|
||||
//支出
|
||||
void updPurseIn(PurseRequest purseRequest);
|
||||
//收入
|
||||
int updPurseOut(PurseRequest purseRequest);
|
||||
int updateUserBalance(UserMoneyLogs userMoneyLogs);
|
||||
|
||||
//根据当前userId添加钱包
|
||||
Integer addPurse(PurseRequest purseRequest);
|
||||
Integer addPurse(Purse purse);
|
||||
|
||||
//查询钱包里面的用户id
|
||||
Integer purseUserId(@Param("userId") String userId);
|
||||
|
@ -44,4 +48,7 @@ public interface PurseMapperTwo{
|
|||
void addPurseLogs(PurseRequest purseRequest);
|
||||
|
||||
void updWithdrawPurse(PurseRequest purseRequest);
|
||||
|
||||
int insertRechargeLog(RechargeLog rechargeLog);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.ruoyi.mybasic.service.Impl;
|
||||
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
|
||||
import com.ruoyi.common.core.exception.ServiceException;
|
||||
import com.ruoyi.mybasic.common.domain.request.MoneyLogsRequest;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.Purse;
|
||||
import com.ruoyi.mybasic.common.domain.RechargeLog;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
import com.ruoyi.mybasic.mapper.PurseMapperTwo;
|
||||
|
@ -11,7 +14,6 @@ import com.ruoyi.mybasic.service.PurseServiceTwo;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -43,13 +45,14 @@ public class PurseServiceTwoImpl implements PurseServiceTwo {
|
|||
/**
|
||||
* 根据当前登录的用户userId
|
||||
* 获取到当前钱包对象
|
||||
* @param userId
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public PurseResponse purseObject(Long userId) {
|
||||
PurseResponse purseResponse = purseMapperTwo.purseObject(userId);
|
||||
return purseResponse;
|
||||
public PurseResponse purseObject() {
|
||||
//获取当前用户id
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
return purseMapperTwo.purseObject(userId);
|
||||
}
|
||||
|
||||
|
||||
|
@ -80,6 +83,18 @@ public class PurseServiceTwoImpl implements PurseServiceTwo {
|
|||
purseMapperTwo.updWithdrawPurse(purseRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加充值记录
|
||||
* @param rechargeLog
|
||||
*/
|
||||
@Override
|
||||
public void insertRechargeLog(RechargeLog rechargeLog) {
|
||||
int i = purseMapperTwo.insertRechargeLog(rechargeLog);
|
||||
if (i <1 ){
|
||||
throw new ServiceException("系统繁忙");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 钱包余额改变接口:
|
||||
|
@ -90,34 +105,25 @@ public class PurseServiceTwoImpl implements PurseServiceTwo {
|
|||
* 添加一条收支记录表
|
||||
*/
|
||||
@Override
|
||||
public void purseBalanceChange(PurseRequest purseRequest) {
|
||||
//获取入参的金额
|
||||
double doubleAmount = purseRequest.getAmount();
|
||||
|
||||
//获取当前用户userId
|
||||
String userId = purseRequest.getUserId();
|
||||
public void purseBalanceChange(UserMoneyLogs userMoneyLogs) {
|
||||
|
||||
//获取当前用户的余额
|
||||
PurseResponse purseResponse = purseMapperTwo.purseObject(Long.valueOf(userId));
|
||||
PurseResponse purseResponse = this.purseObject();
|
||||
//当前用户的余额
|
||||
int balanceFee = purseResponse.getBalanceFee();
|
||||
//获取到状态是收入还是支出 1:支出 2 收入
|
||||
int status = purseRequest.getStatus();
|
||||
int status = userMoneyLogs.getStatus();
|
||||
//如果是支出 进行入参金额 和 原有金额 进行判断
|
||||
if (1 == status && doubleAmount > balanceFee) {
|
||||
if (1 == status && userMoneyLogs.getAmountIncome() > balanceFee) {
|
||||
throw new ServiceException("余额不足");
|
||||
}
|
||||
//支出/收入调用动态sql
|
||||
int i = purseMapperTwo.updPurseOut(purseRequest);
|
||||
//获取到收入 支出 记录表 对象
|
||||
MoneyLogsRequest moneyLogsRequest = new MoneyLogsRequest();
|
||||
moneyLogsRequest.setUserId(Long.valueOf(purseRequest.getUserId()));//登录人
|
||||
moneyLogsRequest.setStatus(status);//状态 1:支出 2:收入
|
||||
moneyLogsRequest.setAmountIncome(doubleAmount + "");//入参金额
|
||||
moneyLogsRequest.setCreateTime(new Date());//创建时间
|
||||
moneyLogsRequest.setCreateUserId(purseRequest.getUserId());//创建人
|
||||
int i = purseMapperTwo.updateUserBalance(userMoneyLogs);
|
||||
if (i < 1){
|
||||
throw new ServiceException("系统繁忙");
|
||||
}
|
||||
//添加记录表中
|
||||
purseMapperTwo.addMoneyLogs(moneyLogsRequest);
|
||||
purseMapperTwo.addMoneyLogs(userMoneyLogs);
|
||||
}
|
||||
|
||||
/***
|
||||
|
@ -137,22 +143,20 @@ public class PurseServiceTwoImpl implements PurseServiceTwo {
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R addPurse(String userId) {
|
||||
Integer purseUserId = purseMapperTwo.purseUserId(userId);
|
||||
if (purseUserId != null ){
|
||||
public void addPurse(Long userId) {
|
||||
PurseResponse purseResponse = purseMapperTwo.purseObject(userId);
|
||||
if (purseResponse != null ){
|
||||
throw new ServiceException("已有该用户,请重新创建");
|
||||
}else{
|
||||
Date date = new Date();
|
||||
PurseRequest purseRequest = new PurseRequest();
|
||||
purseRequest.setUserId(userId);
|
||||
purseRequest.setUpdateTime(new Date());
|
||||
// purseRequest.setOrderId(new SimpleDateFormat("yyyyMMdd").format(date) + System.currentTimeMillis());
|
||||
Integer i = purseMapperTwo.addPurse(purseRequest);
|
||||
if (i>0){
|
||||
return R.ok("成功");
|
||||
}else{
|
||||
throw new ServiceException("失败");
|
||||
}
|
||||
}
|
||||
//创建钱包对象
|
||||
Purse purse = new Purse();
|
||||
purse.setUserId(userId);
|
||||
purse.setBalanceFee(0);
|
||||
purse.setWalletIncome(0);
|
||||
purse.setWalletOutcome(0);
|
||||
Integer i = purseMapperTwo.addPurse(purse);
|
||||
if (i < 1){
|
||||
throw new ServiceException("系统繁忙,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package com.ruoyi.mybasic.service;
|
||||
|
||||
import com.google.protobuf.ServiceException;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.mybasic.common.domain.request.MoneyLogsRequest;
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.MoneyLog;
|
||||
import com.ruoyi.mybasic.common.domain.RechargeLog;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
@ -15,11 +16,11 @@ import java.util.List;
|
|||
* @Author WenHao.Sao
|
||||
*/
|
||||
public interface PurseServiceTwo {
|
||||
PurseResponse purseObject(@Param("userId") Long userId);
|
||||
PurseResponse purseObject();
|
||||
|
||||
R addPurse(@Param("userId") String userId);
|
||||
void addPurse(Long userId);
|
||||
|
||||
void purseBalanceChange(PurseRequest purseRequest);
|
||||
void purseBalanceChange(UserMoneyLogs userMoneyLogs);
|
||||
|
||||
void updPurseHBi(PurseRequest purseRequest);
|
||||
|
||||
|
@ -28,4 +29,7 @@ public interface PurseServiceTwo {
|
|||
void addPurseLogs(PurseRequest purseRequest);
|
||||
|
||||
void updWithdrawPurse(PurseRequest purseRequest);
|
||||
|
||||
|
||||
void insertRechargeLog(RechargeLog rechargeLog);
|
||||
}
|
||||
|
|
|
@ -9,56 +9,56 @@
|
|||
<insert id="addPurse">
|
||||
insert into t_purse
|
||||
(
|
||||
<if test="null != userId">
|
||||
<if test="null != userId and userId != 0">
|
||||
user_id,
|
||||
</if>
|
||||
<if test="null != orderId">
|
||||
order_id,
|
||||
</if>
|
||||
update_time
|
||||
wallet_income,
|
||||
wallet_outcome,
|
||||
balance_fee,
|
||||
create_time
|
||||
)
|
||||
values
|
||||
(
|
||||
<if test="null != userId">
|
||||
#{userId},
|
||||
</if>
|
||||
<if test="null != orderId">
|
||||
#{orderId},
|
||||
</if>
|
||||
now()
|
||||
#{walletIncome},
|
||||
#{walletOutcome},
|
||||
#{balanceFee},
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
<!-- 添加记录表-->
|
||||
<insert id="addMoneyLogs">
|
||||
insert into t_money_logs
|
||||
(
|
||||
<if test="null != userId">
|
||||
<if test="null != userId and userId != 0">
|
||||
user_id,
|
||||
</if>
|
||||
<if test="null != status">
|
||||
<if test="null != status and status != 0">
|
||||
status,
|
||||
</if>
|
||||
<if test="null != amountIncome">
|
||||
<if test="null != amountIncome and amountIncome != 0">
|
||||
amount_income,
|
||||
</if>
|
||||
<if test="null != createUserId ">
|
||||
create_user_id,
|
||||
<if test="null != moneyTypeName and moneyTypeName != ''">
|
||||
amount_income,
|
||||
</if>
|
||||
create_time
|
||||
create_time
|
||||
)
|
||||
values
|
||||
(
|
||||
<if test="null != userId">
|
||||
<if test="null != userId and userId != 0">
|
||||
#{userId},
|
||||
</if>
|
||||
<if test="null != status">
|
||||
<if test="null != status and status != 0">
|
||||
#{status},
|
||||
</if>
|
||||
<if test="null != amountIncome ">
|
||||
<if test="null != amountIncome and amountIncome != 0">
|
||||
#{amountIncome},
|
||||
</if>
|
||||
<if test="null != createUserId">
|
||||
#{createUserId},
|
||||
<if test="null != moneyTypeName and moneyTypeName != ''">
|
||||
#{moneyTypeName},
|
||||
</if>
|
||||
now()
|
||||
)
|
||||
|
@ -78,17 +78,18 @@
|
|||
update_time = now()
|
||||
where user_id = #{userId}
|
||||
</update>
|
||||
|
||||
<!-- 修改收入方法-->
|
||||
<update id="updPurseOut">
|
||||
<update id="updateUserBalance">
|
||||
update t_purse
|
||||
<set>
|
||||
<if test="status != null and status == 1">
|
||||
wallet_income = wallet_income+#{amount},
|
||||
balance_fee = balance_fee + #{amount},
|
||||
wallet_outcome = wallet_outcome + #{amount},
|
||||
balance_fee = balance_fee - #{amount},
|
||||
</if>
|
||||
<if test="status != null and status == 2">
|
||||
wallet_outcome = #{amount},
|
||||
balance_fee = balance_fee - #{amount},
|
||||
wallet_income = wallet_income + #{amount},
|
||||
balance_fee = balance_fee + #{amount},
|
||||
</if>
|
||||
update_time = now()
|
||||
</set>
|
||||
|
@ -138,7 +139,14 @@
|
|||
)
|
||||
</insert>
|
||||
|
||||
<!-- 修改提现 过后的H币-->
|
||||
<insert id="insertRechargeLog">
|
||||
insert into t_recharger_log
|
||||
(user_id,recharge_type,recharge_amount,create_time)
|
||||
values
|
||||
(#{userId},#{rechargeType},#{rechargeAmount},now())
|
||||
</insert>
|
||||
|
||||
<!-- 修改提现 过后的H币-->
|
||||
<update id="updWithdrawPurse">
|
||||
update t_purse set
|
||||
balance_fee = balance_fee - (#{amount} * 100)
|
||||
|
|
Loading…
Reference in New Issue