BeisenRecruitOwnerApiHelper.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.kingdee.eas.custom.recuritment.utils;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.kingdee.eas.custom.beisen.utils.BeisenApiClient;
  5. import com.kingdee.eas.custom.beisen.utils.BeisenParam;
  6. import com.kingdee.util.StringUtils;
  7. import org.apache.log4j.Logger;
  8. import java.io.IOException;
  9. import java.util.List;
  10. /**
  11. * 北森招聘负责人相关接口封装。
  12. * HTTP 与 Token 由 {@link BeisenApiClient} 统一处理。
  13. *
  14. * @author qingwu
  15. */
  16. public class BeisenRecruitOwnerApiHelper {
  17. private static final Logger logger = Logger.getLogger(BeisenRecruitOwnerApiHelper.class);
  18. /** 根据职位Id获取职位列表 */
  19. private static final String GET_JOB_LIST_BY_IDS = "https://openapi.italent.cn/RecruitV6/api/v1/Job/GetJobListByIds";
  20. /** 根据originalId获取员工信息 */
  21. private static final String GET_STAFF_BY_ORIGINAL_ID = "https://openapi.italent.cn/UserFrameworkApiV3/api/v1/staffs/Get";
  22. /**
  23. * 批量根据申请ID获取申请信息。
  24. *
  25. * @param applyIds 北森申请ID列表
  26. */
  27. public JSONObject getApplyListByApplyIds(List<String> applyIds) throws IOException {
  28. JSONObject params = new JSONObject();
  29. JSONArray ids = new JSONArray();
  30. ids.addAll(applyIds);
  31. params.put("applyIds", ids);
  32. logger.error("getApplyListByApplyIds params:" + params);
  33. JSONObject result = BeisenApiClient.getInstance().callApi(BeisenParam.GET_APPLYLIST_APPLYID, params);
  34. logger.error("getApplyListByApplyIds result:" + result);
  35. return result;
  36. }
  37. /**
  38. * 批量根据职位Id获取职位列表。
  39. *
  40. * @param jobIds 职位Id列表(GUID)
  41. */
  42. public JSONObject getJobListByIds(List<String> jobIds) throws IOException {
  43. JSONObject params = new JSONObject();
  44. JSONArray ids = new JSONArray();
  45. ids.addAll(jobIds);
  46. params.put("jobIds", ids);
  47. logger.error("getJobListByIds params:" + params);
  48. JSONObject result = BeisenApiClient.getInstance().callApi(GET_JOB_LIST_BY_IDS, params);
  49. logger.error("getJobListByIds result:" + result);
  50. return result;
  51. }
  52. /**
  53. * 根据北森用户originalId获取员工,返回 data.staffCode。
  54. * @param originalId 北森用户originalId(字符串)
  55. */
  56. public JSONObject getStaffByOriginalId(String originalId) throws IOException {
  57. String url = GET_STAFF_BY_ORIGINAL_ID + "?originalId=" + originalId;
  58. logger.error("getStaffByOriginalId url:" + url);
  59. JSONObject result = BeisenApiClient.getInstance().callGetApi(url, new JSONObject());
  60. logger.error("getStaffByOriginalId result:" + result);
  61. return result;
  62. }
  63. /**
  64. * 从员工接口响应解析 staffCode。
  65. * 北森返回结构:items[0].staffDto.staffCode
  66. */
  67. public static String parseStaffCode(JSONObject staffJson) {
  68. if (staffJson == null) {
  69. return null;
  70. }
  71. JSONArray items = staffJson.getJSONArray("items");
  72. if (items != null && !items.isEmpty()) {
  73. JSONObject first = items.getJSONObject(0);
  74. if (first != null) {
  75. JSONObject staffDto = first.getJSONObject("staffDto");
  76. if (staffDto != null && !StringUtils.isEmpty(staffDto.getString("staffCode"))) {
  77. return staffDto.getString("staffCode");
  78. }
  79. }
  80. }
  81. JSONObject data = staffJson.getJSONObject("data");
  82. if (data != null && !StringUtils.isEmpty(data.getString("staffCode"))) {
  83. return data.getString("staffCode");
  84. }
  85. return null;
  86. }
  87. }