Bladeren bron

Merge remote-tracking branch 'origin/zouxuan_saas_2022_0606' into zouxuan_saas_2022_0606

liweifan 3 jaren geleden
bovenliggende
commit
0960b40819

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImGroupDto.java

@@ -4,11 +4,12 @@ import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public class ImGroupDto extends BaseEntity {
     @ApiModelProperty(value = "用户列表")
-    private List<String> userIdList;
+    private List<String> userIdList = new ArrayList<>();
 
     @ApiModelProperty(value = "群名称")
     private String groupName;

+ 6 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.biz.dal.page.GroupMemberQueryInfo;
 import com.ym.mec.biz.service.ImGroupMemberService;
 import com.ym.mec.biz.service.ImGroupService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
@@ -27,10 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-import java.util.UUID;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -109,9 +107,12 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 	@Transactional(rollbackFor = Exception.class)
 	public String createGroup(ImGroupDto imGroupDto){
 		List<String> userIdList = imGroupDto.getUserIdList();
+		if (CollectionUtils.isEmpty(userIdList)){
+			Integer currentUserId = sysUserFeignService.queryUserInfo().getId();
+			userIdList.add(currentUserId.toString());
+		}
 		String groupName = imGroupDto.getGroupName();
 		String type = imGroupDto.getType();
-		Optional.ofNullable(userIdList).filter(CollectionUtils::isNotEmpty).orElseThrow(() -> new BizException("群成员不能为空"));
 		Optional.ofNullable(groupName).filter(StringUtils::isNotBlank).orElseThrow(() -> new BizException("群名称不能为空"));
 		Optional.ofNullable(type).filter(StringUtils::isNotBlank).orElseThrow(() -> new BizException("群类型不能为空"));
 		Date date = new Date();
@@ -139,7 +140,6 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean cancel(String imGroupId) {
-
 		// 删除群成员
 		imGroupMemberDao.deleteByImGroupId(imGroupId);
 		// 删除群公告

+ 0 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImSendGroupMessageServiceImpl.java

@@ -130,10 +130,6 @@ public class ImSendGroupMessageServiceImpl extends BaseServiceImpl<Long, ImSendG
 	}
 
 	private void send(ImSendGroupMessage messageDto) throws Exception {
-		if(messageDto.getIsIncludeSender() == 0){
-			//发送系统消息用指定的用户
-			messageDto.setSenderId(sysConfigDao.findConfigValue("system_message_user"));
-		}
 		if (Objects.equals(messageDto.getMessageType(), ImSendTypeEnum.IMG)) {
 			sysMessageService.batchSendImGroupImgMessage(messageDto);
 		} else if (Objects.equals(messageDto.getMessageType(),ImSendTypeEnum.FILE)) {

+ 8 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -277,8 +277,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			throw new BizException("文件过大请调整 像素 或 文件大小");
 		}
 		messageDto.setObjectName("RC:ImgMsg");
-		messageDto.setMessageContent(imageToBase64(bufferedImage, "png"));
 		ImMessageDto imMessageDto = this.getImGroupMessage(messageDto);
+		imMessageDto.setMessageContent(imageToBase64(bufferedImage, "png"));
 		imMessageDto.setFileUrl(messageDto.getFileUrl());
 		this.sendGroupMessage(imMessageDto);
 	}
@@ -293,8 +293,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Override
 	public void batchSendImGroupFileMessage(ImSendGroupMessage messageDto) {
 		messageDto.setObjectName("RC:FileMsg");
-		messageDto.setMessageContent("");
 		ImMessageDto imMessageDto = this.getImGroupMessage(messageDto);
+		imMessageDto.setMessageContent("");
 		imMessageDto.setFileUrl(messageDto.getFileUrl());
 		imMessageDto.setFileSize(messageDto.getFileSize());
 		imMessageDto.setFileName(messageDto.getFileName());
@@ -321,9 +321,14 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	private ImMessageDto getImGroupMessage(ImSendGroupMessage messageDto) {
 		ImMessageDto imMessageDto = new ImMessageDto();
+		if(messageDto.getIsIncludeSender() == 0){
+			//发送系统消息用指定的用户
+			imMessageDto.setSenderId(sysConfigDao.findConfigValue("system_message_user"));
+		}else {
+			imMessageDto.setSenderId(messageDto.getSenderId());
+		}
 		imMessageDto.setObjectName(messageDto.getObjectName());
 		imMessageDto.setTargetIds(messageDto.getTargetIds().split(","));
-		imMessageDto.setSenderId(messageDto.getSenderId());
 		imMessageDto.setExtra(messageDto.getExtra());
 		imMessageDto.setMessageContent(messageDto.getMessageContent());
 		imMessageDto.setIsIncludeSender(messageDto.getIsIncludeSender());

+ 5 - 4
mec-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -135,17 +135,18 @@
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ImGroup" parameterType="map">
-		SELECT ig.* FROM im_group_member igm
-		LEFT JOIN im_group ig ON igm.im_group_id_ = ig.id_
+		SELECT ig.* FROM im_group ig
+		LEFT JOIN im_group_member igm ON igm.im_group_id_ = ig.id_
 		<include refid="queryPageSql" />
+		GROUP BY ig.id_
 		ORDER BY id_
 		<include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(ig.id_) FROM im_group_member igm
-		LEFT JOIN im_group ig ON igm.im_group_id_ = ig.id_
+		SELECT COUNT(DISTINCT ig.id_) FROM im_group ig
+		LEFT JOIN im_group_member igm ON igm.im_group_id_ = ig.id_
 		<include refid="queryPageSql" />
 	</select>
 	

+ 6 - 1
mec-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml

@@ -144,7 +144,12 @@
 				AND igm.im_group_id_ = #{imGroupId}
 			</if>
 			<if test="roleType != null and roleType != ''">
-				AND igm.role_type_ = #{roleType}
+				<if test="roleType == '学员'">
+					AND (igm.role_type_ IS NULL OR igm.role_type_ = '')
+				</if>
+				<if test="roleType != '学员'">
+					AND igm.role_type_ = #{roleType}
+				</if>
 			</if>
 			<if test="search != null and search != ''">
 				AND (igm.nickname_ LIKE CONCAT('%',#{search},'%') OR igm.user_id_ = #{search} OR u.phone_ LIKE CONCAT('%',#{search},'%'))

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -1431,7 +1431,9 @@
     <select id="countStudentBasicInfo" resultType="java.lang.Integer">
         SELECT COUNT(s.user_id_) FROM student s
         LEFT JOIN sys_user su ON su.id_ = s.user_id_
-        LEFT JOIN student_registration sr ON sr.user_id_ = s.user_id_
+        <if test="musicGroupId != null and musicGroupId != ''">
+            LEFT JOIN student_registration sr ON sr.user_id_ = s.user_id_
+        </if>
         <include refid="queryStudentBasicInfoSql"/>
     </select>
     <select id="queryStudentBasicInfo" resultMap="SysUserDto">
@@ -1439,7 +1441,9 @@
         LEFT JOIN sys_user su ON su.id_ = s.user_id_
         LEFT JOIN organization o ON o.id_ = su.organ_id_
         LEFT JOIN `subject` sb ON sb.id_ = s.subject_id_list_
-        LEFT JOIN student_registration sr ON sr.user_id_ = s.user_id_
+        <if test="musicGroupId != null and musicGroupId != ''">
+            LEFT JOIN student_registration sr ON sr.user_id_ = s.user_id_
+        </if>
         <include refid="queryStudentBasicInfoSql"/>
         <include refid="global.limit"/>
     </select>

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

@@ -1468,7 +1468,7 @@
                 AND FIND_IN_SET(#{subjectId},t.subject_id_)
             </if>
             <if test="imGroupId != null and imGroupId != ''">
-                AND s.user_id_ NOT IN (SELECT user_id_ FROM im_group_member WHERE im_group_id_ = #{imGroupId})
+                AND t.id_ NOT IN (SELECT user_id_ FROM im_group_member WHERE im_group_id_ = #{imGroupId})
             </if>
         </where>
     </sql>

+ 22 - 27
mec-student/src/main/java/com/ym/mec/student/controller/ImGroupController.java

@@ -1,23 +1,20 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
-import com.ym.mec.biz.service.ImGroupNoticeService;
-import com.ym.mec.biz.service.ImGroupService;
-import com.ym.mec.biz.service.ImUserFriendService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Objects;
-
 @RequestMapping("imGroup")
 @Api(tags = "IM群服务")
 @RestController
@@ -33,17 +30,15 @@ public class ImGroupController extends BaseController {
 	private ImGroupNoticeService imGroupNoticeService;
 
 	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	private ImGroupMemberService imGroupMemberService;
+
+	@Autowired
+	private SysUserService sysUserService;
 
 	@ApiOperation("查询群列表")
 	@GetMapping(value = "/queryGroupList")
 	public Object queryGroupList(String search,String groupType) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (Objects.isNull(sysUser)) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-
-		return succeed(imGroupService.queryByUserId(sysUser.getId(), search,groupType));
+		return succeed(imGroupService.queryByUserId(sysUserService.getUserId(), search,groupType));
 	}
 
 	@ApiOperation("查询群详情")
@@ -72,15 +67,10 @@ public class ImGroupController extends BaseController {
 	@ApiOperation("查询好友详情")
 	@GetMapping(value = "/queryFriendDetail")
 	public Object queryFriendDetail(Integer userId) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (Objects.isNull(sysUser)) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-
-		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(sysUser.getId(), userId);
+		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(sysUserService.getUserId(), userId);
 		if (dto == null) {
 			dto = new ImUserFriendDto();
-			SysUser user = sysUserFeignService.queryUserById(userId);
+			SysUser user = sysUserService.queryUserById(userId);
 			dto.setFriend(user);
 			if (user.getUserType().contains("STUDENT")) {
 				dto.setFriendNickname(user.getUsername());
@@ -95,12 +85,7 @@ public class ImGroupController extends BaseController {
 	@ApiOperation("查询好友列表")
 	@GetMapping(value = "/queryFriendList")
 	public Object queryFriendList(String search) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (Objects.isNull(sysUser)) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-
-		return succeed(imUserFriendService.queryFriendListByUserId(sysUser.getId(), search));
+		return succeed(imUserFriendService.queryFriendListByUserId(sysUserService.getUserId(), search));
 	}
 
 	@ApiOperation("查询群公告列表")
@@ -108,4 +93,14 @@ public class ImGroupController extends BaseController {
 	public Object queryNoticeList(ImGroupNoticeQueryInfo queryInfo) {
 		return succeed(imGroupNoticeService.queryPage(queryInfo));
 	}
+
+	@ApiOperation("入群")
+	@PostMapping(value = "/addGroupMember")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "imGroupId", value = "群编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "roleType", value = "指导老师,乐队指导,乐团主管,运营主管,学员不传", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "isAdmin", value = "是否管理员", required = true, dataType = "Boolean"),
+			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer")})
+	public Object addGroupMember(String imGroupId, Integer userId, String roleType, boolean isAdmin) {
+		return succeed(imGroupMemberService.join(imGroupId,userId,roleType,isAdmin));
+	}
 }