浏览代码

新增资源size字段

周浩 8 年之前
父节点
当前提交
fef033c36b

+ 12 - 0
hsweb-web-bean/src/main/java/org/hsweb/web/bean/po/resource/Resources.java

@@ -31,6 +31,9 @@ public class Resources extends GenericPo<String> {
     //资源分类
     private String classified;
 
+    //文件大小
+    private long size;
+
     //状态
     private int status;
 
@@ -42,6 +45,15 @@ public class Resources extends GenericPo<String> {
         this.classified = classified;
     }
 
+
+    public void setSize(long size) {
+        this.size = size;
+    }
+
+    public long getSize() {
+        return size;
+    }
+
     /**
      * 获取 资源名称
      *

+ 7 - 5
hsweb-web-bean/src/main/resources/system/install/sql/h2/install.sql

@@ -83,7 +83,7 @@ COMMENT ON COLUMN "S_TEMPLATE"."REVISION" IS '修订版';
 COMMENT ON COLUMN "S_TEMPLATE"."RELEASE" IS '当前发布版本';
 COMMENT ON COLUMN "S_TEMPLATE"."USING" IS '是否使用中';
 CREATE TABLE "S_MODULES" (
-  "U_ID"       VARCHAR2(32)  NOT NULL,
+  "U_ID"       VARCHAR2(32)   NOT NULL,
   "NAME"       VARCHAR2(256)  NOT NULL,
   "URI"        VARCHAR2(1024) NULL,
   "ICON"       VARCHAR2(256)  NULL,
@@ -126,6 +126,7 @@ CREATE TABLE "S_RESOURCES" (
   "PATH"        VARCHAR2(1024) NOT NULL,
   "TYPE"        VARCHAR2(256)  NOT NULL,
   "MD5"         VARCHAR2(256)  NOT NULL,
+  "SIZE"        NUMBER(32)     NULL,
   "STATUS"      NUMBER(4)      NULL,
   "CLASSIFIED"  VARCHAR2(32)   NULL,
   "CREATE_DATE" DATETIME       NOT NULL,
@@ -138,6 +139,7 @@ COMMENT ON COLUMN "S_RESOURCES"."PATH" IS '路径';
 COMMENT ON COLUMN "S_RESOURCES"."TYPE" IS '类型';
 COMMENT ON COLUMN "S_RESOURCES"."MD5" IS 'MD5校验值';
 COMMENT ON COLUMN "S_RESOURCES"."STATUS" IS '状态';
+COMMENT ON COLUMN "S_RESOURCES"."SIZE" IS '资源大小';
 COMMENT ON COLUMN "S_RESOURCES"."CLASSIFIED" IS '分类';
 COMMENT ON COLUMN "S_RESOURCES"."CREATE_DATE" IS '创建时间';
 COMMENT ON COLUMN "S_RESOURCES"."CREATOR_ID" IS '创建人';
@@ -161,7 +163,7 @@ COMMENT ON COLUMN "S_CLASSIFIED"."ICON" IS '图标';
 COMMENT ON COLUMN "S_CLASSIFIED"."CONFIG" IS '分类配置';
 COMMENT ON COLUMN "S_CLASSIFIED"."SORT_INDEX" IS '排序';
 CREATE TABLE "S_ROLE" (
-  "U_ID"   VARCHAR2(32) NOT NULL,
+  "U_ID"   VARCHAR2(32)  NOT NULL,
   "NAME"   VARCHAR2(256) NOT NULL,
   "TYPE"   VARCHAR2(50)  NULL,
   "REMARK" VARCHAR2(512) NULL
@@ -172,7 +174,7 @@ COMMENT ON COLUMN "S_ROLE"."NAME" IS '角色名称';
 COMMENT ON COLUMN "S_ROLE"."TYPE" IS '类型';
 COMMENT ON COLUMN "S_ROLE"."REMARK" IS '备注';
 CREATE TABLE "S_ROLE_MODULES" (
-  "U_ID"      VARCHAR2(32) NOT NULL,
+  "U_ID"      VARCHAR2(32)  NOT NULL,
   "MODULE_ID" VARCHAR2(256) NOT NULL,
   "ROLE_ID"   VARCHAR2(256) NOT NULL,
   "ACTIONS"   CLOB          NULL
@@ -183,7 +185,7 @@ COMMENT ON COLUMN "S_ROLE_MODULES"."MODULE_ID" IS '模块ID';
 COMMENT ON COLUMN "S_ROLE_MODULES"."ROLE_ID" IS '角色ID';
 COMMENT ON COLUMN "S_ROLE_MODULES"."ACTIONS" IS '可操作权限';
 CREATE TABLE "S_SCRIPT" (
-  "U_ID"          VARCHAR2(32)  NOT NULL,
+  "U_ID"          VARCHAR2(32)   NOT NULL,
   "NAME"          VARCHAR2(256)  NOT NULL,
   "CLASSIFIED_ID" VARCHAR2(1024) NOT NULL,
   "TYPE"          VARCHAR2(256)  NOT NULL,
@@ -221,7 +223,7 @@ COMMENT ON COLUMN "S_USER"."STATUS" IS '状态';
 COMMENT ON COLUMN "S_USER"."CREATE_DATE" IS '创建日期';
 COMMENT ON COLUMN "S_USER"."UPDATE_DATE" IS '修改日期';
 CREATE TABLE "S_USER_ROLE" (
-  "U_ID"    VARCHAR2(32) NOT NULL,
+  "U_ID"    VARCHAR2(32)  NOT NULL,
   "USER_ID" VARCHAR2(256) NOT NULL,
   "ROLE_ID" VARCHAR2(256) NOT NULL
 );

+ 2 - 0
hsweb-web-bean/src/main/resources/system/install/sql/mysql/install.sql

@@ -113,6 +113,8 @@ CREATE TABLE `s_resources` (
   COMMENT 'md5校验值',
   `status`      INT(4)        NULL
   COMMENT '状态',
+  `size`        LONG          NULL
+  COMMENT '资源大小',
   `create_date` DATETIME      NOT NULL
   COMMENT '创建时间',
   `creator_id`  VARCHAR(256)  NOT NULL

+ 6 - 4
hsweb-web-bean/src/main/resources/system/install/sql/oracle/install.sql

@@ -1,8 +1,8 @@
 CREATE TABLE ${jdbc.username}."S_USER_PROFILE" (
-  "U_ID"    VARCHAR2(32)  NOT NULL,
-  "CONTENT" CLOB          NOT NULL,
-  "TYPE"    VARCHAR2(512) NULL,
-  "USER_ID" VARCHAR2(32)  NULL
+"U_ID" VARCHAR2(32)  NOT NULL,
+"CONTENT" CLOB NOT NULL,
+"TYPE" VARCHAR2(512) NULL,
+"USER_ID" VARCHAR2(32)  NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_USER_PROFILE" IS '用户配置表';
 COMMENT ON COLUMN ${jdbc.username}."S_USER_PROFILE"."U_ID" IS 'UID';
@@ -146,6 +146,7 @@ CREATE TABLE ${jdbc.username}."S_RESOURCES" (
 "TYPE" VARCHAR2(256)  NOT NULL,
 "CLASSIFIED" VARCHAR2(32)   NULL,
 "MD5" VARCHAR2(256)  NOT NULL,
+"SIZE" NUMBER(32)      NULL,
 "STATUS" NUMBER(4)      NULL,
 "CREATE_DATE" DATE NOT NULL,
 "CREATOR_ID" VARCHAR2(256)  NOT NULL
@@ -157,6 +158,7 @@ COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."PATH" IS '路径';
 COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."TYPE" IS '类型';
 COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."CLASSIFIED" IS '分类';
 COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."MD5" IS 'MD5校验值';
+COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."SIZE" IS '资源大小';
 COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."STATUS" IS '状态';
 COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."CREATE_DATE" IS '创建时间';
 COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."CREATOR_ID" IS '创建人';

+ 1 - 0
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/resource/ResourcesMapper.xml

@@ -11,6 +11,7 @@
         <result property="creatorId" column="creator_id" javaType="String" jdbcType="VARCHAR" />
         <result property="md5" column="md5" javaType="String" jdbcType="VARCHAR" />
         <result property="type" column="type" javaType="String" jdbcType="VARCHAR" />
+        <result property="size" column="size" javaType="long" jdbcType="NUMERIC" />
         <result property="status" column="status" javaType="int" jdbcType="INTEGER" />
         <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP" />
     </resultMap>

+ 1 - 0
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/resource/ResourcesMapper.xml

@@ -11,6 +11,7 @@
         <result property="creatorId" column="creator_id" javaType="String" jdbcType="VARCHAR" />
         <result property="md5" column="md5" javaType="String" jdbcType="VARCHAR" />
         <result property="type" column="type" javaType="String" jdbcType="VARCHAR" />
+        <result property="size" column="size" javaType="long" jdbcType="NUMERIC" />
         <result property="status" column="status" javaType="int" jdbcType="INTEGER" />
         <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP" />
     </resultMap>

+ 7 - 10
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/resource/FileServiceImpl.java

@@ -1,9 +1,5 @@
 package org.hsweb.web.service.impl.resource;
 
-/**
- * Created by 浩 on 2015-11-26 0026.
- */
-
 import org.apache.commons.codec.digest.DigestUtils;
 import org.hsweb.web.bean.po.resource.Resources;
 import org.hsweb.web.bean.po.user.User;
@@ -34,14 +30,14 @@ public class FileServiceImpl implements FileService {
     }
 
     @Override
-    public InputStream readResources(String resourceId) throws Exception {
+    public InputStream readResources(String resourceId) throws IOException {
         Resources resources = resourcesService.selectByPk(resourceId);
         if (resources == null) throw new NotFoundException("文件不存在");
         return readResources(resources);
     }
 
     @Override
-    public InputStream readResources(Resources resources) throws Exception {
+    public InputStream readResources(Resources resources) throws IOException {
         String fileBasePath = getFileBasePath();
         File file = new File(fileBasePath.concat(resources.getPath().concat("/".concat(resources.getMd5()))));
         if (!file.canRead()) {
@@ -51,7 +47,7 @@ public class FileServiceImpl implements FileService {
     }
 
     @Override
-    public void writeResources(Resources resources, OutputStream outputStream) throws Exception {
+    public void writeResources(Resources resources, OutputStream outputStream) throws IOException {
         try (InputStream inputStream = readResources(resources)) {
             byte b[] = new byte[2048 * 10];
             while ((inputStream.read(b)) != -1) {
@@ -61,7 +57,7 @@ public class FileServiceImpl implements FileService {
     }
 
     @Transactional(rollbackFor = Throwable.class)
-    public Resources saveFile(InputStream is, String fileName) throws Exception {
+    public Resources saveFile(InputStream is, String fileName) throws IOException {
         //配置中的文件上传根路径
         String fileBasePath = getFileBasePath();
         //文件存储的相对路径,以日期分隔,每天创建一个新的目录
@@ -73,12 +69,13 @@ public class FileServiceImpl implements FileService {
         String newName = MD5.encode(String.valueOf(System.nanoTime())); //临时文件名 ,纳秒的md5值
         String fileAbsName = absPath.concat("/").concat(newName);
         //try with resource
+        long fileLength = 0;
         try (BufferedInputStream in = new BufferedInputStream(is);
-             //写出文件
              BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(fileAbsName))) {
             byte[] buffer = new byte[2048 * 10];
             int len;
             while ((len = in.read(buffer)) != -1) {
+                fileLength+=len;
                 os.write(buffer, 0, len);
             }
             os.flush();
@@ -104,6 +101,7 @@ public class FileServiceImpl implements FileService {
         resources.setMd5(md5);
         resources.setCreateDate(new Date());
         resources.setType("file");
+        resources.setSize(fileLength);
         resources.setName(fileName);
         try {
             User user = WebUtil.getLoginUser();
@@ -115,7 +113,6 @@ public class FileServiceImpl implements FileService {
         } catch (Exception e) {
             resources.setCreatorId("1");
         }
-
         resourcesService.insert(resources);
         return resources;
     }