Java代码公用的在最后,单独的在每一节代码里
1 列表
效果
![](https://img-blog.csdnimg.cn/50c3651bd5cb45ed84c836a425e90f9e.png)
1.1 页面
1.1.1html
<!DOCTYPE html>
<html lang="en" class="no-js">
<body>
<!--#include virtual="../../common/head_global.html"-->
<!--#include virtual="../../common/head_theme.html"-->
<div class="clearfix"></div>
<!-- BEGIN CONTAINER -->
<div class="page-container" style="margin: 0px;">
<!-- BEGIN CONTENT -->
<div class="page-content-wrapper">
<div class="page-content">
<!-- BEGIN PAGE CONTENT INNER -->
<div class="row">
<div class="col-md-12">
<!-- BEGIN EXAMPLE TABLE PORTLET-->
<div class="panel-body" style="padding:2px 2px;">
<div class="panel panel-default">
<div class="panel-heading">系统设置>>磁盘空间</div>
<div class="panel-body">
<form id="formSearch" class="form-horizontal">
<div class="form-group" style="margin-top:3px">
<div class="col-md-2">
<select id="deleteFlag" class="form-control">
<option value="1">未删除</option>
<option value="0">已删除</option>
</select>
</div>
<label class="control-label col-sm-1" >是否启用</label>
<div class="col-md-2">
<select id="isQy" class="form-control">
<option value="">全部</option>
<option value="1">是</option>
<option value="2">否</option>
</select>
</div>
<label class="control-label col-sm-1" >是否占满</label>
<div class="col-md-2">
<select id="isZm" class="form-control">
<option value="">全部</option>
<option value="1">是</option>
<option value="2">否</option>
</select>
</div>
<label class="control-label col-sm-1" >是否挂载</label>
<div class="col-md-2">
<select id="isGz" class="form-control">
<option value="">全部</option>
<option value="1">是</option>
<option value="2">否</option>
</select>
</div>
</div>
<div class="form-group" style="margin-top:3px">
<div class="col-md-2">
<input type="text" class="form-control" id="driveLetter" placeholder="请输入盘符" autocomplete="off" >
</div>
<div class="col-md-4" style="text-align:left;">
<button type="button" id="btn_query" class="btn btn-primary" style="margin-left:5px">查询</button>
<button type="button" id="btn_add" class="btn btn-primary" style="margin-left:5px;">新增</button>
<button type="button" id="btn_delete" class="btn btn-primary" style="margin-left:5px;">删除</button>
<button type="button" id="btn_recover" class="btn btn-primary" style="margin-left:5px;">恢复</button>
</div>
<div class="col-md-6" class="form-control">
<label class="control-label" style="color:red" >磁盘空间小于20G时,将自动切换下一个磁盘空间充足的挂载磁盘,如手动切换时剩余磁盘空间不能小于20G</label>
</div>
</div>
</form>
</div>
</div>
<table id="tb_obj"></table>
</div>
</div>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
<!-- END CONTAINER -->
<!-- BEGIN modal_add -->
<div style="margin-top:6%;display: none" class="modal fade" id="modal_add" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="modal_add_label">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="modal_add_label">新增</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="uploadForm" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label col-sm-2" >盘符</label>
<div class="col-md-9">
<input type="text" autocomplete="off" class="form-control" id="add_driveLetter" placeholder="请输入盘符">
</div>
</div>
<!--<div class="form-group">-->
<!--<label class="control-label col-sm-2" >路径</label>-->
<!--<div class="col-md-9">-->
<!--<input type="text" autocomplete="off" class="form-control" id="add_path" placeholder="请输入路径">-->
<!--</div>-->
<!--</div>-->
<!--<div class="form-group">-->
<!--<label class="control-label col-md-2">是否启用</label>-->
<!--<div class="col-md-9">-->
<!--<select id="add_isQy" class="form-control">-->
<!--<option value='1'>是</option>-->
<!--<option value='2' selected>否</option>-->
<!--</select>-->
<!--</div>-->
<!--</div>-->
<!--<div class="form-group">-->
<!--<label class="control-label col-md-2">是否占满</label>-->
<!--<div class="col-md-9">-->
<!--<select id="add_isZm" class="form-control">-->
<!--<option value='1'>是</option>-->
<!--<option value='2' selected>否</option>-->
<!--</select>-->
<!--</div>-->
<!--</div>-->
<div class="form-group">
<label class="control-label col-md-2">是否挂载</label>
<div class="col-md-9">
<select id="add_isGz" class="form-control">
<option value='1'>是</option>
<option value='2' selected>否</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" >简介</label>
<div class="col-md-9">
<textarea rows="8" class="form-control" id="add_remarks" ></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button>
<button type="button" id="btn_submit_add" class="btn btn-primary" data-dismiss="modal"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>保存</button>
</div>
</div>
</div>
</div>
<!-- END modal_add -->
<!-- BEGIN modal_update -->
<div style="margin-top:6%;display: none" class="modal fade" id="modal_update" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="modal_update_label">
<div class="modal-dialog" role="document" style="margin-left: 30%">
<div class="modal-content" style="width: 800px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="modal_update_label">编辑</h4>
<input id="update_id" type="hidden"/>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" >盘符</label>
<div class="col-md-9">
<input type="text" autocomplete="off" class="form-control" id="update_driveLetter" placeholder="请输入名称">
</div>
</div>
<!--<div class="form-group">-->
<!--<label class="control-label col-sm-2" >路径</label>-->
<!--<div class="col-md-9">-->
<!--<input type="text" autocomplete="off" class="form-control" id="update_path" placeholder="请输入路径">-->
<!--</div>-->
<!--</div>-->
<!--<div class="form-group">-->
<!--<label class="control-label col-md-2">是否启用</label>-->
<!--<div class="col-md-9">-->
<!--<select id="update_isQy" class="form-control">-->
<!--<option value='1'>是</option>-->
<!--<option value='2' selected>否</option>-->
<!--</select>-->
<!--</div>-->
<!--</div>-->
<!--<div class="form-group">-->
<!--<label class="control-label col-md-2">是否占满</label>-->
<!--<div class="col-md-9">-->
<!--<select id="update_isZm" class="form-control">-->
<!--<option value='1'>是</option>-->
<!--<option value='2' selected>否</option>-->
<!--</select>-->
<!--</div>-->
<!--</div>-->
<div class="form-group">
<label class="control-label col-md-2">是否挂载</label>
<div class="col-md-9">
<select id="update_isGz" class="form-control">
<option value='1'>是</option>
<option value='2' selected>否</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" >简介</label>
<div class="col-md-9">
<textarea rows="8" class="form-control" id="update_remarks" ></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button>
<button type="button" id="btn_submit_update" class="btn btn-primary" data-dismiss="modal"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>保存</button>
</div>
</div>
</div>
</div>
<!-- END modal_update -->
<!-- BEGIN modal_detail -->
<div style="margin-top:6%;display: none" class="modal fade" id="modal_detail" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="modal_detail_label">
<div class="modal-dialog" role="document" style="margin-left: 30%">
<div class="modal-content" style="width: 800px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="modal_detail_label">详情</h4>
<input id="detail_id" type="hidden"/>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" >盘符</label>
<div class="col-md-9">
<label class="control-label" id="detail_driveLetter"></label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">是否启用</label>
<div class="col-md-9">
<label class="control-label" id="detail_isQy"></label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">是否占满</label>
<div class="col-md-9">
<label class="control-label" id="detail_isZm"></label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">是否挂载</label>
<div class="col-md-9">
<label class="control-label" id="detail_isGz"></label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">总磁盘空间</label>
<div class="col-md-9">
<label class="control-label" id="detail_totalDisk"></label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">剩余磁盘空间</label>
<div class="col-md-9">
<label class="control-label" id="detail_usableDisk"></label>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" >简介</label>
<div class="col-md-9">
<label class="control-label" id="detail_remarks"></label>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button>
</div>
</div>
</div>
</div>
<!-- END modal_detail -->
<!--#include virtual="../../common/bottom.html"-->
<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
<!-- END PAGE LEVEL SCRIPTS -->
<!--页面js文件的引用-->
<script type="text/javascript" src="../../js/ak_disk/ak_disk.js"></script>
<script>
jQuery(document).ready(function() {
ak_disk.init();
Layout.init(); // init layout
Demo.init(); // init demo features
});
</script>
<!-- END JAVASCRIPTS -->
</body>
<!-- END BODY -->
</html>
1.1.2 js
// table 右侧按钮 进行初始化 点击事件
window.operateEvents = {
'click .a_open': function(e, value, row, index) {
window.location.href = "/manage-api/studyTeacherDetail?id="+ row.id
},
'click .a_edit': function(e, value, row, index) {
$("#modal_update_label").text("编辑");
$("#update_id").val(row.id);
$("#update_driveLetter").val(row.driveLetter);
// $("#update_isQy").val(row.isQy);
// $("#update_isZm").val(row.isZm);
$("#update_isGz").val(row.isGz);
$("#update_remarks").val(row.remarks);
// $("#update_path").val(row.path);
$('#modal_update').modal();
},
'click .b_edit': function(e, value, row, index) {
$("#modal_detail_label").text("详情");
$("#detail_id").text(row.id);
$("#detail_driveLetter").text(row.driveLetter);
$("#detail_isQy").text(row.isQy);
$("#detail_isZm").text(row.isZm);
$("#detail_isGz").text(row.isGz);
$("#detail_totalDisk").text(row.totalDisk);
$("#detail_usableDisk").text(row.usableDisk);
$("#detail_remarks").text(row.remarks);
$('#modal_detail').modal();
},
'click .c_edit': function(e, value, row, index) {
bootbox.dialog({
message: "确认要启用选择的数据吗?",
title: "操作提示",
className:'bootbox-style',
buttons:
{
"success" :
{
"label" : "<i class='icon-ok'></i> 确定",
"className" : "btn-sm btn-success",
"callback": function() {
var postdata = {};
postdata.id = row.id;
postdata.isQy = 1;
var options=new Object();
options.url="/manage-api/TDiskController/TDiskUpdate";
options.type="POST";
options.async=true;
options.data=JSON.stringify(postdata);
options.errorback=akglobe_config.errBack;
options.callback=function(data){
if (data.flag) {
toastr.success(data.msg);
$("#tb_obj").bootstrapTable('refresh');
}else{
toastr.error(data.msg);
}
};
akglobe_config.ajaxQuery(options);
}
},
"cancel": {
"label" : "<i class='icon-info'></i> 取消",
"className" : "btn-sm btn-danger"
}
}
});
},
'click .d_edit': function(e, value, row, index) {
bootbox.dialog({
message: "确认要停用选择的数据吗?",
title: "操作提示",
className:'bootbox-style',
buttons:
{
"success" :
{
"label" : "<i class='icon-ok'></i> 确定",
"className" : "btn-sm btn-success",
"callback": function() {
var postdata = {};
postdata.id = row.id;
postdata.isQy = 2;
var options=new Object();
options.url="/manage-api/TDiskController/TDiskUpdate";
options.type="POST";
options.async=true;
options.data=JSON.stringify(postdata);
options.errorback=akglobe_config.errBack;
options.callback=function(data){
if (data.flag) {
toastr.success(data.msg);
$("#tb_obj").bootstrapTable('refresh');
}else{
toastr.error(data.msg);
}
};
akglobe_config.ajaxQuery(options);
}
},
"cancel": {
"label" : "<i class='icon-info'></i> 取消",
"className" : "btn-sm btn-danger"
}
}
});
}
};
//基本数据 >>国别维护
var ak_disk = {
mainUrl:ak_config.tm_urm+'template/page/ak_base/ak_disk.html',
init: function () {
//1.toastr提示框初始化
ak_config.initToastr();
//2.初始化下拉框(固定选项)
this.select();
//4.初始化Table
this.TableInit();
//5.初始化Button的点击事件
this.ButtonInit();
//6.权限判断
//this.initQx();
},
//权限判断
initQx: function () {
// if(parent.net_tool.usertype==2 || parent.net_tool.usertype==1){
$("#btn_add").show();
$("#btn_update").show();
$("#btn_delete").show();
$("#btn_recover").show();
// }
},
//初始化下拉框(固定选项)
select: function () {
$("#deleteFlag").select2();
$("#examineFlag").select2();
},
// 表格初始化
TableInit: function () {
var columns = [{
checkbox: true
}, {
//field: 'id',
title: '序号',
formatter: function (value, row, index) {
return index+1;
},
width:50
},{
field: 'driveLetter',
title: '盘符',
width:110
},{
field: 'isQy',
title: '是否启动',
formatter:function(value,row,index){
if(value=='1'){
return "是";
}else{
return "否";
}
},
width:90
},{
field: 'isZm',
title: '是否占满',
formatter:function(value,row,index){
if(value=='1'){
return "是";
}else{
return "否";
}
},
width:90
},{
field: 'isGz',
title: '是否挂载',
formatter:function(value,row,index){
if(value=='1'){
return "是";
}else{
return "否";
}
},
width:90
},{
field: 'totalDisk',
title: '总磁盘空间',
formatter:function(value,row,index){
if(value!=null){
return value+"G";
}else{
return "";
}
},
width:120
},{
field: 'usableDisk',
title: '剩余磁盘空间',
formatter:function(value,row,index){
if(value!=null){
return value+"G";
}else{
return "";
}
},
width:120
},{
field: 'createUserName',
title: '创建人',
width:90
},{
field: 'createTime',
title: '创建时间',
width:150
},{
field: 'operate',
title: '操作',
events:'operateEvents',
formatter:'ak_disk.operateFormatter',
width:170
}]
var options=new Object();
options.url='/manage-api/TDiskController/TDiskList';
options.queryParams=ak_disk.queryParams;
options.columns=columns;
akglobe_config.TableInit(options);
},
//得到查询的参数
queryParams: function (params) {
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
Authorization:akglobe_config.token,
limit: params.limit, //返回行的最大数目
offset: params.offset, //返回的第一行的偏移量
driveLetter: $("#driveLetter").val(), //名称
deleteFlag:$("#deleteFlag").val(),
isQy: $("#isQy").val(),
isZm: $("#isZm").val(),
isGz: $("#isGz").val()
};
return temp;
},
operateFormatter: function (value, row, index) {
return [ '<a class="b_edit" href="javascript:void(0)">详情</a>',
'<a class="a_edit" href="javascript:void(0)">编辑</a>',
'<a class="c_edit" href="javascript:void(0)">启用</a>',
'<a class="d_edit" href="javascript:void(0)">停用</a>'
].join(' ');
},
ButtonInit: function () {
var postdata ={};
//初始化页面上面的按钮事件
//查询
$("#btn_query").click(function () {
$("#tb_obj").bootstrapTable('refresh');
});
$("#deleteFlag").change(function () {
$("#tb_obj").bootstrapTable('refresh');
});
$("#isQy").change(function () {
$("#tb_obj").bootstrapTable('refresh');
});
$("#isZm").change(function () {
$("#tb_obj").bootstrapTable('refresh');
});
$("#isGz").change(function () {
$("#tb_obj").bootstrapTable('refresh');
});
//新增面板弹出
$("#btn_add").click(function () {
$("#modal_add_label").text("新增");
$('#modal_add').modal();
});
//保存
$("#btn_submit_add").click(function () {
ak_disk.add();
});
//编辑
$("#btn_submit_update").click(function () {
ak_disk.update();
});
//删除
$("#btn_delete").click(function () {
ak_disk.delete();
});
//恢复
$("#btn_recover").click(function () {
ak_disk.recover();
});
},
//保存
add:function () {
var postdata = {};
postdata.driveLetter = $("#add_driveLetter").val();
postdata.isGz = $("#add_isGz").val();
postdata.remarks = $("#add_remarks").val();
if (postdata.driveLetter == null || postdata.driveLetter == "" || postdata.driveLetter == undefined) {
toastr.warning('盘符不能为空');
return false;
}
var options=new Object();
options.url="/manage-api/TDiskController/TDiskSave";
options.type="POST";
options.async=true;
options.data=JSON.stringify(postdata);
options.errorback=akglobe_config.errBack;
options.callback=function(data){
if (data.flag) {
toastr.success(data.msg);
//保存完自动返回
$("#tb_obj").bootstrapTable('refresh');
}else{
toastr.error(data.msg);
}
};
akglobe_config.ajaxQuery(options);
},
//编辑
update:function () {
var postdata = {};
postdata.id = $("#update_id").val();
postdata.driveLetter = $("#update_driveLetter").val();
postdata.isGz = $("#update_isGz").val();
postdata.remarks = $("#update_remarks").val();
if (postdata.driveLetter == null || postdata.driveLetter == "" || postdata.driveLetter == undefined) {
toastr.warning('盘符不能为空');
return false;
}
var options=new Object();
options.url="/manage-api/TDiskController/TDiskUpdate";
options.type="POST";
options.async=true;
options.data=JSON.stringify(postdata);
options.errorback=akglobe_config.errBack;
options.callback=function(data){
if (data.flag) {
toastr.success(data.msg);
$("#tb_obj").bootstrapTable('refresh');
}else{
toastr.error(data.msg);
}
};
akglobe_config.ajaxQuery(options);
},
//删除
delete:function(){
var arrselections = $("#tb_obj").bootstrapTable('getSelections');
if (arrselections.length <= 0) {
toastr.warning('请选择有效数据');
return;
}
if (arrselections[0].deleteFlag == 0) {
toastr.warning('请选择未删除数据');
return;
}
/*使用bootbox*/
bootbox.dialog({
message: "确认要删除选择的数据吗?",
title: "操作提示",
className:'bootbox-style',
buttons:
{
"success" :
{
"label" : "<i class='icon-ok'></i> 确定",
"className" : "btn-sm btn-success",
"callback": function() {
var options=new Object();
options.url="/manage-api/TDiskController/TDiskDelete";
options.type="POST";
options.data={ "postdata": JSON.stringify(arrselections) };
options.async=true;
options.contentType="application/x-www-form-urlencoded";
options.errorback=akglobe_config.errBack;
options.callback=function(data){
if (data.flag) {
toastr.success(data.msg);
$("#tb_obj").bootstrapTable('refresh');
}else{
toastr.error(data.msg);
}
};
akglobe_config.ajaxQuery(options);
},
},
"cancel": {
"label" : "<i class='icon-info'></i> 取消",
"className" : "btn-sm btn-danger"
}
}
});
},
//恢复
recover:function(){
var arrselections = $("#tb_obj").bootstrapTable('getSelections');
if (arrselections.length <= 0) {
toastr.warning('请选择有效数据');
return;
}
if (arrselections[0].deleteFlag == 1) {
toastr.warning('请选择已删除数据');
return;
}
/*使用bootbox*/
bootbox.dialog({
message: "确认要恢复选择的数据吗?",
title: "操作提示",
className:'bootbox-style',
buttons:
{
"success" :
{
"label" : "<i class='icon-ok'></i> 确定",
"className" : "btn-sm btn-success",
"callback": function() {
var options=new Object();
options.url="/manage-api/TDiskController/TDiskRecover";
options.type="POST";
options.data={ "postdata": JSON.stringify(arrselections) };
options.async=true;
options.contentType="application/x-www-form-urlencoded";
options.errorback=akglobe_config.errBack;
options.callback=function(data){
if (data.flag) {
toastr.success(data.msg);
$("#tb_obj").bootstrapTable('refresh');
}else{
toastr.error(data.msg);
}
};
akglobe_config.ajaxQuery(options);
}
},
"cancel": {
"label" : "<i class='icon-info'></i> 取消",
"className" : "btn-sm btn-danger"
}
}
});
}
}
1.2 代码
1.2.1 service
package com.yinghui.soft.web.tDisk.services;
import com.yinghui.soft.web.tDisk.model.TDisk;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public interface TDiskService {
/**
* 列表
*
* @param map
* @return
*/
public List<TDisk> list(Map map);
/**
* 总数
*
* @param map
* @return
*/
public long count(Map map);
/**
* 修改
*
* @param TDisk
* @return
*/
public int update(TDisk TDisk);
/**
* 保存
*
* @param TDisk
* @return
*/
public int save(TDisk TDisk);
/**
* 根据ID查询
*
* @param cableTypeId
* @return
*/
public TDisk getById(String cableTypeId);
/**
* 删除
*
* @param paramMap
* @return
*/
public HashMap<String, Object> delete(Map paramMap);
/**
* 恢复
*
* @param paramMap
* @return
*/
public HashMap<String, Object> recovery(Map paramMap);
/**
* 获取启用磁盘
* @return
*/
public TDisk getTDiskSpace();
/**
* 判断当前启用磁盘空间是否足够
* @return
*/
public Map getDiskSpace();
}
1.1.2 impl
package com.yinghui.soft.web.tDisk.servicesImpl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yinghui.soft.web.tDisk.mapper.TDiskMapper;
import com.yinghui.soft.web.tDisk.model.TDisk;
import com.yinghui.soft.web.tDisk.services.TDiskService;
import com.yinghui.soft.web.tDisk.utils.MemoryUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class TDiskServiceImpl implements TDiskService {
@Autowired
private TDiskMapper mapper;
@Autowired
private JdbcTemplate jdbcTemplate;
@Value("${xdja.upload.file.path.temp}")
private String decryptFilePathTemp; //上传文件存放目录
@Value("${limitDiskSpace}")
private double limitDiskSpace; //磁盘大小
@Override
public List<TDisk> list(Map map) {
return mapper.findPage(map);
}
@Override
public long count(Map map) {
return mapper.findPage_count(map);
}
@Override
public int update(TDisk TDisk) {
return this.mapper.updateByPrimaryKeySelective(TDisk);
}
@Override
public int save(TDisk TDisk) {
return mapper.insertSelective(TDisk);
}
@Override
public TDisk getById(String cableTypeId) {
return this.mapper.selectByPrimaryKey(Long.parseLong(cableTypeId));
}
@Override
public HashMap<String, Object> delete(Map paramMap) {
HashMap<String, Object> map = new HashMap<String, Object>();
try{
JSONObject jsonObject=null;
JSONArray postdata = JSONArray.parseArray(String.valueOf(paramMap.get("postdata")));
if(postdata.size()>0){
for(int i=0;i<postdata.size();i++){
jsonObject=postdata.getJSONObject(i);
if (jsonObject.containsKey("id")
&&!StringUtils.isEmpty(jsonObject.getString("id"))) {
TDisk obj=getById(jsonObject.getString("id"));
if(obj!=null){
// this.mapper.deleteByPrimaryKey(obj.getId());
obj.setDeleteFlag(0);//设置为0
this.mapper.updateByPrimaryKeySelective(obj);
map.put("flag", true);
map.put("msg", "删除成功");
}else{
map.put("flag", false);
map.put("msg", "删除失败");
}
}else {
map.put("flag", false);
map.put("msg", "删除失败");
}
}
}
}catch(Exception e){
e.printStackTrace();
map.put("flag", false);
map.put("msg", "删除失败");
}
return map;
}
@Override
public HashMap<String, Object> recovery(Map paramMap) {
HashMap<String, Object> map = new HashMap<String, Object>();
try{
JSONObject jsonObject=null;
JSONArray postdata = JSONArray.parseArray(String.valueOf(paramMap.get("postdata")));
if(postdata.size()>0){
for(int i=0;i<postdata.size();i++){
jsonObject=postdata.getJSONObject(i);
if (jsonObject.containsKey("id")
&&!StringUtils.isEmpty(jsonObject.getString("id"))) {
TDisk obj=getById(jsonObject.getString("id"));
if(obj!=null){
obj.setDeleteFlag(1);
this.mapper.updateByPrimaryKeySelective(obj);
map.put("flag", true);
map.put("msg", "恢复成功");
}else{
map.put("flag", false);
map.put("msg", "恢复失败");
}
}else {
map.put("flag", false);
map.put("msg", "恢复失败");
}
}
}
}catch(Exception e){
e.printStackTrace();
map.put("flag", false);
map.put("msg", "恢复失败");
}
return map;
}
@Override
public TDisk getTDiskSpace() {
return this.mapper.getTDiskSpace();
}
@Override
public Map getDiskSpace() {
Map map = new HashMap();
try{
TDisk obj =this.getTDiskSpace();
if(null!=obj){
if(null!=obj.getDriveLetter()){
String driveLetter = obj.getDriveLetter(); //当前启用盘符
// String path = obj.getPath(); //路径
long id = obj.getId();
//获取当前启用磁盘 总磁盘空间和剩余磁盘空间
File targetDiskPartition = new File(driveLetter);
long total = MemoryUtils.change(targetDiskPartition.getTotalSpace()); //总磁盘空间
long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间
//更新磁盘总空间和磁盘剩余空间
String update = " update t_disk set total_disk="+total+",usable_disk="+usable+" where id="+id+" ";
jdbcTemplate.update(update);
//如果剩余空间大于20g 返回出去,可以进行资源上传
if(usable>limitDiskSpace){
map.put("driveLetter", driveLetter);
map.put("decryptFilePathTemp", driveLetter+decryptFilePathTemp);
// map.put("path", path);
map.put("flag", true);
map.put("msg", "操作成功");
return map;
}else{//如果剩余空间小于20g
map.put("flag", false);
map.put("msg", "当前启用磁盘已占满,请挂载新磁盘");
//将当前启用磁盘设置为 2未启用 并将是否占满 改为 1已占满
String update2 = " update t_disk set is_qy=2,is_zm=1 where id="+id+" ";
jdbcTemplate.update(update2);
//获取下一个盘符
String sql = " SELECT * FROM t_disk where is_gz=1 and is_qy=2 and is_zm=2 and delete_flag=1 order by id asc limit 1 ";
List list = jdbcTemplate.queryForList(sql);
if(list.size()>0){
Map bMap = (Map)list.get(0);
long isGz = Long.parseLong(bMap.get("is_gz").toString());
long id2 = Long.parseLong(bMap.get("id").toString());
//盘符
Object drive_letter = bMap.get("drive_letter");
String driveLetter2="";
if(null!=drive_letter){
driveLetter2 = bMap.get("drive_letter").toString();
}
// String path2 = obj.getPath(); //路径
//判断这个盘符是否存在,是否挂载
File file = new File(driveLetter2);
if(file.exists()){
long total2 = MemoryUtils.change(file.getTotalSpace()); //总磁盘空间
long usable2 = MemoryUtils.change(file.getUsableSpace()); //剩余磁盘空间
if(total2!=0 && usable2>limitDiskSpace){
//如果这个磁盘总空间不为空,剩余磁盘空间大于20g 将这个磁盘是否启用改为为 1 已启用,是否挂载改为 1 已挂载,并更新磁盘的总空间和剩余磁盘空间
String update3 = " update t_disk set is_qy=1,is_gz=1,total_disk="+total2+",usable_disk="+usable2+" where id="+id2+" ";
jdbcTemplate.update(update3);
map.put("driveLetter", driveLetter2);
map.put("decryptFilePathTemp", driveLetter2+decryptFilePathTemp);
// map.put("path", path2);
map.put("flag", true);
map.put("msg", "操作成功");
}else{
map.put("flag", false);
map.put("msg", "当前启用磁盘已占满,请挂载新磁盘");
return map;
}
}
}
}
}
}else{
map.put("flag", false);
map.put("msg", "当前没有获取到启用磁盘,请先设置启用磁盘");
}
}catch (Exception e){
map.put("flag", false);
map.put("msg", "操作失败");
}
return map;
}
}
1.1.3 controller
package com.yinghui.soft.web.tDisk.controller;
import com.yinghui.soft.utils.LogAnnotation;
import com.yinghui.soft.web.tDisk.model.TDisk;
import com.yinghui.soft.web.tDisk.services.TDiskService;
import com.yinghui.soft.web.tDisk.utils.MemoryUtils;
import com.yinghui.soft.web.tDisk.utils.PJCommon;
import com.yinghui.soft.webGeom.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 磁盘配置空间
*/
@RequestMapping("/TDiskController")
@RestController
public class TDiskController extends BaseController {
@Autowired
private TDiskService service;
@Autowired
private JdbcTemplate jdbcTemplate;
@Value("${ipPort}")
private String ipPort;
@Value("${xdja.upload.file.path.temp}")
private String decryptFilePathTemp;
@Value("${limitDiskSpace}")
private double limitDiskSpace;
/**
* 列表
* @param request
* @return
*/
@RequestMapping(value = "/TDiskList", method = RequestMethod.GET)
public Map list(HttpServletRequest request) {
Map paramMap = PJCommon.getRequestParamMap(request);
Map ret = new HashMap();
Map page = new HashMap();
Integer limit= Integer.valueOf(paramMap.get("limit").toString());
Integer offset= Integer.valueOf(paramMap.get("offset").toString());
page.put("limit",limit);
page.put("offset",offset);
if (paramMap.containsKey("driveLetter")
&&!StringUtils.isEmpty(paramMap.get("driveLetter"))) {
String driveLetter = paramMap.get("driveLetter").toString();
page.put("driveLetter", driveLetter);
}
if (paramMap.containsKey("deleteFlag")
&&!StringUtils.isEmpty(paramMap.get("deleteFlag"))) {
page.put("deleteFlag", Integer.parseInt(paramMap.get("deleteFlag").toString()));
}
if (paramMap.containsKey("isQy")
&&!StringUtils.isEmpty(paramMap.get("isQy"))) {
page.put("isQy", Integer.parseInt(paramMap.get("isQy").toString()));
}
if (paramMap.containsKey("isZm")
&&!StringUtils.isEmpty(paramMap.get("isZm"))) {
page.put("isZm", Integer.parseInt(paramMap.get("isZm").toString()));
}
if (paramMap.containsKey("isGz")
&&!StringUtils.isEmpty(paramMap.get("isGz"))) {
page.put("isGz", Integer.parseInt(paramMap.get("isGz").toString()));
}
List<TDisk> list =service.list(page);
long count =service.count(page);
ret.put("total", count);
ret.put("rows", list);
Long pageCount=0L;
if(count % limit==0){
pageCount=count / limit;
}else if(count==0){
pageCount=0L;
}else{
pageCount=(count / limit)+1;
}
ret.put("pageCount", pageCount);// 一共有多少 页数
return ret;
}
/**
* 保存
* @param TDisk
* @param request
* @return
*/
@LogAnnotation(firstLevel = "系统设置",secondLevel = "磁盘管理",noteLevel = "新增")
@RequestMapping(value = "/TDiskSave", method = RequestMethod.POST)
public Map save(@RequestBody TDisk TDisk, HttpServletRequest request) {
Map map = new HashMap();
try{
Map mapuser= getParametersUserinfo(request);
Long userId=Long.parseLong(mapuser.get("userid").toString());
if(null==TDisk.getDriveLetter()){
map.put("flag", false);
map.put("msg", "参数错误");
return map;
}
String driveLetter = TDisk.getDriveLetter();
//获取当前磁盘 总磁盘空间和剩余磁盘空间
File targetDiskPartition = new File(driveLetter);
long total = MemoryUtils.change(targetDiskPartition.getTotalSpace()); //总磁盘空间
long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间
TDisk.setCreateUserId(userId);
TDisk.setCreateTime(new Date());
TDisk.setIsQy(2);
TDisk.setIsZm(2);
TDisk.setDeleteFlag(1);
TDisk.setTotalDisk(Double.valueOf(total));
TDisk.setUsableDisk(Double.valueOf(usable));
int row = service.save(TDisk);
if(row>0){
map.put("flag", true);
map.put("msg", "保存成功");
}
} catch (Exception e) {
//logger.error("参数错误", e);
map.put("flag", false);
map.put("msg", "参数错误");
}
return map;
}
/**
* 修改
* @param TDisk
* @param request
* @return
*/
@LogAnnotation(firstLevel = "系统设置", secondLevel = "磁盘管理", noteLevel = "修改")
@PostMapping(value = "TDiskUpdate")
public Map update(@RequestBody TDisk TDisk, HttpServletRequest request) {
Map map = new HashMap(4);
try{
if(null!=TDisk.getIsQy() && TDisk.getIsQy()==1){
Long id = TDisk.getId();
TDisk obj = service.getById(id.toString());
if(null!=obj.getUsableDisk()){
Double usableDisk = obj.getUsableDisk();
if(usableDisk<=limitDiskSpace){
TDisk tDisk = new TDisk();
tDisk.setId(id);
tDisk.setIsZm(1);
service.update(tDisk);
map.put("flag", false);
map.put("msg", "该盘符空间不足不能设置为启用");
return map;
}
}
String sql = " update t_disk set is_qy=2 where is_qy=1 ";
jdbcTemplate.update(sql);
}
String sql = " select * from t_disk where id="+TDisk.getId()+" ";
List dList = jdbcTemplate.queryForList(sql);
if(dList.size()>0){
Map map1 = (Map) dList.get(0);
String driveLetter = map1.get("drive_letter").toString();
//获取当前磁盘 总磁盘空间和剩余磁盘空间
File targetDiskPartition = new File(driveLetter);
long total = MemoryUtils.change(targetDiskPartition.getTotalSpace()); //总磁盘空间
long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间
TDisk.setTotalDisk(Double.valueOf(total));
TDisk.setUsableDisk(Double.valueOf(usable));
}
// TDisk.setIsZm(2);
int i =service.update(TDisk);
if (i == 1) {
map.put("flag", true);
map.put("msg", "修改成功");
} else {
map.put("flag", false);
map.put("msg", "修改失败");
}
} catch (Exception e) {
//logger.error("参数错误", e);
map.put("flag", false);
map.put("msg", "参数错误");
}
return map;
}
/**
* 根据id查询
* @param request
* @return
*/
@RequestMapping(value = "/getTDiskById", method = RequestMethod.GET)
public TDisk getById(HttpServletRequest request) {
Map paramMap = PJCommon.getRequestParamMap(request);
TDisk ret = service.getById(paramMap.get("id").toString());
return ret;
}
/**
* 判断当前启用磁盘空间是否足够
* @param request
* @return
*/
@RequestMapping(value = "/getTDiskSpace", method = RequestMethod.GET)
public Map getTDiskSpace(HttpServletRequest request) {
Map map = new HashMap();
map=service.getDiskSpace();
return map;
}
/**
* 删除
* @param request
* @param response
* @return
*/
@LogAnnotation(firstLevel = "系统设置",secondLevel = "磁盘管理",noteLevel = "删除")
@RequestMapping(value = "/TDiskDelete", method = RequestMethod.POST)
public Map delete(HttpServletRequest request, HttpServletResponse response) {
HashMap<String, Object> map = new HashMap<String, Object>();
try{
Map paramMap = PJCommon.getRequestParamMap(request);
map=service.delete(paramMap);
} catch (Exception e) {
//logger.error("参数错误", e);
map.put("flag", false);
map.put("msg", "参数错误");
}
return map;
}
/**
* 恢复
* @param request
* @param response
* @return
*/
@LogAnnotation(firstLevel = "系统设置",secondLevel = "磁盘管理",noteLevel = "恢复")
@RequestMapping(value = "/TDiskRecover", method = RequestMethod.POST)
public Map recover(HttpServletRequest request, HttpServletResponse response) {
HashMap<String, Object> map = new HashMap<String, Object>();
try{
Map paramMap = PJCommon.getRequestParamMap(request);
map= service.recovery(paramMap);
} catch (Exception e) {
//logger.error("参数错误", e);
map.put("flag", false);
map.put("msg", "参数错误");
}
return map;
}
/**
* 跳转列表页面
* @return
*/
@RequestMapping(value = "/tDisk", method = RequestMethod.GET)
public ModelAndView index(HttpServletRequest request, ModelAndView modelAndView) {
modelAndView.setViewName("tDisk");
return modelAndView;
}
/**
* 跳转新增页面
*
*/
@RequestMapping(value = "/tDiskEditor", method = RequestMethod.GET)
public ModelAndView indexEditor(HttpServletRequest request, ModelAndView modelAndView) {
modelAndView.addObject("id", request.getParameter("id"));
modelAndView.setViewName("tDiskEditor");
return modelAndView;
}
/**
* 跳转详情页面
*
*/
@RequestMapping(value = "/tDiskDetail", method = RequestMethod.GET)
public ModelAndView indexDetail(HttpServletRequest request, ModelAndView modelAndView) {
modelAndView.addObject("id", request.getParameter("id"));
modelAndView.setViewName("tDiskDetail");
return modelAndView;
}
}
![](https://img-blog.csdnimg.cn/63c298608f2b46428dc54882a1b5665d.png)
2 统计
效果
![](https://img-blog.csdnimg.cn/b5d88098531743c3a438a37b4f42d358.png)
2.1 页面
2.1.1 html
<!DOCTYPE html>
<html lang="en" class="no-js">
<!-- BEGIN HEAD -->
<head>
<meta charset="utf-8" />
<title>磁盘使用情况</title>
<!--#include virtual="../../common/head_global.html"-->
<!--#include virtual="../../common/head_themenew.html"-->
<!-- BEGIN PAGE STYLES -->
<!-- END PAGE STYLES -->
</head>
<!-- END HEAD -->
<!-- BEGIN BODY -->
<body class="page-header-fixed page-sidebar-closed-hide-logo page-sidebar-closed-hide-logo">
<div class="clearfix"></div>
<!-- BEGIN CONTAINER -->
<div class="page-container" style="margin-top:var(--tjtop);">
<!-- BEGIN CONTENT -->
<!-- BEGIN SIDEBAR -->
<div class="page-sidebar-wrapper">
<!--#include virtual="../../common/common_nav.html"-->
</div>
<!-- END SIDEBAR -->
<!-- BEGIN CONTENT -->
<div class="page-content-wrapper">
<div class="page-content">
<!-- BEGIN PAGE CONTENT INNER -->
<div class="row">
<div class="col-md-12">
<!-- BEGIN EXAMPLE TABLE PORTLET-->
<div class="panel-body" style="padding:2px 2px;">
<div style="height: 700px;width:100%;display: flex;margin-top: 40px;">
<div style="height: 400px;width:40%;left: 120px;" id="chart_1">
</div>
<div style="height: 400px;width:40%;left: 200px;" id="chart_2">
</div>
</div>
<table id="tb_obj"></table>
</div>
</div>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
<!-- END CONTAINER -->
<!--#include virtual="../../common/tj_bottomtag.html"-->
<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
<!-- END PAGE LEVEL SCRIPTS -->
<!--页面js文件的引用-->
<script type="text/javascript" src="scripts/ak_echarts_bate.js"></script>
<script type="text/javascript" src="../../js/ak_tj/ak_cpsyqk.js"></script>
<script>
jQuery(document).ready(function() {
ak_cpsyqk.init();
Layout.init(); // init layout
Demo.init(); // init demo features
});
</script>
<!-- END JAVASCRIPTS -->
</body>
<!-- END BODY -->
</html>
2.1.2 js
var ak_cpsyqk={
init:function(){
this.echart_1();
},
echart_1:function() {
var temp = {
name: $("#name").val(),
startTime:$("#startTime").val(),
endTime:$("#endTime").val()
};
var options=new Object();
options.url="/manage-api/TjfxController/getCpsyqk";
options.type="get";
options.data=temp;
options.errorback=akglobe_config.errBack;
options.callback=function(data){
if(data.flag){
var list = data.list;
var title="服务器挂载磁盘空间使用情况";
var divid="chart_1";//在div中显示 div的id
var dataSource=[];
for(var i=0;i<list.length;i++){
var obj = list[i];
var obj1=new Object();
obj1.name=obj.name+":"+obj.num+"G";
obj1.value=obj.num;
dataSource.push(obj1);
}
var options = new Object();
options.title = title;
options.dataSource = dataSource;
options.divid = divid;
options.showlegend=true;
options.seriesName="服务器挂载磁盘空间使用率:";
ak_Echarts_bate.echartsStandardPie(options);
var qyList = data.qyList;
var title="服务器启用磁盘空间使用情况";
var divid="chart_2";//在div中显示 div的id
var dataSource2=[];
for(var j=0;j<qyList.length;j++){
var obj = qyList[j];
var obj1=new Object();
obj1.name=obj.name+":"+obj.num+"G";
obj1.value=obj.num;
dataSource2.push(obj1);
}
var options = new Object();
options.title = title;
options.dataSource = dataSource2;
options.divid = divid;
options.showlegend=true;
options.seriesName="服务器启用磁盘空间使用率:";
ak_Echarts_bate.echartsStandardPie(options);
}else{
toastr.error(data.msg);
}
};
akglobe_config.ajaxQuery(options);
}
}
2.2 代码
2.2.1 service
package com.yinghui.soft.web.tDisk.services;
import java.util.Map;
public interface TjfxService {
public Map getCpsyqk(Map map);
}
2.2.2 impl
package com.yinghui.soft.web.tDisk.servicesImpl;
import com.yinghui.soft.utils.StatusCode;
import com.yinghui.soft.web.tDisk.mapper.TDiskMapper;
import com.yinghui.soft.web.tDisk.model.TDisk;
import com.yinghui.soft.web.tDisk.services.TjfxService;
import com.yinghui.soft.web.tDisk.utils.MemoryUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
public class TjfxServiceImpl implements TjfxService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private TDiskMapper tDiskMapper;
@Override
public Map getCpsyqk(Map paramMap) {
Map map = new HashMap();
List list = new ArrayList();
List qyList = new ArrayList();
Map page = new HashMap();
try {
//当前所以挂载磁盘空间
page.put("isGz",1);
page.put("isQy",1);
page.put("deleteFlag", 1);
List<TDisk> dList = tDiskMapper.findPage(page);
if(dList.size()>0){
long useDisk = 0; //剩余磁盘空间
long freeDisk = 0;//已使用磁盘空间
for (TDisk tDisk : dList) {
if(null==tDisk.getDriveLetter()){
continue;
}
String driveLetter = tDisk.getDriveLetter();
File targetDiskPartition = new File(driveLetter);
long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间
long total = MemoryUtils.change(targetDiskPartition.getTotalSpace()); //磁盘总空间
long free = total-usable;
useDisk=useDisk+usable;
freeDisk=freeDisk+free;
}
Map map1 = new HashMap();
map1.put("name", "已使用空间");
map1.put("num", freeDisk);
Map map2 = new HashMap();
map2.put("name", "可用空间");
map2.put("num", useDisk);
list.add(map1);
list.add(map2);
}
//当前启用磁盘空间
TDisk tDiskSpace = tDiskMapper.getTDiskSpace();
if(null!=tDiskSpace){
double totalDisk = 0; //磁盘总空间
if(null!=tDiskSpace.getTotalDisk()){
totalDisk = tDiskSpace.getTotalDisk();
}
double usableDisk = 0; //剩余磁盘空间
if(null!=tDiskSpace.getUsableDisk()){
usableDisk = tDiskSpace.getUsableDisk();
}
double freeDisk = totalDisk-usableDisk;
Map map1 = new HashMap();
map1.put("name", "已使用空间");
map1.put("num", freeDisk);
Map map2 = new HashMap();
map2.put("name", "可用空间");
map2.put("num", usableDisk);
qyList.add(map1);
qyList.add(map2);
}
} catch (Exception e) {
e.printStackTrace();
map.put("list",null);
map.put("qyList",null);
}
map.put("list",list);
map.put("qyList",qyList);
return map;
}
}
2.2.3 controller
package com.yinghui.soft.web.tDisk.controller;
import com.yinghui.soft.utils.StatusCode;
import com.yinghui.soft.web.tDisk.services.TjfxService;
import com.yinghui.soft.web.tDisk.utils.PJCommon;
import com.yinghui.soft.webGeom.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
@RequestMapping("/TjfxController")
@RestController
public class TjfxController extends BaseController {
@Autowired
private TjfxService service;
/**
* 磁盘使用情况
* @param request
* @return
*/
@RequestMapping(value = "/getCpsyqk", method = RequestMethod.GET)
public Map getCpsyqk(HttpServletRequest request) {
Map map = new HashMap<String, Object>();
try{
Map paramMap = PJCommon.getRequestParamMap(request);
map=service.getCpsyqk(paramMap);
map.put("flag", true);
map.put("status", StatusCode.C00000.getCode());
map.put("msg", StatusCode.C00000.getMsg());
} catch (Exception e) {
map.put("flag", false);
map.put("status", StatusCode.C00002.getCode());
map.put("msg", StatusCode.C00002.getMsg());
map.put("list",null);
map.put("qyList",null);
}
return map;
}
}
3 公用后台代码
3.1model
package com.yinghui.soft.web.tDisk.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class TDisk {
private Long id;
private String driveLetter;
private Integer isQy;
private Integer isZm;
private Integer isGz;
private Double totalDisk;
private Double usableDisk;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date createTime;
private Long createUserId;
private Integer deleteFlag;
private String remarks;
private String createUserName;
private String path;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getCreateUserName() {
return createUserName;
}
public void setCreateUserName(String createUserName) {
this.createUserName = createUserName;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDriveLetter() {
return driveLetter;
}
public void setDriveLetter(String driveLetter) {
this.driveLetter = driveLetter == null ? null : driveLetter.trim();
}
public Integer getIsQy() {
return isQy;
}
public void setIsQy(Integer isQy) {
this.isQy = isQy;
}
public Integer getIsZm() {
return isZm;
}
public void setIsZm(Integer isZm) {
this.isZm = isZm;
}
public Integer getIsGz() {
return isGz;
}
public void setIsGz(Integer isGz) {
this.isGz = isGz;
}
public Double getTotalDisk() {
return totalDisk;
}
public void setTotalDisk(Double totalDisk) {
this.totalDisk = totalDisk;
}
public Double getUsableDisk() {
return usableDisk;
}
public void setUsableDisk(Double usableDisk) {
this.usableDisk = usableDisk;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getCreateUserId() {
return createUserId;
}
public void setCreateUserId(Long createUserId) {
this.createUserId = createUserId;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks == null ? null : remarks.trim();
}
}
3.2 mapper.java
package com.yinghui.soft.web.tDisk.mapper;
import com.yinghui.soft.web.tDisk.model.TDisk;
import java.util.List;
import java.util.Map;
public interface TDiskMapper {
int deleteByPrimaryKey(Long id);
int insert(TDisk record);
int insertSelective(TDisk record);
TDisk selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(TDisk record);
int updateByPrimaryKeyWithBLOBs(TDisk record);
int updateByPrimaryKey(TDisk record);
List<TDisk> findPage(Map map);
long findPage_count(Map map);
TDisk getTDiskSpace();
}
3.3 utils
package com.yinghui.soft.web.tDisk.utils;
import java.text.DecimalFormat;
public class MemoryUtils {
public static long change(long num) {
// return num;
return num / 1024 / 1024 / 1024;
}
public static String bfb(Object num1, Object num2) {
double val1 = Double.valueOf(num1.toString());
double val2 = Double.valueOf(num2.toString());
if (val2 == 0) {
return "0.0%";
} else {
DecimalFormat df = new DecimalFormat("#0.00");
return df.format(val1 / val2 * 100) + "%";
}
}
}
package com.yinghui.soft.web.tDisk.utils;
import com.yinghui.soft.utils.FilterUtils;
import com.yinghui.soft.utils.StatusCode;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
public class PJCommon {
/**
* 从request中取出所有参数(单键值对形式),并返回Map
*
* @param request
* @return
*/
public static Map getRequestParamMap(HttpServletRequest request) {
Map paramMap = new HashMap();
Enumeration enu = request.getParameterNames();
while (enu.hasMoreElements()) {
String paramName = (String) enu.nextElement();
String[] values = request.getParameterValues(paramName);
for (int i = 0; i < values.length; i++) {
String name= values[i];
if(paramName.equals("Authorization")){
}else{
boolean iswd= FilterUtils.verification(name);// 特殊字符校验 如果是 文章内容注意不要校验
if(!iswd){
paramMap.put("flagTGG1001", false);// 防止有同名的参数 进行处理
paramMap.put("msg", StatusCode.C00511.getMsg());
paramMap.put("status", StatusCode.C00511.getCode());
paramMap.put("total", 0);
paramMap.put("rows", null);
}
}
paramMap.put(paramName, values[i]);
}
}
return paramMap;
}
public static Map getRequestParamForJS(HttpServletRequest request) {
Map paramMap = new HashMap();
Enumeration enu = request.getParameterNames();
while (enu.hasMoreElements()) {
String paramName = (String) enu.nextElement();
String[] values = request.getParameterValues(paramName);
for (int i = 0; i < values.length; i++) {
try {
paramMap.put(paramName, URLDecoder.decode(values[i], "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
return paramMap;
}
}
3.4 yml
#上传文件存放目录
xdja.upload.file.path: /5tool/1tomact9/webapps
#分片临时文件存放目录
xdja.upload.file.path.temp: /upload/temp
limitDiskSpace: 20
![](https://img-blog.csdnimg.cn/22dad5d90ce1454e8f0afcd77b7ce022.png)