Compare commits
2 Commits
1ce183b8b0
...
6a7b2e5be0
| Author | SHA1 | Date |
|---|---|---|
|
|
6a7b2e5be0 | |
|
|
f5d127fe66 |
|
|
@ -0,0 +1,130 @@
|
||||||
|
package com.dkl.web.controller.system;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.dkl.common.constant.Constants;
|
||||||
|
import com.dkl.common.core.domain.AjaxResult;
|
||||||
|
import com.dkl.common.core.domain.entity.SysDept;
|
||||||
|
import com.dkl.common.core.domain.entity.SysUser;
|
||||||
|
import com.dkl.common.core.domain.model.LoginUser;
|
||||||
|
import com.dkl.common.core.redis.RedisCache;
|
||||||
|
import com.dkl.common.utils.SecurityUtils;
|
||||||
|
import com.dkl.common.utils.StringUtils;
|
||||||
|
import com.dkl.framework.web.service.SysLoginService;
|
||||||
|
import com.dkl.framework.web.service.SysPermissionService;
|
||||||
|
import com.dkl.system.service.ISysDeptService;
|
||||||
|
import com.dkl.system.service.ISysRoleService;
|
||||||
|
import com.dkl.system.service.ISysUserService;
|
||||||
|
import com.smartlx.sso.client.model.AccessToken;
|
||||||
|
import com.smartlx.sso.client.model.RemoteUserInfo;
|
||||||
|
import com.smartlx.sso.client.result.Result;
|
||||||
|
import com.smartlx.sso.client.service.SsoClientService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import static com.dkl.common.core.domain.AjaxResult.error;
|
||||||
|
import static net.sf.jsqlparser.util.validation.metadata.NamedObject.user;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单点登录Controller
|
||||||
|
* @author sgc
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
public class LoginSsoController {
|
||||||
|
|
||||||
|
@Value("${outData.clientId}")
|
||||||
|
String clientIds;
|
||||||
|
@Value("${outData.clientSecret}")
|
||||||
|
String clientSecret;
|
||||||
|
@Value("${outData.url}")
|
||||||
|
String outUrl;
|
||||||
|
@Autowired
|
||||||
|
private ISysRoleService roleService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysDeptService deptService;
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService userService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysPermissionService permissionService;
|
||||||
|
@Autowired
|
||||||
|
private SsoClientService ssoClientService;
|
||||||
|
@Autowired
|
||||||
|
private SysLoginService loginService;
|
||||||
|
@Autowired
|
||||||
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
@PostMapping("/loginSso")
|
||||||
|
public AjaxResult loginSso(String code) {
|
||||||
|
|
||||||
|
AjaxResult ajax = AjaxResult.success();
|
||||||
|
RemoteUserInfo remoteUserInfo = null;
|
||||||
|
try{
|
||||||
|
Result result =ssoClientService.getAccessToken(code);
|
||||||
|
if (result.isSuccess()) {
|
||||||
|
AccessToken accessToken = (AccessToken) result.getData();
|
||||||
|
remoteUserInfo =ssoClientService.getRemoteUserInfo(accessToken);
|
||||||
|
|
||||||
|
//获取手机号
|
||||||
|
String phone = remoteUserInfo.getYddh();
|
||||||
|
//通过手机号查询用户
|
||||||
|
SysUser sysUser = userService.selectUserByphone(phone);
|
||||||
|
if(sysUser!=null){
|
||||||
|
sysUser.setUserName(remoteUserInfo.getXm());
|
||||||
|
sysUser.setNickName(remoteUserInfo.getYhm());
|
||||||
|
SysUser user = new SysUser();
|
||||||
|
user.setUserId(sysUser.getUserId());
|
||||||
|
user.setUserName(remoteUserInfo.getXm());
|
||||||
|
user.setNickName(remoteUserInfo.getYhm());
|
||||||
|
userService.updateUserProfile(user);
|
||||||
|
redisCache.deleteObject(sysUser.getPhonenumber());
|
||||||
|
redisCache.setCacheObject(sysUser.getPhonenumber(), accessToken.getAccess_token());
|
||||||
|
System.out.println(remoteUserInfo.getYddh());
|
||||||
|
String token = loginService.logingcy(sysUser); // 调用服务层生成Token
|
||||||
|
return AjaxResult.success().put(Constants.TOKEN, token);
|
||||||
|
}else{
|
||||||
|
log.info("进入没查询到用户");
|
||||||
|
SysUser user = new SysUser();
|
||||||
|
log.info(remoteUserInfo.getYhm());
|
||||||
|
user.setUserName(remoteUserInfo.getXm());
|
||||||
|
user.setNickName(remoteUserInfo.getYhm());
|
||||||
|
log.info(remoteUserInfo.getYddh());
|
||||||
|
user.setPhonenumber(remoteUserInfo.getYddh());
|
||||||
|
user.setStatus("0");
|
||||||
|
SysDept sysDept = deptService.selectDeptBysjgajgjgdm(remoteUserInfo.getGajgjgdm());
|
||||||
|
// if (sysDept!=null){
|
||||||
|
// user.setDeptId(sysDept.getDeptId());
|
||||||
|
// }else {
|
||||||
|
// user.setDeptId(10106L);
|
||||||
|
// }
|
||||||
|
user.setDeptId(10106L);
|
||||||
|
user.setRoleIds(new Long[]{2L});
|
||||||
|
user.setCreateBy("三方");
|
||||||
|
user.setCreateTime(new Date());
|
||||||
|
user.setPassword(SecurityUtils.encryptPassword("Syj!123456"));
|
||||||
|
log.info(user.toString());
|
||||||
|
userService.insertUser(user);
|
||||||
|
redisCache.deleteObject(sysUser.getPhonenumber());
|
||||||
|
redisCache.setCacheObject(user.getPhonenumber(), accessToken.getAccess_token());
|
||||||
|
System.out.println(remoteUserInfo.getYddh());
|
||||||
|
String token = loginService.logingcy(user); // 调用服务层生成Token
|
||||||
|
return AjaxResult.success().put(Constants.TOKEN, token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
return error();
|
||||||
|
}
|
||||||
|
return ajax;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,186 @@
|
||||||
|
package com.dkl.large.utli;
|
||||||
|
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.dkl.common.core.domain.entity.SysDept;
|
||||||
|
import com.dkl.common.utils.StringUtils;
|
||||||
|
import com.dkl.system.service.ISysDeptService;
|
||||||
|
import okhttp3.*;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Component("zzjgxxUtil")
|
||||||
|
public class zzjgxxUtil {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysDeptService deptService;
|
||||||
|
public void getDeptAll() throws IOException {
|
||||||
|
OkHttpClient client = new OkHttpClient();
|
||||||
|
|
||||||
|
// 构建请求体
|
||||||
|
MediaType mediaType = MediaType.parse("application/json");
|
||||||
|
RequestBody body = RequestBody.create(mediaType, "{\n" +
|
||||||
|
" \"jsonObject\": {\n" +
|
||||||
|
" \"key\": \"value\"\n" +
|
||||||
|
" },\n" +
|
||||||
|
" \"method\": \"GET\",\n" +
|
||||||
|
" \"pageNum\": 1,\n" +
|
||||||
|
" \"pageSize\": 1000000,\n" +
|
||||||
|
" \"path\": \"/edataservice/api/zzjgxx\",\n" +
|
||||||
|
" \"secret\": \"7231958b69385ff66a1900584a72c0b85dbc0b602d54ec7a23f9ccdeeb17018c\",\n" +
|
||||||
|
" \"sortParam\": \"zzjgdm\",\n" +
|
||||||
|
" \"sortType\": \"ASC\"\n" +
|
||||||
|
"}");
|
||||||
|
|
||||||
|
// 构建请求
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url("http://10.22.245.216:29999/jeecg-data-service/edataservice/api/")
|
||||||
|
.post(body)
|
||||||
|
.addHeader("Content-Type", "application/json")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// 执行请求并处理响应
|
||||||
|
try (Response response = client.newCall(request).execute()) {
|
||||||
|
// System.out.println("Response Code: " + response.code());
|
||||||
|
// System.out.println("Response Body: " + response.body().string());
|
||||||
|
String jsonString = response.body().string();
|
||||||
|
// 创建ObjectMapper实例
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
try {
|
||||||
|
// 解析JSON字符串为JsonNode对象
|
||||||
|
JsonNode rootNode = objectMapper.readTree(jsonString);
|
||||||
|
|
||||||
|
// 获取code字段的值
|
||||||
|
String code = rootNode.get("code").asText();
|
||||||
|
System.out.println("Code: " + code);
|
||||||
|
|
||||||
|
// 获取success字段的值
|
||||||
|
boolean success = rootNode.get("success").asBoolean();
|
||||||
|
System.out.println("Success: " + success);
|
||||||
|
|
||||||
|
// 获取data字段的值(是一个数组)
|
||||||
|
JsonNode dataNode = rootNode.get("result");
|
||||||
|
JsonNode dataList= dataNode.get("records");
|
||||||
|
// 遍历data数组中的每个元素
|
||||||
|
for (JsonNode deptNode : dataList) {
|
||||||
|
//获取所有部门
|
||||||
|
SysDept sysDept =new SysDept();
|
||||||
|
//如果组织机构机构代码不为空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("zzjgdm").asText())){
|
||||||
|
SysDept gainfo = deptService.selectDeptBygajgjgdm(deptNode.get("zzjgdm").asText());
|
||||||
|
//部门是空
|
||||||
|
if (gainfo == null) {
|
||||||
|
//创建
|
||||||
|
//上级组织机构不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("sjzzjg").asText())){
|
||||||
|
SysDept info = deptService.selectDeptBysjgajgjgdm(deptNode.get("sjzzjg").asText());
|
||||||
|
//如果上级机构存在
|
||||||
|
if (info != null) {
|
||||||
|
//部门名称 = 对接组织机构名称 zzjgmc
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("zzjgmc").asText())){
|
||||||
|
sysDept.setDeptName(deptNode.get("zzjgmc").asText());
|
||||||
|
}
|
||||||
|
sysDept.setParentId(info.getDeptId());
|
||||||
|
|
||||||
|
//显示顺序 = 对接显示顺序 xssx
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("xssx").asText())){
|
||||||
|
sysDept.setOrderNum(Integer.valueOf(deptNode.get("xssx").asText()));
|
||||||
|
}
|
||||||
|
|
||||||
|
//单位类别
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("dwlb").asText())){
|
||||||
|
sysDept.setDwlb(deptNode.get("dwlb").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
//组织机构单位性质类别 zzjgdwxzlbdm
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("zzjgdwxzlbdm").asText())){
|
||||||
|
sysDept.setGajgbmlbdm(deptNode.get("zzjgdwxzlbdm").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//单位级别
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("dwjb").asText())){
|
||||||
|
sysDept.setGajgbmlbdm(deptNode.get("dwjb").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
//组织机构代码
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("zzjgdm").asText())){
|
||||||
|
sysDept.setGajgjgdm(deptNode.get("zzjgdm").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
//上级组织机构不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("sjzzjg").asText())){
|
||||||
|
sysDept.setSjgajgjgdm(deptNode.get("sjzzjg").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
//组织机构简称不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("zzjgjc").asText())){
|
||||||
|
sysDept.setZzjgjc(deptNode.get("zzjgjc").asText());
|
||||||
|
}
|
||||||
|
//行政区划代码不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("xzqhdm").asText())){
|
||||||
|
sysDept.setXzqhdm(deptNode.get("xzqhdm").asText());
|
||||||
|
}
|
||||||
|
//单位类型不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("dwlx").asText())){
|
||||||
|
sysDept.setDwlx(deptNode.get("dwlx").asText());
|
||||||
|
}
|
||||||
|
//派出所类型代码不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("pcslxdm").asText())){
|
||||||
|
sysDept.setDwlb(deptNode.get("pcslxdm").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
//联系人不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("lxr").asText())){
|
||||||
|
sysDept.setLeader(deptNode.get("lxr").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
//联系电话不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("lxdh").asText())){
|
||||||
|
sysDept.setPhone(deptNode.get("lxdh").asText());
|
||||||
|
}
|
||||||
|
//值班电话不能不空
|
||||||
|
if(StringUtils.isNotEmpty( deptNode.get("zbdh").asText())){
|
||||||
|
sysDept.setZbdh(deptNode.get("zbdh").asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
//帐号状态(0正常 1停用)
|
||||||
|
sysDept.setStatus("0");
|
||||||
|
//删除状态
|
||||||
|
sysDept.setDelFlag("0");
|
||||||
|
//创建时间
|
||||||
|
sysDept.setCreateTime(new Date());
|
||||||
|
//创建人
|
||||||
|
sysDept.setCreateBy("admin");
|
||||||
|
//修改时间
|
||||||
|
sysDept.setUpdateTime(new Date());
|
||||||
|
//修改人
|
||||||
|
sysDept.setUpdateBy("admin");
|
||||||
|
deptService.insertDept(sysDept);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println(dataList);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue