|
@@ -11,18 +11,28 @@ import com.microsvc.toolkit.middleware.im.impl.TencentCloudImPlugin;
|
|
|
import com.microsvc.toolkit.middleware.im.message.ETencentMessage;
|
|
|
import com.microsvc.toolkit.middleware.im.message.MessageWrapper;
|
|
|
import com.microsvc.toolkit.middleware.im.message.TencentRequest;
|
|
|
+import com.yonge.cooleshow.api.feign.StudentFeignService;
|
|
|
+import com.yonge.cooleshow.api.feign.TeacherFeignService;
|
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.auth.config.CustomerServiceConfig;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.ImUserFriendDao;
|
|
|
+import com.yonge.cooleshow.biz.dal.dao.StudentDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.Subject;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.MK;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ImGroupService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.StudentVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.im.CustomerService;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.im.ImUserWrapper;
|
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
@@ -78,6 +88,12 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
|
|
|
|
|
|
@Autowired
|
|
|
private ImPluginContext imPluginContext;
|
|
|
+ @Autowired
|
|
|
+ private StudentDao studentDao;
|
|
|
+ @Autowired
|
|
|
+ private SubjectService subjectService;
|
|
|
+ @Autowired
|
|
|
+ private VipCardRecordService vipCardRecordService;
|
|
|
@Override
|
|
|
public ImUserFriendDao getDao() {
|
|
|
return this.baseMapper;
|
|
@@ -183,49 +199,75 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public ImUserFriend getDetail(String imUserId, ClientEnum clientType) {
|
|
|
+ public ImUserFriendVO.ImUserFriend getDetail(String imUserId, ClientEnum clientType) {
|
|
|
|
|
|
// 用户ID
|
|
|
long userId = Long.parseLong(imGroupService.analysisImUserId(imUserId));
|
|
|
|
|
|
SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(userId);
|
|
|
- if (sysUser != null && sysUser.getId() != null) {
|
|
|
-
|
|
|
- ImUserFriend imUserFriend = lambdaQuery()
|
|
|
- .eq(ImUserFriend::getUserId, sysUser.getId())
|
|
|
- .eq(ImUserFriend::getClientType, clientType)
|
|
|
- .eq(ImUserFriend::getFriendId, userId)
|
|
|
- .one();
|
|
|
- if (Objects.nonNull(imUserFriend)) {
|
|
|
- //更新当前用户关联的该用户的详情信息
|
|
|
- imUserFriend.setFriendAvatar(basicUserInfo.getAvatar());
|
|
|
- imUserFriend.setFriendNickname(basicUserInfo.getUsername());
|
|
|
- imUserFriend.setUpdateTime(new Date());
|
|
|
- baseMapper.updateById(imUserFriend);
|
|
|
-
|
|
|
- // 设置融云IM好友ID
|
|
|
- imUserFriend.setImFriendId(imUserId);
|
|
|
-
|
|
|
- return imUserFriend;
|
|
|
+ if (basicUserInfo == null) {
|
|
|
+ throw new BizException("无效的用户");
|
|
|
+ }
|
|
|
+
|
|
|
+ String friendClientType = imGroupService.analysisImUserClient(imUserId);
|
|
|
+ ImUserFriend imUserFriend = lambdaQuery()
|
|
|
+ .eq(ImUserFriend::getUserId, sysUser.getId())
|
|
|
+ .eq(ImUserFriend::getClientType, clientType)
|
|
|
+ .eq(ImUserFriend::getFriendId, userId)
|
|
|
+ .eq(ImUserFriend::getFriendType, ClientEnum.valueOf(friendClientType))
|
|
|
+ .one();
|
|
|
+ if (Objects.nonNull(imUserFriend)) {
|
|
|
+ //更新当前用户关联的该用户的详情信息
|
|
|
+ imUserFriend.setFriendAvatar(basicUserInfo.getAvatar());
|
|
|
+ imUserFriend.setFriendNickname(basicUserInfo.getUsername());
|
|
|
+ imUserFriend.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(imUserFriend);
|
|
|
+
|
|
|
+ // 设置融云IM好友ID
|
|
|
+ imUserFriend.setImFriendId(imUserId);
|
|
|
+ } else {
|
|
|
+ // 好友身份类型
|
|
|
+ ClientEnum friendType = ClientEnum.TEACHER;
|
|
|
+ if (ClientEnum.STUDENT.match(imGroupService.analysisImUserClient(imUserId))) {
|
|
|
+ friendType = ClientEnum.STUDENT;
|
|
|
}
|
|
|
+ // 返回当前登录用户信息
|
|
|
+ imUserFriend = new ImUserFriend();
|
|
|
+ imUserFriend.setFriendAvatar(basicUserInfo.getAvatar());
|
|
|
+ imUserFriend.setFriendNickname(basicUserInfo.getUsername());
|
|
|
+ imUserFriend.setFriendId(userId);
|
|
|
+ imUserFriend.setFriendType(friendType);
|
|
|
+ // 设置融云IM好友ID
|
|
|
+ imUserFriend.setImFriendId(imUserId);
|
|
|
}
|
|
|
|
|
|
- // 好友身份类型
|
|
|
- ClientEnum friendType = ClientEnum.TEACHER;
|
|
|
- if (ClientEnum.STUDENT.match(imGroupService.analysisImUserClient(imUserId))) {
|
|
|
- friendType = ClientEnum.STUDENT;
|
|
|
+ ImUserFriendVO.ImUserFriend result = JSON.parseObject(JSON.toJSONString(imUserFriend), ImUserFriendVO.ImUserFriend.class);
|
|
|
+ result.setFriendGender(basicUserInfo.getGender());
|
|
|
+
|
|
|
+ if (ClientEnum.STUDENT.getCode().equals(friendClientType)) {
|
|
|
+ StudentVo detail = studentDao.detail(userId);
|
|
|
+ if (detail != null && StringUtils.isNotEmpty(detail.getSubjectId())) {
|
|
|
+ String subjectId = detail.getSubjectId();
|
|
|
+ List<Subject> subject = subjectService.findBySubjectByIdList(subjectId);
|
|
|
+ if (!subject.isEmpty()) {
|
|
|
+ result.setFriendSubjectName(subject.get(0).getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (ClientEnum.TEACHER.getCode().equals(friendClientType)) {
|
|
|
+ TeacherVo detail = teacherDao.detail(userId);
|
|
|
+ if (detail != null && StringUtils.isNotEmpty(detail.getSubjectId())) {
|
|
|
+ String subjectId = detail.getSubjectId();
|
|
|
+ List<Subject> subject = subjectService.findBySubjectByIdList(subjectId);
|
|
|
+ if (!subject.isEmpty()) {
|
|
|
+ result.setFriendSubjectName(subject.get(0).getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- // 返回当前登录用户信息
|
|
|
- ImUserFriend imUserFriend = new ImUserFriend();
|
|
|
- imUserFriend.setFriendAvatar(basicUserInfo.getAvatar());
|
|
|
- imUserFriend.setFriendNickname(basicUserInfo.getUsername());
|
|
|
- imUserFriend.setFriendId(userId);
|
|
|
- imUserFriend.setFriendType(friendType);
|
|
|
- // 设置融云IM好友ID
|
|
|
- imUserFriend.setImFriendId(imUserId);
|
|
|
-
|
|
|
- return imUserFriend;
|
|
|
+ VipCardRecordWrapper.UserVip userVip = vipCardRecordService.UserVipInfo(userId, ClientEnum.valueOf(friendClientType));
|
|
|
+ result.setUserVip(userVip);
|
|
|
+ result.setFriendBirthdate(basicUserInfo.getBirthdate());
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
/**
|