Commit c4b61475 by fengshuonan

整理部门管理代码

parent 0119ac9e
...@@ -15,12 +15,15 @@ ...@@ -15,12 +15,15 @@
*/ */
package cn.stylefeng.guns.core.common.node; package cn.stylefeng.guns.core.common.node;
import lombok.Data;
/** /**
* jquery ztree 插件的节点 * jquery ztree 插件的节点
* *
* @author fengshuonan * @author fengshuonan
* @date 2017年2月17日 下午8:25:14 * @date 2017年2月17日 下午8:25:14
*/ */
@Data
public class ZTreeNode { public class ZTreeNode {
private Long id; //节点id private Long id; //节点id
...@@ -33,61 +36,19 @@ public class ZTreeNode { ...@@ -33,61 +36,19 @@ public class ZTreeNode {
private Boolean checked; //是否被选中 private Boolean checked; //是否被选中
public Long getId() { /**
return id; * 创建ztree的父级节点
} *
* @author fengshuonan
public void setId(Long id) { * @Date 2018/12/23 4:51 PM
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;
}
public static ZTreeNode createParent() { public static ZTreeNode createParent() {
ZTreeNode zTreeNode = new ZTreeNode(); ZTreeNode zTreeNode = new ZTreeNode();
zTreeNode.setChecked(true); zTreeNode.setChecked(true);
zTreeNode.setId(0L); zTreeNode.setId(0L);
zTreeNode.setName("顶级"); zTreeNode.setName("顶级");
zTreeNode.setOpen(true); zTreeNode.setOpen(true);
zTreeNode.setpId(0L); zTreeNode.setPId(0L);
return zTreeNode; return zTreeNode;
} }
} }
...@@ -20,7 +20,6 @@ import cn.stylefeng.guns.core.common.annotion.BussinessLog; ...@@ -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.annotion.Permission;
import cn.stylefeng.guns.core.common.constant.dictmap.DeptDict; import cn.stylefeng.guns.core.common.constant.dictmap.DeptDict;
import cn.stylefeng.guns.core.common.constant.factory.ConstantFactory; 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.TreeviewNode;
import cn.stylefeng.guns.core.common.node.ZTreeNode; import cn.stylefeng.guns.core.common.node.ZTreeNode;
import cn.stylefeng.guns.core.log.LogObjectHolder; import cn.stylefeng.guns.core.log.LogObjectHolder;
...@@ -30,12 +29,12 @@ import cn.stylefeng.guns.modular.system.service.DeptService; ...@@ -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.DeptTreeWarpper;
import cn.stylefeng.guns.modular.system.warpper.DeptWarpper; import cn.stylefeng.guns.modular.system.warpper.DeptWarpper;
import cn.stylefeng.roses.core.base.controller.BaseController; 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.treebuild.DefaultTreeBuildFactory;
import cn.stylefeng.roses.core.util.ToolUtil; import cn.stylefeng.roses.core.util.ToolUtil;
import cn.stylefeng.roses.kernel.model.exception.ServiceException; import cn.stylefeng.roses.kernel.model.exception.RequestEmptyException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
...@@ -61,6 +60,9 @@ public class DeptController extends BaseController { ...@@ -61,6 +60,9 @@ public class DeptController extends BaseController {
/** /**
* 跳转到部门管理首页 * 跳转到部门管理首页
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/ */
@RequestMapping("") @RequestMapping("")
public String index() { public String index() {
...@@ -69,6 +71,9 @@ public class DeptController extends BaseController { ...@@ -69,6 +71,9 @@ public class DeptController extends BaseController {
/** /**
* 跳转到添加部门 * 跳转到添加部门
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/ */
@RequestMapping("/dept_add") @RequestMapping("/dept_add")
public String deptAdd() { public String deptAdd() {
...@@ -77,19 +82,30 @@ public class DeptController extends BaseController { ...@@ -77,19 +82,30 @@ public class DeptController extends BaseController {
/** /**
* 跳转到修改部门 * 跳转到修改部门
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/ */
@Permission @Permission
@RequestMapping("/dept_update") @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); Dept dept = deptService.selectById(deptId);
model.addAttribute(dept);
model.addAttribute("pName", ConstantFactory.me().getDeptName(dept.getPid()));
LogObjectHolder.me().set(dept); LogObjectHolder.me().set(dept);
return PREFIX + "dept_edit.html"; return PREFIX + "dept_edit.html";
} }
/** /**
* 获取部门的tree列表 * 获取部门的tree列表,ztree格式
*
* @author fengshuonan
* @Date 2018/12/23 4:56 PM
*/ */
@RequestMapping(value = "/tree") @RequestMapping(value = "/tree")
@ResponseBody @ResponseBody
...@@ -100,7 +116,10 @@ public class DeptController extends BaseController { ...@@ -100,7 +116,10 @@ public class DeptController extends BaseController {
} }
/** /**
* 获取部门的tree列表 * 获取部门的tree列表,treeview格式
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/ */
@RequestMapping(value = "/treeview") @RequestMapping(value = "/treeview")
@ResponseBody @ResponseBody
...@@ -114,28 +133,30 @@ public class DeptController extends BaseController { ...@@ -114,28 +133,30 @@ public class DeptController extends BaseController {
//把子节点为空的设为null //把子节点为空的设为null
DeptTreeWarpper.clearNull(results); DeptTreeWarpper.clearNull(results);
return results; return results;
} }
/** /**
* 新增部门 * 新增部门
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/ */
@BussinessLog(value = "添加部门", key = "simplename", dict = DeptDict.class) @BussinessLog(value = "添加部门", key = "simpleName", dict = DeptDict.class)
@RequestMapping(value = "/add") @RequestMapping(value = "/add")
@Permission @Permission
@ResponseBody @ResponseBody
public Object add(Dept dept) { public ResponseData add(Dept dept) {
if (ToolUtil.isOneEmpty(dept, dept.getSimpleName())) { this.deptService.addDept(dept);
throw new ServiceException(BizExceptionEnum.REQUEST_NULL); return SUCCESS_TIP;
}
//完善pids,根据pid拿到pid的pids
deptSetPids(dept);
return this.deptService.insert(dept);
} }
/** /**
* 获取所有部门列表 * 获取所有部门列表
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/ */
@RequestMapping(value = "/list") @RequestMapping(value = "/list")
@Permission @Permission
...@@ -148,6 +169,9 @@ public class DeptController extends BaseController { ...@@ -148,6 +169,9 @@ public class DeptController extends BaseController {
/** /**
* 部门详情 * 部门详情
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/ */
@RequestMapping(value = "/detail/{deptId}") @RequestMapping(value = "/detail/{deptId}")
@Permission @Permission
...@@ -162,28 +186,30 @@ public class DeptController extends BaseController { ...@@ -162,28 +186,30 @@ public class DeptController extends BaseController {
/** /**
* 修改部门 * 修改部门
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/ */
@BussinessLog(value = "修改部门", key = "simplename", dict = DeptDict.class) @BussinessLog(value = "修改部门", key = "simpleName", dict = DeptDict.class)
@RequestMapping(value = "/update") @RequestMapping(value = "/update")
@Permission @Permission
@ResponseBody @ResponseBody
public Object update(Dept dept) { public ResponseData update(Dept dept) {
if (ToolUtil.isEmpty(dept) || dept.getDeptId() == null) { deptService.editDept(dept);
throw new ServiceException(BizExceptionEnum.REQUEST_NULL);
}
deptSetPids(dept);
deptService.updateById(dept);
return SUCCESS_TIP; return SUCCESS_TIP;
} }
/** /**
* 删除部门 * 删除部门
*
* @author fengshuonan
* @Date 2018/12/23 4:57 PM
*/ */
@BussinessLog(value = "删除部门", key = "deptId", dict = DeptDict.class) @BussinessLog(value = "删除部门", key = "deptId", dict = DeptDict.class)
@RequestMapping(value = "/delete") @RequestMapping(value = "/delete")
@Permission @Permission
@ResponseBody @ResponseBody
public Object delete(@RequestParam Long deptId) { public ResponseData delete(@RequestParam Long deptId) {
//缓存被删除的部门名称 //缓存被删除的部门名称
LogObjectHolder.me().set(ConstantFactory.me().getDeptName(deptId)); LogObjectHolder.me().set(ConstantFactory.me().getDeptName(deptId));
...@@ -193,16 +219,4 @@ public class DeptController extends BaseController { ...@@ -193,16 +219,4 @@ public class DeptController extends BaseController {
return SUCCESS_TIP; 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 + "],");
}
}
} }
package cn.stylefeng.guns.modular.system.service; 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.TreeviewNode;
import cn.stylefeng.guns.core.common.node.ZTreeNode; import cn.stylefeng.guns.core.common.node.ZTreeNode;
import cn.stylefeng.guns.modular.system.entity.Dept; import cn.stylefeng.guns.modular.system.entity.Dept;
import cn.stylefeng.guns.modular.system.mapper.DeptMapper; 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.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.baomidou.mybatisplus.service.impl.ServiceImpl;
...@@ -29,12 +32,54 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> { ...@@ -29,12 +32,54 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> {
private DeptMapper deptMapper; 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 @Transactional
public void deleteDept(Long deptId) { public void deleteDept(Long deptId) {
Dept dept = deptMapper.selectById(deptId); Dept dept = deptMapper.selectById(deptId);
//根据like查询删除所有级联的部门
Wrapper<Dept> wrapper = new EntityWrapper<>(); Wrapper<Dept> wrapper = new EntityWrapper<>();
wrapper = wrapper.like("PIDS", "%[" + dept.getDeptId() + "]%"); wrapper = wrapper.like("PIDS", "%[" + dept.getDeptId() + "]%");
List<Dept> subDepts = deptMapper.selectList(wrapper); List<Dept> subDepts = deptMapper.selectList(wrapper);
...@@ -47,6 +92,9 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> { ...@@ -47,6 +92,9 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> {
/** /**
* 获取ztree的节点列表 * 获取ztree的节点列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/ */
public List<ZTreeNode> tree() { public List<ZTreeNode> tree() {
return this.baseMapper.tree(); return this.baseMapper.tree();
...@@ -54,6 +102,9 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> { ...@@ -54,6 +102,9 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> {
/** /**
* 获取ztree的节点列表 * 获取ztree的节点列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/ */
public List<TreeviewNode> treeviewNodes() { public List<TreeviewNode> treeviewNodes() {
return this.baseMapper.treeviewNodes(); return this.baseMapper.treeviewNodes();
...@@ -61,9 +112,30 @@ public class DeptService extends ServiceImpl<DeptMapper, Dept> { ...@@ -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) { 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 + "],");
}
}
} }
...@@ -45,11 +45,11 @@ DeptEditInfoDlg.validateForm = function () { ...@@ -45,11 +45,11 @@ DeptEditInfoDlg.validateForm = function () {
*/ */
DeptEditInfoDlg.addSubmit = function () { DeptEditInfoDlg.addSubmit = function () {
var ajax = new $ax(Feng.ctxPath + "/dept/update", function (data) { var ajax = new $ax(Feng.ctxPath + "/dept/update", function (data) {
Feng.success("修改成功!"); parent.Feng.success("修改成功!");
window.parent.Dept.table.refresh(); window.parent.Dept.table.refresh();
DeptEditInfoDlg.close(); DeptEditInfoDlg.close();
}, function (data) { }, function (data) {
Feng.error("修改失败!" + data.responseJSON.message + "!"); parent.Feng.error("修改失败!" + data.responseJSON.message + "!");
}); });
ajax.set(DeptEditInfoDlg.data); ajax.set(DeptEditInfoDlg.data);
ajax.start(); ajax.start();
...@@ -59,8 +59,7 @@ $(function () { ...@@ -59,8 +59,7 @@ $(function () {
//获取部门信息 //获取部门信息
var ajax = new $ax(Feng.ctxPath + "/dept/detail/" + Feng.getUrlParam("deptId")); var ajax = new $ax(Feng.ctxPath + "/dept/detail/" + Feng.getUrlParam("deptId"));
var result = ajax.start(); DeptEditInfoDlg.data = ajax.start();
DeptEditInfoDlg.data = result;
DeptEditInfoDlg.app = new Vue({ DeptEditInfoDlg.app = new Vue({
el: '#deptEditForm', el: '#deptEditForm',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment