From d617e84caebaf2e7aa09c55cb2bd89c5a23ef8ac Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期六, 28 六月 2025 15:58:33 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml                                  |    3 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java      |   27 ++++--
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/DelShopLotteryDrawDto.java              |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java                    |   15 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java           |   58 ++++++++++++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java                 |   20 +++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/CancelOrderDTO.java                     |   11 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java  |    3 
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml                         |    1 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventEditDTO.java             |    6 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java        |   31 ++++---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java |    4 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventPageDto.java             |    1 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java                    |    3 
 14 files changed, 156 insertions(+), 29 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java
index 8bdf72c..4fc2052 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java
@@ -57,20 +57,23 @@
         page.setOptimizeCountSql(false);
         List<MerGoodsPageVo> merGoodsPageVoList = goodsService.pageMerShopGoods(page, merGoodsPageDto);
         Shop shop = remoteShopService.getShop(merGoodsPageDto.getShopId()).getData();
-        Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
-        merGoodsPageVoList.forEach(merGoodsPageVo -> {
-            ShopGoods shopGoods = shopGoodsService.getByShopIdAndGoodsId(belongShop.getShopId(), merGoodsPageVo.getGoodsId());
-            //后台开启经销商统一售价,且经销商设置了统一售价,加盟商不能修改价格
-            if (1 == belongShop.getModifyPricePermission() && null != shopGoods) {
-                merGoodsPageVo.setModifyPricePermission(0);
-                merGoodsPageVo.setIsUnifiedPrice(1);
-                merGoodsPageVo.setUnifiedPrice(shopGoods.getSalesPrice());
-                merGoodsPageVo.setUnifiedServerNum(shopGoods.getServiceNum());
-            } else {
-                merGoodsPageVo.setModifyPricePermission(1);
-                merGoodsPageVo.setIsUnifiedPrice(0);
-            }
-        });
+        if (null != shop.getBelongShopId()){
+            Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
+            merGoodsPageVoList.forEach(merGoodsPageVo -> {
+                ShopGoods shopGoods = shopGoodsService.getByShopIdAndGoodsId(belongShop.getShopId(), merGoodsPageVo.getGoodsId());
+                //后台开启经销商统一售价,且经销商设置了统一售价,加盟商不能修改价格
+                if (1 == belongShop.getModifyPricePermission() && null != shopGoods) {
+                    merGoodsPageVo.setModifyPricePermission(0);
+                    merGoodsPageVo.setIsUnifiedPrice(1);
+                    merGoodsPageVo.setUnifiedPrice(shopGoods.getSalesPrice());
+                    merGoodsPageVo.setUnifiedServerNum(shopGoods.getServiceNum());
+                } else {
+                    merGoodsPageVo.setModifyPricePermission(1);
+                    merGoodsPageVo.setIsUnifiedPrice(0);
+                }
+            });
+        }
+
         return R.ok(page.setRecords(merGoodsPageVoList));
     }
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
index 68ab24a..6444bad 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
@@ -80,10 +80,10 @@
 			return R.fail("抽奖活动不存在");
 		}
 		if (LocalDateTime.now().isAfter(lotteryEvent.getStartTime())) {
-			return R.fail("删除失败");
+			return R.fail("活动已开始,不能删除!");
 		}
 		if (!lotteryEvent.getShopId().equals(dto.getShopId())) {
-			return R.fail("删除失败");
+			return R.fail("删除失败,该活动不属于该店铺");
 		}
 		lotteryEvent.setDelFlag(1);
 		lotteryEventService.updateById(lotteryEvent);
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/DelShopLotteryDrawDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/DelShopLotteryDrawDto.java
index a2be9f9..12c457b 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/DelShopLotteryDrawDto.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/DelShopLotteryDrawDto.java
@@ -10,7 +10,7 @@
 @Data
 public class DelShopLotteryDrawDto {
 	@ApiModelProperty("门店id")
-	private Long shopId;
+	private Integer shopId;
 	@ApiModelProperty("抽奖活动id")
 	private String id;
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java
index ed9fd6b..4770a5c 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java
@@ -17,6 +17,9 @@
     @ApiModelProperty(value = "商品名称")
     private String goodsName;
 
+    @ApiModelProperty(value = "商品编码")
+    private String goodsNo;
+
     @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
     private Integer goodsType;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventEditDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventEditDTO.java
index 221e2db..8ff7074 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventEditDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventEditDTO.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonRawValue;
 import com.ruoyi.system.api.domain.dto.MgtBaseDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -26,9 +27,9 @@
     @NotEmpty(message = "活动简介不能为空")
     private String activityProfile;
 
-    @ApiModelProperty("开启方式(1=新注册用户,2=下单,3=分享小程序,4=普通抽奖,5=答题抽奖)")
+    @ApiModelProperty("开启方式(1=新注册用户,2=下单,3=分享小程序,4=普通抽奖,5=答题抽奖,6=线下抽奖)")
     @Min(value = 1,message = "开启方式选值错误")
-    @Max(value = 5,message = "开启方式选值错误")
+    @Max(value = 6,message = "开启方式选值错误")
     @NotNull(message = "开启方式不能为空")
     private Integer activityType;
 
@@ -73,6 +74,7 @@
 
     @ApiModelProperty("详情介绍")
     @NotEmpty(message = "详情介绍不能为空")
+    @JsonRawValue
     private String activityContent;
 
     @ApiModelProperty("抽奖奖品设置")
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventPageDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventPageDto.java
index b9e0058..194a232 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventPageDto.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventPageDto.java
@@ -27,6 +27,7 @@
     @ApiModelProperty(value = "平台创建标志 0-未包含平台创建 1-包含",hidden = true)
     private Integer flag=1;
 
+    @ApiModelProperty(value = "分页偏移量",hidden = true)
     private Integer offset;
 
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
index bc77fe4..808ef27 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
@@ -265,6 +265,8 @@
 				.eq(TLotteryEvent::getActivityType, dto.getActivityType())//类型相同的
 				.between(TLotteryEvent::getStartTime, dto.getStartTime(), dto.getEndTime())//开始时间在这个活动的(开始-结束)范围内的
 				.or()
+				.eq(TLotteryEvent::getDelFlag, 0)//未删除的
+				.eq(TLotteryEvent::getActivityType, dto.getActivityType())//类型相同的
 				.between(TLotteryEvent::getEndTime, dto.getStartTime(), dto.getEndTime())//结束时间在这个活动的(开始-结束)范围内的
 		);
 		if (null != lotteryEvents && !lotteryEvents.isEmpty()) {
@@ -482,6 +484,7 @@
 		//1.奖品数据删除
 /*		lotteryEventPrizeService.remove(new LambdaQueryWrapper<TLotteryEventPrize>()
 				.eq(TLotteryEventPrize::getLotteryEventId,lotteryEvent.getId()));*/
+		
 		lotteryEventPrizeService.deleteByLotteryEventId(lotteryEvent.getId());
 		//2.答题类型
 		if (lotteryEvent.getActivityType().equals(5)) {
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
index 85671ec..7b39e7e 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -401,6 +401,9 @@
         <if test="param.goodsType != null and param.goodsType != ''">
             AND tg.goods_type = #{param.goodsType}
         </if>
+        <if test="param.goodsNo != null and param.goodsNo != ''">
+            AND tg.goods_no LIKE CONCAT('%',#{param.goodsNo},'%')
+        </if>
         <if test="param.goodsClassId != null and param.goodsClassId != ''">
             AND tg.goods_class_id = #{param.goodsClassId}
         </if>
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
index 38f11cb..5a29d3f 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
@@ -97,6 +97,7 @@
 				</otherwise>
 			</choose>
 		</if>
+		order by create_time desc
 		limit #{dto.offset},#{dto.pageSize}
 	</select>
 	<select id="pageMgtLotteryEventCount" resultType="java.lang.Long">
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java
index b39c986..101e7ec 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java
@@ -5,7 +5,9 @@
 import com.ruoyi.system.api.domain.dto.MgtBaseDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.hibernate.validator.constraints.Range;
 
+import javax.validation.constraints.AssertTrue;
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -51,6 +53,7 @@
     private Integer useScope;
 
     @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起")
+    @Range(min = 1, max = 2, message = "有效期类型只能是1或2")
     private Integer validTimeType;
 
     @ApiModelProperty(value = "有效开始时间")
@@ -103,5 +106,22 @@
 
     @ApiModelProperty("分享图片")
     private String sharePic;
+    // 自定义校验逻辑
+    @AssertTrue(message = "当有效期类型为时间段时,有效开始时间和有效截止时间不能为空")
+    public boolean isValidTimeRange() {
+        if (validTimeType == null) return true; // 由@NotNull校验
+        if (validTimeType == 1) {
+            return validStartTime != null && validEndTime != null;
+        }
+        return true;
+    }
 
+    @AssertTrue(message = "当有效期类型为领取之日起时,有效期不能为空且必须大于0")
+    public boolean isValidDay() {
+        if (validTimeType == null) return true;
+        if (validTimeType == 2) {
+            return validDay != null && validDay > 0;
+        }
+        return true;
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
index 172951c..aa4c921 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -3,11 +3,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto;
-import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto;
-import com.ruoyi.order.domain.dto.MgtShopAllOrderPageDto;
-import com.ruoyi.order.domain.dto.MgtShopOrderPageDto;
+import com.ruoyi.order.domain.dto.*;
 import com.ruoyi.order.domain.vo.*;
 import com.ruoyi.order.service.order.OrderService;
 import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
@@ -193,10 +192,20 @@
         util.exportExcel(response, shopAllOrderPageVoList, "商户订单记录");
     }
 
-    //todo 取消
-    
-    //todo 退款
-
+    //取消
+    @RequestMapping(value = "/cancelOrderBySys", method = RequestMethod.POST)
+    @Log(title = "订单管理", businessType = BusinessType.UPDATE,operContent = "取消订单")
+    @ApiOperation(value = "取消订单【2.0】")
+    public R cancelOrderBySys(@RequestBody CancelOrderDTO dto) {
+        return orderService.cancelOrderBySys(dto);
+    }
+    //退款
+    @RequestMapping(value = "/refundOrderBySys", method = RequestMethod.POST)
+    @Log(title = "订单管理", businessType = BusinessType.UPDATE,operContent = "退款")
+    @ApiOperation(value = "退款【2.0】")
+    public R refundOrderBySys(@RequestBody CancelOrderDTO dto) {
+        return orderService.refundOrderBySys(dto);
+    }
     //todo 分页获取三方订单
-    //todo 导出
+    //todo 导出三方订单
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/CancelOrderDTO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/CancelOrderDTO.java
new file mode 100644
index 0000000..3a2b2f4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/CancelOrderDTO.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CancelOrderDTO extends MgtBaseDto {
+    @ApiModelProperty("订单id")
+    private String orderId;
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 6d9e8e8..fcd22cb 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1584,7 +1584,7 @@
             List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(order.getPayMoney()) >= 0).collect(Collectors.toList());
             appPlaceOrderVo.setLotteryDraw(collect.size() > 0);
             if (collect.size() > 0) {
-                appPlaceOrderVo.setLotteryEventId(collect.get(0).getEventId());
+                appPlaceOrderVo.setLotteryEventId(collect.get(0).getId());
             }
         } else {
             appPlaceOrderVo.setLotteryDraw(false);
@@ -6709,4 +6709,60 @@
         }
         return new ArrayList<>();
     }
+    /**
+     * 后台取消订单
+     * 订单状态变为已取消 不退款
+     * @param dto
+     */
+    @Override
+    public R cancelOrderBySys(CancelOrderDTO dto) {
+        Order order = this.getById(dto.getOrderId());
+        // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成
+        if(null == order || order.getDelFlag() == -1){
+            return R.fail("订单不存在");
+        }
+
+        if (order.getOrderStatus() == 0) {
+            return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER);
+        } else if (order.getOrderStatus() == 1) {
+            //删除待支付超时取消延时任务
+            redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
+            remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+order.getOrderId());
+            order.setOrderStatus(0);
+            order.setCancelTime(new Date());
+            this.saveOrUpdate(order);
+        } else if (order.getOrderStatus() == 2) {
+            // 2.待核销
+            order.setOrderStatus(0);
+            order.setCancelTime(new Date());
+            this.saveOrUpdate(order);
+        } else {
+            return R.fail(AppErrorConstant.CANCEL_ERROR_ORDER);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R refundOrderBySys(CancelOrderDTO dto) {
+        Order order = this.getById(dto.getOrderId());
+        // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成
+        if(null == order || order.getDelFlag() == -1){
+            return R.fail("订单不存在");
+        }
+        if (order.getOrderStatus() == 0) {
+            return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER);
+        }else if (order.getOrderStatus() == 1) {
+            //删除待支付超时取消延时任务
+            redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
+            remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+ order.getOrderId());
+            this.autoCancelOrder( order.getOrderId());
+        } else if (order.getOrderStatus() == 2) {
+            // 2.待核销 -> 订单退款
+            this.refundOrder( order.getOrderId());
+        } else {
+            return R.fail("已核销订单不能退款");
+        }
+        return R.ok();
+
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
index dac1e6e..b60da44 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -7,6 +7,7 @@
 import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult;
 import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult;
 import com.github.binarywang.wxpay.exception.WxPayException;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.order.domain.dto.*;
 import com.ruoyi.order.domain.pojo.order.Order;
 import com.ruoyi.order.domain.vo.*;
@@ -615,4 +616,18 @@
      * @return
      */
     List<String> getActivityOrderGoods(String activityId);
+
+    /**
+     * 后台取消订单
+     * 订单状态变为已取消 不退款
+     * @param dto
+     */
+    R cancelOrderBySys(CancelOrderDTO dto);
+
+    /**
+     * 后台退款订单
+     * @param dto
+     * @return
+     */
+    R refundOrderBySys(CancelOrderDTO dto);
 }

--
Gitblit v1.7.1