MySQL查询大于90未登录用户信息SQL,配合Springboot task开发的定时清理过期用户信息

查询大于等于90天未登录用户id的SQL语句:

SELECT
	id 
FROM
	wl_user 
WHERE
	DATE_SUB( CURDATE( ), INTERVAL 90 DAY ) >= last_login_time

SpringBoot Task:

package cn.hsm.graduate.task;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import cn.hsm.graduate.service.WlUserService;

/**
 * SpringTask定时任务类
 * @ClassName:  RegularCleanManagerTask   
 * @Description:TODO 定时清理超过三个月未登录的管理员账号
 * @author: Huang
 * @date:   2018年12月10日 上午9:56:51   
 *     
 * @Copyright: 2018 
 * 注意:本内容仅限于黄世民毕业设计使用,禁止外泄以及用于其他的商业目的
 */
@Component
public class RegularCleanManagerTask {

	@Autowired
	private WlUserService wlUserService;
	/**
	 * 一周定时清理三个月未登录的管理员信息(每周一上午10点15分执行任务)
	 */
	@Scheduled(cron="0 15 10 ? * MON")
	public void cleanManagerTask(){
		wlUserService.cleanManagerTask();
	}
}

服务接口:

/**
	 * 定时任务,每隔一周定时清理三个月未登录的管理员信息
	 */
	public void cleanManagerTask();

服务接口实现类

@Override
	public void cleanManagerTask() {
		//查询3个月未登录的用户信息
		List<Integer> ids=wlUserMapper.findThreeMonthNotLoginUsers();
		if (ids.size()>0) {
			for (Integer id : ids) {
				//根据id删除用户信息
				wlUserMapper.deleteByPrimaryKey(id);
			}
		}else {
			throw new MyException("没有用户超过三个月未登录!");
		}
		
	}

Mapper接口类:

/**
	 * 查询3个月未登录的用户信息
	 * @return 
	 */
	List<Integer> findThreeMonthNotLoginUsers();

Mapper.xml

 <select id="findThreeMonthNotLoginUsers" resultType="Integer">
	  SELECT
		id 
	FROM
		wl_user 
	WHERE
		DATE_SUB( CURDATE( ), INTERVAL 90 DAY ) >= last_login_time
  </select>

猜你喜欢

转载自blog.csdn.net/weixin_36964056/article/details/84936050