Browse Source

根据手机号移除钉钉群

jzh 11 months ago
parent
commit
f485289eef

+ 5 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/resign/event/ResignEvent.java

@@ -14,6 +14,7 @@ import com.zjugis.framework.workflow.model.BaseController;
 import com.zjugis.framework.workflow.rpc.remote.WorkflowClient;
 import com.zjugis.framework.workflow.spring.resovler.ParamModel;
 import com.zjugis.module.adm.api.staff.StaffApi;
+import com.zjugis.module.adm.api.staff.dto.StaffRecordsDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffStateDTO;
 import com.zjugis.module.infra.api.ding.DingApi;
 import com.zjugis.module.system.api.dept.DeptApi;
@@ -136,8 +137,11 @@ public class ResignEvent extends BaseController {
                 CommonResult<String> res = staffApi.updateStaffState(dto);
                 res.getCheckedData();
 
+                //获取员工手机号
+                StaffRecordsDTO staff=staffApi.getStaffResign(entity.getUserId()).getCheckedData();
+
                 //钉钉移除员工
-                dingApi.resign(entity.getLoginName());
+                dingApi.resign(staff.getMobile());
 
                 return ok("true");
             } else {

+ 1 - 1
zjugis-module-infra/zjugis-module-infra-api/src/main/java/com/zjugis/module/infra/api/ding/DingApi.java

@@ -30,6 +30,6 @@ public interface DingApi {
 
     @PostMapping(PREFIX + "/resign")
     @Operation(summary = "员工离职")
-    CommonResult<String> resign(@Valid @RequestParam("loginName") String loginName);
+    CommonResult<String> resign(@Valid @RequestParam("mobile") String mobile);
 
 }

+ 2 - 2
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/api/ding/DingApiImpl.java

@@ -64,9 +64,9 @@ public class DingApiImpl implements DingApi {
     }
 
     @Override
-    public CommonResult<String> resign(@RequestParam("loginName") String loginName) {
+    public CommonResult<String> resign(@RequestParam("mobile") String mobile) {
         try {
-            dingService.deleteStaff(loginName);
+            dingService.deleteStaff(mobile);
             return CommonResult.success("ok");
         } catch (ApiException e) {
             return CommonResult.error(101, e.getMessage());

+ 1 - 1
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/service/ding/DingService.java

@@ -14,6 +14,6 @@ public interface DingService {
 
     String createStaff(StaffDTO dto) throws ApiException;
 
-    void deleteStaff(String loginName) throws ApiException;
+    void deleteStaff(String mobile) throws ApiException;
 
 }

+ 24 - 6
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/service/ding/DingServiceImpl.java

@@ -126,16 +126,34 @@ public class DingServiceImpl implements DingService {
     }
 
     @Override
-    public void deleteStaff(String loginName) throws ApiException {
+    public void deleteStaff(String mobile) throws ApiException {
         String accessToken = getDingTalkToken();
+        //获取员工信息
+        Map<String, Object> staffMap = new HashMap<>();
+        staffMap.put("access_token", accessToken);
+        staffMap.put("mobile", mobile);
+        String res = HttpUtil.get("https://oapi.dingtalk.com/user/get_by_mobile", staffMap);
+        System.out.println(res);
+        Map map = JSONUtil.toBean(res, Map.class);
+        String errCode = map.get("errcode").toString();
+        String errMsg = map.get("errmsg").toString();
+        if (!errCode.equals("0")) {
+            throw new ApiException(errMsg);
+        }
+        String userId = map.get("userid").toString();
+
+
+
+
+
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("access_token", accessToken);
-        paramMap.put("userid", loginName);
-        String res = HttpUtil.post("https://oapi.dingtalk.com/topapi/v2/user/delete", paramMap);
-        Map map = JSONUtil.toBean(res, Map.class);
-        String errorCode = map.get("errcode").toString();
+        paramMap.put("userid", userId);
+        String resign = HttpUtil.post("https://oapi.dingtalk.com/topapi/v2/user/delete", paramMap);
+        Map resignMap = JSONUtil.toBean(resign, Map.class);
+        String errorCode = resignMap.get("errcode").toString();
         if (!errorCode.equals("0")) {
-            throw new ApiException(map.get("errmsg").toString());
+            throw new ApiException(resignMap.get("errmsg").toString());
         }
     }