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