|
@@ -2,12 +2,15 @@ package com.fs.store.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.fs.common.constant.HttpStatus;
|
|
|
import com.fs.common.core.domain.R;
|
|
|
import com.fs.common.core.domain.ResponseResult;
|
|
|
import com.fs.common.core.page.TableDataInfo;
|
|
|
+import com.fs.common.exception.CustomException;
|
|
|
import com.fs.common.utils.DateUtils;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
|
import com.fs.company.cache.ICompanyTagCacheService;
|
|
@@ -16,7 +19,6 @@ import com.fs.company.domain.Company;
|
|
|
import com.fs.company.domain.CompanyTag;
|
|
|
import com.fs.company.domain.CompanyTagUser;
|
|
|
import com.fs.company.domain.CompanyUser;
|
|
|
-import com.fs.company.dto.CompanyIdAndUserDTO;
|
|
|
import com.fs.company.mapper.CompanyMapper;
|
|
|
import com.fs.company.mapper.CompanyTagMapper;
|
|
|
import com.fs.company.mapper.CompanyTagUserMapper;
|
|
@@ -31,6 +33,10 @@ import com.fs.course.vo.newfs.FsCourseAnalysisVO;
|
|
|
import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
|
|
|
import com.fs.his.vo.OptionsVO;
|
|
|
import com.fs.qw.cache.IQwExternalContactCacheService;
|
|
|
+import com.fs.qw.domain.QwExternalContact;
|
|
|
+import com.fs.qw.domain.QwSession;
|
|
|
+import com.fs.qw.mapper.QwExternalContactMapper;
|
|
|
+import com.fs.qw.mapper.QwSessionMapper;
|
|
|
import com.fs.qw.param.QwFsUserParam;
|
|
|
import com.fs.qw.vo.QwFsUserVO;
|
|
|
import com.fs.store.domain.*;
|
|
@@ -52,7 +58,6 @@ import com.fs.store.vo.FSUserVO;
|
|
|
import com.fs.store.vo.FsCompanyUserListQueryVO;
|
|
|
import com.fs.store.vo.FsUserTuiVO;
|
|
|
import com.fs.store.vo.h5.*;
|
|
|
-import com.github.pagehelper.PageInfo;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.http.util.Asserts;
|
|
@@ -126,6 +131,10 @@ public class FsUserServiceImpl implements IFsUserService
|
|
|
|
|
|
@Autowired
|
|
|
CompanyTagMapper companyTagMapper;
|
|
|
+ @Autowired
|
|
|
+ private QwSessionMapper qwSessionMapper;
|
|
|
+ @Autowired
|
|
|
+ private QwExternalContactMapper qwExternalContactMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询用户
|
|
@@ -899,6 +908,40 @@ public class FsUserServiceImpl implements IFsUserService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据会话sessionId查询用户信息
|
|
|
+ * @param sessionId sessionId
|
|
|
+ * @return fsUser
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public FsUser getUserInfoBySessionId(Long sessionId) {
|
|
|
+ Wrapper<QwSession> qwSessionWrapper = Wrappers.<QwSession>lambdaQuery()
|
|
|
+ .select(QwSession.class, q -> !q.getColumn().equals("remark"))
|
|
|
+ .eq(QwSession::getSessionId, sessionId);
|
|
|
+ QwSession qwSession = qwSessionMapper.selectOne(qwSessionWrapper);
|
|
|
+ if (Objects.isNull(qwSession)) {
|
|
|
+ log.warn("企微会话不存在 sessionId:{}", sessionId);
|
|
|
+ throw new CustomException("会话不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ Wrapper<QwExternalContact> qwExternalContactWrapper = Wrappers.<QwExternalContact>lambdaQuery()
|
|
|
+ .select(QwExternalContact.class, q -> !q.getColumn().equals("remark"))
|
|
|
+ .eq(QwExternalContact::getId, qwSession.getQwExtId());
|
|
|
+ QwExternalContact qwExternalContact = qwExternalContactMapper.selectOne(qwExternalContactWrapper);
|
|
|
+ if (Objects.isNull(qwExternalContact)) {
|
|
|
+ log.warn("企微会话对应外部联系人不存在 qwExtId: {}", qwSession.getQwExtId());
|
|
|
+ throw new CustomException("外部联系人不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ FsUser fsUser = fsUserMapper.selectFsUserById(qwExternalContact.getFsUserId());
|
|
|
+ if (Objects.isNull(fsUser)) {
|
|
|
+ fsUser = new FsUser();
|
|
|
+ fsUser.setAvatar(qwExternalContact.getAvatar());
|
|
|
+ fsUser.setNickname(qwExternalContact.getName());
|
|
|
+ }
|
|
|
+ return fsUser;
|
|
|
+ }
|
|
|
+
|
|
|
// 判断是否绑定了销售
|
|
|
private static FsUserCompanyUser getFsUserCompanyUser(FsUserCourseBeMemberParam param, FsUser fsUser) {
|
|
|
FsUserCompanyUser fsUserCompanyUser = new FsUserCompanyUser();
|