Commit 4b35a976 by 墨竹

feat:权限

parent b0b457c3
package com.gic.haoban.manage.api.dto.qdto.role;
import java.io.Serializable;
import java.util.Date;
/**
* 好办小程序权限(TabHaobanRole)实体类
*
* @author mozhu
* @since 2022-09-06 16:35:07
*/
public class HaobanRoleQDTO implements Serializable {
private static final long serialVersionUID = 554109287178364863L;
private Long roleId;
/**
* 权限名称
*/
private String roleName;
/**
* 权限id
*/
private Long menuId;
/**
* 权限code
*/
private String menuCode;
/**
* 0:导购;1:店长;3:区经
*/
private Integer clerkType;
private String wxEnterpriseId;
private String enterpriseId;
private String creatorId;
private String creatorName;
private String modifierId;
private String modifierName;
/**
* 1:正常;0:删除
*/
private Integer statusFlag;
private Date createTime;
private Date updateTime;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
public String getMenuCode() {
return menuCode;
}
public void setMenuCode(String menuCode) {
this.menuCode = menuCode;
}
public Integer getClerkType() {
return clerkType;
}
public void setClerkType(Integer clerkType) {
this.clerkType = clerkType;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public String getModifierId() {
return modifierId;
}
public void setModifierId(String modifierId) {
this.modifierId = modifierId;
}
public String getModifierName() {
return modifierName;
}
public void setModifierName(String modifierName) {
this.modifierName = modifierName;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.api.dto.role;
import java.io.Serializable;
import java.util.Date;
/**
* 好办小程序权限(TabHaobanRole)实体类
*
* @author mozhu
* @since 2022-09-06 16:35:07
*/
public class HaobanRoleDTO implements Serializable {
private static final long serialVersionUID = 554109287178364863L;
private Long roleId;
/**
* 权限名称
*/
private String roleName;
/**
* 权限id
*/
private Long menuId;
/**
* 权限code
*/
private String menuCode;
/**
* 0:导购;1:店长;3:区经
*/
private Integer clerkType;
private String wxEnterpriseId;
private String enterpriseId;
private String creatorId;
private String creatorName;
private String modifierId;
private String modifierName;
/**
* 1:正常;0:删除
*/
private Integer statusFlag;
private Date createTime;
private Date updateTime;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
public String getMenuCode() {
return menuCode;
}
public void setMenuCode(String menuCode) {
this.menuCode = menuCode;
}
public Integer getClerkType() {
return clerkType;
}
public void setClerkType(Integer clerkType) {
this.clerkType = clerkType;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public String getModifierId() {
return modifierId;
}
public void setModifierId(String modifierId) {
this.modifierId = modifierId;
}
public String getModifierName() {
return modifierName;
}
public void setModifierName(String modifierName) {
this.modifierName = modifierName;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.api.service.role;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleQDTO;
import java.util.List;
/**
* @author xuwenqian
* @date 2022/9/7 9:46 上午
*/
public interface HaobanRoleApiService {
/**
* 添加
*
* @param haobanRoleQDTOList
* @return {@link ServiceResponse }
* @author mozhu
* @date 2022-09-07 11:36:08
*/
ServiceResponse add(List<HaobanRoleQDTO> haobanRoleQDTOList);
/**
* 编辑
*
* @param haobanRoleQDTOList
* @return {@link ServiceResponse }
* @author mozhu
* @date 2022-09-07 11:44:17
*/
ServiceResponse edit(List<HaobanRoleQDTO> haobanRoleQDTOList);
/**
* 根据类型查询企业的菜单权限
*
* @param enterpriseId 企业标识
* @param wxEnterpriseId wx企业标识
* @param clerkType 职员类型
* @return {@link ServiceResponse }
* @author mozhu
* @date 2022-09-07 14:02:21
*/
ServiceResponse getByEnterpriseIdAndClerkType(String enterpriseId,String wxEnterpriseId,Integer clerkType);
}
package com.gic.haoban.manage.api.service.role;
import com.gic.api.base.commons.ServiceResponse;
/**
* @author xuwenqian
* @date 2022/9/7 9:46 上午
*/
public interface HaobanRoleMenuApiService {
/**
* 获取菜单树
*
* @return {@link ServiceResponse }
* @author mozhu
* @date 2022-09-07 09:50:37
*/
ServiceResponse getMenuTreeList();
}
......@@ -45,5 +45,18 @@ public interface TabHaobanRoleMapper {
*/
int update(TabHaobanRole tabHaobanRole);
/**
* 根据类型查询企业的菜单权限
*
* @param enterpriseId 企业标识
* @param wxEnterpriseId wx企业标识
* @param clerkType 职员类型
* @return {@link List }<{@link TabHaobanRole }>
* @author mozhu
* @date 2022-09-07 14:09:07
*/
List<TabHaobanRole> getByEnterpriseIdAndClerkType(@Param("enterpriseId") String enterpriseId,
@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("clerkType") Integer clerkType);
}
......@@ -45,5 +45,13 @@ public interface TabHaobanRoleMenuMapper {
*/
int update(TabHaobanRoleMenu tabHaobanRoleMenu);
/**
* 获取所有菜单
*
* @return {@link List }<{@link TabHaobanRoleMenu }>
* @author mozhu
* @date 2022-09-07 09:54:05
*/
List<TabHaobanRoleMenu> getAllMenuList();
}
package com.gic.haoban.manage.service.pojo.bo.role;
import java.io.Serializable;
import java.util.Date;
/**
* 好办小程序权限(TabHaobanRole)实体类
*
* @author mozhu
* @since 2022-09-06 16:35:07
*/
public class HaobanRoleBO implements Serializable {
private static final long serialVersionUID = 554109287178364863L;
private Long roleId;
/**
* 权限名称
*/
private String roleName;
/**
* 权限id
*/
private Long menuId;
/**
* 权限code
*/
private String menuCode;
/**
* 0:导购;1:店长;3:区经
*/
private Integer clerkType;
private String wxEnterpriseId;
private String enterpriseId;
private String creatorId;
private String creatorName;
private String modifierId;
private String modifierName;
/**
* 1:正常;0:删除
*/
private Integer statusFlag;
private Date createTime;
private Date updateTime;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
public String getMenuCode() {
return menuCode;
}
public void setMenuCode(String menuCode) {
this.menuCode = menuCode;
}
public Integer getClerkType() {
return clerkType;
}
public void setClerkType(Integer clerkType) {
this.clerkType = clerkType;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public String getModifierId() {
return modifierId;
}
public void setModifierId(String modifierId) {
this.modifierId = modifierId;
}
public String getModifierName() {
return modifierName;
}
public void setModifierName(String modifierName) {
this.modifierName = modifierName;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.service.pojo.bo.role;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 好办小程序菜单(TabHaobanRoleMenu)实体类
*
* @author mozhu
* @since 2022-09-06 16:35:10
*/
public class HaobanRoleMenuBO implements Serializable {
private static final long serialVersionUID = 909873156099677525L;
private Long menuId;
/**
* 菜单code
*/
private String menuCode;
/**
* 菜单名称
*/
private String menuName;
/**
* 菜单url
*/
private String menuUrl;
/**
* 菜单图标url
*/
private String iconUrl;
/**
* 层级
*/
private Integer menuLevel;
/**
* 0:菜单;1:按钮
*/
private Integer menuType;
/**
* 排序
*/
private Integer menuSort;
/**
* 父code
*/
private String parentCode;
/**
* 1:正常;0:删除
*/
private Integer statusFlag;
private Date createTime;
private Date updateTime;
private List<HaobanRoleMenuBO> menuBOList;
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
public String getMenuCode() {
return menuCode;
}
public void setMenuCode(String menuCode) {
this.menuCode = menuCode;
}
public String getMenuName() {
return menuName;
}
public void setMenuName(String menuName) {
this.menuName = menuName;
}
public String getMenuUrl() {
return menuUrl;
}
public void setMenuUrl(String menuUrl) {
this.menuUrl = menuUrl;
}
public String getIconUrl() {
return iconUrl;
}
public void setIconUrl(String iconUrl) {
this.iconUrl = iconUrl;
}
public Integer getMenuLevel() {
return menuLevel;
}
public void setMenuLevel(Integer menuLevel) {
this.menuLevel = menuLevel;
}
public Integer getMenuType() {
return menuType;
}
public void setMenuType(Integer menuType) {
this.menuType = menuType;
}
public Integer getMenuSort() {
return menuSort;
}
public void setMenuSort(Integer menuSort) {
this.menuSort = menuSort;
}
public String getParentCode() {
return parentCode;
}
public void setParentCode(String parentCode) {
this.parentCode = parentCode;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public List<HaobanRoleMenuBO> getMenuBOList() {
return menuBOList;
}
public void setMenuBOList(List<HaobanRoleMenuBO> menuBOList) {
this.menuBOList = menuBOList;
}
}
package com.gic.haoban.manage.service.service.out.impl.role;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleQDTO;
import com.gic.haoban.manage.api.service.role.HaobanRoleApiService;
import com.gic.haoban.manage.service.entity.role.TabHaobanRole;
import com.gic.haoban.manage.service.pojo.bo.role.HaobanRoleBO;
import com.gic.haoban.manage.service.service.role.HaobanRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
@Autowired
private HaobanRoleService haobanRoleService;
@Override
@Transactional(rollbackFor = Exception.class)
public ServiceResponse add(List<HaobanRoleQDTO> haobanRoleQDTOList) {
List<TabHaobanRole> tabHaobanRoles = EntityUtil.changeEntityListNew(TabHaobanRole.class, haobanRoleQDTOList);
return ServiceResponse.success(haobanRoleService.insertBatch(tabHaobanRoles));
}
@Override
@Transactional(rollbackFor = Exception.class)
public ServiceResponse edit(List<HaobanRoleQDTO> haobanRoleQDTOList) {
List<TabHaobanRole> tabHaobanRoles = EntityUtil.changeEntityListNew(TabHaobanRole.class, haobanRoleQDTOList);
for (TabHaobanRole tabHaobanRole : tabHaobanRoles) {
haobanRoleService.update(tabHaobanRole);
}
return ServiceResponse.success();
}
@Override
public ServiceResponse getByEnterpriseIdAndClerkType(String enterpriseId, String wxEnterpriseId, Integer clerkType) {
List<HaobanRoleBO> haobanRoleBOList = haobanRoleService.getByEnterpriseIdAndClerkType(enterpriseId, wxEnterpriseId, clerkType);
return ServiceResponse.success(haobanRoleBOList);
}
}
package com.gic.haoban.manage.service.service.out.impl.role;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.service.role.HaobanRoleMenuApiService;
import com.gic.haoban.manage.service.service.role.HaobanRoleMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class HaobanRoleMenuApiServiceImpl implements HaobanRoleMenuApiService {
@Autowired
private HaobanRoleMenuService haobanRoleMenuService;
@Override
public ServiceResponse getMenuTreeList() {
return ServiceResponse.success(haobanRoleMenuService.getMenuTreeList());
}
}
package com.gic.haoban.manage.service.service.role;
import com.gic.haoban.manage.service.entity.role.TabHaobanRoleMenu;
import com.gic.haoban.manage.service.pojo.bo.role.HaobanRoleMenuBO;
import java.util.List;
/**
* 好办小程序菜单(TabHaobanRoleMenu)表服务接口
......@@ -35,11 +38,9 @@ public interface HaobanRoleMenuService {
TabHaobanRoleMenu update(TabHaobanRoleMenu tabHaobanRoleMenu);
/**
* 通过主键删除数据
*
* @param menuId 主键
* @return 是否成功
* 菜单树
* @return
*/
boolean deleteById(Long menuId);
List<HaobanRoleMenuBO> getMenuTreeList();
}
package com.gic.haoban.manage.service.service.role;
import com.gic.haoban.manage.service.entity.role.TabHaobanRole;
import com.gic.haoban.manage.service.pojo.bo.role.HaobanRoleBO;
import java.util.List;
/**
* 好办小程序权限(TabHaobanRole)表服务接口
......@@ -27,6 +30,16 @@ public interface HaobanRoleService {
TabHaobanRole insert(TabHaobanRole tabHaobanRole);
/**
* 插入批量
*
* @param tabHaobanRoles 选项卡haoban作用
* @return int
* @author mozhu
* @date 2022-09-07 14:04:38
*/
int insertBatch(List<TabHaobanRole> tabHaobanRoles);
/**
* 修改数据
*
* @param tabHaobanRole 实例对象
......@@ -42,4 +55,15 @@ public interface HaobanRoleService {
*/
boolean deleteById(Long roleId);
/**
* 根据类型查询企业的菜单权限
*
* @param enterpriseId 企业标识
* @param wxEnterpriseId wx企业标识
* @param clerkType 职员类型
* @return {@link List }<{@link HaobanRoleBO }>
* @author mozhu
* @date 2022-09-07 14:08:19
*/
List<HaobanRoleBO> getByEnterpriseIdAndClerkType(String enterpriseId, String wxEnterpriseId, Integer clerkType);
}
package com.gic.haoban.manage.service.service.role.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.service.dao.mapper.role.TabHaobanRoleMenuMapper;
import com.gic.haoban.manage.service.entity.role.TabHaobanRoleMenu;
import com.gic.haoban.manage.service.pojo.bo.role.HaobanRoleMenuBO;
import com.gic.haoban.manage.service.service.role.HaobanRoleMenuService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 好办小程序菜单(TabHaobanRoleMenu)表服务实现类
*
......@@ -38,6 +45,8 @@ public class HaobanRoleMenuServiceImpl implements HaobanRoleMenuService {
*/
@Override
public TabHaobanRoleMenu insert(TabHaobanRoleMenu tabHaobanRoleMenu) {
tabHaobanRoleMenu.setCreateTime(new Date());
tabHaobanRoleMenu.setUpdateTime(new Date());
this.tabHaobanRoleMenuMapper.insert(tabHaobanRoleMenu);
return tabHaobanRoleMenu;
}
......@@ -50,18 +59,38 @@ public class HaobanRoleMenuServiceImpl implements HaobanRoleMenuService {
*/
@Override
public TabHaobanRoleMenu update(TabHaobanRoleMenu tabHaobanRoleMenu) {
tabHaobanRoleMenu.setUpdateTime(new Date());
this.tabHaobanRoleMenuMapper.update(tabHaobanRoleMenu);
return this.queryById(tabHaobanRoleMenu.getMenuId());
}
/**
* 通过主键删除数据
*
* @param menuId 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Long menuId) {
return false;
public List<HaobanRoleMenuBO> getMenuTreeList() {
List<TabHaobanRoleMenu> allMenuList = tabHaobanRoleMenuMapper.getAllMenuList();
List<HaobanRoleMenuBO> menuBOList = EntityUtil.changeEntityListNew(HaobanRoleMenuBO.class, allMenuList);
for (HaobanRoleMenuBO haobanRoleMenuBO : menuBOList) {
List<HaobanRoleMenuBO> menus = iterateMenus(menuBOList, haobanRoleMenuBO.getMenuCode());
haobanRoleMenuBO.setMenuBOList(menus);
}
return menuBOList;
}
public List<HaobanRoleMenuBO> iterateMenus(List<HaobanRoleMenuBO> menuVoList, String pCode) {
List<HaobanRoleMenuBO> result = new ArrayList<>();
for (HaobanRoleMenuBO haobanRoleMenuBO : menuVoList) {
String menuCode = haobanRoleMenuBO.getMenuCode();
String parentCode = haobanRoleMenuBO.getParentCode();
if (StringUtils.isNotBlank(parentCode)) {
if (parentCode.equals(pCode)) {
//递归查询当前子菜单的子菜单
List<HaobanRoleMenuBO> iterateMenu = iterateMenus(menuVoList, menuCode);
haobanRoleMenuBO.setMenuBOList(iterateMenu);
result.add(haobanRoleMenuBO);
}
}
}
return result;
}
}
package com.gic.haoban.manage.service.service.role.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.service.dao.mapper.role.TabHaobanRoleMapper;
import com.gic.haoban.manage.service.entity.role.TabHaobanRole;
import com.gic.haoban.manage.service.pojo.bo.role.HaobanRoleBO;
import com.gic.haoban.manage.service.service.role.HaobanRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 好办小程序权限(TabHaobanRole)表服务实现类
......@@ -48,6 +51,16 @@ public class HaobanRoleServiceImpl implements HaobanRoleService {
return tabHaobanRole;
}
@Override
public int insertBatch(List<TabHaobanRole> tabHaobanRoles) {
tabHaobanRoles.forEach(c->{
c.setRoleId(UniqueIdUtils.uniqueLong());
c.setCreateTime(new Date());
c.setUpdateTime(new Date());
});
return tabHaobanRoleMapper.insertBatch(tabHaobanRoles);
}
/**
* 修改数据
*
......@@ -71,4 +84,10 @@ public class HaobanRoleServiceImpl implements HaobanRoleService {
public boolean deleteById(Long roleId) {
return false;
}
@Override
public List<HaobanRoleBO> getByEnterpriseIdAndClerkType(String enterpriseId, String wxEnterpriseId, Integer clerkType) {
List<TabHaobanRole> haobanRoles = tabHaobanRoleMapper.getByEnterpriseIdAndClerkType(enterpriseId, wxEnterpriseId, clerkType);
return EntityUtil.changeEntityListNew(HaobanRoleBO.class,haobanRoles);
}
}
......@@ -131,6 +131,9 @@
timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.ValidationCodeApiService" ref="validationCodeApiServiceImpl"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.role.HaobanRoleMenuApiService" ref="haobanRoleMenuApiServiceImpl"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.role.HaobanRoleApiService" ref="haobanRoleApiServiceImpl"/>
<dubbo:reference interface="com.gic.enterprise.api.service.DepartmentService" id="gicDepartmentService"/>
<dubbo:reference interface="com.gic.wechat.api.service.qywx.QywxDepartmentApiService"
......
......@@ -97,5 +97,15 @@
where role_id = #{roleId}
</update>
<select id="getByEnterpriseIdAndClerkType" resultMap="TabHaobanRoleMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_role
where wx_enterprise_id = #{wxEnterpriseId}
and enterprise_id = #{enterpriseId}
and clerk_type = #{clerkType}
</select>
</mapper>
......@@ -88,5 +88,13 @@
where menu_id = #{menuId}
</update>
<select id="getAllMenuList" resultMap="TabHaobanRoleMenuMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_role_menu
where status_flag = 1 order by menu_sort
</select>
</mapper>
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