diff --git a/hsweb-web-bean/src/main/java/org/hsweb/web/bean/po/resource/Resources.java b/hsweb-web-bean/src/main/java/org/hsweb/web/bean/po/resource/Resources.java index 67815effe..56c5fa31d 100644 --- a/hsweb-web-bean/src/main/java/org/hsweb/web/bean/po/resource/Resources.java +++ b/hsweb-web-bean/src/main/java/org/hsweb/web/bean/po/resource/Resources.java @@ -31,6 +31,9 @@ public class Resources extends GenericPo { //资源分类 private String classified; + //文件大小 + private long size; + //状态 private int status; @@ -42,6 +45,15 @@ public class Resources extends GenericPo { this.classified = classified; } + + public void setSize(long size) { + this.size = size; + } + + public long getSize() { + return size; + } + /** * 获取 资源名称 * diff --git a/hsweb-web-bean/src/main/resources/system/install/sql/h2/install.sql b/hsweb-web-bean/src/main/resources/system/install/sql/h2/install.sql index e63cd819d..3b06a25fe 100644 --- a/hsweb-web-bean/src/main/resources/system/install/sql/h2/install.sql +++ b/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 ); diff --git a/hsweb-web-bean/src/main/resources/system/install/sql/mysql/install.sql b/hsweb-web-bean/src/main/resources/system/install/sql/mysql/install.sql index 66df21b41..d0cdb9572 100644 --- a/hsweb-web-bean/src/main/resources/system/install/sql/mysql/install.sql +++ b/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 diff --git a/hsweb-web-bean/src/main/resources/system/install/sql/oracle/install.sql b/hsweb-web-bean/src/main/resources/system/install/sql/oracle/install.sql index eec033e6c..1e8e5a617 100644 --- a/hsweb-web-bean/src/main/resources/system/install/sql/oracle/install.sql +++ b/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 '创建人'; diff --git a/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/resource/ResourcesMapper.xml b/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/resource/ResourcesMapper.xml index 1f63a79f8..60f35face 100644 --- a/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/resource/ResourcesMapper.xml +++ b/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/resource/ResourcesMapper.xml @@ -11,6 +11,7 @@ + diff --git a/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/resource/ResourcesMapper.xml b/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/resource/ResourcesMapper.xml index 1f63a79f8..60f35face 100644 --- a/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/resource/ResourcesMapper.xml +++ b/hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/resource/ResourcesMapper.xml @@ -11,6 +11,7 @@ + diff --git a/hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/resource/FileServiceImpl.java b/hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/resource/FileServiceImpl.java index 112e9311d..afe1c4ce3 100644 --- a/hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/resource/FileServiceImpl.java +++ b/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; }