From 529ad9dd8d1876b57e852bc45b602ba3ccc8df2a Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 10 Apr 2024 17:19:08 +0800
Subject: [PATCH] 公告-首页公告调整

---
 src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java
index 6d55625..492f7de 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java
@@ -17,15 +17,20 @@
 import cc.mrbird.febs.mall.service.MallInvoiceService;
 import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
 import cc.mrbird.febs.mall.vo.ApiMallInvoiceVo;
+import cc.mrbird.febs.pay.service.WxFaPiaoService;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 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;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
 import java.util.List;
 
 @Slf4j
@@ -36,6 +41,7 @@
     private final MallOrderInfoMapper mallOrderInfoMapper;
     private final MallOrderItemMapper mallOrderItemMapper;
     private final RedisUtils redisUtils;
+    private final WxFaPiaoService wxFaPiaoService;
     @Override
     public FebsResponse getInvoices(ApiMallInvoiceDto apiMallInvoiceDto) {
         MallMember member = LoginUserUtil.getLoginUser();
@@ -110,6 +116,7 @@
     }
 
     @Override
+    @Transactional
     public FebsResponse addInvoiceUrl(MallInvoice mallInvoice) {
         Long id = mallInvoice.getId();
         MallInvoice mallInvoiceOld = this.baseMapper.selectById(id);
@@ -125,4 +132,57 @@
         this.baseMapper.updateById(mallInvoiceOld);
         return new FebsResponse().success();
     }
+
+    @Override
+    @Transactional
+    public FebsResponse updateInvoiceDetail(Long id) {
+        MallInvoice mallInvoice = this.baseMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallInvoice)){
+            return new FebsResponse().fail().message("开票信息异常。");
+        }
+        String fapiaoApplyId = mallInvoice.getFapiaoApplyId();
+        try {
+            String userInvoiceInfo = wxFaPiaoService.getUserInvoiceInfo(fapiaoApplyId);
+            JSONObject userInvoiceInfoJson = JSONUtil.parseObj(userInvoiceInfo);
+            mallInvoice.setType(userInvoiceInfoJson.getStr("type"));
+            mallInvoice.setName(userInvoiceInfoJson.getStr("name"));
+            mallInvoice.setTaxpayerId(userInvoiceInfoJson.getStr("taxpayer_id"));
+            mallInvoice.setAddress(userInvoiceInfoJson.getStr("address"));
+            mallInvoice.setTelephone(userInvoiceInfoJson.getStr("telephone"));
+            mallInvoice.setBankName(userInvoiceInfoJson.getStr("bank_name"));
+            mallInvoice.setBankAccount(userInvoiceInfoJson.getStr("bank_account"));
+            this.baseMapper.updateById(mallInvoice);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return new FebsResponse().success();
+    }
+
+    @Override
+    @Transactional
+    public FebsResponse updateOrderDetail(Long id) {
+        MallInvoice mallInvoice = this.baseMapper.selectById(id);
+
+        if(ObjectUtil.isEmpty(mallInvoice.getFapiaoApplyId())){
+            return new FebsResponse().fail().message("订单的支付方式不是微信支付。");
+        }
+        String fapiaoApplyId = mallInvoice.getFapiaoApplyId();
+        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectBypayOrderNo(fapiaoApplyId);
+        if(OrderStatusEnum.FINISH.getValue() != mallOrderInfo.getStatus()){
+            return new FebsResponse().fail().message("当前订单还未完成。");
+        }
+        /**
+         * fapiao_apply_id
+         * 发票申请单号,唯一标识一次开票行为。微信支付场景下,为微信支付订单号;非微信支付场景下,为调用【获取抬头填写链接】接口时指定的发票申请单号
+         * 对应订单信息的pay_order_no支付订单号
+         */
+        mallInvoice.setStatus(mallOrderInfo.getStatus());
+        this.baseMapper.updateById(mallInvoice);
+        /**
+         * 更新订单为已开票
+         */
+        mallOrderInfo.setIsInvoice(1);
+        mallOrderInfoMapper.updateById(mallOrderInfo);
+        return new FebsResponse().success();
+    }
 }

--
Gitblit v1.9.1