Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
guns-vip
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenjunxiong
guns-vip
Commits
c4b61475
Commit
c4b61475
authored
Dec 23, 2018
by
fengshuonan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整理部门管理代码
parent
0119ac9e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
142 additions
and
96 deletions
+142
-96
src/main/java/cn/stylefeng/guns/core/common/node/ZTreeNode.java
+15
-54
src/main/java/cn/stylefeng/guns/modular/system/controller/DeptController.java
+51
-37
src/main/java/cn/stylefeng/guns/modular/system/service/DeptService.java
+73
-1
src/main/webapp/assets/modular/system/dept/dept_edit.js
+3
-4
No files found.
src/main/java/cn/stylefeng/guns/core/common/node/ZTreeNode.java
View file @
c4b61475
...
...
@@ -15,79 +15,40 @@
*/
package
cn
.
stylefeng
.
guns
.
core
.
common
.
node
;
import
lombok.Data
;
/**
* jquery ztree 插件的节点
*
* @author fengshuonan
* @date 2017年2月17日 下午8:25:14
*/
@Data
public
class
ZTreeNode
{
private
Long
id
;
//节点id
private
Long
pId
;
//父节点id
private
Long
id
;
//节点id
private
String
name
;
//节点名称
private
Long
pId
;
//父节点id
private
Boolean
open
;
//是否打开节点
private
String
name
;
//节点名称
private
Boolean
checked
;
//是否被选中
public
Long
getId
()
{
return
id
;
}
private
Boolean
open
;
//是否打开节点
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
Long
getpId
()
{
return
pId
;
}
public
void
setpId
(
Long
pId
)
{
this
.
pId
=
pId
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
Boolean
getOpen
()
{
return
open
;
}
public
void
setOpen
(
Boolean
open
)
{
this
.
open
=
open
;
}
public
Boolean
getIsOpen
()
{
return
open
;
}
public
void
setIsOpen
(
Boolean
open
)
{
this
.
open
=
open
;
}
public
Boolean
getChecked
()
{
return
checked
;
}
public
void
setChecked
(
Boolean
checked
)
{
this
.
checked
=
checked
;
}
private
Boolean
checked
;
//是否被选中
/**
* 创建ztree的父级节点
*
* @author fengshuonan
* @Date 2018/12/23 4:51 PM
*/
public
static
ZTreeNode
createParent
()
{
ZTreeNode
zTreeNode
=
new
ZTreeNode
();
zTreeNode
.
setChecked
(
true
);
zTreeNode
.
setId
(
0L
);
zTreeNode
.
setName
(
"顶级"
);
zTreeNode
.
setOpen
(
true
);
zTreeNode
.
set
p
Id
(
0L
);
zTreeNode
.
set
P
Id
(
0L
);
return
zTreeNode
;
}
}
src/main/java/cn/stylefeng/guns/modular/system/controller/DeptController.java
View file @
c4b61475
...
...
@@ -20,7 +20,6 @@ import cn.stylefeng.guns.core.common.annotion.BussinessLog;
import
cn.stylefeng.guns.core.common.annotion.Permission
;
import
cn.stylefeng.guns.core.common.constant.dictmap.DeptDict
;
import
cn.stylefeng.guns.core.common.constant.factory.ConstantFactory
;
import
cn.stylefeng.guns.core.common.exception.BizExceptionEnum
;
import
cn.stylefeng.guns.core.common.node.TreeviewNode
;
import
cn.stylefeng.guns.core.common.node.ZTreeNode
;
import
cn.stylefeng.guns.core.log.LogObjectHolder
;
...
...
@@ -30,12 +29,12 @@ import cn.stylefeng.guns.modular.system.service.DeptService;
import
cn.stylefeng.guns.modular.system.warpper.DeptTreeWarpper
;
import
cn.stylefeng.guns.modular.system.warpper.DeptWarpper
;
import
cn.stylefeng.roses.core.base.controller.BaseController
;
import
cn.stylefeng.roses.core.reqres.response.ResponseData
;
import
cn.stylefeng.roses.core.treebuild.DefaultTreeBuildFactory
;
import
cn.stylefeng.roses.core.util.ToolUtil
;
import
cn.stylefeng.roses.kernel.model.exception.
Service
Exception
;
import
cn.stylefeng.roses.kernel.model.exception.
RequestEmpty
Exception
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
...
...
@@ -61,6 +60,9 @@ public class DeptController extends BaseController {
/**
* 跳转到部门管理首页
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/
@RequestMapping
(
""
)
public
String
index
()
{
...
...
@@ -69,6 +71,9 @@ public class DeptController extends BaseController {
/**
* 跳转到添加部门
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/
@RequestMapping
(
"/dept_add"
)
public
String
deptAdd
()
{
...
...
@@ -77,19 +82,30 @@ public class DeptController extends BaseController {
/**
* 跳转到修改部门
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/
@Permission
@RequestMapping
(
"/dept_update"
)
public
String
deptUpdate
(
@RequestParam
(
"deptId"
)
Long
deptId
,
Model
model
)
{
public
String
deptUpdate
(
@RequestParam
(
"deptId"
)
Long
deptId
)
{
if
(
ToolUtil
.
isEmpty
(
deptId
))
{
throw
new
RequestEmptyException
();
}
//缓存部门修改前详细信息
Dept
dept
=
deptService
.
selectById
(
deptId
);
model
.
addAttribute
(
dept
);
model
.
addAttribute
(
"pName"
,
ConstantFactory
.
me
().
getDeptName
(
dept
.
getPid
()));
LogObjectHolder
.
me
().
set
(
dept
);
return
PREFIX
+
"dept_edit.html"
;
}
/**
* 获取部门的tree列表
* 获取部门的tree列表,ztree格式
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/
@RequestMapping
(
value
=
"/tree"
)
@ResponseBody
...
...
@@ -100,7 +116,10 @@ public class DeptController extends BaseController {
}
/**
* 获取部门的tree列表
* 获取部门的tree列表,treeview格式
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/
@RequestMapping
(
value
=
"/treeview"
)
@ResponseBody
...
...
@@ -114,28 +133,30 @@ public class DeptController extends BaseController {
//把子节点为空的设为null
DeptTreeWarpper
.
clearNull
(
results
);
return
results
;
}
/**
* 新增部门
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/
@BussinessLog
(
value
=
"添加部门"
,
key
=
"simple
n
ame"
,
dict
=
DeptDict
.
class
)
@BussinessLog
(
value
=
"添加部门"
,
key
=
"simple
N
ame"
,
dict
=
DeptDict
.
class
)
@RequestMapping
(
value
=
"/add"
)
@Permission
@ResponseBody
public
Object
add
(
Dept
dept
)
{
if
(
ToolUtil
.
isOneEmpty
(
dept
,
dept
.
getSimpleName
()))
{
throw
new
ServiceException
(
BizExceptionEnum
.
REQUEST_NULL
);
}
//完善pids,根据pid拿到pid的pids
deptSetPids
(
dept
);
return
this
.
deptService
.
insert
(
dept
);
public
ResponseData
add
(
Dept
dept
)
{
this
.
deptService
.
addDept
(
dept
);
return
SUCCESS_TIP
;
}
/**
* 获取所有部门列表
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/
@RequestMapping
(
value
=
"/list"
)
@Permission
...
...
@@ -148,6 +169,9 @@ public class DeptController extends BaseController {
/**
* 部门详情
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/
@RequestMapping
(
value
=
"/detail/{deptId}"
)
@Permission
...
...
@@ -162,28 +186,30 @@ public class DeptController extends BaseController {
/**
* 修改部门
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/
@BussinessLog
(
value
=
"修改部门"
,
key
=
"simple
n
ame"
,
dict
=
DeptDict
.
class
)
@BussinessLog
(
value
=
"修改部门"
,
key
=
"simple
N
ame"
,
dict
=
DeptDict
.
class
)
@RequestMapping
(
value
=
"/update"
)
@Permission
@ResponseBody
public
Object
update
(
Dept
dept
)
{
if
(
ToolUtil
.
isEmpty
(
dept
)
||
dept
.
getDeptId
()
==
null
)
{
throw
new
ServiceException
(
BizExceptionEnum
.
REQUEST_NULL
);
}
deptSetPids
(
dept
);
deptService
.
updateById
(
dept
);
public
ResponseData
update
(
Dept
dept
)
{
deptService
.
editDept
(
dept
);
return
SUCCESS_TIP
;
}
/**
* 删除部门
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/
@BussinessLog
(
value
=
"删除部门"
,
key
=
"deptId"
,
dict
=
DeptDict
.
class
)
@RequestMapping
(
value
=
"/delete"
)
@Permission
@ResponseBody
public
Object
delete
(
@RequestParam
Long
deptId
)
{
public
ResponseData
delete
(
@RequestParam
Long
deptId
)
{
//缓存被删除的部门名称
LogObjectHolder
.
me
().
set
(
ConstantFactory
.
me
().
getDeptName
(
deptId
));
...
...
@@ -193,16 +219,4 @@ public class DeptController extends BaseController {
return
SUCCESS_TIP
;
}
private
void
deptSetPids
(
Dept
dept
)
{
if
(
ToolUtil
.
isEmpty
(
dept
.
getPid
())
||
dept
.
getPid
().
equals
(
0L
))
{
dept
.
setPid
(
0L
);
dept
.
setPids
(
"[0],"
);
}
else
{
Long
pid
=
dept
.
getPid
();
Dept
temp
=
deptService
.
selectById
(
pid
);
String
pids
=
temp
.
getPids
();
dept
.
setPid
(
pid
);
dept
.
setPids
(
pids
+
"["
+
pid
+
"],"
);
}
}
}
src/main/java/cn/stylefeng/guns/modular/system/service/DeptService.java
View file @
c4b61475
package
cn
.
stylefeng
.
guns
.
modular
.
system
.
service
;
import
cn.stylefeng.guns.core.common.exception.BizExceptionEnum
;
import
cn.stylefeng.guns.core.common.node.TreeviewNode
;
import
cn.stylefeng.guns.core.common.node.ZTreeNode
;
import
cn.stylefeng.guns.modular.system.entity.Dept
;
import
cn.stylefeng.guns.modular.system.mapper.DeptMapper
;
import
cn.stylefeng.roses.core.util.ToolUtil
;
import
cn.stylefeng.roses.kernel.model.exception.ServiceException
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.service.impl.ServiceImpl
;
...
...
@@ -29,12 +32,54 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> {
private
DeptMapper
deptMapper
;
/**
* 新增部门
*
* @author fengshuonan
* @Date 2018/12/23 5:00 PM
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addDept
(
Dept
dept
)
{
if
(
ToolUtil
.
isOneEmpty
(
dept
,
dept
.
getSimpleName
(),
dept
.
getFullName
(),
dept
.
getPid
(),
dept
.
getDescription
()))
{
throw
new
ServiceException
(
BizExceptionEnum
.
REQUEST_NULL
);
}
//完善pids,根据pid拿到pid的pids
this
.
deptSetPids
(
dept
);
this
.
insert
(
dept
);
}
/**
* 修改部门
*
* @author fengshuonan
* @Date 2018/12/23 5:00 PM
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
editDept
(
Dept
dept
)
{
if
(
ToolUtil
.
isOneEmpty
(
dept
,
dept
.
getDeptId
(),
dept
.
getSimpleName
(),
dept
.
getFullName
(),
dept
.
getPid
(),
dept
.
getDescription
()))
{
throw
new
ServiceException
(
BizExceptionEnum
.
REQUEST_NULL
);
}
//完善pids,根据pid拿到pid的pids
this
.
deptSetPids
(
dept
);
this
.
updateById
(
dept
);
}
/**
* 删除部门
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
@Transactional
public
void
deleteDept
(
Long
deptId
)
{
Dept
dept
=
deptMapper
.
selectById
(
deptId
);
//根据like查询删除所有级联的部门
Wrapper
<
Dept
>
wrapper
=
new
EntityWrapper
<>();
wrapper
=
wrapper
.
like
(
"PIDS"
,
"%["
+
dept
.
getDeptId
()
+
"]%"
);
List
<
Dept
>
subDepts
=
deptMapper
.
selectList
(
wrapper
);
...
...
@@ -47,6 +92,9 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> {
/**
* 获取ztree的节点列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
public
List
<
ZTreeNode
>
tree
()
{
return
this
.
baseMapper
.
tree
();
...
...
@@ -54,6 +102,9 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> {
/**
* 获取ztree的节点列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
public
List
<
TreeviewNode
>
treeviewNodes
()
{
return
this
.
baseMapper
.
treeviewNodes
();
...
...
@@ -61,9 +112,30 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> {
/**
* 获取所有部门列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
public
List
<
Map
<
String
,
Object
>>
list
(
String
condition
,
String
deptId
)
{
return
this
.
baseMapper
.
list
(
condition
,
deptId
);
return
this
.
baseMapper
.
list
(
condition
,
deptId
);
}
/**
* 设置部门的父级ids
*
* @author fengshuonan
* @Date 2018/12/23 4:58 PM
*/
private
void
deptSetPids
(
Dept
dept
)
{
if
(
ToolUtil
.
isEmpty
(
dept
.
getPid
())
||
dept
.
getPid
().
equals
(
0L
))
{
dept
.
setPid
(
0L
);
dept
.
setPids
(
"[0],"
);
}
else
{
Long
pid
=
dept
.
getPid
();
Dept
temp
=
this
.
selectById
(
pid
);
String
pids
=
temp
.
getPids
();
dept
.
setPid
(
pid
);
dept
.
setPids
(
pids
+
"["
+
pid
+
"],"
);
}
}
}
src/main/webapp/assets/modular/system/dept/dept_edit.js
View file @
c4b61475
...
...
@@ -45,11 +45,11 @@ DeptEditInfoDlg.validateForm = function () {
*/
DeptEditInfoDlg
.
addSubmit
=
function
()
{
var
ajax
=
new
$ax
(
Feng
.
ctxPath
+
"/dept/update"
,
function
(
data
)
{
Feng
.
success
(
"修改成功!"
);
parent
.
Feng
.
success
(
"修改成功!"
);
window
.
parent
.
Dept
.
table
.
refresh
();
DeptEditInfoDlg
.
close
();
},
function
(
data
)
{
Feng
.
error
(
"修改失败!"
+
data
.
responseJSON
.
message
+
"!"
);
parent
.
Feng
.
error
(
"修改失败!"
+
data
.
responseJSON
.
message
+
"!"
);
});
ajax
.
set
(
DeptEditInfoDlg
.
data
);
ajax
.
start
();
...
...
@@ -59,8 +59,7 @@ $(function () {
//获取部门信息
var
ajax
=
new
$ax
(
Feng
.
ctxPath
+
"/dept/detail/"
+
Feng
.
getUrlParam
(
"deptId"
));
var
result
=
ajax
.
start
();
DeptEditInfoDlg
.
data
=
result
;
DeptEditInfoDlg
.
data
=
ajax
.
start
();
DeptEditInfoDlg
.
app
=
new
Vue
({
el
:
'#deptEditForm'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment