微信步数定时任务()

pom依赖

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

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

4.0.0

com.example

time

0.0.1-SNAPSHOT

jar

time

Demo project for Spring Boot

org.springframework.boot

spring-boot-starter-parent

2.0.5.RELEASE

<!-- lookup parent from repository -->

UTF-8

UTF-8

1.8

org.springframework.boot

spring-boot-starter-data-jpa

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-test

test

org.projectlombok

lombok

1.16.10

org.springframework.boot

spring-boot-starter-web

<!--thymeleaf模板引擎依赖-->

org.springframework.boot

spring-boot-starter-thymeleaf

org.webjars

bootstrap

3.3.7-1

org.springframework.boot

spring-boot-devtools

true

true

com.spring4all

swagger-spring-boot-starter

1.8.0.RELEASE

com.github.xiaoymin

swagger-bootstrap-ui

1.8.4

org.springframework.boot

spring-boot-starter-quartz

org.springframework.boot

spring-boot-maven-plugin

<!-- 这是spring boot devtool plugin -->

org.springframework.boot

spring-boot-maven-plugin

<!-- 如果没有该项配置devtools不会起作用-->

true

<!--支持静态资源热部署-->

true

entity

SportUser.class

package com.example.demo.entity;

importlombok.Data;

importjavax.persistence.*;

importjava.util.ArrayList;

importjava.util.List;

@Entity

@Data

publicclassSportUser {

@GeneratedValue

@Id

privateInteger id;

privateStringaccount;

privateStringpassword;

privateStringavatar;

@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.REMOVE)

@JoinColumn(name ="sportUser_id")

privateList steps =newArrayList<>();

publicSportUser() {

    }

publicSportUser(Stringaccount,Stringpassword,Stringavatar) {

this.account = account;

this.password = password;

this.avatar = avatar;

    }

publicStringgetAccount() {

returnaccount;

    }

publicvoidsetAccount(Stringaccount) {

this.account = account;

    }

publicStringgetPassword() {

returnpassword;

    }

publicvoidsetPassword(Stringpassword) {

this.password = password;

    }

publicStringgetAvatar() {

returnavatar;

    }

publicvoidsetAvatar(Stringavatar) {

this.avatar = avatar;

    }

}

Step.class

package com.example.demo.entity;

importlombok.Data;

importjavax.persistence.Entity;

importjavax.persistence.GeneratedValue;

importjavax.persistence.Id;

importjava.util.Date;

@Entity

@Data

publicclassStep {

@GeneratedValue

@Id

privateInteger id;

privateStringaccount;

privateDatedate;

privateStringnumber;

publicStep() {

    }

publicStep(Stringaccount,Datedate,Stringnumber) {

this.account = account;

this.date = date;

this.number =number;

    }

publicInteger getId() {

returnid;

    }

publicvoidsetId(Integer id) {

this.id = id;

    }

publicStringgetAccount() {

returnaccount;

    }

publicvoidsetAccount(Stringaccount) {

this.account = account;

    }

publicDategetDate() {

returndate;

    }

publicvoidsetDate(Datedate) {

this.date = date;

    }

publicStringgetNumber() {

returnnumber;

    }

publicvoidsetNumber(Stringnumber) {

this.number =number;

    }

}

dao层

LoginRepository

packagecom.example.demo.dao;

importcom.example.demo.entity.SportUser;

importorg.springframework.data.jpa.repository.JpaRepository;

importorg.springframework.data.jpa.repository.Query;

importorg.springframework.data.repository.query.Param;

publicinterfaceLoginRepositoryextendsJpaRepository{

@Query("from SportUser u where u.account = :account")

SportUser findUser(@Param("account")String account);

}

StepRepository

packagecom.example.demo.dao;

importcom.example.demo.entity.Step;

importorg.springframework.data.jpa.repository.JpaRepository;

importorg.springframework.data.jpa.repository.Query;

importorg.springframework.data.repository.query.Param;

importjava.util.List;

publicinterfaceStepRepositoryextendsJpaRepository{

@Query("FROM Step a WHERE DATEDIFF(a.date,NOW())=0 ORDER BY a.number DESC")

    List<Step> find();

@Query("from Step u WHERE DATEDIFF(u.date,NOW())=0 and u.account = :account")

Step findUser(@Param("account")String account);

}

Service+Impl

LoginService

package com.example.demo.service;

import com.example.demo.entity.SportUser;

import com.example.demo.entity.Step;

import java.util.List;

public interface LoginService {

    List<SportUser> get(String account, String password);

    SportUser check(String account, String password);

List getAll();

}

LoginServiceImpl

package com.example.demo.service;

importcom.example.demo.dao.LoginRepository;

importcom.example.demo.dao.StepRepository;

importcom.example.demo.entity.SportUser;

importcom.example.demo.entity.Step;

importorg.springframework.stereotype.Service;

importjavax.annotation.Resource;

importjava.util.List;

@Service

publicclassLoginServiceImplimplementsLoginService{

@Resource

    private LoginRepository loginRepository;

@Resource

    private StepRepository stepRepository;

@Override

publicListget(Stringaccount,Stringpassword) {

returnloginRepository.findAll();

    }

@Override

public SportUser check(Stringaccount,Stringpassword) {

List users = loginRepository.findAll();

SportUser user =newSportUser();

for(inti=0;i

Stringname = users.get(i).getAccount();

Stringpass = users.get(i).getPassword();

if(name.equals(account)){

if(pass.equals(password)){

user = users.get(i);

                }

            }

        }

returnuser;

    }

@Override

publicList getAll() {

returnstepRepository.findAll();

    }

}

SportJob

packagecom.example.demo.service;

importcom.example.demo.dao.StepRepository;

importcom.example.demo.entity.Step;

importlombok.extern.slf4j.Slf4j;

importorg.springframework.scheduling.annotation.Scheduled;

importorg.springframework.stereotype.Component;

importjavax.annotation.Resource;

importjava.util.Date;

@Slf4j

@Component

publicclassSportJob  {

    @Resource

privateStepRepository stepRepository;

@Scheduled(cron ="0 26 8 * * ?")

publicvoidexecute()throwsException{

Date date =newDate();

Step[] steps = {

newStep("10086",date,"8475"),

newStep("10011",date,"7847"),

newStep("10012",date,"6541"),

newStep("10013",date,"6489"),

newStep("10014",date,"6488"),

        };

for(inti =0; i <5;i++){

            stepRepository.save(steps[i]);

        }

    }

}

Controller

LoginController

packagecom.example.demo.controller;

importcom.example.demo.dao.StepRepository;

importcom.example.demo.entity.SportUser;

importcom.example.demo.service.LoginService;

importorg.springframework.stereotype.Controller;

importorg.springframework.ui.ModelMap;

importorg.springframework.web.bind.annotation.RequestMapping;

importjavax.annotation.Resource;

importjavax.servlet.http.HttpServletRequest;

@Controller

@RequestMapping()

publicclassLoginController{

@Resource

privateLoginService loginService;

@Resource

privateStepRepository stepRepository;

@RequestMapping(value = "/SportUser")

publicString show(HttpServletRequest request, ModelMap modelMap) {

String account = request.getParameter("account");

String password = request.getParameter("password");

        SportUser sportUser = loginService.check(account,password);

modelMap.addAttribute("sportUser",sportUser);

modelMap.addAttribute("userStep",stepRepository.findUser(account));

modelMap.addAttribute("steps",stepRepository.find());

return"home";

    }

@RequestMapping("/login")

publicString login(){

return"login";

    }

}

config

QuartzConfig

packagecom.example.demo.config;

importorg.quartz.Scheduler;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.context.annotation.Bean;

importorg.springframework.context.annotation.Configuration;

importorg.springframework.scheduling.quartz.SchedulerFactoryBean;

@Configuration

publicclassQuartzConfig{

@Autowired

privateSpringJobFactory springJobFactory;

@Bean

publicSchedulerFactoryBean schedulerFactoryBean() {

        SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();

        schedulerFactoryBean.setJobFactory(springJobFactory);

returnschedulerFactoryBean;

    }

@Bean

publicScheduler scheduler() {

returnschedulerFactoryBean().getScheduler();

    }

}

SpringJobFactory

packagecom.example.demo.config;

importorg.quartz.spi.TriggerFiredBundle;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.beans.factory.config.AutowireCapableBeanFactory;

importorg.springframework.scheduling.quartz.AdaptableJobFactory;

importorg.springframework.stereotype.Component;

@Component

publicclassSpringJobFactoryextendsAdaptableJobFactory{

@Autowired

privateAutowireCapableBeanFactorycapableBeanFactory;

@Override

protectedObjectcreateJobInstance(TriggerFiredBundlebundle)throwsException{

ObjectjobInstance =super.createJobInstance(bundle);

        capableBeanFactory.autowireBean(jobInstance);

returnjobInstance;

    }

}

templates

home.html

<!DOCTYPE html>

主界面

        html,body{

width:100%;

height:100%;

background:url(img/bg11.png) bottom center no-repeat#efeff4;

background-size:100%100%;

        }

        .avatar{

width:70px;

height:70px;

        }

        .tab{

margin-top:10px;

background-color:WhiteSmoke;

        }

______________________________________________________________________________________________________________________________________________________

        欢迎访问绿色出行系统,希望每个人都能乐于步行,放下杂念,为世界贡献一抹绿色!

______________________________________________________________________________________________________________________________________________________

<!--<div class="thumbnail" style="background:#5A9A4C ">-->

运动排行榜

账  号

步  数

                            今日运动良好,步数为:

__________________________________________________________________________________________________________

                            以下是根据调查得出的结论,你可以根据调查结果评析运动情况:

                            当你步行0-5000时,请注意健康情况了,懒惰使人肥胖!

                            当你步行5000-10000时,请注意,你已经完成日常锻炼!

                            当你步行>10000时,请注意,你已经超神了,感谢你为绿化做出的贡献!

login.html

<!DOCTYPE html>

登录界面

        html,body{

width:100%;

height:100%;

background:url(img/bg.jpg) bottom center no-repeat#efeff4;

background-size:100%100%;

        }

        form#login {

-webkit-border-radius:5px;

border-radius:5px;

width:500px;

margin: auto;

padding-top:300px;

        }

        form#login tr td{

padding-top:40px;

        }

        input#button{

width:100px;

height:40px;

color: white;

background-color:#99AE6B;

/*border: 1px solid black;*/

border:1pxsolid#99AE6B;

text-decoration: none;

        }

请绿色出行!

请输入账号:

请输入密码:

application.properties

server.port = 8080

spring.thymeleaf.cache=false

#在application.properties文件中配置mysql连接配置信息

spring.datasource.url=jdbc:mysql://localhost:3306/springboot_test?useUnicode=true&characterEncoding=utf-8

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

##连接池中最大的活跃连接数

spring.datasource.tomcat.max-active=20

##连接池中最大、最小的空闲连接数

spring.datasoure.max-idle=8

spring.datasoure.min-idle=8

##初始化连接数

spring.datasoure.initial=10

#在application.properties文件中配置JPA配置信息

spring.jpa.database=mysql

# 显示SQL语句

spring.jpa.show-sql=true

##指定DDL mode (none, validate, update, create, create-drop)

spring.jpa.properties.hibernate.hbm2ddl.auto=update

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,468评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,620评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,427评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,160评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,197评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,334评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,775评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,444评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,628评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,459评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,508评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,210评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,767评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,850评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,076评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,627评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,196评论 2 341

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,714评论 6 342
  • =========================================================...
    _灯火阑珊处阅读 2,392评论 0 3
  • SpringMVC原理分析 Spring Boot学习 5、Hello World探究 1、POM文件 1、父项目...
    jack_jerry阅读 1,265评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,569评论 18 139
  • 妈妈在网上买了一个长满刺的冬瓜,其实是一种海南水果,名叫菠萝蜜。外三瓜长满了刺,像一个大刺猬,拨开皮,许许多多穿着...
    王益涵阅读 348评论 0 0