package com.cy.pj.activity.service.impl;

import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.cy.pj.activity.dao.ActivityDao;
import com.cy.pj.activity.pojo.Activity;
import com.cy.pj.activity.service.ActivityService;

@Service // 扩占功能
public class ActivityServiceImpl implements ActivityService {
    @Autowired
    private ActivityDao activityDao;

    @Override
    public List<Activity> findActivitys() {
        // TODO Auto-generated method stub
        return activityDao.findActivitys();
    }

    @Override
    public int saveObject(Activity entity) {
        // TODO Auto-generated method stub
        int rows= activityDao.insertObject(entity);
        // 希望时间到了(endTime)自动修改活动状态
        // 解决方案:基于任务调度去实现任务调度-基于时间的设计自动执行任务)
        // 1借助java中的Timer对象去实现
        // ###任务###调度任务###调度任务###调度任务###调度任务调度任务调度任务调度任务调度
        Timer timer = new Timer();// 此对象创建时会在底层启动一个线程。通过此县城对时间进行监控
        // 里面的类型是timerTask类型所以要newTimerTask
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                // 此位置修改活动的状态信息
                System.out.println("开始任务调度的执行");
                //经过映射获取到了id的值直接getId就行了
                activityDao.updateState(entity.getId());
                timer.cancel();//结束调度任务//cancel砍搜
            }
        }, entity.getEndTime());// 通过entity调用getEndTime方法
        // 在此位置修改活动的状态信息

        // 2借助java线程池中的任务调度对象去实现(ScheduledExecutorService)去实现
        // 3借助第三方框架去实现

        return rows;// 直接返回这个值了
    }
    // ###任务###调度任务###调度任务###调度任务###调度任务调度任务调度任务调度任务调度
}

CV战士
7 声望1 粉丝