diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/im/ImManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/im/ImManager.java new file mode 100644 index 00000000..d143f3ee --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/im/ImManager.java @@ -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); + } + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java index d93a302c..e090a085 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java @@ -54,6 +54,8 @@ public class CurrentUserManager { private ImUserRefClient userClient; @Autowired private CitysService citysService; + @Autowired + private CaiLoginManager loginManager; public CurrentUserInfoVo currentInfo() { Long userId = LoginHelper.getUserId(); @@ -142,9 +144,6 @@ public class CurrentUserManager { return true; } - @Autowired - private CaiLoginManager loginManager; - public boolean userUpdate(UserUpdateReq res) { res.setUserId(LoginHelper.getUserId()); User user = userService.getById(res.getUserId()); @@ -179,15 +178,20 @@ public class CurrentUserManager { if(user.getGender() != 0 && !user.getGender().equals(res.getGender())){ throw new ServiceException("性别不可以修改"); } + String cosDomain = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN); update.set(User::getGender,genderEnum.getCode()); update.set(User::getAvatar,genderEnum.getDefaultAvatar()); + uinfoReq.setGender(genderEnum.getCode()+""); + uinfoReq.setIcon(cosDomain + genderEnum.getDefaultAvatar()); + updateFlag=true; + updateYunxin=true; } if(res.getCityId() != null){ update.set(User::getCityId,res.getCityId()); update.set(User::getCity,citysService.getByCityId(res.getCityId())); updateFlag=true; } - if(StringUtils.isNotEmpty(res.getAvatar())){ + /*if(StringUtils.isNotEmpty(res.getAvatar())){ if(!GenderEnum.checkDefaultAvatar(res.getAvatar())){ update.set(User::getAvatar,res.getAvatar()); update.set(User::getAvatarState,1); @@ -195,7 +199,7 @@ public class CurrentUserManager { // updateYunxin=true; updateFlag=true; } - } + }*/ if(updateFlag){ boolean flag = userService.update(update); if(flag){ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserGreetServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserGreetServiceImpl.java index c046e987..9cf911b2 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserGreetServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserGreetServiceImpl.java @@ -103,7 +103,7 @@ public class UserGreetServiceImpl extends ServiceImpl if(userGreet == null || !userGreet.getUserId().equals(userId)){ throw new ServiceException("请选择打招呼内容"); } - if(AuditStatusEnum.SUCCESS.getCode().equals(userGreet.getAuditStatus())){ + if(!AuditStatusEnum.SUCCESS.getCode().equals(userGreet.getAuditStatus())){ throw new ServiceException("内容未通过审核"); } String lockKey = LockManager.getSendGreetLock(userId); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserPictureAuditServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserPictureAuditServiceImpl.java index 4c52ba73..78f9b8c1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserPictureAuditServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserPictureAuditServiceImpl.java @@ -1,6 +1,5 @@ package com.ruoyi.cai.service.impl; -import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.dto.admin.vo.user.UserPictureAuditAdminVo; import com.ruoyi.cai.enums.AuditStatusEnum; -import com.ruoyi.cai.enums.SystemConfigEnum; -import com.ruoyi.cai.manager.SystemConfigManager; +import com.ruoyi.cai.im.ImManager; import com.ruoyi.cai.mapper.UserPictureAuditMapper; import com.ruoyi.cai.service.AnchorApplyService; import com.ruoyi.cai.service.UserPictureAuditService; import com.ruoyi.cai.service.UserService; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -38,9 +33,9 @@ public class UserPictureAuditServiceImpl extends ServiceImpl implements Us @Autowired private UserBlacklistService userBlacklistService; @Autowired - private SystemConfigManager systemConfigManager; + private ImManager imManager; + @Autowired + private YunxinHttpService yunxinHttpService; @Override public User getByUsername(String username) { @@ -275,11 +278,6 @@ public class UserServiceImpl extends ServiceImpl implements Us return true; } - @Resource - private ImUserRefClient userRefClient; - @Autowired - private YunxinHttpService yunxinHttpService; - @Override public void resetNickname(Long id){ User user = this.getById(id); @@ -292,13 +290,7 @@ public class UserServiceImpl extends ServiceImpl implements Us if(!update){ return; } - UpdateUinfoReq uinfoReq = new UpdateUinfoReq(); - uinfoReq.setAccid(user.getId()+""); - uinfoReq.setName("用户"+user.getUsercode()); - YxCommonR r = userRefClient.updateUinfo(uinfoReq); - if(!r.isSuccess()){ - log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r)); - } + imManager.updateImInfo(user.getId(), null, "用户" + user.getUsercode()); yunxinHttpService.nickAuditMessage(id); } @@ -313,18 +305,11 @@ public class UserServiceImpl extends ServiceImpl implements Us if(genderEnum == null){ return; } - String cosDomain = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN); this.update(Wrappers.lambdaUpdate(User.class) .eq(User::getId,user.getId()) .set(User::getAvatar,genderEnum.getDefaultAvatar()) .set(User::getAvatarState, 0)); - UpdateUinfoReq uinfoReq = new UpdateUinfoReq(); - uinfoReq.setAccid(user.getId()+""); - uinfoReq.setIcon(cosDomain + genderEnum.getDefaultAvatar()); - YxCommonR r = userRefClient.updateUinfo(uinfoReq); - if(!r.isSuccess()){ - log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r)); - } + imManager.updateImInfo(user.getId(), genderEnum.getDefaultAvatar(), null); } @Override diff --git a/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/Yunxin.java b/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/Yunxin.java index d33ea9cd..95740e55 100644 --- a/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/Yunxin.java +++ b/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/Yunxin.java @@ -50,7 +50,7 @@ public class Yunxin { public YxDataR batchSendToNotice(List toUid, Object data){ SendBatchMsgReq req = new SendBatchMsgReq(); 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.setOption(JSON.toJSONString(new Option())); req.setType(100); @@ -60,7 +60,7 @@ public class Yunxin { public YxDataR batchSendToNotice(List toUid, Object body, Option option, YxImTypeEnum type){ SendBatchMsgReq req = new SendBatchMsgReq(); 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)); if(option != null){ req.setOption(JSON.toJSONString(new Option())); @@ -86,7 +86,7 @@ public class Yunxin { public YxDataR batchSendToTextMessage(Long fromUid, List toUid, String data){ SendBatchMsgReq req = new SendBatchMsgReq(); 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))); return messageClient.sendBatchMsg(req); }