zouxuan 5 years ago
parent
commit
b6d998be2b

+ 15 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysRoleMenuDao.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.ym.mec.auth.api.entity.SysRoleMenu;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 public interface SysRoleMenuDao extends BaseDAO<Integer, SysRoleMenu> {
 
@@ -15,6 +16,13 @@ public interface SysRoleMenuDao extends BaseDAO<Integer, SysRoleMenu> {
 	List<String> queryPermissionsByRoleId(Integer roleId);
 
 	/**
+	 * 根据角色查询权限列表
+	 * @param roleId
+	 * @return
+	 */
+	List<Integer> queryMenuIdByRoleId(Integer roleId);
+
+	/**
 	 * 删除角色菜单权限
 	 * @param sysRoleMenu
 	 * @return
@@ -26,4 +34,11 @@ public interface SysRoleMenuDao extends BaseDAO<Integer, SysRoleMenu> {
 	 * @param id
 	 */
 	void deleteAllMenu(Integer id);
+
+	/**
+	 * 批量插入角色菜单
+	 * @param roleId
+	 * @param menuIds
+	 */
+    void batchAdd(@Param("roleId") Integer roleId,@Param("menuIds")  List<Integer> menuIds);
 }

+ 2 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysRoleService.java

@@ -38,4 +38,6 @@ public interface SysRoleService extends BaseService<Integer, SysRole> {
      * @param id
      */
     void delRole(Integer id);
+
+    SysRole getRole(Integer id);
 }

+ 13 - 5
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleServiceImpl.java

@@ -60,14 +60,22 @@ public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole>  imple
 		sysRoleMenuDao.deleteAllMenu(id);
 	}
 
+	@Override
+	public SysRole getRole(Integer id) {
+		SysRole sysRole = sysRoleDao.get(id);
+		sysRole.setMenuIds(sysRoleMenuDao.queryMenuIdByRoleId(id));
+		return sysRole;
+	}
+
 	private void batchSave(SysRole sysRole){
 		List<Integer> menuIds = sysRole.getMenuIds();
 		if(menuIds != null && menuIds.size() > 0){
-			SysRoleMenu sysRoleMenu = new SysRoleMenu(sysRole.getId(),null);
-			menuIds.forEach(e->{
-				sysRoleMenu.setMenuId(e);
-				sysRoleMenuDao.insert(sysRoleMenu);
-			});
+//			SysRoleMenu sysRoleMenu = new SysRoleMenu(sysRole.getId(),null);
+			sysRoleMenuDao.batchAdd(sysRole.getId(),menuIds);
+//			menuIds.forEach(e->{
+//				sysRoleMenu.setMenuId(e);
+//				sysRoleMenuDao.insert(sysRoleMenu);
+//			});
 		}
 	}
 

+ 3 - 3
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/RoleController.java

@@ -30,7 +30,7 @@ public class RoleController extends BaseController {
     @ApiOperation("根据权限id查询角色")
     @GetMapping(value = "/{id}")
     public Object getRole(@ApiParam(value = "权限编号", required = true) @PathVariable("id") Integer id) {
-        return succeed(sysRoleService.get(id));
+        return succeed(sysRoleService.getRole(id));
     }
 
     @ApiOperation("删除角色")
@@ -41,8 +41,8 @@ public class RoleController extends BaseController {
     }
 
     @ApiOperation("修改角色")
-    @PostMapping(value = "/update",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
-    public Object updateRole(SysRole sysRole) {
+    @PostMapping(value = "/update")
+    public Object updateRole(@RequestBody SysRole sysRole) {
         sysRole.setUpdateTime(new Date());
         sysRoleService.updateRole(sysRole);
         return succeed();

+ 12 - 2
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysRoleMenuMapper.xml

@@ -30,8 +30,14 @@
 		-->
 		INSERT INTO sys_role_menu (role_id_,menu_id_) VALUES(#{roleId},#{menuId})
 	</insert>
-	
-	<!-- 根据主键删除一条记录 -->
+    <insert id="batchAdd">
+		INSERT INTO sys_role_menu (role_id_,menu_id_) VALUES
+		<foreach collection="menuIds" item="item" index="index" separator=",">
+			(#{roleId},#{item})
+		</foreach>
+	</insert>
+
+    <!-- 根据主键删除一条记录 -->
 	<delete id="delete" parameterType="java.util.Map">
 		DELETE FROM sys_role_menu WHERE role_id_ = #{roleId} AND menu_id_ = #{menuId}
 	</delete>
@@ -52,4 +58,8 @@
 	<select id="queryPermissionsByRoleId" resultType="string" parameterType="int">
 		SELECT m.permission_ FROM sys_role_menu rm left join sys_menu m on rm.menu_id_ = m.id_ where rm.role_id_ = #{roleId} and m.del_flag_ = 0
 	</select>
+
+	<select id="queryMenuIdByRoleId" resultType="integer" parameterType="int">
+		SELECT m.id_ FROM sys_role_menu rm left join sys_menu m on rm.menu_id_ = m.id_ where rm.role_id_ = #{roleId} and m.del_flag_ = 0
+	</select>
 </mapper>

+ 0 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -40,10 +40,4 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     List<BasicUserDto> queryGroupStudents(@Param("teacherId") Integer teacherId, @Param("search") String search);
-
-    /**
-     * 获取教师的专业技能
-     * @return
-     */
-    List<NamesDto> getTeacherSubNames(String teacherIds);
 }

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Teacher.java

@@ -55,7 +55,7 @@ public class Teacher extends SysUser {
 
 	/** 专业技能(支持多个,用|分隔),对应科目表编号 */
 	@ApiModelProperty(value = "专业技能(支持多个,用逗号分隔),对应科目表名称", required = false)
-	private String subjectName;
+	private List<String> subjectName;
 
 	/** 入职时间 */
 	@ApiModelProperty(value = "入职时间", required = false)
@@ -83,6 +83,14 @@ public class Teacher extends SysUser {
 	@ApiModelProperty(value = "离职时间", required = false)
 	private Date demissionDate;
 
+	public List<String> getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(List<String> subjectName) {
+		this.subjectName = subjectName;
+	}
+
 	public String getOrganName() {
 		return organName;
 	}

+ 1 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -145,21 +145,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 	@Override
 	public PageInfo<Teacher> queryPageDetail(TeacherQueryInfo queryInfo) {
-		PageInfo<Teacher> pageInfo = queryPage(queryInfo);
-		List<Teacher> teachers = pageInfo.getRows();
-		//获取老师的专业技能名称列表
-		List<Integer> teacherIds = teachers.stream().map(e -> e.getId()).collect(Collectors.toList());
-		String join = StringUtils.join(teacherIds, ",");
-		List<NamesDto> namesDto = teacherDao.getTeacherSubNames(join);
-		HashMap map = JSON.parseObject(JSON.toJSONString(namesDto), HashMap.class);
-		if(teachers != null && teachers.size() > 0){
-			teachers.forEach(e->{
-				if(StringUtils.isNotEmpty(e.getSubjectId())){
-					e.setSubjectId(StringUtils.join(subjectDao.findBySubIds(e.getSubjectId()),","));
-				}
-			});
-		}
-		return pageInfo;
+		return queryPage(queryInfo);
 	}
 
 	@Override

+ 5 - 11
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -42,6 +42,9 @@
         <result column="birthdate_" property="birthdate"/>
         <result column="email_" property="email"/>
         <result column="im_token_" property="imToken"/>
+        <collection property="subjectName" ofType="string">
+            <result column="subject_name_"/>
+        </collection>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -196,10 +199,11 @@
     <select id="queryPage" resultMap="Teacher" parameterType="map">
         SELECT t.*,su.username_,su.password_,su.salt_,su.phone_,su.avatar_,
         su.lock_flag_,su.del_flag_,su.wx_openid_,su.qq_openid_,su.user_type_,
-        su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,t.subject_id_,t.organ_id_,o.name_ organ_name_
+        su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,t.subject_id_,t.organ_id_,o.name_ organ_name_,s.name_ subject_name_
         FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN organization o ON t.organ_id_ = o.id_
+        LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
         <include refid="queryPageMap"/>
         <include refid="global.limit"/>
     </select>
@@ -248,14 +252,4 @@
             AND su.username_ LIKE CONCAT('%',#{search},'%')
         </if>
     </select>
-
-    <resultMap id="namesDto" type="com.ym.mec.biz.dal.dto.NamesDto">
-        <result property="id" column="id_"/>
-        <collection property="names" javaType="list" ofType="string" column="name_"/>
-    </resultMap>
-    <select id="getTeacherSubNames" resultMap="namesDto">
-        SELECT s.name_,t.id_ FROM teacher t
-        LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
-        WHERE t.id_ IN (#{teacherIds})
-    </select>
 </mapper>