From 5c5589c0d343437275563a1a84f3a415a4ea16d3 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 17 Jun 2022 16:50:40 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 200 insertions(+), 12 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
index 3de0c88..62111f4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -2,13 +2,14 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
-import cc.mrbird.febs.mall.dto.DeliverGoodsDto;
-import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
-import cc.mrbird.febs.mall.dto.MallOrderRefundDto;
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallOrderService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.vo.*;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -19,12 +20,15 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
+@Transactional
public class AdminMallOrderService extends ServiceImpl<MallOrderInfoMapper, MallOrderInfo> implements IAdminMallOrderService {
private final MallOrderInfoMapper mallOrderInfoMapper;
@@ -37,9 +41,23 @@
private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
+ private final MallOrderRefundAddressMapper mallOrderRefundAddressMapper;
+
private final MallMoneyFlowMapper mallMoneyFlowMapper;
private final IApiMallMemberWalletService iApiMallMemberWalletService;
+
+ private final MallMemberPaymentMapper mallMemberPaymentMapper;
+
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ private final IMallMoneyFlowService mallMoneyFlowService;
+
+
+ @Override
+ public IPage<MallOrderInfo> findOrderListInPage(MallOrderInfo mallOrderInfo, QueryRequest request) {
+ Page<MallOrderInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ return this.baseMapper.selectInPage(mallOrderInfo, page);
+ }
@Override
public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) {
@@ -125,13 +143,29 @@
if(ObjectUtil.isEmpty(mallOrderRefund)){
return new FebsResponse().fail().message("系统繁忙,请刷新重试");
}
- mallOrderRefund.setStatus(2);
+ Integer status = mallOrderRefund.getStatus();
+ if(status != 1){
+ return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面");
+ }
+ mallOrderRefund.setStatus(5);
mallOrderRefundMapper.updateById(mallOrderRefund);
+
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId());
+ mallOrderInfo.setStatus(6);
+ mallOrderInfoMapper.updateById(mallOrderInfo);
+
+ if(!"微信支付".equals(mallOrderInfo.getPayMethod()) && !"支付宝支付".equals(mallOrderInfo.getPayMethod())){
+ BigDecimal amount = mallOrderRefund.getAmount();
+ //用户钱包增加对应的余额
+ iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId());
+
+ mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+ }
MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
- mallOrderRefundOperation.setContent("已同意退款申请");
+ mallOrderRefundOperation.setContent("已同意退款不退货申请");
mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
return new FebsResponse().success();
@@ -143,6 +177,10 @@
if(ObjectUtil.isEmpty(mallOrderRefund)){
return new FebsResponse().fail().message("系统繁忙,请刷新重试");
}
+ Integer status = mallOrderRefund.getStatus();
+ if(status != 1){
+ return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面");
+ }
mallOrderRefund.setStatus(3);
mallOrderRefundMapper.updateById(mallOrderRefund);
@@ -151,6 +189,10 @@
mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
mallOrderRefundOperation.setContent("不同意退款申请");
mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
+ //恢复订单状态
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId());
+ mallOrderInfo.setStatus(mallOrderRefund.getBeforeStatus());
+ mallOrderInfoMapper.updateById(mallOrderInfo);
return new FebsResponse().success();
}
@@ -160,6 +202,10 @@
MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
if(ObjectUtil.isEmpty(mallOrderRefund)){
return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+ }
+ Integer status = mallOrderRefund.getStatus();
+ if(status != 4){
+ return new FebsResponse().fail().message("申请记录不是已提交物流信息状态,请刷新页面");
}
mallOrderRefund.setStatus(5);
mallOrderRefundMapper.updateById(mallOrderRefund);
@@ -177,19 +223,161 @@
mallOrderInfo.setStatus(6);
mallOrderInfoMapper.updateById(mallOrderInfo);
+ BigDecimal refundAmount = mallOrderRefund.getAmount();
//用户钱包增加对应的余额
- iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId());
+ iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId());
//新增一条资金流水
- MallMoneyFlow mallMoneyFlow = new MallMoneyFlow();
- mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId());
- mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo());
- mallMoneyFlow.setType(4);
- mallMoneyFlow.setAmount(mallOrderInfo.getAmount());
- mallMoneyFlowMapper.insert(mallMoneyFlow);
+ mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public IPage<AdminMallOrderRefundAddressVo> getMallOrderRefundAddressInPage(MallOrderRefundAddressDto mallOrderRefundAddressDto, QueryRequest request) {
+ Page<AdminMallOrderRefundAddressVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminMallOrderRefundAddressVo> adminMallOrderRefundAddressVos = mallOrderRefundAddressMapper.getMallOrderRefundAddressInPage(page, mallOrderRefundAddressDto);
+ return adminMallOrderRefundAddressVos;
+ }
+
+ @Override
+ public AdminMallOrderRefundAddressVo getMallOrderRefundAddressInfoById(long id) {
+ AdminMallOrderRefundAddressVo AdminMallOrderRefundAddressVo = mallOrderRefundAddressMapper.getMallOrderRefundAddressInfoById(id);
+ return AdminMallOrderRefundAddressVo;
+ }
+
+ @Override
+ public FebsResponse addressUpdate(AddressUpdateDto addressUpdateDto) {
+ Long id = addressUpdateDto.getId();
+ MallOrderRefundAddress mallOrderRefundAddress = mallOrderRefundAddressMapper.selectById(id);
+ mallOrderRefundAddress.setName(addressUpdateDto.getName());
+ mallOrderRefundAddress.setPhone(addressUpdateDto.getPhone());
+ mallOrderRefundAddress.setAddress(addressUpdateDto.getAddress());
+ mallOrderRefundAddressMapper.updateById(mallOrderRefundAddress);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse deleteAddress(Long id) {
+ mallOrderRefundAddressMapper.deleteById(id);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse addAddress(AddAddressDto addAddressDto) {
+ MallOrderRefundAddress mallOrderRefundAddress = new MallOrderRefundAddress();
+ mallOrderRefundAddress.setName(addAddressDto.getName());
+ mallOrderRefundAddress.setPhone(addAddressDto.getPhone());
+ mallOrderRefundAddress.setAddress(addAddressDto.getAddress());
+ mallOrderRefundAddressMapper.insert(mallOrderRefundAddress);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public List<AdminAddAddressTreeVo> getRefundAddress() {
+ List<AdminAddAddressTreeVo> list = mallOrderRefundAddressMapper.getRefundAddress();
+ return list;
+ }
+
+ @Override
+ public FebsResponse withAddressUpdate(WithAddressUpdateDto withAddressUpdateDto) {
+ Long addressId = withAddressUpdateDto.getAddressId();
+ MallOrderRefundAddress mallOrderRefundAddress = mallOrderRefundAddressMapper.selectById(addressId);
+
+ MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(withAddressUpdateDto.getId());
+ if(ObjectUtil.isEmpty(mallOrderRefund)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+ }
+ Integer status = mallOrderRefund.getStatus();
+ if(status != 1){
+ return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面");
+ }
+ mallOrderRefund.setStatus(2);
+ mallOrderRefund.setName(mallOrderRefundAddress.getName());
+ mallOrderRefund.setPhone(mallOrderRefundAddress.getPhone());
+ mallOrderRefund.setAddress(mallOrderRefundAddress.getAddress());
+ mallOrderRefundMapper.updateById(mallOrderRefund);
+
+ MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
+ mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
+ mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
+ mallOrderRefundOperation.setContent("已同意退款退货申请");
+ mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
return new FebsResponse().success();
}
+ @Override
+ public AdminMallOrderRefundVo getMallOrderRefundInfoById(long id) {
+ return mallOrderRefundMapper.getMallOrderRefundInfoById(id);
+ }
+ @Override
+ public IPage<AdminPayMethodVo> getPayMethodListInPage(PayMethodDto payMethodDto, QueryRequest request) {
+ payMethodDto.setType("PAYMENT_METHOD");
+ Page<AdminPayMethodVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminPayMethodVo> adminPayMethodVos = dataDictionaryCustomMapper.getPayMethodListInPage(page, payMethodDto);
+ return adminPayMethodVos;
+ }
+
+ @Override
+ public AdminMallPayMethodEditVo getMallPayMethodEditInfoById(long id) {
+ AdminMallPayMethodEditVo adminMallPayMethodEditVo = dataDictionaryCustomMapper.getMallPayMethodEditInfoById(id);
+ return adminMallPayMethodEditVo;
+ }
+
+ @Override
+ public FebsResponse payMethodEdit(PayMethodEditDto payMethodEditDto) {
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(payMethodEditDto.getId());
+ if(ObjectUtil.isEmpty(dataDictionaryCustom)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+ }
+ dataDictionaryCustom.setValue(payMethodEditDto.getValue());
+ dataDictionaryCustomMapper.updateById(dataDictionaryCustom);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse cancelOrder(Long id) {
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallOrderInfo)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+ }
+ Integer status = mallOrderInfo.getStatus();
+ if(status != 2){
+ return new FebsResponse().fail().message("订单不是代发货状态");
+ }
+ mallOrderInfo.setStatus(7);
+ mallOrderInfoMapper.updateById(mallOrderInfo);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public AdminMallMemberPaymentVo getMallMemberRefundPayInfoByFlowId(long id) {
+ AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo();
+ MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
+ AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallOrderRefund.getMemberId());
+ if(ObjectUtil.isNotEmpty(adminMallMemberPaymentVoa)){
+ adminMallMemberPaymentVo = adminMallMemberPaymentVoa;
+ }
+ return adminMallMemberPaymentVo;
+ }
+
+ @Override
+ public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) {
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo());
+ if (mallOrderInfo == null) {
+ return;
+ }
+
+ MallExpressInfo mallExpressInfo = new MallExpressInfo();
+ mallExpressInfo.setMemberId(mallOrderInfo.getMemberId());
+ mallExpressInfo.setOrderId(mallOrderInfo.getId());
+ mallExpressInfo.setExpressNo(deliverGoodsDto.getExpressNo());
+ mallExpressInfo.setExpressCom(deliverGoodsDto.getExpressCom());
+ mallExpressInfo.setExpressCode(deliverGoodsDto.getExpressCode());
+ mallExpressInfoMapper.insert(mallExpressInfo);
+
+ mallOrderInfo.setStatus(3);
+ mallOrderInfoMapper.updateById(mallOrderInfo);
+ }
}
--
Gitblit v1.9.1