add hiwork单点登录
This commit is contained in:
+31
@@ -0,0 +1,31 @@
|
||||
package com.jero.modules.docking.hiwork.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.docking.hiwork.service.impl.HiworkService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2024-03-01 14:01
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/hiwork")
|
||||
@Slf4j
|
||||
public class HiworkLoginController {
|
||||
@Resource
|
||||
private HiworkService hiworkService;
|
||||
|
||||
@ApiOperation("hiwork单点登录")
|
||||
@PostMapping("/login")
|
||||
public Result<JSONObject> login(@RequestBody JSONObject jsonObject){
|
||||
return hiworkService.login(jsonObject);
|
||||
}
|
||||
}
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
package com.jero.modules.docking.hiwork.entity;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2024-03-01 14:26
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class HiworkUserInfo {
|
||||
/**
|
||||
* errcode
|
||||
*/
|
||||
@JSONField(name = "errcode")
|
||||
private Integer errcode;
|
||||
/**
|
||||
* result
|
||||
*/
|
||||
@JSONField(name = "result")
|
||||
private ResultDTO result;
|
||||
/**
|
||||
* errmsg
|
||||
*/
|
||||
@JSONField(name = "errmsg")
|
||||
private String errmsg;
|
||||
|
||||
/**
|
||||
* ResultDTO
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class ResultDTO {
|
||||
/**
|
||||
* associatedUnionid
|
||||
*/
|
||||
@JSONField(name = "associated_unionid")
|
||||
private String associatedUnionid;
|
||||
/**
|
||||
* unionid
|
||||
*/
|
||||
@JSONField(name = "unionid")
|
||||
private String unionid;
|
||||
/**
|
||||
* deviceId
|
||||
*/
|
||||
@JSONField(name = "device_id")
|
||||
private String deviceId;
|
||||
/**
|
||||
* sysLevel
|
||||
*/
|
||||
@JSONField(name = "sys_level")
|
||||
private Integer sysLevel;
|
||||
/**
|
||||
* name
|
||||
*/
|
||||
@JSONField(name = "name")
|
||||
private String name;
|
||||
/**
|
||||
* sys
|
||||
*/
|
||||
@JSONField(name = "sys")
|
||||
private Boolean sys;
|
||||
/**
|
||||
* userid
|
||||
*/
|
||||
@JSONField(name = "userid")
|
||||
private String userid;
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.jero.modules.docking.hiwork.service.impl;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.docking.hiwork.entity.HiworkUserInfo;
|
||||
import com.jero.modules.system.service.ILoginService;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2024-03-01 14:02
|
||||
*/
|
||||
@Service
|
||||
public class HiworkService {
|
||||
@Resource
|
||||
private ILoginService loginService;
|
||||
|
||||
@Value("${hiwork.appkey}")
|
||||
private String appkey;
|
||||
@Value("${hiwork.appsecret}")
|
||||
private String appsecret;
|
||||
|
||||
public Result<JSONObject> login(JSONObject jsonObject) {
|
||||
//根据appkey和appsecret获取accessToken
|
||||
String body = HttpRequest.get("https://oapi.dingtalk.com/gettoken?appkey=" + appkey + "&appsecret=" + appsecret)
|
||||
.execute().body();
|
||||
JSONObject responseJson = JSONObject.parseObject(body);
|
||||
String accessToken = responseJson.getString("access_token");
|
||||
//根据accessToken和前端传过来的jsonObject获得用户信息
|
||||
String body1 = HttpRequest.post("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token=" + accessToken)
|
||||
//jsonObject中有code
|
||||
.body(jsonObject.toJSONString())
|
||||
.execute().body();
|
||||
HiworkUserInfo hiworkUserInfo = JSONObject.parseObject(body1, HiworkUserInfo.class);
|
||||
String userid = hiworkUserInfo.getResult().getUserid();
|
||||
return loginService.loginByUserName(userid);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user