Browse Source

取消发票申请

skyline 2 years ago
parent
commit
184390d8c8

+ 11 - 1
miniapp/src/main/java/com/kym/miniapp/controller/InvoiceController.java

@@ -34,7 +34,7 @@ public class InvoiceController {
      * @param request
      * @return
      */
-    @PostMapping("titleWriteNotice")
+    @PostMapping("/titleWriteNotice")
     R<?> titleWriteNotice(HttpServletRequest request) {
         return R.success();
     }
@@ -50,6 +50,16 @@ public class InvoiceController {
         return R.success(invoiceService.applyInvoice(params));
     }
 
+    /**
+     * 取消申请发票,发票抬头填写页关闭事件调用
+     * @return
+     */
+    @GetMapping("/cancelApplyInvoice")
+    R<?> cancelApplyInvoice(){
+        invoiceService.cancelApplyInvoice();
+        return R.success();
+    }
+
 
     /**
      * 发票列表

+ 2 - 0
service/src/main/java/com/kym/service/miniapp/InvoiceService.java

@@ -24,4 +24,6 @@ public interface InvoiceService extends IService<Invoice> {
     PageBean<Invoice> listInvoice(InvoiceQueryParam params);
 
     List<Invoice> listInvoiceForApp(Integer status);
+
+    void cancelApplyInvoice();
 }

+ 13 - 0
service/src/main/java/com/kym/service/miniapp/impl/InvoiceServiceImpl.java

@@ -131,4 +131,17 @@ public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> impl
         return lambdaQuery().eq(Invoice::getUserId, StpUtil.getLoginIdAsLong()).eq(status != null, Invoice::getStatus, status).list();
     }
 
+    @Override
+    public void cancelApplyInvoice() {
+        var invoiceList = lambdaQuery().eq(Invoice::getUserId, StpUtil.getLoginIdAsLong()).eq(Invoice::getStatus, Invoice.STATUS_开票中).orderByDesc(Invoice::getId).list()
+        if (!CommUtil.isEmptyOrNull(invoiceList)) {
+            var invoice = invoiceList.get(0);
+            // 发票状态已作废
+            lambdaUpdate().set(Invoice::getStatus, Invoice.STATUS_已作废).eq(Invoice::getId, invoice.getId()).update();
+            // 订单发票状态修改为待开票
+            var startChargeSeqs = invoice.getOrderDetails().stream().map(InvoiceOrderDetail::getStartChargeSeq).toList();
+            chargeOrderService.lambdaUpdate().set(ChargeOrder::getInvoiceStatus, ChargeOrder.INVOICE_STATUS_待开票).in(ChargeOrder::getStartChargeSeq, startChargeSeqs).update();
+        }
+    }
+
 }