|
@@ -1,11 +1,12 @@
|
|
package com.simuwang.daq.service;
|
|
package com.simuwang.daq.service;
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.ListUtil;
|
|
import cn.hutool.core.collection.ListUtil;
|
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
-import com.simuwang.base.pojo.dos.CoreMailFolderDTO;
|
|
|
|
-import com.simuwang.base.pojo.dos.CoreMailLoginParam;
|
|
|
|
|
|
+import com.simuwang.base.pojo.dos.*;
|
|
import com.simuwang.daq.util.HttpClientUtil;
|
|
import com.simuwang.daq.util.HttpClientUtil;
|
|
import jakarta.validation.constraints.NotNull;
|
|
import jakarta.validation.constraints.NotNull;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class CoreMailApiService {
|
|
public class CoreMailApiService {
|
|
@@ -31,7 +33,7 @@ public class CoreMailApiService {
|
|
* @param password 邮箱密码
|
|
* @param password 邮箱密码
|
|
* @return 登录token
|
|
* @return 登录token
|
|
*/
|
|
*/
|
|
- public String login(@NotNull String account, @NotNull String password) {
|
|
|
|
|
|
+ public CoreMailCookieSidDTO login(@NotNull String account, @NotNull String password) {
|
|
String url = coreMailUrl + "/coremail/s/json?func=user:login";
|
|
String url = coreMailUrl + "/coremail/s/json?func=user:login";
|
|
|
|
|
|
CoreMailLoginParam coreMailLoginParam = new CoreMailLoginParam(account, password);
|
|
CoreMailLoginParam coreMailLoginParam = new CoreMailLoginParam(account, password);
|
|
@@ -53,8 +55,11 @@ public class CoreMailApiService {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
JSONObject varJsonObject = jsonObject.get("var") != null ? JSONObject.parseObject(jsonObject.get("var").toString()) : null;
|
|
JSONObject varJsonObject = jsonObject.get("var") != null ? JSONObject.parseObject(jsonObject.get("var").toString()) : null;
|
|
- if (varJsonObject != null && StrUtil.isBlank(varJsonObject.getString("sid"))) {
|
|
|
|
- return varJsonObject.getString("sid");
|
|
|
|
|
|
+ if (varJsonObject != null && StrUtil.isNotBlank(varJsonObject.getString("sid"))) {
|
|
|
|
+ CoreMailCookieSidDTO coreMailCookieSidDTO = new CoreMailCookieSidDTO();
|
|
|
|
+ coreMailCookieSidDTO.setSid(varJsonObject.getString("sid"));
|
|
|
|
+ coreMailCookieSidDTO.setCookie(varJsonObject.getString("Cookie.Coremail"));
|
|
|
|
+ return coreMailCookieSidDTO;
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("用户登录接口异常:{}", ExceptionUtil.stacktraceToString(e));
|
|
log.error("用户登录接口异常:{}", ExceptionUtil.stacktraceToString(e));
|
|
@@ -62,7 +67,58 @@ public class CoreMailApiService {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
- public List<CoreMailFolderDTO> getAllFolders(String token) {
|
|
|
|
|
|
+ public List<CoreMailFolderDTO> getAllFolders(String token, String cookie) {
|
|
|
|
+ String url = coreMailUrl + "/coremail/s/json?func=mbox:getAllFolders&sid=" + token;
|
|
|
|
+ Map<String, String> requestParam = new HashMap<>();
|
|
|
|
+ requestParam.put("Cookie.Coremail", cookie);
|
|
|
|
+ requestParam.put("sid", token);
|
|
|
|
+ CoreMailFolderParam coreMailFolderParam = new CoreMailFolderParam();
|
|
|
|
+ coreMailFolderParam.setCoremail(cookie);
|
|
|
|
+
|
|
|
|
+ Map<String, Object> bodyMap = new HashMap<>();
|
|
|
|
+ bodyMap.put("flush", "ture");
|
|
|
|
+ bodyMap.put("stats", "false");
|
|
|
|
+ bodyMap.put("threads", "false");
|
|
|
|
+ bodyMap.put("order", "name");
|
|
|
|
+ bodyMap.put("Coremail", cookie);
|
|
|
|
+ String bodyParam = JSONObject.toJSONString(bodyMap);
|
|
|
|
+ log.info("获取邮箱文件夹接口请求体 -> url:{}, requestParam:{}, bodyParam:{}", url, requestParam, bodyParam);
|
|
|
|
+ try {
|
|
|
|
+ String resp = HttpUtil.get(url, bodyMap);
|
|
|
|
+ log.info("获取邮箱文件夹接口响应体:{}", resp);
|
|
|
|
+ if (StrUtil.isBlank(resp)) {
|
|
|
|
+ log.warn("获取邮箱文件夹接口返回空响应");
|
|
|
|
+ return CollUtil.newArrayList();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("获取邮箱文件夹接口异常:{}", ExceptionUtil.stacktraceToString(e));
|
|
|
|
+ }
|
|
return ListUtil.toList(new CoreMailFolderDTO(1, "inbox"));
|
|
return ListUtil.toList(new CoreMailFolderDTO(1, "inbox"));
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public List<CoreMailInfoDTO> getFolderMails(String token, Integer folderId) {
|
|
|
|
+ String url = coreMailUrl + "/coremail/s/json?func=mbox:listMessages&sid=" + token;
|
|
|
|
+ Map<String, String> requestParam = new HashMap<>();
|
|
|
|
+ requestParam.put("sid", token);
|
|
|
|
+ CoreMailInfoParam coreMailInfoParam = new CoreMailInfoParam();
|
|
|
|
+ coreMailInfoParam.setFid(folderId);
|
|
|
|
+ coreMailInfoParam.setFilter(new CoreMailInfoParam.FilterCondition("3:", "净值,业绩报酬,规模"));
|
|
|
|
+ String bodyParam = JSONObject.toJSONString(coreMailInfoParam);
|
|
|
|
+ log.info("获取文件夹邮件接口请求体 -> url:{}, requestParam:{}, bodyParam:{}", url, requestParam, bodyParam);
|
|
|
|
+ try {
|
|
|
|
+ String resp = HttpUtil.post(url, bodyParam);
|
|
|
|
+ log.info("获取文件夹邮件接口响应体:{}", resp);
|
|
|
|
+ if (StrUtil.isBlank(resp)) {
|
|
|
|
+ log.warn("获取文件夹邮件接口返回空响应");
|
|
|
|
+ return CollUtil.newArrayList();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+
|
|
|
|
+ log.error("获取文件夹邮件接口异常:{}", ExceptionUtil.stacktraceToString(e));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return CollUtil.newArrayList();
|
|
|
|
+ }
|
|
}
|
|
}
|