feat: (REQ-3057) 加上群聊创建/投诉的api/controller

This commit is contained in:
xudawei 2024-11-05 09:24:41 +08:00
parent 3004829404
commit 75771d49e7
8 changed files with 237 additions and 0 deletions

View File

@ -0,0 +1,27 @@
package cn.axzo.im.center.api.feign;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.im.center.api.vo.req.ChatGroupCreateReq;
import cn.axzo.im.center.api.vo.resp.ChatGroupCreateResp;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 群聊
*
* @author xudawei@axzo.cn
* @date 2024/11/04
*/
@FeignClient(name = "im-center", url = "${axzo.service.im-center:http://im-center:8080}")
public interface ChatGroupApi {
/**
* 创建群聊
*/
@PostMapping("api/im/chat/group/create")
ApiResult<ChatGroupCreateResp> chatGroupCreate(@RequestBody @Validated ChatGroupCreateReq chatGroupCreateReq);
}

View File

@ -0,0 +1,26 @@
package cn.axzo.im.center.api.feign;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.im.center.api.vo.req.ChatGroupCreateReq;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 投诉
*
* @author xudawei@axzo.cn
* @date 2024/11/04
*/
@FeignClient(name = "im-center", url = "${axzo.service.im-center:http://im-center:8080}")
public interface ComplaintApi {
/**
* 投诉
*/
@PostMapping("api/im/complaint/create")
ApiResult<Void> complaintCreate(@RequestBody @Validated ChatGroupCreateReq chatGroupCreateReq);
}

View File

@ -0,0 +1,46 @@
package cn.axzo.im.center.api.vo.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* 群聊创建请求
* @author xudawei
* @date 2024/11/04
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChatGroupCreateReq {
/**
* 群组名称最大长度为 128 字符
*/
@NotNull(message = "群组名称不能为空")
private String groupName;
/**
* 群主账号accid最大长度 32 位字符
*/
@NotNull(message = "群主账号不能为空")
private String owner;
/**
* 邀请的群成员列表\["aaa","bbb"\](JSONArray 对应的 accid如果解析出错会报 414)
* members owner 总和上限为 200members 中无需再加 owner 自己的账号
*/
@NotNull(message = "邀请的群成员列表不能为空")
private String members;
/**
* 群组头像的 URL最大长度为 1024 字符
*/
@NotNull(message = "群组头像的 URL最大长度为 1024 字符。")
private String icon;
}

View File

@ -0,0 +1,38 @@
package cn.axzo.im.center.api.vo.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* 投诉
* @author xudawei
* @date 2024/11/04
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ComplaintCreateReq {
/**
* 投诉内容
*/
@NotNull(message = "投诉内容不能为空")
private String complaintContent;
/**
* 类型私聊:private,群聊:group
*/
@NotNull(message = "类型不能为空")
private String type;
/**
* 群聊Id或者IM账号Id根据type而订
*/
@NotNull(message = "群聊Id或者IM账号Id,不能为空")
private String t_acc_id;
}

View File

@ -0,0 +1,24 @@
package cn.axzo.im.center.api.vo.resp;
import com.alibaba.fastjson.JSONArray;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 创建群聊
* @author xudawei@axzo.cn
* @date 2024/11/04
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChatGroupCreateResp {
private String tid;
private JSONArray faccid;
}

View File

@ -0,0 +1,24 @@
package cn.axzo.im.center.api.vo.resp;
import com.alibaba.fastjson.JSONArray;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 投诉
* @author xudawei@axzo.cn
* @date 2024/11/04
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ComplaintCreateResp {
private String tid;
private JSONArray faccid;
}

View File

@ -0,0 +1,25 @@
package cn.axzo.im.controller;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.im.center.api.feign.ChatGroupApi;
import cn.axzo.im.center.api.vo.req.ChatGroupCreateReq;
import cn.axzo.im.center.api.vo.resp.ChatGroupCreateResp;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;
/**
* 群聊
* @author xudawei@axzo.cn
* @date 2024/11/04
*/
@Slf4j
@RestController
@RequiredArgsConstructor
public class ChatGroupController implements ChatGroupApi {
@Override
public ApiResult<ChatGroupCreateResp> chatGroupCreate(ChatGroupCreateReq chatGroupCreateReq) {
return null;
}
}

View File

@ -0,0 +1,27 @@
package cn.axzo.im.controller;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.im.center.api.feign.ChatGroupApi;
import cn.axzo.im.center.api.feign.ComplaintApi;
import cn.axzo.im.center.api.vo.req.ChatGroupCreateReq;
import cn.axzo.im.center.api.vo.resp.ChatGroupCreateResp;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;
/**
* 投诉
* @author xudawei@axzo.cn
* @date 2024/11/04
*/
@Slf4j
@RestController
@RequiredArgsConstructor
public class ComplaintController implements ComplaintApi {
@Override
public ApiResult<Void> complaintCreate(ChatGroupCreateReq chatGroupCreateReq) {
return null;
}
}