Commit 1305aa8a by 罗长华

sdk增加modifyUser,调整部分代码

parent 92d88341
......@@ -21,5 +21,10 @@ public class ResourcePathConstants {
*/
public static final String GET_TOKEN_URL = "/api/token/getToken";
/**
* 修改用户
*/
public static final String MODIFY_USER_URL = "/api/user/modifyUser";
}
......@@ -34,4 +34,16 @@ public interface WecloudIm {
*/
Token getToken(Long userId, Integer deviceType);
/**
* 修改用户
* @Author luozh
* @Date 2022年04月18日 03:29:52
* @param userId 用户id
* @param nickname 昵称
* @param headPortrait 头像
* @Return
*/
Boolean modifyUser(Long userId, String nickname, String headPortrait);
}
......@@ -5,6 +5,7 @@ import java.net.URL;
import com.wecloud.im.sdk.internal.WecloudImClientOperation;
import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.ImClient;
import com.wecloud.im.sdk.model.ModifyUserRequest;
import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.Token;
......@@ -58,6 +59,14 @@ public class WecloudImClient implements WecloudIm {
return imClientOperation.getToken(clientLoginRequest);
}
@Override
public Boolean modifyUser(Long userId, String nickname, String headPortrait) {
ModifyUserRequest modifyUserRequest =
ModifyUserRequest.builder().userId(userId).nickname(nickname).headPortrait(headPortrait).build();
return imClientOperation.modifyUser(modifyUserRequest);
}
private void initOperations() {
this.imClientOperation = new WecloudImClientOperation(apiDomain, appKey, appSecret);
}
......
......@@ -3,6 +3,7 @@ package com.wecloud.im.sdk.internal;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
......@@ -10,11 +11,14 @@ import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.ImClient;
import com.wecloud.im.sdk.model.ModifyUserRequest;
import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.Token;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_TOKEN_URL;
import static com.wecloud.im.sdk.ResourcePathConstants.MODIFY_USER_URL;
import static com.wecloud.im.sdk.ResourcePathConstants.REGISTER_CLIENT_URL;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotBlank;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
/**
......@@ -42,10 +46,9 @@ public class WecloudImClientOperation extends WecloudImOperation {
assertParameterNotNull(userId, "userId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("appKey", appKey);
param.put("userId", registerClientRequest.getUserId() + "");
param.put("headPortrait", registerClientRequest.getHeadPortrait());
param.put("nickname", registerClientRequest.getNickname());
param.put("headPortrait", Optional.ofNullable(registerClientRequest.getHeadPortrait()).orElse(""));
param.put("nickname", Optional.ofNullable(registerClientRequest.getNickname()).orElse(""));
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(REGISTER_CLIENT_URL)
.setMethod(HttpMethod.POST).setParameters(param)
......@@ -82,7 +85,35 @@ public class WecloudImClientOperation extends WecloudImOperation {
JSONObject result = doOperation(request);
Token token = JSON.parseObject(result.toJSONString(), Token.class);
return token;
}
/**
* 修改用户
* @Author luozh
* @Date 2022年04月18日 03:31:04
* @param modifyUserRequest
* @Return
*/
public Boolean modifyUser(ModifyUserRequest modifyUserRequest) {
Long userId = modifyUserRequest.getUserId();
String headPortrait = modifyUserRequest.getHeadPortrait();
String nickname = modifyUserRequest.getNickname();
// 参数校验
assertParameterNotNull(userId, "userId");
assertParameterNotBlank(headPortrait, "headPortrait");
assertParameterNotBlank(nickname, "headPortrait");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("userId", userId + "");
param.put("headPortrait", headPortrait);
param.put("nickname", nickname);
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(MODIFY_USER_URL)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(modifyUserRequest).build();
JSONObject result = doOperation(request);
Boolean flag = JSON.parseObject(result.toJSONString(), Boolean.class);
return flag;
}
}
......@@ -4,10 +4,7 @@ import okhttp3.Response;
import java.net.URL;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
......@@ -57,14 +54,9 @@ public abstract class WecloudImOperation {
private JSONObject send(RequestMessage request) {
try {
// 组装请求
Map<String, Object> parameters = BeanUtil.beanToMap(request.getOriginalRequest(), false, true);
Map<String, String> finalParameters = new HashMap<>();
parameters.forEach((k, v) -> {
finalParameters.put(k, v.toString());
});
URL endpoint = new URL(apiDomain, request.getEndpoint());
HttpClient httpClient =
HttpClient.builder().url(endpoint).addHeaders(request.getHeaders()).addParams(request.getParameters()).addParams(finalParameters);
HttpClient.builder().url(endpoint).addHeaders(request.getHeaders()).addParams(request.getParameters());
if (HttpMethod.POST.equals(request.getMethod())) {
httpClient.post(true);
......
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 修改用户请求参数
* @Author luozh
* @Date 2022年04月18日 15:25
* @Version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
public class ModifyUserRequest extends WebServiceRequest {
/**
* userId
*/
private Long userId;
/**
* 昵称
*/
private String nickname;
/**
* 头像url
*/
private String headPortrait;
}
package com.wecloud.im.sdk.sample;
import com.alibaba.fastjson.JSONObject;
import com.wecloud.im.sdk.WecloudIm;
import com.wecloud.im.sdk.WecloudImClientBuilder;
/**
*
* @Author luozh
* @Date 2022年04月18日 13:38
* @Version 1.0
*/
public class ModifySample {
public static void main(String[] args) {
WecloudIm im = new WecloudImClientBuilder().build("http://127.0.0.1:8082",
"QizKVHcILRWp6Td2",
"287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737");
Long userId = 20220413001L;
String headPortrait = "http://123";
String nickname = "luo_test2";
Boolean result = im.modifyUser(userId, nickname, headPortrait);
System.out.println("\t modify user result=" + JSONObject.toJSONString(result));
}
}
......@@ -14,4 +14,10 @@ public class CodingUtils {
}
}
public static void assertParameterNotBlank(String param, String paramName) {
if (param == null || "".equals(param)) {
throw new NullPointerException("参数:" + paramName + " 不能为空");
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment