电商项目开发3----定时任务

1.applicationContext.xml  添加约束

xmlns:task="http://www.springframework.org/schema/task"
 http://www.springframework.org/schema/task 
 http://www.springframework.org/schema/task/spring-task-4.3.xsd">



<!--放开定时任务配置  -->
    <task:annotation-driven />

2. 新建包 com.rb.job

3. 包内添加TaskJob.class

package com.rb.job;

import java.util.Date;

import org.apache.tools.ant.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.rb.service.UserService;


//定时任务类
@Component
public class TaskJob {
	@Autowired
	UserService userService;
	
	@Scheduled(cron="0/10 * * * * ?")
	public void userGrade(){
		System.out.println("定时器执行时间:" + DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
	    userService.updateGrade();
	}
       
}

4.user表添加属性  如图所示:

5.User.java

    
    private Integer grade;//级别
    private Double total;//消费总金额
    private Double account;//账户余额
    
    public Integer getGrade() {
		return grade;
	}
	public void setGrade(Integer grade) {
		this.grade = grade;
	}
	public Double getTotal() {
		return total;
	}
	public void setTotal(Double total) {
		this.total = total;
	}
	public Double getAccount() {
		return account;
	}
	public void setAccount(Double account) {
		this.account = account;
	}
	private String realname;
    
  
    

6.UserService   添加新方法

    public User findById(Integer id);
	public void updateGrade();

UserServiceImpl.java

@Override
	public User findById(Integer id) {
		
		return userDao.findById(id);
	}

	@Override
	public void updateGrade() {
		//会员等级
		List<Map<String,Object>> gradeList = new ArrayList<Map<String,Object>>();
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("grade", "1");
		map.put("total", "0");
		gradeList.add(map);
		
	    map = new HashMap<String, Object>();
		map.put("grade", "2");
		map.put("total", "5000");
		gradeList.add(map);
		
		map = new HashMap<String, Object>();
		map.put("grade", "3");
		map.put("total", "20000");
		gradeList.add(map);
		
		
		//查询符合会员等级升级条件的用户List<User>
		List<User> users = userDao.findByTotal(gradeList);
		
		if (users != null && users.size()>0) {
			userDao.updateGrade(users);
		}
		//更新这些用户级别+1
		
	}

 7. UserDao.java

	public User findById(Integer id);
	public void updateGrade(List<User> users);
	public List<User> findByTotal(List<Map<String, Object>> gradeList);

猜你喜欢

转载自blog.csdn.net/Rziyi/article/details/89153461