From 28215e381131b0919567ec5c3f236b29ebd3ad5c Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Tue, 22 Oct 2019 16:02:18 +0800 Subject: [PATCH] update --- src/main/java/com/moral/controller/RoleController.java | 10 - src/main/java/com/moral/service/impl/AccountServiceImpl.java | 82 +++++++++++++ src/main/java/com/moral/service/impl/RoleServiceImpl.java | 1 src/main/resources/mapper/RoleMapper.xml | 20 -- src/main/resources/mapper/AccountMapper.xml | 132 ++++++++++++++++++--- src/main/java/com/moral/controller/AccountController.java | 1 src/main/java/com/moral/mapper/AccountMapper.java | 10 + src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java | 10 + src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java | 10 + src/main/java/com/moral/entity/Role.java | 6 - src/main/resources/mapper/MenuMapper.xml | 3 src/main/java/com/moral/service/impl/MenuServiceImpl.java | 4 src/main/java/com/moral/controller/MenuController.java | 12 ++ src/main/java/com/moral/service/AccountService.java | 5 14 files changed, 240 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/moral/controller/AccountController.java b/src/main/java/com/moral/controller/AccountController.java index 3799f3d..5d6424e 100644 --- a/src/main/java/com/moral/controller/AccountController.java +++ b/src/main/java/com/moral/controller/AccountController.java @@ -51,4 +51,5 @@ Integer result = accountService.getAccountCountByAccountName(accountName); return new ResultBean<Integer>(result); } + } diff --git a/src/main/java/com/moral/controller/MenuController.java b/src/main/java/com/moral/controller/MenuController.java index 4e32495..b15b7fa 100644 --- a/src/main/java/com/moral/controller/MenuController.java +++ b/src/main/java/com/moral/controller/MenuController.java @@ -1,5 +1,7 @@ package com.moral.controller; +import java.util.Map; + import javax.annotation.Resource; import org.springframework.web.bind.annotation.CrossOrigin; @@ -12,6 +14,7 @@ import com.moral.common.bean.PageBean; import com.moral.common.bean.ResultBean; import com.moral.entity.Menu; +import com.moral.service.AccountService; import com.moral.service.ChannelService; import com.moral.service.MenuService; @@ -24,6 +27,9 @@ @Resource ChannelService channelService; + + @Resource + AccountService accountService; @GetMapping("count-by-example") public ResultBean<Integer> countByExample(PageBean pageBean) { @@ -67,4 +73,10 @@ ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); return resultBean; } + + @GetMapping("menu-by-account") + public Map<String,Object> getMenuListsByAccountName(String accountName) { + Map<String,Object> mapResult = accountService.getMenuListsByAccountName(accountName); + return mapResult; + } } diff --git a/src/main/java/com/moral/controller/RoleController.java b/src/main/java/com/moral/controller/RoleController.java index 893fed6..1d5c462 100644 --- a/src/main/java/com/moral/controller/RoleController.java +++ b/src/main/java/com/moral/controller/RoleController.java @@ -22,9 +22,6 @@ @Autowired RoleService roleService; - @Autowired - ChannelService channelService; - @GetMapping("count-by-example") public ResultBean<Integer> countByExample(PageBean pageBean){ return new ResultBean<Integer>(roleService.countByExample(pageBean)); @@ -33,13 +30,6 @@ @GetMapping("role-list") public PageBean getRoleList(PageBean pageBean) { return roleService.getRoleList(pageBean); - } - - @GetMapping("channel-list") - public ResultBean getChannelList(String channelName) { - ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); - resultBean.setData(channelService.getChannelList(channelName)); - return resultBean; } @PostMapping("add-or-modify") diff --git a/src/main/java/com/moral/entity/Role.java b/src/main/java/com/moral/entity/Role.java index 76bcfe5..7ba2ef6 100644 --- a/src/main/java/com/moral/entity/Role.java +++ b/src/main/java/com/moral/entity/Role.java @@ -3,7 +3,6 @@ import java.util.Date; import javax.persistence.Id; -import javax.persistence.Transient; import lombok.Data; @@ -16,8 +15,6 @@ private String roleName; - private Integer channelId; - private String isDelete; private String roleRemark; @@ -29,8 +26,5 @@ private Date updateTime; private String updateUser; - - @Transient - private Channel channel; } diff --git a/src/main/java/com/moral/mapper/AccountMapper.java b/src/main/java/com/moral/mapper/AccountMapper.java index 9a85a32..bdd0b89 100644 --- a/src/main/java/com/moral/mapper/AccountMapper.java +++ b/src/main/java/com/moral/mapper/AccountMapper.java @@ -7,6 +7,8 @@ import com.moral.common.mapper.BaseMapper; import com.moral.entity.Account; +import com.moral.entity.Menu; +import com.moral.entity.Role; public interface AccountMapper extends BaseMapper<Account> { @@ -18,4 +20,12 @@ List<Account> getAccountList(@Param("accountName") String accountName); + List<Role> getRolesByAccountName(@Param("accountName") String accountName); + + List<Menu> getParentMenuListsByAccountName(@Param("accountName") String accountName); + + String getEmailByAccountName(@Param("accountName") String accountName); + + List<Menu> getChildMenuIdsByAccountName(@Param("accountName") String accountName, @Param("id") Integer id); + } \ No newline at end of file diff --git a/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java b/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java index 4047ded..999813a 100644 --- a/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java +++ b/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java @@ -1,9 +1,11 @@ package com.moral.security.auth.login; import com.moral.entity.Account; +import com.moral.entity.Role; import com.moral.security.exceptions.AccountExpiredBadCredentialsException; import com.moral.security.model.UserContext; import com.moral.service.AccountService; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.BadCredentialsException; @@ -17,6 +19,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Component; import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; @@ -54,6 +57,7 @@ String password = (String) authentication.getCredentials(); LoginMode mode = (LoginMode) authentication.getDetails(); Account account = accountService.queryAccountByName(accountName).orElseThrow(() -> new UsernameNotFoundException("User not found: " + accountName)); + List<Role> roleList = accountService.getRolesByAccountName(accountName); Date expireTime = Optional.ofNullable(account.getExpireTime()) .orElseThrow( ()-> new AccountExpiredBadCredentialsException("Authentication Failed. Account has expired.") @@ -66,10 +70,10 @@ throw new BadCredentialsException("Authentication Failed. Username or Password not valid."); } - if (account.getRoles() == null) { - throw new InsufficientAuthenticationException("User has no roles assigned"); + if (CollectionUtils.isEmpty(roleList)) { + throw new InsufficientAuthenticationException("Authentication Failed. User has no roles assigned"); } - List<GrantedAuthority> authorities = account.getRoles().stream() + List<GrantedAuthority> authorities = roleList.stream() .map(authority -> new SimpleGrantedAuthority(authority.getRoleName())) .collect(Collectors.toList()); diff --git a/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java b/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java index 1cf15d2..7a1be18 100644 --- a/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java +++ b/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java @@ -1,7 +1,7 @@ package com.moral.security.endpoint; import com.moral.entity.Account; -import com.moral.security.auth.JwtAuthenticationToken; +import com.moral.entity.Role; import com.moral.security.auth.login.LoginMode; import com.moral.security.model.token.JwtTokenFactory; import com.moral.security.auth.jwt.extractor.TokenExtractor; @@ -14,6 +14,8 @@ import com.moral.security.model.token.RawAccessJwtToken; import com.moral.security.model.token.RefreshToken; import com.moral.service.AccountService; + +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.MediaType; @@ -69,9 +71,9 @@ // ���refresh token��� ������������������ LoginMode mode = LoginMode.valueOf(refreshToken.getClaims().getBody().get("mode").toString()); Account account = accountService.queryAccountByName(subject).orElseThrow(() -> new UsernameNotFoundException("User not found: " + subject)); - - if (account.getRoles() == null) throw new InsufficientAuthenticationException("User has no roles assigned"); - List<GrantedAuthority> authorities = account.getRoles().stream() + List<Role> roleList = accountService.getRolesByAccountName(account.getAccountName()); + if (CollectionUtils.isEmpty(roleList)) throw new InsufficientAuthenticationException("User has no roles assigned"); + List<GrantedAuthority> authorities = roleList.stream() .map(authority -> new SimpleGrantedAuthority(authority.getRoleName())) .collect(Collectors.toList()); diff --git a/src/main/java/com/moral/service/AccountService.java b/src/main/java/com/moral/service/AccountService.java index dcc1fe2..7c94cc8 100644 --- a/src/main/java/com/moral/service/AccountService.java +++ b/src/main/java/com/moral/service/AccountService.java @@ -6,6 +6,7 @@ import com.moral.common.bean.PageBean; import com.moral.entity.Account; +import com.moral.entity.Role; public interface AccountService { @@ -32,4 +33,8 @@ Map<String, Object> getOrganizationIdByAccountId(String id); List<Account> getAccountList(String accountName); + + List<Role> getRolesByAccountName(String accountName); + + Map<String, Object> getMenuListsByAccountName(String accountName); } diff --git a/src/main/java/com/moral/service/impl/AccountServiceImpl.java b/src/main/java/com/moral/service/impl/AccountServiceImpl.java index 261adc9..8a842b9 100644 --- a/src/main/java/com/moral/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/moral/service/impl/AccountServiceImpl.java @@ -1,12 +1,20 @@ package com.moral.service.impl; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + import static com.moral.common.bean.Constants.IS_DELETE_FALSE; import static com.moral.common.bean.Constants.IS_DELETE_TRUE; import static com.moral.common.util.ResourceUtil.getValue; import static org.apache.commons.lang3.StringUtils.isNumeric; import static org.springframework.util.ObjectUtils.isEmpty; - -import java.util.*; import javax.annotation.Resource; @@ -14,18 +22,21 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import com.github.pagehelper.PageHelper; import com.moral.common.bean.Constants; import com.moral.common.bean.PageBean; import com.moral.common.exception.BusinessException; -import com.moral.common.util.Crypto; import com.moral.common.util.ResourceUtil; import com.moral.common.util.ValidateUtil; import com.moral.entity.Account; +import com.moral.entity.Menu; import com.moral.entity.Organization; +import com.moral.entity.Role; import com.moral.mapper.AccountMapper; +import com.moral.mapper.MenuMapper; import com.moral.mapper.OrganizationMapper; import com.moral.service.AccountService; import com.moral.service.OrganizationService; @@ -37,6 +48,7 @@ public class AccountServiceImpl implements AccountService { @Resource private BCryptPasswordEncoder encoder; + @Resource private AccountMapper accountMapper; @@ -212,4 +224,68 @@ List<Account> accountList = accountMapper.getAccountList(accountName); return accountList; } + + @Override + public List<Role> getRolesByAccountName(String accountName) { + List<Role> roleList = accountMapper.getRolesByAccountName(accountName); + return roleList; + } + + @Override + public Map<String, Object> getMenuListsByAccountName(String accountName) { + List<Menu> menuList=accountMapper.getParentMenuListsByAccountName(accountName); + String email=accountMapper.getEmailByAccountName(accountName); + Map<String,Object> mapList=new LinkedHashMap<>(); + Map<String,Object> appMap=new LinkedHashMap<>(); + appMap.put("name","������������������������"); + appMap.put("description","������������������������������������������"); + mapList.put("app",appMap); + Map<String,Object> userMap=new LinkedHashMap<>(); + userMap.put("name",accountName); + userMap.put("avatar","./assets/img/zorro.svg"); + userMap.put("email",email); + mapList.put("user",userMap); + Map<String,Object> navigationMap=new LinkedHashMap<>(); + Map<String,Object> navigationChildMap=new LinkedHashMap<>(); + navigationChildMap.put("text","���������"); + navigationChildMap.put("link", "/dashboard/workplace"); + navigationChildMap.put("icon","icon-speedometer"); + navigationChildMap.put("translate","dashboard_workplace"); + List<Map> navigationChildList=new ArrayList<>(); + navigationChildList.add(navigationChildMap); + navigationMap.put("text","���������"); + navigationMap.put("translate","main_navigation"); + navigationMap.put("group",true); + navigationMap.put("children",navigationChildList); + Map<String,Object> systemMap=new LinkedHashMap<>(); + systemMap.put("text","������������"); + systemMap.put("group",true); + List<Map> systemList=new ArrayList<>(); + if(!CollectionUtils.isEmpty(menuList)){ + for(Menu m:menuList){ + Map<String,Object> systemChildMap=new LinkedHashMap<>(); + systemChildMap.put("text",m.getMenuName()); + systemChildMap.put("icon",m.getMenuIcon()); + List<Menu> childMenuLists=accountMapper.getChildMenuIdsByAccountName(accountName,m.getId()); + List<Map> systemSonList=new ArrayList<>(); + if(!CollectionUtils.isEmpty(childMenuLists)){ + for(Menu childMenu:childMenuLists){ + Map<String,Object> systemSonMap=new LinkedHashMap<>(); + systemSonMap.put("text",childMenu.getMenuName()); + systemSonMap.put("link",childMenu.getMenuUrl()); + systemSonList.add(systemSonMap); + } + } + systemChildMap.put("children",systemSonList); + systemList.add(systemChildMap); + } + } + systemMap.put("children",systemList); + List<Map> list=new ArrayList<>(); + list.add(navigationMap); + list.add(systemMap); + mapList.put("menu",list); + return mapList; + } + } diff --git a/src/main/java/com/moral/service/impl/MenuServiceImpl.java b/src/main/java/com/moral/service/impl/MenuServiceImpl.java index 3db3a07..0c5da0c 100644 --- a/src/main/java/com/moral/service/impl/MenuServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MenuServiceImpl.java @@ -34,6 +34,9 @@ @Transactional public void addOrModify(Menu menu) { try { + if(menu.getMenuParentId()==null){ + menu.setMenuParentId(0); + } menu.setUpdateTime(new Date()); menu.setUpdateUser(menu.getUpdateUser()); if (menu.getId() != null) { @@ -47,7 +50,6 @@ menu.setId(menuResult.getId()); menuMapper.updateByPrimaryKeySelective(menu); } else { - System.out.println("channelId:"+menu.getChannelId()); menu.setChannelId(menu.getChannelId()); menu.setIsDelete(Constants.IS_DELETE_FALSE); menu.setCreateTime(new Date()); diff --git a/src/main/java/com/moral/service/impl/RoleServiceImpl.java b/src/main/java/com/moral/service/impl/RoleServiceImpl.java index 9cf3716..27ed222 100644 --- a/src/main/java/com/moral/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/moral/service/impl/RoleServiceImpl.java @@ -42,7 +42,6 @@ roleQuery.setIsDelete(Constants.IS_DELETE_FALSE); Role roleResult = roleMapper.selectOne(roleQuery); if (roleResult == null) { - role.setChannelId(role.getChannelId()); role.setIsDelete(Constants.IS_DELETE_FALSE); role.setCreateTime(new Date()); role.setCreateUser(role.getCreateUser()); diff --git a/src/main/resources/mapper/AccountMapper.xml b/src/main/resources/mapper/AccountMapper.xml index c7c2903..a7e353d 100644 --- a/src/main/resources/mapper/AccountMapper.xml +++ b/src/main/resources/mapper/AccountMapper.xml @@ -1,35 +1,56 @@ <?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="com.moral.mapper.AccountMapper"> - <resultMap id="BaseResultMap" type="com.moral.entity.Account"> - <id column="id" jdbcType="INTEGER" property="id" /> - <result column="account_name" jdbcType="VARCHAR" property="accountName" /> - <result column="password" jdbcType="VARCHAR" property="password" /> - <result column="organization_id" jdbcType="INTEGER" property="organizationId" /> - <result column="email" jdbcType="VARCHAR" property="email" /> - <result column="mobile" jdbcType="VARCHAR" property="mobile" /> - <result column="weixin" jdbcType="VARCHAR" property="weixin" /> - <result column="is_delete" jdbcType="CHAR" property="isDelete" /> - <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> - <result column="expire_time" jdbcType="TIMESTAMP" property="expireTime" /> - <result column="user_name" jdbcType="VARCHAR" property="userName" /> - <association property="jwtTokenVersion" javaType="com.moral.entity.JwtTokenVersion"> - <result column="jwt_token_version_id" property="id" jdbcType="INTEGER" /> - <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> - </association> - </resultMap> - <sql id="Base_Column_List"> + <resultMap id="BaseResultMap" type="com.moral.entity.Account"> + <id column="id" jdbcType="INTEGER" property="id"/> + <result column="account_name" jdbcType="VARCHAR" property="accountName"/> + <result column="password" jdbcType="VARCHAR" property="password"/> + <result column="organization_id" jdbcType="INTEGER" property="organizationId"/> + <result column="email" jdbcType="VARCHAR" property="email"/> + <result column="mobile" jdbcType="VARCHAR" property="mobile"/> + <result column="weixin" jdbcType="VARCHAR" property="weixin"/> + <result column="is_delete" jdbcType="CHAR" property="isDelete"/> + <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> + <result column="expire_time" jdbcType="TIMESTAMP" property="expireTime"/> + <result column="user_name" jdbcType="VARCHAR" property="userName"/> + <association property="jwtTokenVersion" javaType="com.moral.entity.JwtTokenVersion"> + <result column="jwt_token_version_id" property="id" jdbcType="INTEGER"/> + <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> + </association> + </resultMap> + + <resultMap id="RoleResultMap" type="com.moral.entity.Role"> + <id column="id" property="id" jdbcType="INTEGER"/> + <result column="role_code" property="roleCode" jdbcType="VARCHAR"/> + <result column="role_name" property="roleName" jdbcType="VARCHAR"/> + <result column="is_delete" property="isDelete" jdbcType="CHAR"/> + <result column="role_remark" property="roleRemark" jdbcType="VARCHAR"/> + <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> + <result column="create_user" property="createUser" jdbcType="VARCHAR"/> + <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> + <result column="update_user" property="updateUser" jdbcType="VARCHAR"/> + </resultMap> + + <resultMap id="MenuResultMap" type="com.moral.entity.Menu"> + <id column="id" property="id" jdbcType="INTEGER"/> + <result column="menu_name" property="menuName" jdbcType="VARCHAR"/> + <result column="menu_icon" property="menuIcon" jdbcType="VARCHAR"/> + <result column="menu_url" property="menuUrl" jdbcType="VARCHAR"/> + <result column="menu_parent_id" property="menuParentId" jdbcType="INTEGER"/> + </resultMap> + + <sql id="Base_Column_List"> id, account_name, password, organization_id, email, mobile, weixin, is_delete, create_time, expire_time, user_name </sql> - <select id="getByAccountName" parameterType="java.lang.String" resultMap="BaseResultMap"> + <select id="getByAccountName" parameterType="java.lang.String" resultMap="BaseResultMap"> select acc.*,jtv.id as jwt_token_version_id,jtv.update_time as update_time from account acc left join jwt_token_version jtv on acc.account_name = jtv.account_name where acc.account_name = #{name,jdbcType=VARCHAR} </select> - <select id="getRoleNameByAccountId" resultType="java.util.Map"> + <select id="getRoleNameByAccountId" resultType="java.util.Map"> SELECT r.role_name FROM @@ -39,8 +60,8 @@ ar.role_id = r.id AND ar.account_id = #{accountId} </select> - - <select id="getOrganizationIdByAccountId" resultType="java.util.Map"> + + <select id="getOrganizationIdByAccountId" resultType="java.util.Map"> SELECT organization_id FROM account WHERE id=#{id} @@ -55,4 +76,71 @@ and account_name like concat('%',#{accountName},'%') </if> </select> + + <select id="getRolesByAccountName" resultMap="RoleResultMap" parameterType="java.lang.String"> + select + r.* + from + role r + right join account_role ar on ar.role_id = r.id + right join account a on a.id = ar.account_id + where + a.account_name = #{accountName} and r.id is not null + </select> + + <select id="getParentMenuListsByAccountName" resultMap="MenuResultMap" parameterType="java.lang.String"> + select + DISTINCT + m.id,m.menu_name,m.menu_icon,m.menu_url,m.menu_order,m.menu_parent_id + from + menu m + right join role_menu rm on rm.channel_id = m.channel_id and rm.menu_id=m.id and m.channel_id=2 + right join role on rm.role_id in + ( + select + r.id + from + role r + right join + account_role ar on ar.role_id = r.id + right join + account a on a.id = ar.account_id + where + a.account_name = #{accountName} and r.is_delete=0 and r.id is not null + ) + where m.menu_parent_id=0 + order by m.menu_order + </select> + + <select id="getChildMenuIdsByAccountName" resultMap="MenuResultMap"> + select + DISTINCT + m.id,m.menu_name,m.menu_icon,m.menu_url,m.menu_order,m.menu_parent_id + from + menu m + right join role_menu rm on rm.channel_id = m.channel_id and rm.menu_id=m.id and m.channel_id=2 + right join role on rm.role_id in + ( + select + r.id + from + role r + right join + account_role ar on ar.role_id = r.id + right join + account a on a.id = ar.account_id + where + a.account_name = #{accountName} and r.is_delete=0 and r.id is not null + ) + where m.menu_parent_id = #{id} + order by m.menu_order + </select> + + <select id="getEmailByAccountName" resultType="java.lang.String"> + select + email + from account + where account_name = #{accountName} + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/MenuMapper.xml b/src/main/resources/mapper/MenuMapper.xml index fdffd4c..d9e91d8 100644 --- a/src/main/resources/mapper/MenuMapper.xml +++ b/src/main/resources/mapper/MenuMapper.xml @@ -104,7 +104,7 @@ from menu where id IN (select distinct(menu_parent_Id) from menu - where menu_parent_Id is not null) + where menu_parent_Id <![CDATA[ <> ]]> 0) <if test="menuName != 'null'"> and menu_name like concat('%',#{menuName},'%') </if> @@ -119,4 +119,5 @@ and menu_name like concat('%',#{menuName},'%') </if> </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/RoleMapper.xml b/src/main/resources/mapper/RoleMapper.xml index 95334fb..965ff3e 100644 --- a/src/main/resources/mapper/RoleMapper.xml +++ b/src/main/resources/mapper/RoleMapper.xml @@ -2,11 +2,10 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.moral.mapper.RoleMapper"> - <resultMap id="ResultMap" type="com.moral.entity.Role"> + <resultMap id="BaseResultMap" type="com.moral.entity.Role"> <id column="id" property="id" jdbcType="INTEGER" /> <result column="role_code" property="roleCode" jdbcType="VARCHAR" /> <result column="role_name" property="roleName" jdbcType="VARCHAR" /> - <result column="channel_id" property="channelId" jdbcType="INTEGER" /> <result column="is_delete" property="isDelete" jdbcType="CHAR" /> <result column="role_remark" property="roleRemark" jdbcType="VARCHAR" /> <result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> @@ -15,15 +14,8 @@ <result column="update_user" property="updateUser" jdbcType="VARCHAR" /> </resultMap> - <resultMap id="BaseResultMap" type="com.moral.entity.Role" extends="ResultMap"> - <association property="channel" javaType="com.moral.entity.Channel"> - <result column="channel_id" jdbcType="INTEGER" property="id" /> - <result column="channel_name" jdbcType="VARCHAR" property="channelName" /> - </association> - </resultMap> - <sql id="Base_Column_List" > - id, role_code, role_name, channel_id, is_delete, role_remark, create_time, create_user, + id, role_code, role_name, is_delete, role_remark, create_time, create_user, update_time, update_user </sql> @@ -57,7 +49,7 @@ </where> </sql> - <select id="getRoleListByName" resultMap="ResultMap"> + <select id="getRoleListByName" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from role @@ -69,10 +61,8 @@ <select id="getRoleList" resultMap="BaseResultMap"> select - r.*, - c.channel_name - from role r - left join channel c on r.channel_id = c.id + <include refid="Base_Column_List"/> + from role <if test="_parameter != null" > <include refid="Example_Where_Clause" /> </if> -- Gitblit v1.8.0