|
|
|
@ -1,14 +1,12 @@ |
|
|
|
|
package com.dxhy.admin.sys.service.impl; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
@ -32,6 +30,12 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
|
@Service("ssoLoginService") |
|
|
|
|
@Slf4j |
|
|
|
|
public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
|
|
|
|
|
private static final String LOGGER_MSG = "(请求http访问)"; |
|
|
|
|
|
|
|
|
|
@Value("${sdny.xxUrl}") |
|
|
|
|
private String xxUrl; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private SysUserService sysUserService; |
|
|
|
|
@Resource |
|
|
|
@ -50,14 +54,19 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
@Override |
|
|
|
|
public boolean saveUser(SsoUser user) { |
|
|
|
|
|
|
|
|
|
String taxNoInfo = getTaxNoInfo(xxUrl, ""); |
|
|
|
|
List<SaleTaxnoEntity> taxnoList = JSONObject.parseArray(taxNoInfo,SaleTaxnoEntity.class); |
|
|
|
|
Map<String, String> taxnos = taxnoList.stream().collect(Collectors.toMap(SaleTaxnoEntity::getGroupId, SaleTaxnoEntity::getXhfNsrsbh)); |
|
|
|
|
log.info("从销项获取的税号列表为:{}",taxnos); |
|
|
|
|
|
|
|
|
|
if (user.getUserSource() == 1) { |
|
|
|
|
|
|
|
|
|
// 保存 机构信息
|
|
|
|
|
boolean insertOrg = this.insertOrg(user); |
|
|
|
|
boolean insertOrg = this.insertOrg(user,taxnos); |
|
|
|
|
// 保存角色信息
|
|
|
|
|
boolean insertRole = this.insertRole(user); |
|
|
|
|
// 保存用户信息
|
|
|
|
|
boolean insertUser = this.insertUser(user); |
|
|
|
|
boolean insertUser = this.insertUser(user,taxnos); |
|
|
|
|
|
|
|
|
|
log.info("insertOrg = {},insertRole={},insertUser",insertOrg,insertRole,insertUser); |
|
|
|
|
|
|
|
|
@ -70,12 +79,12 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean insertUser(SsoUser user) { |
|
|
|
|
public boolean insertUser(SsoUser user,Map<String, String> taxnos) { |
|
|
|
|
try { |
|
|
|
|
SysUserEntity userEntity = this.toUser(user); |
|
|
|
|
// 先删除用户信息,在新增
|
|
|
|
|
sysUserService.deleteUserBigb(userEntity.getUserId()); |
|
|
|
|
sysUserService.saveUser(userEntity); |
|
|
|
|
sysUserService.saveUser(userEntity,taxnos); |
|
|
|
|
return true; |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("insertUser 报错信息为{}",e); |
|
|
|
@ -110,9 +119,9 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
* 用户信息 |
|
|
|
|
* @return 返回信息 |
|
|
|
|
*/ |
|
|
|
|
public boolean insertOrg(SsoUser user) { |
|
|
|
|
public boolean insertOrg(SsoUser user,Map<String, String> taxnos) { |
|
|
|
|
try { |
|
|
|
|
List<SysDeptEntity> deptList = this.toDept(user); |
|
|
|
|
List<SysDeptEntity> deptList = this.toDept(user,taxnos); |
|
|
|
|
if (deptList != null && deptList.size() > 0) { |
|
|
|
|
sysDeptService.saveDeptList(deptList); |
|
|
|
|
} |
|
|
|
@ -125,7 +134,7 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public List<SysDeptEntity> toDept(SsoUser user) { |
|
|
|
|
public List<SysDeptEntity> toDept(SsoUser user,Map<String, String> taxnos) { |
|
|
|
|
List<SysDeptEntity> deptList = new ArrayList<>(); |
|
|
|
|
int deptSum = 0; |
|
|
|
|
SysDeptEntity dept; |
|
|
|
@ -135,7 +144,12 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
dept = new SysDeptEntity(); |
|
|
|
|
dept.setDeptId(entity.getDeptId()); |
|
|
|
|
dept.setParentId(entity.getParentId()); |
|
|
|
|
dept.setTaxno(entity.getTaxpayerCode()); |
|
|
|
|
if(StringUtils.isNotBlank(entity.getTaxpayerCode())){ |
|
|
|
|
dept.setTaxno(entity.getTaxpayerCode()); |
|
|
|
|
}else{ |
|
|
|
|
dept.setTaxno(taxnos.get(entity.getDeptId())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dept.setTaxname(entity.getName()); |
|
|
|
|
dept.setName(entity.getName()); |
|
|
|
|
dept.setLinkman(""); |
|
|
|
@ -146,7 +160,7 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
dept.setCompany(AdminConfig.company); |
|
|
|
|
dept.setOrgCode(entity.getEnterpriseNumbers()); |
|
|
|
|
String deptType = this.toDeptType(String.valueOf(entity.getDeptType()), |
|
|
|
|
String.valueOf(entity.getParentId()), entity.getTaxpayerCode()); |
|
|
|
|
String.valueOf(entity.getParentId()), entity.getTaxpayerCode()); |
|
|
|
|
dept.setDeptType(deptType); |
|
|
|
|
dept.setOrgType(this.toOrgType(dept.getDeptType(), String.valueOf(entity.getParentId()))); |
|
|
|
|
dept.setUpgradeStatus(AdminConfig.upgradeStatus); |
|
|
|
@ -377,7 +391,7 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
sysMenuEntity = new SysMenuEntity(); |
|
|
|
|
String systemSign = sysMenu.getSystemSign(); |
|
|
|
|
if ("JXXT".equals(systemSign) || "QYPC".equals(systemSign) || "GYL".equals(systemSign) |
|
|
|
|
|| "YWXT".equals(systemSign)) { |
|
|
|
|
|| "YWXT".equals(systemSign)) { |
|
|
|
|
if (StringUtils.isNotBlank(sysMenu.getUrl()) && StringUtils.isNotBlank(sysMenu.getName())) { |
|
|
|
|
sysMenuEntity.setMenuId(sysMenu.getMenuId()); |
|
|
|
|
sysMenuEntity.setParentId(sysMenu.getParentId()); |
|
|
|
@ -406,7 +420,7 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
} else if (1 == sysMenu.getType() || 2 == sysMenu.getType()) { |
|
|
|
|
String[] split = sysMenu.getUrl().split("/"); |
|
|
|
|
SysMenuEntity menu = |
|
|
|
|
this.queryMenu("/" + split[split.length - 1], sysMenu.getType(), sysMenu.getSystemSign()); |
|
|
|
|
this.queryMenu("/" + split[split.length - 1], sysMenu.getType(), sysMenu.getSystemSign()); |
|
|
|
|
if (menu != null) { |
|
|
|
|
sysMenuEntity.setComponent(menu.getComponent()); |
|
|
|
|
sysMenuEntity.setIcon(menu.getIcon()); |
|
|
|
@ -520,7 +534,7 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
return runMap; |
|
|
|
|
} |
|
|
|
|
AdminSsoConfigModel adminSsoConfigModel = |
|
|
|
|
JSON.parseObject(sysConfigEntity.getParamValue(), AdminSsoConfigModel.class); |
|
|
|
|
JSON.parseObject(sysConfigEntity.getParamValue(), AdminSsoConfigModel.class); |
|
|
|
|
String body = HttpRequest.post(adminSsoConfigModel.getQueryUserUrl()).header("token", token).execute().body(); |
|
|
|
|
log.info("获取用户信息:{}", body); |
|
|
|
|
SsoUserReModel ssoUserReModel = JSON.parseObject(body, SsoUserReModel.class); |
|
|
|
@ -659,7 +673,7 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
for (SsoUserTaxplayercodeDept sysDeptEntity : dept) { |
|
|
|
|
// 获取税号信息
|
|
|
|
|
SysDeptEntity deptEntity = |
|
|
|
|
sysDeptService.queryDeptTaxno(configModel.getCompany(), sysDeptEntity.getTaxpayerCode()); |
|
|
|
|
sysDeptService.queryDeptTaxno(configModel.getCompany(), sysDeptEntity.getTaxpayerCode()); |
|
|
|
|
if (deptEntity != null) { |
|
|
|
|
userOrg = new SysUserOrgEntity(); |
|
|
|
|
userOrg.setCompany(configModel.getCompany()); |
|
|
|
@ -712,4 +726,12 @@ public class SsoLoginServiceImpl implements SsoLoginService { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public String getTaxNoInfo(String url, String request) { |
|
|
|
|
long startTime = System.currentTimeMillis(); |
|
|
|
|
String body = HttpRequest.post(url).body(request).timeout(300000).execute().body(); |
|
|
|
|
long endTime = System.currentTimeMillis(); |
|
|
|
|
log.debug("{}以字符串调用post请求url:{},耗时:{}", LOGGER_MSG, url, endTime - startTime); |
|
|
|
|
return body; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|