main
tamguo 7 years ago
parent c7f0bda24f
commit 92cba17961

@ -1,6 +1,8 @@
package com.tamguo.config.dao; package com.tamguo.config.dao;
import com.baomidou.mybatisplus.mapper.MetaObjectHandler; import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import com.tamguo.modules.sys.utils.ShiroUtils;
import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.MetaObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -16,6 +18,10 @@ public class MyMetaObjectHandler extends MetaObjectHandler {
@Override @Override
public void insertFill(MetaObject metaObject) { public void insertFill(MetaObject metaObject) {
logger.info("新增的时候干点不可描述的事情"); logger.info("新增的时候干点不可描述的事情");
Object testType = getFieldValByName("createBy", metaObject);
if (testType == null) {
setFieldValByName("createBy", ShiroUtils.getUser() , metaObject); //mybatis-plus版本2.0.9+
}
} }
@Override @Override

@ -4,7 +4,11 @@ import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.annotations.TableName;
import com.tamguo.modules.sys.model.enums.SysMenuStatusEnum;
/** /**
@ -15,6 +19,7 @@ import com.baomidou.mybatisplus.annotations.TableName;
public class SysMenuEntity implements Serializable { public class SysMenuEntity implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId
private String menuCode; private String menuCode;
private String createBy; private String createBy;
private Date createDate; private Date createDate;
@ -25,14 +30,15 @@ public class SysMenuEntity implements Serializable {
private String menuName; private String menuName;
private String menuTarget; private String menuTarget;
private String menuType; private String menuType;
private String moduleCodes;
private String parentCode; private String parentCode;
private String parentCodes; private String parentCodes;
private String permission; private String permission;
private String remarks; private String remarks;
private String status;
@JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString)
private SysMenuStatusEnum status;
private String sysCode; private String sysCode;
private String treeLeaf; private Boolean treeLeaf;
private BigDecimal treeLevel; private BigDecimal treeLevel;
private String treeNames; private String treeNames;
private BigDecimal treeSort; private BigDecimal treeSort;
@ -124,14 +130,6 @@ public class SysMenuEntity implements Serializable {
this.menuType = menuType; this.menuType = menuType;
} }
public String getModuleCodes() {
return this.moduleCodes;
}
public void setModuleCodes(String moduleCodes) {
this.moduleCodes = moduleCodes;
}
public String getParentCode() { public String getParentCode() {
return this.parentCode; return this.parentCode;
} }
@ -164,13 +162,6 @@ public class SysMenuEntity implements Serializable {
this.remarks = remarks; this.remarks = remarks;
} }
public String getStatus() {
return this.status;
}
public void setStatus(String status) {
this.status = status;
}
public String getSysCode() { public String getSysCode() {
return this.sysCode; return this.sysCode;
@ -180,14 +171,6 @@ public class SysMenuEntity implements Serializable {
this.sysCode = sysCode; this.sysCode = sysCode;
} }
public String getTreeLeaf() {
return this.treeLeaf;
}
public void setTreeLeaf(String treeLeaf) {
this.treeLeaf = treeLeaf;
}
public BigDecimal getTreeLevel() { public BigDecimal getTreeLevel() {
return this.treeLevel; return this.treeLevel;
} }
@ -249,4 +232,20 @@ public class SysMenuEntity implements Serializable {
return getMenuCode(); return getMenuCode();
} }
public SysMenuStatusEnum getStatus() {
return status;
}
public void setStatus(SysMenuStatusEnum status) {
this.status = status;
}
public Boolean getTreeLeaf() {
return treeLeaf;
}
public void setTreeLeaf(Boolean treeLeaf) {
this.treeLeaf = treeLeaf;
}
} }

@ -0,0 +1,34 @@
package com.tamguo.modules.sys.model.enums;
import java.io.Serializable;
import com.baomidou.mybatisplus.enums.IEnum;
/**
*
*/
public enum SysMenuStatusEnum implements IEnum {
NORMAL("0", "正常"),
DELETE("1" , "删除"),
DISABLED("2" , "停用");
private String value;
private String desc;
SysMenuStatusEnum(final String value, final String desc) {
this.value = value;
this.desc = desc;
}
public Serializable getValue() {
return this.value;
}
public String getDesc(){
return this.desc;
}
@Override
public String toString() {
return this.value;
}
}

@ -15,4 +15,7 @@ public interface ISysMenuService extends IService<SysMenuEntity>{
/** 树形结构*/ /** 树形结构*/
JSONArray treeData(String excludeId); JSONArray treeData(String excludeId);
/** 新增菜单*/
void save(SysMenuEntity menu);
} }

@ -1,5 +1,7 @@
package com.tamguo.modules.sys.service.impl; package com.tamguo.modules.sys.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -13,7 +15,9 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.tamguo.modules.sys.dao.SysMenuMapper; import com.tamguo.modules.sys.dao.SysMenuMapper;
import com.tamguo.modules.sys.model.SysMenuEntity; import com.tamguo.modules.sys.model.SysMenuEntity;
import com.tamguo.modules.sys.model.condition.SysMenuCondition; import com.tamguo.modules.sys.model.condition.SysMenuCondition;
import com.tamguo.modules.sys.model.enums.SysMenuStatusEnum;
import com.tamguo.modules.sys.service.ISysMenuService; import com.tamguo.modules.sys.service.ISysMenuService;
import com.tamguo.modules.sys.utils.ShiroUtils;
@Service @Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity> implements ISysMenuService { public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity> implements ISysMenuService {
@ -57,4 +61,32 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity
return null; return null;
} }
@Transactional(readOnly=false)
@Override
public void save(SysMenuEntity menu) {
menu.setCreateBy(ShiroUtils.getUserCode());
menu.setCreateDate(new Date());
menu.setUpdateBy(ShiroUtils.getUserCode());
menu.setUpdateDate(new Date());
menu.setStatus(SysMenuStatusEnum.NORMAL);
// 父节点
if(StringUtils.isEmpty(menu.getParentCode())) {
menu.setTreeLeaf(true);
menu.setTreeLevel(new BigDecimal(0));
menu.setTreeNames(menu.getMenuName() + ",");
}else {
SysMenuEntity parentMenu = sysMenuMapper.selectById(menu.getParentCode());
menu.setTreeLeaf(true);
menu.setTreeLevel(parentMenu.getTreeLevel().add(new BigDecimal(1)));
menu.setTreeNames(parentMenu.getTreeNames() + menu.getMenuName() + ",");
menu.setParentCodes(parentMenu.getParentCodes() + menu.getParentCode() + ",");
parentMenu.setTreeLeaf(false);
sysMenuMapper.updateById(parentMenu);
}
menu.setTreeSorts(menu.getTreeSort() + ",");
sysMenuMapper.insert(menu);
}
} }

@ -11,6 +11,8 @@ import com.alibaba.fastjson.JSONArray;
import com.tamguo.modules.sys.model.SysMenuEntity; import com.tamguo.modules.sys.model.SysMenuEntity;
import com.tamguo.modules.sys.model.condition.SysMenuCondition; import com.tamguo.modules.sys.model.condition.SysMenuCondition;
import com.tamguo.modules.sys.service.ISysMenuService; import com.tamguo.modules.sys.service.ISysMenuService;
import com.tamguo.modules.sys.utils.ExceptionSupport;
import com.tamguo.modules.sys.utils.Result;
@Controller @Controller
@RequestMapping(path="sys/menu") @RequestMapping(path="sys/menu")
@ -33,6 +35,17 @@ public class SysMenuController {
return list; return list;
} }
@RequestMapping(path="save")
@ResponseBody
public Result save(SysMenuEntity menu) {
try {
iSysMenuService.save(menu);
return Result.result(0, null, "新增菜单【"+menu.getMenuName()+"】成功!");
} catch (Exception e) {
return ExceptionSupport.resolverResult("新增菜单", this.getClass(), e);
}
}
@RequestMapping(path="treeData") @RequestMapping(path="treeData")
@ResponseBody @ResponseBody
public JSONArray treeData(String excludeId , String sysCode , String isShowNameOrig) { public JSONArray treeData(String excludeId , String sysCode , String isShowNameOrig) {

@ -22,7 +22,6 @@
m.weight, m.weight,
m.is_show, m.is_show,
m.sys_code, m.sys_code,
m.module_codes,
m.`status`, m.`status`,
m.create_by, m.create_by,
m.update_by, m.update_by,

@ -31,7 +31,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<li><a href="javascript:" onclick=" <li><a href="javascript:" onclick="
$('#sysCode').val('default'); $('#sysCode').val('default');
$('#sysCodeName').text('主导航菜单'); $('#sysCodeName').text('主导航菜单');
$('#parentDiv').attr('data-url','/js/a/sys/menu/treeData?excludeCode=&sysCode=default'); $('#parentDiv').attr('data-url','sys/menu/treeData?excludeCode=&sysCode=default');
$('#parentCode,#parentName').val(''); $('#parentCode,#parentName').val('');
"><i class="fa fa-angle-right"></i> 主导航菜单</a></li> "><i class="fa fa-angle-right"></i> 主导航菜单</a></li>
</ul> </ul>
@ -52,11 +52,10 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4">上级菜单:</label> <label class="control-label col-sm-4">上级菜单:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group treeselect" id="parentDiv" data-url="sys/menu/treeData?excludeCode=&sysCode=default&isShowNameOrig=true"> <div class="input-group treeselect" id="parentDiv" data-url="sys/menu/treeData?excludeCode=&sysCode=default&isShowNameOrig=true">
<input id="parentCode" type="hidden" name="parent.id" value="" class="isReset"/> <input id="parentCode" type="hidden" name="parentCode" value="" class="isReset"/>
<input id="parentName" type="text" name="parent.menuNameOrig" value="" <input id="parentName" type="text" name="parentName" value="" class="form-control " readonly="readonly"/>
class="form-control " readonly="readonly" <span class="input-group-btn"><a id="parentButton" href="javascript:" class="btn btn-default ">
/><span class="input-group-btn"><a id="parentButton" href="javascript:" <i class="fa fa-search"></i></a>
class="btn btn-default "><i class="fa fa-search"></i></a>
</span> </span>
</div> </div>
<script> <script>
@ -138,7 +137,7 @@ $("#parentButton,#parentName").click(function(){
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-4">菜单名称:</label> <label class="control-label col-sm-4">菜单名称:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" id="menuNameOrig" name="menuNameOrig" value="" maxlength="50" class="form-control required"/> <input type="text" id="menuName" name="menuName" value="" maxlength="50" class="form-control required"/>
</div> </div>
</div> </div>
</div> </div>
@ -327,10 +326,6 @@ $("#menuIconButton").click(function(){
<script> <script>
$("#inputForm").validate({ $("#inputForm").validate({
submitHandler: function(form){ submitHandler: function(form){
if ($('#moduleCodes').val() == null){
js.showMessage('请选择归属模块!');
return;
}
js.ajaxSubmitForm($(form), function(data){ js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message); js.showMessage(data.message);
if(data.result == Global.TRUE){ if(data.result == Global.TRUE){

@ -88,9 +88,6 @@ $('#dataGrid').dataGrid({
return '<i class="'+row.menuIcon+'" style="color:'+row.color+'"></i> <a href="/js/a/sys/menu/form?menuCode=' return '<i class="'+row.menuIcon+'" style="color:'+row.color+'"></i> <a href="/js/a/sys/menu/form?menuCode='
+row.id+'" class="btnList" style="color:'+row.color+'" data-title="编辑菜单">'+val+'</a>'; +row.id+'" class="btnList" style="color:'+row.color+'" data-title="编辑菜单">'+val+'</a>';
}}, }},
{header:'归属模块', name:'moduleCodes', width:100, align:"center", formatter: function(val, obj, row, act){
return '<a href="javascript:" title="按模块查询" onclick="$(\'#moduleCodes\').val($(this).text());$(\'#dataGrid\').dataGrid(\'refreshTree\',1);">'+val+'</a>';
}},
{header:'链接', name:'menuHref', width:150}, {header:'链接', name:'menuHref', width:150},
{header:'排序', name:'treeSort', width:63, align:"center", formatter: function(val, obj, row, act){ {header:'排序', name:'treeSort', width:63, align:"center", formatter: function(val, obj, row, act){
var html = []; var html = [];

Loading…
Cancel
Save