From d6e5d5a71112fb1f0a7361485e80692cc03bc4c3 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 13 六月 2023 19:01:48 +0800
Subject: [PATCH] 优惠券管理

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java                  |    9 
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml                                    |   29 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java                    |    5 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java                      |   20 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java          |    8 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java      |   16 
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java        |  107 ++
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml                          |   13 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java        |   21 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java                   |   27 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java                      |   74 ++
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml                                 |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java        |    7 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java            |   32 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java                         |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java                      |   21 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java  |   37 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java                 |    4 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java            |   11 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml                      |    5 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java           |   22 
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml                           |   12 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java           |   19 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java |   18 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java         |  362 +++++++++++
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java                 |   10 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java                        |   27 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java         |   19 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java                 |   28 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java                   |    5 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java |   20 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java               |   18 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java                |   25 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java             |    2 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java                      |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java              |   15 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java      |   14 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java                   |   17 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java           |    3 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml                                |   25 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java                 |    4 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java           |    2 
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml                        |    7 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java                 |   17 
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java         |   48 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java                    |   36 +
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml                                 |   17 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java           |    2 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java                |   32 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java               |    6 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java             |   12 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                                       |    4 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java                  |    8 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java             |   13 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java                     |   14 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java             |   28 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java                          |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java                    |   61 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java                   |   27 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java        |   38 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java                            |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java          |   10 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java                  |   45 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java                |    7 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java                   |   74 ++
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml                                 |   49 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java               |    2 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java                    |    9 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java                     |   72 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java     |   76 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java               |   34 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java                    |   19 
 72 files changed, 1,770 insertions(+), 121 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
index 5b1a6ca..5a87f79 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -139,4 +139,8 @@
     String TAG_DOUBLE = "标签名不能重复";
 
     String ARTICLE_DOUBLE = "文章标题不能重复";
+
+    String COUPON_SENT_EDIT = "已发放优惠券不能编辑";
+
+    String COUPON_SENT_DEL = "已发放优惠券不能删除";
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java
index 39a5fef..4a3035f 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java
@@ -1,16 +1,16 @@
 package com.ruoyi.system.api.domain.poji.config;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -39,7 +39,7 @@
     @TableField("del_flag")
     private Integer delFlag;
     /**
-     * 分类类型
+     * 分类类型1鸿瑞堂2商品
      */
     @TableField("class_type")
     private Integer classType;
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java
index 44cf8e7..cb62391 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java
@@ -1,16 +1,16 @@
 package com.ruoyi.system.api.domain.poji.goods;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * <p>
@@ -57,6 +57,11 @@
     @TableField("update_user_id")
     private Long updateUserId;
     /**
+     * 商品编码
+     */
+    @TableField("goods_no")
+    private String goodsNo;
+    /**
      * 商品分类id
      */
     @TableField("goods_class_id")
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java
new file mode 100644
index 0000000..6dfd5f7
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java
@@ -0,0 +1,32 @@
+package com.ruoyi.system.api.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName MgtCouponGoodsListVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 14:33
+ * @Version 1.0
+ */
+@Data
+public class MgtSelectGoodsPageVo {
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "商品编码")
+    private String goodsNo;
+
+    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
+    private String goodsType;
+
+    @ApiModelProperty(value = "商品售价")
+    private BigDecimal salesPrice;
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java
index b3fea8b..889ad06 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java
@@ -11,6 +11,8 @@
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @author jqs34
  * @ClassName RemoteGoodsFallbackFactory
@@ -55,6 +57,11 @@
             public R deleteGoodsTag(String goodsTag) {
                 return R.fail("删除商品标签失败:" + throwable.getMessage());
             }
+
+            @Override
+            public R<List<Goods>> listGoodsByGoodsId(String goodsIds) {
+                return R.fail("获取商品列表失败:" + throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java
index 25e7854..9c3ad61 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java
@@ -4,10 +4,11 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
 import com.ruoyi.system.api.factory.RemoteActivityFallbackFactory;
-import com.ruoyi.system.api.factory.RemoteUserFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
 
 /**
  * @author jqs34
@@ -21,4 +22,14 @@
 
     @PostMapping("/activity/getActivityGoods")
     public R<ActivityGoods> getActivityGoods(@RequestBody String goodsId);
+
+    /**
+     * @description  通过活动id获取参与活动用户id
+     * @author  jqs
+     * @date    2023/6/13 18:19
+     * @param activityId
+     * @return  R<List<Long>>
+     */
+    @PostMapping("/activity/listUserIdByActivityId")
+    public R<List<Long>> listUserIdByActivityId(@RequestBody String activityId);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
index cb8974b..f325b19 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
@@ -2,11 +2,9 @@
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
 import com.ruoyi.system.api.domain.poji.config.Activeness;
 import com.ruoyi.system.api.domain.poji.config.SysClassification;
 import com.ruoyi.system.api.domain.poji.config.SysTag;
-import com.ruoyi.system.api.factory.RemoteActivityFallbackFactory;
 import com.ruoyi.system.api.factory.RemoteConfigFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -39,13 +37,13 @@
      * 通过id获取分类
      * @return
      */
-    @PostMapping("/getSysClassification")
+    @PostMapping("/config/getSysClassification")
     public R<SysClassification> getSysClassification(@RequestBody Long classId);
 
     /**
      * 通过ids获取分类
      * @return
      */
-    @PostMapping("/getSysClassificationList")
+    @PostMapping("/config/getSysClassificationList")
     public R<Map<Long,SysClassification>> getSysClassificationList(@RequestBody List<Long> classIds);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java
index 825cf7a..08f20b1 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java
@@ -11,6 +11,8 @@
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 /**
  * @author jqs34
  * @ClassName RemoteGoodsService
@@ -42,6 +44,9 @@
      * @param goodsTag
      * @return  R
      */
-    @PostMapping("/deleteGoodsTag")
+    @PostMapping("/goods/deleteGoodsTag")
     public R deleteGoodsTag(@RequestBody String goodsTag);
+
+    @PostMapping("/goods/listGoodsByGoodsId")
+    public R<List<Goods>> listGoodsByGoodsId(@RequestBody String goodsIds);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
index a7e8179..982e716 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
@@ -48,7 +48,7 @@
      * @param suggestTag
      * @return  R
      */
-    @PostMapping("/deleteShopSuggestTag")
+    @PostMapping("/shop/deleteShopSuggestTag")
     public R deleteShopSuggestTag(@RequestBody String suggestTag);
 
     /**
@@ -58,6 +58,6 @@
      * @param mgtShopIdByCodeDto
      * @return  R<MgtShopIdByCodeVo>
      */
-    @PostMapping("/getShopIdByCode")
+    @PostMapping("/shop/getShopIdByCode")
     public R<MgtShopIdByCodeVo> getShopIdByCode(@RequestBody MgtShopIdByCodeDto mgtShopIdByCodeDto);
 }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
index edd9d34..65c71f5 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
@@ -75,7 +75,7 @@
 
     public static final String dateTime(final Date date)
     {
-        return parseDateToStr(YYYY_MM_DD, date);
+        return parseDateToStr(YYYY_MM_DD_HH_MM_SS, date);
     }
 
     public static final String parseDateToStr(final String format, final Date date)
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java
index f26f5f2..142f067 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java
@@ -42,6 +42,13 @@
     private static final String SHOP_PREFIX = "HRT_S";
 
     /**
+     * 商品编号
+     */
+    private static final String GOODS_PREFIX = "HRT_G";
+
+
+
+    /**
      * 商户订单前缀
      */
     private static final String ORDER_PREFIX = "SC";
@@ -55,6 +62,41 @@
      * 店铺创建订单前缀
      */
     private static final String SHOP_ORDER_PREFIX = "CJ";
+
+    /**
+     * 积分商城订单前缀
+     */
+    private static final String INTEGRAL_ORDER_PREFIX = "JF";
+
+    /**
+     * 直播订单前缀
+     */
+    private static final String LIVE_ORDER_PREFIX = "ZB";
+
+    /**
+     * 拼团订单前缀
+     */
+    private static final String GROUP_ORDER_PREFIX = "PT";
+
+    /**
+     * 砍价订单前缀
+     */
+    private static final String CUT_ORDER_PREFIX = "KJ";
+
+    /**
+     * 采购订单前缀
+     */
+    private static final String PURCHASE_ORDER_PREFIX = "CG";
+
+    /**
+     * 入库订单前缀
+     */
+    private static final String IN_ORDER_PREFIX = "RK";
+
+    /**
+     * 出库订单前缀
+     */
+    private static final String OUT_ORDER_PREFIX = "CK";
 
 
     /**
@@ -70,7 +112,7 @@
      * 用户id和随机数总长度
      */
 
-    private static final int SHOP_LENGTH = 4;
+    private static final int SHOP_LENGTH = 5;
 
     private static final int MEMBER_LENGTH = 6;
 
@@ -80,19 +122,20 @@
      * 更具id进行加密+加随机数组成固定长度编码
      */
 
-    /*public static void main(String[] args) {
+    public static void main(String[] args) {
 
-    }*/
+    }
 
     /**
      * 获取商户编号
-     *
-     * @param shopId
      * @return
      */
-    public static String getShopNo(Long shopId) {
+    public static String getShopNo() {
+        String shopNo;
         String prefix = SHOP_PREFIX;
-        return toFillZeroCode(prefix, SHOP_LENGTH, shopId);
+        String suffixNumber = getNoSuffixNumber(prefix);
+        shopNo = prefix + suffixNumber;
+        return shopNo;
     }
 
     /**
@@ -105,21 +148,61 @@
         return toFillZeroCode(prefix, MEMBER_LENGTH, userId);
     }
 
+    /**
+     * @description  获取商品编号
+     * @author  jqs
+     * @date    2023/6/13 14:48
+     * @param
+     * @return  String
+     */
+    public static String getGoodsNo() {
+        String goodsNo;
+        String prefix = GOODS_PREFIX;
+        String suffixNumber = getNoSuffixNumber(prefix);
+        goodsNo = prefix + suffixNumber;
+        return goodsNo;
+    }
+
+
+    private static String getNoSuffixNumber(String prefix){
+        Integer suffixNumberInt;
+        String suffixNumber = "00001";
+        if(redisService.hasKey(prefix)){
+            suffixNumberInt = redisService.getCacheObject(prefix);
+            suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,SHOP_LENGTH);
+            suffixNumberInt = suffixNumberInt + 1;
+            redisService.setCacheObject(prefix, suffixNumberInt);
+        }else{
+            redisService.setCacheObject(prefix, 1);
+        }
+        return suffixNumber;
+    }
+
+
+    /**
+     * @description  获取商城订单编号
+     * @author  jqs
+     * @date    2023/6/13 14:48
+     * @param
+     * @return  String
+     */
     public static String getShopOrderNo() {
         String orderNo;
         String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd");
         String prefix = ORDER_PREFIX + timeTemp;
-        String suffixNumber = getSuffixNumber(prefix);
+        String suffixNumber = getOrderSuffixNumber(prefix);
         orderNo = prefix + suffixNumber;
         return orderNo;
     }
 
-    private static String getSuffixNumber(String prefix){
+
+
+    private static String getOrderSuffixNumber(String prefix){
         Integer suffixNumberInt;
         String suffixNumber = "0001";
         if(redisService.hasKey(prefix)){
             suffixNumberInt = redisService.getCacheObject(prefix);
-            suffixNumber = toFillZeroSuffixNumber(suffixNumberInt);
+            suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,ORDER_LENGTH);
             suffixNumberInt = suffixNumberInt + 1;
             redisService.setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS);
         }else{
@@ -128,10 +211,10 @@
         return suffixNumber;
     }
 
-    private static String toFillZeroSuffixNumber(Integer suffixNumberInt){
+    private static String toFillZeroSuffixNumber(Integer suffixNumberInt,Integer maxLength){
         String suffixNumberStr = suffixNumberInt.toString();
         int length = suffixNumberStr.length();
-        int fillLength = 4 - length;
+        int fillLength = maxLength - length;
         StringBuilder idsbs = new StringBuilder();
         for (int i = 0; i < fillLength; i++) {
             idsbs.append("0");
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java
new file mode 100644
index 0000000..3f6b426
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java
@@ -0,0 +1,48 @@
+package com.ruoyi.common.security.utils;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.util.Enumeration;
+
+
+@Component
+public class SchedulerUtils {
+
+    @Autowired
+    private StringRedisTemplate redisTemplate;
+
+    public boolean getSchedulerRun() {
+        String localIpAddress = getLocalIpAddress();
+        return true;
+    }
+
+    public static String getLocalIpAddress() {
+        String localIpAddress = "";
+        try {
+            Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
+            InetAddress ip = null;
+            while (allNetInterfaces.hasMoreElements()) {
+                NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
+                if (netInterface.isLoopback() || netInterface.isVirtual() || !netInterface.isUp()) {
+                    continue;
+                } else {
+                    Enumeration<InetAddress> addresses = netInterface.getInetAddresses();
+                    while (addresses.hasMoreElements()) {
+                        ip = addresses.nextElement();
+                        if (ip != null && ip instanceof Inet4Address) {
+                            return ip.getHostAddress();
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return localIpAddress;
+    }
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java
index d72338b..8982a10 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java
@@ -2,6 +2,7 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.goods.service.activity.ActivityGoodsService;
+import com.ruoyi.goods.service.activity.ActivityRecordService;
 import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -9,6 +10,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author jqs34
@@ -26,10 +28,27 @@
     @Resource
     private ActivityGoodsService activityGoodsService;
 
+    @Resource
+    private ActivityRecordService activityRecordService;
+
     @PostMapping("/getActivityGoods")
     public R<ActivityGoods> getActivityGoods(@RequestBody String goodsId)
     {
         ActivityGoods activityGoods = activityGoodsService.getByGoodsId(goodsId);
         return R.ok(activityGoods);
     }
+
+    /**
+     * @description  通过活动id获取参与活动用户id
+     * @author  jqs
+     * @date    2023/6/13 18:19
+     * @param activityId
+     * @return  R<List<Long>>
+     */
+    @PostMapping("/listUserIdByActivityId")
+    public R<List<Long>> listUserIdByActivityId(@RequestBody String activityId)
+    {
+        List<Long> userIdList = activityRecordService.listUserIdByActivityId(activityId);
+        return R.ok(userIdList);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java
index ae92d52..340b88f 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java
@@ -14,6 +14,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author jqs34
@@ -83,4 +84,18 @@
         goodsService.deleteGoodsTag(goodsTag);
         return R.ok();
     }
+
+    /**
+     * @description  通过id获取商品列表
+     * @author  jqs
+     * @date    2023/6/13 15:55
+     * @param goodsIds
+     * @return  R<List<Goods>>
+     */
+    @PostMapping("/listGoodsByGoodsId")
+    public R<List<Goods>> listGoodsByGoodsId(@RequestBody String goodsIds)
+    {
+        List<Goods> goodsList = goodsService.listGoodsByGoodsId(goodsIds);
+        return R.ok(goodsList);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
index 3a91cd3..0981598 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -3,15 +3,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.goods.domain.dto.MgtGoodsEditDto;
-import com.ruoyi.goods.domain.dto.MgtGoodsPageDto;
-import com.ruoyi.goods.domain.dto.MgtGoodsRecommendDto;
-import com.ruoyi.goods.domain.dto.MgtGoodsUpDownDto;
+import com.ruoyi.goods.domain.dto.*;
 import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
 import com.ruoyi.goods.domain.vo.MgtGoodsTotalVo;
 import com.ruoyi.goods.service.goods.GoodsService;
 import com.ruoyi.system.api.domain.dto.MgtBaseDto;
 import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
+import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -44,8 +42,8 @@
         page.setSize(mgtGoodsPageDto.getPageSize());
         page.setCurrent(mgtGoodsPageDto.getPageNum());
         page.setOptimizeCountSql(false);
-        List<MgtGoodsPageVo> merGoodsPageVoList = goodsService.pageMgtGoods(page,mgtGoodsPageDto);
-        return R.ok(page.setRecords(merGoodsPageVoList));
+        List<MgtGoodsPageVo> mgtGoodsPageVoList = goodsService.pageMgtGoods(page,mgtGoodsPageDto);
+        return R.ok(page.setRecords(mgtGoodsPageVoList));
     }
 
     @RequestMapping(value = "/getMgtGoodsTotal", method = RequestMethod.POST)
@@ -93,5 +91,14 @@
         return R.ok();
     }
 
-
+    @RequestMapping(value = "/pageMgtSelectGoods", method = RequestMethod.POST)
+    @ApiOperation(value = "分页获取商品选择列表")
+    public R<Page<MgtSelectGoodsPageVo>> pageMgtSelectGoods(@RequestBody MgtSelectGoodsPageDto mgtSelectGoodsPageDto) {
+        Page<MgtSelectGoodsPageVo> page = new Page<>();
+        page.setSize(mgtSelectGoodsPageDto.getPageSize());
+        page.setCurrent(mgtSelectGoodsPageDto.getPageNum());
+        page.setOptimizeCountSql(false);
+        List<MgtSelectGoodsPageVo> mgtSelectGoodsPageVos = goodsService.pageMgtSelectGoods(page,mgtSelectGoodsPageDto);
+        return R.ok(page.setRecords(mgtSelectGoodsPageVos));
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java
new file mode 100644
index 0000000..e8b7616
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java
@@ -0,0 +1,25 @@
+package com.ruoyi.goods.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtPageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtSelectGoodsPageDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 16:29
+ * @Version 1.0
+ */
+@Data
+public class MgtSelectGoodsPageDto extends MgtPageDto {
+
+    @ApiModelProperty(value = "商品编号")
+    private String goodsNo;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
+    private Integer goodsType;
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java
index f2527b0..0fde363 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java
@@ -2,6 +2,9 @@
 
 import com.ruoyi.goods.domain.pojo.activity.ActivityRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,12 @@
  */
 public interface ActivityRecordMapper extends BaseMapper<ActivityRecord> {
 
+    /**
+     * @description  通过活动id获取参与活动用户id
+     * @author  jqs
+     * @date    2023/6/13 18:24
+     * @param activityId
+     * @return  List<Long>
+     */
+    List<Long> listUserIdByActivityId(@Param("activityId") String activityId);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java
index 064e259..42a9cd6 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java
@@ -1,13 +1,11 @@
 package com.ruoyi.goods.mapper.goods;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.goods.domain.dto.MerGoodsPageDto;
-import com.ruoyi.goods.domain.dto.MgtGoodsPageDto;
+import com.ruoyi.goods.domain.dto.*;
 import com.ruoyi.goods.domain.vo.*;
-import com.ruoyi.goods.domain.dto.AppSearchGoodsPageDto;
-import com.ruoyi.goods.domain.dto.AppShopGoodsPageDto;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -91,5 +89,24 @@
      * @param goodsTag
      * @return  void
      */
-    void deleteGoodsTag(String goodsTag);
+    void deleteGoodsTag(@Param("goodsTag")String goodsTag);
+
+    /**
+     * @description  通过id获取商品列表
+     * @author  jqs
+     * @date    2023/6/13 15:55
+     * @param goodsIds
+     * @return  List<Goods>
+     */
+    List<Goods> listGoodsByGoodsId(@Param("goodsIds")String goodsIds);
+
+    /**
+     * @description  分页获取商品选择列表
+     * @author  jqs
+     * @date    2023/6/13 16:33
+     * @param page
+     * @param mgtSelectGoodsPageDto
+     * @return  List<MgtSelectGoodsPageVo>
+     */
+    List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page, @Param("param")MgtSelectGoodsPageDto mgtSelectGoodsPageDto);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java
index 054d99e..c6ecf84 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java
@@ -3,6 +3,8 @@
 import com.ruoyi.goods.domain.pojo.activity.ActivityRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 活动记录 服务类
@@ -13,4 +15,12 @@
  */
 public interface ActivityRecordService extends IService<ActivityRecord> {
 
+    /**
+     * @description  通过活动id获取参与活动用户id
+     * @author  jqs
+     * @date    2023/6/13 18:24
+     * @param activityId
+     * @return  List<Long>
+     */
+    List<Long> listUserIdByActivityId(String activityId);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
index 2693a8c..7ac6afd 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
@@ -5,6 +5,7 @@
 import com.ruoyi.goods.domain.vo.*;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
 
 import java.util.List;
 
@@ -132,4 +133,23 @@
      * @return  void
      */
     void deleteGoodsTag(String goodsTag);
+
+    /**
+     * @description  通过id获取商品列表
+     * @author  jqs
+     * @date    2023/6/13 15:55
+     * @param goodsIds
+     * @return  List<Goods>
+     */
+    List<Goods> listGoodsByGoodsId(String goodsIds);
+
+    /**
+     * @description  分页获取商品选择列表
+     * @author  jqs
+     * @date    2023/6/13 16:33
+     * @param page
+     * @param mgtSelectGoodsPageDto
+     * @return  List<MgtSelectGoodsPageVo>
+     */
+    List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page,MgtSelectGoodsPageDto mgtSelectGoodsPageDto);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java
index a8522e5..d505217 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java
@@ -1,10 +1,13 @@
 package com.ruoyi.goods.service.impl.activity;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.goods.domain.pojo.activity.ActivityRecord;
 import com.ruoyi.goods.mapper.activity.ActivityRecordMapper;
 import com.ruoyi.goods.service.activity.ActivityRecordService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +20,19 @@
 @Service
 public class ActivityRecordServiceImpl extends ServiceImpl<ActivityRecordMapper, ActivityRecord> implements ActivityRecordService {
 
+    @Resource
+    private ActivityRecordMapper activityRecordMapper;
+
+    /**
+     * @description  通过活动id获取参与活动用户id
+     * @author  jqs
+     * @date    2023/6/13 18:24
+     * @param activityId
+     * @return  List<Long>
+     */
+    @Override
+    public List<Long> listUserIdByActivityId(String activityId){
+
+        return activityRecordMapper.listUserIdByActivityId(activityId);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
index 74dabb1..de054a7 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -7,6 +7,7 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.security.utils.CodeFactoryUtil;
 import com.ruoyi.goods.domain.dto.*;
 import com.ruoyi.goods.domain.pojo.goods.GoodsTotal;
 import com.ruoyi.goods.domain.vo.*;
@@ -22,6 +23,7 @@
 import com.ruoyi.system.api.domain.poji.goods.Goods;
 import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
 import com.ruoyi.system.api.domain.poji.goods.ShopGoods;
+import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
 import com.ruoyi.system.api.service.RemoteConfigService;
 import org.springframework.stereotype.Service;
 
@@ -292,6 +294,7 @@
             goodsId = IdUtils.simpleUUID();
             goods.setGoodsId(goodsId);
             goods.setDelFlag(0);
+            goods.setGoodsNo(CodeFactoryUtil.getGoodsNo());
             goods.setCreateTime(new Date());
             goods.setCreateUserId(mgtGoodsEditDto.getUserId());
             newGoods = true;
@@ -436,4 +439,29 @@
     public void deleteGoodsTag(String goodsTag){
         goodsMapper.deleteGoodsTag(goodsTag);
     }
+
+    /**
+     * @description  通过id获取商品列表
+     * @author  jqs
+     * @date    2023/6/13 15:55
+     * @param goodsIds
+     * @return  List<Goods>
+     */
+    @Override
+    public List<Goods> listGoodsByGoodsId(String goodsIds){
+        return goodsMapper.listGoodsByGoodsId(goodsIds);
+    }
+
+    /**
+     * @description  分页获取商品选择列表
+     * @author  jqs
+     * @date    2023/6/13 16:33
+     * @param page
+     * @param mgtSelectGoodsPageDto
+     * @return  List<MgtSelectGoodsPageVo>
+     */
+    @Override
+    public List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page, MgtSelectGoodsPageDto mgtSelectGoodsPageDto){
+        return goodsMapper.pageMgtSelectGoods(page, mgtSelectGoodsPageDto);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml
index 789e25e..615bd81 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml
@@ -2,5 +2,10 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.goods.mapper.activity.ActivityRecordMapper">
 
-
+    <select id="listUserIdByActivityId" resultType="java.lang.Long">
+        SELECT
+            user_id
+        FROM t_activity_record
+        WHERE del_flag = 0 AND activity_id = #{activityId}
+    </select>
 </mapper>
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 63207fb..e2a27f0 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
@@ -303,7 +303,7 @@
         INNER JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
         LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} AND tsg.del_flag = 0
         WHERE tg.del_flag = 0 AND tg.goods_status = 1
-        <if test="param.goodsType != null">
+        <if test="param.goodsType != null and param.goodsType != ''">
             AND tg.goods_type = #{param.goodsType}
         </if>
         <if test="param.goodsName != null and param.goodsName != ''">
@@ -344,7 +344,7 @@
         INNER JOIN t_goods_total tgt ON tg.goods_id = tgt.goods_id
         LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
         WHERE tg.del_flag = 0
-        <if test="param.goodsType != null">
+        <if test="param.goodsType != null and param.goodsType != ''">
             AND tg.goods_type = #{param.goodsType}
         </if>
         <if test="param.goodsClassId != null and param.goodsClassId != ''">
@@ -375,4 +375,29 @@
         UPDATE t_goods SET goods_tags = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', goods_tags, ','), CONCAT(',',#{goodsTag},','), ','))
         WHERE FIND_IN_SET(#{goodsTag}, goods_tags) &gt; 0
     </update>
+
+    <select id="listGoodsByGoodsId" resultType="com.ruoyi.system.api.domain.poji.goods.Goods">
+        SELECT * FROM t_goods WHERE del_flag = 0 AND goods_id IN (#{goodsIds})
+    </select>
+    
+    <select id="pageMgtSelectGoods" resultType="com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo">
+        SELECT
+            goods_id  goodsId,
+            goods_name  goodsName,
+            goods_no  goodsNo,
+            goods_type  goodsType,
+            sales_price  salesPrice
+        FROM
+            t_goods
+        WHERE del_flag = 0
+        <if test="param.goodsType != null and param.goodsType != ''">
+            AND tg.goods_type = #{param.goodsType}
+        </if>
+        <if test="param.goodsName != null and param.goodsName != ''">
+            AND tg.goods_name LIKE CONCAT('%',#{param.goodsName},'%')
+        </if>
+        <if test="param.goodsNo != null and param.goodsNo != ''">
+            AND tg.goods_no LIKE CONCAT('%',#{param.goodsNo},'%')
+        </if>
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java
new file mode 100644
index 0000000..dcd5cb6
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java
@@ -0,0 +1,76 @@
+package com.ruoyi.member.controller.management;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.member.domain.dto.MgtCouponEditDto;
+import com.ruoyi.member.domain.dto.MgtCouponPageDto;
+import com.ruoyi.member.domain.vo.MgtCouponGetVo;
+import com.ruoyi.member.domain.vo.MgtCouponPageVo;
+import com.ruoyi.member.service.coupon.CouponService;
+import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @ClassName MgtCouponController
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 9:15
+ * @Version 1.0
+ */
+@Api(value = "平台端配置相关接口", tags = "平台端配置相关接口", description = "平台端配置相关接口")
+@RestController
+@RequestMapping("/mgt/coupon")
+public class MgtCouponController {
+
+    @Resource
+    private CouponService couponService;
+
+
+    @RequestMapping(value = "/pageMgtCoupon", method = RequestMethod.POST)
+    @ApiOperation(value = "平台分页获取优惠券列表")
+    public R<Page<MgtCouponPageVo>> pageMgtCoupon(@RequestBody MgtCouponPageDto mgtCouponPageDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtCouponPageDto.setUserId(userId);
+        Page<MgtCouponPageVo> page = new Page<>();
+        page.setSize(mgtCouponPageDto.getPageSize());
+        page.setCurrent(mgtCouponPageDto.getPageNum());
+        List<MgtCouponPageVo> mgtCouponPageVoList = couponService.pageMgtCoupon(page,mgtCouponPageDto);
+        return R.ok(page.setRecords(mgtCouponPageVoList));
+    }
+
+    @RequestMapping(value = "/getMgtCouponVo", method = RequestMethod.POST)
+    @ApiOperation(value = "平台获取优惠券编辑信息")
+    public R<MgtCouponGetVo> pageMgtCoupon(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtBaseGetDto.setUserId(userId);
+        MgtCouponGetVo mgtCouponGetVo = couponService.getMgtCouponVo(mgtBaseGetDto.getId());
+        return R.ok(mgtCouponGetVo);
+    }
+
+    @RequestMapping(value = "/editMgtCoupon", method = RequestMethod.POST)
+    @ApiOperation(value = "平台编辑优惠券")
+    public R editMgtCoupon(@RequestBody MgtCouponEditDto mgtCouponEditDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtCouponEditDto.setUserId(userId);
+        couponService.editMgtCoupon(mgtCouponEditDto);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/deleteMgtCoupon", method = RequestMethod.POST)
+    @ApiOperation(value = "平台删除优惠券")
+    public R deleteMgtCoupon(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtBaseGetDto.setUserId(userId);
+        couponService.deleteMgtCoupon(mgtBaseGetDto);
+        return R.ok();
+    }
+}
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
new file mode 100644
index 0000000..8d325e9
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java
@@ -0,0 +1,74 @@
+package com.ruoyi.member.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName MgtCouponEditDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 12:46
+ * @Version 1.0
+ */
+@Data
+public class MgtCouponEditDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "优惠券id 新增不传")
+    private String couponId;
+
+    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
+    private Integer couponType;
+
+    @ApiModelProperty("优惠券名称")
+    private String couponName;
+
+    @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义")
+    private Integer sendType;
+
+    @ApiModelProperty("发送时间类型1立即2定时")
+    private Integer sendTimeType;
+
+    @ApiModelProperty("发送时间")
+    private Date sendTime;
+
+    @ApiModelProperty(value = "使用范围1.全场2.指定商品")
+    private Integer useScope;
+
+    @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起")
+    private Integer validTimeType;
+
+    @ApiModelProperty(value = "有效开始时间")
+    private Date validStartTime;
+
+    @ApiModelProperty(value = "有效截止时间")
+    private Date validEndTime;
+
+    @ApiModelProperty(value = "有效期")
+    private Integer validDay;
+
+    @ApiModelProperty(value = "门槛金额")
+    private BigDecimal moneyThreshold;
+
+    @ApiModelProperty(value = "折扣金额")
+    private BigDecimal discountMoney;
+
+    @ApiModelProperty(value = "折扣百分比")
+    private BigDecimal discountPercent;
+
+    @ApiModelProperty(value = "选择商品id集合")
+    private List<String> relGoodsIdList;
+
+    @ApiModelProperty(value = "关联类型1.用户管理筛选2.活动管理筛选")
+    private Integer relationType;
+
+    @ApiModelProperty(value = "关联活动id")
+    private String relationActivityId;
+
+    @ApiModelProperty(value = "关联用户id集合")
+    private List<Long> relUserIdList;
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java
new file mode 100644
index 0000000..e5f4ad3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java
@@ -0,0 +1,27 @@
+package com.ruoyi.member.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtPageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName MgtCouponPageDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 11:01
+ * @Version 1.0
+ */
+@Data
+public class MgtCouponPageDto extends MgtPageDto {
+
+    @ApiModelProperty("优惠券名称")
+    private String couponName;
+
+    @ApiModelProperty(value = "创建开始时间")
+    private Date createStartTime;
+
+    @ApiModelProperty(value = "创建结束时间")
+    private Date createEndTime;
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java
index bbdad6d..f612929 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java
@@ -1,6 +1,5 @@
 package com.ruoyi.member.domain.dto;
 
-import com.ruoyi.system.api.domain.dto.MgtBaseDto;
 import com.ruoyi.system.api.domain.dto.MgtPageDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -81,6 +80,6 @@
     @ApiModelProperty(value = "截止消费次数")
     private Integer endPayCount;
 
-    @ApiModelProperty(value = "用户标签")
-    private String memberTag;
+    @ApiModelProperty(value = "用户标签 多个,隔开")
+    private String memberTags;
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java
index f98beda..c951935 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java
@@ -89,7 +89,7 @@
     @TableField("use_scope")
     private Integer useScope;
     /**
-     * 有效期类型
+     * 有效期类型1.时间段2.领取之日起
      */
     @TableField("valid_time_type")
     private Integer validTimeType;
@@ -121,34 +121,34 @@
      * 优惠券来源1平台2商户
      */
     @TableField("coupon_from")
-    private Integer coupon_from;
+    private Integer couponFrom;
 
     /**
      * 商户id
      */
     @TableField("shop_id")
-    private Long shop_id;
+    private Long shopId;
 
     /**
      * 关联商品ids
      */
     @TableField("rel_goods_ids")
-    private String rel_goods_ids;
+    private String relGoodsIds;
 
     /**
      * 审核状态1申请中2审核通过3审核拒绝
      */
     @TableField("audit_status")
-    private Integer audit_status;
+    private Integer auditStatus;
 
     /**
      * 审核理由
      */
     @TableField("audit_reason")
-    private String audit_reason;
+    private String auditReason;
 
     /**
-     * 关联类型
+     * 关联类型1.用户管理筛选2.活动管理筛选
      */
     @TableField("relation_type")
     private Integer relationType;
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java
index 45825fa..ce1892e 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java
@@ -1,17 +1,17 @@
 package com.ruoyi.member.domain.pojo.member;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import java.math.BigDecimal;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * <p>
@@ -124,8 +124,8 @@
     /**
      * 使用时间
      */
-    @TableField("user_time")
-    private Date userTime;
+    @TableField("use_time")
+    private Date useTime;
     /**
      * 使用有效期
      */
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java
new file mode 100644
index 0000000..4e61339
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java
@@ -0,0 +1,74 @@
+package com.ruoyi.member.domain.vo;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName MgtCouponEditDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 12:46
+ * @Version 1.0
+ */
+@Data
+public class MgtCouponGetVo extends MgtBaseDto {
+
+    @ApiModelProperty(value = "优惠券id 新增不传")
+    private String couponId;
+
+    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
+    private Integer couponType;
+
+    @ApiModelProperty("优惠券名称")
+    private String couponName;
+
+    @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义")
+    private Integer sendType;
+
+    @ApiModelProperty("发送时间类型1立即2定时")
+    private Integer sendTimeType;
+
+    @ApiModelProperty("发送时间")
+    private Date sendTime;
+
+    @ApiModelProperty(value = "使用范围1.全场2.指定商品")
+    private String useScope;
+
+    @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起")
+    private Integer validTimeType;
+
+    @ApiModelProperty(value = "有效开始时间")
+    private Date validStartTime;
+
+    @ApiModelProperty(value = "有效截止时间")
+    private Date validEndTime;
+
+    @ApiModelProperty(value = "有效期")
+    private Integer validDay;
+
+    @ApiModelProperty(value = "门槛金额")
+    private BigDecimal moneyThreshold;
+
+    @ApiModelProperty(value = "折扣金额")
+    private BigDecimal discountMoney;
+
+    @ApiModelProperty(value = "折扣百分比")
+    private BigDecimal discountPercent;
+
+    @ApiModelProperty(value = "选择商品集合")
+    private List<MgtCouponGoodsListVo> relGoodsList;
+
+    @ApiModelProperty(value = "关联类型1.用户管理筛选2.活动管理筛选")
+    private Integer relationType;
+
+    @ApiModelProperty(value = "关联活动id")
+    private String relationActivityId;
+
+    @ApiModelProperty(value = "关联用户集合")
+    private List<MgtCouponMemberListVo> relUserList;
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java
new file mode 100644
index 0000000..1ea2d20
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java
@@ -0,0 +1,32 @@
+package com.ruoyi.member.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName MgtCouponGoodsListVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 14:33
+ * @Version 1.0
+ */
+@Data
+public class MgtCouponGoodsListVo {
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "商品编码")
+    private String goodsNo;
+
+    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
+    private String goodsType;
+
+    @ApiModelProperty(value = "商品售价")
+    private BigDecimal salesPrice;
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java
new file mode 100644
index 0000000..cbc058b
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java
@@ -0,0 +1,34 @@
+package com.ruoyi.member.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtCouponMemberListVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 15:42
+ * @Version 1.0
+ */
+@Data
+public class MgtCouponMemberListVo {
+
+    @ApiModelProperty(value = "会员id")
+    private String memberId;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
+
+    @ApiModelProperty(value = "用户姓名")
+    private String realName;
+
+    @ApiModelProperty(value = "手机号码")
+    private String mobile;
+
+    @ApiModelProperty("用户头像")
+    private String avatar;
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java
new file mode 100644
index 0000000..919dc10
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java
@@ -0,0 +1,72 @@
+package com.ruoyi.member.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName MgtCouponPageVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 10:47
+ * @Version 1.0
+ */
+@Data
+public class MgtCouponPageVo {
+
+    @ApiModelProperty(value = "优惠券id")
+    private String couponId;
+
+    @ApiModelProperty("优惠券名称")
+    private String couponName;
+
+    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
+    private Integer couponType;
+
+    @ApiModelProperty(value = "使用限制")
+    private String useLimit;
+
+    @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起",hidden = true)
+    private Integer validTimeType;
+
+    @ApiModelProperty(value = "有效开始时间",hidden = true)
+    private Date validStartTime;
+
+    @ApiModelProperty(value = "有效截止时间",hidden = true)
+    private Date validEndTime;
+
+    @ApiModelProperty(value = "有效期",hidden = true)
+    private Integer validDay;
+
+    @ApiModelProperty(value = "有效期")
+    private String validTime;
+
+    @ApiModelProperty(value = "发放张数")
+    private Integer sendCount;
+
+    @ApiModelProperty(value = "使用范围")
+    private String useScope;
+
+    @ApiModelProperty(value = "发送方式")
+    private String sendType;
+
+    @ApiModelProperty(value = "发送对象")
+    private String sendTarget;
+
+    @ApiModelProperty(value = "门槛金额",hidden = true)
+    private BigDecimal moneyThreshold;
+
+    @ApiModelProperty(value = "折扣金额",hidden = true)
+    private BigDecimal discountMoney;
+
+    @ApiModelProperty(value = "折扣百分比",hidden = true)
+    private BigDecimal discountPercent;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
index 2249033..cd83dc9 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
@@ -1,7 +1,13 @@
 package com.ruoyi.member.mapper.coupon;
 
-import com.ruoyi.member.domain.pojo.coupon.Coupon;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.member.domain.dto.MgtCouponPageDto;
+import com.ruoyi.member.domain.pojo.coupon.Coupon;
+import com.ruoyi.member.domain.vo.MgtCouponPageVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,15 @@
  */
 public interface CouponMapper extends BaseMapper<Coupon> {
 
+    /**
+     * @description  平台获取优惠券列表
+     * @author  jqs
+     * @date    2023/6/13 11:06
+     * @param page
+     * @param mgtCouponPageDto
+     * @return  List<MgtCouponPageVo>
+     */
+    List<MgtCouponPageVo> pageMgtCoupon(Page page, @Param("param") MgtCouponPageDto mgtCouponPageDto);
+
+
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java
index 8ca8bc3..3e11256 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java
@@ -2,6 +2,10 @@
 
 import com.ruoyi.member.domain.pojo.coupon.CouponRelUser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.member.domain.vo.MgtCouponMemberListVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,12 @@
  */
 public interface CouponRelUserMapper extends BaseMapper<CouponRelUser> {
 
+    /**
+     * @description  获取优惠券关联用户
+     * @author  jqs
+     * @date    2023/6/13 16:17
+     * @param
+     * @return  List<MgtCouponMemberListVo>
+     */
+    List<MgtCouponMemberListVo> listCouponMemberVo(@Param("couponId")String couponId);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
index a5f3832..e5e1dd9 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
@@ -83,6 +83,15 @@
      * @return  void
      */
     void deleteMemberTag(@Param("memberTag")String memberTag);
+
+    /**
+     * @description  通过发送类型获取userId
+     * @author  jqs
+     * @date    2023/6/13 17:53
+     * @param sendType
+     * @return  List<Long>
+     */
+    List<Long> listIdBySendType(@Param("sendType")Integer sendType);
 }
 
 
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java
new file mode 100644
index 0000000..cf87dc6
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java
@@ -0,0 +1,36 @@
+package com.ruoyi.member.scheduler;
+
+
+import com.ruoyi.common.security.utils.SchedulerUtils;
+import com.ruoyi.member.service.coupon.CouponService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+
+@Component
+@Slf4j
+public class MemberrScheduler {
+
+
+    @Resource
+    private SchedulerUtils schedulerUtils;
+
+    @Resource
+    private CouponService couponService;
+
+
+    /**
+     * 优惠券定时发送
+     */
+    @Scheduled(cron="0 0/5 * * * ?")
+    private void autoCheckNoPayOrder(){
+        if(schedulerUtils.getSchedulerRun()) {
+            log.info("check no pay order scheduler task is running ");
+        }
+    }
+
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java
index 335a6a2..2f41172 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java
@@ -13,4 +13,12 @@
  */
 public interface CouponRelGoodsService extends IService<CouponRelGoods> {
 
+    /**
+     * @description  刪除优惠券关联
+     * @author  jqs
+     * @date    2023/6/13 17:05
+     * @param
+     * @return  void
+     */
+    void deleteCouponRelByCouponId(String couponId);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java
index 64eecd8..011a0e8 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java
@@ -1,7 +1,10 @@
 package com.ruoyi.member.service.coupon;
 
-import com.ruoyi.member.domain.pojo.coupon.CouponRelUser;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.member.domain.pojo.coupon.CouponRelUser;
+import com.ruoyi.member.domain.vo.MgtCouponMemberListVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,21 @@
  */
 public interface CouponRelUserService extends IService<CouponRelUser> {
 
+    /**
+     * @description  获取优惠券关联用户
+     * @author  jqs
+     * @date    2023/6/13 16:17
+     * @param
+     * @return  List<MgtCouponMemberListVo>
+     */
+    List<MgtCouponMemberListVo> listCouponMemberVo(String couponId);
+
+    /**
+     * @description  刪除优惠券关联
+     * @author  jqs
+     * @date    2023/6/13 17:05
+     * @param
+     * @return  void
+     */
+    void deleteCouponRelByCouponId(String couponId);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
index a9d4a0c..630f3f3 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -1,7 +1,15 @@
 package com.ruoyi.member.service.coupon;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.member.domain.dto.MgtCouponEditDto;
+import com.ruoyi.member.domain.dto.MgtCouponPageDto;
 import com.ruoyi.member.domain.pojo.coupon.Coupon;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.member.domain.vo.MgtCouponGetVo;
+import com.ruoyi.member.domain.vo.MgtCouponPageVo;
+import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +21,41 @@
  */
 public interface CouponService extends IService<Coupon> {
 
+
+    /**
+     * @description  平台获取优惠券列表
+     * @author  jqs
+     * @date    2023/6/13 11:06
+     * @param page
+     * @param mgtCouponPageDto
+     * @return  List<MgtCouponPageVo>
+     */
+    List<MgtCouponPageVo> pageMgtCoupon(Page page, MgtCouponPageDto mgtCouponPageDto);
+
+    /**
+     * @description  平台获取优惠券编辑信息
+     * @author  jqs
+     * @date    2023/6/13 14:29
+     * @param couponId
+     * @return  MgtCouponGetVo
+     */
+    MgtCouponGetVo getMgtCouponVo(String couponId);
+
+    /**
+     * @description  平台编辑优惠券
+     * @author  jqs
+     * @date    2023/6/13 16:50
+     * @param mgtCouponEditDto
+     * @return  void
+     */
+    void editMgtCoupon(MgtCouponEditDto mgtCouponEditDto);
+
+    /**
+     * @description  平台删除优惠券
+     * @author  jqs
+     * @date    2023/6/13 18:50
+     * @param mgtBaseGetDto
+     * @return  void
+     */
+    void deleteMgtCoupon(MgtBaseGetDto mgtBaseGetDto);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java
index b31301c..15dcfac 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java
@@ -1,9 +1,10 @@
 package com.ruoyi.member.service.impl.coupon;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.member.domain.pojo.coupon.CouponRelGoods;
 import com.ruoyi.member.mapper.coupon.CouponRelGoodsMapper;
 import com.ruoyi.member.service.coupon.CouponRelGoodsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +18,19 @@
 @Service
 public class CouponRelGoodsServiceImpl extends ServiceImpl<CouponRelGoodsMapper, CouponRelGoods> implements CouponRelGoodsService {
 
+    /**
+     * @description  刪除优惠券关联
+     * @author  jqs
+     * @date    2023/6/13 17:05
+     * @param
+     * @return  void
+     */
+    @Override
+    public void deleteCouponRelByCouponId(String couponId){
+        LambdaUpdateWrapper<CouponRelGoods> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(CouponRelGoods::getCouponId, couponId);
+        wrapper.eq(CouponRelGoods::getDelFlag, 0);
+        wrapper.set(CouponRelGoods::getDelFlag, 1);
+        this.update(wrapper);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java
index 8a46d14..fa785b2 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java
@@ -1,10 +1,15 @@
 package com.ruoyi.member.service.impl.coupon;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.member.domain.pojo.coupon.CouponRelUser;
+import com.ruoyi.member.domain.vo.MgtCouponMemberListVo;
 import com.ruoyi.member.mapper.coupon.CouponRelUserMapper;
 import com.ruoyi.member.service.coupon.CouponRelUserService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +22,34 @@
 @Service
 public class CouponRelUserServiceImpl extends ServiceImpl<CouponRelUserMapper, CouponRelUser> implements CouponRelUserService {
 
+    @Resource
+    private CouponRelUserMapper couponRelUserMapper;
+
+    /**
+     * @description  获取优惠券关联用户
+     * @author  jqs
+     * @date    2023/6/13 16:17
+     * @param
+     * @return  List<MgtCouponMemberListVo>
+     */
+    @Override
+    public List<MgtCouponMemberListVo> listCouponMemberVo(String couponId){
+        return couponRelUserMapper.listCouponMemberVo(couponId);
+    }
+
+    /**
+     * @description  刪除优惠券关联
+     * @author  jqs
+     * @date    2023/6/13 17:05
+     * @param
+     * @return  void
+     */
+    @Override
+    public void deleteCouponRelByCouponId(String couponId){
+        LambdaUpdateWrapper<CouponRelUser> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(CouponRelUser::getCouponId, couponId);
+        wrapper.eq(CouponRelUser::getDelFlag, 0);
+        wrapper.set(CouponRelUser::getDelFlag, 1);
+        this.update(wrapper);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
index 60612d4..bc37a62 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -1,10 +1,43 @@
 package com.ruoyi.member.service.impl.coupon;
 
-import com.ruoyi.member.domain.pojo.coupon.Coupon;
-import com.ruoyi.member.mapper.coupon.CouponMapper;
-import com.ruoyi.member.service.coupon.CouponService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.bean.BeanUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.member.domain.dto.MgtCouponEditDto;
+import com.ruoyi.member.domain.dto.MgtCouponPageDto;
+import com.ruoyi.member.domain.pojo.coupon.Coupon;
+import com.ruoyi.member.domain.pojo.coupon.CouponRelGoods;
+import com.ruoyi.member.domain.pojo.coupon.CouponRelUser;
+import com.ruoyi.member.domain.pojo.coupon.CouponTotal;
+import com.ruoyi.member.domain.pojo.member.MemberCoupon;
+import com.ruoyi.member.domain.vo.MgtCouponGetVo;
+import com.ruoyi.member.domain.vo.MgtCouponGoodsListVo;
+import com.ruoyi.member.domain.vo.MgtCouponMemberListVo;
+import com.ruoyi.member.domain.vo.MgtCouponPageVo;
+import com.ruoyi.member.mapper.coupon.CouponMapper;
+import com.ruoyi.member.service.coupon.CouponRelGoodsService;
+import com.ruoyi.member.service.coupon.CouponRelUserService;
+import com.ruoyi.member.service.coupon.CouponService;
+import com.ruoyi.member.service.coupon.CouponTotalService;
+import com.ruoyi.member.service.member.MemberCouponService;
+import com.ruoyi.member.service.member.MemberService;
+import com.ruoyi.system.api.constant.AppErrorConstant;
+import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
+import com.ruoyi.system.api.domain.poji.goods.Goods;
+import com.ruoyi.system.api.service.RemoteActivityService;
+import com.ruoyi.system.api.service.RemoteGoodsService;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +50,327 @@
 @Service
 public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> implements CouponService {
 
+    @Resource
+    private CouponRelUserService couponRelUserService;
+
+    @Resource
+    private CouponRelGoodsService couponRelGoodsService;
+
+    @Resource
+    private CouponMapper couponMapper;
+
+    @Resource
+    private RemoteGoodsService remoteGoodsService;
+
+    @Resource
+    private CouponTotalService couponTotalService;
+
+    @Resource
+    private MemberService memberService;
+
+    @Resource
+    private MemberCouponService memberCouponService;
+
+    @Resource
+    private RemoteActivityService remoteActivityService;
+
+    /**
+     * @description  平台获取优惠券列表
+     * @author  jqs
+     * @date    2023/6/13 11:06
+     * @param page
+     * @param mgtCouponPageDto
+     * @return  List<MgtCouponPageVo>
+     */
+    @Override
+    public List<MgtCouponPageVo> pageMgtCoupon(Page page, MgtCouponPageDto mgtCouponPageDto){
+        List<MgtCouponPageVo> mgtCouponPageVoList = couponMapper.pageMgtCoupon(page, mgtCouponPageDto);
+        //处理使用限制和有效期
+        if(mgtCouponPageVoList!=null&&!mgtCouponPageVoList.isEmpty()){
+            Integer couponType;
+            Integer validTimeType;
+            Date validStartTime;
+            Date validEndTime;
+            Integer validDay;
+            String validTime = "";
+            BigDecimal moneyThreshold;
+            BigDecimal discountMoney;
+            BigDecimal discountPercent;
+            String useLimit = "";
+            for(MgtCouponPageVo mgtCouponPageVo : mgtCouponPageVoList){
+                //处理使用限制
+                couponType = mgtCouponPageVo.getCouponType();
+                switch (couponType){
+                    case 1:
+                        moneyThreshold = mgtCouponPageVo.getMoneyThreshold();
+                        discountMoney = mgtCouponPageVo.getDiscountMoney();
+                        useLimit = "满" + moneyThreshold.toString() + "减" + discountMoney.toString() + "元";
+                        break;
+                    case 2:
+                        break;
+                    case 3:
+                        break;
+                    case 4:
+                        break;
+                    default:
+                        break;
+                }
+                mgtCouponPageVo.setUseLimit(useLimit);
+                //处理有效期
+                validTimeType = mgtCouponPageVo.getValidTimeType();
+                if(validTimeType==1){
+                    validStartTime = mgtCouponPageVo.getValidStartTime();
+                    validEndTime = mgtCouponPageVo.getValidEndTime();
+                    validTime = DateUtils.dateTime(validStartTime) + '-' +  DateUtils.dateTime(validEndTime);
+                }else if(validTimeType==2){
+                    validDay = mgtCouponPageVo.getValidDay();
+                    validTime = "领取之日起" + validDay.toString() + "天";
+                }
+                mgtCouponPageVo.setValidTime(validTime);
+            }
+        }
+        return mgtCouponPageVoList;
+    }
+
+    /**
+     * @description  平台获取优惠券编辑信息
+     * @author  jqs
+     * @date    2023/6/13 14:29
+     * @param couponId
+     * @return  MgtCouponGetVo
+     */
+    @Override
+    public MgtCouponGetVo getMgtCouponVo(String couponId){
+        MgtCouponGetVo mgtCouponGetVo = new MgtCouponGetVo();
+        Coupon coupon = this.getById(couponId);
+        BeanUtils.copyProperties(coupon, mgtCouponGetVo);
+        //判断优惠券是否为指定商品
+        if(coupon.getUseScope()==2){
+            String relGoodsIds = coupon.getRelGoodsIds();
+            if(StringUtils.isNotBlank(relGoodsIds)){
+                //获取指定商品列表
+                List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
+                if(!goodsList.isEmpty()){
+                    //转换为返回对象
+                    List<MgtCouponGoodsListVo> relGoodsList = new ArrayList<>();
+                    MgtCouponGoodsListVo mgtCouponGoodsListVo;
+                    for(Goods goods : goodsList){
+                        mgtCouponGoodsListVo = new MgtCouponGoodsListVo();
+                        mgtCouponGoodsListVo.setGoodsId(goods.getGoodsId());
+                        mgtCouponGoodsListVo.setGoodsName(goods.getGoodsName());
+                        mgtCouponGoodsListVo.setGoodsNo(goods.getGoodsNo());
+                        //商品类型1周期2服务3体验4单品
+                        switch (goods.getGoodsType()){
+                            case 1:
+                                mgtCouponGoodsListVo.setGoodsType("周期");
+                                break;
+                            case 2:
+                                mgtCouponGoodsListVo.setGoodsType("服务");
+                                break;
+                            case 3:
+                                mgtCouponGoodsListVo.setGoodsType("体验");
+                                break;
+                            case 4:
+                                mgtCouponGoodsListVo.setGoodsType("单品");
+                                break;
+                            default:
+                                break;
+                        }
+                        mgtCouponGoodsListVo.setSalesPrice(goods.getSalesPrice());
+                        relGoodsList.add(mgtCouponGoodsListVo);
+                    }
+                    mgtCouponGetVo.setRelGoodsList(relGoodsList);
+                }
+            }
+        }
+        //判断优惠券是否指定发放用户
+        if(coupon.getSendType()==5&&coupon.getRelationType()==1){
+            //获取优惠券发放用户
+            List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId());
+            mgtCouponGetVo.setRelUserList(relUserList);
+        }
+        return mgtCouponGetVo;
+    }
+
+    /**
+     * @description  平台编辑优惠券
+     * @author  jqs
+     * @date    2023/6/13 16:50
+     * @param mgtCouponEditDto
+     * @return  void
+     */
+    @Override
+    public void editMgtCoupon(MgtCouponEditDto mgtCouponEditDto){
+        //编辑优惠券
+        Coupon coupon;
+        CouponTotal couponTotal;
+        if(StringUtils.isNotBlank(mgtCouponEditDto.getCouponId())){
+            coupon = this.getById(mgtCouponEditDto.getCouponId());
+            couponTotal = couponTotalService.getById(mgtCouponEditDto.getCouponId());
+            if(couponTotal.getSendCount()!=null&&couponTotal.getSendCount()>0){
+                throw new ServiceException(AppErrorConstant.COUPON_SENT_EDIT);
+            }
+            couponRelUserService.deleteCouponRelByCouponId(coupon.getCouponId());
+            couponRelGoodsService.deleteCouponRelByCouponId(coupon.getCouponId());
+        }else{
+            coupon = new Coupon();
+            String couponId = IdUtils.simpleUUID();
+            coupon.setCouponId(couponId);
+            coupon.setDelFlag(0);
+            coupon.setCouponStatus(1);
+            coupon.setCreateTime(new Date());
+            coupon.setCreateUserId(mgtCouponEditDto.getUserId());
+            coupon.setCouponFrom(1);
+            coupon.setAuditStatus(2);
+            //创建优惠券统计
+            couponTotal = new CouponTotal();
+            couponTotal.setCouponId(couponId);
+            couponTotal.setSendCount(0);
+            couponTotal.setSendUserCount(0);
+            couponTotalService.save(couponTotal);
+        }
+        //优惠券赋值
+        coupon.setCouponType(mgtCouponEditDto.getCouponType());
+        coupon.setCouponName(mgtCouponEditDto.getCouponName());
+        coupon.setSendType(mgtCouponEditDto.getSendType());
+        coupon.setSendTimeType(mgtCouponEditDto.getSendTimeType());
+        coupon.setSendTime(mgtCouponEditDto.getSendTime());
+        coupon.setMoneyThreshold(mgtCouponEditDto.getMoneyThreshold());
+        coupon.setDiscountMoney(mgtCouponEditDto.getDiscountMoney());
+        coupon.setDiscountPercent(mgtCouponEditDto.getDiscountPercent());
+        coupon.setUseScope(mgtCouponEditDto.getUseScope());
+        coupon.setValidTimeType(mgtCouponEditDto.getValidTimeType());
+        coupon.setValidStartTime(mgtCouponEditDto.getValidStartTime());
+        coupon.setValidEndTime(mgtCouponEditDto.getValidEndTime());
+        coupon.setValidDay(mgtCouponEditDto.getValidDay());
+        coupon.setUpdateTime(new Date());
+        coupon.setUpdateUserId(mgtCouponEditDto.getUserId());
+        coupon.setRelationType(mgtCouponEditDto.getRelationType());
+        coupon.setRelationActivityId(mgtCouponEditDto.getRelationActivityId());
+        //判断是否指定商品
+        if(coupon.getUseScope()==2&&!mgtCouponEditDto.getRelGoodsIdList().isEmpty()){
+            List<String> relGoodsIdList = mgtCouponEditDto.getRelGoodsIdList();
+            List<CouponRelGoods> couponRelGoodsList = relGoodsIdList.stream()
+                    .map(str -> {
+                        CouponRelGoods couponRelGoods = new CouponRelGoods();
+                        couponRelGoods.setDelFlag(0);
+                        couponRelGoods.setCouponId(coupon.getCouponId());
+                        couponRelGoods.setGoodsId(str);
+                        return couponRelGoods;
+                    })
+                    .collect(Collectors.toList());
+            couponRelGoodsService.saveBatch(couponRelGoodsList);
+            String relGoodsIds = relGoodsIdList.stream().collect(Collectors.joining(","));
+            coupon.setRelGoodsIds(relGoodsIds);
+        }
+        //判断是否指定用户
+        List<Long> relUserIdList = null;
+        if(coupon.getSendType()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){
+            relUserIdList = mgtCouponEditDto.getRelUserIdList();
+            List<CouponRelUser> couponRelUserList = relUserIdList.stream()
+                    .map(str -> {
+                        CouponRelUser couponRelUser = new CouponRelUser();
+                        couponRelUser.setDelFlag(0);
+                        couponRelUser.setCouponId(coupon.getCouponId());
+                        couponRelUser.setUserId(str);
+                        return couponRelUser;
+                    })
+                    .collect(Collectors.toList());
+            couponRelUserService.saveBatch(couponRelUserList);
+        }
+        this.saveOrUpdate(coupon);
+        //处理优惠券发放
+        if(coupon.getSendTimeType()==1){
+            sendCoupon(coupon,relUserIdList);
+        }
+    }
+
+    /**
+     * @description  发送优惠券
+     * @author  jqs
+     * @date    2023/6/13 18:45
+     * @param coupon
+     * @param relUserIdList
+     * @return  void
+     */
+    private void sendCoupon(Coupon coupon,List<Long> relUserIdList){
+        //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
+        Date nowTime = new Date();
+        Integer sendType = coupon.getSendType();
+        List<Long> userIdList = new ArrayList<>();
+        if(sendType >= 2 && sendType <= 4){
+            userIdList = memberService.listIdBySendType(sendType);
+        }else if(sendType == 5){
+            //关联类型1.用户管理筛选2.活动管理筛选
+            if(coupon.getRelationType()==1){
+                userIdList = remoteActivityService.listUserIdByActivityId(coupon.getRelationActivityId()).getData();
+            }else if(coupon.getRelationType()==2){
+                userIdList = relUserIdList;
+            }
+        }
+        if(!relUserIdList.isEmpty()){
+            List<MemberCoupon> memberCouponList = new ArrayList<>();
+            MemberCoupon memberCoupon;
+            Integer sendTotal = 0;
+            for(Long userId : userIdList){
+                memberCoupon = new MemberCoupon();
+                memberCoupon.setDelFlag(0);
+                memberCoupon.setCouponId(coupon.getCouponId());
+                memberCoupon.setUserId(userId);
+                memberCoupon.setCouponType(coupon.getCouponType());
+                memberCoupon.setCouponStatus(coupon.getCouponStatus());
+                memberCoupon.setCouponName(coupon.getCouponName());
+                memberCoupon.setSendType(coupon.getSendType());
+                memberCoupon.setSendTimeType(coupon.getSendTimeType());
+                memberCoupon.setSendTime(coupon.getSendTime());
+                memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
+                memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
+                memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
+                memberCoupon.setUseScope(coupon.getUseScope());
+                memberCoupon.setValidTimeType(coupon.getValidTimeType());
+                memberCoupon.setValidStartTime(coupon.getValidStartTime());
+                memberCoupon.setValidEndTime(coupon.getValidEndTime());
+                memberCoupon.setValidDay(coupon.getValidDay());
+                memberCoupon.setReceiveTime(nowTime);
+                memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
+                //有效期处理1.时间段2.领取之日起
+                if(coupon.getValidTimeType()==1){
+                    memberCoupon.setDeadlineTime(coupon.getValidEndTime());
+                }else if(coupon.getValidTimeType()==2){
+                    memberCoupon.setDeadlineTime(DateUtils.addDays(nowTime,coupon.getValidDay()));
+                }
+                memberCouponList.add(memberCoupon);
+                sendTotal = sendTotal + 1;
+            }
+            memberCouponService.saveBatch(memberCouponList);
+            //处理优惠券统计
+            if(sendTotal>0){
+                CouponTotal couponTotal = couponTotalService.getById(coupon.getCouponId());
+                couponTotal.setSendCount(couponTotal.getSendCount()+sendTotal);
+                couponTotal.setSendUserCount(couponTotal.getSendUserCount()+sendTotal);
+                couponTotalService.saveOrUpdate(couponTotal);
+            }
+        }
+    }
+
+    /**
+     * @description  平台删除优惠券
+     * @author  jqs
+     * @date    2023/6/13 18:50
+     * @param mgtBaseGetDto
+     * @return  void
+     */
+    @Override
+    public void deleteMgtCoupon(MgtBaseGetDto mgtBaseGetDto){
+        Coupon coupon = this.getById(mgtBaseGetDto.getId());
+        CouponTotal couponTotal = couponTotalService.getById(mgtBaseGetDto.getId());
+        if(couponTotal.getSendCount()!=null&&couponTotal.getSendCount()>0){
+            throw new ServiceException(AppErrorConstant.COUPON_SENT_DEL);
+        }
+        coupon.setCouponStatus(-1);
+        coupon.setDelFlag(1);
+        coupon.setUpdateUserId(mgtBaseGetDto.getUserId());
+        coupon.setUpdateTime(new Date());
+        this.saveOrUpdate(coupon);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index 1af5cf0..59cfbb1 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -645,7 +645,7 @@
      * @return
      */
     private String createMemberNo(){
-        int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>().eq(Member::getDelFlag, 0));
+        int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>());
         String memberNo = CodeFactoryUtil.getMemberNo(Long.valueOf(memberTotal+1));
         return memberNo;
     }
@@ -669,6 +669,10 @@
                     merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay, activeness.getEndDay()));
                     merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay, activeness.getStartDay()));
                 });
+        //处理标签为正则表达
+        if(StringUtils.isNotBlank(merMemberPageDto.getMemberTags())){
+            merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",","|"));
+        }
         //查询获取结果列表
         List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto);
         //处理活跃度返回
@@ -883,5 +887,16 @@
         memberMapper.deleteMemberTag(memberTag);
     }
 
-
+    /**
+     * @description  通过发送类型获取userId
+     * @author  jqs
+     * @date    2023/6/13 17:53
+     * @param sendType
+     * @return  List<Long>
+     */
+    @Override
+    public List<Long> listIdBySendType(Integer sendType){
+        //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
+        return memberMapper.listIdBySendType(sendType);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
index aa2518b..9b336bf 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -188,6 +188,13 @@
      * @return  void
      */
     void deleteMemberTag(String memberTag);
-    
 
+    /**
+     * @description  通过发送类型获取userId
+     * @author  jqs
+     * @date    2023/6/13 17:53
+     * @param sendType
+     * @return  List<Long>
+     */
+    List<Long> listIdBySendType(Integer sendType);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
index e64208b..b5ff26a 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -141,4 +141,53 @@
         </foreach>
     </delete>
 
+    <select id="pageMgtCoupon" resultType="com.ruoyi.member.domain.vo.MgtCouponPageVo">
+        SELECT 
+        tc.coupon_id  couponId,
+        tc.coupon_name  couponName,
+        CASE tc.coupon_type
+        WHEN 1 THEN '满减'
+        WHEN 2 THEN '折扣'
+        WHEN 3 THEN '代金'
+        WHEN 4 THEN '商品'
+        END couponType,
+        tc.valid_time_type  validTimeType,
+        tc.valid_start_time  validStartTime,
+        tc.valid_end_time  validEndTime,
+        tc.valid_day  validDay,
+        tct.send_count  sendCount,
+        CASE tc.use_scope
+            WHEN 1 THEN '全部'
+            WHEN 2 THEN '指定商品'
+            END useScope,
+        CASE tc.send_type
+            WHEN 1 THEN '手动获取'
+            ELSE '指定发放'
+            END sendType,
+        CASE tc.send_type
+            WHEN 2 THEN '全部用户'
+            WHEN 3 THEN '会员用户'
+            WHEN 4 THEN '非会员用户'
+            WHEN 5 THEN '自定义'
+            ELSE ''
+            END sendTarget,
+        tc.money_threshold  moneyThreshold,
+        tc.discount_money  discountMoney,
+        tc.discount_percent  discountPercent,
+        tc.create_time  createTime
+        FROM t_coupon tc
+        LEFT JOIN t_coupon_total tct ON tc.coupon_id = tct.coupon_id
+        WHERE del_flag = 0 AND coupon_status = 2
+        <if test="param.couponName!=null and param.couponName!=''">
+            tc.coupon_name LIKE CONCAT('%',#{param.couponName},'%')
+        </if>
+        <if test="param.createStartTime!=null and param.createStartTime!=''">
+            AND tc.create_time &gt;= #{param.createStartTime}
+        </if>
+        <if test="param.createEndTime!=null and param.createEndTime!=''">
+            AND tc.create_time &lt;= #{param.createEndTime}
+        </if>
+    </select>
+    
+
 </mapper>
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml
index a3b8676..4e773b2 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml
@@ -61,4 +61,17 @@
         </foreach>
     </delete>
 
+    <select id="listCouponMemberVo" resultType="com.ruoyi.member.domain.vo.MgtCouponMemberListVo">
+        SELECT
+            tm.member_id memberId,
+            tm.user_id userId,
+            tm.nick_name nickName,
+            tm.real_name realName,
+            tm.mobile mobile,
+            tm.avatar avatar
+        FROM
+            t_coupon_rel_user tcru
+                INNER JOIN t_member tm ON tm.user_id = tcru.user_id
+        WHERE del_flag = 0 AND tcru.coupon_id = #{couponId}
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
index 10e7cc4..78854f8 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
@@ -22,13 +22,13 @@
         <result property="validEndTime"    column="valid_end_time"    />
         <result property="validDay"    column="valid_day"    />
         <result property="receiveTime"    column="receive_time"    />
-        <result property="userTime"    column="user_time"    />
+        <result property="useTime"    column="use_time"    />
         <result property="deadlineTime"    column="deadline_time"    />
         <result property="relGoodsIds"    column="rel_goods_ids"    />
     </resultMap>
 
     <sql id="selectMemberCouponVo">
-        select id, del_flag, coupon_id, user_id, coupon_type, coupon_status, coupon_name, send_type, send_time_type, send_time, money_threshold, discount_money, discount_percent, use_scope, valid_time_type, valid_start_time, valid_end_time, valid_day, receive_time, user_time, deadline_time, rel_goods_ids from t_member_coupon
+        select id, del_flag, coupon_id, user_id, coupon_type, coupon_status, coupon_name, send_type, send_time_type, send_time, money_threshold, discount_money, discount_percent, use_scope, valid_time_type, valid_start_time, valid_end_time, valid_day, receive_time, use_time, deadline_time, rel_goods_ids from t_member_coupon
     </sql>
 
     <select id="selectMemberCouponList" parameterType="MemberCoupon" resultMap="MemberCouponResult">
@@ -51,7 +51,7 @@
             <if test="validEndTime != null "> and valid_end_time = #{validEndTime}</if>
             <if test="validDay != null "> and valid_day = #{validDay}</if>
             <if test="receiveTime != null "> and receive_time = #{receiveTime}</if>
-            <if test="userTime != null "> and user_time = #{userTime}</if>
+            <if test="useTime != null "> and use_time = #{useTime}</if>
             <if test="deadlineTime != null "> and deadline_time = #{deadlineTime}</if>
             <if test="relGoodsIds != null "> and rel_goods_ids = #{relGoodsIds}</if>
         </where>
@@ -83,7 +83,7 @@
             <if test="validEndTime != null">valid_end_time,</if>
             <if test="validDay != null">valid_day,</if>
             <if test="receiveTime != null">receive_time,</if>
-            <if test="userTime != null">user_time,</if>
+            <if test="useTime != null">use_time,</if>
             <if test="deadlineTime != null">deadline_time,</if>
             <if test="relGoodsIds != null ">rel_goods_ids,</if>
         </trim>
@@ -106,7 +106,7 @@
             <if test="validEndTime != null">#{validEndTime},</if>
             <if test="validDay != null">#{validDay},</if>
             <if test="receiveTime != null">#{receiveTime},</if>
-            <if test="userTime != null">#{userTime},</if>
+            <if test="useTime != null">#{useTime},</if>
             <if test="deadlineTime != null">#{deadlineTime},</if>
             <if test="relGoodsIds != null ">#{relGoodsIds},</if>
         </trim>
@@ -133,7 +133,7 @@
             <if test="validEndTime != null">valid_end_time = #{validEndTime},</if>
             <if test="validDay != null">valid_day = #{validDay},</if>
             <if test="receiveTime != null">receive_time = #{receiveTime},</if>
-            <if test="userTime != null">user_time = #{userTime},</if>
+            <if test="useTime != null">use_time = #{useTime},</if>
             <if test="deadlineTime != null">deadline_time = #{deadlineTime},</if>
             <if test="relGoodsIds != null "> and rel_goods_ids = #{relGoodsIds},</if>
         </trim>
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
index 56fca93..5ffe6ac 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -272,7 +272,7 @@
             AND tmt.total_pay_count &lt;= #{param.endPayCount}
         </if>
         <if test="param.memberTag != null and param.memberTag != ''">
-            AND FIND_IN_SET(#{param.memberTag},tm.user_tags) &gt; 0
+            AND tm.user_tags REGEXP #{param.memberTag}
         </if>
         ORDER BY tm.create_time DESC
     </select>
@@ -281,4 +281,19 @@
         UPDATE t_member SET user_tags = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', user_tags, ','), CONCAT(',',#{memberTag},','), ','))
         WHERE FIND_IN_SET(#{memberTag}, user_tags) &gt; 0
     </update>
+
+    <select id="listIdBySendType" resultType="java.lang.Long">
+        SELECT
+            user_id
+        FROM t_member
+        WHERE del_flag = 0
+        <if test="sendType != null and sendType == 3">
+            AND tm.binding_flag = 1
+        </if>
+        <if test="sendType != null and sendType == 4">
+            AND tm.binding_flag = 0
+        </if>
+    </select>
+
+
 </mapper>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
index 9425485..ac3dc58 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -57,7 +57,7 @@
         Page<MgtShopPageVo> page = new Page<>();
         page.setSize(mgtShopPageDto.getPageSize());
         page.setCurrent(mgtShopPageDto.getPageNum());
-        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageShop(page,mgtShopPageDto);
+        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
         return R.ok(page.setRecords(mgtShopPageVoList));
     }
 
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java
index fd0324a..4d77ad7 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java
@@ -1,6 +1,5 @@
 package com.ruoyi.shop.domain.dto;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.system.api.domain.dto.MgtPageDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -62,7 +61,7 @@
     @ApiModelProperty(value = "到期标记")
     private Integer expireFlag;
 
-    @ApiModelProperty(value = "商户标签")
+    @ApiModelProperty(value = "商户标签 多个,隔开")
     private String shopTags;
 
     @ApiModelProperty(value = "扶持能力1.有2.没有")
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
index be7f545..359d6d2 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
@@ -25,7 +25,7 @@
      * @param mgtShopPageDto
      * @return
      */
-    List<MgtShopPageVo> pageShop(Page page, @Param("param") MgtShopPageDto mgtShopPageDto);
+    List<MgtShopPageVo> pageMgtShop(Page page, @Param("param") MgtShopPageDto mgtShopPageDto);
 
 
     /**
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 0533a2f..497cb16 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -168,7 +168,7 @@
         this.saveOrUpdate(shop);
         //商户编号
         if(mgtEditShopDto.getShopId()==null){
-            String shopNo = CodeFactoryUtil.getShopNo(shop.getShopId());
+            String shopNo = CodeFactoryUtil.getShopNo();
             shop.setShopNumber(shopNo);
         }
         //商户标签
@@ -306,8 +306,12 @@
      * @return
      */
     @Override
-    public List<MgtShopPageVo> pageShop(Page page, MgtShopPageDto mgtShopPageDto){
-        List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageShop(page, mgtShopPageDto);
+    public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto){
+        //处理标签为正则表达
+        if(StringUtils.isNotBlank(mgtShopPageDto.getShopTags())){
+            mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",","|"));
+        }
+        List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageMgtShop(page, mgtShopPageDto);
         return mgtShopPageVoList;
     }
 
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
index a04a98c..6574b9a 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
@@ -47,7 +47,7 @@
      * @param mgtShopPageDto
      * @return
      */
-    List<MgtShopPageVo> pageShop(Page page, MgtShopPageDto mgtShopPageDto);
+    List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto);
 
     /**
      * 获取商户详情
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
index 04afe94..9d4d8f4 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -283,7 +283,7 @@
         </foreach>
     </delete>
 
-    <select id="pageShop" resultType="com.ruoyi.shop.domain.vo.MgtShopPageVo">
+    <select id="pageMgtShop" resultType="com.ruoyi.shop.domain.vo.MgtShopPageVo">
         SELECT
         ts.shop_id shopId,
         ts.sign_time signTime,
@@ -356,7 +356,7 @@
             AND ts.shop_status = 2
         </if>
         <if test="param.shopTags!=null and param.shopTags!=''">
-            AND FIND_IN_SET(#{param.shopTags},ts.shop_tags) &gt; 0
+            AND tm.shop_tags REGEXP #{param.shopTags}
         </if>
         <if test="param.supportingCapacityFlag!=null and param.supportingCapacityFlag!=''">
             AND ts.supporting_capacity_flag = #{param.supportingCapacityFlag}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java
index d9728b6..caba730 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java
@@ -74,7 +74,7 @@
         strategy.setControllerMappingHyphenStyle(true);
         //表和前缀处理
         String[] table = {
-                "t_region"
+                "t_sys_staff"
         };
         strategy.setInclude(table);
         String[] tablePre = new String[]{"t_"};
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
index 043a529..4bbf234 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
@@ -7,9 +7,11 @@
 import com.ruoyi.system.domain.dto.MgtReplayStaffSuggestDto;
 import com.ruoyi.system.domain.dto.MgtStaffSuggestPageDto;
 import com.ruoyi.system.domain.dto.MgtTagStaffSuggestDto;
+import com.ruoyi.system.domain.vo.MgtDeptStaffListVo;
 import com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo;
 import com.ruoyi.system.domain.vo.MgtStaffSuggestTagVo;
 import com.ruoyi.system.service.config.StaffSuggestService;
+import com.ruoyi.system.service.staff.SysStaffService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -33,15 +35,19 @@
 public class MgtStaffController {
 
 
+
     @Resource
     private StaffSuggestService staffSuggestService;
 
-    /*@RequestMapping(value = "/listMgtDeptStaff", method = RequestMethod.POST)
+    @Resource
+    private SysStaffService sysStaffService;
+
+    @RequestMapping(value = "/listMgtDeptStaff", method = RequestMethod.POST)
     @ApiOperation(value = "获取部门员工列表")
-    public R<List<MgtDeptStaffListVo>> listMgtStaffSuggestTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
-        List<MgtStaffSuggestTagVo> mgtStaffSuggestTagVoList= staffSuggestService.listMgtStaffSuggestTag(Long.valueOf(mgtBaseGetDto.getId()));
-        return R.ok(mgtStaffSuggestTagVoList);
-    }*/
+    public R<List<MgtDeptStaffListVo>> listMgtDeptStaff() {
+        List<MgtDeptStaffListVo> mgtDeptStaffListVoList= sysStaffService.listMgtDeptStaff();
+        return R.ok(mgtDeptStaffListVoList);
+    }
 
 
     @RequestMapping(value = "/pageMgtStaffSuggest", method = RequestMethod.POST)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java
index 15e21f5..232085a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java
@@ -18,7 +18,7 @@
     @ApiModelProperty(value = "分类id 新增不传")
     private Long classId;
 
-    @ApiModelProperty(value = "分类类型")
+    @ApiModelProperty(value = "分类类型1鸿瑞堂2商品")
     private Integer classType;
 
     @ApiModelProperty(value = "分类名字")
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java
index 59fcac5..9a3b9fc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java
@@ -17,5 +17,6 @@
     @ApiModelProperty(value = "分类类型1鸿瑞堂2商品")
     private Integer classType;
 
-
+    @ApiModelProperty(value = "分类类型1鸿瑞堂2商品")
+    private String className;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java
index ed3b1d1..e6f6764 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java
@@ -15,13 +15,14 @@
 public class MgtCustomConfigDto extends MgtBaseDto {
 
     @ApiModelProperty(value = "SHOP_EMERGENCY_DEGREE:合作商任务紧急程度 " +
-            "SHOP_FOLLOW_TYPE:合作商跟进类型" +
-            "SHOP_CUSTOM_STATUS:合作商状态" +
-            "SHOP_SOURCE_CHANNEL:来源渠道" +
-            "MEMBER_SOURCE_CHANNEL:会员来源" +
-            "MEMBER_CHARACTER:会员性格" +
-            "MEMBER_LEVEL:会员等级" +
-            "MEMBER_TYPE:会员类型" +
-            "NURSE_PROBLEM:调理问题")
+            "SHOP_FOLLOW_TYPE:合作商跟进类型 " +
+            "SHOP_CUSTOM_STATUS:合作商状态 " +
+            "SHOP_SOURCE_CHANNEL:来源渠道 " +
+            "MEMBER_SOURCE_CHANNEL:会员来源 " +
+            "MEMBER_CHARACTER:会员性格 " +
+            "MEMBER_LEVEL:会员等级 " +
+            "MEMBER_TYPE:会员类型 " +
+            "NURSE_PROBLEM:调理问题 " +
+            "PLATFORM_SERVICE_PHONE:客服电话")
     private String configType;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java
new file mode 100644
index 0000000..a801ba7
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java
@@ -0,0 +1,61 @@
+package com.ruoyi.system.domain.pojo.staff;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 平台员工
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_sys_staff")
+public class SysStaff extends Model<SysStaff> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 员工id
+     */
+    @TableId("staff_id")
+    private String staffId;
+    /**
+     * 删除标记
+     */
+    @TableField("del_flag")
+    private Integer delFlag;
+    /**
+     * 用户id
+     */
+    @TableField("user_id")
+    private Integer userId;
+    /**
+     * 员工姓名
+     */
+    @TableField("staff_name")
+    private String staffName;
+    /**
+     * 员工电话
+     */
+    @TableField("staff_mobile")
+    private String staffMobile;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.staffId;
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java
index d299aa0..5b38dd1 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java
@@ -17,7 +17,7 @@
     @ApiModelProperty(value = "分类id")
     private Long classId;
 
-    @ApiModelProperty(value = "分类类型")
+    @ApiModelProperty(value = "分类类型1鸿瑞堂2商品")
     private Integer classType;
 
     @ApiModelProperty(value = "分类名字")
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java
index 1ccc9a7..f39e96e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @ClassName MgtDeptStaffListVo
  * @Description TODO
@@ -19,9 +21,7 @@
     @ApiModelProperty(value = "部门名称")
     private String deptName;
 
-    @ApiModelProperty(value = "用户id")
-    private Long userId;
+    @ApiModelProperty(value = "员工列表")
+    private List<MgtStaffListVo> mgtStaffListVoList;
 
-    @ApiModelProperty(value = "用户名称")
-    private String nickName;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java
new file mode 100644
index 0000000..6a4c6b8
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtStaffListVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/13 10:15
+ * @Version 1.0
+ */
+@Data
+public class MgtStaffListVo {
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "用户名称")
+    private String nickName;
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java
index 82f3cd8..fce1d71 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.system.domain.dto.MgtTagPageDto;
 import com.ruoyi.system.domain.vo.MgtTagPageVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -26,7 +27,7 @@
      * @param mgtTagPageDto
      * @return  List<MgtTagPageVo>
      */
-    List<MgtTagPageVo> pageTag(Page page, MgtTagPageDto mgtTagPageDto);
+    List<MgtTagPageVo> pageTag(Page page, @Param("param") MgtTagPageDto mgtTagPageDto);
 
     /**
      * @description  删除员工建议标签
@@ -35,5 +36,5 @@
      * @param suggestTag
      * @return  void
      */
-    void deleteStaffSuggestTag(String suggestTag);
+    void deleteStaffSuggestTag(@Param("suggestTag")String suggestTag);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java
new file mode 100644
index 0000000..2e7d82f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.mapper.staff;
+
+import com.ruoyi.system.domain.pojo.staff.SysStaff;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.domain.vo.MgtDeptStaffListVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平台员工 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-13
+ */
+public interface SysStaffMapper extends BaseMapper<SysStaff> {
+
+    /**
+     * @description  获取部门员工列表
+     * @author  jqs
+     * @date    2023/6/13 10:14
+     * @param
+     * @return  List<MgtDeptStaffListVo>
+     */
+    List<MgtDeptStaffListVo> listMgtDeptStaff();
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
new file mode 100644
index 0000000..e972d6b
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
@@ -0,0 +1,38 @@
+package com.ruoyi.system.service.impl.staff;
+
+import com.ruoyi.system.domain.pojo.staff.SysStaff;
+import com.ruoyi.system.domain.vo.MgtDeptStaffListVo;
+import com.ruoyi.system.mapper.staff.SysStaffMapper;
+import com.ruoyi.system.service.staff.SysStaffService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 平台员工 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-13
+ */
+@Service
+public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> implements SysStaffService {
+
+    @Resource
+    private SysStaffMapper sysStaffMapper;
+
+    /**
+     * @description  获取部门员工列表
+     * @author  jqs
+     * @date    2023/6/13 10:14
+     * @param
+     * @return  List<MgtDeptStaffListVo>
+     */
+    @Override
+    public List<MgtDeptStaffListVo> listMgtDeptStaff(){
+        return sysStaffMapper.listMgtDeptStaff();
+    }
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java
new file mode 100644
index 0000000..7c42acf
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java
@@ -0,0 +1,28 @@
+package com.ruoyi.system.service.staff;
+
+import com.ruoyi.system.domain.pojo.staff.SysStaff;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.domain.vo.MgtDeptStaffListVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平台员工 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-13
+ */
+public interface SysStaffService extends IService<SysStaff> {
+
+    /**
+     * @description  获取部门员工列表
+     * @author  jqs
+     * @date    2023/6/13 10:14
+     * @param
+     * @return  List<MgtDeptStaffListVo>
+     */
+    List<MgtDeptStaffListVo> listMgtDeptStaff();
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml
index 4fc9f48..1fe9079 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml
@@ -20,7 +20,10 @@
         class_sort classSort,
         relation_num relationNum
         FROM t_sys_classification
-        WHERE del_flag = 0 AND class_type = #{param.calssType}
+        WHERE del_flag = 0 AND class_type = #{param.classType}
+        <if test="param.className!=null and param.className !=''">
+            AND class_name LIKE CONCAT('%',#{param.className},'%')
+        </if>
     </select>
 
 </mapper>
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml
index c7ef194..3b3f25d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml
@@ -20,7 +20,7 @@
         FROM t_sys_tag
         WHERE del_flag = 0 AND tag_type = #{param.tagType}
         <if test="param.tagName!=null and param.tagName !=''">
-            AND tag_name LIKE  CONCAT('%',#{param.tagName},'%')
+            AND tag_name LIKE CONCAT('%',#{param.tagName},'%')
         </if>
         ORDER BY create_time DESC
     </select>
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml
new file mode 100644
index 0000000..ab9ad74
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml
@@ -0,0 +1,25 @@
+<?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="com.ruoyi.system.mapper.staff.SysStaffMapper">
+
+    <resultMap id="deptStaffResultMap" type="com.ruoyi.system.domain.vo.MgtDeptStaffListVo">
+        <result column="deptId" property="deptId"/>
+        <result column="deptName" property="deptName"/>
+        <collection property="mgtStaffListVoList" ofType="com.ruoyi.system.domain.vo.MgtStaffListVo">
+            <result column="userId" property="userId"/>
+            <result column="nickName" property="nickName"/>
+        </collection>
+    </resultMap>
+
+    <select id="listMgtDeptStaff" resultMap="deptStaffResultMap">
+        SELECT
+        sd.dept_id deptId,
+        sd.dept_name deptName,
+        su.user_id userId,
+        su.nick_name nickName
+        FROM sys_dept sd
+        LEFT JOIN sys_user su ON sd.dept_id = su.dept_id
+        WHERE sd.del_flag = 0 AND su.del_flag = 0
+    </select>
+
+</mapper>

--
Gitblit v1.7.1