This commit is contained in:
张良(004796)
2024-03-21 11:15:25 +08:00
parent 4ae6a05fa8
commit 5cd14c47eb
6 changed files with 72 additions and 53 deletions

View File

@@ -0,0 +1,49 @@
package com.ruoyi.cai.im;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.yunxin.client.ImUserRefClient;
import com.ruoyi.yunxin.req.UpdateUinfoReq;
import com.ruoyi.yunxin.resp.YxCommonR;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Slf4j
@Component
public class ImManager {
@Autowired
private SystemConfigManager systemConfigManager;
@Resource
private ImUserRefClient userRefClient;
public void updateImInfo(Long userId, String avatar, String nickname){
if(userId == null){
return;
}
if(StringUtils.isNotBlank(avatar) && StringUtils.isNotBlank(nickname)){
return;
}
try {
UpdateUinfoReq uinfoReq = new UpdateUinfoReq();
uinfoReq.setAccid(userId+"");
if(StringUtils.isNotEmpty(avatar)){
String cosDomain = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
uinfoReq.setIcon(cosDomain + avatar);
}
if(StringUtils.isNotBlank(nickname)){
uinfoReq.setName(nickname);
}
YxCommonR r = userRefClient.updateUinfo(uinfoReq);
if(!r.isSuccess()){
log.error("云信更新失败【updateImInfo】需要检查userId={},avatar={},nickname={} data={}",
userId, avatar, nickname,JSON.toJSONString(r));
}
}catch (Exception e){
log.error("云信调用失败!【updateImInfo】",e);
}
}
}

View File

@@ -54,6 +54,8 @@ public class CurrentUserManager {
private ImUserRefClient userClient; private ImUserRefClient userClient;
@Autowired @Autowired
private CitysService citysService; private CitysService citysService;
@Autowired
private CaiLoginManager loginManager;
public CurrentUserInfoVo currentInfo() { public CurrentUserInfoVo currentInfo() {
Long userId = LoginHelper.getUserId(); Long userId = LoginHelper.getUserId();
@@ -142,9 +144,6 @@ public class CurrentUserManager {
return true; return true;
} }
@Autowired
private CaiLoginManager loginManager;
public boolean userUpdate(UserUpdateReq res) { public boolean userUpdate(UserUpdateReq res) {
res.setUserId(LoginHelper.getUserId()); res.setUserId(LoginHelper.getUserId());
User user = userService.getById(res.getUserId()); User user = userService.getById(res.getUserId());
@@ -179,15 +178,20 @@ public class CurrentUserManager {
if(user.getGender() != 0 && !user.getGender().equals(res.getGender())){ if(user.getGender() != 0 && !user.getGender().equals(res.getGender())){
throw new ServiceException("性别不可以修改"); throw new ServiceException("性别不可以修改");
} }
String cosDomain = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
update.set(User::getGender,genderEnum.getCode()); update.set(User::getGender,genderEnum.getCode());
update.set(User::getAvatar,genderEnum.getDefaultAvatar()); update.set(User::getAvatar,genderEnum.getDefaultAvatar());
uinfoReq.setGender(genderEnum.getCode()+"");
uinfoReq.setIcon(cosDomain + genderEnum.getDefaultAvatar());
updateFlag=true;
updateYunxin=true;
} }
if(res.getCityId() != null){ if(res.getCityId() != null){
update.set(User::getCityId,res.getCityId()); update.set(User::getCityId,res.getCityId());
update.set(User::getCity,citysService.getByCityId(res.getCityId())); update.set(User::getCity,citysService.getByCityId(res.getCityId()));
updateFlag=true; updateFlag=true;
} }
if(StringUtils.isNotEmpty(res.getAvatar())){ /*if(StringUtils.isNotEmpty(res.getAvatar())){
if(!GenderEnum.checkDefaultAvatar(res.getAvatar())){ if(!GenderEnum.checkDefaultAvatar(res.getAvatar())){
update.set(User::getAvatar,res.getAvatar()); update.set(User::getAvatar,res.getAvatar());
update.set(User::getAvatarState,1); update.set(User::getAvatarState,1);
@@ -195,7 +199,7 @@ public class CurrentUserManager {
// updateYunxin=true; // updateYunxin=true;
updateFlag=true; updateFlag=true;
} }
} }*/
if(updateFlag){ if(updateFlag){
boolean flag = userService.update(update); boolean flag = userService.update(update);
if(flag){ if(flag){

View File

@@ -103,7 +103,7 @@ public class UserGreetServiceImpl extends ServiceImpl<UserGreetMapper,UserGreet>
if(userGreet == null || !userGreet.getUserId().equals(userId)){ if(userGreet == null || !userGreet.getUserId().equals(userId)){
throw new ServiceException("请选择打招呼内容"); throw new ServiceException("请选择打招呼内容");
} }
if(AuditStatusEnum.SUCCESS.getCode().equals(userGreet.getAuditStatus())){ if(!AuditStatusEnum.SUCCESS.getCode().equals(userGreet.getAuditStatus())){
throw new ServiceException("内容未通过审核"); throw new ServiceException("内容未通过审核");
} }
String lockKey = LockManager.getSendGreetLock(userId); String lockKey = LockManager.getSendGreetLock(userId);

View File

@@ -1,6 +1,5 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -8,16 +7,12 @@ import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserPictureAudit; import com.ruoyi.cai.domain.UserPictureAudit;
import com.ruoyi.cai.dto.admin.vo.user.UserPictureAuditAdminVo; import com.ruoyi.cai.dto.admin.vo.user.UserPictureAuditAdminVo;
import com.ruoyi.cai.enums.AuditStatusEnum; import com.ruoyi.cai.enums.AuditStatusEnum;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.im.ImManager;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.UserPictureAuditMapper; import com.ruoyi.cai.mapper.UserPictureAuditMapper;
import com.ruoyi.cai.service.AnchorApplyService; import com.ruoyi.cai.service.AnchorApplyService;
import com.ruoyi.cai.service.UserPictureAuditService; import com.ruoyi.cai.service.UserPictureAuditService;
import com.ruoyi.cai.service.UserService; import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.yunxin.client.ImUserRefClient;
import com.ruoyi.yunxin.req.UpdateUinfoReq;
import com.ruoyi.yunxin.resp.YxCommonR;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -38,9 +33,9 @@ public class UserPictureAuditServiceImpl extends ServiceImpl<UserPictureAuditMap
@Autowired @Autowired
private AnchorApplyService anchorApplyService; private AnchorApplyService anchorApplyService;
@Autowired @Autowired
private SystemConfigManager systemConfigManager; private ImManager imManager;
@Autowired @Autowired
private ImUserRefClient userRefClient; private UserService userService;
@Override @Override
public UserPictureAudit getOneUserAuditRunningPic(Integer type, Long userId) { public UserPictureAudit getOneUserAuditRunningPic(Integer type, Long userId) {
@@ -56,9 +51,6 @@ public class UserPictureAuditServiceImpl extends ServiceImpl<UserPictureAuditMap
return baseMapper.pageAdmin(pageQuery.build(),bo); return baseMapper.pageAdmin(pageQuery.build(),bo);
} }
@Autowired
private UserService userService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void auditSuccess(Long id) { public void auditSuccess(Long id) {
@@ -73,18 +65,7 @@ public class UserPictureAuditServiceImpl extends ServiceImpl<UserPictureAuditMap
.eq(User::getId, userPictureAudit.getUserId()) .eq(User::getId, userPictureAudit.getUserId())
.set(User::getAvatar, userPictureAudit.getUrl()) .set(User::getAvatar, userPictureAudit.getUrl())
.set(User::getAvatarState, 1)); .set(User::getAvatarState, 1));
try { imManager.updateImInfo(userPictureAudit.getUserId(), userPictureAudit.getUrl(), null);
String cosDomain = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
UpdateUinfoReq uinfoReq = new UpdateUinfoReq();
uinfoReq.setAccid(userPictureAudit.getUserId()+"");
uinfoReq.setIcon(cosDomain + userPictureAudit.getUrl());
YxCommonR r = userRefClient.updateUinfo(uinfoReq);
if(!r.isSuccess()){
log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r));
}
}catch (Exception e){
log.error("云信调用失败!",e);
}
try { try {
anchorApplyService.checkAnchorAuto(userPictureAudit.getUserId()); anchorApplyService.checkAnchorAuto(userPictureAudit.getUserId());
}catch (Exception e){ }catch (Exception e){

View File

@@ -14,6 +14,7 @@ import com.ruoyi.cai.dto.app.query.index.UserQuery;
import com.ruoyi.cai.dto.app.vo.user.*; import com.ruoyi.cai.dto.app.vo.user.*;
import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.enums.GenderEnum;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.im.ImManager;
import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.UserMapper; import com.ruoyi.cai.mapper.UserMapper;
import com.ruoyi.cai.notice.YunxinHttpService; import com.ruoyi.cai.notice.YunxinHttpService;
@@ -84,7 +85,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Autowired @Autowired
private UserBlacklistService userBlacklistService; private UserBlacklistService userBlacklistService;
@Autowired @Autowired
private SystemConfigManager systemConfigManager; private ImManager imManager;
@Autowired
private YunxinHttpService yunxinHttpService;
@Override @Override
public User getByUsername(String username) { public User getByUsername(String username) {
@@ -275,11 +278,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
return true; return true;
} }
@Resource
private ImUserRefClient userRefClient;
@Autowired
private YunxinHttpService yunxinHttpService;
@Override @Override
public void resetNickname(Long id){ public void resetNickname(Long id){
User user = this.getById(id); User user = this.getById(id);
@@ -292,13 +290,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if(!update){ if(!update){
return; return;
} }
UpdateUinfoReq uinfoReq = new UpdateUinfoReq(); imManager.updateImInfo(user.getId(), null, "用户" + user.getUsercode());
uinfoReq.setAccid(user.getId()+"");
uinfoReq.setName("用户"+user.getUsercode());
YxCommonR r = userRefClient.updateUinfo(uinfoReq);
if(!r.isSuccess()){
log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r));
}
yunxinHttpService.nickAuditMessage(id); yunxinHttpService.nickAuditMessage(id);
} }
@@ -313,18 +305,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if(genderEnum == null){ if(genderEnum == null){
return; return;
} }
String cosDomain = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
this.update(Wrappers.lambdaUpdate(User.class) this.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId,user.getId()) .eq(User::getId,user.getId())
.set(User::getAvatar,genderEnum.getDefaultAvatar()) .set(User::getAvatar,genderEnum.getDefaultAvatar())
.set(User::getAvatarState, 0)); .set(User::getAvatarState, 0));
UpdateUinfoReq uinfoReq = new UpdateUinfoReq(); imManager.updateImInfo(user.getId(), genderEnum.getDefaultAvatar(), null);
uinfoReq.setAccid(user.getId()+"");
uinfoReq.setIcon(cosDomain + genderEnum.getDefaultAvatar());
YxCommonR r = userRefClient.updateUinfo(uinfoReq);
if(!r.isSuccess()){
log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r));
}
} }
@Override @Override

View File

@@ -50,7 +50,7 @@ public class Yunxin {
public YxDataR<YxCommonR> batchSendToNotice(List<Long> toUid, Object data){ public YxDataR<YxCommonR> batchSendToNotice(List<Long> toUid, Object data){
SendBatchMsgReq req = new SendBatchMsgReq(); SendBatchMsgReq req = new SendBatchMsgReq();
req.setFromAccid(SYS_NOTICE_ID); req.setFromAccid(SYS_NOTICE_ID);
req.setToAccids(toUid.stream().map(i -> String.valueOf(toUid)).collect(Collectors.toList())); req.setToAccids(toUid.stream().map(String::valueOf).collect(Collectors.toList()));
req.setBody(JSON.toJSONString(data)); req.setBody(JSON.toJSONString(data));
req.setOption(JSON.toJSONString(new Option())); req.setOption(JSON.toJSONString(new Option()));
req.setType(100); req.setType(100);
@@ -60,7 +60,7 @@ public class Yunxin {
public YxDataR<YxCommonR> batchSendToNotice(List<Long> toUid, Object body, Option option, YxImTypeEnum type){ public YxDataR<YxCommonR> batchSendToNotice(List<Long> toUid, Object body, Option option, YxImTypeEnum type){
SendBatchMsgReq req = new SendBatchMsgReq(); SendBatchMsgReq req = new SendBatchMsgReq();
req.setFromAccid(SYS_NOTICE_ID); req.setFromAccid(SYS_NOTICE_ID);
req.setToAccids(toUid.stream().map(i -> String.valueOf(toUid)).collect(Collectors.toList())); req.setToAccids(toUid.stream().map(String::valueOf).collect(Collectors.toList()));
req.setBody(JSON.toJSONString(body)); req.setBody(JSON.toJSONString(body));
if(option != null){ if(option != null){
req.setOption(JSON.toJSONString(new Option())); req.setOption(JSON.toJSONString(new Option()));
@@ -86,7 +86,7 @@ public class Yunxin {
public YxDataR<YxCommonR> batchSendToTextMessage(Long fromUid, List<Long> toUid, String data){ public YxDataR<YxCommonR> batchSendToTextMessage(Long fromUid, List<Long> toUid, String data){
SendBatchMsgReq req = new SendBatchMsgReq(); SendBatchMsgReq req = new SendBatchMsgReq();
req.setFromAccid(fromUid+""); req.setFromAccid(fromUid+"");
req.setToAccids(toUid.stream().map(i -> String.valueOf(toUid)).collect(Collectors.toList())); req.setToAccids(toUid.stream().map(String::valueOf).collect(Collectors.toList()));
req.setBody(JSON.toJSONString(new YxTextData(data))); req.setBody(JSON.toJSONString(new YxTextData(data)));
return messageClient.sendBatchMsg(req); return messageClient.sendBatchMsg(req);
} }