定时生日提醒功能

整体项目结构:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

 

<groupId>UserEchart</groupId>

<artifactId>fly</artifactId>

<version>1.0-SNAPSHOT</version>

<packaging>war</packaging>

 

<name>fly Maven Webapp</name>

<!-- FIXME change it to the project's website -->

<url>http://www.example.com</url>

 

<properties>

 

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<maven.compiler.encoding>UTF-8</maven.compiler.encoding>

 

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<spring.version>5.0.2.RELEASE</spring.version>

<mybatis.version>3.4.5</mybatis.version>

</properties>

 

<dependencies>

 

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->

<!-- alipay -->

<dependency>

<groupId>commons-codec</groupId>

<artifactId>commons-codec</artifactId>

<version>1.10</version>

</dependency>

<dependency>

<groupId>commons-configuration</groupId>

<artifactId>commons-configuration</artifactId>

<version>1.10</version>

</dependency>

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.1.1</version>

</dependency>

<dependency>

<groupId>com.google.zxing</groupId>

<artifactId>core</artifactId>

<version>2.1</version>

</dependency>

<dependency>

<groupId>com.google.code.gson</groupId>

<artifactId>gson</artifactId>

<version>2.7</version>

</dependency>

<dependency>

<groupId>org.hamcrest</groupId>

<artifactId>hamcrest-core</artifactId>

<version>1.3</version>

</dependency>

 

<!-- Spring -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>commons-lang</groupId>

<artifactId>commons-lang</artifactId>

<version>2.6</version>

</dependency>

 

<!--<dependency>-->

<!--<groupId>net.sourceforge.jexcelapi</groupId>-->

<!--<artifactId>jxl</artifactId>-->

<!--<version>2.6.12</version>-->

<!--</dependency>-->

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>${spring.version}</version>

<scope>test</scope>

</dependency>

<!-- mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>${mybatis.version}</version>

</dependency>

<!-- mybatis-spring -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.3.0</version>

</dependency>

 

<!-- MySQL驱动 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.38</version>

<scope>runtime</scope>

</dependency>

<!-- druid连接池 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.26</version>

</dependency>

 

<!-- aspectJ织入 -->

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

<version>1.8.7</version>

</dependency>

 

<!-- JSON处理 -->

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.9.5</version>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.2.41</version>

</dependency>

 

<!-- JUnit4测试工具 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

 

<!-- Servlet-API -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.0.1</version>

<scope>provided</scope>

</dependency>

 

 

<!-- JSTL标签库 -->

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

 

 

<!-- 日志 -->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.7.21</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>1.7.21</version>

</dependency>

 

 

 

<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->

<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->

<dependency>

<groupId>com.alipay.sdk</groupId>

<artifactId>alipay-sdk-java</artifactId>

<version>3.0.0</version>

</dependency>

 

 

<!-- lombok插件 -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.16.6</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>org.testng</groupId>

<artifactId>testng</artifactId>

<version>RELEASE</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>RELEASE</version>

<scope>compile</scope>

</dependency>

 

<dependency>

<groupId>org.testng</groupId>

<artifactId>testng</artifactId>

<version>RELEASE</version>

<scope>compile</scope>

</dependency>

 

<!-- https://mvnrepository.com/artifact/activation/activation -->

<dependency>

<groupId>activation</groupId>

<artifactId>activation</artifactId>

<version>1.0.2</version>

</dependency>

 

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-email</artifactId>

<version>1.4</version>

</dependency>

 

<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->

<dependency>

<groupId>javax.mail</groupId>

<artifactId>javax.mail-api</artifactId>

<version>1.4.4</version>

</dependency>

 

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>RELEASE</version>

<scope>compile</scope>

</dependency>

 

<!-- lucene -->

<dependency>

<groupId>org.apache.lucene</groupId>

<artifactId>lucene-core</artifactId>

<version>4.10.4</version>

</dependency>

<!-- lucene高亮相关的包 -->

<dependency>

<groupId>org.apache.lucene</groupId>

<artifactId>lucene-highlighter</artifactId>

<version>4.10.4</version>

</dependency>

<!-- IK -->

<dependency>

<groupId>com.janeluo</groupId>

<artifactId>ikanalyzer</artifactId>

<version>2012_u6</version>

</dependency>

<dependency>

<groupId>org.apache.lucene</groupId>

<artifactId>lucene-queryparser</artifactId>

<version>4.10.4</version>

</dependency>

 

<!--使用mybatis分页插件-->

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->

<dependency>

<groupId>com.github.pagehelper</groupId>

<artifactId>pagehelper</artifactId>

<version>5.1.8</version>

</dependency>

 

<!-- jsoupHtmlUnit爬虫包-->

<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->

<dependency>

<groupId>org.jsoup</groupId>

<artifactId>jsoup</artifactId>

<version>1.11.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit -->

<dependency>

<groupId>net.sourceforge.htmlunit</groupId>

<artifactId>htmlunit</artifactId>

<version>2.33</version>

</dependency>

 

<!--获取请求头的工具类-->

<!-- https://mvnrepository.com/artifact/eu.bitwalker/UserAgentUtils -->

<dependency>

<groupId>eu.bitwalker</groupId>

<artifactId>UserAgentUtils</artifactId>

<version>1.21</version>

</dependency>

 

<!-- ehcache核心jar -->

<dependency>

<groupId>net.sf.ehcache</groupId>

<artifactId>ehcache-core</artifactId>

<version>2.6.11</version>

</dependency>

<!-- MyBatisehcache整合jar -->

<dependency>

<groupId>org.mybatis.caches</groupId>

<artifactId>mybatis-ehcache</artifactId>

<version>1.1.0</version>

</dependency>

<dependency>

<groupId>cglib</groupId>

<artifactId>cglib</artifactId>

<version>2.2.2</version>

</dependency>

 

<!--ECharts工具类-->

<dependency>

<groupId>com.github.abel533</groupId>

<artifactId>ECharts</artifactId>

<version>3.0.0.2</version>

</dependency>

 

<dependency>

<groupId>commons-dbutils</groupId>

<artifactId>commons-dbutils</artifactId>

<version>1.7</version>

</dependency>

<!-- 地理位置工具类-->

<dependency>

<groupId>com.maxmind.geoip2</groupId>

<artifactId>geoip2</artifactId>

<version>2.8.1</version>

</dependency>

 

<!--标签转换工具类-->

<dependency>

<groupId>com.0opslab</groupId>

<artifactId>opslabJutil</artifactId>

<version>1.0.8</version>

</dependency>

 

</dependencies>

<build>

 

<plugins>

 

<!--Java编译器插件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.8</source>

<target>1.8</target>

<encoding>UTF-8</encoding>

<compilerArguments>

<extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>

</compilerArguments>

</configuration>

</plugin>

<plugin>

<groupId>org.mybatis.generator</groupId>

<artifactId>mybatis-generator-maven-plugin</artifactId>

<version>1.3.2</version>

<configuration>

<configurationFile>src/main/resources/generatorConfig.xml

</configurationFile>

<verbose>true</verbose>

<overwrite>false</overwrite>

</configuration>

<dependencies>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.38</version>

<scope>runtime</scope>

</dependency>

</dependencies>

</plugin>

 

<!-- 添加一个tomcat插件 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<configuration>

<!-- tomcat启动的端口 -->

<port>80</port>

<!-- 应用的上下文路径 -->

<path>/</path>

<!--解决中文乱码-->

<uriEncoding>UTF-8</uriEncoding>

</configuration>

<!-- 在打包的时候运行这个容器 -->

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>run</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

</project>

 

 

 

 

User类

package fly.domain;

 

import java.util.Date;

 

public class User {

private Long id;

 

private String password;

 

private String phone;

 

private String sex;

 

private String birthday;

 

private Date createtime;

 

public Long getId() {

return id;

}

 

public void setId(Long id) {

this.id = id;

}

 

public String getPassword() {

return password;

}

 

public void setPassword(String password) {

this.password = password == null ? null : password.trim();

}

 

public String getPhone() {

return phone;

}

 

public void setPhone(String phone) {

this.phone = phone == null ? null : phone.trim();

}

 

public String getSex() {

return sex;

}

 

public void setSex(String sex) {

this.sex = sex == null ? null : sex.trim();

}

 

public String getBirthday() {

return birthday;

}

 

public void setBirthday(String birthday) {

this.birthday = birthday == null ? null : birthday.trim();

}

 

public Date getCreatetime() {

return createtime;

}

 

public void setCreatetime(Date createtime) {

this.createtime = createtime;

}

}

 

 

UserMapper接口

package fly.mapper;

 

import fly.domain.User;

import java.util.List;

 

public interface UserMapper {

int deleteByPrimaryKey(Long id);

 

int insert(User record);

 

User selectByPrimaryKey(Long id);

 

List<User> selectAll();

 

int updateByPrimaryKey(User record);

}

 

 

 

 

IUserService接口

package fly.service;

 

import fly.domain.User;

 

import java.util.List;

 

public interface IUserService {

int deleteByPrimaryKey(Long id);

 

int insert(User record);

 

User selectByPrimaryKey(Long id);

 

List<User> selectAll();

 

int updateByPrimaryKey(User record);

}

 

 

 

UserServiceImpl实现类

package fly.service.impl;

 

import fly.domain.User;

import fly.mapper.UserMapper;

import fly.service.IUserService;

import org.apache.ibatis.plugin.Signature;

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

import org.springframework.stereotype.Service;

 

import java.util.List;

@Service

public class UserServiceImpl implements IUserService {

@Autowired

private UserMapper userMapper;

@Override

public int deleteByPrimaryKey(Long id) {

return userMapper.deleteByPrimaryKey(id);

}

 

@Override

public int insert(User record) {

return userMapper.insert(record);

}

 

@Override

public User selectByPrimaryKey(Long id) {

return userMapper.selectByPrimaryKey(id);

}

 

@Override

public List<User> selectAll() {

return userMapper.selectAll();

}

 

@Override

public int updateByPrimaryKey(User record) {

return userMapper.updateByPrimaryKey(record);

}

}

 

 

 

 

UserMapper资源文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="fly.mapper.UserMapper" >

<resultMap id="BaseResultMap" type="fly.domain.User" >

<id column="id" property="id" jdbcType="BIGINT" />

<result column="password" property="password" jdbcType="VARCHAR" />

<result column="phone" property="phone" jdbcType="VARCHAR" />

<result column="sex" property="sex" jdbcType="VARCHAR" />

<result column="birthday" property="birthday" jdbcType="VARCHAR" />

<result column="createTime" property="createtime" jdbcType="TIMESTAMP" />

</resultMap>

<delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >

delete from user

where id = #{id,jdbcType=BIGINT}

</delete>

<insert id="insert" parameterType="fly.domain.User" useGeneratedKeys="true" keyProperty="id" >

insert into user (password, phone, sex,

birthday, createTime)

values (#{password,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR},

#{birthday,jdbcType=VARCHAR}, #{createtime,jdbcType=TIMESTAMP})

</insert>

<update id="updateByPrimaryKey" parameterType="fly.domain.User" >

update user

set password = #{password,jdbcType=VARCHAR},

phone = #{phone,jdbcType=VARCHAR},

sex = #{sex,jdbcType=VARCHAR},

birthday = #{birthday,jdbcType=VARCHAR},

createTime = #{createtime,jdbcType=TIMESTAMP}

where id = #{id,jdbcType=BIGINT}

</update>

<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >

select id, password, phone, sex, birthday, createTime

from user

where id = #{id,jdbcType=BIGINT}

</select>

<select id="selectAll" resultMap="BaseResultMap" >

select id, password, phone, sex, birthday, createTime

from user

</select>

</mapper>

 

 

 

 

TimeTask定时器

package fly.util;

 

import fly.domain.User;

import fly.service.IUserService;

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

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Component;

 

 

import java.io.IOException;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.List;

 

@Component

public class TimeTask {

 

@Autowired

private IUserService userService;

//为没有结束时间的添加结束时间

@Scheduled(cron="0 30 23 ? * * ")//每天2330分更新一次

public void updateUserActionEndTime() throws IOException, ParseException {

List<User>list=userService.selectAll();

for (User user : list) {

Calendar cal = Calendar.getInstance();

cal.setTime(new Date());

int year=cal.get(Calendar.YEAR);

int day=cal.get(Calendar.DATE);

int month = cal.get(Calendar.MONTH)+1;

 

 

 

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = simpleDateFormat.parse(user.getBirthday());

int mon=date.getMonth()+1;

int da=date.getDate();

 

 

if(mon==month){

 

if(da-day<3&&da-day>0){

System.out.println(user.getPhone()+"在这三天将要生日,具体时间为"+year+""+mon+""+da+""+"请相关人员做好准备");

}

}

}

}

 

 

}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值