微信步数定时任务()

2018-10-12  本文已影响0人  逍遥_6b76

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

上一篇下一篇

猜你喜欢

热点阅读