diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApi.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApi.java index 3b58773..591349d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApi.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApi.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.client.service; -import cn.iocoder.yudao.module.member.client.vo.*; +import cn.iocoder.yudao.module.member.client.vo.friend.ChatAddFriendReqVo; +import cn.iocoder.yudao.module.member.client.vo.user.*; import javax.validation.Valid; @@ -21,4 +22,9 @@ public interface ChatApi { */ ChatGetUserByUserIdRespVo getUserByUserId(@Valid ChatGetUserByUserIdReqVo dto); + /** + * 添加好友 + */ + boolean addFriend(@Valid ChatAddFriendReqVo dto); + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApiImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApiImpl.java index 8254807..694b5f7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApiImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/service/ChatApiImpl.java @@ -5,8 +5,9 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.module.member.client.tool.ChatApiTool; -import cn.iocoder.yudao.module.member.client.vo.*; -import cn.iocoder.yudao.module.member.client.vo.base.ChatBaseRespVo; +import cn.iocoder.yudao.module.member.client.vo.ChatBaseRespVo; +import cn.iocoder.yudao.module.member.client.vo.friend.ChatAddFriendReqVo; +import cn.iocoder.yudao.module.member.client.vo.user.*; import cn.iocoder.yudao.module.member.framework.web.config.ChatProperties; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; @@ -114,6 +115,33 @@ public class ChatApiImpl implements ChatApi { } } + /** + * 添加好友 + */ + @Override + public boolean addFriend(ChatAddFriendReqVo dto) { + ChatApiTool.API api = setApiConfig(ChatApiTool.FRIEND_ADD); + try { + String body = JSONUtil.toJsonStr(dto); + String res = HttpRequest.post(api.getFullPath()).header(apiCountersign(body)).body(body).execute().body(); + log.debug("添加好友,res:{}", res); + if (ObjectUtil.isEmpty(res)) { + log.error("添加好友,res为空"); + return false; + } + ChatBaseRespVo baseRes = JSONUtil.toBean(res, ChatBaseRespVo.class); + if (ObjectUtil.isEmpty(baseRes) || !baseRes.isSuccess()) { + log.error("添加好友,返回错误"); + return false; + } + return true; + } catch (Exception e) { + e.printStackTrace(); + log.error("添加好友,意外的错误", e); + return false; + } + } + private ChatApiTool.API setApiConfig(ChatApiTool.API api) { if (ObjectUtil.isNotEmpty(api)) { api.setHost(chatProperties.getBaseUrl()); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/tool/ChatApiTool.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/tool/ChatApiTool.java index 163672d..542d76a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/tool/ChatApiTool.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/tool/ChatApiTool.java @@ -21,6 +21,8 @@ public class ChatApiTool { public static final API USER_GET = API.builder().summary("根据userId查询用户详情").url("/third/user/getUserByUserId").method(HttpMethod.POST).build(); public static final API USER_SAVE_OR_UPDATE = API.builder().summary("创建或者更新用户").url("/third/user/createOrUpdate").method(HttpMethod.POST).build(); + public static final API FRIEND_ADD = API.builder().summary("添加好友").url("/third/friend/add").method(HttpMethod.POST).build(); + @Data @Builder @AllArgsConstructor @@ -61,7 +63,5 @@ public class ChatApiTool { fullPath = apiPath; return apiPath; } - } - } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/base/ChatBaseRespVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatBaseRespVo.java similarity index 82% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/base/ChatBaseRespVo.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatBaseRespVo.java index 6eed57e..6a90bd3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/base/ChatBaseRespVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatBaseRespVo.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.client.vo.base; +package cn.iocoder.yudao.module.member.client.vo; import cn.hutool.core.util.ObjUtil; import lombok.Data; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/friend/ChatAddFriendReqVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/friend/ChatAddFriendReqVo.java new file mode 100644 index 0000000..7420c62 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/friend/ChatAddFriendReqVo.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.member.client.vo.friend; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@Schema(description = "chat添加好友req") +public class ChatAddFriendReqVo { + + @NotNull(message = "用户id不存在") + @Schema(description = "用户id") + private Long userId; + + @NotNull(message = "被加用户id不存在") + @Schema(description = "被加用户id") + private Long targetUserId; + + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatCreateOrUpdateUserReqVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatCreateOrUpdateUserReqVo.java similarity index 94% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatCreateOrUpdateUserReqVo.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatCreateOrUpdateUserReqVo.java index b606185..17593c3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatCreateOrUpdateUserReqVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatCreateOrUpdateUserReqVo.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.client.vo; +package cn.iocoder.yudao.module.member.client.vo.user; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatGetUserByUserIdReqVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatGetUserByUserIdReqVo.java similarity index 86% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatGetUserByUserIdReqVo.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatGetUserByUserIdReqVo.java index a2a22b6..3e4280e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatGetUserByUserIdReqVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatGetUserByUserIdReqVo.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.client.vo; +package cn.iocoder.yudao.module.member.client.vo.user; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatGetUserByUserIdRespVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatGetUserByUserIdRespVo.java similarity index 96% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatGetUserByUserIdRespVo.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatGetUserByUserIdRespVo.java index 4d19640..9e82850 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatGetUserByUserIdRespVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatGetUserByUserIdRespVo.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.client.vo; +package cn.iocoder.yudao.module.member.client.vo.user; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatLoginReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatLoginReqVO.java similarity index 92% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatLoginReqVO.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatLoginReqVO.java index 9231a41..a4a0c47 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatLoginReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatLoginReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.client.vo; +package cn.iocoder.yudao.module.member.client.vo.user; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatLoginRespVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatLoginRespVo.java similarity index 91% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatLoginRespVo.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatLoginRespVo.java index f9bb145..b1701b5 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/ChatLoginRespVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/client/vo/user/ChatLoginRespVo.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.client.vo; +package cn.iocoder.yudao.module.member.client.vo.user; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/chat/AppMemeberChatController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/chat/AppMemeberChatController.java new file mode 100644 index 0000000..d3ea4b2 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/chat/AppMemeberChatController.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.member.controller.app.chat; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.member.client.service.ChatApi; +import cn.iocoder.yudao.module.member.client.vo.friend.ChatAddFriendReqVo; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "用户 App - 聊天相关") +@RestController +@RequestMapping("/member/chat") +@Validated +public class AppMemeberChatController { + + @Resource + private ChatApi chatApi; + + @GetMapping("/add-friend") + @Operation(summary = "创建用户反馈") + public CommonResult createFeedback(@RequestParam("friendUserId") Long friendUserId) { + ChatAddFriendReqVo createReqVO = new ChatAddFriendReqVo(); + createReqVO.setUserId(getLoginUserId()); + createReqVO.setTargetUserId(friendUserId); + return success(chatApi.addFriend(createReqVO)); + } + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java index c0c493c..92bae82 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java @@ -14,7 +14,7 @@ import javax.validation.Valid; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Tag(name = "管理后台 - 用户认证") +@Tag(name = "用户 App - 用户认证") @RestController @RequestMapping("/member/com-auth") @Validated diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java index 46335ea..eda5358 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.controller.app.user; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.member.client.service.ChatApi; import cn.iocoder.yudao.module.member.controller.app.user.vo.*; import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java index 62be8b1..a841eba 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java @@ -9,13 +9,11 @@ import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; import cn.iocoder.yudao.module.member.client.service.ChatApi; -import cn.iocoder.yudao.module.member.client.vo.ChatCreateOrUpdateUserReqVo; -import cn.iocoder.yudao.module.member.client.vo.ChatLoginReqVO; -import cn.iocoder.yudao.module.member.client.vo.ChatLoginRespVo; +import cn.iocoder.yudao.module.member.client.vo.user.ChatLoginReqVO; +import cn.iocoder.yudao.module.member.client.vo.user.ChatLoginRespVo; import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; import cn.iocoder.yudao.module.member.convert.auth.AuthConvert; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; -import cn.iocoder.yudao.module.member.enums.MemberErrorCode; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.system.api.logger.LoginLogApi; import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index b189db8..043184f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.client.service.ChatApi; -import cn.iocoder.yudao.module.member.client.vo.ChatCreateOrUpdateUserReqVo; +import cn.iocoder.yudao.module.member.client.vo.user.ChatCreateOrUpdateUserReqVo; import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.*; @@ -20,7 +20,6 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.photo.PhotoMapper; import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; import cn.iocoder.yudao.module.member.enums.photo.PhotoBizTypeEnum; -import cn.iocoder.yudao.module.member.enums.photo.PhotoResourceTypeEnum; import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer; import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; @@ -40,7 +39,6 @@ import javax.validation.Valid; import java.time.LocalDateTime; import java.util.Collection; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;