From 6c33001421bbdc70d6d432ae0904057f832bccab Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 19 Jan 2024 16:21:33 +0800
Subject: [PATCH] fapiao

---
 src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java          |    2 +
 src/main/java/cc/mrbird/febs/pay/service/WxFaPiaoService.java              |    2 +
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java |   11 +++++
 src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java |   33 ++++++++++++++++
 src/main/resources/templates/febs/views/modules/order/invoiceList.html     |   12 ++++-
 src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java     |    3 +
 6 files changed, 59 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
index 30ab00c..cff652b 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -693,4 +693,15 @@
         return mallInvoiceService.addInvoiceUrl(mallInvoice);
     }
 
+    /**
+     * 发票列表-更新抬头
+     * @param id
+     * @return
+     */
+    @GetMapping("updateInvoiceDetail/{id}")
+    @ControllerEndpoint(operation = "发票列表-更新抬头", exceptionMessage = "操作失败")
+    public FebsResponse updateInvoiceDetail(@NotNull(message = "{required}") @PathVariable Long id) {
+        return mallInvoiceService.updateInvoiceDetail(id);
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java b/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java
index 2c8fa1c..4be679a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java
@@ -26,4 +26,6 @@
     List<MallOrderItem> invoiceItemList();
 
     FebsResponse addInvoiceUrl(MallInvoice mallInvoice);
+
+    FebsResponse updateInvoiceDetail(Long id);
 }
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..7586ece 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,30 @@
         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.setState(1);
+            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();
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/pay/service/WxFaPiaoService.java b/src/main/java/cc/mrbird/febs/pay/service/WxFaPiaoService.java
index 87fc111..7b73f49 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/WxFaPiaoService.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/WxFaPiaoService.java
@@ -22,4 +22,6 @@
     String sendGet(String url, Map<String, Object> params, String token);
 
     Map<String, Object> fapiaoCallBack(HttpServletRequest request, @RequestBody Map<String, Object> requestBody);
+
+    String getUserInvoiceInfo(String fapiaoApplyId) throws IOException;
 }
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java
index 8ea75df..341b6b6 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java
@@ -364,7 +364,7 @@
 //                        mallOrderInfo.setIsInvoice(1);
 //                        mallOrderInfoMapper.updateById(mallOrderInfo);
                         //获取用户的抬头信息
-                        String userInvoiceInfo = getUserInvoiceInfo(fapiao_apply_id);
+                        String userInvoiceInfo = this.getUserInvoiceInfo(fapiao_apply_id);
                         JSONObject userInvoiceInfoJson = JSONUtil.parseObj(userInvoiceInfo);
                         //查看当前订单是否已经开具发票
                         Long memberId = mallOrderInfo.getMemberId();
@@ -425,6 +425,7 @@
     /**
      * 获取用户的抬头信息
      */
+    @Override
     public String getUserInvoiceInfo(String fapiaoApplyId) throws IOException {
 
         //初始化请求参数
diff --git a/src/main/resources/templates/febs/views/modules/order/invoiceList.html b/src/main/resources/templates/febs/views/modules/order/invoiceList.html
index 88fd2ae..91e6dc5 100644
--- a/src/main/resources/templates/febs/views/modules/order/invoiceList.html
+++ b/src/main/resources/templates/febs/views/modules/order/invoiceList.html
@@ -111,10 +111,15 @@
                     area:['100%','100%'],
                 });
             }
+            if (layEvent === 'updateInvoiceDetail') {
+                febs.modal.confirm('更新', '是否更新用户的抬头信息?', function () {
+                    updateInvoiceDetail(data.id);
+                });
+            }
         });
 
-        function cancelOrder(id) {
-            febs.get(ctx + 'admin/order/cancelOrder/' + id, null, function () {
+        function updateInvoiceDetail(id) {
+            febs.get(ctx + 'admin/order/updateInvoiceDetail/' + id, null, function () {
                 febs.alert.success('操作成功');
                 $query.click();
             });
@@ -195,7 +200,8 @@
                         {title: '操作',
                             templet: function (d) {
                                 if(d.status === 4){
-                                    return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeInvoiceDetail" shiro:hasPermission="user:update">开票信息</button>'
+                                    return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeInvoiceDetail" shiro:hasPermission="user:update">开票信息</button>' +
+                                        '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="updateInvoiceDetail" shiro:hasPermission="user:update">更新抬头</button>'
                                 }else{
                                     return ''
                                 }

--
Gitblit v1.9.1