Merge remote-tracking branch 'origin/master'
# Conflicts: # src/main/java/com/ruoyi/mybasic/common/domain/Purse.java # src/main/java/com/ruoyi/mybasic/controller/InvitationController.javapull/1/head
commit
ecc105e79d
|
@ -0,0 +1,76 @@
|
|||
//package com.ruoyi.mybasic.Text;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
///**
|
||||
// * @ClassName Queue
|
||||
// * @Description 数据结构队列测试
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class Queue {
|
||||
//
|
||||
// private int[] dataArray;//定义了一个数组
|
||||
//
|
||||
// private int front;//队头
|
||||
//
|
||||
// private int rear;//尾端
|
||||
//
|
||||
// public Queue(int capacity){
|
||||
// this.dataArray = new int[capacity];
|
||||
// }
|
||||
//
|
||||
// public void enQueue(int element){
|
||||
// if ((rear + 1 ) % dataArray.length == front){
|
||||
// System.out.println("队伍已经满了");
|
||||
// System.out.println();
|
||||
// return;
|
||||
// }
|
||||
// dataArray[rear] = element;
|
||||
// rear = (rear + 1) % dataArray.length;
|
||||
// System.out.println("入队后队头元素为:"+dataArray[front]);
|
||||
// System.out.println("出队!后 队尾元素" + element);
|
||||
// }
|
||||
//
|
||||
// public int deQueue(){
|
||||
// if (rear == front){
|
||||
// System.out.println("队以空");
|
||||
// System.out.println("");
|
||||
// }
|
||||
// int deQueueElement = dataArray[front];
|
||||
// front = (front + 1) % dataArray.length;
|
||||
// System.out.println("出队后对头元素为:"+ dataArray[front]);
|
||||
// System.out.println("出队后队元素为:"+dataArray[rear - 1]);
|
||||
// System.out.println();
|
||||
// return deQueueElement;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// public void print(){
|
||||
// for (int i = front; i != rear - i ; i = (i+1) % dataArray.length){
|
||||
// System.out.println(dataArray[i] + "-->");
|
||||
// }
|
||||
// System.out.println(dataArray[rear -1]);
|
||||
// System.out.println();
|
||||
// }
|
||||
//
|
||||
//
|
||||
// public static void main(String[] args) {
|
||||
// Queue queue = new Queue(6);
|
||||
// queue.enQueue(1);
|
||||
// queue.enQueue(2);
|
||||
// queue.enQueue(3);
|
||||
// queue.enQueue(4);
|
||||
// queue.enQueue(5);
|
||||
// queue.enQueue(6);
|
||||
// queue.print();
|
||||
// queue.deQueue();
|
||||
// queue.deQueue();
|
||||
// queue.deQueue();
|
||||
// queue.print();
|
||||
// queue.enQueue(6);
|
||||
// queue.enQueue(7);
|
||||
// queue.print();
|
||||
// }
|
||||
//}
|
||||
//
|
|
@ -1,31 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import io.swagger.models.auth.In;
|
||||
//import lombok.Data;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//
|
||||
///**
|
||||
// * @ClassName Bank
|
||||
// * @Description 银行卡
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class Bank {
|
||||
//
|
||||
// private long id;//主建
|
||||
//
|
||||
// private String bankName;//银行名称
|
||||
//
|
||||
// private String bankNumber;//银行卡账号
|
||||
//
|
||||
// private int bankType;//银行卡类型
|
||||
//
|
||||
// private String bankImage;//银行卡照片
|
||||
//
|
||||
// private Date createTime;//绑定时间
|
||||
//
|
||||
// private int userId;//所属用户主建
|
||||
//
|
||||
// private Integer numBank;//银行卡余额
|
||||
//}
|
|
@ -1,25 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//
|
||||
///**
|
||||
// * @ClassName comment
|
||||
// * @Description 评论表
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class Comment {
|
||||
// private long id;//ID
|
||||
//
|
||||
// private long userId;//评论用户id
|
||||
//
|
||||
// private long communityOfPatientsId;//病友圈id
|
||||
//
|
||||
// private String content;//评论内容
|
||||
//
|
||||
// private Date CreateTime;//创建时间
|
||||
//
|
||||
//
|
||||
//}
|
|
@ -1,21 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
///**
|
||||
// * @ClassName Consultation
|
||||
// * @Description 问诊记录表
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class Consultation {
|
||||
// private long id;//问诊记录的id;
|
||||
//
|
||||
// private long userId;//用户登录的ID
|
||||
//
|
||||
// private int status;//状态好评率
|
||||
//
|
||||
// private Integer count;//患者问诊数量
|
||||
//
|
||||
//
|
||||
//}
|
|
@ -1,25 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//
|
||||
///**
|
||||
// * @ClassName DoctorGiftRecord
|
||||
// * @Description 医生收到的礼物列表
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class DoctorGiftRecord {
|
||||
//
|
||||
// private long id;//主键
|
||||
//
|
||||
// private long doctorId;//医生id标识
|
||||
//
|
||||
// private long benefactorId;//赠送人标识
|
||||
//
|
||||
// private int giftId;//礼物标识
|
||||
//
|
||||
// private Date createTime;//赠送时间
|
||||
//
|
||||
//}
|
|
@ -1,19 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
///**
|
||||
// * @ClassName Gift
|
||||
// * @Description 礼物表
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class Gift {
|
||||
// private long id;//id
|
||||
//
|
||||
// private String giftName;//礼物名称
|
||||
//
|
||||
// private String giftImage;//礼物图片
|
||||
//
|
||||
// private Integer giftValues;//礼物价值
|
||||
//}
|
|
@ -1,22 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
///**
|
||||
// * @ClassName Interrogation
|
||||
// * @Description 问诊表
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class Interrogation {
|
||||
//
|
||||
// private long id;//id
|
||||
//
|
||||
// private long UserId;//用户id
|
||||
//
|
||||
// private int status;//状态 问诊正在进行 0 还是结束 1
|
||||
//
|
||||
// private Integer count;//计数
|
||||
//
|
||||
// private int evaluate;//评价星星
|
||||
//}
|
|
@ -1,22 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//
|
||||
///**
|
||||
// * @ClassName InvitationRecord
|
||||
// * @Description 邀请记录表对象
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class InvitationRecord {
|
||||
// private long id;//ID
|
||||
//
|
||||
// private long inviterId;//邀请人id
|
||||
//
|
||||
// private long inviteeId;//被邀请人
|
||||
//
|
||||
// private Date createTime;//邀请时间
|
||||
//
|
||||
//}
|
|
@ -1,26 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//
|
||||
///**
|
||||
// * @ClassName moneyLogs
|
||||
// * @Description 支出收入记录表
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class MoneyLogs {
|
||||
//
|
||||
// private long id;//主键
|
||||
//
|
||||
// private int status;//状态 1:支出 2 收入
|
||||
//
|
||||
// private long moneyTypeId;//支出收入类型编号
|
||||
//
|
||||
// private Date createTime;//操作时间
|
||||
//
|
||||
// private long userId;//钱包表主键(用户主键)
|
||||
//
|
||||
//
|
||||
//}
|
|
@ -1,18 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
///**
|
||||
// * @ClassName moneyType
|
||||
// * @Description 支出收入具体详情
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class MoneyType {
|
||||
//
|
||||
// private long id;//ID
|
||||
//
|
||||
// private String moneyTypeName;//详情
|
||||
//
|
||||
//
|
||||
//}
|
|
@ -1,28 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//
|
||||
///**
|
||||
// * @ClassName MoneyWithdraw
|
||||
// * @Description 提现记录表
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class MoneyWithdraw {
|
||||
//
|
||||
// private long id;//提现记录主建
|
||||
//
|
||||
// private long userId;//提现用户编号
|
||||
//
|
||||
// private int bankId;//银行卡编号
|
||||
//
|
||||
// private Date createTime;//操作时间
|
||||
//
|
||||
// private int statue;//提现状态0:处理中 1:已提现
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//}
|
|
@ -1,16 +0,0 @@
|
|||
//package com.ruoyi.mybasic.common.domain.request;
|
||||
//
|
||||
//import com.ruoyi.mybasic.common.domain.response.BankResponse;
|
||||
//import lombok.Data;
|
||||
//
|
||||
///**
|
||||
// * @ClassName BankRequest
|
||||
// * @Description 描述
|
||||
// * @Author WenHao.Sao
|
||||
// */
|
||||
//@Data
|
||||
//public class BankRequest extends BankResponse {
|
||||
//
|
||||
// private long id;//主键
|
||||
//
|
||||
//}
|
|
@ -13,7 +13,6 @@ public class PurseRequest extends PurseResponse {
|
|||
|
||||
private String userId;//用户编号
|
||||
|
||||
|
||||
private int typePurse;//类型
|
||||
|
||||
/**
|
||||
|
@ -23,4 +22,6 @@ public class PurseRequest extends PurseResponse {
|
|||
|
||||
private int id;//银行卡id
|
||||
|
||||
private int status;//状态 1:支出 2 收入
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.mybasic.common.domain.response;
|
||||
|
||||
import com.alibaba.druid.sql.visitor.functions.Char;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
@ -18,7 +19,19 @@ public class MoneyLogsResponse {
|
|||
|
||||
private Date createTime;//操作时间
|
||||
|
||||
private String moneyTypeName;//详情
|
||||
private String moneyTypeName;//详情
|
||||
|
||||
private String amountIncome;//收入支出金额
|
||||
|
||||
private String createUserId;//创建人
|
||||
|
||||
private Char delFlag;//删除标志
|
||||
|
||||
private String updateBy;//修改人
|
||||
|
||||
private Date updateTime;//修改时间
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ import java.util.Date;
|
|||
@Data
|
||||
public class PurseResponse {
|
||||
|
||||
// private String userId;//用户编号
|
||||
|
||||
private Double balanceFee;//钱包总可用余额
|
||||
|
||||
private Date updateTime;//更新时间
|
||||
|
|
|
@ -4,6 +4,7 @@ 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.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;
|
||||
|
@ -11,13 +12,11 @@ import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
|||
import com.ruoyi.mybasic.common.domain.response.*;
|
||||
import com.ruoyi.mybasic.fegin.feignServiceTemplate;
|
||||
import com.ruoyi.mybasic.service.PurseService;
|
||||
import org.apache.commons.fileupload.FileItemFactory;
|
||||
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 org.apache.commons.fileupload.FileUpload;
|
||||
|
||||
import com.ruoyi.common.security.*;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
|
@ -40,9 +39,9 @@ public class PurseController {
|
|||
private PurseService purseService;
|
||||
|
||||
public static String SING_TYPE="RSA2";
|
||||
|
||||
//沙盒应用秘钥
|
||||
public static String ZFB__PUBLIC_KEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2lFwux/DoHe9xYh0snVBf0noHCaj4sbfy3blEIrffrlE+9WO3e1yUJac7MVo9/r4oLU1rJigTR67e21eCgF02HQCcoMj+EgSdoOUHiOVUuAxZa2kc00HORpdSbchBptpOXzov4m22hDRIdL1EpJBVWEtp+HVACFr6YvO7VUIc/FPKYX0nYW+gTBdmuKPhKatgduv8JTAkPoXx81H01xGqmJQN3lE0nuCanOzdL/NuD7PkQV5g7aRCpaoe9uz7nIIWX+igxcJkdn5GJsijSep12EWyosQkcdwfSnIhyYNf4+XSwQgDcL5IuHG3wtt+T5Aqq0T2Ec0GIPIHcJcDJWAGQIDAQAB";
|
||||
|
||||
//沙盒
|
||||
public static String APP_ID="9021000129639518";
|
||||
|
||||
|
||||
|
@ -52,6 +51,7 @@ public class PurseController {
|
|||
*/
|
||||
@PostMapping("/purseList/{userId}")
|
||||
public R<PurseResponse> purseList(@PathVariable String userId){
|
||||
Long userId1 = SecurityUtils.getUserId();
|
||||
R<PurseResponse> show = purseService.show(userId);
|
||||
return show;
|
||||
}
|
||||
|
@ -133,8 +133,6 @@ public class PurseController {
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
/***15670603477
|
||||
* 进行绑定银行卡 上传图片
|
||||
*/
|
||||
|
@ -156,19 +154,6 @@ public class PurseController {
|
|||
return purseService.in(invitationRecord);
|
||||
}
|
||||
|
||||
//调用依赖的上传文件
|
||||
|
||||
public static void main(String[] args) {
|
||||
FileUpload fileUpload = new FileUpload();
|
||||
FileItemFactory fileItemFactory = fileUpload.getFileItemFactory();
|
||||
System.out.println(fileItemFactory);
|
||||
System.out.println("21111111111111111111111111");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
package com.ruoyi.mybasic.controller;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
import com.ruoyi.mybasic.service.PurseService;
|
||||
import com.ruoyi.mybasic.service.PurseServiceTwo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.security.*;
|
||||
|
||||
/**
|
||||
* @ClassName PurseControllerTwo
|
||||
* @Description 我的钱包模块接口
|
||||
* @Author WenHao.Sao
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("purse")
|
||||
public class PurseControllerTwo {
|
||||
|
||||
@Autowired
|
||||
private PurseServiceTwo purseServiceTwo;
|
||||
|
||||
/**
|
||||
* 钱包信息接口:
|
||||
* 入参:无
|
||||
* 出参:钱包对象
|
||||
* 说明:获取当前用户id securityUtils.getUserId()
|
||||
* 根据userId查询钱包表
|
||||
*/
|
||||
@GetMapping("/purseObject")
|
||||
public R<PurseResponse> purseObject(){
|
||||
//当前登录人的UserId
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
return purseServiceTwo.purseObject(userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 充值接口:
|
||||
* 入参: 微信/充值宝渠道 充值金额
|
||||
* 出参:统一结果集
|
||||
* 说明根据入参调用微信/支付宝 api接口
|
||||
* 添加一条专门的充值记录表 状态为待处理
|
||||
* 封装api接口需要的参数对象(新增充值记录的id 微信/支付宝 充值金额等),把对象给消息队列
|
||||
* 消息队列根据消息调用api接口 消息队列根据api接口的返回结果进行不同的操作
|
||||
* 根据api接口返回结果消息队列中的操作失败:根据参数中的充值记录id 把对应记录状态改为失败
|
||||
* 成功:根据参数中的充值记录id 把对应记录状态改为成功 用户的余额增加 增加一条收支记录表
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 提现接口:
|
||||
* 入参:提现金额 绑定的银行卡id
|
||||
* 出参:统一结果集
|
||||
* 说明:先进行余额判断,判断账号钱币是否足够 不够则提示用户
|
||||
* 添加一条专门的提现记录 状态为待处理
|
||||
* 封装api接口需要的参数对象(新增提现记录的id 银行卡id 提现金额等),把对象给消息队列
|
||||
* 消息队列根据消息调用api接口 消息队列根据api接口的返回结果进行不同的操作失败:根据参数中的提现记录id 把对应记录状态改为失败
|
||||
* 成功:根据参数中的充值记录id 把对应记录状态改为成功 用户的余额减少 增加一条收支记录表
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 钱包余额改变接口:
|
||||
* 入参:对象(userId,钱币数量,收入/支出标识,类型)
|
||||
* 出参:统一结果集
|
||||
* 说明:如果是支出也要先进行余额判断
|
||||
* 根据参数给对应用户钱包的余额进行改变
|
||||
* 添加一条收支记录表
|
||||
*/
|
||||
@PostMapping("/purseBalanceChange")
|
||||
public R purseBalanceChange(@RequestBody PurseRequest purseRequest){
|
||||
return purseServiceTwo.purseBalanceChange(purseRequest);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*添加钱包:
|
||||
* 入参:userId
|
||||
* 出参:统一结果集
|
||||
* 说明:根据userId添加钱包
|
||||
*/
|
||||
@PostMapping("/addPurse/{userId}")
|
||||
public R addPurse(@PathVariable String userId){
|
||||
return purseServiceTwo.addPurse(userId);
|
||||
}
|
||||
|
||||
}
|
|
@ -8,7 +8,6 @@ import org.springframework.cloud.openfeign.FeignClient;
|
|||
* @Description 远程调用 用于调用登录服务 或者其他服务
|
||||
* @Author WenHao.Sao
|
||||
*/
|
||||
@FeignClient("")
|
||||
public interface feignServiceTemplate {
|
||||
/**
|
||||
* 一个根据前台传入的数据 后台接参
|
||||
|
|
|
@ -17,7 +17,7 @@ import java.util.List;
|
|||
* @Author WenHao.Sao
|
||||
*/
|
||||
@Mapper
|
||||
public interface purseMapper {
|
||||
public interface PurseMapper {
|
||||
|
||||
|
||||
List<MoneyLogsResponse> moneyList(@Param("userId") String userId);
|
|
@ -0,0 +1,36 @@
|
|||
package com.ruoyi.mybasic.mapper;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
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 io.swagger.models.auth.In;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @ClassName PurseMapperTwo
|
||||
* @Description 描述
|
||||
* @Author WenHao.Sao
|
||||
*/
|
||||
@Mapper
|
||||
public interface PurseMapperTwo {
|
||||
|
||||
//根据当前登录人的userId获取到钱包的对象
|
||||
PurseResponse purseObject(@Param("userId") Long userId);
|
||||
|
||||
//添加记录表
|
||||
void addMoneyLogs(MoneyLogsRequest moneyLogsRequest);
|
||||
|
||||
//支出
|
||||
void updPurseIn(PurseRequest purseRequest);
|
||||
//收入
|
||||
void updPurseOut(PurseRequest purseRequest);
|
||||
|
||||
//根据当前userId添加钱包
|
||||
Integer addPurse(PurseRequest purseRequest);
|
||||
|
||||
//查询钱包里面的用户id
|
||||
Integer purseUserId(@Param("userId") String userId);
|
||||
|
||||
}
|
|
@ -4,7 +4,7 @@ import com.ruoyi.common.core.domain.R;
|
|||
import com.ruoyi.mybasic.common.domain.request.*;
|
||||
import com.ruoyi.mybasic.common.domain.response.*;
|
||||
import com.ruoyi.mybasic.common.domain.emal.IncomeAmount;
|
||||
import com.ruoyi.mybasic.mapper.purseMapper;
|
||||
import com.ruoyi.mybasic.mapper.PurseMapper;
|
||||
import com.ruoyi.mybasic.service.PurseService;
|
||||
import com.ruoyi.system.api.RemoteFileService;
|
||||
import com.ruoyi.system.api.domain.SysFile;
|
||||
|
@ -29,7 +29,7 @@ public class PurseServiceImpl implements PurseService {
|
|||
|
||||
/** @noinspection SpringJavaInjectionPointsAutowiringInspection*/
|
||||
@Autowired
|
||||
private purseMapper purseMapper;
|
||||
private PurseMapper purseMapper;
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,139 @@
|
|||
package com.ruoyi.mybasic.service.Impl;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
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.mapper.PurseMapperTwo;
|
||||
import com.ruoyi.mybasic.service.PurseServiceTwo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @ClassName PurseServiceTwoImpl
|
||||
* @Description 描述
|
||||
* @Author WenHao.Sao
|
||||
*/
|
||||
@Service
|
||||
public class PurseServiceTwoImpl implements PurseServiceTwo {
|
||||
|
||||
/** @noinspection SpringJavaInjectionPointsAutowiringInspection*/
|
||||
@Autowired
|
||||
private PurseMapperTwo purseMapperTwo;
|
||||
|
||||
/**
|
||||
* 根据当前登录的用户userId
|
||||
* 获取到当前钱包对象
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<PurseResponse> purseObject(Long userId) {
|
||||
PurseResponse purseResponse = purseMapperTwo.purseObject(userId);
|
||||
R<PurseResponse> ok = R.ok(purseResponse);
|
||||
return ok;
|
||||
}
|
||||
|
||||
/**
|
||||
* 充值接口:
|
||||
* 入参: 微信/充值宝渠道 充值金额
|
||||
* 出参:统一结果集
|
||||
* 说明根据入参调用微信/支付宝 api接口
|
||||
* 添加一条专门的充值记录表 状态为待处理
|
||||
* 封装api接口需要的参数对象(新增充值记录的id 微信/支付宝 充值金额等),把对象给消息队列
|
||||
* 消息队列根据消息调用api接口 消息队列根据api接口的返回结果进行不同的操作
|
||||
* 根据api接口返回结果消息队列中的操作失败:根据参数中的充值记录id 把对应记录状态改为失败
|
||||
* 成功:根据参数中的充值记录id 把对应记录状态改为成功 用户的余额增加 增加一条收支记录表
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 提现接口:
|
||||
* 入参:提现金额 绑定的银行卡id
|
||||
* 出参:统一结果集
|
||||
* 说明:先进行余额判断,判断账号钱币是否足够 不够则提示用户
|
||||
* 添加一条专门的提现记录 状态为待处理
|
||||
* 封装api接口需要的参数对象(新增提现记录的id 银行卡id 提现金额等),把对象给消息队列
|
||||
* 消息队列根据消息调用api接口 消息队列根据api接口的返回结果进行不同的操作失败:根据参数中的提现记录id 把对应记录状态改为失败
|
||||
* 成功:根据参数中的充值记录id 把对应记录状态改为成功 用户的余额减少 增加一条收支记录表
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 钱包余额改变接口:
|
||||
* 入参:对象(userId,钱币数量,收入/支出标识,类型)
|
||||
* 出参:统一结果集
|
||||
* 说明:如果是支出也要先进行余额判断
|
||||
* 根据参数给对应用户钱包的余额进行改变
|
||||
* 添加一条收支记录表
|
||||
*/
|
||||
@Override
|
||||
public R purseBalanceChange(PurseRequest purseRequest) {
|
||||
//修改余额
|
||||
// Integer i = purseMapperTwo.updPurse(purseRequest);
|
||||
|
||||
//获取入参的金额
|
||||
int amount = purseRequest.getAmount();
|
||||
//转型
|
||||
Double doubleAmount = Double.valueOf(amount);
|
||||
|
||||
//获取当前用户userId
|
||||
String userId = purseRequest.getUserId();
|
||||
|
||||
//获取当前用户的余额
|
||||
PurseResponse purseResponse = purseMapperTwo.purseObject(Long.valueOf(userId));
|
||||
//当前用户的余额
|
||||
Double balanceFee = purseResponse.getBalanceFee();
|
||||
//获取到状态是收入还是支出 1:支出 2 收入
|
||||
int status = purseRequest.getStatus();
|
||||
//如果是支出 进行入参金额 和 原有金额 进行判断
|
||||
if (1 == status && doubleAmount <= balanceFee){
|
||||
//进行修改余额 支出
|
||||
purseMapperTwo.updPurseIn(purseRequest);
|
||||
}else{
|
||||
return R.fail("余额不足");
|
||||
}
|
||||
//收入
|
||||
if (2 == status){
|
||||
//进行修改余额 收入
|
||||
purseMapperTwo.updPurseOut(purseRequest);
|
||||
}
|
||||
//获取到收入 支出 记录表 对象
|
||||
MoneyLogsRequest moneyLogsRequest = new MoneyLogsRequest();
|
||||
moneyLogsRequest.setUserId(Long.valueOf(purseRequest.getUserId()));//登录人
|
||||
moneyLogsRequest.setStatus(status);//状态 1:支出 2:收入
|
||||
moneyLogsRequest.setAmountIncome(amount + "");//入参金额
|
||||
moneyLogsRequest.setCreateTime(new Date());//创建时间
|
||||
moneyLogsRequest.setCreateUserId(purseRequest.getUserId());//创建人
|
||||
//添加记录表中
|
||||
purseMapperTwo.addMoneyLogs(moneyLogsRequest);
|
||||
return R.ok("金额修改成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据userId 添加钱包
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R addPurse(String userId) {
|
||||
Integer purseUserId = purseMapperTwo.purseUserId(userId);
|
||||
if (purseUserId != null ){
|
||||
return R.fail("已有该用户,请重新创建");
|
||||
}else{
|
||||
PurseRequest purseRequest = new PurseRequest();
|
||||
purseRequest.setUserId(userId);
|
||||
purseRequest.setUpdateTime(new Date());
|
||||
Integer i = purseMapperTwo.addPurse(purseRequest);
|
||||
if (i>0){
|
||||
return R.ok("成功");
|
||||
}else{
|
||||
return R.fail("失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.ruoyi.mybasic.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
|
||||
import com.ruoyi.mybasic.common.domain.response.PurseResponse;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @ClassName PurseServiceTwo
|
||||
* @Description 描述
|
||||
* @Author WenHao.Sao
|
||||
*/
|
||||
public interface PurseServiceTwo {
|
||||
R<PurseResponse> purseObject(@Param("userId") Long userId);
|
||||
|
||||
R addPurse(@Param("userId") String userId);
|
||||
|
||||
R purseBalanceChange(PurseRequest purseRequest);
|
||||
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
<?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.mybasic.mapper.purseMapper">
|
||||
<mapper namespace="com.ruoyi.mybasic.mapper.PurseMapper">
|
||||
|
||||
|
||||
|
||||
|
@ -160,7 +160,6 @@ WHERE
|
|||
<insert id="addmonyRecord1">
|
||||
insert into money_logs
|
||||
(
|
||||
|
||||
<if test="null != moneyTypeId ">
|
||||
money_type_id,
|
||||
</if>
|
||||
|
@ -177,7 +176,6 @@ WHERE
|
|||
)
|
||||
values
|
||||
(
|
||||
|
||||
<if test="null != moneyTypeId ">
|
||||
#{moneyTypeId},
|
||||
</if>
|
|
@ -0,0 +1,95 @@
|
|||
<?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.mybasic.mapper.PurseMapperTwo">
|
||||
|
||||
<select id="purseObject" resultType="com.ruoyi.mybasic.common.domain.response.PurseResponse">
|
||||
select * from t_purse where user_id = #{userId}
|
||||
</select>
|
||||
|
||||
<insert id="addPurse">
|
||||
insert into t_purse
|
||||
(
|
||||
<if test="null != userId">
|
||||
user_id,
|
||||
</if>
|
||||
update_time
|
||||
)
|
||||
values
|
||||
(
|
||||
<if test="null != userId">
|
||||
#{userId},
|
||||
</if>
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
<!-- 添加记录表-->
|
||||
<insert id="addMoneyLogs">
|
||||
insert into t_money_logs
|
||||
(
|
||||
<if test="null != userId">
|
||||
user_id,
|
||||
</if>
|
||||
<if test="null != status">
|
||||
status,
|
||||
</if>
|
||||
<if test="null != amountIncome">
|
||||
amount_income,
|
||||
</if>
|
||||
<if test="null != createUserId ">
|
||||
create_user_id,
|
||||
</if>
|
||||
create_time
|
||||
)
|
||||
values
|
||||
(
|
||||
<if test="null != userId">
|
||||
#{userId},
|
||||
</if>
|
||||
<if test="null != status">
|
||||
#{status},
|
||||
</if>
|
||||
<if test="null != amountIncome ">
|
||||
#{amountIncome},
|
||||
</if>
|
||||
<if test="null != createUserId">
|
||||
#{createUserId},
|
||||
</if>
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
<!-- 修改支出方法-->
|
||||
<update id="updPurseIn">
|
||||
update t_purse set
|
||||
<if test="status != null and status == 2">
|
||||
wallet_income = wallet_income+#{amount},
|
||||
balance_fee = balance_fee + #{amount},
|
||||
</if>
|
||||
<if test="status != null and status == 1">
|
||||
wallet_outcome = #{amount},
|
||||
balance_fee = balance_fee - #{amount},
|
||||
</if>
|
||||
update_time = now()
|
||||
where user_id = #{userId}
|
||||
</update>
|
||||
<!-- 修改收入方法-->
|
||||
<update id="updPurseOut">
|
||||
update t_purse set
|
||||
<if test="status != null and status == 1">
|
||||
wallet_income = wallet_income+#{amount},
|
||||
balance_fee = balance_fee + #{amount},
|
||||
</if>
|
||||
<if test="status != null and status == 2">
|
||||
wallet_outcome = #{amount},
|
||||
balance_fee = balance_fee - #{amount},
|
||||
</if>
|
||||
update_time = now()
|
||||
where user_id = #{userId}
|
||||
</update>
|
||||
|
||||
<select id="purseUserId" resultType="java.lang.Integer">
|
||||
select * from t_purse where user_id = #{userId}
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue