From 444a36ac307d1c9863a5f1dd38368598b089359f Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 17 六月 2024 10:49:13 +0800
Subject: [PATCH] 提交【管理后台】订单管理-开票申请相关接口

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java |   65 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java
index 0f6adcf..9a4ee14 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java
@@ -5,7 +5,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.order.controller.management.dto.MgtMemberInvoicingAuditDTO;
 import com.ruoyi.order.controller.management.dto.MgtMemberInvoicingQuery;
 import com.ruoyi.order.controller.management.vo.MgtMemberInvoicingVO;
 import com.ruoyi.order.domain.MemberInvoice;
@@ -24,9 +27,11 @@
 import io.seata.common.util.StringUtils;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 
 /**
@@ -101,6 +106,12 @@
         return PageDTO.of(page1);
     }
 
+    /**
+     * 获取开票申请列表分页数据
+     *
+     * @param query 管理后台-开票申请相关接口
+     * @return PageDTO<MgtMemberInvoicingVO>
+     */
     @Override
     public PageDTO<MgtMemberInvoicingVO> getMemberInvoicingPage(MgtMemberInvoicingQuery query) {
         Page<MemberInvoice> page = new Page<>(query.getPageCurr(), query.getPageSize());
@@ -144,4 +155,58 @@
         });
         return pageVO;
     }
+
+    /**
+     * 查看详情
+     *
+     * @param id 开票申请id
+     * @return MgtMemberInvoicingVO
+     */
+    @Override
+    public MgtMemberInvoicingVO getMemberInvoicingDetail(Long id) {
+        MemberInvoice memberInvoice = getMemberInvoice(id);
+        MgtMemberInvoicingVO mgtMemberInvoicingVO = BeanUtils.copyBean(memberInvoice,
+                MgtMemberInvoicingVO.class);
+        // 查询用户信息
+        Member member = memberClient.getMembeOne(mgtMemberInvoicingVO.getMemberId(),
+                SecurityConstants.INNER).getData();
+        if (Objects.nonNull(member)) {
+            mgtMemberInvoicingVO.setNickname(member.getNickname());
+            mgtMemberInvoicingVO.setPhone(member.getPhone());
+        }
+        // 查询关联订单
+        List<MemberInvoiceOrder> memberInvoiceOrderList = iMemberInvoiceOrderService.lambdaQuery()
+                .eq(MemberInvoiceOrder::getInvoiceId, id).list();
+        String orderNo = memberInvoiceOrderList.stream().map(MemberInvoiceOrder::getOrderNo)
+                .collect(Collectors.joining(","));
+        mgtMemberInvoicingVO.setOrderNo(orderNo);
+        return mgtMemberInvoicingVO;
+    }
+
+    @NotNull
+    private MemberInvoice getMemberInvoice(Long id) {
+        MemberInvoice memberInvoice = this.getById(id);
+        if (Objects.isNull(memberInvoice)) {
+            throw new ServiceException("开票申请不存在");
+        }
+        return memberInvoice;
+    }
+
+    /**
+     * 审核
+     *
+     * @param dto 管理后台-开票申请审核数据传输对象
+     */
+    @Override
+    public void audit(MgtMemberInvoicingAuditDTO dto) {
+        MemberInvoice memberInvoice = getMemberInvoice(dto.getId());
+        if (!Objects.equals(memberInvoice.getInvoiceStatus(), 1)) {
+            throw new ServiceException("该开票申请已被审核");
+        }
+        memberInvoice.setInvoiceStatus(dto.getInvoiceStatus());
+        if (Objects.equals(dto.getInvoiceStatus(), 3)) {
+            memberInvoice.setRemark(dto.getRemark());
+        }
+        this.updateById(memberInvoice);
+    }
 }

--
Gitblit v1.7.1