diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java
index c65fe335e..5813b8454 100755
--- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java
+++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java
@@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.promotion.controller.app.coupon;
 
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon.AppCouponMatchReqVO;
+import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon.AppCouponMatchRespVO;
 import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon.AppCouponPageReqVO;
 import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon.AppCouponRespVO;
 import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.template.AppCouponTemplatePageReqVO;
@@ -30,6 +32,38 @@ public class AppCouponController {
         return success(1L);
     }
 
+    // TODO 芋艿:待实现
+    @GetMapping("/match-list")
+    @Operation(summary = "获得匹配指定商品的优惠劵列表")
+    public CommonResult<List<AppCouponMatchRespVO>> getMatchCouponList(AppCouponMatchReqVO matchReqVO) {
+        List<AppCouponMatchRespVO> list = new ArrayList<>();
+        Random random = new Random();
+        for (int i = 0; i < 10; i++) {
+            AppCouponMatchRespVO vo = new AppCouponMatchRespVO();
+            vo.setId(i + 1L);
+            vo.setName("优惠劵" + (i + 1));
+            vo.setUsePrice(random.nextInt(100) * 100);
+            vo.setValidStartTime(LocalDateTime.now().plusDays(random.nextInt(10)));
+            vo.setValidEndTime(LocalDateTime.now().plusDays(random.nextInt(20) + 10));
+            vo.setDiscountType(random.nextInt(2) + 1);
+            if (vo.getDiscountType() == 1) {
+                vo.setDiscountPercent(null);
+                vo.setDiscountPrice(random.nextInt(50) * 100);
+                vo.setDiscountLimitPrice(null);
+            } else {
+                vo.setDiscountPercent(random.nextInt(90) + 10);
+                vo.setDiscountPrice(null);
+                vo.setDiscountLimitPrice(random.nextInt(200) * 100);
+            }
+            vo.setMatch(random.nextBoolean());
+            if (!vo.getMatch()) {
+                vo.setDescription("不符合条件噢");
+            }
+            list.add(vo);
+        }
+        return success(list);
+    }
+
     // TODO 芋艿:待实现
     @GetMapping("/page")
     @Operation(summary = "优惠劵列表", description = "我的优惠劵")
diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchReqVO.java
new file mode 100755
index 000000000..633644ea3
--- /dev/null
+++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchReqVO.java
@@ -0,0 +1,30 @@
+package cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Schema(description = "用户 App - 优惠劵的匹配 Request VO")
+@Data
+public class AppCouponMatchReqVO {
+
+    @Schema(description = "商品金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotNull(message = "商品金额不能为空")
+    private Integer price;
+
+    @Schema(description = "商品 SPU 编号的数组", required = true, example = "[1, 2]")
+    @NotEmpty(message = "商品 SPU 编号不能为空")
+    private List<Long> spuIds;
+
+    @Schema(description = "商品 SKU 编号的数组", required = true, example = "[1, 2]")
+    @NotEmpty(message = "商品 SKU 编号不能为空")
+    private List<Long> skuIds;
+
+    @Schema(description = "分类编号的数组", required = true, example = "[10, 20]")
+    @NotEmpty(message = "分类编号不能为空")
+    private List<Long> categoryIds;
+
+}
diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchRespVO.java
new file mode 100755
index 000000000..da60390fe
--- /dev/null
+++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchRespVO.java
@@ -0,0 +1,16 @@
+package cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "用户 App - 优惠劵 Response VO")
+@Data
+public class AppCouponMatchRespVO extends AppCouponRespVO {
+
+    @Schema(description = "是否匹配", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
+    private Boolean match;
+
+    @Schema(description = "匹配条件的提示", example = "所结算商品没有符合条件的商品")
+    private String description;
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java
deleted file mode 100644
index d7df6863a..000000000
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package cn.iocoder.yudao.module.trade.controller.app.order.vo;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.util.List;
-
-@Schema(description = "用户 App - 订单获得创建信息 Response VO")
-@Data
-public class AppTradeOrderGetCreateInfoRespVO {
-
-    /**
-     * 商品分组数组
-     */
-    private List<ItemGroup> itemGroups;
-    /**
-     * 费用
-     */
-    private Fee fee;
-
-//    /**
-//     * 优惠劵列表 TODO 芋艿,后续改改
-//     */
-//    private List<CouponCardAvailableRespDTO> coupons;
-
-    @Schema(description = "商品分组") // 多个商品,参加同一个活动,从而形成分组
-    @Data
-    public static class ItemGroup {
-
-//        /**
-//         * 优惠活动
-//         */
-//        private PromotionActivityRespDTO activity; // TODO 芋艿,偷懒
-        /**
-         * 商品 SKU 数组
-         */
-        private List<Sku> items;
-
-    }
-
-    @Schema(description = "商品 SKU")
-    @Data
-    public static class Sku {
-
-        // SKU 自带信息
-        @Schema(description = "SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
-        private Integer id;
-        /**
-         * SPU 信息
-         */
-        private Spu spu;
-        /**
-         * 图片地址
-         */
-        private String picURL;
-//        /**
-//         * 属性数组
-//         */
-//        private List<ProductAttrKeyValueRespVO> attrs; // TODO 后面改下
-        /**
-         * 价格,单位:分
-         */
-        private Integer price;
-        /**
-         * 库存数量
-         */
-        private Integer stock;
-
-        // 非 SKU 自带信息
-
-        /**
-         * 购买数量
-         */
-        private Integer buyQuantity;
-//        /**
-//         * 优惠活动
-//         */
-//        private PromotionActivityRespDTO activity; // TODO 芋艿,偷懒
-        /**
-         * 原始单价,单位:分。
-         */
-        private Integer originPrice;
-        /**
-         * 购买单价,单位:分
-         */
-        private Integer buyPrice;
-        /**
-         * 最终价格,单位:分。
-         */
-        private Integer presentPrice;
-        /**
-         * 购买总金额,单位:分
-         *
-         * 用途类似 {@link #presentTotal}
-         */
-        private Integer buyTotal;
-        /**
-         * 优惠总金额,单位:分。
-         */
-        private Integer discountTotal;
-        /**
-         * 最终总金额,单位:分。
-         *
-         * 注意,presentPrice * quantity 不一定等于 presentTotal 。
-         * 因为,存在无法整除的情况。
-         * 举个例子,presentPrice = 8.33 ,quantity = 3 的情况,presentTotal 有可能是 24.99 ,也可能是 25 。
-         * 所以,需要存储一个该字段。
-         */
-        private Integer presentTotal;
-
-    }
-
-    @Data
-    public static class Spu {
-
-        /**
-         * SPU 编号
-         */
-        private Integer id;
-
-        // ========== 基本信息 =========
-        /**
-         * SPU 名字
-         */
-        private String name;
-        /**
-         * 分类编号
-         */
-        private Integer cid;
-        /**
-         * 商品主图地址
-         *
-         * 数组,以逗号分隔
-         *
-         * 建议尺寸:800*800像素,你可以拖拽图片调整顺序,最多上传15张
-         */
-        private List<String> picUrls;
-
-    }
-
-    @Schema(description = "费用(合计)")
-    @Data
-    @AllArgsConstructor
-    public static class Fee {
-
-        @Schema(description = "购买总价", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
-        private Integer buyPrice;
-        /**
-         * 优惠总价
-         *
-         * 注意,满多少元包邮,不算在优惠中。
-         */
-        private Integer discountTotal;
-        /**
-         * 邮费
-         */
-        private Integer postageTotal;
-        /**
-         * 最终价格
-         *
-         * 计算公式 = 总价 - 优惠总价 + 邮费
-         */
-        private Integer presentTotal;
-
-    }
-
-}