Browse Source

调整钉钉单点登录对接

zjc 1 year ago
parent
commit
8bae0085c0

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java

@@ -2,7 +2,6 @@ package com.ruoyi.web.controller.system;
 
 import java.util.List;
 import java.util.Set;
-
 import com.ruoyi.system.domain.dhrm.DhrmCompany;
 import com.ruoyi.system.service.dhrm.IDhrmCompanyService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -107,4 +106,5 @@ public class SysLoginController
         return AjaxResult.success(menuService.buildMenus(menus));
     }
 
+
 }

+ 14 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/CrmController.java

@@ -62,6 +62,20 @@ public class CrmController extends BaseController {
     }
 
 
+    @ApiOperation(value = "修改客户和项目信息,进入流程")
+    @PostMapping("/submit")
+    public AjaxResult submit(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
+                            @ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables
+    ) {
+        return AjaxResult.success("审批成功");
+    }
+
+    @ApiOperation(value = "审批任务")
+    @PostMapping(value = "/complete")
+    public AjaxResult complete(@RequestBody FlowTaskVo flowTaskVo) {
+        return AjaxResult.success("审批成功");
+    }
+
 
 
 

+ 13 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -135,4 +135,16 @@ flowable:
   # true 会对数据库中所有表进行更新操作。如果表不存在,则自动创建(建议开发时使用)
   database-schema-update: false
   # 关闭定时任务JOB
-  async-executor-activate: false
+  async-executor-activate: false
+
+# DingDing配置
+dingtalk:
+  # 应用的唯一标识key。
+  app_key: dingwlimimzllguvqf8x
+  # 应用的密钥。
+  app_secret: pH4lgZ_k8lgkAU9jboz0SBpybX2kpGKotzL_sg5Gu8Whd-s7n3S_5rrziiK2Hde9
+  # 应用的标识
+  agent_id: 2803464118
+  # 企业ID
+  corp_id: ding4ab75ecd53106cde4ac5d6980864d335
+

+ 14 - 0
ruoyi-common/pom.xml

@@ -126,6 +126,20 @@
             <artifactId>javax.servlet-api</artifactId>
         </dependency>
 
+        <!--新版本-->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>dingtalk</artifactId>
+            <version>1.4.78</version>
+        </dependency>
+
+        <!-- 钉钉SDK -->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>alibaba-dingtalk-service-sdk</artifactId>
+            <version>2.0.0</version>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 24 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java

@@ -144,4 +144,28 @@ public class Constants
      */
     public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
             "org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config" };
+
+    /**
+     *  钉钉redis缓存key
+     */
+    public static final String DAILY_DING_ACCESS_TOKEN = "DAILY_DING_ACCESS_TOKEN";
+
+    /**
+     * 钉钉redis缓存key
+     */
+    public static final String DAILY_DING_JS_TICKET = "DAILY_DING_JS_TICKET";
+
+    /**
+     * 钉钉 GrantType
+     */
+    public static final String AUTHORIZATION_CODE = "authorization_code";
+
+    /**
+     * 钉钉 GrantType
+     */
+    public static final String REFRESH_TOKEN = "refresh_token";
+
+
+
+
 }

+ 11 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -74,6 +74,9 @@ public class SysUser extends BaseEntity
     @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
     private Date loginDate;
 
+    /** 钉钉认证Token */
+    private String accessToken;
+
     /** 部门对象 */
     @Excels({
         @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
@@ -321,6 +324,14 @@ public class SysUser extends BaseEntity
         this.employNo = employNo;
     }
 
+    public String getAccessToken() {
+        return accessToken;
+    }
+
+    public void setAccessToken(String accessToken) {
+        this.accessToken = accessToken;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 2 - 1
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/crm/Impl/CrmServiceImpl.java

@@ -88,8 +88,9 @@ public class CrmServiceImpl extends FlowServiceFactory implements CrmService {
             identityService.setAuthenticatedUserId(sysUser.getUserId().toString());
             variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
             //设置部门领导审批人
-            variables.put("MANAGER", sysUser.getUserId());
 
+
+            variables.put("MANAGER", sysUser.getUserId());
             //设置事业部负责人审批人
             variables.put("LEADER", sysUser.getUserId());
             //设置事业群领导审批人

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 过滤请求
                 .authorizeRequests()
                 // 对于登录login 单点登录authSingleSignIn 注册register 验证码captchaImage 允许匿名访问
-                .antMatchers("/login","/authSingleSignIn", "/register", "/captchaImage").permitAll()
+                .antMatchers("/login","/authSingleSignIn","/ding/**", "/register", "/captchaImage").permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()

+ 2 - 2
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java

@@ -196,13 +196,13 @@ public class SysLoginService
         }
         SysUser sysUser = userService.selectUserByUserName(username);
         // 登录前置校验
-        loginPreCheck(username, sysUser.getPhonenumber());
+        loginPreCheck(username, "admin123");
 
         // 用户验证
         Authentication authentication = null;
         try
         {
-            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, sysUser.getPhonenumber());
+            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, "admin123");
             AuthenticationContextHolder.setContext(authenticationToken);
             // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
             authentication = authenticationManager.authenticate(authenticationToken);