From 39be10f603a0f8cb2e1a69ea8a1f5f8cb83303ff Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 29 五月 2023 17:19:20 +0800
Subject: [PATCH] 微调

---
 ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyExpirationEventMessageListener.java |   46 +++++
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/DelayTaskMapper.xml                                      |    6 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/DelayTaskServiceImpl.java              |   20 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java             |   13 +
 ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyspaceEventMessageListener.java      |   76 ++++++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java                           |    6 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/DelayTaskMapper.java                         |   16 +
 ruoyi-modules/ruoyi-member/pom.xml                                                                                   |    6 
 ruoyi-modules/ruoyi-order/pom.xml                                                                                    |    5 
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml                                         |   54 ++++++
 ruoyi-modules/ruoyi-goods/pom.xml                                                                                    |    5 
 ruoyi-modules/ruoyi-shop/pom.xml                                                                                     |    5 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/DelayTask.java                          |   59 ++++++
 ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/RedisListener.java                     |   65 +++++++
 ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java                                              |    4 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/DelayTaskService.java                       |   17 +
 ruoyi-modules/ruoyi-system/pom.xml                                                                                   |    7 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java                             |    2 
 ruoyi-api/ruoyi-api-system/pom.xml                                                                                   |   11 -
 ruoyi-common/ruoyi-common-core/pom.xml                                                                               |    5 
 ruoyi-common/ruoyi-common-redis/pom.xml                                                                              |   14 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java                             |   41 ++++
 22 files changed, 442 insertions(+), 41 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/pom.xml b/ruoyi-api/ruoyi-api-system/pom.xml
index ea905b5..6e4a0e8 100644
--- a/ruoyi-api/ruoyi-api-system/pom.xml
+++ b/ruoyi-api/ruoyi-api-system/pom.xml
@@ -23,17 +23,6 @@
             <artifactId>ruoyi-common-core</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <optional>true</optional>
-        </dependency>
-
-        <!-- lombok -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.baomidou</groupId>
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java
index d23403a..3f8c604 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java
@@ -53,14 +53,14 @@
         if (retryCount >= Integer.valueOf(maxRetryCount).intValue())
         {
             String errMsg = String.format("密码输入错误%s次,帐户锁定%s分钟", maxRetryCount, lockTime);
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL,errMsg);
+            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL,errMsg,Constants.FROM_SYSTEM);
             throw new ServiceException(errMsg);
         }
 
         if (!matches(user, password))
         {
             retryCount = retryCount + 1;
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("密码输入错误%s次", retryCount));
+            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("密码输入错误%s次", retryCount),Constants.FROM_SYSTEM);
             redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
             throw new ServiceException("用户不存在/密码错误");
         }
diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml
index a6d459e..ed4df6a 100644
--- a/ruoyi-common/ruoyi-common-core/pom.xml
+++ b/ruoyi-common/ruoyi-common-core/pom.xml
@@ -113,6 +113,11 @@
             <artifactId>swagger-annotations</artifactId>
         </dependency>
 
+        <!-- lombok -->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
 
     </dependencies>
 
diff --git a/ruoyi-common/ruoyi-common-redis/pom.xml b/ruoyi-common/ruoyi-common-redis/pom.xml
index 97c986b..2fd851f 100644
--- a/ruoyi-common/ruoyi-common-redis/pom.xml
+++ b/ruoyi-common/ruoyi-common-redis/pom.xml
@@ -21,6 +21,7 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-redis</artifactId>
+            <version>3.1.0</version>
         </dependency>
         
         <!-- RuoYi Common Core-->
@@ -28,6 +29,17 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-common-core</artifactId>
         </dependency>
-        
+
+        <!-- redis分布式锁框架 -->
+        <dependency>
+            <groupId>org.redisson</groupId>
+            <artifactId>redisson</artifactId>
+            <version>3.19.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyExpirationEventMessageListener.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyExpirationEventMessageListener.java
new file mode 100644
index 0000000..8d0be22
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyExpirationEventMessageListener.java
@@ -0,0 +1,46 @@
+//
+// Source code recreated from a .class file by IntelliJ IDEA
+// (powered by FernFlower decompiler)
+//
+
+package com.ruoyi.common.redis.listener;
+
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.context.ApplicationEventPublisherAware;
+import org.springframework.data.redis.connection.Message;
+import org.springframework.data.redis.core.RedisKeyExpiredEvent;
+import org.springframework.data.redis.listener.PatternTopic;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+import org.springframework.data.redis.listener.Topic;
+import org.springframework.lang.Nullable;
+
+public class KeyExpirationEventMessageListener extends KeyspaceEventMessageListener implements ApplicationEventPublisherAware {
+    private static final Topic KEYEVENT_EXPIRED_TOPIC = new PatternTopic("__keyevent@*__:expired");
+    @Nullable
+    private ApplicationEventPublisher publisher;
+
+    public KeyExpirationEventMessageListener(RedisMessageListenerContainer listenerContainer) {
+        super(listenerContainer);
+    }
+
+    @Override
+    protected void doRegister(RedisMessageListenerContainer listenerContainer) {
+        listenerContainer.addMessageListener(this, KEYEVENT_EXPIRED_TOPIC);
+    }
+
+    @Override
+    protected void doHandleMessage(Message message) {
+        this.publishEvent(new RedisKeyExpiredEvent(message.getBody()));
+    }
+
+    protected void publishEvent(RedisKeyExpiredEvent event) {
+        if (this.publisher != null) {
+            this.publisher.publishEvent(event);
+        }
+
+    }
+
+    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
+        this.publisher = applicationEventPublisher;
+    }
+}
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyspaceEventMessageListener.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyspaceEventMessageListener.java
new file mode 100644
index 0000000..e4c2047
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/KeyspaceEventMessageListener.java
@@ -0,0 +1,76 @@
+//
+// Source code recreated from a .class file by IntelliJ IDEA
+// (powered by FernFlower decompiler)
+//
+
+package com.ruoyi.common.redis.listener;
+
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.data.redis.connection.Message;
+import org.springframework.data.redis.connection.MessageListener;
+import org.springframework.data.redis.connection.RedisConnection;
+import org.springframework.data.redis.listener.PatternTopic;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+import org.springframework.data.redis.listener.Topic;
+import org.springframework.lang.Nullable;
+import org.springframework.util.Assert;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+
+import java.util.Properties;
+
+public abstract class KeyspaceEventMessageListener implements MessageListener, InitializingBean, DisposableBean {
+    private static final Topic TOPIC_ALL_KEYEVENTS = new PatternTopic("__keyevent@*");
+    private final RedisMessageListenerContainer listenerContainer;
+    private String keyspaceNotificationsConfigParameter = "EA";
+
+    public KeyspaceEventMessageListener(RedisMessageListenerContainer listenerContainer) {
+        Assert.notNull(listenerContainer, "RedisMessageListenerContainer to run in must not be null!");
+        this.listenerContainer = listenerContainer;
+    }
+
+    @Override
+    public void onMessage(Message message, @Nullable byte[] pattern) {
+        if (message != null && !ObjectUtils.isEmpty(message.getChannel()) && !ObjectUtils.isEmpty(message.getBody())) {
+            this.doHandleMessage(message);
+        }
+    }
+
+    protected abstract void doHandleMessage(Message var1);
+
+    public void init() {
+        if (StringUtils.hasText(this.keyspaceNotificationsConfigParameter)) {
+            RedisConnection connection = this.listenerContainer.getConnectionFactory().getConnection();
+
+            try {
+                Properties config = connection.getConfig("notify-keyspace-events");
+                if (!StringUtils.hasText(config.getProperty("notify-keyspace-events"))) {
+                    connection.setConfig("notify-keyspace-events", this.keyspaceNotificationsConfigParameter);
+                }
+            } finally {
+                connection.close();
+            }
+        }
+
+//        this.doRegister(this.listenerContainer);
+    }
+
+    protected void doRegister(RedisMessageListenerContainer container) {
+        this.listenerContainer.addMessageListener(this, TOPIC_ALL_KEYEVENTS);
+    }
+
+    @Override
+    public void destroy() throws Exception {
+        this.listenerContainer.removeMessageListener(this);
+    }
+
+    public void setKeyspaceNotificationsConfigParameter(String keyspaceNotificationsConfigParameter) {
+        this.keyspaceNotificationsConfigParameter = keyspaceNotificationsConfigParameter;
+    }
+
+    @Override
+    public void afterPropertiesSet() throws Exception {
+        this.init();
+    }
+}
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/RedisListener.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/RedisListener.java
new file mode 100644
index 0000000..aafd037
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/listener/RedisListener.java
@@ -0,0 +1,65 @@
+package com.ruoyi.common.redis.listener;
+
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.connection.Message;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class RedisListener extends KeyExpirationEventMessageListener {
+
+    private RedisTemplate<String, Object> redisTemplate;
+
+
+    public RedisListener(RedisMessageListenerContainer listenerContainer,
+                         RedisTemplate redisTemplate) {
+        super(listenerContainer);
+        this.redisTemplate=redisTemplate;
+    }
+
+    @Override
+    public void onMessage(Message message, byte[] pattern) {
+        // 用户做自己的业务处理即可,注意message.toString()可以获取失效的key
+        String expiredKey = message.toString();
+        log.info("RedisListener key={}", expiredKey);
+        String time= DateUtils.dateTime(new Date());
+        try {
+            if(StringUtils.isNotBlank(expiredKey)){
+                if(expiredKey.contains("-")){
+                    String[] split = expiredKey.split("-");
+                    String operation=split[0];
+
+                    //删除失效的key
+                    redisTemplate.delete(expiredKey);
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    public <T> T getAndSet(final String key, T value){
+        T oldValue=null;
+        try {
+            ValueOperations<String, Object> operations = redisTemplate.opsForValue();
+            oldValue =(T) operations.getAndSet(key, value);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return oldValue;
+    }
+
+    //延时任务表
+
+
+
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/pom.xml b/ruoyi-modules/ruoyi-goods/pom.xml
index 7a0746c..29403e7 100644
--- a/ruoyi-modules/ruoyi-goods/pom.xml
+++ b/ruoyi-modules/ruoyi-goods/pom.xml
@@ -78,11 +78,6 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
-        <!-- lombok -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.baomidou</groupId>
diff --git a/ruoyi-modules/ruoyi-member/pom.xml b/ruoyi-modules/ruoyi-member/pom.xml
index c194e48..f487c19 100644
--- a/ruoyi-modules/ruoyi-member/pom.xml
+++ b/ruoyi-modules/ruoyi-member/pom.xml
@@ -78,11 +78,7 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
-        <!-- lombok -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
+
 
         <dependency>
             <groupId>com.baomidou</groupId>
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
index c7250a9..143a468 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
@@ -2,9 +2,12 @@
 
 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.MgtMemberPageDto;
+import com.ruoyi.member.domain.vo.MerMemberInfoVo;
 import com.ruoyi.member.domain.vo.MgtMemberPageVo;
 import com.ruoyi.member.service.member.MemberService;
+import com.ruoyi.system.api.domain.dto.MerBaseGetDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +37,7 @@
 
 
     @RequestMapping(value = "/pageMgtMember", method = RequestMethod.POST)
-    @ApiOperation(value = "分页获取用户列表")
+    @ApiOperation(value = "分页获取会员列表")
     public R<Page<MgtMemberPageVo>> pageMgtMember(@RequestBody MgtMemberPageDto mgtMemberPageDto) {
         Page<MgtMemberPageVo> page = new Page<>();
         page.setSize(mgtMemberPageDto.getPageSize());
@@ -42,4 +45,12 @@
         List<MgtMemberPageVo> mgtShopPageVoList = memberService.pageMgtMember(page,mgtMemberPageDto);
         return R.ok(page.setRecords(mgtShopPageVoList));
     }
+
+    @RequestMapping(value = "/editMemberRelationShop", method = RequestMethod.POST)
+    @ApiOperation(value = "修改会员关联商户")
+    public R<MerMemberInfoVo> getMerMemberInfo(@RequestBody MerBaseGetDto merBaseGetDto) {
+        Long userId = SecurityUtils.getUserId();
+        MerMemberInfoVo merMemberInfo = memberService.getMerMemberInfo(Long.valueOf(merBaseGetDto.getId()));
+        return R.ok(merMemberInfo);
+    }
 }
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 8f2dba3..7b94837 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
@@ -69,6 +69,12 @@
     @ApiModelProperty(value = "活跃度id")
     private Long activenessId;
 
+    @ApiModelProperty(value = "活跃度开始时间",hidden = true)
+    private String actStartDate;
+
+    @ApiModelProperty(value = "活跃度结束时间",hidden = true)
+    private String actEndDate;
+
     @ApiModelProperty(value = "开始消费次数")
     private Integer startPayCount;
 
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 034f741..f98beda 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
@@ -117,6 +117,47 @@
     @TableField("update_user_id")
     private Long updateUserId;
 
+    /**
+     * 优惠券来源1平台2商户
+     */
+    @TableField("coupon_from")
+    private Integer coupon_from;
+
+    /**
+     * 商户id
+     */
+    @TableField("shop_id")
+    private Long shop_id;
+
+    /**
+     * 关联商品ids
+     */
+    @TableField("rel_goods_ids")
+    private String rel_goods_ids;
+
+    /**
+     * 审核状态1申请中2审核通过3审核拒绝
+     */
+    @TableField("audit_status")
+    private Integer audit_status;
+
+    /**
+     * 审核理由
+     */
+    @TableField("audit_reason")
+    private String audit_reason;
+
+    /**
+     * 关联类型
+     */
+    @TableField("relation_type")
+    private Integer relationType;
+
+    /**
+     * 关联活动id
+     */
+    @TableField("relation_activity_id")
+    private String relationActivityId;
 
     @Override
     protected Serializable pkVal() {
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java
index 06f6c73..9eced00 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java
@@ -66,7 +66,7 @@
     @ApiModelProperty(value = "客户类型")
     private String goodsType;
 
-    @ApiModelProperty(value = "客户类型")
+    @ApiModelProperty(value = "关联商户名称")
     private String relationShopName;
 
     @ApiModelProperty(value = "积分")
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 2f03dc5..fce68ce 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
@@ -218,6 +218,60 @@
         <if test="param.keyword != null and param.keyword != ''">
             AND (tm.member_no LIKE CONCAT('%',#{param.keyword},'%') OR tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.nick_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(tm.member_nurse,#{param.keyword}))
         </if>
+        <if test="param.belongDistrict != null and param.belongDistrict != ''">
+            AND tm.belong_district = #{param.belongDistrict}
+        </if>
+        <if test="param.createTime != null and param.createTime != ''">
+            AND tm.create_time = #{param.createTime}
+        </if>
+        <if test="param.lastPayTime != null and param.lastPayTime != ''">
+            AND tmt.last_pay_time = #{param.lastPayTime}
+        </if>
+        <if test="param.memberFlag != null and param.memberFlag != ''">
+            AND tmt.binding_flag = #{param.memberFlag}
+        </if>
+        <if test="param.goodsType != null and param.goodsType != ''">
+            AND FIND_IN_SET(tm.goods_type,#{param.goodsType})
+        </if>
+        <if test="param.relationShopId != null and param.relationShopId != ''">
+            AND tm.relation_shop_id = #{param.relationShopId}
+        </if>
+        <if test="param.memberFrom != null and param.memberFrom != ''">
+            AND tm.customer_source = #{param.memberFrom}
+        </if>
+        <if test="param.referrer != null and param.referrer != ''">
+            AND tm.referrer = #{param.referrer}
+        </if>
+        <if test="param.gender != null">
+            AND tm.gender = #{param.gender}
+        </if>
+        <if test="param.startBirthday != null and param.startBirthday != ''">
+            AND tm.birthday &gt;= #{param.startBirthday}
+        </if>
+        <if test="param.endBirthday != null and param.endBirthday != ''">
+            AND tm.birthday &lt;= #{param.endBirthday}
+        </if>
+        <if test="param.startIntegral != null and param.startIntegral != ''">
+            AND tmt.total_integral &gt;= #{param.startIntegral}
+        </if>
+        <if test="param.endIntegral != null and param.endIntegral != ''">
+            AND tmt.total_integral &lt;= #{param.endIntegral}
+        </if>
+        <if test="param.actStartDate != null and param.actStartDate != ''">
+            AND tmt.last_pay_time &gt;= #{param.actStartDate}
+        </if>
+        <if test="param.actEndDate != null and param.actEndDate != ''">
+            AND tmt.last_pay_time &lt;= #{param.actEndDate}
+        </if>
+        <if test="param.startPayCount != null and param.startPayCount != ''">
+            AND tmt.total_pay_count &gt;= #{param.startPayCount}
+        </if>
+        <if test="param.endPayCount != null and param.endPayCount != ''">
+            AND tmt.total_pay_count &lt;= #{param.endPayCount}
+        </if>
+        <if test="param.memberTag != null and param.memberTag != ''">
+            AND FIND_IN_SET( tm.user_tags,#{param.memberTag})
+        </if>
     </select>
     
 </mapper>
diff --git a/ruoyi-modules/ruoyi-order/pom.xml b/ruoyi-modules/ruoyi-order/pom.xml
index a896f97..8c16e9c 100644
--- a/ruoyi-modules/ruoyi-order/pom.xml
+++ b/ruoyi-modules/ruoyi-order/pom.xml
@@ -78,11 +78,6 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
-        <!-- lombok -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.baomidou</groupId>
diff --git a/ruoyi-modules/ruoyi-shop/pom.xml b/ruoyi-modules/ruoyi-shop/pom.xml
index 1962773..9d53192 100644
--- a/ruoyi-modules/ruoyi-shop/pom.xml
+++ b/ruoyi-modules/ruoyi-shop/pom.xml
@@ -78,11 +78,6 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
-        <!-- lombok -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.baomidou</groupId>
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index 0b31cc1..87bed2c 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -78,11 +78,6 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
-        <!-- lombok -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.baomidou</groupId>
@@ -122,6 +117,8 @@
             <version>5.8.2</version>
             <scope>test</scope>
         </dependency>
+
+
     </dependencies>
 
     <build>
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/DelayTask.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/DelayTask.java
new file mode 100644
index 0000000..187f2db
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/DelayTask.java
@@ -0,0 +1,59 @@
+package com.ruoyi.system.domain.pojo.config;
+
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_delay_task")
+public class DelayTask extends Model<DelayTask> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 延时任务id
+     */
+    @TableId(value = "task_id", type = IdType.AUTO)
+    private Integer taskId;
+    /**
+     * 删除标记
+     */
+    @TableField("del_flag")
+    private Integer delFlag;
+    /**
+     * 键值
+     */
+    @TableField("redis_key")
+    private String redisKey;
+    /**
+     * 执行时间
+     */
+    @TableField("end_time")
+    private Date endTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.taskId;
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/DelayTaskMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/DelayTaskMapper.java
new file mode 100644
index 0000000..f35adf5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/DelayTaskMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper.config;
+
+import com.ruoyi.system.domain.pojo.config.DelayTask;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-05-29
+ */
+public interface DelayTaskMapper extends BaseMapper<DelayTask> {
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/DelayTaskService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/DelayTaskService.java
new file mode 100644
index 0000000..f996d60
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/DelayTaskService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.service.config;
+
+import com.ruoyi.system.domain.pojo.config.DelayTask;
+import com.baomidou.mybatisplus.extension.service.IService;
+;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-05-29
+ */
+public interface DelayTaskService extends IService<DelayTask> {
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/DelayTaskServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/DelayTaskServiceImpl.java
new file mode 100644
index 0000000..6b53f85
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/DelayTaskServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl.config;
+
+import com.ruoyi.system.domain.pojo.config.DelayTask;
+import com.ruoyi.system.mapper.config.DelayTaskMapper;
+import com.ruoyi.system.service.config.DelayTaskService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-05-29
+ */
+@Service
+public class DelayTaskServiceImpl extends ServiceImpl<DelayTaskMapper, DelayTask> implements DelayTaskService {
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/DelayTaskMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/DelayTaskMapper.xml
new file mode 100644
index 0000000..5ff1188
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/DelayTaskMapper.xml
@@ -0,0 +1,6 @@
+<?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.config.DelayTaskMapper">
+
+
+</mapper>

--
Gitblit v1.7.1