Bläddra i källkod

Merge remote-tracking branch 'origin/master'

周箭河 4 år sedan
förälder
incheckning
1c4360e1c6

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupMemberService.java

@@ -4,6 +4,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.common.service.BaseService;
 
@@ -20,6 +22,15 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	boolean join(Long imGroupId, Integer userId, String roleType, boolean isAdmin);
 
 	/**
+	 * 加入群组
+	 * @param imGroupId 群编号
+	 * @param roleType 角色类型
+	 * @param isAdmin 是否是管理员
+	 * @return
+	 */
+	boolean join(Long imGroupId, String roleType, boolean isAdmin, ImGroup imGroup, SysUser user);
+
+	/**
 	 * 批量加入群组
 	 * @param imGroupId 群组编号
 	 * @param userRoleMap key-用户编号  value-角色类型

+ 8 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CooperationOrganServiceImpl.java

@@ -5,6 +5,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ClassGroupDao;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
@@ -35,6 +37,8 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 	private ImGroupService imGroupService;
 	@Autowired
 	private EmployeeDao employeeDao;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 	@Override
 	public BaseDAO<Integer, CooperationOrgan> getDAO() {
@@ -57,6 +61,7 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 		CooperationOrgan cooperationOrgan1 = cooperationOrganDao.get(cooperationOrgan.getId());
 		//修改了乐团主管后,修改关联乐团的乐团主管
 		if(!cooperationOrgan.getEducationUserId().equals(cooperationOrgan1.getEducationUserId())){
+			SysUser sysUser = sysUserFeignService.queryUserById(cooperationOrgan.getEducationUserId());
 			//获取进行中、暂停、筹备中的乐团列表
 			List<MusicGroup> musicGroups = musicGroupDao.findByCooperationIdAndStatus(cooperationOrgan.getId());
 			if(musicGroups.size() > 0){
@@ -67,17 +72,11 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 						continue;
 					}
 					Integer educationalTeacherId = musicGroup.getEducationalTeacherId();
-					List<Integer> quitUserIdList = new ArrayList<Integer>();
-					if(educationalTeacherId != null){
-						quitUserIdList.add(educationalTeacherId);
-					}
-					Map<Integer, String> userRoleMap = new HashMap<Integer, String>(1);
-					userRoleMap.put(cooperationOrgan.getEducationUserId(), "乐团主管");
 					classGroups.forEach(e -> {
 						if(educationalTeacherId != null){
-							imGroupMemberService.quit(e.getId().longValue(), quitUserIdList);
+							imGroupMemberService.quit(e.getId().longValue(), educationalTeacherId);
 						}
-						imGroupMemberService.join(e.getId().longValue(), userRoleMap);
+						imGroupMemberService.join(e.getId().longValue(),"乐团主管",false,null,sysUser);
 					});
 				}
 			}
@@ -91,7 +90,7 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 						ImGroup imGroup = imGroupService.get(Long.parseLong(musicGroup.getId()));
 						if(imGroup != null){
 							imGroupMemberService.quit(Long.parseLong(musicGroup.getId()),musicGroup.getEducationalTeacherId());
-							imGroupMemberService.join(Long.parseLong(musicGroup.getId()),cooperationOrgan.getEducationUserId(),"乐团主管",false);
+							imGroupMemberService.join(Long.parseLong(musicGroup.getId()),"乐团主管",false,imGroup,sysUser);
 						}
 					}
 				}

+ 0 - 52
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -264,10 +264,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	public void level(List<EmployeeLevelDto> employeeLevelDtos) {
 		Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId();
 		List<ImGroupModel> educationGroupModels = new ArrayList<>();
-//		List<ImGroupModel> teamGroupModels = new ArrayList<>();
-//		List<ImGroupModel> directorGroupModels = new ArrayList<>();
-		//获取用户需要加入的预报名群聊
-//		List<ImGroupModel> applyGroupModels = new ArrayList<>();
 		//获取用户担任教务老师的所有乐团列表
 		List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
 		//获取用户担任教务老师的所有网管课列表
@@ -311,9 +307,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			}
 		}
 		Date date = new Date();
-//		educationGroupModels.addAll(applyGroupModels);
-//		educationGroupModels.addAll(educationGroupModels);
-//		educationGroupModels.addAll(teamGroupModels);
 		if(educationGroupModels.size() > 0){
 			Map<Integer, String> realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(userIds)));
 			//❤️用户加群
@@ -337,55 +330,10 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			imGroupMemberService.batchInsert(imGroupMemberList);
 			imFeignService.groupBatchJoin(groupModelList);
 		}
-		/*if(educationGroupModels.size() > 0){
-			//❤️用户加群
-			for (ImGroupModel imGroupModel : educationGroupModels) {
-				Map<Integer,String> userRoleMap = new HashMap<>();
-
-				List<ImGroupMember> memberList = imGroupModel.getMemberList();
-				for(ImGroupMember member : memberList){
-					userRoleMap.put(Integer.parseInt(member.getId()), "乐团主管");
-				}
-				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
-			}
-		}
-		if(teamGroupModels.size() > 0){
-			//❤️用户加群
-			for (ImGroupModel imGroupModel : teamGroupModels) {
-				Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
-
-				List<ImGroupMember> memberList = imGroupModel.getMemberList();
-				for(ImGroupMember member : memberList){
-					userRoleMap.put(Integer.parseInt(member.getId()), "运营主管");
-				}
-				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
-			}
-		}
-		if(directorGroupModels.size() > 0){
-			//❤️用户加群
-			for (ImGroupModel imGroupModel : directorGroupModels) {
-				Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
-
-				List<ImGroupMember> memberList = imGroupModel.getMemberList();
-				for(ImGroupMember member : memberList){
-					userRoleMap.put(Integer.parseInt(member.getId()), "乐队指导");
-				}
-				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
-			}
-		}*/
 		//原有员工退群
 		List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
-		/*if(groupModels.size() > 0){
-
-			List<Long> imGroupIdList = new ArrayList<Long>();
-			for (ImGroupModel imGroupModel : groupModels) {
-				imGroupIdList.add(Long.parseLong(imGroupModel.getId()));
-			}
-			imGroupMemberService.quit(imGroupIdList, levelUserId);
-		}*/
 		//原有员工退预报名群
 		groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
-//		groupModels.addAll(imGroupModels);
 		if(groupModels.size() > 0){
 			List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
 			List<GroupModel> groupModelList = new ArrayList<>();

+ 45 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -174,6 +174,51 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
+	public boolean join(Long imGroupId,String roleType, boolean isAdmin,ImGroup imGroup,SysUser user) {
+		if (imGroup == null) {
+			imGroup = imGroupDao.getLocked(imGroupId);
+		}
+		if (imGroup == null) {
+			joinGroup(imGroupId,user.getId(),roleType,isAdmin,new HashMap<>());
+			return true;
+		}
+		//检查用户是否已存在
+		List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId.toString(), user.getId().toString());
+		if(imGroupMemberList != null && imGroupMemberList.size() > 0){
+			return true;
+		}
+
+		ImGroupMember imGroupMember = new ImGroupMember();
+		Date date = new Date();
+
+		imGroupMember.setCreateTime(date);
+		imGroupMember.setImGroupId(imGroupId);
+		imGroupMember.setIsAdmin(isAdmin);
+		imGroupMember.setRoleType(roleType);
+		imGroupMember.setUpdateTime(date);
+		imGroupMember.setUserId(user.getId());
+		if (StringUtils.isBlank(roleType)) {
+			imGroupMember.setNickname(user.getUsername()==null?user.getRealName():user.getUsername());
+		} else {
+			imGroupMember.setNickname(user.getRealName()==null?user.getUsername():user.getRealName());
+		}
+
+		imGroupMemberDao.insert(imGroupMember);
+
+		imGroup.setMemberNum(imGroup.getMemberNum() + 1);
+		imGroup.setUpdateTime(date);
+		imGroupDao.update(imGroup);
+
+		String groupId = imGroup.getId().toString();
+
+		GroupMember groupMember = new GroupMember(user.getId().toString(), groupId);
+		imFeignService.groupJoin(new GroupModel(groupId, new GroupMember[] { groupMember }, imGroup.getName()));
+
+		return true;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean join(Long imGroupId, Map<Integer, String> userRoleMap) {
 		ImGroup imGroup = imGroupDao.getLocked(imGroupId);
 		if (imGroup == null) {

+ 10 - 14
mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml

@@ -96,6 +96,11 @@
         SELECT s.*,su.real_name_ FROM school s
         LEFT JOIN sys_user su ON su.id_ = s.user_id_
         WHERE s.del_flag_ != 1
+        <include refid="queryPageSql"/>
+        ORDER BY s.id_
+        <include refid="global.limit"/>
+    </select>
+    <sql id="queryPageSql">
         <if test="cooperationOrganId != null">
             AND s.cooperation_organ_id_ = #{cooperationOrganId}
         </if>
@@ -113,22 +118,13 @@
         <if test="search != null">
             AND (s.name_ LIKE CONCAT('%',#{search},'%') OR s.id_ LIKE CONCAT('%',#{search},'%'))
         </if>
-        ORDER BY s.id_
-        <include refid="global.limit"/>
-    </select>
-
+    </sql>
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM school where del_flag_ != 1
-        <if test="cooperationOrganId != null">
-            AND cooperation_organ_id_ = #{cooperationOrganId}
-        </if>
-        <if test="organId != null">
-            AND FIND_IN_SET(organ_id_,#{organId})
-        </if>
-        <if test="search != null">
-            AND (name_ LIKE CONCAT('%',#{search},'%') OR id_ LIKE CONCAT('%',#{search},'%'))
-        </if>
+        SELECT COUNT(s.id_) FROM school s
+        LEFT JOIN sys_user su ON su.id_ = s.user_id_
+        WHERE s.del_flag_ != 1
+        <include refid="queryPageSql"/>
 	</select>
     <select id="queryByOrganId" resultMap="School">
         SELECT * FROM school