增加定时调度增删改查

This commit is contained in:
zhouhao
2017-08-28 18:18:25 +08:00
parent fcb5880455
commit 18bdc3c9cc
18 changed files with 749 additions and 2 deletions

View File

@@ -0,0 +1,32 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-controller</artifactId>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-service-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-commons-controller</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,35 @@
package org.hswebframework.web.controller.schedule;
import org.hswebframework.web.authorization.annotation.Authorize;
import org.hswebframework.web.commons.entity.param.QueryParamEntity;
import org.hswebframework.web.controller.SimpleGenericEntityController;
import org.hswebframework.web.entity.schedule.ScheduleJobEntity;
import org.hswebframework.web.logging.AccessLogger;
import org.hswebframework.web.service.schedule.ScheduleJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 调度任务
*
* @author hsweb-generator-online
*/
@RestController
@RequestMapping("${hsweb.web.mappings.scheduleJob:scheduleJob}")
@Authorize(permission = "scheduleJob")
@AccessLogger("调度任务")
public class ScheduleJobController implements SimpleGenericEntityController<ScheduleJobEntity, String, QueryParamEntity> {
private ScheduleJobService scheduleJobService;
@Autowired
public void setScheduleJobService(ScheduleJobService scheduleJobService) {
this.scheduleJobService = scheduleJobService;
}
@Override
public ScheduleJobService getService() {
return scheduleJobService;
}
}

View File

@@ -0,0 +1,27 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule-dao</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-dao-api</artifactId>
<dependencies>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-entity</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-commons-dao-api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,11 @@
package org.hswebframework.web.dao.schedule;
import org.hswebframework.web.dao.CrudDao;
import org.hswebframework.web.entity.schedule.ScheduleJobEntity;
/**
* 调度任务 DAO接口
* @author hsweb-generator-online
*/
public interface ScheduleJobDao extends CrudDao<ScheduleJobEntity,String> {
}

View File

@@ -0,0 +1,26 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule-dao</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-dao-mybatis</artifactId>
<dependencies>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-dao-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-commons-dao-mybatis</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.hswebframework.web.dao.schedule.ScheduleJobDao">
<resultMap id="ScheduleJobResultMap" type="org.hswebframework.web.entity.schedule.SimpleScheduleJobEntity">
<id property="id" column="u_id" javaType="string" jdbcType="VARCHAR"/>
<result property="name" column="name" javaType="String" jdbcType="VARCHAR"/>
<result property="remark" column="remark" javaType="String" jdbcType="VARCHAR"/>
<result property="quartz_config" column="quartz_config" javaType="String" jdbcType="clob"/>
<result property="script" column="script" javaType="String" jdbcType="CLOB"/>
<result property="language" column="language" javaType="String" jdbcType="VARCHAR"/>
<result property="enabled" column="enabled" javaType="Long" jdbcType="DECIMAL"/>
<result property="parameters" column="parameters" javaType="String" jdbcType="CLOB"/>
<result property="type" column="type" javaType="String" jdbcType="VARCHAR"/>
<result property="tags" column="tags" javaType="String" jdbcType="VARCHAR"/>
</resultMap>
<!--用于动态生成sql所需的配置-->
<sql id="config">
<bind name="resultMapId" value="'ScheduleJobResultMap'"/>
<bind name="tableName" value="'s_schedule_job'"/>
</sql>
<insert id="insert" parameterType="org.hswebframework.web.entity.schedule.SimpleScheduleJobEntity" >
<include refid="config"/>
<include refid="BasicMapper.buildInsertSql"/>
</insert>
<delete id="deleteByPk" parameterType="String">
delete from s_schedule_job where u_id =#{id}
</delete>
<delete id="delete" parameterType="org.hswebframework.web.commons.entity.Entity">
<include refid="config"/>
<include refid="BasicMapper.buildDeleteSql"/>
</delete>
<update id="update" parameterType="org.hswebframework.web.commons.entity.Entity">
<include refid="config"/>
<include refid="BasicMapper.buildUpdateSql"/>
</update>
<select id="query" parameterType="org.hswebframework.web.commons.entity.Entity" resultMap="ScheduleJobResultMap">
<include refid="config"/>
<include refid="BasicMapper.buildSelectSql"/>
</select>
<select id="count" parameterType="org.hswebframework.web.commons.entity.Entity" resultType="int">
<include refid="config"/>
<include refid="BasicMapper.buildTotalSql"/>
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-dao</artifactId>
<packaging>pom</packaging>
<modules>
<module>hsweb-system-schedule-dao-api</module>
<module>hsweb-system-schedule-dao-mybatis</module>
</modules>
</project>

View File

@@ -0,0 +1,22 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-entity</artifactId>
<dependencies>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-commons-entity</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,131 @@
package org.hswebframework.web.entity.schedule;
import org.hswebframework.web.commons.entity.GenericEntity;
/**
* 调度任务 实体
* @author hsweb-generator-online
*/
public interface ScheduleJobEntity extends GenericEntity<String>{
/*-------------------------------------------
| 属性名常量 |
===========================================*/
/**
* 任务名称
*/
String name="name";
/**
* 备注
*/
String remark="remark";
/**
* 定时调度配置
*/
String quartz_config="quartz_config";
/**
* 执行脚本
*/
String script="script";
/**
* 脚本语言
*/
String language="language";
/**
* 是否启用
*/
String enabled="enabled";
/**
* 启动参数
*/
String parameters="parameters";
/**
* 任务类型
*/
String type="type";
/**
* 标签
*/
String tags="tags";
/**
* @return 任务名称
*/
String getName();
/**
* @param name 任务名称
*/
void setName(String name);
/**
* @return 备注
*/
String getRemark();
/**
* @param remark 备注
*/
void setRemark(String remark);
/**
* @return 定时调度配置
*/
String getQuartz_config();
/**
* @param quartz_config 定时调度配置
*/
void setQuartz_config(String quartz_config);
/**
* @return 执行脚本
*/
String getScript();
/**
* @param script 执行脚本
*/
void setScript(String script);
/**
* @return 脚本语言
*/
String getLanguage();
/**
* @param language 脚本语言
*/
void setLanguage(String language);
/**
* @return 是否启用
*/
Long getEnabled();
/**
* @param enabled 是否启用
*/
void setEnabled(Long enabled);
/**
* @return 启动参数
*/
String getParameters();
/**
* @param parameters 启动参数
*/
void setParameters(String parameters);
/**
* @return 任务类型
*/
String getType();
/**
* @param type 任务类型
*/
void setType(String type);
/**
* @return 标签
*/
String getTags();
/**
* @param tags 标签
*/
void setTags(String tags);
}

View File

@@ -0,0 +1,145 @@
package org.hswebframework.web.entity.schedule;
import org.hswebframework.web.commons.entity.SimpleGenericEntity;
/**
* 调度任务
* @author hsweb-generator-online
*/
public class SimpleScheduleJobEntity extends SimpleGenericEntity<String> implements ScheduleJobEntity{
//任务名称
private String name;
//备注
private String remark;
//定时调度配置
private String quartz_config;
//执行脚本
private String script;
//脚本语言
private String language;
//是否启用
private Long enabled;
//启动参数
private String parameters;
//任务类型
private String type;
//标签
private String tags;
/**
* @return 任务名称
*/
public String getName(){
return this.name;
}
/**
* @param name 任务名称
*/
public void setName(String name){
this.name=name;
}
/**
* @return 备注
*/
public String getRemark(){
return this.remark;
}
/**
* @param remark 备注
*/
public void setRemark(String remark){
this.remark=remark;
}
/**
* @return 定时调度配置
*/
public String getQuartz_config(){
return this.quartz_config;
}
/**
* @param quartz_config 定时调度配置
*/
public void setQuartz_config(String quartz_config){
this.quartz_config=quartz_config;
}
/**
* @return 执行脚本
*/
public String getScript(){
return this.script;
}
/**
* @param script 执行脚本
*/
public void setScript(String script){
this.script=script;
}
/**
* @return 脚本语言
*/
public String getLanguage(){
return this.language;
}
/**
* @param language 脚本语言
*/
public void setLanguage(String language){
this.language=language;
}
/**
* @return 是否启用
*/
public Long getEnabled(){
return this.enabled;
}
/**
* @param enabled 是否启用
*/
public void setEnabled(Long enabled){
this.enabled=enabled;
}
/**
* @return 启动参数
*/
public String getParameters(){
return this.parameters;
}
/**
* @param parameters 启动参数
*/
public void setParameters(String parameters){
this.parameters=parameters;
}
/**
* @return 任务类型
*/
public String getType(){
return this.type;
}
/**
* @param type 任务类型
*/
public void setType(String type){
this.type=type;
}
/**
* @return 标签
*/
public String getTags(){
return this.tags;
}
/**
* @param tags 标签
*/
public void setTags(String tags){
this.tags=tags;
}
}

View File

@@ -0,0 +1,26 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule-service</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-service-api</artifactId>
<dependencies>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-commons-service-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-dao-api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,13 @@
package org.hswebframework.web.service.schedule;
import org.hswebframework.web.entity.schedule.ScheduleJobEntity;
import org.hswebframework.web.service.CrudService;
/**
* 调度任务 服务类
*
* @author hsweb-generator-online
*/
public interface ScheduleJobService extends CrudService<ScheduleJobEntity, String> {
}

View File

@@ -0,0 +1,26 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule-service</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-service-simple</artifactId>
<dependencies>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-commons-service-simple</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-service-api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,30 @@
package org.hswebframework.web.service.schedule.simple;
import org.hswebframework.web.dao.schedule.ScheduleJobDao;
import org.hswebframework.web.entity.schedule.ScheduleJobEntity;
import org.hswebframework.web.service.GenericEntityService;
import org.hswebframework.web.id.IDGenerator;
import org.hswebframework.web.service.schedule.ScheduleJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 默认的服务实现
*
* @author hsweb-generator-online
*/
@Service("scheduleJobService")
public class SimpleScheduleJobService extends GenericEntityService<ScheduleJobEntity, String>
implements ScheduleJobService {
@Autowired
private ScheduleJobDao scheduleJobDao;
@Override
protected IDGenerator<String> getIDGenerator() {
return IDGenerator.MD5;
}
@Override
public ScheduleJobDao getDao() {
return scheduleJobDao;
}
}

View File

@@ -0,0 +1,18 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-service</artifactId>
<packaging>pom</packaging>
<modules>
<module>hsweb-system-schedule-service-api</module>
<module>hsweb-system-schedule-service-simple</module>
</modules>
</project>

View File

@@ -0,0 +1,78 @@
<?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">
<parent>
<artifactId>hsweb-system-schedule</artifactId>
<groupId>org.hswebframework.web</groupId>
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hsweb-system-schedule-starter</artifactId>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<dependencies>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-service-simple</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-dao-mybatis</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-system-schedule-controller</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-spring-boot-starter</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-tests</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,50 @@
//组件信息
var info = {
groupId: "${project.groupId}",
artifactId: "${project.artifactId}",
version: "${project.version}",
website: "https://github.com/hs-web/hsweb-framework",
author: "admin@hsweb.me",
comment: "调度任务"
};
//版本更新信息
var versions = [
// {
// version: "3.0.2",
// upgrade: function (context) {
// java.lang.System.out.println("更新到3.0.2了");
// }
// }
];
var JDBCType = java.sql.JDBCType;
function install(context) {
var database = context.database;
database.createOrAlter("s_schedule_job")
.addColumn().name("u_id").alias("id").comment("ID").jdbcType(java.sql.JDBCType.VARCHAR).length(32).primaryKey().commit()
.addColumn().name("name").alias("name").comment("任务名称").jdbcType(java.sql.JDBCType.VARCHAR).length(128).commit()
.addColumn().name("remark").alias("remark").comment("备注").jdbcType(java.sql.JDBCType.VARCHAR).length(512).commit()
.addColumn().name("quartz_config").alias("quartz_config").comment("定时调度配置").jdbcType(java.sql.JDBCType.clob).commit()
.addColumn().name("script").alias("script").comment("执行脚本").jdbcType(java.sql.JDBCType.CLOB).commit()
.addColumn().name("language").alias("language").comment("脚本语言").jdbcType(java.sql.JDBCType.VARCHAR).length(32).commit()
.addColumn().name("enabled").alias("enabled").comment("是否启用").jdbcType(java.sql.JDBCType.DECIMAL).length(4,0).commit()
.addColumn().name("parameters").alias("parameters").comment("启动参数").jdbcType(java.sql.JDBCType.CLOB).commit()
.addColumn().name("type").alias("type").comment("任务类型").jdbcType(java.sql.JDBCType.VARCHAR).length(32).commit()
.addColumn().name("tags").alias("tags").comment("标签").jdbcType(java.sql.JDBCType.VARCHAR).length(512).commit()
.comment("调度任务").commit();
}
//设置依赖
dependency.setup(info)
.onInstall(install)
.onUpgrade(function (context) { //更新时执行
var upgrader = context.upgrader;
upgrader.filter(versions)
.upgrade(function (newVer) {
newVer.upgrade(context);
});
})
.onUninstall(function (context) { //卸载时执行
});

View File

@@ -8,8 +8,14 @@
<version>3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<artifactId>hsweb-system-schedule</artifactId>
<modules>
<module>hsweb-system-schedule-dao</module>
<module>hsweb-system-schedule-service</module>
<module>hsweb-system-schedule-controller</module>
<module>hsweb-system-schedule-entity</module>
<module>hsweb-system-schedule-starter</module>
</modules>
</project>