Mark 6 years ago
parent
commit
bd9323de75

+ 1 - 2
README.md

@@ -62,7 +62,7 @@ renren-fast
 **技术选型:** 
 - 核心框架:Spring Boot 2.0
 - 安全框架:Apache Shiro 1.4
-- 视图框架:Spring MVC 4.3
+- 视图框架:Spring MVC 5.0
 - 持久层框架:MyBatis 3.3
 - 定时器:Quartz 2.3
 - 数据库连接池:Druid 1.0
@@ -77,7 +77,6 @@ renren-fast
 - 执行db/mysql.sql文件,初始化数据
 - 修改application-dev.yml,更新MySQL账号和密码
 - Eclipse、IDEA运行RenrenApplication.java,则可启动项目
-- 项目后端地址:http://localhost:8080/renren-fast
 - Swagger路径:http://localhost:8080/renren-fast/swagger/index.html
 
 <br> 

File diff suppressed because it is too large
+ 182 - 23
db/oracle.sql


File diff suppressed because it is too large
+ 189 - 11
db/postgresql.sql


+ 1 - 1
db/mssql.sql

@@ -28,7 +28,7 @@ CREATE TABLE sys_user (
 
 -- 系统用户Token
 CREATE TABLE sys_user_token (
-  user_id bigint NOT NULL IDENTITY(1,1),
+  user_id bigint NOT NULL,
   token varchar(100) NOT NULL,
   expire_time datetime,
   update_time datetime,

+ 15 - 7
pom-war.xml

@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>1.5.10.RELEASE</version>
+        <version>2.0.3.RELEASE</version>
     </parent>
 
     <properties>
@@ -19,23 +19,26 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <java.version>1.8</java.version>
         <mybatisplus.spring.boot.version>1.0.5</mybatisplus.spring.boot.version>
-        <mybatisplus.version>2.1.9</mybatisplus.version>
+        <mybatisplus.version>2.2.0</mybatisplus.version>
         <mysql.version>5.1.38</mysql.version>
-        <druid.version>1.1.3</druid.version>
+        <mssql.version>4.0</mssql.version>
+        <oracle.version>11.2.0.3</oracle.version>
+        <druid.version>1.1.10</druid.version>
         <quartz.version>2.3.0</quartz.version>
         <commons.lang.version>2.6</commons.lang.version>
-        <commons.fileupload.version>1.3.1</commons.fileupload.version>
+        <commons.fileupload.version>1.2.2</commons.fileupload.version>
         <commons.io.version>2.5</commons.io.version>
         <commons.codec.version>1.10</commons.codec.version>
         <commons.configuration.version>1.10</commons.configuration.version>
-        <shiro.version>1.3.2</shiro.version>
+        <shiro.version>1.4.0</shiro.version>
         <jwt.version>0.7.0</jwt.version>
         <kaptcha.version>0.0.9</kaptcha.version>
         <qiniu.version>[7.2.0, 7.2.99]</qiniu.version>
-        <aliyun.oss.version>2.5.0</aliyun.oss.version>
+        <aliyun.oss.version>2.8.3</aliyun.oss.version>
         <qcloud.cos.version>4.4</qcloud.cos.version>
-        <swagger.version>2.2.2</swagger.version>
+        <swagger.version>2.8.0</swagger.version>
         <joda.time.version>2.9.9</joda.time.version>
+        <fastjson.version>1.2.45</fastjson.version>
     </properties>
 
     <dependencies>
@@ -182,6 +185,11 @@
             <artifactId>joda-time</artifactId>
             <version>${joda.time.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>${fastjson.version}</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 30 - 25
pom.xml

@@ -11,7 +11,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>2.0.0.RELEASE</version>
+		<version>2.0.3.RELEASE</version>
 	</parent>
 
 	<properties>
@@ -19,18 +19,18 @@
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 		<java.version>1.8</java.version>
 		<mybatisplus.spring.boot.version>1.0.5</mybatisplus.spring.boot.version>
-		<mybatisplus.version>2.1.9</mybatisplus.version>
+		<mybatisplus.version>2.2.0</mybatisplus.version>
 		<mysql.version>5.1.38</mysql.version>
 		<mssql.version>4.0</mssql.version>
 		<oracle.version>11.2.0.3</oracle.version>
-		<druid.version>1.1.9</druid.version>
+		<druid.version>1.1.10</druid.version>
 		<quartz.version>2.3.0</quartz.version>
 		<commons.lang.version>2.6</commons.lang.version>
 		<commons.fileupload.version>1.2.2</commons.fileupload.version>
 		<commons.io.version>2.5</commons.io.version>
 		<commons.codec.version>1.10</commons.codec.version>
 		<commons.configuration.version>1.10</commons.configuration.version>
-		<shiro.version>1.3.2</shiro.version>
+		<shiro.version>1.4.0</shiro.version>
 		<jwt.version>0.7.0</jwt.version>
 		<kaptcha.version>0.0.9</kaptcha.version>
 		<qiniu.version>[7.2.0, 7.2.99]</qiniu.version>
@@ -39,6 +39,7 @@
 		<swagger.version>2.8.0</swagger.version>
 		<joda.time.version>2.9.9</joda.time.version>
 		<fastjson.version>1.2.45</fastjson.version>
+		<hutool.version>4.1.1</hutool.version>
 
 		<!--wagon plugin 配置-->
 		<service-path>/work/renren</service-path>
@@ -50,11 +51,6 @@
 
 	<dependencies>
 		<dependency>
-			<groupId>com.alibaba</groupId>
-			<artifactId>fastjson</artifactId>
-			<version>${fastjson.version}</version>
-		</dependency>
-		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-test</artifactId>
 			<scope>test</scope>
@@ -101,22 +97,22 @@
 			<version>${mysql.version}</version>
 		</dependency>
 		 <!--oracle驱动-->
-		<dependency>
-		<groupId>com.oracle</groupId>
-		<artifactId>ojdbc6</artifactId>
-		<version>${oracle.version}</version>
-		</dependency>
+		<!--<dependency>-->
+			<!--<groupId>com.oracle</groupId>-->
+			<!--<artifactId>ojdbc6</artifactId>-->
+			<!--<version>${oracle.version}</version>-->
+		<!--</dependency>-->
 		 <!--mssql驱动-->
-		<dependency>
-		<groupId>com.microsoft.sqlserver</groupId>
-		<artifactId>sqljdbc4</artifactId>
-		<version>${mssql.version}</version>
-		</dependency>
+		<!--<dependency>-->
+			<!--<groupId>com.microsoft.sqlserver</groupId>-->
+			<!--<artifactId>sqljdbc4</artifactId>-->
+			<!--<version>${mssql.version}</version>-->
+		<!--</dependency>-->
 		 <!--postgresql驱动-->
-		<dependency>
-		<groupId>org.postgresql</groupId>
-		<artifactId>postgresql</artifactId>
-		</dependency>
+		<!--<dependency>-->
+			<!--<groupId>org.postgresql</groupId>-->
+			<!--<artifactId>postgresql</artifactId>-->
+		<!--</dependency>-->
 		<dependency>
 			<groupId>com.alibaba</groupId>
 			<artifactId>druid-spring-boot-starter</artifactId>
@@ -214,6 +210,16 @@
 			<artifactId>joda-time</artifactId>
 			<version>${joda.time.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>fastjson</artifactId>
+			<version>${fastjson.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>cn.hutool</groupId>
+			<artifactId>hutool-all</artifactId>
+			<version>${hutool.version}</version>
+		</dependency>
 	</dependencies>
 
 	<build>
@@ -250,8 +256,7 @@
 					<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>
 					<commands>
 						<!-- Kill Old Process -->
-						<command>pkill -f ${pack-name}</command>
-						<command>rm -f ${service-path}/renren.log</command>
+						<command>kill -9 `ps -ef |grep ${project.artifactId}.jar|grep -v "grep" |awk '{print $2}'`</command>
 						<!-- Restart jar package,write result into renren.log -->
 						<command><![CDATA[nohup java -jar ${service-path}/${pack-name} --spring.profiles.active=test > ${service-path}/renren.log 2>&1 & ]]></command>
 						<command><![CDATA[netstat -nptl]]></command>

+ 2 - 2
src/main/java/io/renren/common/utils/PageUtils.java

@@ -61,10 +61,10 @@ public class PageUtils implements Serializable {
 	 */
 	public PageUtils(Page<?> page) {
 		this.list = page.getRecords();
-		this.totalCount = page.getTotal();
+		this.totalCount = (int)page.getTotal();
 		this.pageSize = page.getSize();
 		this.currPage = page.getCurrent();
-		this.totalPage = page.getPages();
+		this.totalPage = (int)page.getPages();
 	}
 
 	public int getTotalCount() {

+ 71 - 0
src/main/java/io/renren/config/DemoConfig.java

@@ -0,0 +1,71 @@
+//package io.renren.config;
+//
+//import com.google.gson.Gson;
+//import io.renren.common.utils.HttpContextUtils;
+//import io.renren.common.utils.R;
+//import org.apache.http.HttpStatus;
+//import org.springframework.boot.web.servlet.FilterRegistrationBean;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import javax.servlet.*;
+//import javax.servlet.FilterConfig;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//
+//@Configuration
+//public class DemoConfig {
+//
+//    @Bean
+//    public FilterRegistrationBean demoFilterRegistration() {
+//        FilterRegistrationBean registration = new FilterRegistrationBean();
+//        registration.setDispatcherTypes(DispatcherType.REQUEST);
+//        registration.setFilter(new DemoFilter());
+//        registration.addUrlPatterns("/sys/*");
+//        registration.setName("demoFilter");
+//        return registration;
+//    }
+//
+//    class DemoFilter implements Filter{
+//
+//        @Override
+//        public void init(FilterConfig filterConfig) throws ServletException {
+//
+//        }
+//
+//        @Override
+//        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+//            HttpServletRequest request = (HttpServletRequest)servletRequest;
+//            HttpServletResponse response = (HttpServletResponse) servletResponse;
+//
+//            if(request.getMethod().equalsIgnoreCase("OPTIONS")){
+//                filterChain.doFilter(servletRequest, servletResponse);
+//                return;
+//            }
+//
+//            String uri = request.getRequestURI();
+//            String[] filters = new String[]{"save","update","delete","password"};
+//            //判断是否包含
+//            for(String filter : filters){
+//                if(uri.indexOf(filter) != -1){
+//                    R r = R.error(HttpStatus.SC_OK, "测试环境,不能操作!");
+//                    String json = new Gson().toJson(r);
+//
+//                    response.setContentType("application/json;charset=utf-8");
+//                    response.setHeader("Access-Control-Allow-Credentials", "true");
+//                    response.setHeader("Access-Control-Allow-Origin", HttpContextUtils.getOrigin());
+//                    response.getWriter().print(json);
+//                    return;
+//                }
+//            }
+//
+//            filterChain.doFilter(servletRequest, servletResponse);
+//        }
+//
+//        @Override
+//        public void destroy() {
+//
+//        }
+//    }
+//}

+ 28 - 0
src/main/java/io/renren/config/WebConfig.java

@@ -0,0 +1,28 @@
+package io.renren.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * WebMvc配置
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Configuration
+public class WebConfig implements WebMvcConfigurer {
+//    @Override
+//    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
+//        MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
+//        ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper();
+//
+//        //生成json时,将所有Long转换成String
+//        SimpleModule simpleModule = new SimpleModule();
+//        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+//        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
+//        objectMapper.registerModule(simpleModule);
+//
+//        jackson2HttpMessageConverter.setObjectMapper(objectMapper);
+//        converters.add(0, jackson2HttpMessageConverter);
+//    }
+
+}

+ 2 - 1
src/main/java/io/renren/modules/app/form/LoginForm.java

@@ -18,7 +18,8 @@ package io.renren.modules.app.form;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.NotBlank;
+
+import javax.validation.constraints.NotBlank;
 
 /**
  * 登录表单

+ 2 - 1
src/main/java/io/renren/modules/app/form/RegisterForm.java

@@ -18,7 +18,8 @@ package io.renren.modules.app.form;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.NotBlank;
+
+import javax.validation.constraints.NotBlank;
 
 /**
  * 注册表单

+ 1 - 1
src/main/java/io/renren/modules/job/entity/ScheduleJobEntity.java

@@ -18,8 +18,8 @@ package io.renren.modules.job.entity;
 
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
-import org.hibernate.validator.constraints.NotBlank;
 
+import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
 import java.util.Date;
 

+ 1 - 1
src/main/java/io/renren/modules/oss/cloud/CloudStorageConfig.java

@@ -20,10 +20,10 @@ package io.renren.modules.oss.cloud;
 import io.renren.common.validator.group.AliyunGroup;
 import io.renren.common.validator.group.QcloudGroup;
 import io.renren.common.validator.group.QiniuGroup;
-import org.hibernate.validator.constraints.NotBlank;
 import org.hibernate.validator.constraints.Range;
 import org.hibernate.validator.constraints.URL;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 

+ 1 - 1
src/main/java/io/renren/modules/sys/entity/SysRoleEntity.java

@@ -4,8 +4,8 @@ package io.renren.modules.sys.entity;
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
-import org.hibernate.validator.constraints.NotBlank;
 
+import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;

+ 2 - 2
src/main/java/io/renren/modules/sys/entity/SysUserEntity.java

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import io.renren.common.validator.group.AddGroup;
 import io.renren.common.validator.group.UpdateGroup;
-import org.hibernate.validator.constraints.Email;
-import org.hibernate.validator.constraints.NotBlank;
 
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;

+ 1 - 1
src/main/java/io/renren/modules/sys/service/impl/SysRoleServiceImpl.java

@@ -70,7 +70,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleDao, SysRoleEntity> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void update(SysRoleEntity role) {
-        this.updateAllColumnById(role);
+        this.updateById(role);
 
         //检查权限是否越权
         checkPrems(role);

+ 2 - 2
src/main/resources/application-dev.yml

@@ -19,7 +19,7 @@ spring:
             max-pool-prepared-statement-per-connection-size: 20
             time-between-eviction-runs-millis: 60000
             min-evictable-idle-time-millis: 300000
-            validation-query: SELECT 1 FROM DUAL
+            #validation-query: SELECT 1 FROM DUAL
             test-while-idle: true
             test-on-borrow: false
             test-on-return: false
@@ -32,7 +32,7 @@ spring:
                 stat:
                     log-slow-sql: true
                     slow-sql-millis: 1000
-                    merge-sql: true
+                    merge-sql: false
                 wall:
                     config:
                         multi-statement-allow: true

+ 49 - 49
src/main/resources/application.yml

@@ -1,46 +1,46 @@
 # Tomcat
 server:
-    tomcat:
-        uri-encoding: UTF-8
-        max-threads: 1000
-        min-spare-threads: 30
-    port: 8080
-    connection-timeout: 5000ms
-    servlet:
-      context-path: /renren-fast
+  tomcat:
+    uri-encoding: UTF-8
+    max-threads: 1000
+    min-spare-threads: 30
+  port: 8080
+  connection-timeout: 5000ms
+  servlet:
+    context-path: /renren-fast
 
 
 spring:
-    # 环境 dev|test|prod
-    profiles:
-        active: dev
-    # jackson时间格式化
-    jackson:
-        time-zone: GMT+8
-        date-format: yyyy-MM-dd HH:mm:ss
-    servlet:
-      multipart:
-        max-file-size: 100MB
-        max-request-size: 100MB
-        enabled: true
-    redis:
-        open: false  # 是否开启redis缓存  true开启   false关闭
-        database: 0
-        host: localhost
-        port: 6379
-        password:   Nannan2017JK    # 密码(默认为空)
-        timeout: 6000ms  # 连接超时时长(毫秒)
-        jedis:
-          pool:
-              max-active: 1000  # 连接池最大连接数(使用负值表示没有限制)
-              max-wait: -1ms      # 连接池最大阻塞等待时间(使用负值表示没有限制)
-              max-idle: 10      # 连接池中的最大空闲连接
-              min-idle: 5       # 连接池中的最小空闲连接
-    mvc:
-        throw-exception-if-no-handler-found: true
-        static-path-pattern: /static/**
-    resources:
-        add-mappings: false
+  # 环境 dev|test|prod
+  profiles:
+    active: dev
+  # jackson时间格式化
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
+  servlet:
+    multipart:
+      max-file-size: 100MB
+      max-request-size: 100MB
+      enabled: true
+  redis:
+    open: false  # 是否开启redis缓存  true开启   false关闭
+    database: 0
+    host: localhost
+    port: 6379
+    password:    # 密码(默认为空)
+    timeout: 6000ms  # 连接超时时长(毫秒)
+    jedis:
+      pool:
+        max-active: 1000  # 连接池最大连接数(使用负值表示没有限制)
+        max-wait: -1ms      # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        max-idle: 10      # 连接池中的最大空闲连接
+        min-idle: 5       # 连接池中的最小空闲连接
+  mvc:
+    throw-exception-if-no-handler-found: true
+    static-path-pattern: /static/**
+  resources:
+    add-mappings: false
 
 #mybatis
 mybatis-plus:
@@ -73,15 +73,15 @@ mybatis-plus:
     call-setters-on-nulls: true
 
 renren:
-    redis:
-      open: true
-    shiro:
-      redis: true
-    # APP模块,是通过jwt认证的,如果要使用APP模块,则需要修改【加密秘钥】
-    jwt:
-        # 加密秘钥
-        secret: f4e2e52034348f86b67cde581c0f9eb5[www.renren.io]
-        # token有效时长,7天,单位秒
-        expire: 604800
-        header: token
+  redis:
+    open: false
+  shiro:
+    redis: false
+  # APP模块,是通过jwt认证的,如果要使用APP模块,则需要修改【加密秘钥】
+  jwt:
+    # 加密秘钥
+    secret: f4e2e52034348f86b67cde581c0f9eb5[www.renren.io]
+    # token有效时长,7天,单位秒
+    expire: 604800
+    header: token