查詢大於等於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>