SynThirdQyService.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package jnpf.message.service;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.dingtalk.api.response.OapiV2UserListResponse;
  4. import jnpf.exception.WxErrorException;
  5. import jnpf.message.model.message.DingTalkDeptModel;
  6. import jnpf.message.model.message.QyWebChatDeptModel;
  7. import jnpf.message.model.message.QyWebChatUserModel;
  8. import jnpf.model.BaseSystemInfo;
  9. import jnpf.model.SocialsSysConfig;
  10. import jnpf.permission.entity.OrganizeEntity;
  11. import jnpf.permission.entity.UserEntity;
  12. import java.text.ParseException;
  13. import java.util.List;
  14. /**
  15. * 本系统的公司、部门、用户与企业微信的同步
  16. *
  17. * @版本: V3.1.0
  18. * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
  19. * @作者: JNPF开发平台组
  20. * @日期: 2021/4/27 11:12
  21. */
  22. public interface SynThirdQyService {
  23. //------------------------------------本系统同步公司、部门到企业微信-------------------------------------
  24. /**
  25. * 本地同步单个公司或部门到企业微信(供调用)
  26. * @param isBatch 是否批量(批量不受开关限制)
  27. * @param deptEntity
  28. * @param accessToken (单条调用时为空)
  29. * @return
  30. * @throws WxErrorException
  31. */
  32. JSONObject createDepartmentSysToQy(boolean isBatch, OrganizeEntity deptEntity,String accessToken) throws WxErrorException;
  33. JSONObject createUserSysToQy(boolean isBatch, List<UserEntity> userList, String accessToken,String positionId) throws WxErrorException;
  34. JSONObject createUserSysToQy(boolean isBatch, UserEntity userEntity, String accessToken,List<String> ids) throws ParseException, WxErrorException;
  35. /**
  36. * 本地更新单个公司或部门到企业微信(供调用)
  37. * @param isBatch 是否批量(批量不受开关限制)
  38. * @param deptEntity
  39. * @param accessToken (单条调用时为空)
  40. * @return
  41. * @throws WxErrorException
  42. */
  43. JSONObject updateDepartmentSysToQy(boolean isBatch, OrganizeEntity deptEntity,String accessToken) throws WxErrorException;
  44. /**
  45. * 单条同步统一处理
  46. * @param isBatch 是否批量
  47. * @param deptEntity 组织
  48. * @param accessToken token
  49. * @param choice 处理选择
  50. */
  51. JSONObject unifyDepartmentSysToQy(boolean isBatch, OrganizeEntity deptEntity,String accessToken,String choice) throws WxErrorException;
  52. JSONObject unifyDepartmentSysToQy(boolean isBatch, List<OrganizeEntity> organizeEntities,String accessToken,String choice) throws WxErrorException;
  53. /**
  54. * 本地删除单个公司或部门,同步到企业微信(供调用)
  55. * @param isBatch 是否批量(批量不受开关限制)
  56. * @param id 本系统的公司或部门ID
  57. * @param accessToken (单条调用时为空)
  58. * @return
  59. * @throws WxErrorException
  60. */
  61. JSONObject deleteDepartmentSysToQy(boolean isBatch, String id,String accessToken) throws WxErrorException;
  62. JSONObject deleteUserSysToQy(boolean isBatch, List<String> userList,String accessToken,String positionId) throws WxErrorException;
  63. JSONObject deleteUserSysToQy(boolean isBatch, UserEntity userEntity, String accessToken,List<String> positionId) throws ParseException, WxErrorException;
  64. //------------------------------------本系统同步用户到企业微信-------------------------------------
  65. /**
  66. * 本地用户创建同步到企业微信的成员(单个)
  67. * @param isBatch 是否批量(批量不受开关限制)
  68. * @param userEntity
  69. * @param accessToken (单条调用时为空)
  70. * @return
  71. * @throws WxErrorException
  72. */
  73. JSONObject createUserSysToQy(boolean isBatch, UserEntity userEntity,String accessToken) throws WxErrorException;
  74. /**
  75. * 本地更新用户信息或部门到企业微信的成员信息(单个)
  76. * @param isBatch 是否批量(批量不受开关限制)
  77. * @param userEntity
  78. * @param accessToken (单条调用时为空)
  79. * @return
  80. * @throws WxErrorException
  81. */
  82. JSONObject updateUserSysToQy(boolean isBatch, UserEntity userEntity,String accessToken,String corpToken) throws WxErrorException;
  83. JSONObject updateUserSysToQy(boolean isBatch, UserEntity userEntity,String accessToken,Integer single) throws WxErrorException;
  84. /**
  85. * 本地删除单个用户,同步到企业微信成员
  86. * @param isBatch 是否批量(批量不受开关限制)
  87. * @param id 本系统的公司或部门ID
  88. * @param accessToken (单条调用时为空)
  89. * @return
  90. * @throws WxErrorException
  91. */
  92. JSONObject deleteUserSysToQy(boolean isBatch, String id,String accessToken) throws WxErrorException;
  93. //------------------------------------企业微信同步公司、部门到本系统20220613-------------------------------------
  94. /**
  95. * 企业微信同步公司或部门到本地(供调用)
  96. * @param isBatch 是否批量(批量不受开关限制)
  97. * @param deptEntity
  98. * @param accessToken (单条调用时为空)
  99. * @return
  100. */
  101. JSONObject createDepartmentQyToSys(boolean isBatch, QyWebChatDeptModel deptEntity, String accessToken);
  102. /**
  103. * 企业微信同步更新公司或部门到本地(供调用)
  104. * @param isBatch 是否批量(批量不受开关限制)
  105. * @param deptEntity
  106. * @param accessToken (单条调用时为空)
  107. * @return
  108. */
  109. JSONObject updateDepartmentQyToSys(boolean isBatch, QyWebChatDeptModel deptEntity,String accessToken);
  110. /**
  111. * 企业微信往本地同步用户
  112. * @param isBatch 是否批量(批量不受开关限制)
  113. * @param qyWebChatUserModel
  114. * @return
  115. */
  116. JSONObject createUserQyToSys(boolean isBatch, QyWebChatUserModel qyWebChatUserModel,String access_token)throws Exception;
  117. JSONObject updateUserQyToSystem(boolean isBatch, QyWebChatUserModel qyWebChatUserModel,String access_token) throws Exception;
  118. }