init
This commit is contained in:
@@ -20,7 +20,7 @@ public class UserStarListVo {
|
||||
@Schema(description = "生日-缩减显示")
|
||||
private String birthdayStr;
|
||||
@Schema(description = "居住城市")
|
||||
private String residenceCity;
|
||||
private String residenceCityName;
|
||||
@Schema(description = "学历")
|
||||
private Integer education;
|
||||
@Schema(description = "职业")
|
||||
|
||||
@@ -4,11 +4,12 @@ import com.ruoyi.xq.enums.common.CodeEnum;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class SmsCodeReq {
|
||||
|
||||
@NotEmpty(message = "参数异常")
|
||||
@NotNull(message = "参数异常")
|
||||
private CodeEnum smsType;
|
||||
@NotEmpty(message = "手机号不能为空")
|
||||
private String mobile;
|
||||
|
||||
89
ruoyi-xq/src/main/java/com/ruoyi/xq/im/ImOp.java
Normal file
89
ruoyi-xq/src/main/java/com/ruoyi/xq/im/ImOp.java
Normal file
@@ -0,0 +1,89 @@
|
||||
package com.ruoyi.xq.im;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.manager.ImManager;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.yunxin.client.ImUserClient;
|
||||
import com.ruoyi.yunxin.req.CreateUserReq;
|
||||
import com.ruoyi.yunxin.req.UpdateTokenReq;
|
||||
import com.ruoyi.yunxin.resp.YxCommonR;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ImOp {
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Autowired
|
||||
private ImUserClient imUserClient;
|
||||
|
||||
@Autowired
|
||||
private ImManager imManager;
|
||||
|
||||
|
||||
public void refreshImToken(String usercode){
|
||||
User user = userService.getByUsercode(usercode);
|
||||
if(user == null){
|
||||
throw new ServiceException("用户不存在");
|
||||
}
|
||||
String imToken = IdUtil.simpleUUID();
|
||||
userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getImToken, imToken));
|
||||
this.register(user.getId(),imToken,user.getNickname());
|
||||
imManager.updateImInfo(user.getId(),user.getAvatar(),user.getNickname(),user.getGender());
|
||||
LoginHelper.logoutApp(user.getId());
|
||||
}
|
||||
|
||||
public void refreshImNoSaveToken(){
|
||||
List<User> list = userService.list();
|
||||
for (User user : list) {
|
||||
this.register(user.getId(),user.getImToken(),user.getNickname());
|
||||
imManager.updateImInfo(user.getId(),user.getAvatar(),user.getNickname(),user.getGender());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void refreshIm(){
|
||||
List<User> list = userService.list();
|
||||
for (User user : list) {
|
||||
String imToken = IdUtil.simpleUUID();
|
||||
userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getImToken, imToken));
|
||||
this.register(user.getId(),imToken,user.getNickname());
|
||||
imManager.updateImInfo(user.getId(),user.getAvatar(),user.getNickname(),user.getGender());
|
||||
LoginHelper.logoutApp(user.getId());
|
||||
}
|
||||
}
|
||||
|
||||
public void register(Long userId,String token,String nickname){
|
||||
CreateUserReq req = new CreateUserReq();
|
||||
req.setAccid(userId+"");
|
||||
req.setToken(token);
|
||||
req.setName(nickname);
|
||||
YxCommonR r = imUserClient.createUser(req);
|
||||
if(!r.isSuccess()){
|
||||
if(r.getCode() == 414){
|
||||
UpdateTokenReq req1 = new UpdateTokenReq();
|
||||
req1.setAccid(userId+"");
|
||||
req1.setToken(token);
|
||||
YxCommonR commonR = imUserClient.updateToken(req1);
|
||||
if(!commonR.isSuccess()){
|
||||
log.error("刷新云token失败,{}", JSON.toJSONString(commonR));
|
||||
throw new ServiceException("注册失败,云信异常");
|
||||
}
|
||||
}else{
|
||||
log.error("创建云信账号失败,{}", JSON.toJSONString(r));
|
||||
throw new ServiceException("注册失败,云信异常");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +1,30 @@
|
||||
package com.ruoyi.xq.manager;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.github.houbb.sensitive.word.bs.SensitiveWordBs;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.UserChatRecord;
|
||||
import com.ruoyi.xq.domain.UserVip;
|
||||
import com.ruoyi.xq.dto.app.im.ImMessageDTO;
|
||||
import com.ruoyi.xq.dto.app.im.ImResp;
|
||||
import com.ruoyi.xq.enums.ErrorEnum;
|
||||
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
||||
import com.ruoyi.xq.service.UserChatFilterService;
|
||||
import com.ruoyi.xq.service.UserChatRecordService;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.xq.service.UserVipService;
|
||||
import com.ruoyi.yunxin.client.ImUserRefClient;
|
||||
import com.ruoyi.yunxin.enums.YxImTypeEnum;
|
||||
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;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ImManager {
|
||||
@@ -31,6 +39,10 @@ public class ImManager {
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private UserVipService userVipService;
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Resource
|
||||
private ImUserRefClient userRefClient;
|
||||
|
||||
public ImResp sendMessage(ImMessageDTO message) {
|
||||
Long fromUserId = message.getFromUserId();
|
||||
@@ -101,4 +113,37 @@ public class ImManager {
|
||||
}
|
||||
|
||||
|
||||
public void updateImInfo(Long userId, String avatar, String nickname, Integer gender) {
|
||||
if(userId == null){
|
||||
return;
|
||||
}
|
||||
if(StringUtils.isBlank(avatar) && StringUtils.isBlank(nickname) && gender == null){
|
||||
return;
|
||||
}
|
||||
try {
|
||||
UpdateUinfoReq uinfoReq = new UpdateUinfoReq();
|
||||
uinfoReq.setAccid(userId+"");
|
||||
if(StringUtils.isNotBlank(avatar)){
|
||||
String icon = avatar;
|
||||
if(!avatar.startsWith("http")){
|
||||
String cosDomain = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
|
||||
icon = cosDomain + avatar;
|
||||
}
|
||||
uinfoReq.setIcon(icon);
|
||||
}
|
||||
if(StringUtils.isNotBlank(nickname)){
|
||||
uinfoReq.setName(nickname);
|
||||
}
|
||||
if(gender != null){
|
||||
uinfoReq.setGender(gender+"");
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.UserStar;
|
||||
import com.ruoyi.xq.dto.app.userstar.UserStarQuery;
|
||||
@@ -13,9 +14,12 @@ import com.ruoyi.xq.dto.app.userstar.vo.UserStarListVo;
|
||||
import com.ruoyi.xq.mapper.UserStarMapper;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.xq.service.UserStarService;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户关注Service业务层处理
|
||||
*
|
||||
@@ -65,7 +69,17 @@ public class UserStarServiceImpl extends ServiceImpl<UserStarMapper,UserStar> im
|
||||
if(query.getQueryType() == 1){
|
||||
return baseMapper.selectMyStar(pageQuery.build(),query);
|
||||
}else if(query.getQueryType() == 2){
|
||||
return baseMapper.selectStarMe(pageQuery.build(),query);
|
||||
Long userId = LoginHelper.getUserId();
|
||||
User user = userService.getById(userId);
|
||||
Page<UserStarListVo> page = baseMapper.selectStarMe(pageQuery.build(), query);
|
||||
if(user == null || BooleanUtils.isNotTrue(user.getOpenVip())){
|
||||
List<UserStarListVo> records = page.getRecords();
|
||||
for (UserStarListVo record : records) {
|
||||
record.setUserId(null);
|
||||
record.setNickname("***");
|
||||
}
|
||||
}
|
||||
return page;
|
||||
}else{
|
||||
throw new ServiceException("参数异常");
|
||||
}
|
||||
|
||||
@@ -5,14 +5,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<mapper namespace="com.ruoyi.xq.mapper.UserStarMapper">
|
||||
|
||||
<select id="selectMyStar" resultType="com.ruoyi.xq.dto.app.userstar.vo.UserStarListVo">
|
||||
select t2.id as user_id, t2.avatar, t2.gender, t2.nickname, t2.birthday, t2.residence_city,
|
||||
select t2.id as user_id, t2.avatar, t2.gender, t2.nickname, t2.birthday, t2.residence_city_name,
|
||||
t2.education, t2.profession
|
||||
from xq_user_star t1
|
||||
join xq_user t2 on t1.star_user_id = t2.id
|
||||
where t1.user_id = #{query.userId}
|
||||
</select>
|
||||
<select id="selectStarMe" resultType="com.ruoyi.xq.dto.app.userstar.vo.UserStarListVo">
|
||||
select t2.id as user_id, t2.avatar, t2.gender, t2.nickname, t2.birthday, t2.residence_city,
|
||||
select t2.id as user_id, t2.avatar, t2.gender, t2.nickname, t2.birthday, t2.residence_city_name,
|
||||
t2.education, t2.profession
|
||||
from xq_user_star t1
|
||||
join xq_user t2 on t1.user_id = t2.id
|
||||
|
||||
Reference in New Issue
Block a user