ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyDetailOrder.java
New file @@ -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 { } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardAccountingStrategyOrder.java
New file @@ -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 { } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrder.java
New file @@ -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; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderAccountingStrategy.java
New file @@ -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 { } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderRefund.java
New file @@ -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 { } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TCardChargingOrderShareRecord.java
New file @@ -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 { } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/CardChargingOrderQuery.java
New file @@ -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; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TCardChargingOrderController.java
New file @@ -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)); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyDetailOrderMapper.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardAccountingStrategyOrderMapper.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderAccountingStrategyMapper.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderMapper.java
New file @@ -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); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderRefundMapper.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TCardChargingOrderShareRecordMapper.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyDetailOrderService.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardAccountingStrategyOrderService.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderAccountingStrategyService.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderRefundService.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderService.java
New file @@ -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); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TCardChargingOrderShareRecordService.java
New file @@ -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> { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyDetailOrderServiceImpl.java
New file @@ -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 { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardAccountingStrategyOrderServiceImpl.java
New file @@ -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 { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderAccountingStrategyServiceImpl.java
New file @@ -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 { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderRefundServiceImpl.java
New file @@ -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 { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
New file @@ -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); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderShareRecordServiceImpl.java
New file @@ -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 { } ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TCardChargingOrderMapper.xml
New file @@ -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> sql/20260827_card_charging_order.sql
New file @@ -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 );