|
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.citu.framework.common.exception.enums.GlobalErrorCodeConstants;
|
|
import com.citu.framework.common.exception.enums.GlobalErrorCodeConstants;
|
|
import com.citu.framework.common.pojo.CommonResult;
|
|
import com.citu.framework.common.pojo.CommonResult;
|
|
import com.citu.module.menduner.common.util.LoginUserContext;
|
|
import com.citu.module.menduner.common.util.LoginUserContext;
|
|
|
|
+import com.citu.module.menduner.im.api.ImCollectUserReqVo;
|
|
import com.citu.module.menduner.im.controller.app.base.user.ImUserInfoVo;
|
|
import com.citu.module.menduner.im.controller.app.base.user.ImUserInfoVo;
|
|
import com.citu.module.menduner.im.controller.app.base.user.ImUserReqVo;
|
|
import com.citu.module.menduner.im.controller.app.base.user.ImUserReqVo;
|
|
import com.citu.module.menduner.im.controller.app.base.user.ImUserResoVO;
|
|
import com.citu.module.menduner.im.controller.app.base.user.ImUserResoVO;
|
|
@@ -17,6 +18,7 @@ import com.citu.module.menduner.system.api.user.UserInfoReqDTO;
|
|
import com.citu.module.menduner.system.api.user.UserInfoRespDTO;
|
|
import com.citu.module.menduner.system.api.user.UserInfoRespDTO;
|
|
import com.citu.module.menduner.system.enums.user.MdeUserTypeEnum;
|
|
import com.citu.module.menduner.system.enums.user.MdeUserTypeEnum;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -38,23 +40,18 @@ public class UserServiceImpl implements UserService{
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- @Transactional()
|
|
|
|
public CommonResult<ImUserResoVO> getUser(ImUserReqVo reqVo) {
|
|
public CommonResult<ImUserResoVO> getUser(ImUserReqVo reqVo) {
|
|
|
|
|
|
if(null==reqVo.getEnterpriseId()){
|
|
if(null==reqVo.getEnterpriseId()){
|
|
reqVo.setEnterpriseId(DEFAULT_ENTERPRISE_ID);
|
|
reqVo.setEnterpriseId(DEFAULT_ENTERPRISE_ID);
|
|
}
|
|
}
|
|
- UserDO userDO = mapper.selectOne(new LambdaQueryWrapper<UserDO>()
|
|
|
|
- .eq(UserDO::getUserId,reqVo.getUserId())
|
|
|
|
- .eq(UserDO::getEnterpriseId,reqVo.getEnterpriseId())
|
|
|
|
- );
|
|
|
|
|
|
+ UserDO userDO = mapper.selectUserDO(reqVo.getUserId(),reqVo.getEnterpriseId());
|
|
|
|
|
|
Long userLoginId = LoginUserContext.getUserId();
|
|
Long userLoginId = LoginUserContext.getUserId();
|
|
Long loginEnterpriseId = DEFAULT_ENTERPRISE_ID;
|
|
Long loginEnterpriseId = DEFAULT_ENTERPRISE_ID;
|
|
try{
|
|
try{
|
|
loginEnterpriseId=LoginUserContext.getEnterpriseId();
|
|
loginEnterpriseId=LoginUserContext.getEnterpriseId();
|
|
} catch (Exception e){
|
|
} catch (Exception e){
|
|
-
|
|
|
|
}
|
|
}
|
|
if(null == userDO){
|
|
if(null == userDO){
|
|
// 开始注册
|
|
// 开始注册
|
|
@@ -66,14 +63,19 @@ public class UserServiceImpl implements UserService{
|
|
userDO.setToken(IdUtil.fastSimpleUUID());
|
|
userDO.setToken(IdUtil.fastSimpleUUID());
|
|
userDO.setUid(IdUtil.fastSimpleUUID());
|
|
userDO.setUid(IdUtil.fastSimpleUUID());
|
|
// userDO.setContent(reqVo.getContent());
|
|
// userDO.setContent(reqVo.getContent());
|
|
- mapper.insert(userDO);
|
|
|
|
|
|
+ try {
|
|
|
|
+ mapper.insert(userDO);
|
|
|
|
+ }catch (DuplicateKeyException e){
|
|
|
|
+ userDO = mapper.selectUserDO(reqVo.getUserId(),reqVo.getEnterpriseId());
|
|
|
|
+ }
|
|
CommonResult<Boolean> booleanCommonResult = wuKongUserService.userToken(userDO.getUid(), userDO.getToken());
|
|
CommonResult<Boolean> booleanCommonResult = wuKongUserService.userToken(userDO.getUid(), userDO.getToken());
|
|
if(!booleanCommonResult.isSuccess()){
|
|
if(!booleanCommonResult.isSuccess()){
|
|
return CommonResult.error(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR);
|
|
return CommonResult.error(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(!Objects.equals(userLoginId, reqVo.getUserId()) || !Objects.equals(loginEnterpriseId, reqVo.getEnterpriseId()) ){
|
|
if(!Objects.equals(userLoginId, reqVo.getUserId()) || !Objects.equals(loginEnterpriseId, reqVo.getEnterpriseId()) ){
|
|
- userDO.setToken(null);
|
|
|
|
|
|
+ userDO.setToken(null);// @Transactional()
|
|
|
|
+
|
|
}
|
|
}
|
|
ImUserResoVO imUserResoVO = UserConvert.INSTANCE.userDOConvertUserResoVO(userDO);
|
|
ImUserResoVO imUserResoVO = UserConvert.INSTANCE.userDOConvertUserResoVO(userDO);
|
|
imUserResoVO.setWsUrl(wuKongUserService.getWsUrl(userDO.getUid()));
|
|
imUserResoVO.setWsUrl(wuKongUserService.getWsUrl(userDO.getUid()));
|
|
@@ -97,7 +99,11 @@ public class UserServiceImpl implements UserService{
|
|
userDO.setEnterpriseId(enterpriseId);
|
|
userDO.setEnterpriseId(enterpriseId);
|
|
userDO.setToken(IdUtil.fastSimpleUUID());
|
|
userDO.setToken(IdUtil.fastSimpleUUID());
|
|
userDO.setUid(IdUtil.fastSimpleUUID());
|
|
userDO.setUid(IdUtil.fastSimpleUUID());
|
|
- mapper.insert(userDO);
|
|
|
|
|
|
+ try {
|
|
|
|
+ mapper.insert(userDO);
|
|
|
|
+ }catch (DuplicateKeyException e){
|
|
|
|
+ userDO = mapper.selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getUserId,userLoginId).eq(UserDO::getEnterpriseId,enterpriseId));
|
|
|
|
+ }
|
|
CommonResult<Boolean> booleanCommonResult = wuKongUserService.userToken(userDO.getUid(), userDO.getToken());
|
|
CommonResult<Boolean> booleanCommonResult = wuKongUserService.userToken(userDO.getUid(), userDO.getToken());
|
|
if(!booleanCommonResult.isSuccess()){
|
|
if(!booleanCommonResult.isSuccess()){
|
|
// throw new Exception("系统异常!"); //todo
|
|
// throw new Exception("系统异常!"); //todo
|
|
@@ -107,6 +113,50 @@ public class UserServiceImpl implements UserService{
|
|
return userDO.getUid();
|
|
return userDO.getUid();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private UserDO getOrSave(Long userId, Long enterpriseId){
|
|
|
|
+ enterpriseId = null==enterpriseId?DEFAULT_ENTERPRISE_ID:enterpriseId;
|
|
|
|
+ UserDO userDO = mapper.selectOne(new LambdaQueryWrapper<UserDO>()
|
|
|
|
+ .select(UserDO::getUid)
|
|
|
|
+ .eq(UserDO::getUserId,userId)
|
|
|
|
+ .eq(null!=enterpriseId,UserDO::getEnterpriseId,enterpriseId));
|
|
|
|
+ if(null == userDO) {
|
|
|
|
+ // 开始注册
|
|
|
|
+ userDO = new UserDO();
|
|
|
|
+ userDO.setCreateTime(LocalDateTime.now());
|
|
|
|
+ userDO.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ userDO.setUserId(userId);
|
|
|
|
+ userDO.setEnterpriseId(enterpriseId);
|
|
|
|
+ userDO.setToken(IdUtil.fastSimpleUUID());
|
|
|
|
+ userDO.setUid(IdUtil.fastSimpleUUID());
|
|
|
|
+ try {
|
|
|
|
+ mapper.insert(userDO);
|
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
|
+ userDO = mapper.selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getUserId, userId).eq(UserDO::getEnterpriseId, enterpriseId));
|
|
|
|
+ }
|
|
|
|
+ CommonResult<Boolean> booleanCommonResult = wuKongUserService.userToken(userDO.getUid(), userDO.getToken());
|
|
|
|
+ if (!booleanCommonResult.isSuccess()) {
|
|
|
|
+// throw new Exception("系统异常!"); //todo
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return userDO;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<String> getUsers(List<ImCollectUserReqVo> userVoList) {
|
|
|
|
+ List<String> uids = new ArrayList<>();
|
|
|
|
+ for (ImCollectUserReqVo imCollectUserReqVo : userVoList) {
|
|
|
|
+ UserDO orSave = getOrSave(imCollectUserReqVo.getUserId(), imCollectUserReqVo.getEnterpriseId());
|
|
|
|
+ uids.add(orSave.getUid());
|
|
|
|
+ }
|
|
|
|
+ return uids;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<String> getAllUids() {
|
|
|
|
+ return mapper.getAllUids();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public CommonResult<List<ImUserInfoVo>> getUserByUids(Set<String> uids) {
|
|
public CommonResult<List<ImUserInfoVo>> getUserByUids(Set<String> uids) {
|
|
if(null == uids || uids.isEmpty()){
|
|
if(null == uids || uids.isEmpty()){
|
|
@@ -152,6 +202,8 @@ public class UserServiceImpl implements UserService{
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
public void setWuKongUserService(WuKongUserService wuKongUserService) {
|
|
public void setWuKongUserService(WuKongUserService wuKongUserService) {
|
|
this.wuKongUserService = wuKongUserService;
|
|
this.wuKongUserService = wuKongUserService;
|