调整
This commit is contained in:
@@ -1,266 +1,309 @@
|
||||
-- 基础实体表结构 (BaseDO) 不单独建表,字段会被继承到其他表中
|
||||
|
||||
-- 交易订单表 (trade_order)
|
||||
CREATE TABLE `tz_trade_order`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单编号,主键自增',
|
||||
`order_num` varchar(64) NOT NULL COMMENT '订单流水号',
|
||||
`order_type` tinyint(4) NOT NULL COMMENT '订单类型 (枚举 TradeOrderTypeEnum)',
|
||||
`order_terminal` tinyint(4) NOT NULL COMMENT '订单来源 (枚举 TerminalEnum)',
|
||||
`order_status` tinyint(4) NOT NULL COMMENT '订单状态 (枚举 TradeOrderStatusEnum)',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`user_ip` varchar(64) DEFAULT NULL COMMENT '用户IP',
|
||||
`user_remark` varchar(512) DEFAULT NULL COMMENT '用户备注',
|
||||
`finish_time` datetime DEFAULT NULL COMMENT '订单完成时间',
|
||||
`cancel_time` datetime DEFAULT NULL COMMENT '订单取消时间',
|
||||
`cancel_type` tinyint(4) DEFAULT NULL COMMENT '取消类型 (枚举 TradeOrderCancelTypeEnum)',
|
||||
`merchant_remark` varchar(512) DEFAULT NULL COMMENT '商家备注',
|
||||
`comment_status` tinyint(1) DEFAULT NULL COMMENT '是否评价 (true-已评价, false-未评价)',
|
||||
`total_price` int(11) NOT NULL COMMENT '商品原价,单位:分',
|
||||
`discount_price` int(11) NOT NULL COMMENT '优惠金额,单位:分',
|
||||
`delivery_price` int(11) NOT NULL COMMENT '运费金额,单位:分',
|
||||
`adjust_price` int(11) NOT NULL COMMENT '订单调价,单位:分',
|
||||
`pay_price` int(11) NOT NULL COMMENT '应付金额(总),单位:分',
|
||||
`pay_order_id` bigint(20) DEFAULT NULL COMMENT '支付订单编号',
|
||||
`pay_status` tinyint(1) NOT NULL COMMENT '是否已支付 (true-已支付, false-未支付)',
|
||||
`pay_time` datetime DEFAULT NULL COMMENT '付款时间',
|
||||
`pay_channel_code` varchar(64) DEFAULT NULL COMMENT '支付渠道',
|
||||
`delivery_type` tinyint(4) NOT NULL COMMENT '配送方式 (枚举 DeliveryTypeEnum)',
|
||||
`logistics_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '发货物流公司编号',
|
||||
`logistics_no` varchar(64) DEFAULT '' COMMENT '发货物流单号',
|
||||
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
|
||||
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
|
||||
`receiver_name` varchar(64) NOT NULL COMMENT '收件人名称',
|
||||
`receiver_mobile` varchar(20) NOT NULL COMMENT '收件人手机',
|
||||
`receiver_area_id` int(11) NOT NULL COMMENT '收件人地区编号',
|
||||
`receiver_detail_address` varchar(512) NOT NULL COMMENT '收件人详细地址',
|
||||
`pick_up_store_id` bigint(20) DEFAULT NULL COMMENT '自提门店编号',
|
||||
`pick_up_verify_code` varchar(64) DEFAULT NULL COMMENT '自提核销码',
|
||||
`refund_status` tinyint(4) NOT NULL COMMENT '退款状态 (枚举 TradeOrderRefundStatusEnum)',
|
||||
`refund_price` int(11) NOT NULL COMMENT '退款金额,单位:分',
|
||||
`after_sale_id` bigint(20) DEFAULT NULL COMMENT '售后单编号',
|
||||
`after_sale_status` tinyint(4) NOT NULL COMMENT '售后状态 (枚举 TradeOrderItemAfterSaleStatusEnum)',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单编号,主键自增',
|
||||
`order_num` varchar(64) NOT NULL COMMENT '订单流水号',
|
||||
`order_category_id` bigint NOT NULL COMMENT '订单类目id',
|
||||
`order_category_name` varchar(64) NOT NULL COMMENT '订单类目名称',
|
||||
`order_type` tinyint NOT NULL COMMENT '订单类型 (枚举 TradeOrderTypeEnum)',
|
||||
`order_terminal` tinyint NOT NULL COMMENT '订单来源 (枚举 TerminalEnum)',
|
||||
`order_status` tinyint NOT NULL COMMENT '订单状态 (枚举 TradeOrderStatusEnum)',
|
||||
`user_id` bigint NOT NULL COMMENT '用户编号',
|
||||
`user_ip` varchar(64) DEFAULT NULL COMMENT '用户IP',
|
||||
`user_name` varchar(64) DEFAULT NULL COMMENT '用户昵称',
|
||||
`user_mobile` varchar(11) DEFAULT NULL COMMENT '用户手机号',
|
||||
`user_remark` varchar(512) DEFAULT NULL COMMENT '用户备注',
|
||||
`finish_time` datetime DEFAULT NULL COMMENT '订单完成时间',
|
||||
`cancel_time` datetime DEFAULT NULL COMMENT '订单取消时间',
|
||||
`cancel_type` tinyint DEFAULT NULL COMMENT '取消类型 (枚举 TradeOrderCancelTypeEnum)',
|
||||
`cancel_reason` varchar(128) DEFAULT NULL COMMENT '取消原因',
|
||||
`merchant_id` bigint DEFAULT NULL COMMENT '商家编号',
|
||||
`merchant_name` varchar(64) DEFAULT NULL COMMENT '商家名称',
|
||||
`merchant_remark` varchar(512) DEFAULT NULL COMMENT '商家备注',
|
||||
`comment_status` tinyint(1) DEFAULT NULL COMMENT '是否评价 (true-已评价, false-未评价)',
|
||||
`expense_price` int(11) DEFAULT NULL COMMENT '商品成本(单),单位:分',
|
||||
`price` int(11) DEFAULT NULL COMMENT '商品原价(单),单位:分',
|
||||
`discount_price` int(11) DEFAULT NULL COMMENT '优惠金额(总),单位:分',
|
||||
`delivery_price` int(11) DEFAULT NULL COMMENT '运费金额(总),单位:分',
|
||||
`adjust_price` int(11) DEFAULT NULL COMMENT '订单调价(总),单位:分',
|
||||
`pay_price` int(11) DEFAULT NULL COMMENT '应付金额(总),单位:分',
|
||||
`live_price` int(11) DEFAULT NULL COMMENT '实收金额(总),单位:分',
|
||||
`pay_order_id` bigint DEFAULT NULL COMMENT '支付订单编号',
|
||||
`pay_status` tinyint(1) DEFAULT NULL COMMENT '是否已支付 (true-已支付, false-未支付)',
|
||||
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式(PayTypeEnum)',
|
||||
`pay_time` datetime DEFAULT NULL COMMENT '付款时间',
|
||||
`pay_channel_code` tinyint DEFAULT NULL COMMENT '支付渠道(PayTypeEnum)',
|
||||
`delivery_type` tinyint DEFAULT NULL COMMENT '配送方式 (枚举 DeliveryTypeEnum)',
|
||||
`logistics_id` bigint DEFAULT '0' COMMENT '发货物流公司编号',
|
||||
`logistics_no` varchar(64) DEFAULT '' COMMENT '发货物流单号',
|
||||
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
|
||||
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
|
||||
`receiver_name` varchar(64) DEFAULT NULL COMMENT '收件人名称',
|
||||
`receiver_mobile` varchar(20) DEFAULT NULL COMMENT '收件人手机',
|
||||
`receiver_area_id` int DEFAULT NULL COMMENT '收件人地区编号',
|
||||
`receiver_detail_address` varchar(512) DEFAULT NULL COMMENT '收件人详细地址',
|
||||
`pick_up_store_id` bigint DEFAULT NULL COMMENT '自提门店编号',
|
||||
`pick_up_verify_code` varchar(64) DEFAULT NULL COMMENT '自提核销码',
|
||||
`refund_status` tinyint DEFAULT NULL COMMENT '退款状态 (枚举 TradeOrderRefundStatusEnum)',
|
||||
`refund_price` int DEFAULT NULL COMMENT '退款金额,单位:分',
|
||||
`refund_time` datetime DEFAULT NULL COMMENT '退款时间',
|
||||
`after_sale_id` bigint DEFAULT NULL COMMENT '售后单编号',
|
||||
`after_sale_status` tinyint DEFAULT NULL COMMENT '售后状态 (枚举 TradeOrderItemAfterSaleStatusEnum)',
|
||||
`finance_id` bigint DEFAULT NULL COMMENT '财务单编号',
|
||||
`finance_status` tinyint DEFAULT NULL COMMENT '财务状态 (枚举 TradeOrderItemFinanceEnum)',
|
||||
`version` int NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) DEFAULT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) DEFAULT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_order_num` (`order_num`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_status` (`order_status`),
|
||||
KEY `idx_pay_status` (`pay_status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易订单表';
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_status` (`order_status`),
|
||||
KEY `idx_pay_status` (`pay_status`)
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 2
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_0900_ai_ci COMMENT ='交易订单表';
|
||||
|
||||
|
||||
-- 交易订单项表 (trade_order_item)
|
||||
CREATE TABLE `tz_trade_order_item`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`order_id` bigint(20) NOT NULL COMMENT '订单编号',
|
||||
`cart_id` bigint(20) DEFAULT NULL COMMENT '购物车项编号',
|
||||
`prod_id` bigint(20) NOT NULL COMMENT '商品 SPU 编号',
|
||||
`prod_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称',
|
||||
`sku_id` bigint(20) NOT NULL COMMENT '商品 SKU 编号',
|
||||
`properties` json DEFAULT NULL COMMENT '属性数组',
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`order_id` bigint(20) NOT NULL COMMENT '订单编号',
|
||||
`cart_id` bigint(20) DEFAULT NULL COMMENT '购物车项编号',
|
||||
`spu_id` bigint(20) NOT NULL COMMENT '商品 SPU 编号',
|
||||
`spu_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称',
|
||||
`spu_type` tinyint(1) NOT NULL COMMENT '商品类型(1商品 2服务)',
|
||||
`sku_id` bigint(20) NOT NULL COMMENT '商品 SKU 编号',
|
||||
`sku_name` bigint(20) NOT NULL COMMENT '商品 SKU 名称',
|
||||
`pic_url` varchar(512) NOT NULL COMMENT '商品图片',
|
||||
`count` int(11) NOT NULL COMMENT '购买数量',
|
||||
`price` int(11) NOT NULL COMMENT '商品原价(单),单位:分',
|
||||
`discount_price` int(11) NOT NULL COMMENT '优惠金额(总),单位:分',
|
||||
`delivery_price` int(11) NOT NULL COMMENT '运费金额(总),单位:分',
|
||||
`adjust_price` int(11) NOT NULL COMMENT '订单调价(总),单位:分',
|
||||
`pay_price` int(11) NOT NULL COMMENT '应付金额(总),单位:分',
|
||||
`serve_ext_info` json DEFAULT NULL COMMENT '扩展服务信息,存储额外的服务相关数据',
|
||||
`price_ext_info` json DEFAULT NULL COMMENT '附加费信息',
|
||||
`count` int(11) NOT NULL COMMENT '购买数量',
|
||||
`unit` varchar(16) NOT NULL COMMENT '商品单位',
|
||||
`expense_price` int(11) NOT NULL COMMENT '商品成本(单),单位:分',
|
||||
`price` int(11) NOT NULL COMMENT '商品原价(单),单位:分',
|
||||
`discount_price` int(11) NOT NULL COMMENT '优惠金额(总),单位:分',
|
||||
`delivery_price` int(11) NOT NULL COMMENT '运费金额(总),单位:分',
|
||||
`adjust_price` int(11) NOT NULL COMMENT '订单调价(总),单位:分',
|
||||
`pay_price` int(11) NOT NULL COMMENT '应付金额(总),单位:分',
|
||||
`live_price` int(11) NOT NULL COMMENT '实收金额(总),单位:分',
|
||||
`sub_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '预约类型(1预约 2 加急)',
|
||||
`sub_time` datetime NOT NULL COMMENT '预约时间',
|
||||
`serve_address` datetime NOT NULL COMMENT '服务地址',
|
||||
`properties` json DEFAULT NULL COMMENT '属性数组',
|
||||
`serve_info` json DEFAULT NULL COMMENT '服务信息',
|
||||
`serve_ext_info` json DEFAULT NULL COMMENT '扩展服务信息,存储额外的服务相关数据',
|
||||
`price_ext_info` json DEFAULT NULL COMMENT '附加费信息',
|
||||
`version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_order_id` (`order_id`),
|
||||
KEY `idx_sku_id` (`sku_id`),
|
||||
KEY `idx_user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易订单项表';
|
||||
KEY `idx_order_id` (`order_id`),
|
||||
KEY `idx_sku_id` (`sku_id`),
|
||||
KEY `idx_user_id` (`user_id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='交易订单项表';
|
||||
|
||||
|
||||
-- 订单日志表 (trade_order_log)
|
||||
CREATE TABLE `tz_trade_order_log`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`user_type` tinyint(4) NOT NULL COMMENT '用户类型 (枚举 UserTypeEnum)',
|
||||
`order_id` bigint(20) NOT NULL COMMENT '订单号',
|
||||
`before_status` int(11) DEFAULT NULL COMMENT '操作前状态',
|
||||
`after_status` int(11) DEFAULT NULL COMMENT '操作后状态',
|
||||
`operate_type` tinyint(4) NOT NULL COMMENT '操作类型 (枚举 TradeOrderOperateTypeEnum)',
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`user_type` tinyint(4) NOT NULL COMMENT '用户类型 (枚举 UserTypeEnum)',
|
||||
`order_id` bigint(20) NOT NULL COMMENT '订单号',
|
||||
`before_status` int(11) DEFAULT NULL COMMENT '操作前状态',
|
||||
`after_status` int(11) DEFAULT NULL COMMENT '操作后状态',
|
||||
`operate_type` tinyint(4) NOT NULL COMMENT '操作类型 (枚举 TradeOrderOperateTypeEnum)',
|
||||
`content` varchar(1024) NOT NULL COMMENT '订单日志信息',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_order_id` (`order_id`),
|
||||
KEY `idx_user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单日志表';
|
||||
KEY `idx_order_id` (`order_id`),
|
||||
KEY `idx_user_id` (`user_id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='订单日志表';
|
||||
|
||||
-- 售后订单表 (tz_trade_after_sale)
|
||||
CREATE TABLE `tz_trade_after_sale` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '售后编号,主键自增',
|
||||
`no` varchar(64) NOT NULL COMMENT '售后单号',
|
||||
`status` tinyint(4) NOT NULL COMMENT '退款状态 (枚举 AfterSaleStatusEnum)',
|
||||
`way` tinyint(4) NOT NULL COMMENT '售后方式 (枚举 AfterSaleWayEnum)',
|
||||
`type` tinyint(4) NOT NULL COMMENT '售后类型 (枚举 AfterSaleTypeEnum)',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`apply_reason` varchar(256) NOT NULL COMMENT '申请原因',
|
||||
`apply_description` varchar(512) DEFAULT NULL COMMENT '补充描述',
|
||||
`apply_pic_urls` json DEFAULT NULL COMMENT '补充凭证图片',
|
||||
`order_id` bigint(20) NOT NULL COMMENT '交易订单编号',
|
||||
`order_no` varchar(64) NOT NULL COMMENT '订单流水号',
|
||||
`order_item_id` bigint(20) NOT NULL COMMENT '交易订单项编号',
|
||||
`prod_id` bigint(20) NOT NULL COMMENT '商品 SPU 编号',
|
||||
`prod_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称',
|
||||
`sku_id` bigint(20) NOT NULL COMMENT '商品 SKU 编号',
|
||||
`properties` json DEFAULT NULL COMMENT '属性数组',
|
||||
`pic_url` varchar(512) DEFAULT NULL COMMENT '商品图片',
|
||||
`count` int(11) NOT NULL COMMENT '退货商品数量',
|
||||
`audit_time` datetime DEFAULT NULL COMMENT '审批时间',
|
||||
`audit_user_id` bigint(20) DEFAULT NULL COMMENT '审批人',
|
||||
`audit_reason` varchar(512) DEFAULT NULL COMMENT '审批备注',
|
||||
`refund_price` int(11) NOT NULL COMMENT '退款金额,单位:分',
|
||||
`pay_refund_id` bigint(20) DEFAULT NULL COMMENT '支付退款编号',
|
||||
`refund_time` datetime DEFAULT NULL COMMENT '退款时间',
|
||||
`logistics_id` bigint(20) DEFAULT NULL COMMENT '退货物流公司编号',
|
||||
`logistics_no` varchar(64) DEFAULT NULL COMMENT '退货物流单号',
|
||||
`delivery_time` datetime DEFAULT NULL COMMENT '退货时间',
|
||||
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
|
||||
`receive_reason` varchar(512) DEFAULT NULL COMMENT '收货备注',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_no` (`no`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_order_id` (`order_id`),
|
||||
KEY `idx_order_item_id` (`order_item_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='售后订单表';
|
||||
CREATE TABLE `tz_trade_after_sale`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '售后编号,主键自增',
|
||||
`no` varchar(64) NOT NULL COMMENT '售后单号',
|
||||
`status` tinyint(4) NOT NULL COMMENT '退款状态 (枚举 AfterSaleStatusEnum)',
|
||||
`way` tinyint(4) NOT NULL COMMENT '售后方式 (枚举 AfterSaleWayEnum)',
|
||||
`type` tinyint(4) NOT NULL COMMENT '售后类型 (枚举 AfterSaleTypeEnum)',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`apply_reason` varchar(256) NOT NULL COMMENT '申请原因',
|
||||
`apply_description` varchar(512) DEFAULT NULL COMMENT '补充描述',
|
||||
`apply_pic_urls` json DEFAULT NULL COMMENT '补充凭证图片',
|
||||
`order_id` bigint(20) NOT NULL COMMENT '交易订单编号',
|
||||
`order_no` varchar(64) NOT NULL COMMENT '订单流水号',
|
||||
`order_item_id` bigint(20) NOT NULL COMMENT '交易订单项编号',
|
||||
`prod_id` bigint(20) NOT NULL COMMENT '商品 SPU 编号',
|
||||
`prod_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称',
|
||||
`sku_id` bigint(20) NOT NULL COMMENT '商品 SKU 编号',
|
||||
`properties` json DEFAULT NULL COMMENT '属性数组',
|
||||
`pic_url` varchar(512) DEFAULT NULL COMMENT '商品图片',
|
||||
`count` int(11) NOT NULL COMMENT '退货商品数量',
|
||||
`audit_time` datetime DEFAULT NULL COMMENT '审批时间',
|
||||
`audit_user_id` bigint(20) DEFAULT NULL COMMENT '审批人',
|
||||
`audit_reason` varchar(512) DEFAULT NULL COMMENT '审批备注',
|
||||
`refund_price` int(11) NOT NULL COMMENT '退款金额,单位:分',
|
||||
`pay_refund_id` bigint(20) DEFAULT NULL COMMENT '支付退款编号',
|
||||
`refund_time` datetime DEFAULT NULL COMMENT '退款时间',
|
||||
`logistics_id` bigint(20) DEFAULT NULL COMMENT '退货物流公司编号',
|
||||
`logistics_no` varchar(64) DEFAULT NULL COMMENT '退货物流单号',
|
||||
`delivery_time` datetime DEFAULT NULL COMMENT '退货时间',
|
||||
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
|
||||
`receive_reason` varchar(512) DEFAULT NULL COMMENT '收货备注',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_no` (`no`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_order_id` (`order_id`),
|
||||
KEY `idx_order_item_id` (`order_item_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='售后订单表';
|
||||
|
||||
-- 交易售后日志表 (tz_trade_after_sale_log)
|
||||
CREATE TABLE `tz_trade_after_sale_log` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`user_type` tinyint(4) NOT NULL COMMENT '用户类型 (枚举 UserTypeEnum)',
|
||||
`after_sale_id` bigint(20) NOT NULL COMMENT '售后编号',
|
||||
`before_status` tinyint(4) DEFAULT NULL COMMENT '操作前状态',
|
||||
`after_status` tinyint(4) DEFAULT NULL COMMENT '操作后状态',
|
||||
`operate_type` tinyint(4) NOT NULL COMMENT '操作类型 (枚举 AfterSaleOperateTypeEnum)',
|
||||
`content` varchar(512) NOT NULL COMMENT '操作明细',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_after_sale_id` (`after_sale_id`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_operate_type` (`operate_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易售后日志表';
|
||||
CREATE TABLE `tz_trade_after_sale_log`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户编号',
|
||||
`user_type` tinyint(4) NOT NULL COMMENT '用户类型 (枚举 UserTypeEnum)',
|
||||
`after_sale_id` bigint(20) NOT NULL COMMENT '售后编号',
|
||||
`before_status` tinyint(4) DEFAULT NULL COMMENT '操作前状态',
|
||||
`after_status` tinyint(4) DEFAULT NULL COMMENT '操作后状态',
|
||||
`operate_type` tinyint(4) NOT NULL COMMENT '操作类型 (枚举 AfterSaleOperateTypeEnum)',
|
||||
`content` varchar(512) NOT NULL COMMENT '操作明细',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_after_sale_id` (`after_sale_id`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_operate_type` (`operate_type`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='交易售后日志表';
|
||||
|
||||
|
||||
-- 快递公司表 (trade_delivery_express)
|
||||
CREATE TABLE `tz_trade_delivery_express` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增',
|
||||
`code` varchar(64) NOT NULL COMMENT '快递公司 code',
|
||||
`name` varchar(128) NOT NULL COMMENT '快递公司名称',
|
||||
`logo` varchar(512) DEFAULT NULL COMMENT '快递公司 logo',
|
||||
`sort` int(11) DEFAULT NULL COMMENT '排序',
|
||||
`status` tinyint(4) NOT NULL COMMENT '状态 (枚举 CommonStatusEnum)',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='快递公司表';
|
||||
CREATE TABLE `tz_trade_delivery_express`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增',
|
||||
`code` varchar(64) NOT NULL COMMENT '快递公司 code',
|
||||
`name` varchar(128) NOT NULL COMMENT '快递公司名称',
|
||||
`logo` varchar(512) DEFAULT NULL COMMENT '快递公司 logo',
|
||||
`sort` int(11) DEFAULT NULL COMMENT '排序',
|
||||
`status` tinyint(4) NOT NULL COMMENT '状态 (枚举 CommonStatusEnum)',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_code` (`code`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='快递公司表';
|
||||
|
||||
-- 快递运费模板表 (trade_delivery_express_template)
|
||||
CREATE TABLE `tz_trade_delivery_express_template` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增',
|
||||
`name` varchar(128) NOT NULL COMMENT '模板名称',
|
||||
`charge_mode` tinyint(4) NOT NULL COMMENT '配送计费方式 (枚举 DeliveryExpressChargeModeEnum)',
|
||||
`sort` int(11) DEFAULT NULL COMMENT '排序',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='快递运费模板表';
|
||||
CREATE TABLE `tz_trade_delivery_express_template`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增',
|
||||
`name` varchar(128) NOT NULL COMMENT '模板名称',
|
||||
`charge_mode` tinyint(4) NOT NULL COMMENT '配送计费方式 (枚举 DeliveryExpressChargeModeEnum)',
|
||||
`sort` int(11) DEFAULT NULL COMMENT '排序',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='快递运费模板表';
|
||||
|
||||
-- 快递运费模板计费配置表 (trade_delivery_express_template_charge)
|
||||
CREATE TABLE `tz_trade_delivery_express_template_charge` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增',
|
||||
`template_id` bigint(20) NOT NULL COMMENT '配送模板编号',
|
||||
`area_ids` varchar(512) NOT NULL COMMENT '配送区域编号列表',
|
||||
`charge_mode` tinyint(4) NOT NULL COMMENT '配送计费方式',
|
||||
`start_count` double NOT NULL COMMENT '首件数量(件数,重量,或体积)',
|
||||
`start_price` int(11) NOT NULL COMMENT '起步价,单位:分',
|
||||
`extra_count` double NOT NULL COMMENT '续件数量(件, 重量,或体积)',
|
||||
`extra_price` int(11) NOT NULL COMMENT '额外价,单位:分',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_template_id` (`template_id`),
|
||||
CONSTRAINT `fk_express_template_charge_template_id` FOREIGN KEY (`template_id`) REFERENCES `tz_trade_delivery_express_template` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='快递运费模板计费配置表';
|
||||
CREATE TABLE `tz_trade_delivery_express_template_charge`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增',
|
||||
`template_id` bigint(20) NOT NULL COMMENT '配送模板编号',
|
||||
`area_ids` varchar(512) NOT NULL COMMENT '配送区域编号列表',
|
||||
`charge_mode` tinyint(4) NOT NULL COMMENT '配送计费方式',
|
||||
`start_count` double NOT NULL COMMENT '首件数量(件数,重量,或体积)',
|
||||
`start_price` int(11) NOT NULL COMMENT '起步价,单位:分',
|
||||
`extra_count` double NOT NULL COMMENT '续件数量(件, 重量,或体积)',
|
||||
`extra_price` int(11) NOT NULL COMMENT '额外价,单位:分',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_template_id` (`template_id`),
|
||||
CONSTRAINT `fk_express_template_charge_template_id` FOREIGN KEY (`template_id`) REFERENCES `tz_trade_delivery_express_template` (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='快递运费模板计费配置表';
|
||||
|
||||
-- 快递运费模板包邮配置表 (trade_delivery_express_template_free)
|
||||
CREATE TABLE `tz_trade_delivery_express_template_free` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`template_id` bigint(20) NOT NULL COMMENT '配送模板编号',
|
||||
`area_ids` varchar(512) NOT NULL COMMENT '配送区域编号列表',
|
||||
`free_price` int(11) DEFAULT NULL COMMENT '包邮金额,单位:分',
|
||||
`free_count` int(11) DEFAULT NULL COMMENT '包邮件数',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_template_id` (`template_id`),
|
||||
CONSTRAINT `fk_express_template_free_template_id` FOREIGN KEY (`template_id`) REFERENCES `tz_trade_delivery_express_template` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='快递运费模板包邮配置表';
|
||||
CREATE TABLE `tz_trade_delivery_express_template_free`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`template_id` bigint(20) NOT NULL COMMENT '配送模板编号',
|
||||
`area_ids` varchar(512) NOT NULL COMMENT '配送区域编号列表',
|
||||
`free_price` int(11) DEFAULT NULL COMMENT '包邮金额,单位:分',
|
||||
`free_count` int(11) DEFAULT NULL COMMENT '包邮件数',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_template_id` (`template_id`),
|
||||
CONSTRAINT `fk_express_template_free_template_id` FOREIGN KEY (`template_id`) REFERENCES `tz_trade_delivery_express_template` (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='快递运费模板包邮配置表';
|
||||
|
||||
-- 自提门店表 (trade_delivery_pick_up_store)
|
||||
CREATE TABLE `tz_trade_delivery_pick_up_store` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`name` varchar(128) NOT NULL COMMENT '门店名称',
|
||||
`introduction` varchar(512) DEFAULT NULL COMMENT '门店简介',
|
||||
`phone` varchar(20) NOT NULL COMMENT '门店手机',
|
||||
`area_id` int(11) NOT NULL COMMENT '区域编号',
|
||||
`detail_address` varchar(512) NOT NULL COMMENT '门店详细地址',
|
||||
`logo` varchar(512) DEFAULT NULL COMMENT '门店 logo',
|
||||
`opening_time` time NOT NULL COMMENT '营业开始时间',
|
||||
`closing_time` time NOT NULL COMMENT '营业结束时间',
|
||||
`latitude` double DEFAULT NULL COMMENT '纬度',
|
||||
`longitude` double DEFAULT NULL COMMENT '经度',
|
||||
`verify_user_ids` varchar(512) DEFAULT NULL COMMENT '核销员工用户编号数组',
|
||||
`status` tinyint(4) NOT NULL COMMENT '门店状态 (枚举 CommonStatusEnum)',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_area_id` (`area_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自提门店表';
|
||||
CREATE TABLE `tz_trade_delivery_pick_up_store`
|
||||
(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||
`name` varchar(128) NOT NULL COMMENT '门店名称',
|
||||
`introduction` varchar(512) DEFAULT NULL COMMENT '门店简介',
|
||||
`phone` varchar(20) NOT NULL COMMENT '门店手机',
|
||||
`area_id` int(11) NOT NULL COMMENT '区域编号',
|
||||
`detail_address` varchar(512) NOT NULL COMMENT '门店详细地址',
|
||||
`logo` varchar(512) DEFAULT NULL COMMENT '门店 logo',
|
||||
`opening_time` time NOT NULL COMMENT '营业开始时间',
|
||||
`closing_time` time NOT NULL COMMENT '营业结束时间',
|
||||
`latitude` double DEFAULT NULL COMMENT '纬度',
|
||||
`longitude` double DEFAULT NULL COMMENT '经度',
|
||||
`verify_user_ids` varchar(512) DEFAULT NULL COMMENT '核销员工用户编号数组',
|
||||
`status` tinyint(4) NOT NULL COMMENT '门店状态 (枚举 CommonStatusEnum)',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`creator` varchar(64) NOT NULL COMMENT '创建者',
|
||||
`updater` varchar(64) NOT NULL COMMENT '更新者',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_area_id` (`area_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='自提门店表';
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,13 @@ public enum TradeOrderStatusEnum implements ArrayValuable<Integer> {
|
||||
UNDELIVERED(10, "待发货"),
|
||||
DELIVERED(20, "已发货"),
|
||||
COMPLETED(30, "已完成"),
|
||||
CANCELED(40, "已取消");
|
||||
CANCELED(40, "已取消"),
|
||||
|
||||
WAITPAID(100, "等待付款"),
|
||||
WAITCONFIRM(110, "等待确定"),
|
||||
WAITSERVE(120, "等待服务"),
|
||||
WAITACCEPT(130, "等待验收"),
|
||||
SERVECANCELED(140, "取消服务");
|
||||
|
||||
public static final Integer[] ARRAYS = Arrays.stream(values()).map(TradeOrderStatusEnum::getStatus).toArray(Integer[]::new);
|
||||
|
||||
|
||||
@@ -5,10 +5,6 @@ import ${jakartaPackage}.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
#if ($sceneEnum.scene == 1)import org.springframework.security.access.prepost.PreAuthorize;#end
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import ${jakartaPackage}.validation.constraints.*;
|
||||
import ${jakartaPackage}.validation.*;
|
||||
import ${jakartaPackage}.servlet.http.*;
|
||||
@@ -34,7 +30,9 @@ import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.bu
|
||||
#end
|
||||
import ${basePackage}.module.${table.moduleName}.service.${table.businessName}.${table.className}Service;
|
||||
|
||||
@Tag(name = "${sceneEnum.name} - ${table.classComment}")
|
||||
/**
|
||||
* ${sceneEnum.name} - ${table.classComment}
|
||||
*/
|
||||
@RestController
|
||||
##二级的 businessName 暂时不算在 HTTP 路径上,可以根据需要写
|
||||
@RequestMapping("/${table.moduleName}/${simpleClassName_strikeCase}")
|
||||
@@ -44,8 +42,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
@Resource
|
||||
private ${table.className}Service ${classNameVar}Service;
|
||||
|
||||
/**
|
||||
* 创建${table.classComment}
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建${table.classComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:create')")
|
||||
#end
|
||||
@@ -53,8 +53,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(${classNameVar}Service.create${simpleClassName}(createReqVO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新${table.classComment}
|
||||
*/
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新${table.classComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:update')")
|
||||
#end
|
||||
@@ -63,9 +65,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除${table.classComment}
|
||||
*/
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除${table.classComment}")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:delete')")
|
||||
#end
|
||||
@@ -74,9 +77,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得${table.classComment}
|
||||
*/
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得${table.classComment}")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
@@ -86,8 +90,11 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
}
|
||||
|
||||
#if ( $table.templateType != 2 )
|
||||
|
||||
/**
|
||||
* 获得${table.classComment}分页
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得${table.classComment}分页")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
@@ -98,8 +105,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
|
||||
## 特殊:树表专属逻辑(树不需要分页接口)
|
||||
#else
|
||||
/**
|
||||
* 获得${table.classComment}列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得${table.classComment}列表")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
@@ -109,8 +118,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
}
|
||||
|
||||
#end
|
||||
/**
|
||||
* 导出${table.classComment} Excel
|
||||
*/
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出${table.classComment} Excel")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:export')")
|
||||
#end
|
||||
@@ -149,9 +160,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
|
||||
## 情况一:MASTER_ERP 时,需要分查询页子表
|
||||
#if ( $table.templateType == 11 )
|
||||
/**
|
||||
* 获得${subTable.classComment}分页
|
||||
*/
|
||||
@GetMapping("/${subSimpleClassName_strikeCase}/page")
|
||||
@Operation(summary = "获得${subTable.classComment}分页")
|
||||
@Parameter(name = "${subJoinColumn.javaField}", description = "${subJoinColumn.columnComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
@@ -163,9 +175,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
## 情况二:非 MASTER_ERP 时,需要列表查询子表
|
||||
#else
|
||||
#if ( $subTable.subJoinMany )
|
||||
/**
|
||||
* 获得${subTable.classComment}列表
|
||||
*/
|
||||
@GetMapping("/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}")
|
||||
@Operation(summary = "获得${subTable.classComment}列表")
|
||||
@Parameter(name = "${subJoinColumn.javaField}", description = "${subJoinColumn.columnComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
@@ -174,9 +187,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
}
|
||||
|
||||
#else
|
||||
/**
|
||||
* 获得${subTable.classComment}
|
||||
*/
|
||||
@GetMapping("/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}")
|
||||
@Operation(summary = "获得${subTable.classComment}")
|
||||
@Parameter(name = "${subJoinColumn.javaField}", description = "${subJoinColumn.columnComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
@@ -188,8 +202,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
#end
|
||||
## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作
|
||||
#if ( $table.templateType == 11 )
|
||||
/**
|
||||
* 创建${subTable.classComment}
|
||||
*/
|
||||
@PostMapping("/${subSimpleClassName_strikeCase}/create")
|
||||
@Operation(summary = "创建${subTable.classComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:create')")
|
||||
#end
|
||||
@@ -197,8 +213,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(${classNameVar}Service.create${subSimpleClassName}(${subClassNameVar}));
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新${subTable.classComment}
|
||||
*/
|
||||
@PutMapping("/${subSimpleClassName_strikeCase}/update")
|
||||
@Operation(summary = "更新${subTable.classComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:update')")
|
||||
#end
|
||||
@@ -207,9 +225,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除${subTable.classComment}
|
||||
*/
|
||||
@DeleteMapping("/${subSimpleClassName_strikeCase}/delete")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@Operation(summary = "删除${subTable.classComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:delete')")
|
||||
#end
|
||||
@@ -218,9 +237,10 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得${subTable.classComment}
|
||||
*/
|
||||
@GetMapping("/${subSimpleClassName_strikeCase}/get")
|
||||
@Operation(summary = "获得${subTable.classComment}")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
|
||||
@@ -2,7 +2,7 @@ package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePac
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import ${PageParamClassName};
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.javaType} == "BigDecimal")
|
||||
@@ -22,18 +22,24 @@ import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
#end
|
||||
## 字段模板
|
||||
#macro(columnTpl $prefix $prefixStr)
|
||||
@Schema(description = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||
/**
|
||||
* ${prefixStr}${column.columnComment}"#if ("$!column.example" != "
|
||||
*/, example = "${column.example}"#end)
|
||||
private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end;
|
||||
#end
|
||||
|
||||
@Schema(description = "${sceneEnum.name} - ${table.classComment}列表 Request VO")
|
||||
/**
|
||||
* ${sceneEnum.name} - ${table.classComment}列表 Request VO
|
||||
*/
|
||||
@Data
|
||||
public class ${sceneEnum.prefixClass}${table.className}ListReqVO {
|
||||
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.listOperation})##查询操作
|
||||
#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候
|
||||
@Schema(description = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||
/**
|
||||
* ${column.columnComment}"#if ("$!column.example" != "
|
||||
*/, example = "${column.example}"#end)
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private ${column.javaType}[] ${column.javaField};
|
||||
#else##情况二,非 Between 的时间
|
||||
|
||||
@@ -2,7 +2,7 @@ package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePac
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import ${PageParamClassName};
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.javaType} == "BigDecimal")
|
||||
@@ -22,11 +22,15 @@ import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
#end
|
||||
## 字段模板
|
||||
#macro(columnTpl $prefix $prefixStr)
|
||||
@Schema(description = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||
/**
|
||||
* ${prefixStr}${column.columnComment}"#if ("$!column.example" != "
|
||||
*/, example = "${column.example}"#end)
|
||||
private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end;
|
||||
#end
|
||||
|
||||
@Schema(description = "${sceneEnum.name} - ${table.classComment}分页 Request VO")
|
||||
/**
|
||||
* ${sceneEnum.name} - ${table.classComment}分页 Request VO
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@@ -35,7 +39,9 @@ public class ${sceneEnum.prefixClass}${table.className}PageReqVO extends PagePar
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.listOperation})##查询操作
|
||||
#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候
|
||||
@Schema(description = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||
/**
|
||||
* ${column.columnComment}"#if ("$!column.example" != "
|
||||
*/, example = "${column.example}"#end)
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private ${column.javaType}[] ${column.javaField};
|
||||
#else##情况二,非 Between 的时间
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
## 处理 BigDecimal 字段的引入
|
||||
@@ -28,7 +28,9 @@ import ${DictConvertClassName};
|
||||
#end
|
||||
#end
|
||||
|
||||
@Schema(description = "${sceneEnum.name} - ${table.classComment} Response VO")
|
||||
/**
|
||||
* ${sceneEnum.name} - ${table.classComment} Response VO
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ${sceneEnum.prefixClass}${table.className}RespVO {
|
||||
@@ -37,7 +39,9 @@ public class ${sceneEnum.prefixClass}${table.className}RespVO {
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.listOperationResult})
|
||||
## 1. 处理 Swagger 注解
|
||||
@Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||
/**
|
||||
* ${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != "
|
||||
*/, example = "${column.example}"#end)
|
||||
## 2. 处理 Excel 导出
|
||||
#if ("$!column.dictType" != "")##处理枚举值
|
||||
@ExcelProperty(value = "${column.columnComment}", converter = DictConvert.class)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import ${jakartaPackage}.validation.constraints.*;
|
||||
@@ -24,7 +24,9 @@ import java.time.LocalDateTime;
|
||||
import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO;
|
||||
#end
|
||||
|
||||
@Schema(description = "${sceneEnum.name} - ${table.classComment}新增/修改 Request VO")
|
||||
/**
|
||||
* ${sceneEnum.name} - ${table.classComment}新增/修改 Request VO
|
||||
*/
|
||||
@Data
|
||||
public class ${sceneEnum.prefixClass}${table.className}SaveReqVO {
|
||||
|
||||
@@ -32,7 +34,9 @@ public class ${sceneEnum.prefixClass}${table.className}SaveReqVO {
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.createOperation} || ${column.updateOperation})
|
||||
## 1. 处理 Swagger 注解
|
||||
@Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||
/**
|
||||
* ${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != "
|
||||
*/, example = "${column.example}"#end)
|
||||
## 2. 处理 Validator 参数校验
|
||||
#if (!${column.nullable} && !${column.primaryKey})
|
||||
#if (${column.javaType} == 'String')
|
||||
@@ -51,11 +55,15 @@ public class ${sceneEnum.prefixClass}${table.className}SaveReqVO {
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
#if ( $subTable.subJoinMany)
|
||||
@Schema(description = "${subTable.classComment}列表")
|
||||
/**
|
||||
* ${subTable.classComment}列表
|
||||
*/
|
||||
private List<${subTable.className}DO> ${subClassNameVars.get($index)}s;
|
||||
|
||||
#else
|
||||
@Schema(description = "${subTable.classComment}")
|
||||
/**
|
||||
* ${subTable.classComment}
|
||||
*/
|
||||
private ${subTable.className}DO ${subClassNameVars.get($index)};
|
||||
|
||||
#end
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName};
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.javaType} == "BigDecimal")
|
||||
import java.math.BigDecimal;
|
||||
#end
|
||||
#if (${column.javaType} == "LocalDateTime")
|
||||
import java.time.LocalDateTime;
|
||||
#end
|
||||
#end
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import ${BaseDOClassName};
|
||||
|
||||
/**
|
||||
* ${table.classComment} DO
|
||||
*
|
||||
* @author ${table.author}
|
||||
*/
|
||||
@TableName("${table.tableName.toLowerCase()}")
|
||||
@KeySequence("${table.tableName.toLowerCase()}_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ${table.className}DO extends BaseDO {
|
||||
|
||||
## 特殊:树表专属逻辑
|
||||
#if ( $table.templateType == 2 )
|
||||
public static final Long ${treeParentColumn_javaField_underlineCase.toUpperCase()}_ROOT = 0L;
|
||||
|
||||
#end
|
||||
#foreach ($column in $columns)
|
||||
#if (!${baseDOFields.contains(${column.javaField})})##排除 BaseDO 的字段
|
||||
/**
|
||||
* ${column.columnComment}
|
||||
#if ("$!column.dictType" != "")##处理枚举值
|
||||
*
|
||||
* 枚举 {@link TODO ${column.dictType} 对应的类}
|
||||
#end
|
||||
*/
|
||||
#if (${column.primaryKey})##处理主键
|
||||
@TableId#if (${column.javaType} == 'String')(type = IdType.INPUT)#end
|
||||
#end
|
||||
private ${column.javaType} ${column.javaField};
|
||||
#end
|
||||
#end
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
#set ($subTable = $subTables.get($subIndex))##当前表
|
||||
#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组
|
||||
package ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName};
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
#foreach ($column in $subColumns)
|
||||
#if (${column.javaType} == "BigDecimal")
|
||||
import java.math.BigDecimal;
|
||||
#end
|
||||
#if (${column.javaType} == "LocalDateTime")
|
||||
import java.time.LocalDateTime;
|
||||
#end
|
||||
#end
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import ${BaseDOClassName};
|
||||
|
||||
/**
|
||||
* ${subTable.classComment} DO
|
||||
*
|
||||
* @author ${subTable.author}
|
||||
*/
|
||||
@TableName("${subTable.tableName.toLowerCase()}")
|
||||
@KeySequence("${subTable.tableName.toLowerCase()}_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ${subTable.className}DO extends BaseDO {
|
||||
|
||||
#foreach ($column in $subColumns)
|
||||
#if (!${baseDOFields.contains(${column.javaField})})##排除 BaseDO 的字段
|
||||
/**
|
||||
* ${column.columnComment}
|
||||
#if ("$!column.dictType" != "")##处理枚举值
|
||||
*
|
||||
* 枚举 {@link TODO ${column.dictType} 对应的类}
|
||||
#end
|
||||
*/
|
||||
#if (${column.primaryKey})##处理主键
|
||||
@TableId#if (${column.javaType} == 'String')(type = IdType.INPUT)#end
|
||||
#end
|
||||
private ${column.javaType} ${column.javaField};
|
||||
#end
|
||||
#end
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName};
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import ${PageResultClassName};
|
||||
import ${QueryWrapperClassName};
|
||||
import ${BaseMapperClassName};
|
||||
import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*;
|
||||
|
||||
## 字段模板
|
||||
#macro(listCondition)
|
||||
#foreach ($column in $columns)
|
||||
#if (${column.listOperation})
|
||||
#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
|
||||
#if (${column.listOperationCondition} == "=")##情况一,= 的时候
|
||||
.eqIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#if (${column.listOperationCondition} == "!=")##情况二,!= 的时候
|
||||
.neIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#if (${column.listOperationCondition} == ">")##情况三,> 的时候
|
||||
.gtIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#if (${column.listOperationCondition} == ">=")##情况四,>= 的时候
|
||||
.geIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#if (${column.listOperationCondition} == "<")##情况五,< 的时候
|
||||
.ltIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#if (${column.listOperationCondition} == "<=")##情况五,<= 的时候
|
||||
.leIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#if (${column.listOperationCondition} == "LIKE")##情况七,Like 的时候
|
||||
.likeIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#if (${column.listOperationCondition} == "BETWEEN")##情况八,Between 的时候
|
||||
.betweenIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
/**
|
||||
* ${table.classComment} Mapper
|
||||
*
|
||||
* @author ${table.author}
|
||||
*/
|
||||
@Mapper
|
||||
public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> {
|
||||
|
||||
## 特殊:树表专属逻辑(树不需要分页接口)
|
||||
#if ( $table.templateType != 2 )
|
||||
default PageResult<${table.className}DO> selectPage(${sceneEnum.prefixClass}${table.className}PageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<${table.className}DO>()
|
||||
#listCondition()
|
||||
.orderByDesc(${table.className}DO::getId));## 大多数情况下,id 倒序
|
||||
|
||||
}
|
||||
#else
|
||||
default List<${table.className}DO> selectList(${sceneEnum.prefixClass}${table.className}ListReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<${table.className}DO>()
|
||||
#listCondition()
|
||||
.orderByDesc(${table.className}DO::getId));## 大多数情况下,id 倒序
|
||||
|
||||
}
|
||||
#end
|
||||
|
||||
## 特殊:树表专属逻辑
|
||||
#if ( $table.templateType == 2 )
|
||||
#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写
|
||||
#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写
|
||||
default ${table.className}DO selectBy${TreeParentJavaField}And${TreeNameJavaField}(Long ${treeParentColumn.javaField}, String ${treeNameColumn.javaField}) {
|
||||
return selectOne(${table.className}DO::get${TreeParentJavaField}, ${treeParentColumn.javaField}, ${table.className}DO::get${TreeNameJavaField}, ${treeNameColumn.javaField});
|
||||
}
|
||||
|
||||
default Long selectCountBy${TreeParentJavaField}(${treeParentColumn.javaType} ${treeParentColumn.javaField}) {
|
||||
return selectCount(${table.className}DO::get${TreeParentJavaField}, ${treeParentColumn.javaField});
|
||||
}
|
||||
|
||||
#end
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?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="${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,57 @@
|
||||
#set ($subTable = $subTables.get($subIndex))##当前表
|
||||
#set ($subColumns = $subJoinColumnsList.get($subIndex))##当前字段数组
|
||||
#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段
|
||||
#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
|
||||
package ${basePackage}.module.${subTable.moduleName}.dal.mysql.${subTable.businessName};
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import ${PageResultClassName};
|
||||
import ${PageParamClassName};
|
||||
import ${QueryWrapperClassName};
|
||||
import ${BaseMapperClassName};
|
||||
import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* ${subTable.classComment} Mapper
|
||||
*
|
||||
* @author ${subTable.author}
|
||||
*/
|
||||
@Mapper
|
||||
public interface ${subTable.className}Mapper extends BaseMapperX<${subTable.className}DO> {
|
||||
|
||||
## 情况一:MASTER_ERP 时,需要分查询页子表
|
||||
#if ( $table.templateType == 11 )
|
||||
default PageResult<${subTable.className}DO> selectPage(PageParam reqVO, ${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<${subTable.className}DO>()
|
||||
.eq(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField})
|
||||
.orderByDesc(${subTable.className}DO::getId));## 大多数情况下,id 倒序
|
||||
|
||||
}
|
||||
## 主表与子表是一对一时
|
||||
#if (!$subTable.subJoinMany)
|
||||
default ${subTable.className}DO selectBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return selectOne(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField});
|
||||
}
|
||||
#end
|
||||
|
||||
## 情况二:非 MASTER_ERP 时,需要列表查询子表
|
||||
#else
|
||||
#if ( $subTable.subJoinMany)
|
||||
default List<${subTable.className}DO> selectListBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return selectList(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField});
|
||||
}
|
||||
|
||||
#else
|
||||
default ${subTable.className}DO selectBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return selectOne(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField});
|
||||
}
|
||||
|
||||
#end
|
||||
#end
|
||||
default int deleteBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return delete(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// TODO 待办:请将下面的错误码复制到 yudao-module-${table.moduleName}-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
|
||||
// ========== ${table.classComment} TODO 补充编号 ==========
|
||||
ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS = new ErrorCode(TODO 补充编号, "${table.classComment}不存在");
|
||||
## 特殊:树表专属逻辑
|
||||
#if ( $table.templateType == 2 )
|
||||
ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_EXITS_CHILDREN = new ErrorCode(TODO 补充编号, "存在存在子${table.classComment},无法删除");
|
||||
ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_PARENT_NOT_EXITS = new ErrorCode(TODO 补充编号,"父级${table.classComment}不存在");
|
||||
ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_PARENT_ERROR = new ErrorCode(TODO 补充编号, "不能设置自己为父${table.classComment}");
|
||||
ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_${treeNameColumn_javaField_underlineCase.toUpperCase()}_DUPLICATE = new ErrorCode(TODO 补充编号, "已经存在该${treeNameColumn.columnComment}的${table.classComment}");
|
||||
ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_PARENT_IS_CHILD = new ErrorCode(TODO 补充编号, "不能设置自己的子${table.className}为父${table.className}");
|
||||
#end
|
||||
## 特殊:主子表专属逻辑
|
||||
#if ( $table.templateType == 11 )## 特殊:ERP 情况
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
#set ($simpleClassNameUnderlineCase = $simpleClassNameUnderlineCases.get($index))
|
||||
ErrorCode ${simpleClassNameUnderlineCase.toUpperCase()}_NOT_EXISTS = new ErrorCode(TODO 补充编号, "${subTable.classComment}不存在");
|
||||
#if ( !$subTable.subJoinMany )
|
||||
ErrorCode ${simpleClassNameUnderlineCase.toUpperCase()}_EXISTS = new ErrorCode(TODO 补充编号, "${subTable.classComment}已存在");
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
@@ -0,0 +1,147 @@
|
||||
package ${basePackage}.module.${table.moduleName}.service.${table.businessName};
|
||||
|
||||
import java.util.*;
|
||||
import ${jakartaPackage}.validation.*;
|
||||
import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*;
|
||||
import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
|
||||
## 特殊:主子表专属逻辑
|
||||
#foreach ($subTable in $subTables)
|
||||
import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO;
|
||||
#end
|
||||
import ${PageResultClassName};
|
||||
import ${PageParamClassName};
|
||||
|
||||
/**
|
||||
* ${table.classComment} Service 接口
|
||||
*
|
||||
* @author ${table.author}
|
||||
*/
|
||||
public interface ${table.className}Service {
|
||||
|
||||
/**
|
||||
* 创建${table.classComment}
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
${primaryColumn.javaType} create${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新${table.classComment}
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void update${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除${table.classComment}
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void delete${simpleClassName}(${primaryColumn.javaType} id);
|
||||
|
||||
/**
|
||||
* 获得${table.classComment}
|
||||
*
|
||||
* @param id 编号
|
||||
* @return ${table.classComment}
|
||||
*/
|
||||
${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id);
|
||||
|
||||
## 特殊:树表专属逻辑(树不需要分页接口)
|
||||
#if ( $table.templateType != 2 )
|
||||
/**
|
||||
* 获得${table.classComment}分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return ${table.classComment}分页
|
||||
*/
|
||||
PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO);
|
||||
#else
|
||||
/**
|
||||
* 获得${table.classComment}列表
|
||||
*
|
||||
* @param listReqVO 查询条件
|
||||
* @return ${table.classComment}列表
|
||||
*/
|
||||
List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ListReqVO listReqVO);
|
||||
#end
|
||||
|
||||
## 特殊:主子表专属逻辑
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
#set ($subSimpleClassName = $subSimpleClassNames.get($index))
|
||||
#set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段
|
||||
#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段
|
||||
#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
|
||||
#set ($subClassNameVar = $subClassNameVars.get($index))
|
||||
// ==================== 子表($subTable.classComment) ====================
|
||||
|
||||
## 情况一:MASTER_ERP 时,需要分查询页子表
|
||||
#if ( $table.templateType == 11 )
|
||||
/**
|
||||
* 获得${subTable.classComment}分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @param ${subJoinColumn.javaField} ${subJoinColumn.columnComment}
|
||||
* @return ${subTable.classComment}分页
|
||||
*/
|
||||
PageResult<${subTable.className}DO> get${subSimpleClassName}Page(PageParam pageReqVO, ${subJoinColumn.javaType} ${subJoinColumn.javaField});
|
||||
|
||||
## 情况二:非 MASTER_ERP 时,需要列表查询子表
|
||||
#else
|
||||
#if ( $subTable.subJoinMany )
|
||||
/**
|
||||
* 获得${subTable.classComment}列表
|
||||
*
|
||||
* @param ${subJoinColumn.javaField} ${subJoinColumn.columnComment}
|
||||
* @return ${subTable.classComment}列表
|
||||
*/
|
||||
List<${subTable.className}DO> get${subSimpleClassName}ListBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField});
|
||||
|
||||
#else
|
||||
/**
|
||||
* 获得${subTable.classComment}
|
||||
*
|
||||
* @param ${subJoinColumn.javaField} ${subJoinColumn.columnComment}
|
||||
* @return ${subTable.classComment}
|
||||
*/
|
||||
${subTable.className}DO get${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField});
|
||||
|
||||
#end
|
||||
#end
|
||||
## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作
|
||||
#if ( $table.templateType == 11 )
|
||||
/**
|
||||
* 创建${subTable.classComment}
|
||||
*
|
||||
* @param ${subClassNameVar} 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
${subPrimaryColumn.javaType} create${subSimpleClassName}(@Valid ${subTable.className}DO ${subClassNameVar});
|
||||
|
||||
/**
|
||||
* 更新${subTable.classComment}
|
||||
*
|
||||
* @param ${subClassNameVar} 更新信息
|
||||
*/
|
||||
void update${subSimpleClassName}(@Valid ${subTable.className}DO ${subClassNameVar});
|
||||
|
||||
/**
|
||||
* 删除${subTable.classComment}
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void delete${subSimpleClassName}(${subPrimaryColumn.javaType} id);
|
||||
|
||||
/**
|
||||
* 获得${subTable.classComment}
|
||||
*
|
||||
* @param id 编号
|
||||
* @return ${subTable.classComment}
|
||||
*/
|
||||
${subTable.className}DO get${subSimpleClassName}(${subPrimaryColumn.javaType} id);
|
||||
|
||||
#end
|
||||
#end
|
||||
}
|
||||
@@ -0,0 +1,351 @@
|
||||
package ${basePackage}.module.${table.moduleName}.service.${table.businessName};
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import ${jakartaPackage}.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*;
|
||||
import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
|
||||
## 特殊:主子表专属逻辑
|
||||
#foreach ($subTable in $subTables)
|
||||
import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO;
|
||||
#end
|
||||
import ${PageResultClassName};
|
||||
import ${PageParamClassName};
|
||||
import ${BeanUtils};
|
||||
|
||||
import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper;
|
||||
## 特殊:主子表专属逻辑
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
import ${basePackage}.module.${subTable.moduleName}.dal.mysql.${subTable.businessName}.${subTable.className}Mapper;
|
||||
#end
|
||||
|
||||
import static ${ServiceExceptionUtilClassName}.exception;
|
||||
import static ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* ${table.classComment} Service 实现类
|
||||
*
|
||||
* @author ${table.author}
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ${table.className}ServiceImpl implements ${table.className}Service {
|
||||
|
||||
@Resource
|
||||
private ${table.className}Mapper ${classNameVar}Mapper;
|
||||
## 特殊:主子表专属逻辑
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
@Resource
|
||||
private ${subTable.className}Mapper ${subClassNameVars.get($index)}Mapper;
|
||||
#end
|
||||
|
||||
@Override
|
||||
## 特殊:主子表专属逻辑(非 ERP 模式)
|
||||
#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 )
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
#end
|
||||
public ${primaryColumn.javaType} create${simpleClassName}(${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO) {
|
||||
## 特殊:树表专属逻辑
|
||||
#if ( $table.templateType == 2 )
|
||||
#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写
|
||||
#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写
|
||||
// 校验${treeParentColumn.columnComment}的有效性
|
||||
validateParent${simpleClassName}(null, createReqVO.get${TreeParentJavaField}());
|
||||
// 校验${treeNameColumn.columnComment}的唯一性
|
||||
validate${simpleClassName}${TreeNameJavaField}Unique(null, createReqVO.get${TreeParentJavaField}(), createReqVO.get${TreeNameJavaField}());
|
||||
|
||||
#end
|
||||
// 插入
|
||||
${table.className}DO ${classNameVar} = BeanUtils.toBean(createReqVO, ${table.className}DO.class);
|
||||
${classNameVar}Mapper.insert(${classNameVar});
|
||||
## 特殊:主子表专属逻辑(非 ERP 模式)
|
||||
#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 )
|
||||
|
||||
// 插入子表
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
#set ($subSimpleClassName = $subSimpleClassNames.get($index))
|
||||
#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段
|
||||
#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
|
||||
#if ( $subTable.subJoinMany)
|
||||
create${subSimpleClassName}List(${classNameVar}.getId(), createReqVO.get${subSimpleClassNames.get($index)}s());
|
||||
#else
|
||||
create${subSimpleClassName}(${classNameVar}.getId(), createReqVO.get${subSimpleClassNames.get($index)}());
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
// 返回
|
||||
return ${classNameVar}.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
## 特殊:主子表专属逻辑(非 ERP 模式)
|
||||
#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 )
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
#end
|
||||
public void update${simpleClassName}(${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validate${simpleClassName}Exists(updateReqVO.getId());
|
||||
## 特殊:树表专属逻辑
|
||||
#if ( $table.templateType == 2 )
|
||||
#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写
|
||||
#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写
|
||||
// 校验${treeParentColumn.columnComment}的有效性
|
||||
validateParent${simpleClassName}(updateReqVO.getId(), updateReqVO.get${TreeParentJavaField}());
|
||||
// 校验${treeNameColumn.columnComment}的唯一性
|
||||
validate${simpleClassName}${TreeNameJavaField}Unique(updateReqVO.getId(), updateReqVO.get${TreeParentJavaField}(), updateReqVO.get${TreeNameJavaField}());
|
||||
|
||||
#end
|
||||
// 更新
|
||||
${table.className}DO updateObj = BeanUtils.toBean(updateReqVO, ${table.className}DO.class);
|
||||
${classNameVar}Mapper.updateById(updateObj);
|
||||
## 特殊:主子表专属逻辑(非 ERP 模式)
|
||||
#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11)
|
||||
|
||||
// 更新子表
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
#set ($subSimpleClassName = $subSimpleClassNames.get($index))
|
||||
#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段
|
||||
#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
|
||||
#if ( $subTable.subJoinMany)
|
||||
update${subSimpleClassName}List(updateReqVO.getId(), updateReqVO.get${subSimpleClassNames.get($index)}s());
|
||||
#else
|
||||
update${subSimpleClassName}(updateReqVO.getId(), updateReqVO.get${subSimpleClassNames.get($index)}());
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
}
|
||||
|
||||
@Override
|
||||
## 特殊:主子表专属逻辑
|
||||
#if ( $subTables && $subTables.size() > 0)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
#end
|
||||
public void delete${simpleClassName}(${primaryColumn.javaType} id) {
|
||||
// 校验存在
|
||||
validate${simpleClassName}Exists(id);
|
||||
## 特殊:树表专属逻辑
|
||||
#if ( $table.templateType == 2 )
|
||||
#set ($ParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写
|
||||
// 校验是否有子${table.classComment}
|
||||
if (${classNameVar}Mapper.selectCountBy${ParentJavaField}(id) > 0) {
|
||||
throw exception(${simpleClassName_underlineCase.toUpperCase()}_EXITS_CHILDREN);
|
||||
}
|
||||
#end
|
||||
// 删除
|
||||
${classNameVar}Mapper.deleteById(id);
|
||||
## 特殊:主子表专属逻辑
|
||||
#if ( $subTables && $subTables.size() > 0)
|
||||
|
||||
// 删除子表
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
#set ($subSimpleClassName = $subSimpleClassNames.get($index))
|
||||
#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段
|
||||
#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
|
||||
delete${subSimpleClassName}By${SubJoinColumnName}(id);
|
||||
#end
|
||||
#end
|
||||
}
|
||||
|
||||
private void validate${simpleClassName}Exists(${primaryColumn.javaType} id) {
|
||||
if (${classNameVar}Mapper.selectById(id) == null) {
|
||||
throw exception(${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
## 特殊:树表专属逻辑
|
||||
#if ( $table.templateType == 2 )
|
||||
#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写
|
||||
#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写
|
||||
private void validateParent${simpleClassName}(Long id, Long ${treeParentColumn.javaField}) {
|
||||
if (${treeParentColumn.javaField} == null || ${simpleClassName}DO.${treeParentColumn_javaField_underlineCase.toUpperCase()}_ROOT.equals(${treeParentColumn.javaField})) {
|
||||
return;
|
||||
}
|
||||
// 1. 不能设置自己为父${table.classComment}
|
||||
if (Objects.equals(id, ${treeParentColumn.javaField})) {
|
||||
throw exception(${simpleClassName_underlineCase.toUpperCase()}_PARENT_ERROR);
|
||||
}
|
||||
// 2. 父${table.classComment}不存在
|
||||
${simpleClassName}DO parent${simpleClassName} = ${classNameVar}Mapper.selectById(${treeParentColumn.javaField});
|
||||
if (parent${simpleClassName} == null) {
|
||||
throw exception(${simpleClassName_underlineCase.toUpperCase()}_PARENT_NOT_EXITS);
|
||||
}
|
||||
// 3. 递归校验父${table.classComment},如果父${table.classComment}是自己的子${table.classComment},则报错,避免形成环路
|
||||
if (id == null) { // id 为空,说明新增,不需要考虑环路
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < Short.MAX_VALUE; i++) {
|
||||
// 3.1 校验环路
|
||||
${treeParentColumn.javaField} = parent${simpleClassName}.get${TreeParentJavaField}();
|
||||
if (Objects.equals(id, ${treeParentColumn.javaField})) {
|
||||
throw exception(${simpleClassName_underlineCase.toUpperCase()}_PARENT_IS_CHILD);
|
||||
}
|
||||
// 3.2 继续递归下一级父${table.classComment}
|
||||
if (${treeParentColumn.javaField} == null || ${simpleClassName}DO.${treeParentColumn_javaField_underlineCase.toUpperCase()}_ROOT.equals(${treeParentColumn.javaField})) {
|
||||
break;
|
||||
}
|
||||
parent${simpleClassName} = ${classNameVar}Mapper.selectById(${treeParentColumn.javaField});
|
||||
if (parent${simpleClassName} == null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void validate${simpleClassName}${TreeNameJavaField}Unique(Long id, Long ${treeParentColumn.javaField}, String ${treeNameColumn.javaField}) {
|
||||
${simpleClassName}DO ${classNameVar} = ${classNameVar}Mapper.selectBy${TreeParentJavaField}And${TreeNameJavaField}(${treeParentColumn.javaField}, ${treeNameColumn.javaField});
|
||||
if (${classNameVar} == null) {
|
||||
return;
|
||||
}
|
||||
// 如果 id 为空,说明不用比较是否为相同 id 的${table.classComment}
|
||||
if (id == null) {
|
||||
throw exception(${simpleClassName_underlineCase.toUpperCase()}_${treeNameColumn_javaField_underlineCase.toUpperCase()}_DUPLICATE);
|
||||
}
|
||||
if (!Objects.equals(${classNameVar}.getId(), id)) {
|
||||
throw exception(${simpleClassName_underlineCase.toUpperCase()}_${treeNameColumn_javaField_underlineCase.toUpperCase()}_DUPLICATE);
|
||||
}
|
||||
}
|
||||
|
||||
#end
|
||||
@Override
|
||||
public ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id) {
|
||||
return ${classNameVar}Mapper.selectById(id);
|
||||
}
|
||||
|
||||
## 特殊:树表专属逻辑(树不需要分页接口)
|
||||
#if ( $table.templateType != 2 )
|
||||
@Override
|
||||
public PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) {
|
||||
return ${classNameVar}Mapper.selectPage(pageReqVO);
|
||||
}
|
||||
#else
|
||||
@Override
|
||||
public List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ListReqVO listReqVO) {
|
||||
return ${classNameVar}Mapper.selectList(listReqVO);
|
||||
}
|
||||
#end
|
||||
|
||||
## 特殊:主子表专属逻辑
|
||||
#foreach ($subTable in $subTables)
|
||||
#set ($index = $foreach.count - 1)
|
||||
#set ($subSimpleClassName = $subSimpleClassNames.get($index))
|
||||
#set ($simpleClassNameUnderlineCase = $simpleClassNameUnderlineCases.get($index))
|
||||
#set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段
|
||||
#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段
|
||||
#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写
|
||||
#set ($subClassNameVar = $subClassNameVars.get($index))
|
||||
// ==================== 子表($subTable.classComment) ====================
|
||||
|
||||
## 情况一:MASTER_ERP 时,需要分查询页子表
|
||||
#if ( $table.templateType == 11 )
|
||||
@Override
|
||||
public PageResult<${subTable.className}DO> get${subSimpleClassName}Page(PageParam pageReqVO, ${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return ${subClassNameVars.get($index)}Mapper.selectPage(pageReqVO, ${subJoinColumn.javaField});
|
||||
}
|
||||
|
||||
## 情况二:非 MASTER_ERP 时,需要列表查询子表
|
||||
#else
|
||||
#if ( $subTable.subJoinMany )
|
||||
@Override
|
||||
public List<${subTable.className}DO> get${subSimpleClassName}ListBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return ${subClassNameVars.get($index)}Mapper.selectListBy${SubJoinColumnName}(${subJoinColumn.javaField});
|
||||
}
|
||||
|
||||
#else
|
||||
@Override
|
||||
public ${subTable.className}DO get${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
return ${subClassNameVars.get($index)}Mapper.selectBy${SubJoinColumnName}(${subJoinColumn.javaField});
|
||||
}
|
||||
|
||||
#end
|
||||
#end
|
||||
## 情况一:MASTER_ERP 时,支持单个的新增、修改、删除操作
|
||||
#if ( $table.templateType == 11 )
|
||||
@Override
|
||||
public ${subPrimaryColumn.javaType} create${subSimpleClassName}(${subTable.className}DO ${subClassNameVar}) {
|
||||
## 特殊:一对一时,需要保证只有一条,不能重复插入
|
||||
#if ( !$subTable.subJoinMany)
|
||||
// 校验是否已经存在
|
||||
if (${subClassNameVars.get($index)}Mapper.selectBy${SubJoinColumnName}(${subClassNameVar}.get${SubJoinColumnName}()) != null) {
|
||||
throw exception(${simpleClassNameUnderlineCase.toUpperCase()}_EXISTS);
|
||||
}
|
||||
// 插入
|
||||
#end
|
||||
${subClassNameVars.get($index)}Mapper.insert(${subClassNameVar});
|
||||
return ${subClassNameVar}.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update${subSimpleClassName}(${subTable.className}DO ${subClassNameVar}) {
|
||||
// 校验存在
|
||||
validate${subSimpleClassName}Exists(${subClassNameVar}.getId());
|
||||
// 更新
|
||||
${subClassNameVar}.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新
|
||||
${subClassNameVars.get($index)}Mapper.updateById(${subClassNameVar});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete${subSimpleClassName}(${subPrimaryColumn.javaType} id) {
|
||||
// 校验存在
|
||||
validate${subSimpleClassName}Exists(id);
|
||||
// 删除
|
||||
${subClassNameVars.get($index)}Mapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ${subTable.className}DO get${subSimpleClassName}(${subPrimaryColumn.javaType} id) {
|
||||
return ${subClassNameVars.get($index)}Mapper.selectById(id);
|
||||
}
|
||||
|
||||
private void validate${subSimpleClassName}Exists(${subPrimaryColumn.javaType} id) {
|
||||
if (${subClassNameVar}Mapper.selectById(id) == null) {
|
||||
throw exception(${simpleClassNameUnderlineCase.toUpperCase()}_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
## 情况二:非 MASTER_ERP 时,支持批量的新增、修改操作
|
||||
#else
|
||||
#if ( $subTable.subJoinMany)
|
||||
private void create${subSimpleClassName}List(${primaryColumn.javaType} ${subJoinColumn.javaField}, List<${subTable.className}DO> list) {
|
||||
list.forEach(o -> o.set$SubJoinColumnName(${subJoinColumn.javaField}));
|
||||
${subClassNameVars.get($index)}Mapper.insertBatch(list);
|
||||
}
|
||||
|
||||
private void update${subSimpleClassName}List(${primaryColumn.javaType} ${subJoinColumn.javaField}, List<${subTable.className}DO> list) {
|
||||
delete${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaField});
|
||||
list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新
|
||||
create${subSimpleClassName}List(${subJoinColumn.javaField}, list);
|
||||
}
|
||||
|
||||
#else
|
||||
private void create${subSimpleClassName}(${primaryColumn.javaType} ${subJoinColumn.javaField}, ${subTable.className}DO ${subClassNameVar}) {
|
||||
if (${subClassNameVar} == null) {
|
||||
return;
|
||||
}
|
||||
${subClassNameVar}.set$SubJoinColumnName(${subJoinColumn.javaField});
|
||||
${subClassNameVars.get($index)}Mapper.insert(${subClassNameVar});
|
||||
}
|
||||
|
||||
private void update${subSimpleClassName}(${primaryColumn.javaType} ${subJoinColumn.javaField}, ${subTable.className}DO ${subClassNameVar}) {
|
||||
if (${subClassNameVar} == null) {
|
||||
return;
|
||||
}
|
||||
${subClassNameVar}.set$SubJoinColumnName(${subJoinColumn.javaField});
|
||||
${subClassNameVar}.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新
|
||||
${subClassNameVars.get($index)}Mapper.insertOrUpdate(${subClassNameVar});
|
||||
}
|
||||
|
||||
#end
|
||||
#end
|
||||
private void delete${subSimpleClassName}By${SubJoinColumnName}(${primaryColumn.javaType} ${subJoinColumn.javaField}) {
|
||||
${subClassNameVars.get($index)}Mapper.deleteBy${SubJoinColumnName}(${subJoinColumn.javaField});
|
||||
}
|
||||
|
||||
#end
|
||||
}
|
||||
@@ -4,7 +4,7 @@ package com.tashow.cloud.pay.controller.admin.transfer.vo;
|
||||
|
||||
import com.tashow.cloud.common.util.validation.ValidationUtils;
|
||||
import com.tashow.cloud.common.validation.InEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.transfer.PayTransferTypeEnum;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.constraints.*;
|
||||
@@ -83,7 +83,7 @@ public class PayTransferCreateReqVO {
|
||||
PayTransferTypeEnum transferType = typeOf(type);
|
||||
switch (transferType) {
|
||||
case ALIPAY_BALANCE: {
|
||||
return PayChannelEnum.isAlipay(channelCode);
|
||||
return PayTypeEnum.isAlipay(channelCode);
|
||||
}
|
||||
case WX_BALANCE:
|
||||
case BANK_CARD:
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import com.tashow.cloud.common.enums.CommonStatusEnum;
|
||||
import com.tashow.cloud.pay.dal.dataobject.app.PayAppDO;
|
||||
import com.tashow.cloud.sdk.payment.client.PayClientConfig;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.tenant.core.db.TenantBaseDO;
|
||||
import lombok.*;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class PayChannelDO extends TenantBaseDO {
|
||||
/**
|
||||
* 渠道编码
|
||||
*
|
||||
* 枚举 {@link PayChannelEnum}
|
||||
* 枚举 {@link PayTypeEnum}
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||
import com.tashow.cloud.pay.dal.dataobject.app.PayAppDO;
|
||||
import com.tashow.cloud.pay.dal.dataobject.channel.PayChannelDO;
|
||||
import com.tashow.cloud.payapi.enums.order.PayOrderStatusEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -42,7 +42,7 @@ public class PayOrderDO extends BaseDO {
|
||||
/**
|
||||
* 渠道编码
|
||||
*
|
||||
* 枚举 {@link PayChannelEnum}
|
||||
* 枚举 {@link PayTypeEnum}
|
||||
*/
|
||||
private String channelCode;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.tashow.cloud.pay.dal.dataobject.app.PayAppDO;
|
||||
import com.tashow.cloud.pay.dal.dataobject.channel.PayChannelDO;
|
||||
import com.tashow.cloud.pay.dal.dataobject.order.PayOrderDO;
|
||||
import com.tashow.cloud.payapi.enums.refund.PayRefundStatusEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -60,7 +60,7 @@ public class PayRefundDO extends BaseDO {
|
||||
/**
|
||||
* 渠道编码
|
||||
*
|
||||
* 枚举 {@link PayChannelEnum}
|
||||
* 枚举 {@link PayTypeEnum}
|
||||
*/
|
||||
private String channelCode;
|
||||
/**
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||
import com.tashow.cloud.pay.dal.dataobject.app.PayAppDO;
|
||||
import com.tashow.cloud.pay.dal.dataobject.channel.PayChannelDO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.transfer.PayTransferStatusRespEnum;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -55,7 +55,7 @@ public class PayTransferDO extends BaseDO {
|
||||
/**
|
||||
* 转账渠道编码
|
||||
*
|
||||
* 枚举 {@link PayChannelEnum}
|
||||
* 枚举 {@link PayTypeEnum}
|
||||
*/
|
||||
private String channelCode;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.tashow.cloud.sdk.payment.client.PayClient;
|
||||
import com.tashow.cloud.sdk.payment.client.PayClientConfig;
|
||||
import com.tashow.cloud.sdk.payment.client.PayClientFactory;
|
||||
import com.tashow.cloud.sdk.payment.client.impl.weixin.WxPubPayClient;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Validator;
|
||||
@@ -52,7 +52,7 @@ public class PayChannelServiceImpl implements PayChannelService {
|
||||
*/
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
payClientFactory.registerPayClientClass(PayChannelEnum.WX_PUB, WxPubPayClient.class);
|
||||
payClientFactory.registerPayClientClass(PayTypeEnum.WX_PUB, WxPubPayClient.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -90,7 +90,7 @@ public class PayChannelServiceImpl implements PayChannelService {
|
||||
*/
|
||||
private PayClientConfig parseConfig(String code, String configStr) {
|
||||
// 解析配置
|
||||
Class<? extends PayClientConfig> payClass = PayChannelEnum.getByCode(code).getConfigClass();
|
||||
Class<? extends PayClientConfig> payClass = PayTypeEnum.getByCode(code).getConfigClass();
|
||||
if (ObjectUtil.isNull(payClass)) {
|
||||
throw exception(CHANNEL_NOT_FOUND);
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
### 获得交易订单分页 => 成功
|
||||
GET {{baseUrl}}/trade/order/page?pageNo=1&pageSize=10
|
||||
Authorization: Bearer {{token}}
|
||||
tenant-id: {{adminTenantId}}
|
||||
|
||||
### 获得交易订单分页 => 成功
|
||||
GET {{baseUrl}}/trade/order/get-detail?id=21
|
||||
Authorization: Bearer {{token}}
|
||||
tenant-id: {{adminTenantId}}
|
||||
|
||||
### 获得交易订单的物流轨迹 => 成功
|
||||
GET {{baseUrl}}/trade/order/get-express-track-list?id=21
|
||||
Authorization: Bearer {{token}}
|
||||
tenant-id: {{adminTenantId}}
|
||||
@@ -5,7 +5,7 @@ import com.tashow.cloud.common.pojo.CommonResult;
|
||||
import com.tashow.cloud.common.pojo.PageResult;
|
||||
import com.tashow.cloud.memberapi.api.user.MemberUserApi;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderDetailRespVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageItemRespVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageRespVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageReqVO;
|
||||
import com.tashow.cloud.trade.convert.order.TradeOrderConvert;
|
||||
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO;
|
||||
@@ -16,6 +16,7 @@ import com.tashow.cloud.trade.service.order.TradeOrderQueryService;
|
||||
import com.tashow.cloud.trade.service.order.TradeOrderUpdateService;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.annotation.security.PermitAll;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -56,7 +57,7 @@ public class TradeOrderController {
|
||||
@GetMapping("/page")
|
||||
@PermitAll
|
||||
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
|
||||
public CommonResult<PageResult<TradeOrderPageItemRespVO>> getOrderPage(@Validated TradeOrderPageReqVO reqVO) {
|
||||
public CommonResult<PageResult<TradeOrderPageRespVO>> getOrderPage(@Valid TradeOrderPageReqVO reqVO) {
|
||||
// 查询订单
|
||||
PageResult<TradeOrderDO> pageResult = tradeOrderQueryService.getOrderPage(reqVO);
|
||||
if (CollUtil.isEmpty(pageResult.getList())) {
|
||||
|
||||
@@ -1,151 +1,71 @@
|
||||
package com.tashow.cloud.trade.controller.admin.order.vo;
|
||||
|
||||
// 移除Swagger相关导入
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 交易订单 Base VO,提供给添加、修改、详细的子 VO 使用
|
||||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
||||
*/
|
||||
@Data
|
||||
public class TradeOrderBaseVO {
|
||||
|
||||
// ========== 订单基本信息 ==========
|
||||
|
||||
// 订单编号 - 必填,示例:1024
|
||||
// 订单编号
|
||||
private Long id;
|
||||
|
||||
// 订单流水号 - 必填,示例:1146347329394184195
|
||||
// 订单流水号
|
||||
private String orderNum;
|
||||
|
||||
// 下单时间 - 必填
|
||||
// 下单时间
|
||||
private LocalDateTime createTime;
|
||||
|
||||
// 订单类型 - 必填,示例:1
|
||||
private Integer type;
|
||||
// 订单类目
|
||||
private String orderCategoryName;
|
||||
|
||||
// 订单来源 - 必填,示例:1
|
||||
private Integer terminal;
|
||||
// 订单来源
|
||||
private Integer orderTerminal;
|
||||
|
||||
// 用户编号 - 必填,示例:2048
|
||||
// 用户编号
|
||||
private Long userId;
|
||||
// 用户姓名
|
||||
private String userName;
|
||||
//用户昵称
|
||||
private String userNickName;
|
||||
// 用户头像
|
||||
private String userAvatar;
|
||||
//用户手机号
|
||||
private String userMobile;
|
||||
// 订单状态
|
||||
private Integer orderStatus;
|
||||
|
||||
// 用户 IP - 必填,示例:127.0.0.1
|
||||
private String userIp;
|
||||
//商品图片
|
||||
private String picUrl;
|
||||
//商品名称
|
||||
private String spuName;
|
||||
//商品规格
|
||||
private String skuName;
|
||||
// 购买的商品数量
|
||||
private Integer count;
|
||||
// 单价
|
||||
private Integer price;
|
||||
//到手价
|
||||
private Integer handedPrice;
|
||||
//实付金额
|
||||
private Integer payPrice;
|
||||
// 单位
|
||||
private String unit;
|
||||
|
||||
//预约时间
|
||||
private String orderTime;
|
||||
//服务地址
|
||||
private String serveAddress;
|
||||
// 用户备注 - 必填,示例:你猜
|
||||
private String userRemark;
|
||||
|
||||
// 订单状态 - 必填,示例:1
|
||||
private Integer status;
|
||||
|
||||
// 购买的商品数量 - 必填,示例:10
|
||||
private Integer productCount;
|
||||
|
||||
// 订单完成时间
|
||||
private LocalDateTime finishTime;
|
||||
|
||||
// 订单取消时间
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
// 取消类型,示例:10
|
||||
private Integer cancelType;
|
||||
|
||||
// 商家备注,示例:你猜一下
|
||||
private String remark;
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
|
||||
// 支付订单编号 - 必填,示例:1024
|
||||
private Long payOrderId;
|
||||
|
||||
// 是否已支付 - 必填,示例:true
|
||||
private Boolean payStatus;
|
||||
|
||||
// 付款时间
|
||||
private LocalDateTime payTime;
|
||||
|
||||
// 支付渠道 - 必填,示例:wx_lite
|
||||
private String payChannelCode;
|
||||
|
||||
// 商品原价(总) - 必填,示例:1000
|
||||
private Integer totalPrice;
|
||||
|
||||
// 订单优惠(总) - 必填,示例:100
|
||||
private Integer discountPrice;
|
||||
|
||||
// 运费金额 - 必填,示例:100
|
||||
private Integer deliveryPrice;
|
||||
|
||||
// 订单调价(总) - 必填,示例:100
|
||||
private Integer adjustPrice;
|
||||
|
||||
// 应付金额(总) - 必填,示例:1000
|
||||
private Integer payPrice;
|
||||
|
||||
// ========== 收件 + 物流基本信息 ==========
|
||||
|
||||
// 配送方式,示例:10
|
||||
private Integer deliveryType;
|
||||
|
||||
// 自提门店,示例:10
|
||||
private Long pickUpStoreId;
|
||||
|
||||
// 自提核销码,示例:10
|
||||
private Long pickUpVerifyCode;
|
||||
|
||||
// 配送模板编号,示例:1024
|
||||
private Long deliveryTemplateId;
|
||||
|
||||
// 发货物流公司编号,示例:1024
|
||||
private Long logisticsId;
|
||||
|
||||
// 发货物流单号,示例:1024
|
||||
private String logisticsNo;
|
||||
|
||||
// 发货时间
|
||||
private LocalDateTime deliveryTime;
|
||||
|
||||
// 收货时间
|
||||
private LocalDateTime receiveTime;
|
||||
|
||||
// 收件人名称 - 必填,示例:张三
|
||||
private String receiverName;
|
||||
|
||||
// 收件人手机 - 必填,示例:13800138000
|
||||
private String receiverMobile;
|
||||
|
||||
// 收件人地区编号 - 必填,示例:110000
|
||||
private Integer receiverAreaId;
|
||||
|
||||
// 收件人详细地址 - 必填,示例:中关村大街 1 号
|
||||
private String receiverDetailAddress;
|
||||
|
||||
// ========== 售后基本信息 ==========
|
||||
|
||||
// 售后状态,示例:1
|
||||
private Integer afterSaleStatus;
|
||||
|
||||
// 退款金额 - 必填,示例:100
|
||||
private Integer refundPrice;
|
||||
|
||||
// ========== 营销基本信息 ==========
|
||||
|
||||
// 优惠劵编号,示例:1024
|
||||
private Long couponId;
|
||||
|
||||
// 优惠劵减免金额 - 必填,示例:100
|
||||
private Integer couponPrice;
|
||||
|
||||
// 积分抵扣的金额 - 必填,示例:100
|
||||
private Integer pointPrice;
|
||||
|
||||
// VIP 减免金额 - 必填,示例:888
|
||||
private Integer vipPrice;
|
||||
|
||||
// 推广人编号,示例:1
|
||||
private Long brokerageUserId;
|
||||
//支付方式
|
||||
private String payType;
|
||||
//财务状态
|
||||
private String financeStatus;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
package com.tashow.cloud.trade.controller.admin.order.vo;
|
||||
|
||||
|
||||
import com.tashow.cloud.trade.controller.admin.base.member.user.MemberUserRespVO;
|
||||
import com.tashow.cloud.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// 管理后台 - 交易订单的分页项 Response VO
|
||||
@Data
|
||||
public class TradeOrderPageItemRespVO extends TradeOrderBaseVO {
|
||||
|
||||
// 收件人地区名字 - 必填,示例:上海 上海市 普陀区
|
||||
private String receiverAreaName;
|
||||
|
||||
// 订单项列表 - 必填
|
||||
private List<Item> items;
|
||||
|
||||
// 用户信息 - 必填
|
||||
private MemberUserRespVO user;
|
||||
|
||||
// 推广人信息
|
||||
private MemberUserRespVO brokerageUser;
|
||||
|
||||
// 管理后台 - 交易订单的分页项的订单项目
|
||||
@Data
|
||||
public static class Item extends TradeOrderItemBaseVO {
|
||||
|
||||
// 属性列表 - 必填
|
||||
private List<ProductPropertyValueDetailRespVO> properties;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,16 +2,11 @@ package com.tashow.cloud.trade.controller.admin.order.vo;
|
||||
|
||||
// 移除Swagger相关导入
|
||||
|
||||
import com.tashow.cloud.common.enums.TerminalEnum;
|
||||
import com.tashow.cloud.common.pojo.PageParam;
|
||||
import com.tashow.cloud.common.validation.InEnum;
|
||||
import com.tashow.cloud.common.validation.Mobile;
|
||||
import com.tashow.cloud.tradeapi.enums.order.TradeOrderStatusEnum;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@@ -20,47 +15,34 @@ import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_
|
||||
@Data
|
||||
public class TradeOrderPageReqVO extends PageParam {
|
||||
|
||||
// 订单号,示例:88888888
|
||||
private String orderNum;
|
||||
|
||||
// 用户编号,示例:1024
|
||||
private Long userId;
|
||||
|
||||
// 用户昵称,示例:小王
|
||||
private String userNickname;
|
||||
|
||||
// 用户手机号,示例:小王
|
||||
@Mobile
|
||||
private String userMobile;
|
||||
|
||||
// 配送方式,示例:1
|
||||
private Integer deliveryType;
|
||||
|
||||
// 发货物流公司编号,示例:1
|
||||
private Long logisticsId;
|
||||
|
||||
// 自提门店编号,示例:[1,2]
|
||||
private List<Long> pickUpStoreIds;
|
||||
|
||||
// 自提核销码,示例:12345678
|
||||
private String pickUpVerifyCode;
|
||||
|
||||
// 订单类型,示例:1
|
||||
private Integer type;
|
||||
|
||||
// 订单状态,示例:1
|
||||
@InEnum(value = TradeOrderStatusEnum.class, message = "订单状态必须是 {value}")
|
||||
private Integer status;
|
||||
private Integer orderStatus;
|
||||
//聚合检索字段(商品名称,商品id,订单号)
|
||||
private String prodSearch;
|
||||
|
||||
// 支付渠道,示例:wx_lite
|
||||
private String payChannelCode;
|
||||
//聚合检索字段 买家昵称/手机号
|
||||
private String userSearch;
|
||||
|
||||
//卖家名称
|
||||
private String merchantName;
|
||||
|
||||
// 订单类目id,示例:1
|
||||
private Integer orderCategoryId;
|
||||
// 订单来源,示例:1
|
||||
private Integer orderTerminal;
|
||||
// 财务状态,示例:1
|
||||
private Integer financeStatus;
|
||||
// 售后状态,示例:1
|
||||
private Integer afterSaleStatus;
|
||||
// 预约类型,示例:1
|
||||
private Integer subType;
|
||||
|
||||
// 创建时间
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
// 创建时间
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] subTime;
|
||||
|
||||
// 订单来源,示例:10
|
||||
@InEnum(value = TerminalEnum.class, message = "订单来源 {value}")
|
||||
private Integer terminal;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.tashow.cloud.trade.controller.admin.order.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
// 管理后台 - 交易订单的分页项 Response VO
|
||||
@Data
|
||||
public class TradeOrderPageRespVO extends TradeOrderBaseVO {
|
||||
|
||||
|
||||
}
|
||||
@@ -91,7 +91,7 @@ public interface TradeOrderConvert {
|
||||
.setAppKey(orderProperties.getPayAppKey()).setUserIp(order.getUserIp());
|
||||
// 商户相关字段
|
||||
createReqDTO.setMerchantOrderId(String.valueOf(order.getId()));
|
||||
String subject = orderItems.get(0).getProdName();
|
||||
String subject = orderItems.get(0).getSpuName();
|
||||
subject = StrUtils.maxLength(subject, PayOrderCreateReqDTO.SUBJECT_MAX_LENGTH); // 避免超过 32 位
|
||||
createReqDTO.setSubject(subject);
|
||||
createReqDTO.setBody(subject); // TODO 芋艿:临时写死
|
||||
@@ -100,20 +100,15 @@ public interface TradeOrderConvert {
|
||||
return createReqDTO;
|
||||
}
|
||||
|
||||
default PageResult<TradeOrderPageItemRespVO> convertPage(PageResult<TradeOrderDO> pageResult,
|
||||
List<TradeOrderItemDO> orderItems,
|
||||
Map<Long, MemberUserRespDTO> memberUserMap) {
|
||||
default PageResult<TradeOrderPageRespVO> convertPage(PageResult<TradeOrderDO> pageResult,
|
||||
List<TradeOrderItemDO> orderItems,
|
||||
Map<Long, MemberUserRespDTO> memberUserMap) {
|
||||
Map<Long, List<TradeOrderItemDO>> orderItemMap = convertMultiMap(orderItems, TradeOrderItemDO::getOrderId);
|
||||
// 转化 List
|
||||
List<TradeOrderPageItemRespVO> orderVOs = CollectionUtils.convertList(pageResult.getList(), order -> {
|
||||
List<TradeOrderPageRespVO> orderVOs = CollectionUtils.convertList(pageResult.getList(), order -> {
|
||||
List<TradeOrderItemDO> xOrderItems = orderItemMap.get(order.getId());
|
||||
TradeOrderPageItemRespVO orderVO = convert(order, xOrderItems);
|
||||
TradeOrderPageRespVO orderVO = convert(order, xOrderItems);
|
||||
// 处理收货地址
|
||||
orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId()));
|
||||
// 增加用户信息
|
||||
orderVO.setUser(convertUser(memberUserMap.get(orderVO.getUserId())));
|
||||
// 增加推广人信息
|
||||
orderVO.setBrokerageUser(convertUser(memberUserMap.get(orderVO.getBrokerageUserId())));
|
||||
return orderVO;
|
||||
});
|
||||
return new PageResult<>(orderVOs, pageResult.getTotal());
|
||||
@@ -121,7 +116,7 @@ public interface TradeOrderConvert {
|
||||
|
||||
MemberUserRespVO convertUser(MemberUserRespDTO memberUserRespDTO);
|
||||
|
||||
TradeOrderPageItemRespVO convert(TradeOrderDO order, List<TradeOrderItemDO> items);
|
||||
TradeOrderPageRespVO convert(TradeOrderDO order, List<TradeOrderItemDO> items);
|
||||
|
||||
// ProductPropertyValueDetailRespVO convert(ProductPropertyValueDetailRespDTO bean);
|
||||
|
||||
@@ -250,7 +245,7 @@ public interface TradeOrderConvert {
|
||||
ProductSpuRespDTO spu, ProductSkuRespDTO sku) {
|
||||
BrokerageAddReqBO bo = new BrokerageAddReqBO().setBizId(String.valueOf(item.getId())).setSourceUserId(item.getUserId())
|
||||
.setBasePrice(item.getPayPrice())
|
||||
.setTitle(StrUtil.format("{}成功购买{}", user.getNickname(), item.getProdId()))
|
||||
.setTitle(StrUtil.format("{}成功购买{}", user.getNickname(), item.getSpuId()))
|
||||
.setFirstFixedPrice(0).setSecondFixedPrice(0);
|
||||
if (BooleanUtil.isTrue(spu.getSubCommissionType())) {
|
||||
bo.setFirstFixedPrice(sku.getFirstBrokeragePrice()).setSecondFixedPrice(sku.getSecondBrokeragePrice());
|
||||
@@ -262,7 +257,7 @@ public interface TradeOrderConvert {
|
||||
List<TradeOrderRespDTO> convertList04(List<TradeOrderDO> list);
|
||||
|
||||
@Mappings({
|
||||
@Mapping(target = "prodId", source = "item.prodId"),
|
||||
@Mapping(target = "spuId", source = "item.spuId"),
|
||||
@Mapping(target = "skuId", source = "item.skuId"),
|
||||
@Mapping(target = "count", source = "item.count"),
|
||||
@Mapping(target = "orderId", source = "order.id"),
|
||||
|
||||
@@ -20,7 +20,7 @@ public class CombinationRecordCreateReqDTO {
|
||||
* spu 编号
|
||||
*/
|
||||
@NotNull(message = "spu 编号不能为空")
|
||||
private Long prodId;
|
||||
private Long spuId;
|
||||
/**
|
||||
* sku 编号
|
||||
*/
|
||||
|
||||
@@ -62,6 +62,8 @@ public class TradeOrderDO extends BaseDO {
|
||||
* 关联 MemberUserDO 的 id 编号
|
||||
*/
|
||||
private Long userId;
|
||||
private String userMobile;
|
||||
private String userName;
|
||||
/**
|
||||
* 用户 IP
|
||||
*/
|
||||
@@ -76,10 +78,7 @@ public class TradeOrderDO extends BaseDO {
|
||||
* 枚举 {@link TradeOrderStatusEnum}
|
||||
*/
|
||||
private Integer orderStatus;
|
||||
/**
|
||||
* 购买的商品数量
|
||||
*/
|
||||
private Integer productCount;
|
||||
private Integer financeStatus;
|
||||
/**
|
||||
* 订单完成时间
|
||||
*/
|
||||
@@ -98,6 +97,8 @@ public class TradeOrderDO extends BaseDO {
|
||||
* 商家备注
|
||||
*/
|
||||
private String merchantRemark;
|
||||
private String merchantName;
|
||||
private Long orderCategoryId;
|
||||
/**
|
||||
* 是否评价
|
||||
*
|
||||
@@ -164,12 +165,9 @@ public class TradeOrderDO extends BaseDO {
|
||||
* 应付金额(总),单位:分
|
||||
*
|
||||
* = {@link #totalPrice}
|
||||
* - {@link #couponPrice}
|
||||
* - {@link #pointPrice}
|
||||
* - {@link #discountPrice}
|
||||
* + {@link #deliveryPrice}
|
||||
* + {@link #adjustPrice}
|
||||
* - {@link #vipPrice}
|
||||
*/
|
||||
private Integer payPrice;
|
||||
|
||||
@@ -246,4 +244,8 @@ public class TradeOrderDO extends BaseDO {
|
||||
*/
|
||||
private Integer refundPrice;
|
||||
|
||||
private Integer afterSaleStatus;
|
||||
private Integer subType;
|
||||
private LocalDateTime subTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -2,15 +2,15 @@ package com.tashow.cloud.trade.dal.dataobject.order;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.Version;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||
import com.tashow.cloud.trade.dal.dataobject.aftersale.AfterSaleDO;
|
||||
import com.tashow.cloud.tradeapi.enums.order.TradeOrderItemAfterSaleStatusEnum;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -52,19 +52,22 @@ public class TradeOrderItemDO extends BaseDO {
|
||||
*
|
||||
* 关联 ProductSkuDO 的 spuId 编号
|
||||
*/
|
||||
private Long prodId;
|
||||
private Long spuId;
|
||||
/**
|
||||
* 商品 SPU 名称
|
||||
*
|
||||
* 冗余 ProductSkuDO 的 spuName 编号
|
||||
*/
|
||||
private String prodName;
|
||||
private String spuName;
|
||||
|
||||
private Integer spuType;
|
||||
/**
|
||||
* 商品 SKU 编号
|
||||
*
|
||||
* 关联 ProductSkuDO 的 id 编号
|
||||
*/
|
||||
private Long skuId;
|
||||
private String skuName;
|
||||
/**
|
||||
* 属性数组,JSON 格式
|
||||
*
|
||||
@@ -80,15 +83,10 @@ public class TradeOrderItemDO extends BaseDO {
|
||||
* 购买数量
|
||||
*/
|
||||
private Integer count;
|
||||
/**
|
||||
* 是否评价
|
||||
*
|
||||
* true - 已评价
|
||||
* false - 未评价
|
||||
*/
|
||||
private Boolean commentStatus;
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
//商品成本
|
||||
private Integer expensePrice;
|
||||
|
||||
/**
|
||||
* 商品原价(单),单位:分
|
||||
@@ -117,60 +115,25 @@ public class TradeOrderItemDO extends BaseDO {
|
||||
* 应付金额(总),单位:分
|
||||
*
|
||||
* = {@link #price} * {@link #count}
|
||||
* - {@link #couponPrice}
|
||||
* - {@link #pointPrice}
|
||||
* - {@link #discountPrice}
|
||||
* + {@link #deliveryPrice}
|
||||
* + {@link #adjustPrice}
|
||||
* - {@link #vipPrice}
|
||||
*/
|
||||
private Integer payPrice;
|
||||
//实收金额
|
||||
private Integer livePrice;
|
||||
|
||||
// ========== 营销基本信息 ==========
|
||||
private Integer orderType;
|
||||
private LocalDateTime orderTime;
|
||||
private String serveAddress;
|
||||
private String serveInfo;
|
||||
private String serveExtInfo;
|
||||
private String priceExtInfo;
|
||||
|
||||
/**
|
||||
* 优惠劵减免金额,单位:分
|
||||
*
|
||||
* 对应 taobao 的 trade.coupon_fee 字段
|
||||
*/
|
||||
private Integer couponPrice;
|
||||
/**
|
||||
* 积分抵扣的金额,单位:分
|
||||
*
|
||||
* 对应 taobao 的 trade.point_fee 字段
|
||||
*/
|
||||
private Integer pointPrice;
|
||||
/**
|
||||
* 使用的积分
|
||||
*
|
||||
* 目的:用于后续取消或者售后订单时,需要归还赠送
|
||||
*/
|
||||
private Integer usePoint;
|
||||
/**
|
||||
* 赠送的积分
|
||||
*
|
||||
* 目的:用于后续取消或者售后订单时,需要扣减赠送
|
||||
*/
|
||||
private Integer givePoint;
|
||||
/**
|
||||
* VIP 减免金额,单位:分
|
||||
*/
|
||||
private Integer vipPrice;
|
||||
@Version
|
||||
private Integer version;
|
||||
|
||||
// ========== 售后基本信息 ==========
|
||||
|
||||
/**
|
||||
* 售后单编号
|
||||
*
|
||||
* 关联 {@link AfterSaleDO#getId()} 字段
|
||||
*/
|
||||
private Long afterSaleId;
|
||||
/**
|
||||
* 售后状态
|
||||
*
|
||||
* 枚举 {@link TradeOrderItemAfterSaleStatusEnum}
|
||||
*/
|
||||
private Integer afterSaleStatus;
|
||||
|
||||
/**
|
||||
* 商品属性
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.tashow.cloud.trade.dal.mysql.order;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX;
|
||||
import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO;
|
||||
@@ -20,8 +19,8 @@ public interface TradeOrderItemMapper extends BaseMapperX<TradeOrderItemDO> {
|
||||
|
||||
default int updateAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus,
|
||||
Long afterSaleId) {
|
||||
return update(new TradeOrderItemDO().setAfterSaleStatus(newAfterSaleStatus).setAfterSaleId(afterSaleId),
|
||||
new LambdaUpdateWrapper<>(new TradeOrderItemDO().setId(id).setAfterSaleStatus(oldAfterSaleStatus)));
|
||||
return 1;// update(new TradeOrderItemDO().setAfterSaleStatus(newAfterSaleStatus).setAfterSaleId(afterSaleId),
|
||||
//new LambdaUpdateWrapper<>(new TradeOrderItemDO().setId(id).setAfterSaleStatus(oldAfterSaleStatus)));
|
||||
}
|
||||
|
||||
default List<TradeOrderItemDO> selectListByOrderId(Long orderId) {
|
||||
@@ -41,7 +40,8 @@ public interface TradeOrderItemMapper extends BaseMapperX<TradeOrderItemDO> {
|
||||
default List<TradeOrderItemDO> selectListByOrderIdAndCommentStatus(Long orderId, Boolean commentStatus) {
|
||||
return selectList(new LambdaQueryWrapperX<TradeOrderItemDO>()
|
||||
.eq(TradeOrderItemDO::getOrderId, orderId)
|
||||
.eq(TradeOrderItemDO::getCommentStatus, commentStatus));
|
||||
// .eq(TradeOrderItemDO::getCommentStatus, commentStatus)
|
||||
);
|
||||
}
|
||||
|
||||
default int selectProductSumByOrderId(@Param("orderIds") Set<Long> orderIds) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.tashow.cloud.trade.dal.mysql.order;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.tashow.cloud.common.pojo.PageResult;
|
||||
import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX;
|
||||
@@ -30,18 +31,21 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
|
||||
|
||||
default PageResult<TradeOrderDO> selectPage(TradeOrderPageReqVO reqVO, Set<Long> userIds) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<TradeOrderDO>()
|
||||
.likeIfPresent(TradeOrderDO::getOrderNum, reqVO.getOrderNum())
|
||||
.eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId())
|
||||
.eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType())
|
||||
.inIfPresent(TradeOrderDO::getUserId, userIds)
|
||||
.eqIfPresent(TradeOrderDO::getOrderType, reqVO.getType())
|
||||
.eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus())
|
||||
.eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
|
||||
.eqIfPresent(TradeOrderDO::getOrderTerminal, reqVO.getTerminal())
|
||||
.eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId())
|
||||
.inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
|
||||
.likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
|
||||
.likeIfPresent(TradeOrderDO::getMerchantName, reqVO.getMerchantName())
|
||||
.eqIfPresent(TradeOrderDO::getOrderCategoryId, reqVO.getOrderCategoryId())
|
||||
.eqIfPresent(TradeOrderDO::getOrderTerminal, reqVO.getOrderTerminal())
|
||||
.eqIfPresent(TradeOrderDO::getFinanceStatus, reqVO.getFinanceStatus())
|
||||
.eqIfPresent(TradeOrderDO::getAfterSaleStatus, reqVO.getAfterSaleStatus())
|
||||
.eqIfPresent(TradeOrderDO::getSubType, reqVO.getSubType())
|
||||
.betweenIfPresent(TradeOrderDO::getSubTime, reqVO.getSubTime())
|
||||
.betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())
|
||||
.and(StrUtil.isNotBlank(reqVO.getProdSearch()),
|
||||
qw->qw.like(TradeOrderDO::getOrderNum, reqVO.getProdSearch())
|
||||
.or().like(TradeOrderDO::getOrderStatus, reqVO.getProdSearch())
|
||||
.or().like(TradeOrderDO::getOrderType, reqVO.getProdSearch()))
|
||||
.and(StrUtil.isNotBlank(reqVO.getUserSearch()),
|
||||
qw->qw.eq(TradeOrderDO::getUserMobile, reqVO.getUserSearch())
|
||||
.or().like(TradeOrderDO::getUserName,reqVO.getProdSearch()))
|
||||
.orderByDesc(TradeOrderDO::getId));
|
||||
}
|
||||
|
||||
@@ -51,17 +55,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
|
||||
.selectAs(TradeOrderDO::getRefundStatus, TradeOrderDO::getRefundStatus) // 售后状态
|
||||
.selectCount(TradeOrderDO::getId, "count") // 售后状态对应的数量
|
||||
.selectSum(TradeOrderDO::getPayPrice, "price") // 售后状态对应的支付金额
|
||||
.likeIfPresent(TradeOrderDO::getOrderNum, reqVO.getOrderNum())
|
||||
.eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId())
|
||||
.eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType())
|
||||
.inIfPresent(TradeOrderDO::getUserId, userIds)
|
||||
.eqIfPresent(TradeOrderDO::getOrderType, reqVO.getType())
|
||||
.eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus())
|
||||
.eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
|
||||
.eqIfPresent(TradeOrderDO::getOrderTerminal, reqVO.getTerminal())
|
||||
.eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId())
|
||||
.inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
|
||||
.likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
|
||||
.betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())
|
||||
.groupBy(TradeOrderDO::getRefundStatus)); // 按售后状态分组
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ public class AfterSaleServiceImpl implements AfterSaleService {
|
||||
throw exception(ORDER_ITEM_NOT_FOUND);
|
||||
}
|
||||
// 已申请售后,不允许再发起售后申请
|
||||
if (!TradeOrderItemAfterSaleStatusEnum.isNone(orderItem.getAfterSaleStatus())) {
|
||||
if (!TradeOrderItemAfterSaleStatusEnum.isNone(1)) {
|
||||
throw exception(AFTER_SALE_CREATE_FAIL_ORDER_ITEM_APPLIED);
|
||||
}
|
||||
// 申请的退款金额,不能超过商品的价格
|
||||
|
||||
@@ -157,7 +157,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, createReqVO);
|
||||
// 1.2 构建订单
|
||||
TradeOrderDO order = null;// buildTradeOrder(userId, createReqVO, calculateRespBO);
|
||||
List<TradeOrderItemDO> orderItems =null;// buildTradeOrderItems(order, calculateRespBO);
|
||||
List<TradeOrderItemDO> orderItems = null;// buildTradeOrderItems(order, calculateRespBO);
|
||||
|
||||
// 2. 订单创建前的逻辑
|
||||
tradeOrderHandlers.forEach(handler -> handler.beforeOrderCreate(order, orderItems));
|
||||
@@ -227,9 +227,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
|
||||
// 3. 生成预支付
|
||||
// 特殊情况:积分兑换时,可能支付金额为零
|
||||
if (order.getPayPrice() > 0) {
|
||||
createPayOrder(order, orderItems);
|
||||
}
|
||||
createPayOrder(order, orderItems);
|
||||
|
||||
// 4. 插入订单日志
|
||||
TradeOrderLogUtils.setOrderInfo(order.getId(), null, order.getOrderStatus());
|
||||
@@ -787,7 +785,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
*/
|
||||
private boolean isAllOrderItemAfterSaleSuccess(Long id) {
|
||||
List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(id);
|
||||
return orderItems.stream().allMatch(orderItem -> Objects.equals(orderItem.getAfterSaleStatus(),
|
||||
return orderItems.stream().allMatch(orderItem -> Objects.equals(1,
|
||||
TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus()));
|
||||
}
|
||||
|
||||
@@ -923,7 +921,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
createOrderItemComment0(orderItem, commentCreateReqVO);
|
||||
|
||||
// 2.2 更新订单项评价状态
|
||||
tradeOrderItemMapper.updateById(new TradeOrderItemDO().setId(orderItem.getId()).setCommentStatus(Boolean.TRUE));
|
||||
tradeOrderItemMapper.updateById(new TradeOrderItemDO().setId(orderItem.getId()));
|
||||
}
|
||||
|
||||
// 3. 所有订单项都评论了,则更新订单评价状态
|
||||
@@ -946,8 +944,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
// Long commentId = productCommentApi.createComment(productCommentCreateReqDTO).getCheckedData();
|
||||
|
||||
// 2. 更新订单项评价状态
|
||||
tradeOrderItemMapper.updateById(new TradeOrderItemDO().setId(orderItem.getId()).setCommentStatus(Boolean.TRUE));
|
||||
return 0l;//commentId;
|
||||
tradeOrderItemMapper.updateById(new TradeOrderItemDO().setId(orderItem.getId()));
|
||||
return 0l;//commentId;
|
||||
}
|
||||
|
||||
// =================== 营销相关的操作 ===================
|
||||
|
||||
@@ -73,7 +73,7 @@ public interface TradeOrderHandler {
|
||||
*/
|
||||
default List<TradeOrderItemDO> filterOrderItemListByNoneAfterSale(List<TradeOrderItemDO> orderItems) {
|
||||
return CollectionUtils.filterList(orderItems,
|
||||
item -> TradeOrderItemAfterSaleStatusEnum.isNone(item.getAfterSaleStatus()));
|
||||
item -> TradeOrderItemAfterSaleStatusEnum.isNone(1));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: localhost:8848 # Nacos 服务器地址
|
||||
# username: nacos # Nacos 账号
|
||||
# password: nacos # Nacos 密码
|
||||
server-addr: 43.139.42.137:8848 # Nacos 服务器地址
|
||||
username: nacos # Nacos 账号
|
||||
password: nacos # Nacos 密码
|
||||
discovery: # 【配置中心】配置项
|
||||
namespace: dev # 命名空间。这里使用 dev 开发环境
|
||||
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tashow.cloud.sdk.payment.client;
|
||||
|
||||
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
|
||||
/**
|
||||
* 支付客户端的工厂接口
|
||||
@@ -33,6 +33,6 @@ public interface PayClientFactory {
|
||||
* @param channel 支付渠道的编码的枚举
|
||||
* @param payClientClass 支付客户端 class
|
||||
*/
|
||||
void registerPayClientClass(PayChannelEnum channel, Class<?> payClientClass);
|
||||
void registerPayClientClass(PayTypeEnum channel, Class<?> payClientClass);
|
||||
|
||||
}
|
||||
|
||||
@@ -7,14 +7,14 @@ import com.tashow.cloud.sdk.payment.client.PayClientConfig;
|
||||
import com.tashow.cloud.sdk.payment.client.PayClientFactory;
|
||||
import com.tashow.cloud.sdk.payment.client.impl.alipay.*;
|
||||
import com.tashow.cloud.sdk.payment.client.impl.weixin.*;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
import static com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum.*;
|
||||
import static com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum.*;
|
||||
|
||||
|
||||
/**
|
||||
@@ -35,7 +35,7 @@ public class PayClientFactoryImpl implements PayClientFactory {
|
||||
/**
|
||||
* 支付客户端 Class Map
|
||||
*/
|
||||
private final Map<PayChannelEnum, Class<?>> clientClass = new ConcurrentHashMap<>();
|
||||
private final Map<PayTypeEnum, Class<?>> clientClass = new ConcurrentHashMap<>();
|
||||
|
||||
public PayClientFactoryImpl() {
|
||||
// 微信支付客户端
|
||||
@@ -56,7 +56,7 @@ public class PayClientFactoryImpl implements PayClientFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerPayClientClass(PayChannelEnum channel, Class<?> payClientClass) {
|
||||
public void registerPayClientClass(PayTypeEnum channel, Class<?> payClientClass) {
|
||||
clientClass.put(channel, payClientClass);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class PayClientFactoryImpl implements PayClientFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
private <Config extends PayClientConfig> AbstractPayClient<Config> createPayClient(Long channelId, String channelCode,
|
||||
Config config) {
|
||||
PayChannelEnum channelEnum = PayChannelEnum.getByCode(channelCode);
|
||||
PayTypeEnum channelEnum = PayTypeEnum.getByCode(channelCode);
|
||||
Assert.notNull(channelEnum, String.format("支付渠道(%s) 为空", channelCode));
|
||||
Class<?> payClientClass = clientClass.get(channelEnum);
|
||||
Assert.notNull(payClientClass, String.format("支付渠道(%s) Class 为空", channelCode));
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.alipay.api.request.AlipayTradeAppPayRequest;
|
||||
import com.alipay.api.response.AlipayTradeAppPayResponse;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class AlipayAppPayClient extends AbstractAlipayPayClient {
|
||||
|
||||
public AlipayAppPayClient(Long channelId, AlipayPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.ALIPAY_APP.getCode(), config);
|
||||
super(channelId, PayTypeEnum.ALIPAY_APP.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.alipay.api.request.AlipayTradePayRequest;
|
||||
import com.alipay.api.response.AlipayTradePayResponse;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -32,7 +32,7 @@ import static com.tashow.cloud.sdk.payment.client.impl.alipay.AlipayPayClientCon
|
||||
public class AlipayBarPayClient extends AbstractAlipayPayClient {
|
||||
|
||||
public AlipayBarPayClient(Long channelId, AlipayPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.ALIPAY_BAR.getCode(), config);
|
||||
super(channelId, PayTypeEnum.ALIPAY_BAR.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.alipay.api.request.AlipayTradePagePayRequest;
|
||||
import com.alipay.api.response.AlipayTradePagePayResponse;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Objects;
|
||||
public class AlipayPcPayClient extends AbstractAlipayPayClient {
|
||||
|
||||
public AlipayPcPayClient(Long channelId, AlipayPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.ALIPAY_PC.getCode(), config);
|
||||
super(channelId, PayTypeEnum.ALIPAY_PC.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.alipay.api.request.AlipayTradePrecreateRequest;
|
||||
import com.alipay.api.response.AlipayTradePrecreateResponse;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -26,7 +26,7 @@ import static com.tashow.cloud.sdk.payment.client.impl.alipay.AlipayPayClientCon
|
||||
public class AlipayQrPayClient extends AbstractAlipayPayClient {
|
||||
|
||||
public AlipayQrPayClient(Long channelId, AlipayPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.ALIPAY_QR.getCode(), config);
|
||||
super(channelId, PayTypeEnum.ALIPAY_QR.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.alipay.api.request.AlipayTradeWapPayRequest;
|
||||
import com.alipay.api.response.AlipayTradeWapPayResponse;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -22,7 +22,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class AlipayWapPayClient extends AbstractAlipayPayClient {
|
||||
|
||||
public AlipayWapPayClient(Long channelId, AlipayPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.ALIPAY_WAP.getCode(), config);
|
||||
super(channelId, PayTypeEnum.ALIPAY_WAP.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.github.binarywang.wxpay.constant.WxPayConstants;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -29,7 +29,7 @@ import static com.tashow.cloud.common.util.json.JsonUtils.toJsonString;
|
||||
public class WxAppPayClient extends AbstractWxPayClient {
|
||||
|
||||
public WxAppPayClient(Long channelId, WxPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.WX_APP.getCode(), config);
|
||||
super(channelId, PayTypeEnum.WX_APP.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.tashow.cloud.common.util.date.LocalDateTimeUtils;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -38,7 +38,7 @@ public class WxBarPayClient extends AbstractWxPayClient {
|
||||
private static final Duration AUTH_CODE_EXPIRE = Duration.ofMinutes(3);
|
||||
|
||||
public WxBarPayClient(Long channelId, WxPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.WX_BAR.getCode(), config);
|
||||
super(channelId, PayTypeEnum.WX_BAR.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.tashow.cloud.sdk.payment.client.impl.weixin;
|
||||
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
@@ -16,7 +16,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class WxLitePayClient extends WxPubPayClient {
|
||||
|
||||
public WxLitePayClient(Long channelId, WxPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.WX_LITE.getCode(), config);
|
||||
super(channelId, PayTypeEnum.WX_LITE.getCode(), config);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.github.binarywang.wxpay.constant.WxPayConstants;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class WxNativePayClient extends AbstractWxPayClient {
|
||||
|
||||
public WxNativePayClient(Long channelId, WxPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.WX_NATIVE.getCode(), config);
|
||||
super(channelId, PayTypeEnum.WX_NATIVE.getCode(), config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.github.binarywang.wxpay.constant.WxPayConstants;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -30,7 +30,7 @@ import static com.tashow.cloud.common.util.json.JsonUtils.toJsonString;
|
||||
public class WxPubPayClient extends AbstractWxPayClient {
|
||||
|
||||
public WxPubPayClient(Long channelId, WxPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.WX_PUB.getCode(), config);
|
||||
super(channelId, PayTypeEnum.WX_PUB.getCode(), config);
|
||||
}
|
||||
|
||||
protected WxPubPayClient(Long channelId, String channelCode, WxPayClientConfig config) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.github.binarywang.wxpay.constant.WxPayConstants;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderUnifiedReqDTO;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayChannelEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.channel.PayTypeEnum;
|
||||
import com.tashow.cloud.sdk.payment.enums.order.PayOrderDisplayModeEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class WxWapPayClient extends AbstractWxPayClient {
|
||||
|
||||
public WxWapPayClient(Long channelId, WxPayClientConfig config) {
|
||||
super(channelId, PayChannelEnum.WX_WAP.getCode(), config);
|
||||
super(channelId, PayTypeEnum.WX_WAP.getCode(), config);
|
||||
}
|
||||
|
||||
protected WxWapPayClient(Long channelId, String channelCode, WxPayClientConfig config) {
|
||||
|
||||
@@ -14,7 +14,7 @@ import lombok.Getter;
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PayChannelEnum {
|
||||
public enum PayTypeEnum {
|
||||
|
||||
WX_PUB("wx_pub", "微信 JSAPI 支付", WxPayClientConfig.class), // 公众号网页
|
||||
WX_LITE("wx_lite", "微信小程序支付", WxPayClientConfig.class),
|
||||
@@ -55,8 +55,12 @@ public enum PayChannelEnum {
|
||||
* 支付宝支付
|
||||
*/
|
||||
public static final String ALIPAY = "ALIPAY";
|
||||
/**
|
||||
* 云闪付支付
|
||||
*/
|
||||
public static final String CLOUDPAY = "CLOUDPAY";
|
||||
|
||||
public static PayChannelEnum getByCode(String code) {
|
||||
public static PayTypeEnum getByCode(String code) {
|
||||
return ArrayUtil.firstMatch(o -> o.getCode().equals(code), values());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user