Merge pull request 'test_frontmenu' (#147) from test_frontmenu into test
Reviewed-on: #147feature/schedulePullData
commit
a416f8cb2f
@ -0,0 +1,150 @@
|
||||
<#include "/common/taglibs.html" />
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>前端菜单管理</title>
|
||||
|
||||
|
||||
|
||||
<#include "/head/headaddedit.html" />
|
||||
</head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title">
|
||||
<h5>基本信息</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="main-content">
|
||||
<form name="SFrontmenuTform" method="post" id="SFrontmenuTform" class="form-horizontal" action="${ctx}/backstage/sfrontmenut/save">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 菜单名称:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="name" id="name" class="form-control" placeholder="菜单名称" class="form-control" type="text" maxlength='25' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 菜单关键字:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="reskey" id="reskey" class="form-control" placeholder="菜单关键字" class="form-control" type="text" maxlength='25' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 菜单链接:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="resurl" id="resurl" class="form-control" placeholder="菜单链接" class="form-control" type="text" maxlength='100' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 描述:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="description" id="description" class="form-control" placeholder="描述" class="form-control" type="text" maxlength='100' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-5">
|
||||
<button id="savebutton" type="submit" class="btn btn-w-m btn-primary">保存</button>
|
||||
<button type="button" onclick="rolesback()" class="btn btn-w-m btn-success">取消</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "/head/footadd.html" />
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$('.i-checks').iCheck({
|
||||
checkboxClass: 'icheckbox_square-green',
|
||||
radioClass: 'iradio_square-green',
|
||||
});
|
||||
$("#SFrontmenuTform").attr("action","${ctx}/backstage/oa/frontmenu/save");
|
||||
var form1 = $('#SFrontmenuTform');
|
||||
var error1 = $('.alert-danger', form1);
|
||||
form1.validate({
|
||||
debug: true,
|
||||
errorElement: 'span',
|
||||
errorClass: 'help-block help-block-error',
|
||||
focusInvalid: false,
|
||||
ignore: "",
|
||||
errorPlacement: function (error, element) {
|
||||
if (element.parent(".input-group").size() > 0) {
|
||||
error.insertAfter(element.parent(".input-group"));
|
||||
} else if (element.attr("data-error-container")) {
|
||||
error.appendTo(element.attr("data-error-container"));
|
||||
} else if (element.parents('.radio-list').size() > 0) {
|
||||
error.appendTo(element.parents('.radio-list').attr("data-error-container"));
|
||||
} else if (element.parents('.radio-inline').size() > 0) {
|
||||
error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
|
||||
} else if (element.parents('.checkbox-list').size() > 0) {
|
||||
error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
|
||||
} else if (element.parents('.checkbox-inline').size() > 0) {
|
||||
error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
|
||||
} else {
|
||||
error.insertAfter(element);
|
||||
}
|
||||
},
|
||||
highlight: function (element) {
|
||||
$(element).closest('.form-group').addClass('has-error');
|
||||
},
|
||||
unhighlight: function (element) {
|
||||
$(element).closest('.form-group').removeClass('has-error');
|
||||
},
|
||||
success: function (label) {
|
||||
label.closest('.form-group').removeClass('has-error');
|
||||
},
|
||||
submitHandler: function (){
|
||||
parent.layer.load();
|
||||
$("#savebutton").addClass('disabled');
|
||||
$("#SFrontmenuTform").ajaxSubmit({
|
||||
headers:{"logintoken": parent.getLoginToken()},
|
||||
success:function(data){
|
||||
parent.layer.closeAll('loading');
|
||||
if(data.code == "OK"){
|
||||
parent.toastr.success(data.message);
|
||||
rolesback();
|
||||
}else if(data.code == "ERRORM"){
|
||||
$.each(data.message,function(name,anArray) {
|
||||
$.each(anArray,function(n,value){
|
||||
$("#" + n).closest('.form-group').addClass('has-error');
|
||||
$("<span>").attr( "id", n + "-error" ).addClass("help-block help-block-error").html(value).insertAfter($("#" + n));
|
||||
});
|
||||
});
|
||||
}else{
|
||||
$("#savebutton").addClass('removeClass');
|
||||
parent.toastr.error(data.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
function rolesback() {
|
||||
parent.closeItem(window.frameElement.name);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -0,0 +1,166 @@
|
||||
<#include "/common/taglibs.html" />
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>前端菜单管理</title>
|
||||
|
||||
<#include "/head/headaddedit.html" />
|
||||
</head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title">
|
||||
<h5>基本信息</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="main-content">
|
||||
<form name="SFrontmenuTform" method="post" id="SFrontmenuTform" class="form-horizontal" action="${ctx}/backstage/sfrontmenut/edit">
|
||||
|
||||
<input type="hidden" id="id" name="id">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 菜单名称:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="name" id="name" class="form-control" placeholder="菜单名称" class="form-control" type="text" maxlength='25' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 菜单关键字:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="reskey" id="reskey" class="form-control" placeholder="菜单关键字" class="form-control" type="text" maxlength='25' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 菜单链接:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="resurl" id="resurl" class="form-control" placeholder="菜单链接" class="form-control" type="text" maxlength='100' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">* 描述:</label>
|
||||
<div class="col-sm-9">
|
||||
<input name="description" id="description" class="form-control" placeholder="描述" class="form-control" type="text" maxlength='100' required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-5">
|
||||
<button type="submit" class="btn btn-w-m btn-primary">保存</button>
|
||||
<button type="button" onclick="rolesback()" class="btn btn-w-m btn-success">取消</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "/head/footadd.html" />
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
parent.axgetXiaoyao('${ctx}/backstage/oa/frontmenu/getdata/${id}',null,false , function(data){
|
||||
if(data.code == "OK"){
|
||||
$("#id").val(data.data.id);
|
||||
$("#name").val(data.data.name);
|
||||
$("#parentid").val(data.data.parentid);
|
||||
$("#reskey").val(data.data.reskey);
|
||||
$("#resurl").val(data.data.resurl);
|
||||
$("#level").val(data.data.level);
|
||||
$("#icon").val(data.data.icon);
|
||||
$("#ordernum").val(data.data.ordernum);
|
||||
$("#ishide").val(data.data.ishide);
|
||||
$("#description").val(data.data.description);
|
||||
}else{
|
||||
parent.toastr.error("非法请求。");
|
||||
}
|
||||
});
|
||||
$('.i-checks').iCheck({
|
||||
checkboxClass: 'icheckbox_square-green',
|
||||
radioClass: 'iradio_square-green',
|
||||
});
|
||||
$("#SFrontmenuTform").attr("action","${ctx}/backstage/oa/frontmenu/edit");
|
||||
var form1 = $('#SFrontmenuTform');
|
||||
var error1 = $('.alert-danger', form1);
|
||||
form1.validate({
|
||||
debug: true,
|
||||
errorElement: 'span',
|
||||
errorClass: 'help-block help-block-error',
|
||||
focusInvalid: false,
|
||||
ignore: ":hidden",
|
||||
errorPlacement: function (error, element) {
|
||||
if (element.parent(".input-group").size() > 0) {
|
||||
error.insertAfter(element.parent(".input-group"));
|
||||
} else if (element.attr("data-error-container")) {
|
||||
error.appendTo(element.attr("data-error-container"));
|
||||
} else if (element.parents('.radio-list').size() > 0) {
|
||||
error.appendTo(element.parents('.radio-list').attr("data-error-container"));
|
||||
} else if (element.parents('.radio-inline').size() > 0) {
|
||||
error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
|
||||
} else if (element.parents('.checkbox-list').size() > 0) {
|
||||
error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
|
||||
} else if (element.parents('.checkbox-inline').size() > 0) {
|
||||
error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
|
||||
} else {
|
||||
error.insertAfter(element);
|
||||
}
|
||||
},
|
||||
highlight: function (element) {
|
||||
$(element).closest('.form-group').addClass('has-error');
|
||||
},
|
||||
unhighlight: function (element) {
|
||||
$(element).closest('.form-group').removeClass('has-error');
|
||||
},
|
||||
success: function (label) {
|
||||
label.closest('.form-group').removeClass('has-error');
|
||||
},
|
||||
submitHandler: function (){
|
||||
parent.layer.load();
|
||||
$("#SFrontmenuTform").ajaxSubmit({
|
||||
headers:{"logintoken": parent.getLoginToken()},
|
||||
success:function(data){
|
||||
parent.layer.closeAll('loading');
|
||||
if(data.code == "OK"){
|
||||
parent.toastr.success(data.message);
|
||||
rolesback();
|
||||
}else if(data.code == "ERRORM"){
|
||||
$.each(data.message,function(name,anArray) {
|
||||
$.each(anArray,function(n,value){
|
||||
$("#" + n).closest('.form-group').addClass('has-error');
|
||||
$("<span>").attr( "id", n + "-error" ).addClass("help-block help-block-error").html(value).insertAfter($("#" + n));
|
||||
});
|
||||
});
|
||||
}else{
|
||||
parent.toastr.error(data.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
function rolesback() {
|
||||
parent.closeItem(window.frameElement.name);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -0,0 +1,11 @@
|
||||
package cn.jyjz.xiaoyao.frontmenu.dataDao;
|
||||
|
||||
import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
/**
|
||||
* 数据持久化
|
||||
*/
|
||||
@Mapper
|
||||
public interface FrontmenuMybatisDao extends BaseMapper<Frontmenu> {
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package cn.jyjz.xiaoyao.frontmenu.dataDao;
|
||||
|
||||
import cn.jyjz.xiaoyao.frontmenu.dataobject.UserFrontmenu;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
/**
|
||||
* 数据持久化
|
||||
*/
|
||||
@Mapper
|
||||
public interface UserFrontmenuMybatisDao extends BaseMapper<UserFrontmenu> {
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package cn.jyjz.xiaoyao.frontmenu.dataobject;
|
||||
|
||||
import cn.jyjz.xiaoyao.common.mybatisplus.dto.BaseDto;
|
||||
import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import java.util.Map;
|
||||
import java.util.AbstractMap.SimpleEntry;
|
||||
import java.util.stream.Stream;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(name = "用户和前端菜单关系表", title = "用户和前端菜单关系表")
|
||||
@TableName(value = "s_user_frontmenu_t")
|
||||
public class UserFrontmenu implements BaseDto,java.io.Serializable {
|
||||
|
||||
private static final long serialVersionUID = 3139365577414759746L;
|
||||
@Schema(description = "用户主键id")
|
||||
@TableField(value="userId")
|
||||
private Long userid;
|
||||
|
||||
@Schema(description = "菜单ID")
|
||||
@TableField(value="menuId")
|
||||
private Long menuid;
|
||||
|
||||
|
||||
//保存当前登录用户的数据权限范围的搜索条件
|
||||
@TableField(exist = false)
|
||||
private SearchQuery searchQueryrolesShowleave;
|
||||
|
||||
@TableField(exist = false)
|
||||
private final Map<String,String> query = Stream.of(
|
||||
new SimpleEntry<>("listdept","deptid"),
|
||||
new SimpleEntry<>("userId","userid"),
|
||||
new SimpleEntry<>("menuId","menuid")
|
||||
)
|
||||
.collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue));
|
||||
@Override
|
||||
public String getQueryFiled(String filedname){
|
||||
String obj = null;
|
||||
if(null != query && query.size() > 0){
|
||||
obj = query.get(filedname);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package cn.jyjz.xiaoyao.frontmenu.service;
|
||||
|
||||
import java.util.List;
|
||||
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService;
|
||||
import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu;
|
||||
|
||||
/**
|
||||
* 业务层
|
||||
*/
|
||||
public interface FrontmenuService extends BaseService<Frontmenu> {
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package cn.jyjz.xiaoyao.frontmenu.service.impl;
|
||||
|
||||
import cn.jyjz.xiaoyao.frontmenu.dataDao.FrontmenuMybatisDao;
|
||||
import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu;
|
||||
import cn.jyjz.xiaoyao.frontmenu.service.FrontmenuService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 业务层实现
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class FrontmenuServiceImpl extends BaseServiceImpl<FrontmenuMybatisDao, Frontmenu> implements FrontmenuService {
|
||||
@Autowired
|
||||
private FrontmenuMybatisDao frontmenuMybatisDao;
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.jyjz.xiaoyao.frontmenu.dataDao.FrontmenuMybatisDao">
|
||||
<resultMap id="BaseResultMap" type="cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu">
|
||||
<id column="id" property="id" jdbcType="BIGINT"/>
|
||||
<result column="name" property="name" jdbcType="VARCHAR"/>
|
||||
<result column="parentId" property="parentid" jdbcType="INTEGER"/>
|
||||
<result column="resKey" property="reskey" jdbcType="VARCHAR"/>
|
||||
<result column="resUrl" property="resurl" jdbcType="VARCHAR"/>
|
||||
<result column="level" property="level" jdbcType="INTEGER"/>
|
||||
<result column="icon" property="icon" jdbcType="VARCHAR"/>
|
||||
<result column="orderNum" property="ordernum" jdbcType="INTEGER"/>
|
||||
<result column="ishide" property="ishide" jdbcType="INTEGER"/>
|
||||
<result column="description" property="description" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
id AS id,
|
||||
name AS name,
|
||||
parentId AS parentid,
|
||||
resKey AS reskey,
|
||||
resUrl AS resurl,
|
||||
level AS level,
|
||||
icon AS icon,
|
||||
orderNum AS ordernum,
|
||||
ishide AS ishide,
|
||||
description AS description
|
||||
</sql>
|
||||
|
||||
<sql id="Base_Where">
|
||||
<where>
|
||||
<trim prefixOverrides="and|or">
|
||||
<if test="id != null"> and id ${id.dataOp} ${id.likestar}#{id.value}${id.likeend}</if>
|
||||
<if test="name != null"> and name ${name.dataOp} ${name.likestar}#{name.value}${name.likeend}</if>
|
||||
<if test="parentid != null"> and parentId ${parentid.dataOp} ${parentid.likestar}#{parentid.value}${parentid.likeend}</if>
|
||||
<if test="reskey != null"> and resKey ${reskey.dataOp} ${reskey.likestar}#{reskey.value}${reskey.likeend}</if>
|
||||
<if test="resurl != null"> and resUrl ${resurl.dataOp} ${resurl.likestar}#{resurl.value}${resurl.likeend}</if>
|
||||
<if test="level != null"> and level ${level.dataOp} ${level.likestar}#{level.value}${level.likeend}</if>
|
||||
<if test="icon != null"> and icon ${icon.dataOp} ${icon.likestar}#{icon.value}${icon.likeend}</if>
|
||||
<if test="ordernum != null"> and orderNum ${ordernum.dataOp} ${ordernum.likestar}#{ordernum.value}${ordernum.likeend}</if>
|
||||
<if test="ishide != null"> and ishide ${ishide.dataOp} ${ishide.likestar}#{ishide.value}${ishide.likeend}</if>
|
||||
<if test="description != null"> and description ${description.dataOp} ${description.likestar}#{description.value}${description.likeend}</if>
|
||||
<if test="userid != null"> and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}</if>
|
||||
<if test="listdept != null">
|
||||
and DEPARTID in
|
||||
<foreach collection="listdept.value" item="item" index="index" open="(" separator="," close=")" >
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</trim>
|
||||
</where>
|
||||
<if test="page != null">
|
||||
<if test="page.sortname != null"> order by ${page.sortname} ${page.sortorder}</if>
|
||||
limit ${page.start}, ${page.Pagesize}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
</mapper>
|
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.jyjz.xiaoyao.frontmenu.dataDao.UserFrontmenuMybatisDao">
|
||||
<resultMap id="BaseResultMap" type="cn.jyjz.xiaoyao.frontmenu.dataobject.UserFrontmenu">
|
||||
<result column="userId" property="userid" jdbcType="BIGINT"/>
|
||||
<result column="menuId" property="menuid" jdbcType="BIGINT"/>
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
userId AS userid,
|
||||
menuId AS menuid
|
||||
</sql>
|
||||
|
||||
<sql id="Base_Where">
|
||||
<where>
|
||||
<trim prefixOverrides="and|or">
|
||||
<if test="userid != null"> and userId ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}</if>
|
||||
<if test="menuid != null"> and menuId ${menuid.dataOp} ${menuid.likestar}#{menuid.value}${menuid.likeend}</if>
|
||||
<if test="userid != null"> and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}</if>
|
||||
<if test="listdept != null">
|
||||
and DEPARTID in
|
||||
<foreach collection="listdept.value" item="item" index="index" open="(" separator="," close=")" >
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</trim>
|
||||
</where>
|
||||
<if test="page != null">
|
||||
<if test="page.sortname != null"> order by ${page.sortname} ${page.sortorder}</if>
|
||||
limit ${page.start}, ${page.Pagesize}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
</mapper>
|
Loading…
Reference in new issue