新增收入支出记录以及金额变更
parent
5fe464db23
commit
b7ddaceb2d
|
@ -21,15 +21,15 @@ public class Purse {
|
|||
/**
|
||||
* 钱包总收入
|
||||
*/
|
||||
private double walletIncome;
|
||||
private Integer walletIncome;
|
||||
/**
|
||||
* 钱包总支出
|
||||
*/
|
||||
private double walletOutcome;
|
||||
private Integer walletOutcome;
|
||||
/**
|
||||
* 钱包可用余额
|
||||
*/
|
||||
private double balanceFee;
|
||||
private Integer balanceFee;
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
|
|
|
@ -12,15 +12,30 @@ import java.util.Date;
|
|||
@Data
|
||||
public class PurseResponse {
|
||||
|
||||
private String userId;//用户编号
|
||||
/**
|
||||
* 用户编号
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
private Double balanceFee;//钱包总可用余额
|
||||
/**
|
||||
* 钱包总收入额
|
||||
*/
|
||||
private Integer walletIncome;
|
||||
|
||||
private Date updateTime;//更新时间
|
||||
/**
|
||||
* 钱包总支出额
|
||||
*/
|
||||
private Integer walletOutcome;
|
||||
|
||||
private Double walletIncome;//钱包总收入额
|
||||
/**
|
||||
* 钱包总可用余额
|
||||
*/
|
||||
private Integer balanceFee;
|
||||
|
||||
private Double walletOutcome;//钱包总支出额
|
||||
/**
|
||||
*更新时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.ruoyi.mybasic.controller;
|
|||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
|
||||
import com.ruoyi.mybasic.service.InvitationService;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
|
@ -34,8 +35,6 @@ public class InvitationController {
|
|||
private HttpServletRequest request;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新用户注册邀请获利
|
||||
* @param requestInvitationRecord
|
||||
|
@ -52,4 +51,20 @@ public class InvitationController {
|
|||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据记录处理金额
|
||||
* @param userMoneyLogs
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/updatePurseByLogsMoney")
|
||||
public R updatePurseByLogsMoney(@RequestBody UserMoneyLogs userMoneyLogs){
|
||||
log.info("功能介绍:根据记录处理金额,请求方式:{},请求路径:{},请求参数:{}",
|
||||
request.getMethod(),request.getRequestURI(),JSONObject.toJSONString(userMoneyLogs));
|
||||
invitationService.updatePurseByLogsMoney(userMoneyLogs);
|
||||
log.info("功能介绍:根据记录处理金额,请求方式:{},请求路劲:{},响应结果:{}",
|
||||
request.getMethod(),request.getRequestURI(),JSONObject.toJSONString(R.ok()));
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,19 +4,23 @@ import com.alipay.api.AlipayApiException;
|
|||
import com.alipay.api.internal.util.AlipaySignature;
|
||||
import com.alipay.api.response.AlipayTradePagePayResponse;
|
||||
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.common.domain.request.BankId;
|
||||
import com.ruoyi.mybasic.common.domain.request.InvitationRecordRequest;
|
||||
import com.ruoyi.mybasic.common.domain.request.MoneyTypeRequest;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.response.*;
|
||||
import com.ruoyi.mybasic.common.domain.response.BankResponse;
|
||||
import com.ruoyi.mybasic.common.domain.response.MoneyLogsResponse;
|
||||
import com.ruoyi.mybasic.common.domain.response.MoneyWithdrawResponse;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
import com.ruoyi.mybasic.fegin.feignServiceTemplate;
|
||||
import com.ruoyi.mybasic.service.PurseService;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import com.ruoyi.common.security.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
|
@ -212,7 +216,7 @@ public class PurseController {
|
|||
}
|
||||
}catch (AlipayApiException e){
|
||||
log.error(e.getErrMsg());
|
||||
throw new RuntimeException("调用支付宝接口发生异常");
|
||||
throw new ServiceException("调用支付宝接口发生异常");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.ruoyi.mybasic.mapper;
|
|||
|
||||
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.Purse;
|
||||
import com.ruoyi.mybasic.common.domain.request.InvitationRecordRequest;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
|
||||
|
@ -36,5 +37,17 @@ public interface InvitationMapper {
|
|||
int updateUserPurse(@Param("userId") Integer userId);
|
||||
|
||||
|
||||
/**
|
||||
* 添加交易记录
|
||||
* @param userMoneyLogs
|
||||
* @return
|
||||
*/
|
||||
int insertUserMoneyLogs(UserMoneyLogs userMoneyLogs);
|
||||
|
||||
/**
|
||||
* 修改钱包余额
|
||||
* @param purse
|
||||
* @return
|
||||
*/
|
||||
int updateUserMoney(Purse purse);
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.ruoyi.mybasic.service.Impl;
|
||||
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.Purse;
|
||||
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
import com.ruoyi.mybasic.mapper.InvitationMapper;
|
||||
import com.ruoyi.mybasic.service.InvitationService;
|
||||
import com.ruoyi.mybasic.service.PurseServiceTwo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
@ -25,6 +28,8 @@ public class InvitationServiceImpl implements InvitationService {
|
|||
/** @noinspection SpringJavaInjectionPointsAutowiringInspection*/
|
||||
@Autowired
|
||||
private InvitationMapper invitationMapper;
|
||||
@Autowired
|
||||
private PurseServiceTwo purseServiceTwo;
|
||||
|
||||
|
||||
|
||||
|
@ -77,4 +82,54 @@ public class InvitationServiceImpl implements InvitationService {
|
|||
invitationMapper.insertUserMoneyLogs(PurseMoneyLogsTwo);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据处理金额
|
||||
* @param userMoneyLogs
|
||||
*/
|
||||
@Override
|
||||
@Transactional//事务
|
||||
public void updatePurseByLogsMoney(UserMoneyLogs userMoneyLogs) {
|
||||
//初始值
|
||||
int i = 0;
|
||||
//获取钱包的id
|
||||
Integer userId = userMoneyLogs.getUserId();
|
||||
|
||||
//具体金额
|
||||
Integer amountIncome = userMoneyLogs.getAmountIncome();
|
||||
|
||||
//判断该条记录为支出记录还是为消费记录
|
||||
//1:支出
|
||||
//2:收入
|
||||
Integer status = userMoneyLogs.getStatus();
|
||||
|
||||
//查询钱包当前信息
|
||||
PurseResponse purseResponse = purseServiceTwo.purseObject(Long.valueOf(userId));
|
||||
Purse purse = new Purse();
|
||||
purse.setUserId(userId);
|
||||
purse.setUpdateTime(new Date());
|
||||
if (status == 1){
|
||||
//判断余额是否充足
|
||||
if (purseResponse.getBalanceFee() < amountIncome){
|
||||
throw new RuntimeException("钱包内余额不足!");
|
||||
}
|
||||
//支出操作
|
||||
purse.setBalanceFee(purseResponse.getBalanceFee() - amountIncome);
|
||||
purse.setWalletOutcome(purseResponse.getWalletOutcome() + amountIncome);
|
||||
}else{
|
||||
//收入操作
|
||||
purse.setBalanceFee(purseResponse.getBalanceFee() + amountIncome);
|
||||
purse.setWalletIncome(purseResponse.getWalletIncome() + amountIncome);
|
||||
}
|
||||
//修改钱包余额
|
||||
i = invitationMapper.updateUserMoney(purse);
|
||||
if (i < 0){
|
||||
throw new RuntimeException("钱包余额变更失败!");
|
||||
}
|
||||
//余额变更后添加记录表
|
||||
i = invitationMapper.insertUserMoneyLogs(userMoneyLogs);
|
||||
if (i < 0){
|
||||
throw new RuntimeException("订单未生效!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.mybasic.service;
|
||||
|
||||
import com.ruoyi.mybasic.api.domain.UserMoneyLogs;
|
||||
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
|
||||
|
||||
/**
|
||||
|
@ -21,4 +22,10 @@ public interface InvitationService {
|
|||
*/
|
||||
void UserInviteTask(RequestInvitationRecord requestInvitationRecord);
|
||||
|
||||
|
||||
/**
|
||||
* 根据记录处理金额
|
||||
* @param userMoneyLogs
|
||||
*/
|
||||
void updatePurseByLogsMoney(UserMoneyLogs userMoneyLogs);
|
||||
}
|
||||
|
|
|
@ -64,4 +64,14 @@ FROM
|
|||
WHERE
|
||||
user_id = #{userId}
|
||||
</update>
|
||||
<!-- 修改钱包余额-->
|
||||
<update id="updateUserMoney">
|
||||
UPDATE t_purse
|
||||
SET wallet_income = #{walletIncome},
|
||||
wallet_outcome = #{walletOutcome},
|
||||
balance_fee = #{balanceFee},
|
||||
update_time = #{updateTime}
|
||||
WHERE
|
||||
user_id = #{userId}
|
||||
</update>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue