6-23更新 多条件删选

This commit is contained in:
Hellohao
2019-06-23 00:18:38 +08:00
parent b38776ba05
commit a22450f07c
18 changed files with 3871 additions and 78 deletions
@@ -111,20 +111,35 @@ public class AdminController {
@RequestMapping(value = "/selecttable")
@ResponseBody
public PageResultBean<Images> selectByFy(HttpSession session, Integer pageNum, Integer pageSize, Integer selecttype) {
public PageResultBean<Images> selectByFy(HttpSession session, Integer pageNum, Integer pageSize, Integer selecttype,
Integer storageType,String starttime,String stoptime) {
User u = (User) session.getAttribute("user");
Images img = new Images();
if(storageType!=null){
if(storageType!=0){
img.setSource(storageType);
}
}
if(starttime!=null && stoptime!=null){
if(!starttime.equals("") && !stoptime.equals("")){
img.setStarttime(starttime);
img.setStoptime(stoptime);
}
}
// 使用Pagehelper传入当前页数和页面显示条数会自动为我们的select语句加上limit查询
// 从他的下一条sql开始分页
PageHelper.startPage(pageNum, pageSize);
List<Images> images = null;
if (u.getLevel() > 1) { //根据用户等级查询管理员查询所有的信息
if (selecttype == 1) {
images = imgService.selectimg(null);// 这是我们的sql
images = imgService.selectimg(img);// 这是我们的sql
} else {
images = imgService.selectimg(u.getId());// 这是我们的sql
img.setUserid(u.getId());
images = imgService.selectimg(img);// 这是我们的sql
}
} else {
images = imgService.selectimg(u.getId());// 这是我们的sql
img.setUserid(u.getId());
images = imgService.selectimg(img);// 这是我们的sql
}
// 使用pageInfo包装查询
PageInfo<Images> rolePageInfo = new PageInfo<>(images);//
+1 -1
View File
@@ -10,7 +10,7 @@ import cn.hellohao.pojo.Images;
@Mapper
public interface ImgMapper {
List<Images> selectimg(@Param("userid") Integer userid);
List<Images> selectimg(Images images);
Integer countimg(@Param("userid") Integer userid);
+24 -5
View File
@@ -17,13 +17,15 @@ public class Images {
private String updatetime;
private String username;
private Integer storageType;
private String starttime;
private String stoptime;
public Images() {
super();
}
public Images(Integer id, String imgname, String imgurl, Integer userid, Integer sizes, Integer abnormal, Integer source, String updatetime, String username, Integer storageType) {
public Images(Integer id, String imgname, String imgurl, Integer userid, Integer sizes, Integer abnormal, Integer source, String updatetime, String username, Integer storageType, String starttime, String stoptime) {
this.id = id;
this.imgname = imgname;
this.imgurl = imgurl;
@@ -34,6 +36,8 @@ public class Images {
this.updatetime = updatetime;
this.username = username;
this.storageType = storageType;
this.starttime = starttime;
this.stoptime = stoptime;
}
public Integer getId() {
@@ -116,11 +120,26 @@ public class Images {
this.storageType = storageType;
}
@Mapper
public static interface ConfigMapper {
Config getSourceype();
Integer setSourceype(@Param("sourcekey") Integer sourcekey);
public String getStarttime() {
return starttime;
}
public void setStarttime(String starttime) {
this.starttime = starttime;
}
public String getStoptime() {
return stoptime;
}
public void setStoptime(String stoptime) {
this.stoptime = stoptime;
}
// @Mapper
// public static interface ConfigMapper {
// Config getSourceype();
// Integer setSourceype(@Param("sourcekey") Integer sourcekey);
// }
}
@@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param;
import cn.hellohao.pojo.Images;
public interface ImgService {
List<Images> selectimg(Integer id);
List<Images> selectimg(Images images);
Integer deleimg(Integer id);
@@ -31,9 +31,9 @@ public class ImgServiceImpl implements ImgService {
private ImgMapper imgMapper;
@Override
public List<Images> selectimg(Integer userid) {
public List<Images> selectimg(Images images) {
// TODO Auto-generated method stub
return imgMapper.selectimg(userid);
return imgMapper.selectimg(images);
}
@Override
@@ -1,7 +0,0 @@
spring.datasource.url=jdbc:mysql://localhost:3306/picturebed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+4 -3
View File
@@ -1,9 +1,9 @@
#数据库账号picturebed
spring.datasource.username=picturebed
spring.datasource.username=root
#数据库密码
spring.datasource.password=Aa923453645
spring.datasource.password=root
#数据库链接地址
spring.datasource.url=jdbc:mysql://hellohao.cn:3306/picturebed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.url=jdbc:mysql://localhost:3306/picturebed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#端口
server.port=8088
@@ -24,5 +24,6 @@ multipart.maxRequestSize=10240KB
+13 -1
View File
@@ -3,7 +3,7 @@
<mapper namespace="cn.hellohao.dao.ImgMapper">
<!-- 查询-->
<select id="selectimg" parameterType="integer" resultType="cn.hellohao.pojo.Images">
<select id="selectimg" parameterType="cn.hellohao.pojo.Images" resultType="cn.hellohao.pojo.Images">
SELECT
a.id,
a.imgname,
@@ -22,6 +22,18 @@
and
userid = #{userid}
</if>
<if test="source != null">
and
source = #{source}
</if>
<if test="starttime != null">
and
updatetime &gt;= #{starttime}
</if>
<if test="stoptime != null">
and
updatetime &lt;= #{stoptime}
</if>
order by id desc
</select>
<!-- 此用户下总数 -->
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
This is the JRebel configuration file. It maps the running application to your IDE workspace, enabling JRebel reloading for this project.
Refer to https://manuals.zeroturnaround.com/jrebel/standalone/config.html for more information.
-->
<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd">
<classpath>
<dir name="D:/Data/project/myjavawork/Tbed/target/classes">
</dir>
</classpath>
</application>
@@ -0,0 +1,281 @@
/*!
* Stylesheet for the Date Range Picker, for use with Bootstrap 3.x
*
* Copyright 2013 Dan Grossman ( http://www.dangrossman.info )
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Built for http://www.improvely.com
*/
.clear{ clear:both;}
.daterangepicker.dropdown-menu {
max-width: none;
z-index: 3000;
}
.daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar {
float: left;
margin: 4px;
}
/*.daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar {*/
.daterangepicker.opensright .calendar {
float: right;
margin: 4px;
}
.daterangepicker .ranges {
margin:4px;
text-align: left;
padding:0px 20px;
}
.daterangepicker .ranges .range_inputs>div {
float: left;
}
.daterangepicker .ranges .range_inputs>div:nth-child(2) {
padding-left: 11px;
}
.daterangepicker .ranges .range_inputs .applyBtn{
float:right;
}
.daterangepicker .ranges .range_inputs .cancelBtn{
float:right;margin-right:10px;
}
.daterangepicker .calendar {
display: none;
max-width: 290px;
}
.daterangepicker.show-calendar .calendar {
display: block;
}
.daterangepicker .calendar.single .calendar-date {
border: none;
}
.daterangepicker .calendar th, .daterangepicker .calendar td {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
white-space: nowrap;
text-align: center;
min-width: 32px;
}
.daterangepicker .daterangepicker_start_input label,
.daterangepicker .daterangepicker_end_input label {
color: #333;
display: block;
font-size: 11px;
font-weight: normal;
height: 20px;
line-height: 20px;
margin-bottom: 2px;
text-shadow: #fff 1px 1px 0px;
text-transform: uppercase;
padding-right:10px;
float:left;
height:34px;
line-height:34px;
}
.daterangepicker .ranges input {
font-size: 11px;
}
.daterangepicker .ranges .input-mini {
background-color: #eee;
border: 1px solid #ccc;
border-radius: 4px;
color: #555;
display: block;
font-size: 11px;
height: 34px;
line-height: 34px;
vertical-align: middle;
margin: 0 0 10px 0;
padding: 0 6px;
width: 84px;
float:left;
}
.daterangepicker .ranges ul {
list-style: none;
margin: 0;
padding: 0;
}
.daterangepicker .ranges li {
font-size: 13px;
background: #f5f5f5;
border: 1px solid #f5f5f5;
color: #08c;
padding: 3px 12px;
margin-bottom: 8px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
cursor: pointer;
}
.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover {
background: #08c;
border: 1px solid #08c;
color: #fff;
}
.daterangepicker .calendar-date {
border: 1px solid #ddd;
padding: 4px;
border-radius: 4px;
background: #fff;
}
.daterangepicker .calendar-time {
text-align: center;
margin: 8px auto 0 auto;
line-height: 30px;
}
.daterangepicker {
position: absolute;
background: #fff;
top: 100px;
left: 20px;
padding: 4px;
margin-top: 1px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.daterangepicker.opensleft:before {
position: absolute;
top: -7px;
right: 9px;
display: inline-block;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-left: 7px solid transparent;
border-bottom-color: rgba(0, 0, 0, 0.2);
content: '';
}
.daterangepicker.opensleft:after {
position: absolute;
top: -6px;
right: 10px;
display: inline-block;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
border-left: 6px solid transparent;
content: '';
}
.daterangepicker.opensright:before {
position: absolute;
top: -7px;
left: 9px;
display: inline-block;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-left: 7px solid transparent;
border-bottom-color: rgba(0, 0, 0, 0.2);
content: '';
}
.daterangepicker.opensright:after {
position: absolute;
top: -6px;
left: 10px;
display: inline-block;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
border-left: 6px solid transparent;
content: '';
}
.daterangepicker table {
width: 100%;
margin: 0;
}
.daterangepicker td, .daterangepicker th {
text-align: center;
width: 20px;
height: 20px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
cursor: pointer;
white-space: nowrap;
}
.daterangepicker td.off {
color: #999;
}
.daterangepicker td.disabled {
color: #999;
}
.daterangepicker td.available:hover, .daterangepicker th.available:hover {
background: #eee;
}
.daterangepicker td.in-range {
background: #ebf4f8;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.daterangepicker td.active, .daterangepicker td.active:hover {
background-color: #357ebd;
border-color: #3071a9;
color: #fff;
}
.daterangepicker td.week, .daterangepicker th.week {
font-size: 80%;
color: #ccc;
}
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
font-size: 12px;
padding: 1px;
height: auto;
margin: 0;
cursor: default;
}
.daterangepicker select.monthselect {
margin-right: 2%;
width: 56%;
}
.daterangepicker select.yearselect {
width: 40%;
}
.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.ampmselect {
width: 50px;
margin-bottom: 0;
}
.daterangepicker_start_input {
float: left;
}
.daterangepicker_end_input {
float: left;
padding-left: 11px
}
.daterangepicker th.month {
width: auto;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -84,7 +84,7 @@
</a>
<dl class="layui-nav-child">
<dd>
<a href="#" lay-id="1" lay-url="/admin/root/touser?random=Math.random">
<a href="#" lay-id="1" lay-url="/admin/root/touser">
<cite>用户管理</cite>
</a>
</dd>
@@ -92,7 +92,7 @@
<dl class="layui-nav-child">
<dd>
<a href="#" lay-id="2" lay-url="/admin/root/tostorage?random=Math.random">
<a href="#" lay-id="2" lay-url="/admin/root/tostorage">
<cite>对象存储</cite>
</a>
</dd>
@@ -100,21 +100,21 @@
<dl class="layui-nav-child">
<dd>
<a href="#" lay-id="11" lay-url="/admin/root/ImageReview?random=Math.random">
<a href="#" lay-id="11" lay-url="/admin/root/ImageReview">
<cite>图片鉴黄</cite>
</a>
</dd>
</dl>
<dl class="layui-nav-child">
<dd>
<a href="#" lay-id="4" lay-url="/admin/root/emailconfig?random=Math.random">
<a href="#" lay-id="4" lay-url="/admin/root/emailconfig">
<cite>邮箱配置</cite>
</a>
</dd>
</dl>
<dl class="layui-nav-child">
<dd>
<a href="#" lay-id="5" lay-url="/admin/root/towebconfig?random=Math.random">
<a href="#" lay-id="5" lay-url="/admin/root/towebconfig">
<cite>站点配置</cite>
</a>
</dd>
+84 -45
View File
@@ -13,6 +13,7 @@
<link th:href="@{/static/css/login-register.css}" media="all" rel="stylesheet" type="text/css"/>
<link th:href="@{/static/css/bootstrap-table.css}" media="all" rel="stylesheet" type="text/css"/>
<link th:href="@{/static/css/sweetalert.min.css}" media="all" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" type="text/css" media="all" th:href="@{/static/css/daterangepicker-bs3.css}" />
<link rel="stylesheet" th:href="@{/layui/layui/css/layui.css}">
<script th:src="@{/static/js/jquery-3.4.1.min.js}" type="text/javascript"></script>
<script th:src="@{/static/js/bootstrap.min.js}" type="text/javascript"></script>
@@ -25,6 +26,10 @@
<script th:src="@{/static/js/sweetalert.min.js}"></script>
<script th:src="@{/layui/layui/layui.js}"></script>
<script type="text/javascript" th:src="@{/static/js/mustache.min.js}"></script>
<script th:src="@{/static/js/moment.js}"></script>
<script th:src="@{/static/js/daterangepicker.js}"></script>
<!-- 样式 -->
<style type="text/css">
.kv-main {
@@ -95,36 +100,50 @@
<table class="table table-bordered ft-table table-hover" id="table_server">
<hr/>
<!-- Single button -->
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
批量操作 <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#" onclick="deleall();">删除选中</a></li>
</ul>
</div>
<!-- Single button -->
<div class="btn-group" th:if=" ${level} gt '1'">
<span style="margin-left: 50px;">列表显示:</span>
</div>
<div class="btn-group" th:if=" ${level} gt '1'">
<select id="myselect" class="form-control">
<option value="1" checked="checked">所有人</option>
<option value="2">仅自己</option>
</select>
</div>
</table>
</div>
<div id="isusers">
<!--分页 -->
<table class="table table-bordered ft-table" id="table_server2">
<h4 id="mytext1">用户列表</h4>
<div class="btn-group">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
批量操作 <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#" onclick="deleall();">删除选中</a></li>
</ul>
</div>
<div class="btn-group" th:if=" ${level} gt '1'">
<span style="margin-left: 70px;line-height: 36px;">列表显示:</span>
</div>
<div class="btn-group" th:if=" ${level} gt '1'">
<select id="myselect" class="form-control">
<option value="1" checked="checked">所有人</option>
<option value="2">仅自己</option>
</select>
</div>
<div class="btn-group">
<span style="margin-left: 20px;line-height: 36px;">存储源:</span>
</div>
<div class="btn-group">
<select id="StorageType" class="form-control">
<option value="0">所有</option>
<option value="1">网易NOS</option>
<option value="2">阿里OSS</option>
<option value="3">又拍USS</option>
<option value="4">七牛云存储(未接入)</option>
</select>
</div>
<div class="btn-group">
<span style="margin-left: 20px;line-height: 36px;">时间:</span>
</div>
<div class="input-prepend input-group">
<span class="add-on input-group-addon" onclick="thisclear()">
<i class="glyphicon glyphicon-repeat" ></i>
</span>
<input type="text" readonly style="width: 200px" name="reservation" id="reservation" class="form-control" />
<div class="btn-group">
<a style="margin-left: 50px;" type="button" class="btn btn-info" onclick="screening();">筛选</a>
</div>
</div>
</div>
</table>
</div>
@@ -135,21 +154,13 @@
</body>
<script type="application/javascript">
var layer;
layui.use('layer', function () {
layer = layui.layer;
});
// function getimglist() {
// $("#isimgs").show();
// $("#isusers").hide();
// }
var t;
$(function () {
$("#isimgs").show();
$("#isusers").hide();
var loginid = [[${loginid}]];
//var source = [[${source}]];
// $("#source").text(str);
@@ -169,15 +180,23 @@
showMethod: "fadeIn",
hideMethod: "fadeOut"
};
//日历表单
$(document).ready(function() {
$('#reservation').daterangepicker(null, function(start, end, label) {
//console.log(start.toISOString(), end.toISOString(), label);
});
});
// 分页
fenye('/admin/selecttable', 1);//1代表查询所有人
$("#myselect").change(function () {
var opt = $("#myselect").val();
// 先销毁table中的数据
$("#table_server").bootstrapTable('destroy');
fenye('/admin/selecttable', opt);
});
// $("#myselect").change(function () {
// var opt = $("#myselect").val();
// // 先销毁table中的数据
// $("#table_server").bootstrapTable('destroy');
// fenye('/admin/selecttable', opt);
// });
//获取本站概况
$.ajax({
type: "POST",
@@ -206,7 +225,20 @@
});
function screening(){
$("#table_server").bootstrapTable('destroy');
var myselect = $('#myselect').val();
var StorageType = $('#StorageType').val();
var reservation = $('#reservation').val();
var arr=new Array();
if(reservation!=''){
arr=reservation.split(' - ');
fenye('/admin/selecttable', myselect,StorageType,arr[0],arr[1]);
}else{
fenye('/admin/selecttable', myselect,StorageType,null,null);
}
}
function deleall() {
swal({
title: "确认删除选中图片?",
@@ -369,7 +401,7 @@
}
function fenye(url, selecttype) {
function fenye(url, selecttype,StorageType,starttime,stoptime) {
t = $("#table_server").bootstrapTable({
url: url,
method: 'get',
@@ -397,6 +429,9 @@
pageNum: (params.offset / params.limit) + 1,//从数据库第几条记录开始
pageSize: params.limit//找多少条
, selecttype: selecttype
,storageType:StorageType
,starttime:starttime
,stoptime:stoptime
};
},
idField: "链接",//指定主键列
@@ -492,5 +527,9 @@
});
}
function thisclear() {
$('#reservation').val('');
}
</script>
</html>
+2 -2
View File
@@ -31,10 +31,10 @@
<ul class="nav navbar-nav">
<li class="hidden-sm hidden-md ">
<!-- <a onclick="guanyu();" target="_blank" style="cursor:pointer;">说明</a>-->
<a href="http://www.hellohao.cn" target="_blank">作者博客</a>
<!-- <a href="http://www.hellohao.cn" target="_blank">作者博客</a>-->
</li>
<li>
<a href="https://github.com/Hello-hao/Tbed" target="_blank">Github开源</a>
<!-- <a href="https://github.com/Hello-hao/Tbed" target="_blank">Github开源</a>-->
</li>
</ul>
<ul id="usersrc" class="nav navbar-nav navbar-right hidden-sm">
+1 -1
View File
@@ -233,7 +233,7 @@
if (loginid == 100) {
var username = [[${username}]];
var isvip = [[${level}]];
var h = '<li><a target="_blank" id="usernames" >' + times() + username + '&nbsp;<img style=" margin-top:-6px;width:22px; height:22px;max-width:90%;max-height:90%;" src="/static/img/vip/Vip' + isvip + '.png" /></a></li>';
var h = '<li><a target="_blank" id="usernames" >' + times() + username + '&nbsp;<img style=" margin-top:-2px;float:right;width:22px; height:22px;max-width:90%;max-height:90%;" src="/static/img/vip/Vip' + isvip + '.png" /></a></li>';
var h1 = '<li><a style="font-weight: bold;" target="_blank" href="/admin/goadmin" id="usernames" >控制面板&nbsp;</a></li>';
var h2 = '<li><a href="javascript:exit();" title="666" onclick="">退出</a></li>';
$("#usersrc").html(h + h1 + h2);
@@ -260,7 +260,7 @@
var username = data.username;
var isvip = data.level;
var h = '<li><a target="_blank" id="usernames" >' + times() + username + '&nbsp;<img style=" margin-top:-6px;width:22px; height:22px;max-width:90%;max-height:90%;" src="/static/img/vip/Vip' + isvip + '.png" /></a></li>';
var h1 = '<li><a style="font-weight: bold;" target="_blank" href="/admin/goadmin?random=Math.random" id="usernames" >控制面板&nbsp;</a></li>';
var h1 = '<li><a style="font-weight: bold;" target="_blank" href="/admin/goadmin" id="usernames" >控制面板&nbsp;</a></li>';
var h2 = '<li><a href="javascript:exit();" title="666" onclick="">退出</a></li>';
$("#usersrc").html(h + h1 + h2);
}