Commit 409961c8 by zhoujinghao

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	nafmii-app/src/main/java/org/nafmii/service/UserService.java
2 parents 95536819 bdf3b516
Showing 39 changed files with 856 additions and 731 deletions
......@@ -17,111 +17,48 @@
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2020.0.2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--<exclusions>&lt;!&ndash; 去掉springboot默认配置 &ndash;&gt;-->
<!--<exclusion>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-logging</artifactId>-->
<!--</exclusion>-->
<!--</exclusions>-->
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!--Mysql数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--&lt;!&ndash;MyBatis分页插件&ndash;&gt;-->
<!--<dependency>-->
<!--<groupId>com.github.pagehelper</groupId>-->
<!--<artifactId>pagehelper</artifactId>-->
<!--</dependency>-->
<!--feign -->
<!--<dependency>-->
<!--<groupId>org.projectlombok</groupId>-->
<!--<artifactId>lombok</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
</dependency>
<!-- MyBatis-->
<!--<dependency>-->
<!--<groupId>org.mybatis</groupId>-->
<!--<artifactId>mybatis</artifactId>-->
<!--</dependency>-->
<!--SpringData工具包-->
<!--<dependency>-->
<!--<groupId>org.springframework.data</groupId>-->
<!--<artifactId>spring-data-commons</artifactId>-->
<!--</dependency>-->
<!-- https://mvnrepository.com/artifact/com.oracle/ojdbc14 -->
<!--<dependency>-->
<!--<groupId>com.oracle</groupId>-->
<!--<artifactId>ojdbc14</artifactId>-->
<!--</dependency>-->
<!--JWT(Json Web Token)登录支持-->
<!--集成logstash-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
</dependency>
<!--集成SpringBoot Admin监控-->
<!-- https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-server -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!--接口文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
......
......@@ -4,7 +4,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nafmii.nafmiiadmin.service.TestService;
import org.nafmii.result.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......
......@@ -17,119 +17,37 @@
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2020.0.2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--<exclusions>&lt;!&ndash; 去掉springboot默认配置 &ndash;&gt;-->
<!--<exclusion>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-logging</artifactId>-->
<!--</exclusion>-->
<!--</exclusions>-->
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>com.github.pagehelper</groupId>-->
<!--<artifactId>pagehelper-spring-boot-starter</artifactId>-->
<!--</dependency>-->
<!--feign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.projectlombok</groupId>-->
<!--<artifactId>lombok</artifactId>-->
<!--</dependency>-->
<!-- MyBatis-->
<!--<dependency>-->
<!--<groupId>org.mybatis</groupId>-->
<!--<artifactId>mybatis</artifactId>-->
<!--</dependency>-->
<!--SpringData工具包-->
<!--<dependency>-->
<!--<groupId>org.springframework.data</groupId>-->
<!--<artifactId>spring-data-commons</artifactId>-->
<!--</dependency>-->
<!-- https://mvnrepository.com/artifact/com.oracle/ojdbc14 -->
<!--<dependency>-->
<!--<groupId>com.oracle</groupId>-->
<!--<artifactId>ojdbc14</artifactId>-->
<!--</dependency>-->
<!--JWT(Json Web Token)登录支持-->
<!--<dependency>-->
<!--<groupId>org.springframework.security.oauth.boot</groupId>-->
<!--<artifactId>spring-security-oauth2-autoconfigure</artifactId>-->
<!--<version>2.1.4.RELEASE</version>-->
<!--</dependency>-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!--&lt;!&ndash; spring-security 5.2.0&ndash;&gt;-->
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-security</artifactId>-->
<!--</dependency>-->
<!--集成logstash-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
</dependency>
<!--集成SpringBoot Admin监控-->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!--接口文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
......
package org.nafmii;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@SpringBootApplication(scanBasePackages={"org.nafmii","org.nafmii.exception"})
@EnableEurekaClient
@EnableFeignClients
@MapperScan("org.nafmii/**/mapper")
public class NafmiiAppApplication {
public static void main(String[] args) {
......
......@@ -4,12 +4,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nafmii.dto.user.LoginDto;
import org.nafmii.dto.user.RegisterDto;
import org.nafmii.response.Result;
import org.nafmii.response.ApiResponse;
import org.nafmii.service.UserService;
import org.nafmii.vo.AppUser;
import org.nafmii.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.bind.annotation.*;
/**
......@@ -30,16 +29,16 @@ public class UserController {
@ApiOperation( value = "模拟用户登陆",notes = "模拟用户登陆")
@PostMapping("/login")
@ResponseBody
public Result<UserVO> login (){
Result<UserVO> login = userService.login();
public ApiResponse<UserVO> login (){
ApiResponse<UserVO> login = userService.login();
return login;
}
@ApiOperation( value = "app用户注册接口",notes = "app用户注册接口")
@PostMapping("/register")
@ResponseBody
public Result register (@RequestBody RegisterDto registerDto){
Result register = userService.register(registerDto);
public ApiResponse register (@RequestBody RegisterDto registerDto){
ApiResponse register = userService.register(registerDto);
return register;
}
......
package org.nafmii.mapper.user;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.nafmii.dto.user.LoginDto;
import org.nafmii.entity.user.AppUser;
......@@ -8,7 +9,7 @@ import org.nafmii.response.Result;
import org.nafmii.vo.UserVO;
import java.util.List;
@Mapper
public interface AppUserMapper {
long countByExample(AppUserExample example);
......
......@@ -10,7 +10,7 @@ import org.nafmii.entity.user.AppUserExample;
import org.nafmii.enums.UserEnum;
import org.nafmii.exception.BusinessException;
import org.nafmii.mapper.user.AppUserMapper;
import org.nafmii.response.Result;
import org.nafmii.response.ApiResponse;
import org.nafmii.service.UserService;
import org.nafmii.utils.GuavaUtil;
import org.nafmii.utils.JwtUtils;
......@@ -20,6 +20,7 @@ import org.nafmii.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -36,15 +37,15 @@ import java.util.List;
@Slf4j
public class UserServiceImpl implements UserService {
@Autowired
@Resource
private AppUserMapper appUserMapper;
/**
* 模拟用户登陆
* @return
*/
@Override
public Result<UserVO> login() {
Result result = new Result();
public ApiResponse<UserVO> login() {
ApiResponse result = new ApiResponse();
//假设验证数据通过
UserVO userVO = new UserVO();
userVO.setLoginPwd("zzz");
......@@ -77,7 +78,7 @@ public class UserServiceImpl implements UserService {
* @return
*/
@Override
public Result register(RegisterDto registerDto) {
public ApiResponse register(RegisterDto registerDto) {
//用户实体类
AppUser appUser = new AppUser();
appUser.setId(SnowFlakeUtil.nextId());
......@@ -108,9 +109,9 @@ public class UserServiceImpl implements UserService {
int i = appUserMapper.insertSelective(appUser);
if (i<0){
return Result.failed("新增失败");
return new ApiResponse().fail("新增失败");
}
return Result.success(null);
return new ApiResponse();
}
/**
......
server.port=8002
spring.application.name=nafmii-app
logging.level.root=info
logging.file.path=d:/data/logs/nafmii-app/
logging.file.max-history=15
logging.file.max-size=300MB
logging.pattern.dateformat=yyyy-MM-dd hh:MM:ss
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka
eureka.instance.statusPageUrl = http://127.0.0.1:8002/swagger-ui.html
eureka.instance.prefer-ip-address = true
eureka.instance.instance-id = ${spring.cloud.client.ip-address}:${server.port}
spring.datasource.url=jdbc:mysql://114.112.96.30:30029/NAFMII_2.1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.password=Moxi123#
spring.datasource.username=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml
\ No newline at end of file
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:8761/eureka
instance:
instance-id: ${spring.cloud.client.ip-address}:${server.port}
prefer-ip-address: true
statusPageUrl: http://127.0.0.1:8002/swagger-ui.html
logging:
file:
max-history: 15
max-size: 300MB
path: d:/data/logs/nafmii-app/
level:
root: info
pattern:
dateformat: yyyy-MM-dd hh:MM:ss
mybatis:
mapper-locations: classpath:mapper/*.xml
server:
port: 8002
spring:
application:
name: nafmii-app
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
password: Moxi123#
url: jdbc:mysql://114.112.96.30:30029/NAFMII_2.1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
\ No newline at end of file
......@@ -19,8 +19,13 @@
<ojdbc.version>10.2.0.4</ojdbc.version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.0.2</version>
</dependency>
<!--swagger 相关依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
......@@ -32,22 +37,22 @@
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.3</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
......@@ -68,35 +73,16 @@
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<!--MyBatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<!--&lt;!&ndash;Knife4j API文档生产工具&ndash;&gt;-->
<!--<dependency>-->
<!--<groupId>com.github.xiaoymin</groupId>-->
<!--<artifactId>knife4j-micro-spring-boot-starter</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>com.github.xiaoymin</groupId>-->
<!--<artifactId>knife4j-spring-boot-starter</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions><!-- 去掉springboot默认配置 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>3.0.2</version>
</dependency>
<!--redis-->
<dependency>
......@@ -124,6 +110,7 @@
<artifactId>mybatis-plus-extension</artifactId>
<version>3.3.0</version>
</dependency>
<!-- 代码生成器模板 -->
<dependency>
<groupId>org.apache.velocity</groupId>
......@@ -185,16 +172,21 @@
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.9</version>
</dependency>
<!-- 反射 -->
<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
......
package org.nafmii.exception;
import feign.codec.DecodeException;
import lombok.extern.slf4j.Slf4j;
import org.nafmii.constant.MessageEnum;
import org.nafmii.response.Result;
import org.nafmii.response.ApiResponse;
import org.springframework.core.annotation.Order;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindingResult;
......@@ -12,8 +13,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import javax.websocket.DecodeException;
@Order(Integer.MIN_VALUE)
@ControllerAdvice
@Slf4j
......@@ -24,9 +23,9 @@ public class BusinessExceptionHandler {
*/
@ExceptionHandler(value = Exception.class)
@ResponseBody
public Result defaultErrorHandler(Exception e) {
public ApiResponse defaultErrorHandler(Exception e) {
log.error (e.getMessage (), e);
return new Result(MessageEnum.FAIL.getCode(), e.getMessage());
return new ApiResponse(MessageEnum.FAIL.getCode(), e.getMessage());
}
/**
......@@ -36,9 +35,9 @@ public class BusinessExceptionHandler {
*/
@ExceptionHandler(value = BusinessException.class)
@ResponseBody
public Result businessErrorHandler(BusinessException e) {
public ApiResponse businessErrorHandler(BusinessException e) {
log.error (e.getMessage (), e);
return new Result(new Long((long)e.getStatusCode()), e.getMessage());
return new ApiResponse(new Long((long)e.getStatusCode()), e.getMessage());
}
/**
......@@ -46,13 +45,13 @@ public class BusinessExceptionHandler {
*/
@ExceptionHandler(value = MethodArgumentNotValidException.class)
@ResponseBody
public Result argumentErrorHandler(MethodArgumentNotValidException e) {
public ApiResponse argumentErrorHandler(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
String errorMessage = "参数不能为空!";
if (bindingResult.getFieldError() != null){
errorMessage = bindingResult.getFieldError().getDefaultMessage();
}
return new Result(MessageEnum.FAIL_PARAM.getCode(), errorMessage);
return new ApiResponse(MessageEnum.FAIL_PARAM.getCode(), errorMessage);
}
/**
......@@ -60,9 +59,9 @@ public class BusinessExceptionHandler {
*/
@ExceptionHandler(value = HttpMessageNotReadableException.class)
@ResponseBody
public Result argumentErrorHandler(HttpMessageNotReadableException e) {
public ApiResponse argumentErrorHandler(HttpMessageNotReadableException e) {
log.error (e.getMessage(), e);
return new Result(MessageEnum.FAIL_PARAM_TYPE.getCode(), MessageEnum.FAIL_PARAM_TYPE.getRemarks());
return new ApiResponse(MessageEnum.FAIL_PARAM_TYPE.getCode(), MessageEnum.FAIL_PARAM_TYPE.getRemarks());
}
/**
......@@ -70,9 +69,9 @@ public class BusinessExceptionHandler {
*/
@ExceptionHandler(value = DecodeException.class)
@ResponseBody
public Result argumentErrorHandler(DecodeException e) {
public ApiResponse argumentErrorHandler(DecodeException e) {
log.error (e.getMessage(), e);
return new Result(MessageEnum.FEIGN_CLIENT_DECODE.getCode(), MessageEnum.FEIGN_CLIENT_DECODE.getRemarks());
return new ApiResponse(MessageEnum.FEIGN_CLIENT_DECODE.getCode(), MessageEnum.FEIGN_CLIENT_DECODE.getRemarks());
}
/**
......@@ -80,8 +79,8 @@ public class BusinessExceptionHandler {
*/
@ExceptionHandler(value = MaxUploadSizeExceededException.class)
@ResponseBody
public Result argumentErrorHandler(MaxUploadSizeExceededException e) {
public ApiResponse argumentErrorHandler(MaxUploadSizeExceededException e) {
log.error (e.getMessage(), e);
return new Result(MessageEnum.MAX_FILE_SIZE.getCode(), MessageEnum.MAX_FILE_SIZE.getRemarks());
return new ApiResponse(MessageEnum.MAX_FILE_SIZE.getCode(), MessageEnum.MAX_FILE_SIZE.getRemarks());
}
}
package org.nafmii.param;
import com.github.pagehelper.Page;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author by zhangbr
* @date 2020/3/26.
*/
public class BeanTransferUtils {
public static <T> T transfer(Object text, Class<T> clazz) {
T t;
try {
t = clazz.newInstance();
if (text != null){
org.springframework.beans.BeanUtils.copyProperties(text, t);
}
return t;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static <T> List<T> transferList(List<?> list, Class<T> clazz) {
if(CollectionUtils.isEmpty(list)){
return Collections.emptyList();
}
List<T> result =new ArrayList<>();
for(Object each : list) {
result.add(transfer(each,clazz));
}
return result;
}
public static <T> PageResult<T> toPagedResult(List<?> list, Class<T> clazz) {
PageResult<T> result = new PageResult();
if (list instanceof Page) {
Page page = (Page)list;
result.setTotal(page.getTotal());
} else if (list != null) {
result.setTotal((long)list.size());
}
if (list != null && !list.isEmpty()) {
result.setList(transferList(list, clazz));
}
return result;
}
}
package org.nafmii.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author by zhangbr
* @date 2020/4/13.
*/
@Data
public class OrderBy {
@ApiModelProperty(value = "排序字段", example = "createTime")
private String column;
@ApiModelProperty(value = "排序方式(ASC:正序,DESC:倒序,默认:ASC)", example = "ASC")
private String type;
}
package org.nafmii.param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
/**
* @author by zhangbr
* @date 2020/6/24.
*/
public class PageQuery {
@ApiModelProperty("页码")
private Integer pageNo = 1;
@ApiModelProperty("每页条数,默认10")
private Integer pageSize = 10;
@ApiModelProperty("当前页码")
private Integer pageNum = 1;
@ApiModelProperty("每页显示条数,默认30")
private Integer pageSize = 30;
@ApiModelProperty(value = "是否分页,默认:true")
private Boolean isPage = true;
@ApiModelProperty(value = "关键字")
private String key;
public Integer getPageNum() {
return pageNum;
}
@ApiModelProperty(value = "排序集合")
private List<OrderBy> orderByList;
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
@ApiModelProperty(value = "是否分页,默认:true")
private Boolean isPage = true;
public Integer getPageSize() {
return pageSize;
}
@JsonIgnore
private Integer maxPageSize = 1000;
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
@JsonIgnore
public <T> Page<T> getPage(){
if (isPage){
return new Page<>(pageNo <= 0 ? 1 : pageNo, pageSize <= 0 ? 10 : pageSize);
public Boolean getPage() {
return isPage;
}
return new Page<>(0, maxPageSize);
public void setPage(Boolean page) {
isPage = page;
}
}
package org.nafmii.param;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
/**
* @author by zhangbr
* @date 2020/4/3.
*/
public class PageResult<T> {
@ApiModelProperty("数据")
private List<T> list;
@ApiModelProperty("总条数")
private long total;
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
}
package org.nafmii.response;
import java.io.Serializable;
/**
* @author lvyp
* @date 2021/4/26
*/
public class ApiResponse <T> implements Serializable {
private static final long serialVersionUID = 1L;
public static final int SUCCESS = 0;
public static final int FAIL = -1;
public static final int BUSY = -100;
public static final String SUCCESS_TEXT = "Success";
public static final String FAIL_TEXT = "Fail";
public static final String BUSY_TEXT = "Busy";
private long status;
private String statusText;
private T data;
public ApiResponse() {
this.status = 0L;
this.statusText = "Success";
}
public ApiResponse(long status, String statusText, T data) {
this.status = status;
this.statusText = statusText;
this.data = data;
}
public ApiResponse(long status, String statusText) {
this.status = status;
this.statusText = statusText;
}
public ApiResponse(T data) {
this.status = 0L;
this.statusText = "Success";
this.data = data;
}
public ApiResponse<T> fail(String msg){
return new ApiResponse<>(-1,msg);
}
public long getStatus() {
return this.status;
}
public void setStatus(long status) {
this.status = status;
if (status == 0L) {
this.statusText = "Success";
} else if (status == -100L) {
this.statusText = "Busy";
} else {
this.statusText = "";
}
}
public String getStatusText() {
return this.statusText;
}
public void setStatusText(String statusText) {
this.statusText = statusText;
}
public Object getData() {
return this.data;
}
public void setData(T data) {
this.data = data;
}
public static <M> ApiResponse<M> ok() {
return new ApiResponse();
}
public static <T> ApiResponse<T> ok(T data) {
return new ApiResponse(data);
}
}
package org.nafmii.response;
import lombok.Data;
import org.nafmii.constant.MessageEnum;
/**
* 通用返回对象
* Created by macro on 2019/4/19.
*/
@Data
public class Result<T> {
private Long code;
private String message;
private T data;
public Result(){};
public Result(Long code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public Result(Long code, String message) {
this.code = code;
this.message = message;
}
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public static <T> Result<T> success(T data) {
return new Result<T>(MessageEnum.SUCCESS.getCode(), MessageEnum.SUCCESS.getRemarks(), data);
}
/**
* 成功返回结果
*
* @param data 获取的数据
* @param message 提示信息
*/
public static <T> Result<T> success(T data, String message) {
return new Result<T>(MessageEnum.SUCCESS.getCode(), message, data);
}
/**
* 失败返回结果
* @param message 提示信息
*/
public static <T> Result<T> failed(String message) {
return new Result<T>(MessageEnum.FAIL.getCode(), message, null);
}
/**
* 参数验证失败返回结果
*/
public static <T> Result<T> validateFailed() {
return new Result<T>(MessageEnum.FAIL_PARAM_VALIDATE.getCode(),MessageEnum.FAIL_PARAM_VALIDATE.getRemarks());
}
/**
* 参数验证失败返回结果
* @param message 提示信息
*/
public static <T> Result<T> validateFailed(String message) {
return new Result<T>(MessageEnum.FAIL_PARAM_VALIDATE.getCode(), message, null);
}
/**
* 未登录返回结果
*/
public static <T> Result<T> unauthorized() {
return new Result<T>(MessageEnum.NO_LOGIN.getCode(), MessageEnum.NO_LOGIN.getRemarks());
}
}
package org.nafmii.response;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
/**
* @author lvyp
* @date 2021/4/26
*/
@Component
public class Springs implements ApplicationListener {
@Autowired
private ApplicationContext applicationContext;
private static ApplicationContext context;
public Springs() {
}
public void onApplicationEvent(ApplicationEvent applicationEvent) {
if (applicationEvent instanceof ContextRefreshedEvent) {
this.setContextStatic();
}
}
private synchronized void setContextStatic() {
context = this.applicationContext;
}
public static <T> T getBean(Class<? extends T> beanClass, String beanName) {
assertContextNotNull();
return context.getBean(beanName, beanClass);
}
public static Object getBean(String beanName) {
assertContextNotNull();
return context.getBean(beanName);
}
public static <T> T getBean(Class<? extends T> beanClass) {
assertContextNotNull();
return context.getBean(beanClass);
}
private static void assertContextNotNull() {
Assert.notNull(context, "The spring applicationContext was not initialized");
}
}
package org.nafmii.utils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.Page;
import org.nafmii.param.PageResult;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
......@@ -12,11 +13,14 @@ import java.util.List;
* @date 2020/3/26.
*/
public class BeanTransferUtils {
public static <T> T transfer(Object text, Class<T> clazz) {
T t;
try {
t = clazz.newInstance();
if (text != null){
org.springframework.beans.BeanUtils.copyProperties(text, t);
}
return t;
} catch (Exception e) {
throw new RuntimeException(e);
......@@ -33,32 +37,19 @@ public class BeanTransferUtils {
}
return result;
}
public static <T> PagedResult<T> toPagedResult(List<T> list, Page page) {
PagedResult<T> result = new PagedResult<>();
if (list != null && !list.isEmpty()){
result.setList(list);
if (page != null){
public static <T> PageResult<T> toPagedResult(List<?> list, Class<T> clazz) {
PageResult<T> result = new PageResult();
if (list instanceof Page) {
Page page = (Page)list;
result.setTotal(page.getTotal());
}else {
result.setTotal(list.size());
}
}
return result;
} else if (list != null) {
result.setTotal((long)list.size());
}
public static <T> PagedResult<T> toPagedResult(List<?> list, Class<T> clazz, Page page) {
PagedResult<T> result = new PagedResult<>();
if (page != null){
result.setTotal(page.getTotal());
}else {
if (list != null){
result.setTotal(list.size());
}
}
if (list != null && !list.isEmpty()){
result.setList(BeanTransferUtils.transferList(list, clazz));
if (list != null && !list.isEmpty()) {
result.setList(transferList(list, clazz));
}
return result;
}
}
package org.nafmii.utils;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
/**
* @author by zhangbr
* @date 2020/4/3.
*/
public class PageResult<T> {
@ApiModelProperty("数据")
private List<T> list;
@ApiModelProperty("总条数")
private long total;
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
}
package org.nafmii.utils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class PagedResult<T> {
@ApiModelProperty("数据")
private List<T> list;
@ApiModelProperty("总条数")
private long total;
}
......@@ -11,6 +11,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RequestUtils {
public static HttpServletRequest getRequest() {
......
......@@ -14,31 +14,31 @@
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2020.0.2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--&lt;!&ndash; https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies &ndash;&gt;-->
<!--<dependency>-->
<!--<groupId>org.springframework.cloud</groupId>-->
<!--<artifactId>spring-cloud-dependencies</artifactId>-->
<!--<version>2020.0.1</version>-->
<!--<type>pom</type>-->
<!--<scope>runtime</scope>-->
<!--</dependency>-->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
......
server.port=8761
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=false
spring.application.name=nafmii-eureka
eureka.server.enable-self-preservation=false
server:
port: 8761
eureka:
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${spring.cloud.client.ip-address}:${server.port}/eureka/
spring:
application:
name: eurka-server
\ No newline at end of file
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>nafmii-gateway</name>
<description>Demo project for Spring Boot</description>
<description>nafmii-gateway project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<java.version>8</java.version>
<spring-cloud.version>2020.0.2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<exclusions>
<!--<exclusion>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-web</artifactId>-->
<!--</exclusion>-->
<!--<exclusion>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-webflux</artifactId>-->
<!--</exclusion>-->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
......
......@@ -2,10 +2,11 @@ package org.nafmii;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication(scanBasePackages={"org.nafmii","org.nafmii.exception"})
@EnableDiscoveryClient
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class},scanBasePackages={"org.nafmii","org.nafmii.exception"})
@EnableEurekaClient
public class NafmiiGatewayApplication {
public static void main(String[] args) {
......
package org.nafmii.config;
import cn.hutool.core.date.DateTime;
import cn.hutool.log.Log;
import com.fasterxml.jackson.core.JsonProcessingException;
import io.jsonwebtoken.Claims;
import io.micrometer.core.instrument.util.StringUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.nafmii.exception.BusinessException;
import org.nafmii.utils.JwtUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* Created by zhangzhenfang on 2018/4/17.
*/
// */
@Slf4j
@Component
public class AccessFilter implements GlobalFilter, Ordered {
private String[] skipAuthUrls;
private ObjectMapper objectMapper;
@Autowired
private AntPathMatcher antPathMatcher; //路径匹配器
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
String url = exchange.getRequest().getURI().getPath();
//相关不需要的接口地址
String skip ="app/nafmii/test/search";
String skip ="/auth/login";
//跳过不需要验证的url
if (antPathMatcher.match(skip, url)){
return chain.filter(exchange);
......
server:
port: 8201
#eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka
port: 9000
tomcat:
uri-encoding: UTF-8
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8761/eureka
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
spring:
application:
name: gateway
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true #使用小写service-id
routes: #配置路由路径
- id: nafmii-admin
uri: lb://nafmii-admin
predicates:
- Path=/nafmii-admin/**
filters:
- StripPrefix=1
lower-case-service-id: true
routes:
- id: nafmii-app
uri: lb://nafmii-app
predicates:
- Path=/nafmii-app/**
filters:
- StripPrefix=1
\ No newline at end of file
application:
name: nafmii-gateway
management: #开启SpringBoot Admin的监控
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
\ No newline at end of file
package org.nafmii;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class NafmiiGatewayApplicationTests {
@Test
void contextLoads() {
}
}
......@@ -14,42 +14,40 @@
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2020.0.2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!--接口文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
......
......@@ -4,8 +4,6 @@ import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.io.InputStream;
import java.util.ArrayList;
......
package org.nafmii.nafmiimbg.model;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
public class CenterRole implements Serializable {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "角色名称")
private String rName;
@ApiModelProperty(value = "创建时间")
private Date creatTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "启用禁用 0 启用 1禁用")
private String isEnable;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getrName() {
return rName;
}
public void setrName(String rName) {
this.rName = rName;
}
public Date getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getIsEnable() {
return isEnable;
}
public void setIsEnable(String isEnable) {
this.isEnable = isEnable;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", rName=").append(rName);
sb.append(", creatTime=").append(creatTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", isEnable=").append(isEnable);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file
<?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="org.nafmii.nafmiimbg.mapper.CenterRoleMapper">
<resultMap id="BaseResultMap" type="org.nafmii.nafmiimbg.model.CenterRole">
<id column="ID" jdbcType="BIGINT" property="id" />
<result column="R_NAME" jdbcType="VARCHAR" property="rName" />
<result column="CREAT_TIME" jdbcType="TIMESTAMP" property="creatTime" />
<result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
<result column="IS_ENABLE" jdbcType="VARCHAR" property="isEnable" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
ID, R_NAME, CREAT_TIME, UPDATE_TIME, IS_ENABLE
</sql>
<select id="selectByExample" parameterType="org.nafmii.nafmiimbg.model.CenterRoleExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from CENTER_ROLE
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from CENTER_ROLE
where ID = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from CENTER_ROLE
where ID = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="org.nafmii.nafmiimbg.model.CenterRoleExample">
delete from CENTER_ROLE
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="org.nafmii.nafmiimbg.model.CenterRole">
insert into CENTER_ROLE (ID, R_NAME, CREAT_TIME,
UPDATE_TIME, IS_ENABLE)
values (#{id,jdbcType=BIGINT}, #{rName,jdbcType=VARCHAR}, #{creatTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}, #{isEnable,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="org.nafmii.nafmiimbg.model.CenterRole">
insert into CENTER_ROLE
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
ID,
</if>
<if test="rName != null">
R_NAME,
</if>
<if test="creatTime != null">
CREAT_TIME,
</if>
<if test="updateTime != null">
UPDATE_TIME,
</if>
<if test="isEnable != null">
IS_ENABLE,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="rName != null">
#{rName,jdbcType=VARCHAR},
</if>
<if test="creatTime != null">
#{creatTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="isEnable != null">
#{isEnable,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="org.nafmii.nafmiimbg.model.CenterRoleExample" resultType="java.lang.Long">
select count(*) from CENTER_ROLE
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update CENTER_ROLE
<set>
<if test="record.id != null">
ID = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.rName != null">
R_NAME = #{record.rName,jdbcType=VARCHAR},
</if>
<if test="record.creatTime != null">
CREAT_TIME = #{record.creatTime,jdbcType=TIMESTAMP},
</if>
<if test="record.updateTime != null">
UPDATE_TIME = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
<if test="record.isEnable != null">
IS_ENABLE = #{record.isEnable,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update CENTER_ROLE
set ID = #{record.id,jdbcType=BIGINT},
R_NAME = #{record.rName,jdbcType=VARCHAR},
CREAT_TIME = #{record.creatTime,jdbcType=TIMESTAMP},
UPDATE_TIME = #{record.updateTime,jdbcType=TIMESTAMP},
IS_ENABLE = #{record.isEnable,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="org.nafmii.nafmiimbg.model.CenterRole">
update CENTER_ROLE
<set>
<if test="rName != null">
R_NAME = #{rName,jdbcType=VARCHAR},
</if>
<if test="creatTime != null">
CREAT_TIME = #{creatTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="isEnable != null">
IS_ENABLE = #{isEnable,jdbcType=VARCHAR},
</if>
</set>
where ID = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="org.nafmii.nafmiimbg.model.CenterRole">
update CENTER_ROLE
set R_NAME = #{rName,jdbcType=VARCHAR},
CREAT_TIME = #{creatTime,jdbcType=TIMESTAMP},
UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
IS_ENABLE = #{isEnable,jdbcType=VARCHAR}
where ID = #{id,jdbcType=BIGINT}
</update>
</mapper>
\ No newline at end of file
......@@ -14,29 +14,15 @@
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2020.0.2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions><!-- 去掉springboot默认配置 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--Mysql数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
......@@ -47,22 +33,38 @@
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
<!--数据源-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.mybatis</groupId>-->
<!--<artifactId>mybatis</artifactId>-->
<!--</dependency>-->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
<scope>compile</scope>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
......
......@@ -2,8 +2,10 @@ package org.nafmii.nafmiiquartz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class NafmiiQuartzApplication {
public static void main(String[] args) {
......
server:
port: 10900
port: 8003
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
spring:
profiles:
active: dev
application:
name: nafimii-quartz
quartz:
job-store-type: jdbc #�־û������ݿ�
job-store-type: jdbc
properties:
org:
quartz:
datasource:
# �°�������com.mysql.jdbc.Driver���Ϊcom.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.cj.jdbc.Driver
# ����Դ��Ҫ���ʱ���׼��ָ�������ʽ������� You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
url: jdbc:mysql://140.143.249.40:3306/edz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
url: jdbc:mysql://114.112.96.30:30029/NAFMII_2.1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
password: Moxi123#
scheduler:
instancName: clusteredScheduler
instanceId: AUTO
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate #StdJDBCDelegate˵��֧�ּ�Ⱥ
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
clusterCheckinInterval: 1000
......@@ -34,8 +38,8 @@ spring:
initialize-schema: always
datasource:
druid:
password: 123456
url: jdbc:mysql://140.143.249.40:3306/edz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
password: Moxi123#
url: jdbc:mysql://114.112.96.30:30029/NAFMII_2.1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
......@@ -44,8 +48,8 @@ dynamic:
datasource:
dm:
#dm数据源 在相应的方法上使用 @DataSource("dm")
password: 123456
url: jdbc:mysql://140.143.249.40:3308/edz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
password: Moxi123#
url: jdbc:mysql://114.112.96.30:30029/NAFMII_2.1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
#type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
......@@ -4,7 +4,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<version>2.4.5</version>
<relativePath/>
</parent>
......@@ -27,171 +27,4 @@
<module>nafmii-mbg</module>
</modules>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<skipTests>true</skipTests>
<docker.host>http://192.168.3.101:2375</docker.host>
<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR5</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.0.RELEASE</spring-cloud-alibaba.version>
<pagehelper-starter.version>1.3.0</pagehelper-starter.version>
<pagehelper.version>5.2.0</pagehelper.version>
<druid.version>1.1.23</druid.version>
<hutool.version>5.4.0</hutool.version>
<mybatis-generator.version>1.4.0</mybatis-generator.version>
<mybatis.version>3.5.5</mybatis.version>
<mysql-connector.version>8.0.20</mysql-connector.version>
<spring-data-commons.version>2.3.0.RELEASE</spring-data-commons.version>
<jjwt.version>0.9.1</jjwt.version>
<aliyun-oss.version>2.5.0</aliyun-oss.version>
<logstash-logback.version>5.3</logstash-logback.version>
<admin-starter-server.version>2.2.3</admin-starter-server.version>
<minio.version>7.1.0</minio.version>
<knife4j.version>2.0.4</knife4j.version>
<nimbus-jose-jwt.version>8.16</nimbus-jose-jwt.version>
<mall-common.version>1.0-SNAPSHOT</mall-common.version>
<mall-mbg.version>1.0-SNAPSHOT</mall-mbg.version>
<ojdbc.version>10.2.0.4</ojdbc.version>
<swagger.version>2.9.2</swagger.version>
</properties>
<!--公共依赖-->
<dependencies>
<!--springboot相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--日志门面-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!--工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<!--严格控制的依赖版本-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.nafmii</groupId>
<artifactId>nafmii-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!--Spring Cloud 相关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--MyBatis分页插件starter-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper-starter.version}</version>
</dependency>
<!--MyBatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!--集成druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!--Hutool Java工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- MyBatis 生成器 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis-generator.version}</version>
</dependency>
<!-- MyBatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--SpringData工具包-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>${spring-data-commons.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle/ojdbc14 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>${ojdbc.version}</version>
</dependency>
<!--JWT(Json Web Token)登录支持-->
<!--集成logstash-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash-logback.version}</version>
</dependency>
<!--集成SpringBoot Admin监控-->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>${admin-starter-server.version}</version>
</dependency>
<!--Mysql数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
</dependency>
<!--接口文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!