From fecc505ff55fcfcb3a46063e62982ebc254f6558 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 27 八月 2026 17:57:55 +0800
Subject: [PATCH] feat: add standalone card charging orders
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderShareRecordMapper.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyOrderMapper.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderAccountingStrategyMapper.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderRefundService.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderAccountingStrategyServiceImpl.java | 13 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderShareRecordServiceImpl.java | 13 +
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TCardChargingOrderMapper.xml | 108 ++++++++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderAccountingStrategyService.java | 7
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrder.java | 23 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderRefundServiceImpl.java | 13 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TCardChargingOrderController.java | 52 ++++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderShareRecordService.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyOrderService.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderMapper.java | 22 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyDetailOrderServiceImpl.java | 13 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderRefundMapper.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyDetailOrderMapper.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java | 39 +++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderService.java | 20 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyOrderServiceImpl.java | 13 +
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyDetailOrder.java | 11
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderRefund.java | 11
sql/20260827_card_charging_order.sql | 234 ++++++++++++++++++
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderShareRecord.java | 11
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderAccountingStrategy.java | 11
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/CardChargingOrderQuery.java | 38 ++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyDetailOrderService.java | 7
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyOrder.java | 11
28 files changed, 726 insertions(+), 0 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyDetailOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyDetailOrder.java
new file mode 100644
index 0000000..8f36ea1
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyDetailOrder.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_card_accounting_strategy_detail_order")
+public class TCardAccountingStrategyDetailOrder extends AccountingStrategyDetailOrder {
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyOrder.java
new file mode 100644
index 0000000..968f6db
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyOrder.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_card_accounting_strategy_order")
+public class TCardAccountingStrategyOrder extends AccountingStrategyOrder {
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrder.java
new file mode 100644
index 0000000..aab6b43
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrder.java
@@ -0,0 +1,23 @@
+package com.ruoyi.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_card_charging_order")
+@ApiModel("刷卡充电订单")
+public class TCardChargingOrder extends TChargingOrder {
+
+ @ApiModelProperty("充电卡ID(分片键)")
+ @TableField("card_id")
+ private Long cardId;
+
+ @ApiModelProperty("充电卡号快照")
+ @TableField("card_no")
+ private String cardNo;
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderAccountingStrategy.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderAccountingStrategy.java
new file mode 100644
index 0000000..4fad790
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderAccountingStrategy.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_card_charging_order_accounting_strategy")
+public class TCardChargingOrderAccountingStrategy extends TChargingOrderAccountingStrategy {
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderRefund.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderRefund.java
new file mode 100644
index 0000000..e88ad6a
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderRefund.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_card_charging_order_refund")
+public class TCardChargingOrderRefund extends TChargingOrderRefund {
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderShareRecord.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderShareRecord.java
new file mode 100644
index 0000000..e2a1464
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderShareRecord.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_card_charging_order_share_record")
+public class TCardChargingOrderShareRecord extends TChargingOrderShareRecord {
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/CardChargingOrderQuery.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/CardChargingOrderQuery.java
new file mode 100644
index 0000000..b5c9871
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/CardChargingOrderQuery.java
@@ -0,0 +1,38 @@
+package com.ruoyi.order.api.query;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "CardChargingOrderQuery刷卡充电订单查询对象")
+public class CardChargingOrderQuery extends BasePage {
+
+ @ApiModelProperty("订单编号")
+ private String code;
+
+ @ApiModelProperty("充电卡ID(分片键)")
+ private Long cardId;
+
+ @ApiModelProperty("充电卡号")
+ private String cardNo;
+
+ @ApiModelProperty("订单状态")
+ private Integer status;
+
+ @ApiModelProperty("站点ID")
+ private Integer siteId;
+
+ @ApiModelProperty("充电桩ID")
+ private Integer pileId;
+
+ @ApiModelProperty("充电枪ID")
+ private Integer gunId;
+
+ @ApiModelProperty("开始时间范围")
+ private String startTime;
+
+ @ApiModelProperty("结束时间范围")
+ private String endTime;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TCardChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TCardChargingOrderController.java
new file mode 100644
index 0000000..d3b3286
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TCardChargingOrderController.java
@@ -0,0 +1,52 @@
+package com.ruoyi.order.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.order.api.query.CardChargingOrderQuery;
+import com.ruoyi.order.service.TCardChargingOrderService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/t-card-charging-order")
+@Api(tags = "管理后台-刷卡充电订单")
+public class TCardChargingOrderController {
+
+ @Resource
+ private TCardChargingOrderService cardChargingOrderService;
+
+ @GetMapping("/list")
+ @ApiOperation("刷卡充电订单列表")
+ public R<IPage<Map<String, Object>>> list(CardChargingOrderQuery query) {
+ return R.ok(cardChargingOrderService.pageList(query));
+ }
+
+ @GetMapping("/summary")
+ @ApiOperation("刷卡充电订单汇总")
+ public R<Map<String, Object>> summary(CardChargingOrderQuery query) {
+ Map<String, Object> summary = cardChargingOrderService.summary(query);
+ return R.ok(summary == null ? Collections.emptyMap() : summary);
+ }
+
+ @GetMapping("/balance-income-detail")
+ @ApiOperation("刷卡充电订单余额收入明细")
+ public R<List<Map<String, Object>>> balanceIncomeDetail(CardChargingOrderQuery query) {
+ return R.ok(cardChargingOrderService.balanceIncomeDetail(query));
+ }
+
+ @GetMapping("/accounting-strategy")
+ @ApiOperation("刷卡充电订单计费明细")
+ public R<Map<String, Object>> accountingStrategy(@RequestParam("chargingOrderId") Long chargingOrderId) {
+ List<Map<String, Object>> list = cardChargingOrderService.accountingStrategyList(chargingOrderId);
+ return R.ok(Collections.singletonMap("list", list));
+ }
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyDetailOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyDetailOrderMapper.java
new file mode 100644
index 0000000..717df3b
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyDetailOrderMapper.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.api.model.TCardAccountingStrategyDetailOrder;
+
+public interface TCardAccountingStrategyDetailOrderMapper extends BaseMapper<TCardAccountingStrategyDetailOrder> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyOrderMapper.java
new file mode 100644
index 0000000..d463852
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyOrderMapper.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.api.model.TCardAccountingStrategyOrder;
+
+public interface TCardAccountingStrategyOrderMapper extends BaseMapper<TCardAccountingStrategyOrder> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderAccountingStrategyMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderAccountingStrategyMapper.java
new file mode 100644
index 0000000..5559dbe
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderAccountingStrategyMapper.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.api.model.TCardChargingOrderAccountingStrategy;
+
+public interface TCardChargingOrderAccountingStrategyMapper extends BaseMapper<TCardChargingOrderAccountingStrategy> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderMapper.java
new file mode 100644
index 0000000..0267763
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderMapper.java
@@ -0,0 +1,22 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.order.api.model.TCardChargingOrder;
+import com.ruoyi.order.api.query.CardChargingOrderQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface TCardChargingOrderMapper extends BaseMapper<TCardChargingOrder> {
+
+ IPage<Map<String, Object>> pageList(Page<?> page, @Param("query") CardChargingOrderQuery query);
+
+ Map<String, Object> summary(@Param("query") CardChargingOrderQuery query);
+
+ List<Map<String, Object>> balanceIncomeDetail(@Param("query") CardChargingOrderQuery query);
+
+ List<Map<String, Object>> accountingStrategyList(@Param("chargingOrderId") Long chargingOrderId);
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderRefundMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderRefundMapper.java
new file mode 100644
index 0000000..8cd27a2
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderRefundMapper.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.api.model.TCardChargingOrderRefund;
+
+public interface TCardChargingOrderRefundMapper extends BaseMapper<TCardChargingOrderRefund> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderShareRecordMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderShareRecordMapper.java
new file mode 100644
index 0000000..c5adbe4
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderShareRecordMapper.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.api.model.TCardChargingOrderShareRecord;
+
+public interface TCardChargingOrderShareRecordMapper extends BaseMapper<TCardChargingOrderShareRecord> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyDetailOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyDetailOrderService.java
new file mode 100644
index 0000000..c449d40
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyDetailOrderService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.api.model.TCardAccountingStrategyDetailOrder;
+
+public interface TCardAccountingStrategyDetailOrderService extends IService<TCardAccountingStrategyDetailOrder> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyOrderService.java
new file mode 100644
index 0000000..7b9b5a3
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyOrderService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.api.model.TCardAccountingStrategyOrder;
+
+public interface TCardAccountingStrategyOrderService extends IService<TCardAccountingStrategyOrder> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderAccountingStrategyService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderAccountingStrategyService.java
new file mode 100644
index 0000000..7800f41
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderAccountingStrategyService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.api.model.TCardChargingOrderAccountingStrategy;
+
+public interface TCardChargingOrderAccountingStrategyService extends IService<TCardChargingOrderAccountingStrategy> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderRefundService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderRefundService.java
new file mode 100644
index 0000000..0ef8bb6
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderRefundService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.api.model.TCardChargingOrderRefund;
+
+public interface TCardChargingOrderRefundService extends IService<TCardChargingOrderRefund> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderService.java
new file mode 100644
index 0000000..df7776e
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.api.model.TCardChargingOrder;
+import com.ruoyi.order.api.query.CardChargingOrderQuery;
+
+import java.util.List;
+import java.util.Map;
+
+public interface TCardChargingOrderService extends IService<TCardChargingOrder> {
+
+ IPage<Map<String, Object>> pageList(CardChargingOrderQuery query);
+
+ Map<String, Object> summary(CardChargingOrderQuery query);
+
+ List<Map<String, Object>> balanceIncomeDetail(CardChargingOrderQuery query);
+
+ List<Map<String, Object>> accountingStrategyList(Long chargingOrderId);
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderShareRecordService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderShareRecordService.java
new file mode 100644
index 0000000..998cd19
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderShareRecordService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.api.model.TCardChargingOrderShareRecord;
+
+public interface TCardChargingOrderShareRecordService extends IService<TCardChargingOrderShareRecord> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyDetailOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyDetailOrderServiceImpl.java
new file mode 100644
index 0000000..b21af56
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyDetailOrderServiceImpl.java
@@ -0,0 +1,13 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.api.model.TCardAccountingStrategyDetailOrder;
+import com.ruoyi.order.mapper.TCardAccountingStrategyDetailOrderMapper;
+import com.ruoyi.order.service.TCardAccountingStrategyDetailOrderService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TCardAccountingStrategyDetailOrderServiceImpl
+ extends ServiceImpl<TCardAccountingStrategyDetailOrderMapper, TCardAccountingStrategyDetailOrder>
+ implements TCardAccountingStrategyDetailOrderService {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyOrderServiceImpl.java
new file mode 100644
index 0000000..06cb834
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyOrderServiceImpl.java
@@ -0,0 +1,13 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.api.model.TCardAccountingStrategyOrder;
+import com.ruoyi.order.mapper.TCardAccountingStrategyOrderMapper;
+import com.ruoyi.order.service.TCardAccountingStrategyOrderService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TCardAccountingStrategyOrderServiceImpl
+ extends ServiceImpl<TCardAccountingStrategyOrderMapper, TCardAccountingStrategyOrder>
+ implements TCardAccountingStrategyOrderService {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderAccountingStrategyServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderAccountingStrategyServiceImpl.java
new file mode 100644
index 0000000..b4b3865
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderAccountingStrategyServiceImpl.java
@@ -0,0 +1,13 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.api.model.TCardChargingOrderAccountingStrategy;
+import com.ruoyi.order.mapper.TCardChargingOrderAccountingStrategyMapper;
+import com.ruoyi.order.service.TCardChargingOrderAccountingStrategyService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TCardChargingOrderAccountingStrategyServiceImpl
+ extends ServiceImpl<TCardChargingOrderAccountingStrategyMapper, TCardChargingOrderAccountingStrategy>
+ implements TCardChargingOrderAccountingStrategyService {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderRefundServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderRefundServiceImpl.java
new file mode 100644
index 0000000..6085a6d
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderRefundServiceImpl.java
@@ -0,0 +1,13 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.api.model.TCardChargingOrderRefund;
+import com.ruoyi.order.mapper.TCardChargingOrderRefundMapper;
+import com.ruoyi.order.service.TCardChargingOrderRefundService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TCardChargingOrderRefundServiceImpl
+ extends ServiceImpl<TCardChargingOrderRefundMapper, TCardChargingOrderRefund>
+ implements TCardChargingOrderRefundService {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
new file mode 100644
index 0000000..79bb6c0
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
@@ -0,0 +1,39 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.api.model.TCardChargingOrder;
+import com.ruoyi.order.api.query.CardChargingOrderQuery;
+import com.ruoyi.order.mapper.TCardChargingOrderMapper;
+import com.ruoyi.order.service.TCardChargingOrderService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class TCardChargingOrderServiceImpl extends ServiceImpl<TCardChargingOrderMapper, TCardChargingOrder>
+ implements TCardChargingOrderService {
+
+ @Override
+ public IPage<Map<String, Object>> pageList(CardChargingOrderQuery query) {
+ Page<Map<String, Object>> page = new Page<>(query.getPageCurr(), query.getPageSize());
+ return baseMapper.pageList(page, query);
+ }
+
+ @Override
+ public Map<String, Object> summary(CardChargingOrderQuery query) {
+ return baseMapper.summary(query);
+ }
+
+ @Override
+ public List<Map<String, Object>> balanceIncomeDetail(CardChargingOrderQuery query) {
+ return baseMapper.balanceIncomeDetail(query);
+ }
+
+ @Override
+ public List<Map<String, Object>> accountingStrategyList(Long chargingOrderId) {
+ return baseMapper.accountingStrategyList(chargingOrderId);
+ }
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderShareRecordServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderShareRecordServiceImpl.java
new file mode 100644
index 0000000..9bac885
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderShareRecordServiceImpl.java
@@ -0,0 +1,13 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.api.model.TCardChargingOrderShareRecord;
+import com.ruoyi.order.mapper.TCardChargingOrderShareRecordMapper;
+import com.ruoyi.order.service.TCardChargingOrderShareRecordService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TCardChargingOrderShareRecordServiceImpl
+ extends ServiceImpl<TCardChargingOrderShareRecordMapper, TCardChargingOrderShareRecord>
+ implements TCardChargingOrderShareRecordService {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TCardChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TCardChargingOrderMapper.xml
new file mode 100644
index 0000000..d5fa099
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TCardChargingOrderMapper.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.order.mapper.TCardChargingOrderMapper">
+
+ <sql id="queryCondition">
+ <where>
+ o.del_flag = 0
+ <if test="query.code != null and query.code != ''">
+ AND o.code LIKE CONCAT('%', #{query.code}, '%')
+ </if>
+ <if test="query.cardId != null">
+ AND o.card_id = #{query.cardId}
+ </if>
+ <if test="query.cardNo != null and query.cardNo != ''">
+ AND o.card_no LIKE CONCAT('%', #{query.cardNo}, '%')
+ </if>
+ <if test="query.status != null">
+ AND o.status = #{query.status}
+ </if>
+ <if test="query.siteId != null">
+ AND o.site_id = #{query.siteId}
+ </if>
+ <if test="query.pileId != null">
+ AND o.charging_pile_id = #{query.pileId}
+ </if>
+ <if test="query.gunId != null">
+ AND o.charging_gun_id = #{query.gunId}
+ </if>
+ <if test="query.startTime != null and query.startTime != ''">
+ AND o.start_time >= #{query.startTime}
+ </if>
+ <if test="query.endTime != null and query.endTime != ''">
+ AND o.start_time <= #{query.endTime}
+ </if>
+ </where>
+ </sql>
+
+ <select id="pageList" resultType="java.util.LinkedHashMap">
+ SELECT o.id,
+ o.code,
+ o.card_id AS cardId,
+ o.card_no AS cardNo,
+ o.site_id AS siteId,
+ o.charging_pile_id AS chargingPileId,
+ o.charging_gun_id AS chargingGunId,
+ o.start_time AS startTime,
+ o.end_time AS endTime,
+ o.status,
+ o.order_amount AS orderAmount,
+ o.payment_amount AS paymentAmount,
+ o.electrovalence,
+ o.service_charge AS serviceCharge,
+ o.charging_capacity AS chargingCapacity,
+ o.balance_pay_amount AS balancePayAmount,
+ o.third_pay_amount AS thirdPayAmount,
+ o.refund_amount AS refundAmount,
+ o.pay_time AS payTime,
+ o.create_time AS createTime
+ FROM t_card_charging_order o
+ <include refid="queryCondition"/>
+ ORDER BY o.id DESC
+ </select>
+
+ <select id="summary" resultType="java.util.LinkedHashMap">
+ SELECT COUNT(1) AS orderCount,
+ IFNULL(SUM(o.order_amount), 0) AS orderAmount,
+ IFNULL(SUM(o.payment_amount), 0) AS paymentAmount,
+ IFNULL(SUM(o.electrovalence), 0) AS electrovalence,
+ IFNULL(SUM(o.service_charge), 0) AS serviceCharge,
+ IFNULL(SUM(o.charging_capacity), 0) AS chargingCapacity,
+ IFNULL(SUM(o.balance_pay_amount), 0) AS balancePayAmount,
+ IFNULL(SUM(o.third_pay_amount), 0) AS thirdPayAmount,
+ IFNULL(SUM(o.refund_amount), 0) AS refundAmount
+ FROM t_card_charging_order o
+ <include refid="queryCondition"/>
+ </select>
+
+ <select id="balanceIncomeDetail" resultType="java.util.LinkedHashMap">
+ SELECT o.card_id AS cardId,
+ o.card_no AS cardNo,
+ COUNT(1) AS orderCount,
+ IFNULL(SUM(o.balance_pay_amount), 0) AS balancePayAmount,
+ IFNULL(SUM(o.payment_amount), 0) AS paymentAmount
+ FROM t_card_charging_order o
+ <include refid="queryCondition"/>
+ GROUP BY o.card_id, o.card_no
+ ORDER BY balancePayAmount DESC
+ </select>
+
+ <select id="accountingStrategyList" resultType="java.util.LinkedHashMap">
+ SELECT id,
+ charging_order_id AS chargingOrderId,
+ accounting_strategy_detail_id AS accountingStrategyDetailId,
+ start_time AS startTime,
+ end_time AS endTime,
+ type,
+ electrovalence,
+ service_charge AS serviceCharge,
+ cost_service_charge AS costServiceCharge,
+ charging_capacity AS chargingCapacity,
+ period_electric_price AS periodElectricPrice,
+ period_service_price AS periodServicePrice,
+ create_time AS createTime
+ FROM t_card_charging_order_accounting_strategy
+ WHERE charging_order_id = #{chargingOrderId}
+ ORDER BY start_time ASC, id ASC
+ </select>
+</mapper>
diff --git a/sql/20260827_card_charging_order.sql b/sql/20260827_card_charging_order.sql
new file mode 100644
index 0000000..8ab9e4c
--- /dev/null
+++ b/sql/20260827_card_charging_order.sql
@@ -0,0 +1,234 @@
+-- 刷卡充电订单独立存储增量脚本
+-- MyCat 环境请分逻辑库执行:订单表在 charging_pile_order,菜单在 charging_pile_other。
+
+USE charging_pile_order;
+
+CREATE TABLE IF NOT EXISTS `t_card_charging_order` (
+ `id` bigint NOT NULL COMMENT '主键',
+ `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '订单编号',
+ `card_id` bigint NOT NULL COMMENT '充电卡ID(分片键)',
+ `card_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '充电卡号快照',
+ `order_type` int DEFAULT '2' COMMENT '订单类型(固定为刷卡充电订单)',
+ `order_classification` int DEFAULT NULL COMMENT '订单分类(1=线上,2=线下)',
+ `app_user_id` bigint DEFAULT NULL COMMENT '用户id',
+ `app_user_car_id` bigint DEFAULT NULL COMMENT '充电车辆id',
+ `plate_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '车牌号',
+ `reservation_time` datetime DEFAULT NULL COMMENT '预约充电时间',
+ `expected_vin` varchar(64) DEFAULT NULL COMMENT '支付车辆VIN快照',
+ `actual_vin` varchar(64) DEFAULT NULL COMMENT '启动时设备识别VIN',
+ `site_id` int DEFAULT NULL COMMENT '站点id',
+ `parking_lot_id` int DEFAULT NULL COMMENT '停车场id',
+ `charging_pile_id` int DEFAULT NULL COMMENT '充电桩id',
+ `charging_gun_id` int DEFAULT NULL COMMENT '充电枪id',
+ `charging_capacity` decimal(10,5) DEFAULT '0.00000' COMMENT '充电总度数',
+ `charging_power` decimal(10,4) DEFAULT NULL COMMENT '充电功率',
+ `start_time` datetime DEFAULT NULL COMMENT '充电开始时间',
+ `end_time` datetime DEFAULT NULL COMMENT '充电结束时间',
+ `status` int DEFAULT NULL COMMENT '订单状态',
+ `end_mode` int DEFAULT NULL COMMENT '结束方式',
+ `recharge_amount` decimal(10,4) DEFAULT '0.0000' COMMENT '充值金额',
+ `recharge_payment_type` int DEFAULT NULL COMMENT '充值支付方式',
+ `recharge_payment_status` int DEFAULT NULL COMMENT '充值支付状态',
+ `pay_method` int DEFAULT NULL COMMENT '充电支付模式',
+ `balance_pay_amount` decimal(10,2) DEFAULT '0.00' COMMENT '余额支付金额',
+ `third_pay_amount` decimal(10,2) DEFAULT '0.00' COMMENT '第三方支付金额',
+ `balance_refund_amount` decimal(10,2) DEFAULT '0.00' COMMENT '余额退款金额',
+ `third_refund_amount` decimal(10,2) DEFAULT '0.00' COMMENT '第三方退款金额',
+ `recharge_serial_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '充值支付第三方流水号',
+ `charge_amount` decimal(10,2) DEFAULT NULL COMMENT '充电金额',
+ `residual_amount` decimal(10,2) DEFAULT NULL COMMENT '充值剩余金额',
+ `order_amount` decimal(10,4) DEFAULT NULL COMMENT '订单金额',
+ `payment_amount` decimal(10,4) DEFAULT NULL COMMENT '支付金额',
+ `refund_amount` decimal(10,4) DEFAULT '0.0000' COMMENT '退款金额',
+ `app_coupon_id` bigint DEFAULT NULL COMMENT '优惠券id',
+ `coupon_discount_amount` decimal(10,4) DEFAULT NULL COMMENT '优惠金额',
+ `is_whitelist` tinyint NOT NULL DEFAULT '0' COMMENT '是否白名单订单',
+ `whitelist_id` bigint DEFAULT NULL COMMENT '白名单用户ID',
+ `whitelist_benefit_type` tinyint DEFAULT NULL COMMENT '白名单权益',
+ `whitelist_discount_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '白名单减免金额',
+ `whitelist_electric_refund_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '白名单电费退款金额',
+ `whitelist_service_refund_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '白名单服务费退款金额',
+ `vip_discount` decimal(10,2) DEFAULT NULL COMMENT '会员折扣',
+ `vip_discount_amount` decimal(10,4) DEFAULT NULL COMMENT '会员优惠金额',
+ `refund_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '退款流水号',
+ `refund_status` int DEFAULT NULL COMMENT '退款状态',
+ `refund_serial_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '退款第三方流水号',
+ `refund_time` datetime DEFAULT NULL COMMENT '退款成功时间',
+ `create_time` datetime DEFAULT NULL COMMENT '添加时间',
+ `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标记',
+ `order_source` int DEFAULT '1' COMMENT '订单来源',
+ `source_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '平台名称',
+ `operator_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '运营商ID',
+ `tripartite_platform_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '三方平台名称',
+ `start_charge_seq` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '三方平台充电订单号',
+ `commission_amount` decimal(10,4) DEFAULT '0.0000' COMMENT '手续费',
+ `sharing_amount` decimal(10,4) DEFAULT '0.0000' COMMENT '分佣',
+ `service_charge` decimal(10,4) DEFAULT NULL COMMENT '累计服务费',
+ `electrovalence` decimal(10,4) DEFAULT NULL COMMENT '累计电费',
+ `current` decimal(10,2) DEFAULT NULL COMMENT '电流',
+ `voltage` decimal(10,2) DEFAULT NULL COMMENT '电压',
+ `electricity` decimal(10,2) DEFAULT NULL COMMENT '电量',
+ `power` decimal(10,2) DEFAULT NULL COMMENT '功率',
+ `pay_time` datetime DEFAULT NULL COMMENT '最后支付时间',
+ `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '电话',
+ `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '订单标题',
+ `need_elec` decimal(10,2) DEFAULT NULL COMMENT '实时需求电流',
+ `total_electricity` double DEFAULT NULL COMMENT '剩余电量',
+ `start_soc` decimal(10,2) DEFAULT '0.00' COMMENT '开始SOC',
+ `end_soc` decimal(10,2) DEFAULT NULL COMMENT '结束SOC',
+ PRIMARY KEY USING BTREE (`id`),
+ KEY `idx_card_id` USING BTREE (`card_id`),
+ KEY `idx_card_no` USING BTREE (`card_no`),
+ KEY `idx_code` USING BTREE (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='刷卡充电订单'
+TBPARTITION BY MOD_HASH(card_id) TBPARTITIONS 20;
+
+CREATE TABLE IF NOT EXISTS `t_card_accounting_strategy_detail_order` (
+ `id` int NOT NULL COMMENT '计费策略明细主键id',
+ `accounting_strategy_id` int DEFAULT NULL COMMENT '策略id',
+ `type` int DEFAULT NULL COMMENT '阶段',
+ `start_time` varchar(100) DEFAULT NULL COMMENT '开始时间',
+ `end_time` varchar(100) DEFAULT NULL COMMENT '结束时间',
+ `electrovalence` double(10,4) DEFAULT NULL COMMENT '电价',
+ `service_charge` double(10,4) DEFAULT NULL COMMENT '服务费',
+ `cost_service_charge` double(10,4) DEFAULT NULL COMMENT '原价服务费',
+ `charging_order_id` bigint NOT NULL COMMENT '刷卡充电订单id(分片键)',
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
+ `del_flag` int DEFAULT '0'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='刷卡订单计费策略明细快照'
+TBPARTITION BY MOD_HASH(charging_order_id) TBPARTITIONS 20;
+
+CREATE TABLE IF NOT EXISTS `t_card_accounting_strategy_order` (
+ `id` int NOT NULL COMMENT '策略id',
+ `site_id` int DEFAULT NULL COMMENT '站点id',
+ `name` varchar(255) DEFAULT NULL COMMENT '策略名称',
+ `description` varchar(255) DEFAULT NULL COMMENT '策略说明',
+ `discount` double(10,2) DEFAULT NULL COMMENT '会员折扣',
+ `create_time` datetime DEFAULT NULL COMMENT '添加时间',
+ `del_flag` int DEFAULT '0' COMMENT '删除状态',
+ `first_user_id` bigint DEFAULT NULL COMMENT '一级审核用户id',
+ `two_user_id` bigint DEFAULT NULL COMMENT '二级审核用户id',
+ `first_remark` varchar(255) DEFAULT NULL COMMENT '一级审核备注',
+ `two_remark` varchar(255) DEFAULT NULL COMMENT '二级审核备注',
+ `audit_status` int DEFAULT '1' COMMENT '审核状态',
+ `first_audit_time` datetime DEFAULT NULL COMMENT '一级审核时间',
+ `two_audit_time` datetime DEFAULT NULL COMMENT '二级审核时间',
+ `user_id` bigint DEFAULT NULL COMMENT '申请人ID',
+ `parent_id` int DEFAULT NULL COMMENT '父级id',
+ `charging_order_id` bigint NOT NULL COMMENT '刷卡充电订单id(分片键)'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='刷卡订单计费策略快照'
+TBPARTITION BY MOD_HASH(charging_order_id) TBPARTITIONS 20;
+
+CREATE TABLE IF NOT EXISTS `t_card_charging_order_accounting_strategy` (
+ `id` bigint NOT NULL COMMENT '主键',
+ `charging_order_id` bigint NOT NULL COMMENT '刷卡充电订单id(分片键)',
+ `accounting_strategy_detail_id` bigint DEFAULT NULL COMMENT '计费策略明细id',
+ `type` int DEFAULT NULL COMMENT '阶段',
+ `start_time` varchar(100) DEFAULT NULL COMMENT '开始时间',
+ `end_time` varchar(100) DEFAULT NULL COMMENT '结束时间',
+ `electrovalence` double(10,4) DEFAULT NULL COMMENT '电价',
+ `service_charge` double(10,4) DEFAULT NULL COMMENT '服务费',
+ `cost_service_charge` double(10,4) DEFAULT NULL COMMENT '原价服务费',
+ `charging_capacity` decimal(10,4) DEFAULT NULL COMMENT '充电度数',
+ `create_time` datetime DEFAULT NULL COMMENT '首次添加时间',
+ `period_electric_price` decimal(10,4) DEFAULT NULL COMMENT '时段电费',
+ `period_service_price` decimal(10,4) DEFAULT NULL COMMENT '时段服务费',
+ `period_original_service_price` decimal(10,4) DEFAULT NULL COMMENT '时段原服务费',
+ `vip_discount_amount` decimal(10,4) DEFAULT NULL COMMENT '会员折扣金额',
+ `coupon_discount_amount` decimal(10,4) DEFAULT NULL COMMENT '优惠券抵扣金额',
+ PRIMARY KEY USING BTREE (`id`),
+ KEY `idx_card_order_id` USING BTREE (`charging_order_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='刷卡充电订单计费明细'
+TBPARTITION BY MOD_HASH(charging_order_id) TBPARTITIONS 20;
+
+CREATE TABLE IF NOT EXISTS `t_card_charging_order_refund` (
+ `id` bigint NOT NULL COMMENT '主键',
+ `charging_order_id` bigint NOT NULL COMMENT '刷卡充电订单id(分片键)',
+ `refund_code` varchar(255) DEFAULT NULL COMMENT '退款流水号',
+ `refund_amount` decimal(10,2) DEFAULT NULL COMMENT '退款金额',
+ `balance_refund_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '余额退款金额',
+ `third_refund_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '第三方退款金额',
+ `refund_status` int DEFAULT NULL COMMENT '退款状态',
+ `refund_serial_number` varchar(255) DEFAULT NULL COMMENT '退款第三方流水号',
+ `refund_time` datetime DEFAULT NULL COMMENT '退款成功时间',
+ `code` varchar(255) DEFAULT NULL COMMENT '订单编号',
+ `refund_title` varchar(255) DEFAULT NULL COMMENT '退款标题',
+ `refund_content` varchar(255) DEFAULT NULL COMMENT '退款内容',
+ `refund_reason` varchar(255) DEFAULT NULL COMMENT '退款原因',
+ `refund_remark` varchar(255) DEFAULT NULL COMMENT '退款备注',
+ `refund_total_amount` decimal(10,2) DEFAULT NULL COMMENT '累计退款金额',
+ `refund_fee` decimal(10,2) DEFAULT '0.00' COMMENT '手续费',
+ `pay_amount` decimal(10,2) DEFAULT NULL COMMENT '支付金额',
+ `pay_type` int DEFAULT NULL COMMENT '支付类型',
+ `create_time` datetime DEFAULT NULL,
+ `del_flag` int DEFAULT '0'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='刷卡充电退款明细'
+TBPARTITION BY MOD_HASH(charging_order_id) TBPARTITIONS 20;
+
+CREATE TABLE IF NOT EXISTS `t_card_charging_order_share_record` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `charging_order_id` bigint DEFAULT NULL COMMENT '刷卡充电订单ID',
+ `charging_order_code` varchar(64) NOT NULL COMMENT '刷卡充电订单号',
+ `site_id` int DEFAULT NULL COMMENT '站点ID',
+ `partner_id` int DEFAULT NULL COMMENT '合作商ID',
+ `pay_channel` varchar(16) NOT NULL COMMENT '支付渠道',
+ `channel_pay_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `channel_gift_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `channel_pay_ratio` decimal(10,6) NOT NULL DEFAULT '0.000000',
+ `channel_electricity_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `channel_service_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `electricity_share_ratio` decimal(5,2) DEFAULT NULL,
+ `service_share_ratio` decimal(5,2) DEFAULT NULL,
+ `electricity_share_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `service_share_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `share_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `need_online_share` tinyint(1) NOT NULL DEFAULT '0',
+ `online_share_status` varchar(16) NOT NULL DEFAULT 'RECORDED',
+ `seq_no` varchar(50) DEFAULT NULL,
+ `busi_type` varchar(1) DEFAULT NULL,
+ `ori_mer_id` varchar(20) DEFAULT NULL,
+ `ori_trx_date` date DEFAULT NULL,
+ `sub_order_id` varchar(50) DEFAULT NULL,
+ `sub_mer_id` varchar(20) DEFAULT NULL,
+ `sub_mer_prtcl_no` varchar(20) DEFAULT NULL,
+ `mer_acct` varchar(34) DEFAULT NULL,
+ `icbc_order_id` varchar(64) DEFAULT NULL,
+ `sub_order_seq` varchar(32) DEFAULT NULL,
+ `sub_order_trxid` varchar(64) DEFAULT NULL,
+ `rec_result` varchar(8) DEFAULT NULL,
+ `request_json` text,
+ `response_json` text,
+ `fail_reason` varchar(512) DEFAULT NULL,
+ `retry_count` int NOT NULL DEFAULT '0',
+ `last_retry_time` datetime DEFAULT NULL,
+ `create_time` datetime DEFAULT NULL,
+ `del_flag` int DEFAULT '0',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_order_channel` (`charging_order_code`,`pay_channel`),
+ KEY `idx_share_status` (`online_share_status`),
+ KEY `idx_share_sub_order_id` (`sub_order_id`),
+ KEY `idx_share_partner` (`partner_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='刷卡充电订单全渠道分账记录';
+
+USE charging_pile_other;
+
+INSERT INTO `sys_menu`
+(`menu_name`,`parent_id`,`order_num`,`path`,`component`,`query`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`update_by`,`update_time`,`remark`)
+SELECT '刷卡充电订单', 20, 2, 'cardChargingOrder', 'order/cardChargingOrder/index', '', 1, 0, 'C', '0', '0', '/cardChargingOrder', 'transaction', 'admin', NOW(), '', NULL, '刷卡充电订单独立查询'
+WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = '/cardChargingOrder');
+
+INSERT INTO `sys_menu`
+(`menu_name`,`parent_id`,`order_num`,`path`,`component`,`query`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`update_by`,`update_time`,`remark`)
+SELECT '刷卡订单详情', parent.menu_id, 1, '#', '', '', 1, 0, 'F', '0', '0', '/cardChargingOrder/detail', '#', 'admin', NOW(), '', NULL, ''
+FROM `sys_menu` parent
+WHERE parent.perms = '/cardChargingOrder'
+ AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = '/cardChargingOrder/detail');
+
+INSERT INTO `sys_role_menu` (`role_id`,`menu_id`)
+SELECT 1, menu.menu_id
+FROM `sys_menu` menu
+WHERE menu.perms IN ('/cardChargingOrder','/cardChargingOrder/detail')
+ AND NOT EXISTS (
+ SELECT 1 FROM `sys_role_menu` role_menu
+ WHERE role_menu.role_id = 1 AND role_menu.menu_id = menu.menu_id
+ );
--
Gitblit v1.7.1