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