[MySQL]1.查詢大於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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章