24282 2 anni fa
parent
commit
ec9b379cc3

+ 27 - 0
hx-dingding/src/main/java/com/fjhx/dingding/controller/DingController.java

@@ -2,6 +2,10 @@ package com.fjhx.dingding.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.dingtalkoauth2_1_0.Client;
+import com.aliyun.dingtalkoauth2_1_0.models.GetCorpAccessTokenRequest;
+import com.aliyun.dingtalkoauth2_1_0.models.GetCorpAccessTokenResponseBody;
+import com.aliyun.teaopenapi.models.Config;
 import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse;
 import com.dingtalk.oapi.lib.aes.DingTalkEncryptor;
 import com.fjhx.dingding.constant.Constant;
@@ -10,6 +14,7 @@ import com.fjhx.dingding.service.DingService;
 import com.fjhx.dingding.utils.DingUtil;
 import com.ruoyi.common.annotation.NonInterception;
 import com.ruoyi.common.annotation.TenantIgnore;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -20,7 +25,29 @@ import java.util.LinkedHashMap;
 @RestController
 @RequestMapping("/open")
 public class DingController {
+    @SneakyThrows
+    public static void main(String[] args) {
 
+        String corpId = "ding53d823e205604918a39a90f97fcb1e09";
+
+        GetCorpAccessTokenRequest getCorpAccessTokenRequest = new GetCorpAccessTokenRequest()
+                .setSuiteKey(Constant.SUITE_KEY)
+                .setSuiteSecret(Constant.SUITE_SECRET)
+                .setAuthCorpId(corpId)
+                .setSuiteTicket("UzdBkwbfymMvKF514ISMaftifCn9Cxb1K2l9pRgUKiJf7k7IRPxEuWvLAXxxQmAWzLxwcxXiGkYppry0NKQiWQ");
+
+        Client client = getClient2();
+        GetCorpAccessTokenResponseBody body = client.getCorpAccessToken(getCorpAccessTokenRequest).getBody();
+        String accessToken = body.getAccessToken();
+        System.out.println(accessToken);
+    }
+
+    private static com.aliyun.dingtalkoauth2_1_0.Client getClient2() throws Exception {
+        Config config = new Config();
+        config.protocol = "https";
+        config.regionId = "central";
+        return new com.aliyun.dingtalkoauth2_1_0.Client(config);
+    }
 
     @Autowired
     private DingService dingService;

+ 22 - 1
hx-dingding/src/main/java/com/fjhx/dingding/service/impl/DingServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.dingding.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.extra.pinyin.PinyinUtil;
 import com.alibaba.fastjson.JSON;
@@ -17,8 +18,11 @@ import com.fjhx.tenant.entity.tenant.po.TenantInfo;
 import com.fjhx.tenant.service.tenant.impl.TenantInfoServiceImpl;
 import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -50,6 +54,9 @@ public class DingServiceImpl implements DingService {
     @Autowired
     private ISysDeptService sysDeptService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
     /**
      * https://open.dingtalk.com/document/isvapp/data-formats
      */
@@ -189,8 +196,22 @@ public class DingServiceImpl implements DingService {
         ArrayList<SysDept> deptList = new ArrayList<>();
         addDeptList(corpid, deptList, tenantId, 1L, 0L);
 
+        // 创建用户
+        SysUser sysUser = new SysUser();
+        // sysUser.setDeptId(sysDept.getDeptId());
+        sysUser.setTenantId(tenantId);
+        sysUser.setUserName("admin");
+        sysUser.setNickName(corpName + "管理员");
+        sysUser.setPassword(SecurityUtils.encryptPassword(RandomUtil.randomString(6)));
+        sysUser.setStatus("0");
+        sysUser.setCreateBy(SecurityUtils.getUsername());
+        sysUser.setCreateTime(new Date());
+        sysUser.setDdUserId(bizData.getJSONObject("auth_user_info").getString("userId"));
+        sysUserService.save(sysUser);
+
         log.info("钉钉回调创建租户,tenantInfo:{}", JSON.toJSONString(tenantInfo));
         log.info("钉钉回调创建部门,deptList:{}", JSON.toJSONString(deptList));
+        log.info("钉钉回调创建用户,sysUser:{}", JSON.toJSONString(sysUser));
 
         TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
         try {
@@ -217,7 +238,7 @@ public class DingServiceImpl implements DingService {
 
         List<OapiV2DepartmentListsubResponse.DeptBaseResponse> tempDeptList = DingUtil.getDeptList(corpid, dingParentId);
 
-        if (tempDeptList.size() == 0) {
+        if (ObjectUtil.isEmpty(tempDeptList)) {
             return;
         }
 

+ 4 - 4
hx-dingding/src/main/java/com/fjhx/dingding/utils/DingUtil.java

@@ -128,10 +128,10 @@ public class DingUtil {
         }
     }
 
-    public static void main(String[] args) {
-        List<OapiV2DepartmentListsubResponse.DeptBaseResponse> deptList = getDeptList("", 1L);
-        System.out.println(deptList);
-    }
+    // public static void main(String[] args) {
+    //     List<OapiV2DepartmentListsubResponse.DeptBaseResponse> deptList = getDeptList("", 1L);
+    //     System.out.println(deptList);
+    // }
 
     private static com.aliyun.dingtalkcontact_1_0.Client getClient1() throws Exception {
         Config config = new Config();