From 90e28f056a7f17b7efcd9169f20db55ecde570ce Mon Sep 17 00:00:00 2001
From: liwq <122639653@qq.com>
Date: Mon, 27 Oct 2025 16:51:14 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=A2=E5=8D=95=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sql/mysql/order.sql | 16 +++
tashow-dependencies/pom.xml | 5 +
.../order/TradeOrderOperateTypeEnum.java | 1 +
.../mybatis/core/mapper/BaseMapperX.java | 2 +-
.../service/dialog/AiDialogServiceImpl.java | 2 +-
.../controller/admin/auth/AuthController.java | 29 ++--
tashow-module/tashow-module-trade/pom.xml | 4 +
.../admin/order/TradeOrderController.java | 134 ++++++++----------
.../order/vo/TradeOrderFastPhotoReqVo.java | 12 ++
.../order/vo/TradeOrderFastPhotoRespVo.java | 20 +++
.../convert/order/TradeOrderConvert.java | 25 ++--
.../dal/dataobject/order/TradeSubLogDO.java | 44 ++++++
.../dal/mysql/order/TradeSubLogMapper.java | 15 ++
.../rpc/config/RpcConfiguration.java | 2 +
.../service/order/TradeOrderQueryService.java | 7 +
.../order/TradeOrderQueryServiceImpl.java | 9 ++
.../order/TradeOrderUpdateService.java | 6 +
.../order/TradeOrderUpdateServiceImpl.java | 27 +++-
.../service/order/TradeSubLogService.java | 28 ++++
.../service/order/TradeSubLogServiceImpl.java | 41 ++++++
20 files changed, 313 insertions(+), 116 deletions(-)
create mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoReqVo.java
create mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoRespVo.java
create mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeSubLogDO.java
create mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeSubLogMapper.java
create mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogService.java
create mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogServiceImpl.java
diff --git a/sql/mysql/order.sql b/sql/mysql/order.sql
index 3956555..3393390 100644
--- a/sql/mysql/order.sql
+++ b/sql/mysql/order.sql
@@ -307,4 +307,20 @@ CREATE TABLE `tz_trade_delivery_pick_up_store`
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='自提门店表';
+-- 订单预约时间修改记录表 (tz_trade_sub_log)
+CREATE TABLE `tz_trade_sub_log`
+(
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
+ `user_id` bigint(20) NOT NULL COMMENT '用户编号',
+ `order_id` bigint(20) NOT NULL COMMENT '订单号',
+ `sub_time` datetime NOT NULL COMMENT '预约时间',
+ `create_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_order_id` (`order_id`),
+ KEY `idx_user_id` (`user_id`)
+) ENGINE = InnoDB
+ DEFAULT CHARSET = utf8mb4 COMMENT ='订单预约时间修改记录表';
diff --git a/tashow-dependencies/pom.xml b/tashow-dependencies/pom.xml
index 0c12cba..4e37f04 100644
--- a/tashow-dependencies/pom.xml
+++ b/tashow-dependencies/pom.xml
@@ -193,6 +193,11 @@
tashow-sdk-payment
${revision}
+
+ com.tashow.cloud
+ tashow-product-api
+ ${revision}
+
diff --git a/tashow-feign/tashow-trade-api/src/main/java/com/tashow/cloud/tradeapi/enums/order/TradeOrderOperateTypeEnum.java b/tashow-feign/tashow-trade-api/src/main/java/com/tashow/cloud/tradeapi/enums/order/TradeOrderOperateTypeEnum.java
index 44cbd88..4d8da96 100644
--- a/tashow-feign/tashow-trade-api/src/main/java/com/tashow/cloud/tradeapi/enums/order/TradeOrderOperateTypeEnum.java
+++ b/tashow-feign/tashow-trade-api/src/main/java/com/tashow/cloud/tradeapi/enums/order/TradeOrderOperateTypeEnum.java
@@ -25,6 +25,7 @@ public enum TradeOrderOperateTypeEnum {
SYSTEM_COMMENT(34, "到期未评价,系统自动评价"),
MEMBER_CANCEL(40, "取消订单"),
SYSTEM_CANCEL(41, "到期未支付,系统自动取消订单"),
+ ADMIN_CANCEL(42, "管理员取消订单"),
// 42 预留:管理员取消订单
ADMIN_CANCEL_AFTER_SALE(43, "订单全部售后,管理员自动取消订单"),
MEMBER_DELETE(49, "删除订单"),
diff --git a/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/mapper/BaseMapperX.java b/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/mapper/BaseMapperX.java
index 01bb70d..225116d 100644
--- a/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/mapper/BaseMapperX.java
+++ b/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/mapper/BaseMapperX.java
@@ -29,7 +29,7 @@ import java.util.List;
* 1. {@link BaseMapper} 为 MyBatis Plus 的基础接口,提供基础的 CRUD 能力
* 2. {@link MPJBaseMapper} 为 MyBatis Plus Join 的基础接口,提供连表 Join 能力
*/
-public interface BaseMapperX extends MPJBaseMapper {
+public interface BaseMapperX extends MPJBaseMapper,BaseMapper {
default PageResult selectPage(SortablePageParam pageParam, @Param("ew") Wrapper queryWrapper) {
return selectPage(pageParam, pageParam.getSortingFields(), queryWrapper);
diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/dialog/AiDialogServiceImpl.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/dialog/AiDialogServiceImpl.java
index b97c9d2..e1d8e9a 100644
--- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/dialog/AiDialogServiceImpl.java
+++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/dialog/AiDialogServiceImpl.java
@@ -126,7 +126,7 @@ public class AiDialogServiceImpl extends ServiceImpl
PageResult messageDOS = aiDialogMessageMapper.selectPage(pageParam,
new LambdaQueryWrapper().eq(AiDialogMessageDO::getDialogId, aiDialogDO.getId())
- .orderByDesc(AiDialogMessageDO::getCreateTime)
+ .orderByAsc(AiDialogMessageDO::getCreateTime)
);
DialogResp resp = new DialogResp();
diff --git a/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/auth/AuthController.java b/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/auth/AuthController.java
index 95d2498..7aa25fd 100644
--- a/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/auth/AuthController.java
+++ b/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/controller/admin/auth/AuthController.java
@@ -1,9 +1,5 @@
package com.tashow.cloud.system.controller.admin.auth;
-import static com.tashow.cloud.common.pojo.CommonResult.success;
-import static com.tashow.cloud.common.util.collection.CollectionUtils.convertSet;
-import static com.tashow.cloud.web.web.core.util.WebFrameworkUtils.getLoginUserId;
-
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.tashow.cloud.common.enums.CommonStatusEnum;
@@ -11,14 +7,7 @@ import com.tashow.cloud.common.enums.UserTypeEnum;
import com.tashow.cloud.common.pojo.CommonResult;
import com.tashow.cloud.security.security.config.SecurityProperties;
import com.tashow.cloud.security.security.core.util.SecurityFrameworkUtils;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthLoginReqVO;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthLoginRespVO;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthPermissionInfoRespVO;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthRegisterReqVO;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthResetPasswordReqVO;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthSmsLoginReqVO;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthSmsSendReqVO;
-import com.tashow.cloud.system.controller.admin.auth.vo.AuthSocialLoginReqVO;
+import com.tashow.cloud.system.controller.admin.auth.vo.*;
import com.tashow.cloud.system.convert.auth.AuthConvert;
import com.tashow.cloud.system.dal.dataobject.permission.MenuDO;
import com.tashow.cloud.system.dal.dataobject.permission.RoleDO;
@@ -34,17 +23,17 @@ import jakarta.annotation.Resource;
import jakarta.annotation.security.PermitAll;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
import java.util.Collections;
import java.util.List;
import java.util.Set;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+
+import static com.tashow.cloud.common.pojo.CommonResult.success;
+import static com.tashow.cloud.common.util.collection.CollectionUtils.convertSet;
+import static com.tashow.cloud.web.web.core.util.WebFrameworkUtils.getLoginUserId;
/** 管理后台 - 认证 */
@RestController
diff --git a/tashow-module/tashow-module-trade/pom.xml b/tashow-module/tashow-module-trade/pom.xml
index ac90544..4e34958 100644
--- a/tashow-module/tashow-module-trade/pom.xml
+++ b/tashow-module/tashow-module-trade/pom.xml
@@ -46,6 +46,10 @@
com.tashow.cloud
tashow-trade-api
+
+ com.tashow.cloud
+ tashow-product-api
+
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java
index d1989fb..ef8a55e 100644
--- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java
@@ -4,10 +4,9 @@ import cn.hutool.core.collection.CollUtil;
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.TradeOrderPageReqVO;
-import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageRespVO;
-import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
+import com.tashow.cloud.productapi.api.product.ProdApi;
+import com.tashow.cloud.productapi.api.product.dto.ProdDO;
+import com.tashow.cloud.trade.controller.admin.order.vo.*;
import com.tashow.cloud.trade.convert.order.TradeOrderConvert;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO;
@@ -20,10 +19,7 @@ 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;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -49,9 +45,12 @@ public class TradeOrderController {
@Resource
private MemberUserApi memberUserApi;
+ @Resource
+ private ProdApi prodApi;
/**
* 获得交易订单分页
+ *
* @param reqVO
* @return
*/
@@ -73,6 +72,7 @@ public class TradeOrderController {
/**
* 获得交易订单详情
+ *
* @param id 订单编号
* @return
*/
@@ -92,10 +92,9 @@ public class TradeOrderController {
return success(TradeOrderConvert.INSTANCE.convert(order, orderItems, orderLogs));
}
- //
-
/**
* 获得交易订单统计
+ *
* @return
*/
@GetMapping("/summary")
@@ -104,73 +103,58 @@ public class TradeOrderController {
public CommonResult getOrderSummary() {
return success(tradeOrderQueryService.getOrderSummary());
}
-//
-// // 获得交易订单的物流轨迹
-// // id: 交易订单编号
-// @GetMapping("/get-express-track-list")
+
+ /**
+ * 取消订单
+ *
+ * @return
+ */
+ @PutMapping("/cancel")
+ @PermitAll
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
-// public CommonResult> getOrderExpressTrackList(@RequestParam("id") Long id) {
-// return success(TradeOrderConvert.INSTANCE.convertList02(
-// tradeOrderQueryService.getExpressTrackList(id)));
-// }
-//
-// // 订单发货
-// @PutMapping("/delivery")
+ public CommonResult cancel(@RequestParam("id") Long id) {
+ return success(tradeOrderUpdateService.cancelOrderByAdmin(id));
+ }
+
+ // 订单备注
+ @PutMapping("/update-remark")
+ @PermitAll
// @PreAuthorize("@ss.hasPermission('trade:order:update')")
-// public CommonResult deliveryOrder(@RequestBody TradeOrderDeliveryReqVO deliveryReqVO) {
-// tradeOrderUpdateService.deliveryOrder(deliveryReqVO);
-// return success(true);
-// }
-//
-// // 订单备注
-// @PutMapping("/update-remark")
-// @PreAuthorize("@ss.hasPermission('trade:order:update')")
-// public CommonResult updateOrderRemark(@RequestBody TradeOrderRemarkReqVO reqVO) {
-// tradeOrderUpdateService.updateOrderRemark(reqVO);
-// return success(true);
-// }
-//
-// // 订单调价
-// @PutMapping("/update-price")
-// @PreAuthorize("@ss.hasPermission('trade:order:update')")
-// public CommonResult updateOrderPrice(@RequestBody TradeOrderUpdatePriceReqVO reqVO) {
-// tradeOrderUpdateService.updateOrderPrice(reqVO);
-// return success(true);
-// }
-//
-// // 修改订单收货地址
-// @PutMapping("/update-address")
-// @PreAuthorize("@ss.hasPermission('trade:order:update')")
-// public CommonResult updateOrderAddress(@RequestBody TradeOrderUpdateAddressReqVO reqVO) {
-// tradeOrderUpdateService.updateOrderAddress(reqVO);
-// return success(true);
-// }
-//
-// // 订单核销
-// // id: 交易订单编号
-// @PutMapping("/pick-up-by-id")
-// @PreAuthorize("@ss.hasPermission('trade:order:pick-up')")
-// public CommonResult pickUpOrderById(@RequestParam("id") Long id) {
-// tradeOrderUpdateService.pickUpOrderByAdmin(getLoginUserId(), id);
-// return success(true);
-// }
-//
-// // 订单核销
-// // pickUpVerifyCode: 自提核销码
-// @PutMapping("/pick-up-by-verify-code")
-// @PreAuthorize("@ss.hasPermission('trade:order:pick-up')")
-// public CommonResult pickUpOrderByVerifyCode(@RequestParam("pickUpVerifyCode") String pickUpVerifyCode) {
-// tradeOrderUpdateService.pickUpOrderByAdmin(getLoginUserId(), pickUpVerifyCode);
-// return success(true);
-// }
-//
-// // 查询核销码对应的订单
-// // pickUpVerifyCode: 自提核销码
-// @GetMapping("/get-by-pick-up-verify-code")
+ public CommonResult updateOrderRemark(@RequestBody TradeOrderRemarkReqVO reqVO) {
+ tradeOrderUpdateService.updateOrderRemark(reqVO);
+ return success(true);
+ }
+
+ /**
+ * 交易快照
+ *
+ * @return
+ */
+ @GetMapping("/fastPhoto")
+ @PermitAll
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
-// public CommonResult getByPickUpVerifyCode(@RequestParam("pickUpVerifyCode") String pickUpVerifyCode) {
-// TradeOrderDO tradeOrder = tradeOrderUpdateService.getByPickUpVerifyCode(pickUpVerifyCode);
-// return success(TradeOrderConvert.INSTANCE.convert2(tradeOrder, null));
-// }
+ public CommonResult fastPhoto(TradeOrderFastPhotoReqVo reqVo) {
+ //获取交易订单详情
+ TradeOrderItemDO orderItem = tradeOrderQueryService.getOrderItem(reqVo.getItemId());
+ //获取产品详情
+ ProdDO prodInfo = prodApi.getProdInfo(reqVo.getSpuId());
+ return success(TradeOrderConvert.INSTANCE.convert(orderItem,prodInfo));
+ }
+
+ /**
+ * 服务信息修改记录
+ *
+ * @return
+ */
+ @GetMapping("/subTimeLog")
+ @PermitAll
+// @PreAuthorize("@ss.hasPermission('trade:order:query')")
+ public CommonResult subTimeLog(TradeOrderFastPhotoReqVo reqVo) {
+ //获取交易订单详情
+ TradeOrderItemDO orderItem = tradeOrderQueryService.getOrderItem(reqVo.getItemId());
+ //获取产品详情
+
+ return success(TradeOrderConvert.INSTANCE.convert(orderItem,null));
+ }
}
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoReqVo.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoReqVo.java
new file mode 100644
index 0000000..71a03db
--- /dev/null
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoReqVo.java
@@ -0,0 +1,12 @@
+package com.tashow.cloud.trade.controller.admin.order.vo;
+
+import lombok.Data;
+
+@Data
+public class TradeOrderFastPhotoReqVo {
+
+ //订单项id
+ private Long itemId;
+ //产品id
+ private Long spuId;
+}
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoRespVo.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoRespVo.java
new file mode 100644
index 0000000..3957cba
--- /dev/null
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderFastPhotoRespVo.java
@@ -0,0 +1,20 @@
+package com.tashow.cloud.trade.controller.admin.order.vo;
+
+import lombok.Data;
+
+@Data
+public class TradeOrderFastPhotoRespVo {
+
+ //产品主图
+ private String pic;
+ //产品轮播图
+ private String imgs;
+ //商品名称
+ private String spuName;
+ //商品概述
+ private String brief;
+ //sku
+ private String skuName;
+ //商品详细描述
+ private String content;
+}
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java
index 71c97f6..6edbd1d 100644
--- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java
@@ -3,7 +3,6 @@ package com.tashow.cloud.trade.convert.order;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.common.util.collection.CollectionUtils;
import com.tashow.cloud.common.util.date.LocalDateTimeUtils;
@@ -14,6 +13,7 @@ import com.tashow.cloud.memberapi.api.address.dto.MemberAddressRespDTO;
import com.tashow.cloud.memberapi.api.user.dto.MemberUserRespDTO;
import com.tashow.cloud.payapi.api.order.dto.PayOrderCreateReqDTO;
import com.tashow.cloud.payapi.enums.DictTypeConstants;
+import com.tashow.cloud.productapi.api.product.dto.ProdDO;
import com.tashow.cloud.trade.controller.admin.base.member.user.MemberUserRespVO;
import com.tashow.cloud.trade.controller.admin.order.vo.*;
import com.tashow.cloud.trade.controller.app.order.vo.*;
@@ -36,7 +36,6 @@ import com.tashow.cloud.tradeapi.enums.order.TradeOrderStatusEnum;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
-import org.mapstruct.Named;
import org.mapstruct.factory.Mappers;
import java.time.LocalDateTime;
@@ -107,21 +106,17 @@ public interface TradeOrderConvert {
}
return orderVO;
}
-
- // @Mappings(
-// @Mapping(target ="items.tradeServeInfo", source = "tradeServeInfo",qualifiedByName = "jsonToMap")
-// )
TradeOrderDetailRespVO convert2(TradeOrderDO order, List items, List statusList);
+ //endregion
- @Named("jsonToMap")
- default Map jsonToMap(String json) {
- try {
- return new ObjectMapper().readValue(json, Map.class);
- } catch (Exception e) {
- throw new RuntimeException("json转换map出错", e);
- }
- }
+ //region修改订单
+ TradeOrderDO convert(TradeOrderRemarkReqVO reqVO);
+ //endregion
+
+
+ //region 订单快照
+ TradeOrderFastPhotoRespVo convert(TradeOrderItemDO itemDO, ProdDO prodDO);
//endregion
@Mappings({
@@ -272,7 +267,7 @@ public interface TradeOrderConvert {
TradeOrderDO convert(TradeOrderUpdatePriceReqVO reqVO);
- TradeOrderDO convert(TradeOrderRemarkReqVO reqVO);
+
default BrokerageAddReqBO convert(MemberUserRespDTO user, TradeOrderItemDO item,
ProductSpuRespDTO spu, ProductSkuRespDTO sku) {
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeSubLogDO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeSubLogDO.java
new file mode 100644
index 0000000..432bb64
--- /dev/null
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeSubLogDO.java
@@ -0,0 +1,44 @@
+package com.tashow.cloud.trade.dal.dataobject.order;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * 订单预约时间修改记录 DO
+ *
+ * @author 芋道源码
+ */
+@TableName("tz_trade_sub_log")
+@KeySequence("tz_trade_sub_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TradeSubLogDO extends BaseDO {
+
+ /**
+ * 编号
+ */
+ @TableId
+ private Long id;
+ /**
+ * 用户编号
+ */
+ private Long userId;
+ /**
+ * 订单号
+ */
+ private Long orderId;
+ /**
+ * 预约时间
+ */
+ private LocalDateTime subTime;
+
+}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeSubLogMapper.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeSubLogMapper.java
new file mode 100644
index 0000000..c5f96e4
--- /dev/null
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeSubLogMapper.java
@@ -0,0 +1,15 @@
+package com.tashow.cloud.trade.dal.mysql.order;
+
+import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX;
+import com.tashow.cloud.trade.dal.dataobject.order.TradeSubLogDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 订单预约时间修改记录 Mapper
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface TradeSubLogMapper extends BaseMapperX {
+
+}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/framework/rpc/config/RpcConfiguration.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/framework/rpc/config/RpcConfiguration.java
index a42b4b9..2d7a55d 100644
--- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/framework/rpc/config/RpcConfiguration.java
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/framework/rpc/config/RpcConfiguration.java
@@ -6,6 +6,7 @@ import com.tashow.cloud.payapi.api.order.PayOrderApi;
import com.tashow.cloud.payapi.api.refund.PayRefundApi;
import com.tashow.cloud.payapi.api.transfer.PayTransferApi;
import com.tashow.cloud.payapi.api.wallet.PayWalletApi;
+import com.tashow.cloud.productapi.api.product.ProdApi;
import com.tashow.cloud.systemapi.api.notify.NotifyMessageSendApi;
import com.tashow.cloud.systemapi.api.social.SocialClientApi;
import com.tashow.cloud.systemapi.api.social.SocialUserApi;
@@ -16,6 +17,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {
MemberUserApi.class, MemberAddressApi.class,
+ ProdApi.class,
PayOrderApi.class, PayRefundApi.class, PayTransferApi.class, PayWalletApi.class,
AdminUserApi.class, NotifyMessageSendApi.class, SocialClientApi.class, SocialUserApi.class
})
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryService.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryService.java
index 9cfaec9..ce9de66 100644
--- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryService.java
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryService.java
@@ -2,6 +2,7 @@ package com.tashow.cloud.trade.service.order;
import com.tashow.cloud.common.pojo.PageResult;
+import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderFastPhotoReqVo;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageReqVO;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
@@ -157,4 +158,10 @@ public interface TradeOrderQueryService {
*/
List getOrderItemListByOrderId(Collection orderIds);
+ /**
+ * 获取订单交易快照
+ * @param reqVo
+ * @return
+ */
+ TradeOrderItemDO getFastPhoto(TradeOrderFastPhotoReqVo reqVo);
}
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java
index 302a3a7..c14deef 100644
--- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java
@@ -1,9 +1,11 @@
package com.tashow.cloud.trade.service.order;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.tashow.cloud.common.pojo.PageResult;
+import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderFastPhotoReqVo;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageReqVO;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
@@ -17,6 +19,7 @@ import com.tashow.cloud.trade.framework.delivery.core.client.ExpressClientFactor
import com.tashow.cloud.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO;
import com.tashow.cloud.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
import com.tashow.cloud.trade.service.delivery.DeliveryExpressService;
+import com.tashow.cloud.tradeapi.enums.order.TradeOrderRefundStatusEnum;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderStatusEnum;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderTypeEnum;
import jakarta.annotation.Resource;
@@ -238,4 +241,10 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
return SpringUtil.getBean(getClass());
}
+ @Override
+ public TradeOrderItemDO getFastPhoto(TradeOrderFastPhotoReqVo reqVo) {
+
+
+ return null;
+ }
}
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java
index 98c0118..562f063 100644
--- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateService.java
@@ -89,6 +89,12 @@ public interface TradeOrderUpdateService {
* @param id 订单编号
*/
void cancelOrderByMember(Long userId, Long id);
+ /**
+ * 【管理员】取消交易订单
+ *
+ * @param id 订单编号
+ */
+ boolean cancelOrderByAdmin(Long id);
/**
* 【系统】自动取消订单
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java
index 575467e..a256cb4 100644
--- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java
@@ -511,19 +511,38 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CANCEL)
public void cancelOrderByMember(Long userId, Long id) {
// 1.1 校验存在
- TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(id, userId);
+ TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(id,userId);
if (order == null) {
throw exception(ORDER_NOT_FOUND);
}
// 1.2 校验状态
-// if (ObjectUtil.notEqual(order.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus())) {
-// throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
-// }
+ if (ObjectUtil.notEqual(order.getOrderStatus(), TradeOrderStatusEnum.WAITPAID.getStatus())) {
+ throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
+ }
// 2. 取消订单
cancelOrder0(order, TradeOrderCancelTypeEnum.MEMBER_CANCEL);
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_CANCEL)
+ public boolean cancelOrderByAdmin(Long id) {
+ // 1.1 校验存在
+ TradeOrderDO order = tradeOrderMapper.selectById(id);
+ if (order == null) {
+ throw exception(ORDER_NOT_FOUND);
+ }
+ // 1.2 校验状态
+ if (ObjectUtil.notEqual(order.getOrderStatus(), TradeOrderStatusEnum.WAITPAID.getStatus())) {
+ throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
+ }
+
+ // 2. 取消订单
+ cancelOrder0(order, TradeOrderCancelTypeEnum.MEMBER_CANCEL);
+ return true;
+ }
+
@Override
public int cancelOrderBySystem() {
// 1. 查询过期的待支付订单
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogService.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogService.java
new file mode 100644
index 0000000..e666703
--- /dev/null
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogService.java
@@ -0,0 +1,28 @@
+package com.tashow.cloud.trade.service.order;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.tashow.cloud.trade.dal.dataobject.order.TradeSubLogDO;
+
+/**
+ * 订单预约时间修改记录 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface TradeSubLogService extends IService {
+
+
+ /**
+ * 删除订单预约时间修改记录
+ *
+ * @param id 编号
+ */
+ void deleteTradeSubLog(Long id);
+
+ /**
+ * 获得订单预约时间修改记录
+ *
+ * @param id 编号
+ * @return 订单预约时间修改记录
+ */
+ TradeSubLogDO getTradeSubLog(Long id);
+}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogServiceImpl.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogServiceImpl.java
new file mode 100644
index 0000000..93ba804
--- /dev/null
+++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeSubLogServiceImpl.java
@@ -0,0 +1,41 @@
+package com.tashow.cloud.trade.service.order;
+
+import com.tashow.cloud.trade.dal.dataobject.order.TradeSubLogDO;
+import com.tashow.cloud.trade.dal.mysql.order.TradeSubLogMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+/**
+ * 订单预约时间修改记录 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class TradeSubLogServiceImpl implements TradeSubLogService {
+
+ @Resource
+ private TradeSubLogMapper tradeSubLogMapper;
+
+
+ @Override
+ public void deleteTradeSubLog(Long id) {
+ // 校验存在
+ validateTradeSubLogExists(id);
+ // 删除
+ tradeSubLogMapper.deleteById(id);
+ }
+
+ private void validateTradeSubLogExists(Long id) {
+ if (tradeSubLogMapper.selectById(id) == null) {
+// throw exception(TRADE_SUB_LOG_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public TradeSubLogDO getTradeSubLog(Long id) {
+ return tradeSubLogMapper.selectById(id);
+ }
+
+}
\ No newline at end of file