于俊龙 1 ヶ月 前
コミット
e50f194f7e

+ 1 - 1
farm-common-biz/src/main/java/jp/yamoto/farm/common/biz/domain/vo/UserInfoVo.java

@@ -28,7 +28,7 @@ public class UserInfoVo {
     /**
      * Role Id
      */
-    private String role;
+    private Long roleId;
 
     /**
      * 権限List

+ 7 - 1
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/sys/security/UserDetailsServiceImpl.java

@@ -1,6 +1,8 @@
 package jp.yamoto.farm.crm.biz.sys.security;
 
+import jp.yamoto.farm.common.core.domain.entity.SysRole;
 import jp.yamoto.farm.common.utils.ConvertUtils;
+import jp.yamoto.farm.common.utils.ValueUtils;
 import jp.yamoto.farm.crm.biz.sys.service.ISysUserService;
 import jp.yamoto.farm.common.core.domain.entity.SysUser;
 import jp.yamoto.farm.common.core.domain.model.LoginUser;
@@ -29,7 +31,7 @@ public class UserDetailsServiceImpl implements UserDetailsService
 
     @Autowired
     private ISysUserService userService;
-    
+
     @Autowired
     private SysPasswordService passwordService;
 
@@ -56,6 +58,10 @@ public class UserDetailsServiceImpl implements UserDetailsService
             throw new ServiceException(MessageUtils.message("E0049"));
         }
 
+        if(ValueUtils.isNotEmpty(user.getRoles())){
+            user.setRoleId(user.getRoles().getFirst().getRoleId());
+        }
+
         passwordService.validate(user.getPassword());
 
         return createLoginUser(user);

+ 112 - 112
farm-crm-biz/src/main/resources/mapper/crm/SysMenuMapper.xml

@@ -29,27 +29,27 @@
 	</resultMap>
 
 	<sql id="selectMenuVo">
-        select
-            menu_id,
-            menu_name,
-            parent_id,
-            order_num,
-            path,
-            component,
-            query,
-            route_name,
-            is_frame,
-            is_cache,
-            menu_type,
-            visible,
-            status,
-            COALESCE(perms,'') as perms,
-            icon,
-            create_time
+		select
+			menu_id,
+			menu_name,
+			parent_id,
+			order_num,
+			path,
+			component,
+			query,
+			route_name,
+			is_frame,
+			is_cache,
+			menu_type,
+			visible,
+			status,
+			COALESCE(perms,'') as perms,
+			icon,
+			create_time
 		from sys_menu
-    </sql>
-    
-    <select id="selectMenuList" parameterType="jp.yamoto.farm.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
+	</sql>
+
+	<select id="selectMenuList" parameterType="jp.yamoto.farm.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
 		<include refid="selectMenuVo"/>
 		<where>
 			<if test="menuName != null and menuName != ''">
@@ -64,152 +64,152 @@
 		</where>
 		order by parent_id, order_num
 	</select>
-	
+
 	<select id="selectMenuTreeAll" resultMap="SysMenuResult">
 		select
-		    distinct
-		    m.menu_id,
-		    m.parent_id,
-		    m.menu_name,
-		    m.path,
-		    m.component,
-		    m.query,
-		    m.route_name,
-		    m.visible,
-		    m.status,
-		    COALESCE(m.perms,'') as perms,
-		    m.is_frame,
-		    m.is_cache,
-		    m.menu_type,
-		    m.icon,
-		    m.order_num,
-		    m.create_time
+			distinct
+			m.menu_id,
+			m.parent_id,
+			m.menu_name,
+			m.path,
+			m.component,
+			m.query,
+			m.route_name,
+			m.visible,
+			m.status,
+			COALESCE(m.perms,'') as perms,
+			m.is_frame,
+			m.is_cache,
+			m.menu_type,
+			m.icon,
+			m.order_num,
+			m.create_time
 		from
-		    sys_menu m
+			sys_menu m
 		where
-		    m.menu_type in ('M', 'C')
+			m.menu_type in ('M', 'C')
 		  and m.status = '0'
 		order by m.parent_id, m.order_num
 	</select>
-	
+
 	<select id="selectMenuListByUserId" parameterType="jp.yamoto.farm.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
 		select
-		    distinct
-		    m.menu_id,
-		    m.parent_id,
-		    m.menu_name,
-		    m.path,
-		    m.component,
-		    m.query,
-		    m.route_name,
-		    m.visible,
-		    m.status,
-		    COALESCE(m.perms,'') as perms,
-		    m.is_frame,
-		    m.is_cache,
-		    m.menu_type,
-		    m.icon,
-		    m.order_num,
-		    m.create_time
+		distinct
+		m.menu_id,
+		m.parent_id,
+		m.menu_name,
+		m.path,
+		m.component,
+		m.query,
+		m.route_name,
+		m.visible,
+		m.status,
+		COALESCE(m.perms,'') as perms,
+		m.is_frame,
+		m.is_cache,
+		m.menu_type,
+		m.icon,
+		m.order_num,
+		m.create_time
 		from
-		    sys_menu m
+		sys_menu m
 		left join sys_role_menu rm
-		    on m.menu_id = rm.menu_id
+		on m.menu_id = rm.menu_id
 		left join sys_user_role ur
-		    on rm.role_id = ur.role_id
+		on rm.role_id = ur.role_id
 		left join sys_role ro
-		    on ur.role_id = ro.role_id
+		on ur.role_id = ro.role_id
 		where
-		    ur.user_id = #{params.userId}
+		ur.user_id = #{params.userId}
 		<if test="menuName != null and menuName != ''">
-            AND m.menu_name like concat('%', #{menuName}, '%')
+			AND m.menu_name like concat('%', #{menuName}, '%')
 		</if>
 		<if test="visible != null and visible != ''">
-            AND m.visible = #{visible}
+			AND m.visible = #{visible}
 		</if>
 		<if test="status != null and status != ''">
-            AND m.status = #{status}
+			AND m.status = #{status}
 		</if>
 		order by m.parent_id, m.order_num
 	</select>
-    
-    <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
+
+	<select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
 		select
-		distinct
-		    m.menu_id
-		  , m.parent_id
-		  , m.menu_name
-		  , m.path
-		  , m.component
-		  , m.`query`
-		  , m.route_name
-		  , m.visible
-		  , m.status
-		  , COALESCE(m.perms,'') as perms
-		  , m.is_frame
-		  , m.is_cache
-		  , m.menu_type
-		  , m.icon
-		  , m.order_num
-		  , m.create_time
+			distinct
+			m.menu_id
+				   , m.parent_id
+				   , m.menu_name
+				   , m.path
+				   , m.component
+				   , m.query
+				   , m.route_name
+				   , m.visible
+				   , m.status
+				   , COALESCE(m.perms,'') as perms
+				   , m.is_frame
+				   , m.is_cache
+				   , m.menu_type
+				   , m.icon
+				   , m.order_num
+				   , m.create_time
 		from sys_menu m
-		 left join sys_role_menu rm on m.menu_id = rm.menu_id
-		 left join sys_user_role ur on rm.role_id = ur.role_id
-		 left join sys_role ro on ur.role_id = ro.role_id
-		 left join sys_user u on ur.user_id = u.user_id
+				 left join sys_role_menu rm on m.menu_id = rm.menu_id
+				 left join sys_user_role ur on rm.role_id = ur.role_id
+				 left join sys_role ro on ur.role_id = ro.role_id
+				 left join sys_user u on ur.user_id = u.user_id
 		where u.user_id = #{userId} and m.menu_type in ('M', 'C')
 		  and m.status = '0'  AND ro.status = '0'
 		order by m.parent_id, m.order_num
 	</select>
-	
+
 	<select id="selectMenuListByRoleId" resultType="Long">
 		select m.menu_id
 		from sys_menu m
-            left join sys_role_menu rm on m.menu_id = rm.menu_id
-        where rm.role_id = #{roleId}
-            <if test="menuCheckStrictly">
-              and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
-            </if>
+		left join sys_role_menu rm on m.menu_id = rm.menu_id
+		where rm.role_id = #{roleId}
+		<if test="menuCheckStrictly">
+			and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
+		</if>
 		order by m.parent_id, m.order_num
 	</select>
-	
+
 	<select id="selectMenuPerms" resultType="String">
 		select distinct m.perms
 		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
-			 left join sys_user_role ur on rm.role_id = ur.role_id
+				 left join sys_role_menu rm on m.menu_id = rm.menu_id
+				 left join sys_user_role ur on rm.role_id = ur.role_id
 	</select>
 
 	<select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
 		select distinct m.perms
 		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
-			 left join sys_user_role ur on rm.role_id = ur.role_id
-			 left join sys_role r on r.role_id = ur.role_id
+				 left join sys_role_menu rm on m.menu_id = rm.menu_id
+				 left join sys_user_role ur on rm.role_id = ur.role_id
+				 left join sys_role r on r.role_id = ur.role_id
 		where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
 	</select>
-	
+
 	<select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
 		select distinct m.perms
 		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
+				 left join sys_role_menu rm on m.menu_id = rm.menu_id
 		where m.status = '0' and rm.role_id = #{roleId}
 	</select>
-	
+
 	<select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">
 		<include refid="selectMenuVo"/>
 		where menu_id = #{menuId}
 	</select>
-	
+
 	<select id="hasChildByMenuId" resultType="Integer">
-	    select count(1) from sys_menu where parent_id = #{menuId}  
+		select count(1) from sys_menu where parent_id = #{menuId}
 	</select>
-	
+
 	<select id="checkMenuNameUnique" parameterType="jp.yamoto.farm.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
 		<include refid="selectMenuVo"/>
 		where menu_name=#{menuName} and parent_id = #{parentId} limit 1
 	</select>
-	
+
 	<update id="updateMenu" parameterType="jp.yamoto.farm.common.core.domain.entity.SysMenu">
 		update sys_menu
 		<set>
@@ -218,7 +218,7 @@
 			<if test="orderNum != null">order_num = #{orderNum},</if>
 			<if test="path != null and path != ''">path = #{path},</if>
 			<if test="component != null">component = #{component},</if>
-			<if test="query != null">`query` = #{query},</if>
+			<if test="query != null">query = #{query},</if>
 			<if test="routeName != null">route_name = #{routeName},</if>
 			<if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if>
 			<if test="isCache != null and isCache != ''">is_cache = #{isCache},</if>
@@ -242,7 +242,7 @@
 		<if test="orderNum != null">order_num,</if>
 		<if test="path != null and path != ''">path,</if>
 		<if test="component != null and component != ''">component,</if>
-		<if test="query != null and query != ''">`query`,</if>
+		<if test="query != null and query != ''">query,</if>
 		<if test="routeName != null">route_name,</if>
 		<if test="isFrame != null and isFrame != ''">is_frame,</if>
 		<if test="isCache != null and isCache != ''">is_cache,</if>
@@ -275,9 +275,9 @@
 		now()
 		)
 	</insert>
-	
+
 	<delete id="deleteMenuById" parameterType="Long">
-	    delete from sys_menu where menu_id = #{menuId}
+		delete from sys_menu where menu_id = #{menuId}
 	</delete>
 
 </mapper> 

+ 130 - 124
farm-crm-biz/src/main/resources/mapper/crm/SysUserMapper.xml

@@ -1,51 +1,51 @@
 <?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">
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="jp.yamoto.farm.crm.biz.sys.mapper.SysUserMapper">
 
-    <resultMap type="SysUser" id="SysUserResult">
-        <id     property="userId"       column="user_id"      />
-        <result property="userName"     column="user_name"    />
-        <result property="nickName"     column="nick_name"    />
-        <result property="email"        column="email"        />
-        <result property="phonenumber"  column="phonenumber"  />
-        <result property="sex"          column="sex"          />
-        <result property="avatar"       column="avatar"       />
-        <result property="password"     column="password"     />
-        <result property="status"       column="status"       />
+	<resultMap type="SysUser" id="SysUserResult">
+		<id     property="userId"       column="user_id"      />
+		<result property="userName"     column="user_name"    />
+		<result property="nickName"     column="nick_name"    />
+		<result property="email"        column="email"        />
+		<result property="phonenumber"  column="phonenumber"  />
+		<result property="sex"          column="sex"          />
+		<result property="avatar"       column="avatar"       />
+		<result property="password"     column="password"     />
+		<result property="status"       column="status"       />
 		<result property="version"      column="version"/>
-        <result property="delFlag"      column="del_flag"     />
-        <result property="loginIp"      column="login_ip"     />
-        <result property="loginDate"    column="login_date"   />
-        <result property="createBy"     column="create_by"    />
-        <result property="createTime"   column="create_time"  />
-        <result property="updateBy"     column="update_by"    />
-        <result property="updateTime"   column="update_time"  />
-        <result property="remark"       column="remark"       />
-        <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
-    </resultMap>
-
-    <resultMap id="RoleResult" type="SysRole">
-        <id     property="roleId"       column="role_id"        />
-        <result property="roleName"     column="role_name"      />
-        <result property="roleKey"      column="role_key"       />
-        <result property="roleSort"     column="role_sort"      />
-        <result property="dataScope"    column="data_scope"     />
-        <result property="status"       column="role_status"    />
-    </resultMap>
-	
+		<result property="delFlag"      column="del_flag"     />
+		<result property="loginIp"      column="login_ip"     />
+		<result property="loginDate"    column="login_date"   />
+		<result property="createBy"     column="create_by"    />
+		<result property="createTime"   column="create_time"  />
+		<result property="updateBy"     column="update_by"    />
+		<result property="updateTime"   column="update_time"  />
+		<result property="remark"       column="remark"       />
+		<collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
+	</resultMap>
+
+	<resultMap id="RoleResult" type="SysRole">
+		<id     property="roleId"       column="role_id"        />
+		<result property="roleName"     column="role_name"      />
+		<result property="roleKey"      column="role_key"       />
+		<result property="roleSort"     column="role_sort"      />
+		<result property="dataScope"    column="data_scope"     />
+		<result property="status"       column="role_status"    />
+	</resultMap>
+
 	<sql id="selectUserVo">
-        select u.user_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
-				u.version,r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
-        from sys_user u
-		    left join sys_user_role ur on u.user_id = ur.user_id
-		    left join sys_role r on r.role_id = ur.role_id
-    </sql>
-    
-    <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
+		select u.user_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
+			   u.version,r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
+		from sys_user u
+				 left join sys_user_role ur on u.user_id = ur.user_id
+				 left join sys_role r on r.role_id = ur.role_id
+	</sql>
+
+	<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
 		select u.user_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip
-		     , u.login_date,u.version, u.create_by, u.create_time, u.remark
+		, u.login_date,u.version, u.create_by, u.create_time, u.remark
 		from sys_user u
 		where u.del_flag = '0'
 		<if test="userId != null and userId != 0">
@@ -54,6 +54,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<if test="userName != null and userName != ''">
 			AND u.user_name like concat('%', #{userName}, '%')
 		</if>
+		<if test="nickName != null and nickName != ''">
+			AND u.nick_name like concat('%', #{nickName}, '%')
+		</if>
 		<if test="status != null and status != ''">
 			AND u.status = #{status}
 		</if>
@@ -66,17 +69,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<if test="params.endTime != null and params.endTime != ''">
 			AND date_format(u.create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')
 		</if>
+		<if test="roleId != null">
+			AND user_id in (SELECT user_id FROM sys_user_role WHERE role_id = #{roleId})
+		</if>
 		<!-- データ範囲フィルタリング -->
 		${params.dataScope}
 	</select>
-	
+
 	<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
-	    select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
-	    from sys_user u
-			 left join sys_user_role ur on u.user_id = ur.user_id
-			 left join sys_role r on r.role_id = ur.role_id
-	    where u.del_flag = '0' and r.role_id = #{roleId}
-	    <if test="userName != null and userName != ''">
+		select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+		from sys_user u
+		left join sys_user_role ur on u.user_id = ur.user_id
+		left join sys_role r on r.role_id = ur.role_id
+		where u.del_flag = '0' and r.role_id = #{roleId}
+		<if test="userName != null and userName != ''">
 			AND u.user_name like concat('%', #{userName}, '%')
 		</if>
 		<if test="phonenumber != null and phonenumber != ''">
@@ -85,15 +91,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<!-- データ範囲フィルタリング -->
 		${params.dataScope}
 	</select>
-	
+
 	<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
-	    select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
-	    from sys_user u
-			 left join sys_user_role ur on u.user_id = ur.user_id
-			 left join sys_role r on r.role_id = ur.role_id
-	    where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
-	    and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and ur.role_id = #{roleId})
-	    <if test="userName != null and userName != ''">
+		select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+		from sys_user u
+		left join sys_user_role ur on u.user_id = ur.user_id
+		left join sys_role r on r.role_id = ur.role_id
+		where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
+		and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and ur.role_id = #{roleId})
+		<if test="userName != null and userName != ''">
 			AND u.user_name like concat('%', #{userName}, '%')
 		</if>
 		<if test="phonenumber != null and phonenumber != ''">
@@ -102,106 +108,106 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<!-- データ範囲フィルタリング -->
 		${params.dataScope}
 	</select>
-	
+
 	<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
-	    <include refid="selectUserVo"/>
+		<include refid="selectUserVo"/>
 		where u.user_name = #{userName} and u.del_flag = '0'
 	</select>
-	
+
 	<select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
 		<include refid="selectUserVo"/>
 		where u.user_id = #{userId}
 	</select>
-	
+
 	<select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
 	</select>
-	
+
 	<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
 	</select>
-	
+
 	<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
 	</select>
-	
+
 	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
- 		insert into sys_user(
- 			<if test="userId != null and userId != 0">user_id,</if>
- 			<if test="userName != null and userName != ''">user_name,</if>
- 			<if test="nickName != null and nickName != ''">nick_name,</if>
- 			<if test="email != null and email != ''">email,</if>
- 			<if test="avatar != null and avatar != ''">avatar,</if>
- 			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
- 			<if test="sex != null and sex != ''">sex,</if>
- 			<if test="password != null and password != ''">password,</if>
- 			<if test="status != null and status != ''">status,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
- 			create_time
- 		)values(
- 			<if test="userId != null and userId != ''">#{userId},</if>
- 			<if test="userName != null and userName != ''">#{userName},</if>
- 			<if test="nickName != null and nickName != ''">#{nickName},</if>
- 			<if test="email != null and email != ''">#{email},</if>
- 			<if test="avatar != null and avatar != ''">#{avatar},</if>
- 			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
- 			<if test="sex != null and sex != ''">#{sex},</if>
- 			<if test="password != null and password != ''">#{password},</if>
- 			<if test="status != null and status != ''">#{status},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
-			now()
- 		)
+		insert into sys_user(
+		<if test="userId != null and userId != 0">user_id,</if>
+		<if test="userName != null and userName != ''">user_name,</if>
+		<if test="nickName != null and nickName != ''">nick_name,</if>
+		<if test="email != null and email != ''">email,</if>
+		<if test="avatar != null and avatar != ''">avatar,</if>
+		<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
+		<if test="sex != null and sex != ''">sex,</if>
+		<if test="password != null and password != ''">password,</if>
+		<if test="status != null and status != ''">status,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		create_time
+		)values(
+		<if test="userId != null and userId != ''">#{userId},</if>
+		<if test="userName != null and userName != ''">#{userName},</if>
+		<if test="nickName != null and nickName != ''">#{nickName},</if>
+		<if test="email != null and email != ''">#{email},</if>
+		<if test="avatar != null and avatar != ''">#{avatar},</if>
+		<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
+		<if test="sex != null and sex != ''">#{sex},</if>
+		<if test="password != null and password != ''">#{password},</if>
+		<if test="status != null and status != ''">#{status},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		now()
+		)
 	</insert>
-	
+
 	<update id="updateUser" parameterType="SysUser">
- 		update sys_user
- 		<set>
- 			<if test="userName != null and userName != ''">user_name = #{userName},</if>
- 			<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
- 			<if test="email != null ">email = #{email},</if>
- 			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
- 			<if test="sex != null and sex != ''">sex = #{sex},</if>
- 			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
- 			<if test="password != null and password != ''">password = #{password},</if>
- 			<if test="status != null and status != ''">status = #{status},</if>
- 			<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
- 			<if test="loginDate != null">login_date = #{loginDate},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			<if test="remark != null">remark = #{remark},</if>
+		update sys_user
+		<set>
+			<if test="userName != null and userName != ''">user_name = #{userName},</if>
+			<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
+			<if test="email != null ">email = #{email},</if>
+			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
+			<if test="sex != null and sex != ''">sex = #{sex},</if>
+			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
+			<if test="password != null and password != ''">password = #{password},</if>
+			<if test="status != null and status != ''">status = #{status},</if>
+			<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
+			<if test="loginDate != null">login_date = #{loginDate},</if>
+			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+			<if test="remark != null">remark = #{remark},</if>
 			<if test="version != null">version = version+1,</if>
 			<if test="updateTime != null">update_time = #{updateTime}</if>
- 		</set>
- 		where user_id = #{userId}
+		</set>
+		where user_id = #{userId}
 		and del_flag = '0'
 		<if test="version != null">
 			and version = #{version}
 		</if>
 	</update>
-	
+
 	<update id="updateUserStatus" parameterType="SysUser">
- 		update sys_user set status = #{status} where user_id = #{userId}
+		update sys_user set status = #{status} where user_id = #{userId}
 	</update>
-	
+
 	<update id="updateUserAvatar" parameterType="SysUser">
- 		update sys_user set avatar = #{avatar} where user_name = #{userName}
+		update sys_user set avatar = #{avatar} where user_name = #{userName}
 	</update>
-	
+
 	<update id="resetUserPwd" parameterType="SysUser">
- 		update sys_user set password = #{password} where user_name = #{userName}
+		update sys_user set password = #{password} where user_name = #{userName}
 	</update>
-	
+
 	<delete id="deleteUserById" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id = #{userId}
- 	</delete>
- 	
- 	<delete id="deleteUserByIds" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id in
- 		<foreach collection="array" item="userId" open="(" separator="," close=")">
- 			#{userId}
-        </foreach> 
- 	</delete>
+		update sys_user set del_flag = '2' where user_id = #{userId}
+	</delete>
+
+	<delete id="deleteUserByIds" parameterType="Long">
+		update sys_user set del_flag = '2' where user_id in
+		<foreach collection="array" item="userId" open="(" separator="," close=")">
+			#{userId}
+		</foreach>
+	</delete>
 
 	<update id="deleteLogicUserByIdAndVersion" parameterType="SysUser">
 		update sys_user
@@ -216,5 +222,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		</where>
 
 	</update>
-	
+
 </mapper> 

+ 21 - 17
farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/system/SysLoginController.java

@@ -22,7 +22,7 @@ import jp.yamoto.farm.crm.biz.sys.service.ISysMenuService;
 
 /**
  * ログイン認証
- * 
+ *
  * @author nextosd
  */
 @RestController
@@ -38,9 +38,12 @@ public class SysLoginController
     @Autowired
     private SysPermissionService permissionService;
 
+    @Autowired
+    private TokenService tokenService;
+
     /**
      * ログイン
-     * 
+     *
      * @param loginBody ログイン情報
      * @return 結果
      */
@@ -61,18 +64,19 @@ public class SysLoginController
         LoginUser<SysUser> loginUser = SecurityUtils.getLoginUser();
         SysUser user = loginUser.getUser();
         // ロール集合
-       // Set<String> roles = permissionService.getRolePermission(user);
+        //Set<String> roles = permissionService.getRolePermission(user);
         // 権限集合
-       // Set<String> permissions = permissionService.getMenuPermission(user);
-       // if (!loginUser.getPermissions().equals(permissions)) {
-       //     loginUser.setPermissions(permissions);
-       //     tokenService.refreshToken(loginUser);
-       // }
+        Set<String> permissions = permissionService.getMenuPermission(user);
+        if (!loginUser.getPermissions().equals(permissions)) {
+            loginUser.setPermissions(permissions);
+            tokenService.refreshToken(loginUser);
+        }
 
         UserInfoVo userInfoVo = new UserInfoVo();
         userInfoVo.setUserName(user.getNickName());
         userInfoVo.setUserId(user.getUserName());
-        userInfoVo.setRole("SUPER_ADMIN");
+        userInfoVo.setRoleId(user.getRoleId());
+        userInfoVo.setPermissions(permissions);
         AjaxResult ajax = AjaxResult.success(userInfoVo);
 
         return ajax;
@@ -107,19 +111,19 @@ public class SysLoginController
         LoginUser<SysUser> loginUser = SecurityUtils.getLoginUser();
         SysUser user = loginUser.getUser();
         // ロール集合
-        // Set<String> roles = permissionService.getRolePermission(user);
+        //Set<String> roles = permissionService.getRolePermission(user);
         // 権限集合
-         Set<String> permissions = permissionService.getMenuPermission(user);
-        // if (!loginUser.getPermissions().equals(permissions)) {
-        //     loginUser.setPermissions(permissions);
-        //     tokenService.refreshToken(loginUser);
-        // }
-       return AjaxResult.success(permissions);
+        Set<String> permissions = permissionService.getMenuPermission(user);
+        if (!loginUser.getPermissions().equals(permissions)) {
+            loginUser.setPermissions(permissions);
+            tokenService.refreshToken(loginUser);
+        }
+        return AjaxResult.success(permissions);
     }
 
     /**
      * ルーティング情報の取得
-     * 
+     *
      * @return ルーティング情報
      */
     @GetMapping("/route")

+ 37 - 28
farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/system/SysUserController.java

@@ -10,9 +10,8 @@ import jp.yamoto.farm.common.core.domain.entity.SysRole;
 import jp.yamoto.farm.common.core.domain.entity.SysUser;
 import jp.yamoto.farm.common.core.page.TableDataInfo;
 import jp.yamoto.farm.common.enums.BusinessType;
-import jp.yamoto.farm.common.utils.ConvertUtils;
-import jp.yamoto.farm.common.utils.SecurityUtils;
-import jp.yamoto.farm.common.utils.StringUtils;
+import jp.yamoto.farm.common.exception.ServiceException;
+import jp.yamoto.farm.common.utils.*;
 import jp.yamoto.farm.common.utils.poi.ExcelUtil;
 import jp.yamoto.farm.common.validator.utils.ValidatorGroup;
 import jp.yamoto.farm.crm.biz.sys.service.ISysRoleService;
@@ -33,7 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 /**
  * ユーザー情報
- * 
+ *
  * @author nextosd
  */
 @RestController
@@ -49,9 +48,9 @@ public class SysUserController extends BaseController
     /**
      * ユーザーリストの取得
      */
-    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @GetMapping("/list")
-    public TableDataInfo list(SysUser user)
+    public TableDataInfo list(@RequestBody SysUser user)
     {
         startPage();
         List<SysUser> list = userService.selectUserList(user);
@@ -59,7 +58,7 @@ public class SysUserController extends BaseController
     }
 
     @Log(title = "ユーザー管理", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermi('system:user:export')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysUser user)
     {
@@ -69,7 +68,7 @@ public class SysUserController extends BaseController
     }
 
     @Log(title = "ユーザー管理", businessType = BusinessType.IMPORT)
-    @PreAuthorize("@ss.hasPermi('system:user:import')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
     {
@@ -90,19 +89,22 @@ public class SysUserController extends BaseController
     /**
      * ユーザー番号による詳細の取得
      */
-    @PreAuthorize("@ss.hasPermi('system:user:query')")
-    @GetMapping(value = { "/", "/{userId}" })
+    @PreAuthorize("@ss.hasPermi('system:user')")
+    @GetMapping("/info/{userId}")
     public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
     {
         userService.checkUserDataScope(userId);
         AjaxResult ajax = AjaxResult.success();
-        List<SysRole> roles = roleService.selectRoleAll();
-        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        //List<SysRole> roles = roleService.selectRolesByUserId(userId);
+        //ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         if (StringUtils.isNotNull(userId))
         {
             SysUser sysUser = userService.selectUserById(userId);
+            if(ValueUtils.isNotEmpty(sysUser.getRoles())) {
+                sysUser.setRoleId(sysUser.getRoles().getFirst().getRoleId());
+            }
             ajax.put(AjaxResult.DATA_TAG, sysUser);
-            ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
+            //ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
         }
         return ajax;
     }
@@ -110,9 +112,9 @@ public class SysUserController extends BaseController
     /**
      * 新規ユーザー
      */
-    @PreAuthorize("@ss.hasPermi('system:user:add')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @Log(title = "ユーザー管理", businessType = BusinessType.INSERT)
-    @PostMapping
+    @PostMapping("/add")
     public AjaxResult add(@RequestBody @Validated({ValidatorGroup.AddGroup.class}) SysUser user)
     {
         roleService.checkRoleDataScope(user.getRoleIds());
@@ -129,21 +131,25 @@ public class SysUserController extends BaseController
             return error("新規ユーザー'" + user.getUserName() + "'失敗しました。メールアカウントは既に存在します");
         }
         user.setCreateBy(getUsername());
-        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         return toAjax(userService.insertUser(user));
     }
 
     /**
      * ユーザーの変更
      */
-    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @Log(title = "ユーザー管理", businessType = BusinessType.UPDATE)
-    @PutMapping
+    @PostMapping("/update")
     public AjaxResult edit(@Validated @RequestBody SysUser user)
     {
         userService.checkUserAllowed(user);
-        userService.checkUserDataScope(user.getUserId());
-        roleService.checkRoleDataScope(user.getRoleIds());
+        //userService.checkUserDataScope(user.getUserId());
+        if(ValueUtils.isNotEmpty(user.getRoleIds())){
+            roleService.checkRoleDataScope(user.getRoleIds());
+        } else {
+            roleService.checkRoleDataScope(user.getRoleId());
+        }
+
         if (!userService.checkUserNameUnique(user))
         {
             return error("ユーザーの変更'" + user.getUserName() + "'失敗しました。ログインアカウントは既に存在します");
@@ -163,7 +169,7 @@ public class SysUserController extends BaseController
     /**
      * ユーザーの削除
      */
-    @PreAuthorize("@ss.hasPermi('system:user:remove')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @Log(title = "ユーザー管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
     public AjaxResult remove(@PathVariable Long[] userIds)
@@ -178,11 +184,14 @@ public class SysUserController extends BaseController
     /**
      * パスワードをリセット
      */
-    @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @Log(title = "ユーザー管理", businessType = BusinessType.UPDATE)
-    @PutMapping("/resetPwd")
+    @PostMapping("/resetPwd")
     public AjaxResult resetPwd(@RequestBody SysUser user)
     {
+        if(ValueUtils.isEmpty(user.getPassword())){
+            throw new ServiceException(MessageUtils.message("E0003", MessageUtils.message("label.password")));
+        }
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
@@ -193,9 +202,9 @@ public class SysUserController extends BaseController
     /**
      * ステータスの変更
      */
-    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @Log(title = "ユーザー管理", businessType = BusinessType.UPDATE)
-    @PutMapping("/changeStatus")
+    @PostMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysUser user)
     {
         userService.checkUserAllowed(user);
@@ -207,7 +216,7 @@ public class SysUserController extends BaseController
     /**
      * ユーザー番号に基づいた権限ロールの取得
      */
-    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @GetMapping("/authRole/{userId}")
     public AjaxResult authRole(@PathVariable("userId") Long userId)
     {
@@ -222,9 +231,9 @@ public class SysUserController extends BaseController
     /**
      * ユーザー権限ロール
      */
-    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @PreAuthorize("@ss.hasPermi('system:user')")
     @Log(title = "ユーザー管理", businessType = BusinessType.GRANT)
-    @PutMapping("/authRole")
+    @PostMapping("/authRole")
     public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
         userService.checkUserDataScope(userId);
         roleService.checkRoleDataScope(roleIds);