NetEasyService.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. package com.uas.eis.serviceImpl;
  2. import com.netease.qiye.qiyeopenplatform.common.constant.ResultEnum;
  3. import com.netease.qiye.qiyeopenplatform.common.dto.open.account.AccountResp;
  4. import com.netease.qiye.qiyeopenplatform.common.dto.open.mailbox.MailBoxUnreadMsgResp;
  5. import com.netease.qiye.qiyeopenplatform.common.dto.open.unit.UnitAccountResp;
  6. import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDK;
  7. import com.netease.qiye.qiyeopenplatform.sdk.dto.Q;
  8. import com.netease.qiye.qiyeopenplatform.sdk.dto.R;
  9. import com.netease.qiye.qiyeopenplatform.sdk.util.CommonUtils;
  10. import com.uas.eis.core.config.NetEasyConfig;
  11. import com.uas.eis.dao.BaseDao;
  12. import com.uas.eis.dto.CreateUnitResp;
  13. import com.uas.eis.dto.GetUnitListDTO;
  14. import com.uas.eis.dto.UpdateEmpReq;
  15. import com.uas.eis.entity.Employee;
  16. import com.uas.eis.entity.HrOrg;
  17. import com.uas.eis.sdk.NetEasySDK;
  18. import com.uas.eis.utils.JacksonUtil;
  19. import com.uas.eis.utils.PinyinUtils;
  20. import com.uas.eis.utils.StringUtil;
  21. import org.slf4j.Logger;
  22. import org.slf4j.LoggerFactory;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.context.annotation.Lazy;
  25. import org.springframework.stereotype.Service;
  26. import org.springframework.util.StringUtils;
  27. import java.util.List;
  28. import java.util.Map;
  29. import java.util.Optional;
  30. @Service
  31. public class NetEasyService {
  32. @Autowired
  33. @Lazy
  34. private NetEasySDK netEasySDK;
  35. @Autowired
  36. private NetEasyConfig netEasyConfig;
  37. @Autowired
  38. private UasSyncService uasSyncService;
  39. @Autowired
  40. private BaseDao baseDao;
  41. private final Logger logger = LoggerFactory.getLogger(getClass());
  42. /**
  43. * 单点登录
  44. * */
  45. public String ssoLogin(String accountName){
  46. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  47. Q q = Q.init(null)
  48. .addParam("domain", netEasyConfig.getDomain())
  49. .addParam("accountName", accountName)
  50. .addParam("pass_2fa", 1)
  51. .addHeader("qiye-sso-auth-token", netEasySDK.getSsoAuthToken());
  52. R<Map> mapR = instanceSDK.commonInvoke(q, "/api/sso/ssoSign");
  53. if (!mapR.getCode().equals(ResultEnum.SUCCESS.getCode())) {
  54. throw new RuntimeException("调用单点登录异常," + mapR.getCode() + ":" + mapR.getMessage());
  55. }
  56. String ssoSign = (String) mapR.getData().get("sign");
  57. String endpoint = (String) mapR.getData().get("endpoint");
  58. String lang = "0";
  59. return endpoint + "?sso_token=" + ssoSign + "&lang=" + lang+"&module=mbox.ListModule%7C%7B%22fid%22%3A1%2C%22order%22%3A%22date%22%2C%22desc%22%3Atrue%7D";
  60. }
  61. /**
  62. * 同步人员资料
  63. * */
  64. public void syncEmployee(){
  65. List<Employee> employeeList = uasSyncService.getNetEasyUserList();
  66. for (Employee employee : employeeList) {
  67. if(StringUtil.hasText(employee.getEm_neteasyid())) {
  68. if(!"离职".equals(employee.getEm_class())) {
  69. updateNetEasyEmployee(employee);
  70. }else {
  71. disableNetEasyEmployee(employee);
  72. }
  73. }else{
  74. if(employee.getEm_isneteasy() == -1){
  75. //开通账号
  76. createNetEasyEmployee(employee);
  77. }
  78. }
  79. }
  80. }
  81. /**
  82. * 创建账号信息
  83. * */
  84. public void createNetEasyEmployee(Employee employee){
  85. logger.info("创建邮箱账号:{}",employee.toString());
  86. AccountResp getAccountResp = getNetEasyEmployee(employee);
  87. if(getAccountResp != null){
  88. if (getAccountResp.getStatus() == 0){
  89. //账号正常
  90. baseDao.updateByCondition("employee","em_neteasyid='"+getAccountResp.getAccountName()+"'","em_code='"+employee.getEm_code()+"'");
  91. logger.info("账号已存在,更新人员信息:{}",employee.toString());
  92. return;
  93. }else if(getAccountResp.getStatus() == 1){
  94. //账号禁用恢复账号
  95. employee.setEm_neteasyid(getAccountResp.getAccountName());
  96. recoverNetEasyEmployee(employee);
  97. baseDao.updateByCondition("employee","em_neteasyid='"+getAccountResp.getAccountName()+"'","em_code='"+employee.getEm_code()+"'");
  98. return;
  99. }
  100. }
  101. logger.info("邮箱无此账号,创建邮箱账号:{}",employee.toString());
  102. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  103. Q q = Q.init(null)
  104. .addParam("domain", netEasyConfig.getDomain())
  105. .addParam("accountName", PinyinUtils.getCustomPinyin(employee.getEm_name()))
  106. .addParam("name", employee.getEm_name())
  107. .addParam("job", employee.getEm_position())
  108. .addParam("jobNumber", employee.getEm_code())
  109. .addParam("unitId", employee.getOrneteasyid());
  110. if(employee.getEm_password().length() >=8){
  111. q.addParam("password", employee.getEm_password());
  112. }
  113. if(StringUtil.hasText(employee.getEm_mobile())){
  114. q.addParam("mobile", employee.getEm_mobile());
  115. }
  116. R r = instanceSDK.commonInvoke(q, "/api/open/account/createAccount");
  117. if(StringUtil.hasText(employee.getEm_name())){}
  118. if(ResultEnum.SUCCESS.getCode() == r.getCode()){
  119. AccountResp accountResp = (AccountResp) r.getDataBean(AccountResp.class);
  120. baseDao.updateByCondition("employee","em_neteasyid='"+accountResp.getAccountName()+"'","em_code='"+employee.getEm_code()+"'");
  121. logger.info("创建账号成功,账号名称:{}",employee.getEm_name());
  122. }
  123. }
  124. /**
  125. * 更新账号信息
  126. * */
  127. public void updateNetEasyEmployee(Employee employee){
  128. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  129. Q q1 = Q.init(null)
  130. .addParam("domain", netEasyConfig.getDomain())
  131. .addParam("jobNumber", employee.getEm_code())
  132. .addParam("accountName", employee.getEm_neteasyid());
  133. if (StringUtils.hasText(employee.getEm_position())){
  134. q1.addParam("job", employee.getEm_position());
  135. }
  136. if (StringUtils.hasText(employee.getEm_name())){
  137. q1.addParam("name", employee.getEm_name());
  138. }
  139. if (StringUtils.hasText(employee.getOrneteasyid())){
  140. q1.addParam("unitId", employee.getOrneteasyid());
  141. }
  142. /* if(StringUtil.hasText(employee.getEm_mobile())){
  143. q1.addParam("mobile", employee.getEm_mobile());
  144. }*/
  145. R r2 = instanceSDK.commonInvoke(q1, "/api/open/account/updateAccount");
  146. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  147. logger.info("更新账号信息成功,账号信息:{}",employee.toString());
  148. }else {
  149. logger.info("更新账号信息失败,账号名称:{},错误信息:{}",employee.toString(),r2.getMessage());
  150. }
  151. }
  152. /**
  153. * 禁用账号信息
  154. * */
  155. public void disableNetEasyEmployee(Employee employee){
  156. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  157. Q q1 = Q.init(null)
  158. .addParam("domain", netEasyConfig.getDomain())
  159. .addParam("accountName", employee.getEm_neteasyid());
  160. R r2 = instanceSDK.commonInvoke(q1, "/api/open/account/suspendAccount");
  161. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  162. //禁用账号更新是否开通邮箱为否
  163. baseDao.updateByCondition("employee","em_neteasyid=null,em_isneteasy=0","em_code='"+employee.getEm_code()+"'");
  164. logger.info("禁用账号成功,账号信息:{}",employee.toString());
  165. }else {
  166. logger.info("禁用账号失败,账号名称:{},错误信息:{}",employee.toString(),r2.getMessage());
  167. }
  168. }
  169. /**
  170. * 恢复账号
  171. * */
  172. public void recoverNetEasyEmployee(Employee employee){
  173. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  174. Q q1 = Q.init(null)
  175. .addParam("domain", netEasyConfig.getDomain())
  176. .addParam("accountName", employee.getEm_neteasyid());
  177. R r2 = instanceSDK.commonInvoke(q1, "/api/open/account/recoverAccount");
  178. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  179. logger.info("恢复账号成功,账号信息:{}",employee.toString());
  180. }else {
  181. logger.info("恢复账号失败,账号名称:{},错误信息:{}",employee.toString(),r2.getMessage());
  182. }
  183. }
  184. /**
  185. * 获取邮箱账号
  186. * */
  187. public AccountResp getNetEasyEmployee(Employee employee) {
  188. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  189. Q q1 = Q.init(null)
  190. .addParam("domain", netEasyConfig.getDomain())
  191. .addParam("accountName", PinyinUtils.getCustomPinyin(employee.getEm_name()));
  192. R r2 = instanceSDK.commonInvoke(q1, "/api/open/account/getAccount");
  193. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  194. AccountResp accountResp = (AccountResp) r2.getDataBean(AccountResp.class);
  195. logger.info("查询账号成功,账号信息:{}",employee.toString());
  196. return accountResp;
  197. }else {
  198. logger.info("查询账号失败,账号名称:{},错误信息:{}",employee.toString(),r2.getMessage());
  199. return null;
  200. }
  201. }
  202. /**
  203. * 获取账号列表
  204. * */
  205. public void getNetEasyUserList(Integer pageNum, List<AccountResp> userList){
  206. logger.info("getNetEasyUserList page:{}",pageNum);
  207. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  208. Q q = Q.init(null).addParam("domain", netEasyConfig.getDomain())
  209. .addParam("pageSize", 50)
  210. .addParam("pageNum", pageNum);
  211. R r = instanceSDK.commonInvoke(q, "/api/open/unit/getAccountList");
  212. if(ResultEnum.SUCCESS.getCode() == r.getCode()){
  213. UnitAccountResp unitAccountResp = (UnitAccountResp) r.getDataBean(UnitAccountResp.class);
  214. userList.addAll(unitAccountResp.getList());
  215. if (unitAccountResp.getCount() > unitAccountResp.getPageNum()*50){
  216. getNetEasyUserList(pageNum+1, userList);
  217. }
  218. }
  219. }
  220. /*
  221. 初始化人员资料
  222. */
  223. public void initEmployee(){
  224. /*List<AccountResp> userList = new ArrayList<AccountResp>();
  225. getNetEasyUserList(1, userList);
  226. List<Employee> employeeList = uasSyncService.getNetEasyUserList();
  227. for (AccountResp accountResp : userList) {
  228. Optional<Employee> employeeOptional = employeeList.stream().filter(employee -> employee.getEm_name().equals(accountResp.getName())).findFirst();
  229. employeeOptional.ifPresent(employee -> baseDao.updateByCondition("employee", "em_neteasyid='" + accountResp.getAccountName() + "'", "em_code='" + employee.getEm_code() + "'"));
  230. }*/
  231. List<Employee> employeeList = uasSyncService.getNetEasyUserList();
  232. for (Employee employee : employeeList) {
  233. if( StringUtil.hasText(employee.getEm_neteasyid())) {
  234. updateNetEasyEmployee(employee);
  235. }else{
  236. if(StringUtil.hasText(employee.getEm_emptype())&&
  237. (employee.getEm_emptype().startsWith("管理序列") || "技术序列".equals(employee.getEm_emptype())
  238. || "营销序列".equals(employee.getEm_emptype()) || "职能序列".equals(employee.getEm_emptype()))){
  239. //开通账号
  240. createNetEasyEmployee(employee);
  241. }
  242. }
  243. }
  244. }
  245. /**
  246. * 组织资料同步
  247. * */
  248. public void syncNetEasyOrg(){
  249. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  250. Q q = Q.init(null)
  251. .addParam("domain", netEasyConfig.getDomain());
  252. R r1 = instanceSDK.commonInvoke(q, "/api/open/unit/getUnitList");
  253. List<HrOrg> orgList = uasSyncService.getADOrgList();
  254. List<GetUnitListDTO> unitList = null;
  255. if(ResultEnum.SUCCESS.getCode() == r1.getCode()){
  256. logger.info("获取组织列表成功");
  257. List<Map<String, Object>> dataList = (List<Map<String, Object>>) r1.getData();
  258. String jsonArrayStr = JacksonUtil.toJsonArray(dataList);
  259. unitList = CommonUtils.parseArray(jsonArrayStr, GetUnitListDTO.class);
  260. for (HrOrg org : orgList) {
  261. Optional<GetUnitListDTO> unitOptional = unitList.stream().filter(unit -> unit.getUnitName().equals(org.getOr_name()) || unit.getUnitId().equals(org.getOr_neteasyid())).findFirst();
  262. if(!StringUtils.hasText(org.getOr_neteasyid()) && "已审核".equals(org.getOr_status()) ){
  263. //邮箱组织ID为空,判断是否需要创建组织
  264. if(unitOptional.isPresent()){
  265. logger.info("更新组织id为空,组织编号:{},组织名称:{}",org.getOr_code(),org.getOr_name());
  266. baseDao.updateByCondition("HRORG","OR_NETEASYID='"+unitOptional.get().getUnitId()+"'","OR_CODE='"+org.getOr_code()+"'");
  267. }else {
  268. logger.info("创建组织组织id为空,组织编号:{},组织名称:{},父组织:{}",org.getOr_code(),org.getOr_name(),org.getParentnetEasyId());
  269. createNetEasyOrg(org, StringUtil.hasText(org.getParentnetEasyId()) ? org.getParentnetEasyId() : null );
  270. }
  271. }else if(StringUtils.hasText(org.getOr_neteasyid())){
  272. if(unitOptional.isPresent()){
  273. //邮箱组织ID不为空,且邮箱服务器存在对应的组织
  274. if ("已禁用".equals(org.getOr_status())){
  275. //删除组织
  276. logger.info("删除组织,组织id:{},组织编号:{},组织名称:{}",org.getOr_neteasyid(),org.getOr_code(),org.getOr_name());
  277. deleteNetEasyOrg(org);
  278. }else if(!"已禁用".equals(org.getOr_status()) && !unitOptional.get().getUnitName().equals(org.getOr_name())){
  279. //更新组织
  280. logger.info("更新组织名称,组织id:{},组织编号:{},组织名称:{}",org.getOr_neteasyid(),org.getOr_code(),org.getOr_name());
  281. updateNetEasyOrg(org);
  282. }
  283. } else {
  284. //邮箱组织ID不为空,但网易邮箱不存在如后台删除等,需要重新创建组织
  285. if("已审核".equals(org.getOr_status())){
  286. logger.info("重新创建组织,组织id不为空,组织编号:{},组织名称:{}",org.getOr_code(),org.getOr_name());
  287. createNetEasyOrg(org, StringUtil.hasText(org.getParentnetEasyId()) ? org.getParentnetEasyId() : null );
  288. }
  289. }
  290. }
  291. }
  292. //整体再刷新一次层级,防止一次性新增多层级组织
  293. refreshNetEasyOrg();
  294. }
  295. }
  296. /*
  297. * init初始化
  298. * */
  299. public void initNetEasyOrg() {
  300. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  301. Q q = Q.init(null)
  302. .addParam("domain", netEasyConfig.getDomain());
  303. R r1 = instanceSDK.commonInvoke(q, "/api/open/unit/getUnitList");
  304. List<HrOrg> orgList = uasSyncService.getADOrgList();
  305. if(ResultEnum.SUCCESS.getCode() == r1.getCode()){
  306. List<Map<String, Object>> dataList = (List<Map<String, Object>>) r1.getData();
  307. String jsonArrayStr = JacksonUtil.toJsonArray(dataList);
  308. List<GetUnitListDTO> unitList = CommonUtils.parseArray(jsonArrayStr, GetUnitListDTO.class);
  309. for (GetUnitListDTO unit : unitList) {
  310. Optional<HrOrg> orgOptional = orgList.stream().filter(org -> org.getOr_name().equals(unit.getUnitName())).findFirst();
  311. if(orgOptional.isPresent()){
  312. baseDao.updateByCondition("HRORG","OR_NETEASYID='"+unit.getUnitId()+"'","OR_CODE='"+orgOptional.get().getOr_code()+"'");
  313. }
  314. }
  315. }
  316. for (HrOrg org : orgList) {
  317. if(org.getOr_neteasyid() == null && "已审核".equals(org.getOr_status())){
  318. createNetEasyOrg(org, null);
  319. }
  320. }
  321. refreshNetEasyOrg();
  322. }
  323. /**
  324. * 刷新组织层级
  325. * */
  326. public void refreshNetEasyOrg() {
  327. logger.info("刷新组织层级");
  328. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  329. Q q = Q.init(null)
  330. .addParam("domain", netEasyConfig.getDomain());
  331. R r1 = instanceSDK.commonInvoke(q, "/api/open/unit/getUnitList");
  332. List<HrOrg> orgList = uasSyncService.getADOrgList();
  333. List<GetUnitListDTO> unitList = null;
  334. if(ResultEnum.SUCCESS.getCode() == r1.getCode()){
  335. List<Map<String, Object>> dataList = (List<Map<String, Object>>) r1.getData();
  336. String jsonArrayStr = JacksonUtil.toJsonArray(dataList);
  337. unitList = CommonUtils.parseArray(jsonArrayStr, GetUnitListDTO.class);
  338. }
  339. if (unitList != null){
  340. for (HrOrg org : orgList) {
  341. Optional<GetUnitListDTO> unitOptional = unitList.stream().filter(unit -> unit.getUnitId().equals(org.getOr_neteasyid())).findFirst();
  342. if(unitOptional.isPresent()){
  343. if(StringUtil.hasText(org.getParentnetEasyId()) && !org.getParentnetEasyId().equals(unitOptional.get().getUnitParentId())){
  344. logger.info("组织{}的父组织id错误,正确父组织id:{},错误父组织id:{}",org.getOr_name(),unitOptional.get().getUnitParentId(),org.getParentnetEasyId());
  345. moveNetEasyOrg(org,org.getParentnetEasyId());
  346. }
  347. }
  348. }
  349. }
  350. }
  351. /**
  352. * 创建组织
  353. * */
  354. public String createNetEasyOrg(HrOrg org,String parentId){
  355. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  356. Q q1 = Q.init(null)
  357. .addParam("domain", netEasyConfig.getDomain())
  358. .addParam("unitName", org.getOr_name());
  359. if (parentId != null){
  360. q1.addParam("parentId", parentId);
  361. }
  362. R r2 = instanceSDK.commonInvoke(q1, "/api/open/unit/createUnit");
  363. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  364. CreateUnitResp createUnitResp = (CreateUnitResp) r2.getDataBean(CreateUnitResp.class);
  365. baseDao.updateByCondition("HRORG","OR_NETEASYID='"+createUnitResp.getUnitId()+"'","OR_CODE='"+org.getOr_code()+"'");
  366. logger.info("创建组织成功,组织id:{},组织编号:{},组织名称:{} ,父级组织:{}",createUnitResp.getUnitId(),org.getOr_code(),org.getOr_name() ,parentId);
  367. return createUnitResp.getUnitId();
  368. }else {
  369. return null;
  370. }
  371. }
  372. /**
  373. * 删除组织
  374. * */
  375. public void deleteNetEasyOrg(HrOrg org){
  376. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  377. Q q1 = Q.init(null)
  378. .addParam("domain", netEasyConfig.getDomain())
  379. .addParam("unitId", org.getOr_neteasyid());
  380. R r2 = instanceSDK.commonInvoke(q1, "/api/open/unit/deleteUnit");
  381. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  382. baseDao.updateByCondition("HRORG","OR_NETEASYID=null","OR_CODE='"+org.getOr_code()+"'");
  383. logger.info("删除组织成功,组织id:{},组织编号:{},组织名称:{}",org.getOr_neteasyid(),org.getOr_code(),org.getOr_name());
  384. }else {
  385. logger.info("删除组织失败,组织id:{},组织编号:{},组织名称:{}",org.getOr_neteasyid(),org.getOr_code(),org.getOr_name());
  386. }
  387. }
  388. /**
  389. *更新组织名称
  390. * */
  391. public void updateNetEasyOrg(HrOrg org ){
  392. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  393. Q q1 = Q.init(null)
  394. .addParam("domain", netEasyConfig.getDomain())
  395. .addParam("unitId", org.getOr_neteasyid())
  396. .addParam("unitName", org.getOr_name());
  397. R r2 = instanceSDK.commonInvoke(q1, "/api/open/unit/updateUnit");
  398. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  399. logger.info("更新组织成功,组织id:{},组织编号:{},组织名称:{}",org.getOr_neteasyid(),org.getOr_code(),org.getOr_name());
  400. }
  401. }
  402. /**
  403. * 移动组织
  404. * */
  405. public void moveNetEasyOrg(HrOrg org ,String parentId){
  406. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  407. Q q1 = Q.init(null)
  408. .addParam("domain", netEasyConfig.getDomain())
  409. .addParam("unitId", org.getOr_neteasyid())
  410. .addParam("unitParentId", parentId);
  411. R r2 = instanceSDK.commonInvoke(q1, "/api/open/unit/moveUnit");
  412. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  413. logger.info("移动组织成功,组织id:{},父组织id:{}",org.getOr_neteasyid(),parentId);
  414. }
  415. }
  416. /**
  417. * 待办邮件
  418. * */
  419. public Number getUnreadMsg(String accountName){
  420. QiyeOpenPlatSDK instanceSDK = netEasySDK.getSDKInstance();
  421. Q q1 = Q.init(null)
  422. .addParam("domain", netEasyConfig.getDomain())
  423. .addParam("accountName", accountName)
  424. .addParam("fid",1)
  425. .addParam("needAll",0)
  426. .addParam("countByFolder",0);
  427. R r2 = instanceSDK.commonInvoke(q1, "/api/open/mailbox/getUnreadMsg");
  428. if(ResultEnum.SUCCESS.getCode() == r2.getCode()){
  429. MailBoxUnreadMsgResp getUnreadMsgResp = (MailBoxUnreadMsgResp) r2.getDataBean(MailBoxUnreadMsgResp.class);
  430. return getUnreadMsgResp.getCount();
  431. }
  432. return 0;
  433. }
  434. }