|  | @@ -1,11 +1,9 @@
 | 
	
		
			
				|  |  |  package com.yonge.cooleshow.biz.dal.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  | -import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 | 
	
		
			
				|  |  | -import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 | 
	
	
		
			
				|  | @@ -15,6 +13,7 @@ import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.service.SysUserService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.vo.AuditUserInfo;
 | 
	
		
			
				|  |  |  import com.yonge.toolset.base.exception.BizException;
 | 
	
		
			
				|  |  |  import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 | 
	
	
		
			
				|  | @@ -43,10 +42,9 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private ImGroupService imGroupService;
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  | -    private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  | +    private SysUserService sysUserService;
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private ImGroupMemberService imGroupMemberService;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private SysMessageServiceImpl sysMessageService;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -90,16 +88,15 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 | 
	
		
			
				|  |  |                      imGroupMemberAudit.getUserId(), false,
 | 
	
		
			
				|  |  |                      imGroupMemberAudit.getRoleType());
 | 
	
		
			
				|  |  |              //同步群成员数量
 | 
	
		
			
				|  |  | -            imGroupService.syncGroupMemberNum(imGroup.getId());
 | 
	
		
			
				|  |  | +            imGroupService.getDao().updateMemberNum(imGroup.getId());
 | 
	
		
			
				|  |  |              //加入融云群
 | 
	
		
			
				|  |  |              imGroupMemberService.join(groupMembers,groupId);
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -            Map<Long,String> receivers = new HashMap<>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            Map<Long,String> receivers = new HashMap<>(1);
 | 
	
		
			
				|  |  |              // 群创建人
 | 
	
		
			
				|  |  | -            SysUser user = sysUserFeignService.queryUserById(imGroup.getCreateBy());
 | 
	
		
			
				|  |  | +            SysUser user = sysUserService.findUserById(imGroup.getCreateBy());
 | 
	
		
			
				|  |  |              // 申请人
 | 
	
		
			
				|  |  | -            SysUser auditUser = sysUserFeignService.queryUserById(imGroupMemberAudit.getUserId());
 | 
	
		
			
				|  |  | +            SysUser auditUser = sysUserService.findUserById(imGroupMemberAudit.getUserId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              receivers.put(user.getId(), user.getPhone());
 | 
	
		
			
				|  |  |              try {
 | 
	
	
		
			
				|  | @@ -108,24 +105,15 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 | 
	
		
			
				|  |  |              } catch (Exception e) {
 | 
	
		
			
				|  |  |                  log.warn("学生入群消息发送失败,{}",e.getMessage());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void applyAudit(String auditIds, AuditStatusEnum auditStatus,String groupId) throws Exception {
 | 
	
		
			
				|  |  | -        if(auditStatus == AuditStatusEnum.AUDITING ){
 | 
	
		
			
				|  |  | -            throw new BizException("操作失败:审核状态异常");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        ImGroup imGroup = imGroupService.getById(groupId);
 | 
	
		
			
				|  |  | -        if(Objects.isNull(imGroup)){
 | 
	
		
			
				|  |  | -            throw new BizException("群组信息不存在");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | -        if(!sysUser.getId().equals(imGroup.getCreateBy())){
 | 
	
		
			
				|  |  | -            throw new BizException("操作失败:您没有审核权限");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        Optional.of(auditStatus).filter(e->e != AuditStatusEnum.AUDITING).orElseThrow(()->new BizException("操作失败:审核状态异常"));
 | 
	
		
			
				|  |  | +        ImGroup imGroup = Optional.ofNullable(imGroupService.getById(groupId)).orElseThrow(() ->new BizException("群组信息不存在"));
 | 
	
		
			
				|  |  | +        Optional.of(sysUserService.getUser()).filter(e->!e.getId().equals(imGroup.getCreateBy())).orElseThrow(()->new BizException("操作失败:您没有审核权限"));
 | 
	
		
			
				|  |  |          //修改审核状态
 | 
	
		
			
				|  |  |          baseMapper.batchUpdateAuditStatus(auditIds,auditStatus.getCode());
 | 
	
		
			
				|  |  |          if(auditStatus == AuditStatusEnum.OPEN){
 | 
	
	
		
			
				|  | @@ -133,10 +121,9 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 | 
	
		
			
				|  |  |              Set<Long> userIds = imGroupMemberAudit.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
 | 
	
		
			
				|  |  |              List<GroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId,userIds, ImGroupMemberRoleType.STUDENT);
 | 
	
		
			
				|  |  |              //同步群成员数量
 | 
	
		
			
				|  |  | -            imGroupService.syncGroupMemberNum(imGroup.getId());
 | 
	
		
			
				|  |  | +            imGroupService.getDao().updateMemberNum(imGroup.getId());
 | 
	
		
			
				|  |  |              //加入融云群
 | 
	
		
			
				|  |  |              imGroupMemberService.join(groupMembers,imGroup.getId());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              sendMessage(auditIds);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -148,21 +135,21 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      private void sendMessage(String auditIds) {
 | 
	
		
			
				|  |  |          List<AuditUserInfo> auditUserInfoList = baseMapper.selectAuditUserInfo(auditIds);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          if (CollectionUtils.isEmpty(auditUserInfoList)) {
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        for (AuditUserInfo auditUserInfo : auditUserInfoList) {
 | 
	
		
			
				|  |  | -            Map<Long,String> receivers = new HashMap<>();
 | 
	
		
			
				|  |  | +        auditUserInfoList.stream().forEach(this::sendMessage);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            receivers.put(auditUserInfo.getAuditUserId(), auditUserInfo.getAuditUserPhone());
 | 
	
		
			
				|  |  | -            try {
 | 
	
		
			
				|  |  | -                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.FANSGROUP_APPLY_SUCCESS,
 | 
	
		
			
				|  |  | -                        receivers, null, 0, null, ClientEnum.STUDENT.getCode(), auditUserInfo.getGroupUsername(),
 | 
	
		
			
				|  |  | -                        auditUserInfo.getGroupName());
 | 
	
		
			
				|  |  | -            } catch (Exception e) {
 | 
	
		
			
				|  |  | -                log.warn("学生入群申请通过消息发送失败,{}",e.getMessage());
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +    private void sendMessage(AuditUserInfo auditUserInfo){
 | 
	
		
			
				|  |  | +        Map<Long,String> receivers = new HashMap<>(1);
 | 
	
		
			
				|  |  | +        receivers.put(auditUserInfo.getAuditUserId(), auditUserInfo.getAuditUserPhone());
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.FANSGROUP_APPLY_SUCCESS,
 | 
	
		
			
				|  |  | +                    receivers, null, 0, null, ClientEnum.STUDENT.getCode(), auditUserInfo.getGroupUsername(),
 | 
	
		
			
				|  |  | +                    auditUserInfo.getGroupName());
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            log.warn("学生入群申请通过消息发送失败,{}",e.getMessage());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |