Commit 6de5542a authored by fangxinjiang's avatar fangxinjiang

B端服务添加

parent 947826bb
# 忽略匹配下列规则的Git 提交 V2.1.0
### gradle ###
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
### STS ###
.settings/
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
bin/
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
*.lock
rebel.xml
### NetBeans ###
nbproject/private/
build/
nbbuild/
nbdist/
.nb-gradle/
### maven ###
target/
*.war
*.ear
*.zip
*.tar
*.tar.gz
### logs ####
/logs/
*.log
### temp ignore ###
*.cache
*.diff
*.patch
*.tmp
*.java~
*.properties~
*.xml~
### system ignore ###
.DS_Store
Thumbs.db
Servers
.metadata
upload
gen_code
### node ###
node_modules
<?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>yifu</artifactId>
<groupId>com.yifu.cloud.plus.v1</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>yifu-business</artifactId>
<description>定时任务提供</description>
<packaging>pom</packaging>
<!--项目子模块-->
<modules>
<module>yifu-business-api</module>
<module>yifu-business-biz</module>
</modules>
</project>
\ No newline at end of file
<?xml version="1.0"?>
<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>
<parent>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-business</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>yifu-business-api</artifactId>
<packaging>jar</packaging>
<description>job 接口模块</description>
<dependencies>
<!-- core 工具类 -->
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-core</artifactId>
</dependency>
<!--swagger 注解-->
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
</dependency>
<!--feign 注解依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<optional>true</optional>
</dependency>
<!--mybatis 依赖-->
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-mybatis</artifactId>
</dependency>
<!--dapr 依赖-->
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-dapr</artifactId>
<version>1.0.0</version>
</dependency>
<!-- 定时任务依赖 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
</dependencies>
</project>
FROM moxm/java:1.8-full
RUN mkdir -p /yifu-business-biz
WORKDIR yifu-business-biz
ARG JAR_FILE=target/yifu-business-biz.jar
COPY ${JAR_FILE} app.jar
EXPOSE 5004
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
CMD sleep 60; java -jar app.jar $JAVA_OPTS
#!/usr/bin/env bash
mvn clean package -Pprd -Dmaven.test.skip=true docker:build -DpushImage
\ No newline at end of file
#!/usr/bin/env bash
mvn clean package -Ptest -Dmaven.test.skip=true docker:build -DpushImage
\ No newline at end of file
#!/usr/bin/env bash
mvn clean package -Dmaven.test.skip=true docker:build -DpushImage
\ No newline at end of file
<?xml version="1.0"?>
<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>
<parent>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-business</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>yifu-business-biz</artifactId>
<packaging>jar</packaging>
<description>job 业务模块</description>
<dependencies>
<!--选配: 依赖seata模块-->
<!--<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-seata</artifactId>
</dependency>-->
<!--选配: orm 模块-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--必备:安全模块-->
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-security</artifactId>
</dependency>
<!--必备:日志处理-->
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-log</artifactId>
</dependency>
<!--必备:undertow容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<!--web 模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!--排除tomcat依赖-->
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-job-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!--接口文档 http://127.0.0.1:5004/swagger-ui/index.html-->
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-swagger</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.1.0</version>
<configuration>
<serverId>docker-hub</serverId>
<!--指定生成的镜像名-->
<imageName>${my.hub.host}/${map.group.name}/${project.artifactId}:${project.version}</imageName>
<dockerDirectory>${project.basedir}/</dockerDirectory>
<!--指定远程 docker api地址-->
<!--<dockerHost>http://172.16.66.232:2375</dockerHost>-->
<!-- 这里是复制 jar 包到 docker 容器指定目录配置-->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<forceTags>true</forceTags>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.yifu.cloud.plus.v1.job;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.EnableYifuResourceServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author pig archetype
* <p>
* 项目启动类
*/
@EnableYifuResourceServer
@SpringBootApplication
public class JobApplication {
public static void main(String[] args) {
SpringApplication.run(JobApplication.class, args);
}
}
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yifu.cloud.plus.v1.job.config.SchedulerBeanFactoryConfig
\ No newline at end of file
# 数据源配置
spring:
redis:
host: 127.0.0.1
password: '@yf_2017'
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: yf_zsk
url: jdbc:mysql://192.168.1.65:22306/yifu_job?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
config:
activate:
on-profile: dev
# 数据源配置
spring:
redis:
host: 192.168.1.65
port: 22379
password: '@yf_2017'
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: yf_zsk
url: jdbc:mysql://192.168.1.65:22306/yifu_job?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari:
driver-class-name: ${spring.datasource.driver-class-name}
jdbc-url: ${spring.datasource.url}
username: ${spring.datasource.username}
password: ${spring.datasource.password}
pool-name: AmytangHikariCP
minimum-idle: 10 # 最小空闲连接数量
idle-timeout: 60000 # 空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size: 12 # 连接池最大连接数,默认是10
auto-commit: true #此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime: 0 #此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
config:
activate:
on-profile: test
\ No newline at end of file
server:
port: 5004
# 加解密根密码
jasypt:
encryptor:
password: yifu #根密码
# 暴露监控端点
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
security:
oauth2:
client:
client-id: ENC(K5ErrbgsBtqiWfy7CpBzYg==)
client-secret: ENC(skHg7VwJV+1YWXR9RpsiBg==)
scope: server
resource:
loadBalanced: true
token-info-uri: http://yifu-auth/oauth/check_token
# 直接放行URL
ignore:
urls:
- /v3/api-docs
- /actuator/**
- /swagger-ui/**
# mybaits-plus配置
mybatis-plus:
mapper-locations: classpath:/mapper/*Mapper.xml
global-config:
banner: false
db-config:
id-type: auto
table-underline: true
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
#spring 配置
spring:
application:
name: @artifactId@
#swagger 文档 https://springdoc.org/
### OpenAPI3 注解
# OpenAPI 3 注解位置
# @Tag(name = “接口类描述”) Controller 类上
# @Operation(summary =“接口方法描述”) Controller 方法上
# @Parameters Controller 方法上
# @Parameter(description=“参数描述”) Controller 方法上 @Parameters 里
# @Parameter(description=“参数描述”) Controller 方法的参数上
# @Parameter(hidden = true) 或 @Hidden --
# @Schema DTO类上
# @Schema DTO属性上
springdoc:
api-docs:
#是否开启文档功能
enabled: true
#swagger后端请求地址
path: /api-docs
swagger-ui:
#自定义swagger前端请求路径,输入http:127.0.0.1:8080/test会自动重定向到swagger页面
path: /api
#包扫描路径
packages-to-scan: com.yifu.cloud.plus.v1.job.controller
#这里定义了两个分组,可定义多个,也可以不定义
group-configs:
#分组名
#- group: admin
#按路径匹配
# pathsToMatch: /admin/**
#分组名
- group: job
#按包路径匹配
packagesToScan: com.yifu.cloud.plus.v1.job.controller
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<property name="log.path" value="logs/${spring.application.name}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- Log file debug output -->
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
</appender>
<!-- Log file error output -->
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</configuration>
<?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="com.yifu.cloud.plus.v1.job.mapper.SysScheduleJobLogMapper">
<resultMap id="sysScheduleJobLogMap" type="com.yifu.cloud.plus.v1.job.entity.SysScheduleJobLog">
<id property="id" column="ID"/>
<result property="jobId" column="JOB_ID"/>
<result property="beanName" column="BEAN_NAME"/>
<result property="methodName" column="METHOD_NAME"/>
<result property="params" column="PARAMS"/>
<result property="status" column="STATUS"/>
<result property="error" column="ERROR"/>
<result property="times" column="TIMES"/>
<result property="createtime" column="CREATETIME"/>
<result property="remark" column="REMARK"/>
</resultMap>
<!--sysScheduleJobLog简单分页查询-->
<select id="getSysScheduleJobLogPage" resultMap="sysScheduleJobLogMap">
SELECT
ID,
JOB_ID,
BEAN_NAME,
METHOD_NAME,
PARAMS,
STATUS,
ERROR,
TIMES,
CREATETIME,
REMARK
FROM sys_schedule_job_log
<where>1=1
<if test="sysScheduleJobLog.id != null and sysScheduleJobLog.id.trim() != ''">
AND ID = #{sysScheduleJobLog.id}
</if>
<if test="sysScheduleJobLog.jobId != null and sysScheduleJobLog.jobId.trim() != ''">
AND JOB_ID = #{sysScheduleJobLog.jobId}
</if>
<if test="sysScheduleJobLog.beanName != null and sysScheduleJobLog.beanName.trim() != ''">
AND BEAN_NAME = #{sysScheduleJobLog.beanName}
</if>
<if test="sysScheduleJobLog.methodName != null and sysScheduleJobLog.methodName.trim() != ''">
AND METHOD_NAME = #{sysScheduleJobLog.methodName}
</if>
<if test="sysScheduleJobLog.params != null and sysScheduleJobLog.params.trim() != ''">
AND PARAMS = #{sysScheduleJobLog.params}
</if>
<if test="sysScheduleJobLog.status != null and sysScheduleJobLog.status.trim() != ''">
AND STATUS = #{sysScheduleJobLog.status}
</if>
<if test="sysScheduleJobLog.error != null and sysScheduleJobLog.error.trim() != ''">
AND ERROR = #{sysScheduleJobLog.error}
</if>
<if test="sysScheduleJobLog.times != null and sysScheduleJobLog.times.trim() != ''">
AND TIMES = #{sysScheduleJobLog.times}
</if>
<if test="sysScheduleJobLog.createtime != null and sysScheduleJobLog.createtime.trim() != ''">
AND CREATETIME = #{sysScheduleJobLog.createtime}
</if>
<if test="sysScheduleJobLog.remark != null and sysScheduleJobLog.remark.trim() != ''">
AND REMARK = #{sysScheduleJobLog.remark}
</if>
</where>
</select>
</mapper>
<?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="com.yifu.cloud.plus.v1.job.mapper.SysScheduleJobMapper">
<resultMap id="sysScheduleJobMap" type="com.yifu.cloud.plus.v1.job.entity.SysScheduleJob">
<id property="id" column="ID"/>
<result property="jobId" column="JOB_ID"/>
<result property="beanName" column="BEAN_NAME"/>
<result property="methodName" column="METHOD_NAME"/>
<result property="params" column="PARAMS"/>
<result property="status" column="STATUS"/>
<result property="cronExpression" column="CRON_EXPRESSION"/>
<result property="remark" column="REMARK"/>
<result property="createtime" column="CREATETIME"/>
</resultMap>
<!--sysScheduleJob简单分页查询-->
<select id="getSysScheduleJobPage" resultMap="sysScheduleJobMap">
SELECT
ID,
JOB_ID,
BEAN_NAME,
METHOD_NAME,
PARAMS,
STATUS,
CRON_EXPRESSION,
REMARK,
CREATETIME
FROM sys_schedule_job
<where>1=1
<if test="sysScheduleJob.id != null and sysScheduleJob.id.trim() != ''">
AND ID = #{sysScheduleJob.id}
</if>
<if test="sysScheduleJob.jobId != null and sysScheduleJob.jobId.trim() != ''">
AND JOB_ID = #{sysScheduleJob.jobId}
</if>
<if test="sysScheduleJob.beanName != null and sysScheduleJob.beanName.trim() != ''">
AND BEAN_NAME = #{sysScheduleJob.beanName}
</if>
<if test="sysScheduleJob.methodName != null and sysScheduleJob.methodName.trim() != ''">
AND METHOD_NAME = #{sysScheduleJob.methodName}
</if>
<if test="sysScheduleJob.params != null and sysScheduleJob.params.trim() != ''">
AND PARAMS = #{sysScheduleJob.params}
</if>
<if test="sysScheduleJob.status != null and sysScheduleJob.status.trim() != ''">
AND STATUS = #{sysScheduleJob.status}
</if>
<if test="sysScheduleJob.cronExpression != null and sysScheduleJob.cronExpression.trim() != ''">
AND CRON_EXPRESSION = #{sysScheduleJob.cronExpression}
</if>
<if test="sysScheduleJob.remark != null and sysScheduleJob.remark.trim() != ''">
AND REMARK = #{sysScheduleJob.remark}
</if>
<if test="sysScheduleJob.createtime != null and sysScheduleJob.createtime.trim() != ''">
AND CREATETIME = #{sysScheduleJob.createtime}
</if>
</where>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment