15143018065 před 2 roky
rodič
revize
322cac9405

+ 22 - 0
docker/copy.sh

@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# 复制项目的文件到对应docker路径,便于一键生成镜像。
+usage() {
+	echo "Usage: sh copy.sh"
+	exit 1
+}
+
+
+# copy sql
+echo "begin copy sql "
+cp ../sql/ry_20220814.sql ./mysql/db
+cp ../sql/ry_config_20220510.sql ./mysql/db
+
+# copy html
+echo "begin copy html "
+cp -r ../ruoyi-ui/dist/** ./nginx/html/dist
+
+
+# copy jar
+echo "begin copy ruoyi-admin "
+cp ../ruoyi-admin/target/ruoyi-admin.jar ./ruoyi/admin/jar

+ 56 - 0
docker/deploy.sh

@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# 使用说明,用来提示输入参数
+usage() {
+	echo "Usage: sh 执行脚本.sh [port|base|modules|stop|rm]"
+	exit 1
+}
+
+# 开启所需端口
+port(){
+	firewall-cmd --add-port=80/tcp --permanent
+	firewall-cmd --add-port=8080/tcp --permanent
+	service firewalld restart
+}
+
+# 启动基础环境(必须)
+base(){
+	docker-compose up -d ruoyi-mysql ruoyi-redis
+}
+
+# 启动程序模块(必须)
+modules(){
+	docker-compose up -d ruoyi-nginx ruoyi-admin
+}
+
+# 关闭所有环境/模块
+stop(){
+	docker-compose stop
+}
+
+# 删除所有环境/模块
+rm(){
+	docker-compose rm
+}
+
+# 根据输入参数,选择执行对应方法,不输入则执行使用说明
+case "$1" in
+"port")
+	port
+;;
+"base")
+	base
+;;
+"modules")
+	modules
+;;
+"stop")
+	stop
+;;
+"rm")
+	rm
+;;
+*)
+	usage
+;;
+esac

+ 64 - 0
docker/docker-compose.yml

@@ -0,0 +1,64 @@
+version : '3.8'
+services:
+  ruoyi-mysql:
+    container_name: ruoyi-mysql
+    image: mysql:5.7
+    build:
+      context: ./mysql
+    ports:
+      - "3306:3306"
+    volumes:
+      - ./mysql/conf:/etc/mysql/conf.d
+      - ./mysql/logs:/logs
+      - ./mysql/data:/var/lib/mysql
+    command: [
+          'mysqld',
+          '--innodb-buffer-pool-size=80M',
+          '--character-set-server=utf8mb4',
+          '--collation-server=utf8mb4_unicode_ci',
+          '--default-time-zone=+8:00',
+          '--lower-case-table-names=1'
+        ]
+    environment:
+      MYSQL_DATABASE: 'ry-cloud'
+      MYSQL_ROOT_PASSWORD: password
+  ruoyi-redis:
+    container_name: ruoyi-redis
+    image: redis
+    build:
+      context: ./redis
+    ports:
+      - "6379:6379"
+    volumes:
+      - ./redis/conf/redis.conf:/home/ruoyi/redis/redis.conf
+      - ./redis/data:/data
+    command: redis-server /home/ruoyi/redis/redis.conf
+  ruoyi-nginx:
+    container_name: ruoyi-nginx
+    image: nginx
+    build:
+      context: ./nginx
+    ports:
+      - "80:80"
+    volumes:
+      - ./nginx/html/dist:/home/ruoyi/projects/ruoyi-ui
+      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
+      - ./nginx/logs:/var/log/nginx
+      - ./nginx/conf.d:/etc/nginx/conf.d
+    depends_on:
+      - ruoyi-gateway
+    links:
+      - ruoyi-gateway
+  ruoyi-admin:
+    container_name: ruoyi-admin
+    build:
+      context: ./ruoyi/admin
+      dockerfile: dockerfile
+    ports:
+      - "8080:8080"
+    depends_on:
+      - ruoyi-redis
+      - ruoyi-mysql
+    links:
+      - ruoyi-redis
+      - ruoyi-mysql

+ 1 - 0
docker/mysql/db/readme.txt

@@ -0,0 +1 @@
+存放sql目录下的所有脚本,用于docker自动执行。

+ 7 - 0
docker/mysql/dockerfile

@@ -0,0 +1,7 @@
+# 基础镜像
+FROM mysql:5.7
+# author
+MAINTAINER ruoyi
+
+# 执行sql脚本
+ADD ./db/*.sql /docker-entrypoint-initdb.d/

+ 36 - 0
docker/nginx/conf/nginx.conf

@@ -0,0 +1,36 @@
+worker_processes  1;
+
+events {
+    worker_connections  1024;
+}
+
+http {
+    include       mime.types;
+    default_type  application/octet-stream;
+    sendfile        on;
+    keepalive_timeout  65;
+
+    server {
+        listen       80;
+        server_name  localhost;
+
+		location / {
+            root   /home/ruoyi/projects/ruoyi-ui;
+			try_files $uri $uri/ /index.html;
+            index  index.html index.htm;
+        }
+		
+		location /prod-api/{
+			proxy_set_header Host $http_host;
+			proxy_set_header X-Real-IP $remote_addr;
+			proxy_set_header REMOTE-HOST $remote_addr;
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+			proxy_pass http://localhost:8080/;
+		}
+
+        error_page   500 502 503 504  /50x.html;
+        location = /50x.html {
+            root   html;
+        }
+    }
+}# requirepass 123456

+ 15 - 0
docker/nginx/dockerfile

@@ -0,0 +1,15 @@
+# 基础镜像
+FROM nginx
+# author
+MAINTAINER ruoyi
+
+# 挂载目录
+VOLUME /home/ruoyi/projects/ruoyi-ui
+# 创建目录
+RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
+# 指定路径
+WORKDIR /home/ruoyi/projects/ruoyi-ui
+# 复制conf文件到路径
+COPY ./conf/nginx.conf /etc/nginx/nginx.conf
+# 复制html文件到路径
+COPY ./html/dist /home/ruoyi/projects/ruoyi-ui

+ 1 - 0
docker/redis/conf/redis.conf

@@ -0,0 +1 @@
+# requirepass 123456

+ 13 - 0
docker/redis/dockerfile

@@ -0,0 +1,13 @@
+# 基础镜像
+FROM redis
+# author
+MAINTAINER ruoyi
+
+# 挂载目录
+VOLUME /home/ruoyi/redis
+# 创建目录
+RUN mkdir -p /home/ruoyi/redis
+# 指定路径
+WORKDIR /home/ruoyi/redis
+# 复制conf文件到路径
+COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf

+ 15 - 0
docker/ruoyi/admin/dockerfile

@@ -0,0 +1,15 @@
+# 基础镜像
+FROM  openjdk:8-jre
+# author
+MAINTAINER ruoyi
+
+# 挂载目录
+VOLUME /home/ruoyi
+# 创建目录
+RUN mkdir -p /home/ruoyi
+# 指定路径
+WORKDIR /home/ruoyi
+# 复制jar文件到路径
+COPY ./jar/ruoyi-admin.jar /home/ruoyi/ruoyi-admin.jar
+# 启动网关服务
+ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]

+ 1 - 0
docker/ruoyi/admin/jar/readme.txt

@@ -0,0 +1 @@
+存放okc模块打包好的jar文件,用于docker启动应用。

+ 1 - 0
okc/src/main/java/com/ruoyi/okc/service/impl/OkcVideoProServiceImpl.java

@@ -149,6 +149,7 @@ public class OkcVideoProServiceImpl implements IOkcVideoProService
             res.add(createBehavierBar(okcVideoPro, recList, ChartsStatus.BDBAR));
             res.add(createBehavierLine(okcVideoPro, recList, ChartsStatus.BLINE));
             res.add(createBehavierLine(okcVideoPro, recList, ChartsStatus.BDLINE));
+            // 
         }
         return res;
     }

+ 35 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/ChartUtils.java

@@ -39,6 +39,9 @@ import org.jfree.chart.ui.TextAnchor;
 import org.jfree.data.category.CategoryDataset;
 import org.jfree.data.category.DefaultCategoryDataset;
 import org.jfree.data.general.DefaultPieDataset;
+import org.jfree.data.xy.XYDataset;
+import org.jfree.data.xy.XYSeries;
+import org.jfree.data.xy.XYSeriesCollection;
 
 /**
  * @program: poi-word
@@ -208,6 +211,38 @@ public class ChartUtils {
         return res;
     }
 
+    public static int createScatterPort(String title,Map<String,Double> datas,String xName,String yName,String url){
+        int res = 0;
+        try {
+            //种类数据集
+            XYSeriesCollection dataset=new XYSeriesCollection();
+            //获取迭代器:
+            Set<Entry<String, Double>> set =  datas.entrySet();
+            Iterator iterator=(Iterator) set.iterator();
+            Entry entry=null;
+            while(iterator.hasNext()){
+                entry=(Entry) iterator.next();
+                XYSeries ie=new XYSeries("结果");
+                ie.add(Double.parseDouble(entry.getValue().toString()),//y
+                        Double.parseDouble(entry.getKey().toString()));
+                dataset.addSeries(ie);      //x
+            }
+            //创建折线图,折线图分水平显示和垂直显示两种
+            JFreeChart chart = ChartFactory.createXYLineChart(title, xName, yName, dataset,//2D折线图
+                    PlotOrientation.VERTICAL,
+                    false, // 是否显示图例(对于简单的柱状图必须是false)
+                    true, // 是否生成工具
+                    true);// 是否生成URL链接
+            //得到绘图区
+            setLineRender((CategoryPlot)chart.getPlot(),true,true);
+            org.jfree.chart.ChartUtils.saveChartAsPNG(new File(url), chart, 1000,600);
+            res ++;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return res;
+    }
+
     /**
      * 提供静态方法:获取报表图形3:折线图
      * @param title        标题