From df9bed358a6c763e6efeef130307c54162bb9630 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 24 Sep 2021 18:44:24 +0800
Subject: [PATCH] add money flows
---
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java | 38 +++++++++
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java | 11 ++
src/main/java/cc/mrbird/febs/mall/entity/MallMoneyFlow.java | 2
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 27 ++++--
src/main/java/cc/mrbird/febs/mall/dto/MoneyFlowDto.java | 26 ++++++
src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java | 40 ++++++++++
src/main/resources/mapper/modules/MallMoneyFlowMapper.xml | 18 ++++
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java | 6 +
src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java | 3
src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java | 2
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 33 +++++++-
11 files changed, 194 insertions(+), 12 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
new file mode 100644
index 0000000..efad520
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
@@ -0,0 +1,38 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+/**
+ * @author wzy
+ * @date 2021-09-24
+ * 1-分红收入 2-业绩奖励 3-订单支付 4-退款 5-转账
+ **/
+@Getter
+public enum MoneyFlowTypeEnum {
+ /**
+ * 分红
+ */
+ BONUS(1),
+ /**
+ * 业绩
+ */
+ ACHIEVE(2),
+ /**
+ * 支付
+ */
+ PAY(3),
+ /**
+ * 退款
+ */
+ REFUND(4),
+ /**
+ * 转账
+ */
+ TRANSFER(5);
+
+ private final int value;
+
+ MoneyFlowTypeEnum(int value) {
+ this.value = value;
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
index 5a3d2de..e1a238d 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -3,9 +3,11 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.ForgetPwdDto;
import cc.mrbird.febs.mall.dto.ModifyMemberInfoDto;
+import cc.mrbird.febs.mall.dto.MoneyFlowDto;
import cc.mrbird.febs.mall.dto.TeamListDto;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.vo.MallMemberVo;
+import cc.mrbird.febs.mall.vo.MoneyFlowVo;
import cc.mrbird.febs.mall.vo.TeamListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -69,4 +71,13 @@
public FebsResponse teamList(@RequestBody TeamListDto teamListDto) {
return memberService.teamList(teamListDto);
}
+
+ @ApiOperation(value = "资金流水列表")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = MoneyFlowVo.class)
+ })
+ @PostMapping(value = "/moneyFlow")
+ public FebsResponse moneyFlow(@RequestBody MoneyFlowDto moneyFlowDto) {
+ return null;
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MoneyFlowDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MoneyFlowDto.java
new file mode 100644
index 0000000..1ceb0a8
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MoneyFlowDto.java
@@ -0,0 +1,26 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2021-09-24
+ **/
+@Data
+@ApiModel(value = "MoneyFlowDto", description = "资金流水接收参数类")
+public class MoneyFlowDto {
+
+ @ApiModelProperty(value = "一页多少个", example = "10")
+ private Integer pageSize;
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer pageNum;
+
+ @ApiModelProperty(value = "类型 1-全部 2-支出 3-收入")
+ private Integer type;
+
+ @ApiModelProperty(hidden = true)
+ private Long memberId;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMoneyFlow.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMoneyFlow.java
index 1145624..946f33f 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallMoneyFlow.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMoneyFlow.java
@@ -27,6 +27,8 @@
private String description;
+ private String remark;
+
private Long rtMemberId;
/**
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
index 026adac..2a1f6e4 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
@@ -1,8 +1,10 @@
package cc.mrbird.febs.mall.mapper;
+import cc.mrbird.febs.mall.dto.MoneyFlowDto;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMoneyFlow;
import cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo;
+import cc.mrbird.febs.mall.vo.MoneyFlowVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,4 +14,5 @@
IPage<AdminMallMoneyFlowVo> selectMoneyFlowInPage(Page<AdminMallMoneyFlowVo> page, @Param("record")MallMember mallMember);
+ IPage<MoneyFlowVo> selectApiMoneyFlowInPage(IPage<MoneyFlowVo> page, @Param("record") MoneyFlowDto moneyFlowDto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index 8871a2b..03db35f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -5,6 +5,8 @@
import cc.mrbird.febs.mall.entity.MallMember;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.math.BigDecimal;
+
public interface IApiMallMemberService extends IService<MallMember> {
FebsResponse register(RegisterDto registerDto);
@@ -23,4 +25,8 @@
FebsResponse modifyMemberInfo(ModifyMemberInfoDto modifyMemberInfoDto);
FebsResponse teamList(TeamListDto teamListDto);
+
+ FebsResponse moneyFlows(MoneyFlowDto moneyFlowDto);
+
+ void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index ae844f8..9a61d7f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -10,14 +10,13 @@
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMemberWallet;
+import cc.mrbird.febs.mall.entity.MallMoneyFlow;
import cc.mrbird.febs.mall.entity.MallShoppingCart;
-import cc.mrbird.febs.mall.mapper.MallMemberMapper;
-import cc.mrbird.febs.mall.mapper.MallMemberWalletMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
-import cc.mrbird.febs.mall.mapper.MallShoppingCartMapper;
+import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.service.ICommonService;
import cc.mrbird.febs.mall.vo.MallMemberVo;
+import cc.mrbird.febs.mall.vo.MoneyFlowVo;
import cc.mrbird.febs.mall.vo.TeamListVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
@@ -27,6 +26,8 @@
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -53,6 +54,7 @@
private final RedisUtils redisUtils;
private final MallOrderInfoMapper mallOrderInfoMapper;
private final MallShoppingCartMapper mallShoppingCartMapper;
+ private final MallMoneyFlowMapper mallMoneyFlowMapper;
@Value("${spring.profiles.active}")
private String active;
@@ -290,4 +292,27 @@
list.add(0, own);
return new FebsResponse().success().data(list);
}
+
+ @Override
+ public FebsResponse moneyFlows(MoneyFlowDto moneyFlowDto) {
+ IPage<MoneyFlowVo> page = new Page<>(moneyFlowDto.getPageNum(), moneyFlowDto.getPageSize());
+ Long id = LoginUserUtil.getLoginUser().getId();
+ moneyFlowDto.setMemberId(id);
+ IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto);
+ return new FebsResponse().success().data(pages);
+ }
+
+ @Override
+ public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status) {
+ MallMoneyFlow flow = new MallMoneyFlow();
+ flow.setMemberId(memberId);
+ flow.setAmount(amount);
+ flow.setType(type);
+ flow.setOrderNo(orderNo);
+ flow.setDescription(description);
+ flow.setRemark(remark);
+ flow.setRtMemberId(rtMemberId);
+ flow.setStatus(status);
+ mallMoneyFlowMapper.insert(flow);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index b81522d..70da7dc 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.mall.service.impl;
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.enumerates.OrderRefundStatusEnum;
import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
import cc.mrbird.febs.common.exception.FebsException;
@@ -12,8 +13,10 @@
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
+import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
+import cc.mrbird.febs.mall.service.MallMemberService;
import cc.mrbird.febs.mall.vo.OrderDetailVo;
import cc.mrbird.febs.mall.vo.OrderListVo;
import cc.mrbird.febs.mall.vo.OrderRefundVo;
@@ -55,6 +58,7 @@
private final MallOrderRefundMapper mallOrderRefundMapper;
private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
private final MallShoppingCartMapper mallShoppingCartMapper;
+ private final IApiMallMemberService memberService;
private final RedisUtils redisUtils;
@Override
@@ -161,19 +165,32 @@
throw new FebsException("订单状态不能支付");
}
+ String orderNo = "";
switch (payOrderDto.getType()) {
case "1":
// TODO 微信支付
+ orderInfo.setPayMethod("微信支付");
break;
case "2":
// TODO 支付宝支付
+ orderInfo.setPayMethod("支付宝支付");
break;
case "3":
- return balancePay(orderInfo, payOrderDto.getTradePwd());
+ orderNo = balancePay(orderInfo, payOrderDto.getTradePwd());
+
+ orderInfo.setPayMethod("积分支付");
default:
}
- return "";
+
+ orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
+ orderInfo.setPayTime(new Date());
+ orderInfo.setPayOrderNo(orderInfo.getOrderNo());
+ orderInfo.setPayResult("1");
+ this.baseMapper.updateById(orderInfo);
+
+ memberService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), null, null, null, null);
+ return orderNo;
}
private String balancePay(MallOrderInfo orderInfo, String tradePwd) {
@@ -193,12 +210,6 @@
memberWalletService.reduceBalance(orderInfo.getAmount(), mallMember.getId());
- orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
- orderInfo.setPayTime(new Date());
- orderInfo.setPayMethod("积分支付");
- orderInfo.setPayOrderNo(orderInfo.getOrderNo());
- orderInfo.setPayResult("1");
- this.baseMapper.updateById(orderInfo);
return orderInfo.getOrderNo();
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java
new file mode 100644
index 0000000..b961ce3
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java
@@ -0,0 +1,40 @@
+package cc.mrbird.febs.mall.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author wzy
+ * @date 2021-09-24
+ **/
+@Data
+@ApiModel(value = "MoneyFlowVo", description = "资金列表返回参数类")
+public class MoneyFlowVo {
+
+ @ApiModelProperty(value = "订单号")
+ private String orderNo;
+
+ @ApiModelProperty(value = "金额,有正负")
+ private BigDecimal amount;
+
+ @ApiModelProperty(value = "类型 1-分红收入 2-业绩奖励 3-订单支付 4-退款 5-转账")
+ private Integer type;
+
+ @ApiModelProperty(value = "对方手机号")
+ private String phone;
+
+ @ApiModelProperty(value = "代理等级")
+ private String memberLevel;
+
+ @ApiModelProperty(value = "提现状态 1-提现中2-成功 3-拒绝")
+ private Integer status;
+
+ @ApiModelProperty(value = "时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createdTime;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
index 4a88c14..4eacd0c 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.mall.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -23,6 +24,7 @@
private String orderNo;
@ApiModelProperty(value = "下单时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date orderTime;
@ApiModelProperty(value = "支付方式")
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index 9dfef8f..f5e1eb1 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -7,4 +7,22 @@
order by a.CREATED_TIME desc
</select>
+ <select id="selectApiMoneyFlowInPage" resultType="cc.mrbird.febs.mall.vo.MoneyFlowVo">
+ select
+ a.*,
+ b.phone
+ from mall_money_flow a
+ inner join mall_member on a.rt_member_id=b.member_id
+ <where>
+ <if test="record.type == 2">
+ and a.amount > 0
+ </if>
+ <if test="record.type == 3">
+ and 0 > a.amount
+ </if>
+ <if test="record.memberId != null">
+ and a.member_id=#{record.memberId}
+ </if>
+ </where>
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1