package com.vci.web.service.impl;
|
|
import com.vci.corba.common.PLException;
|
import com.vci.corba.common.data.UserEntityInfo;
|
import com.vci.corba.framework.data.AppConfigCategoryInfo;
|
import com.vci.corba.framework.data.AppConfigDetailInfo;
|
import com.vci.corba.omd.etm.EnumItem;
|
import com.vci.corba.omd.etm.EnumType;
|
import com.vci.starter.web.pagemodel.BaseResult;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.starter.web.util.WebThreadLocalUtil;
|
import com.vci.web.service.SecretGradeServiceI;
|
import com.vci.web.util.PlatformClientUtil;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 密级管理服务
|
* @author ludc
|
* @date 2024/10/25 16:49
|
*/
|
@Service
|
public class SecretGradeServiceImpl implements SecretGradeServiceI {
|
|
@Autowired
|
private PlatformClientUtil platformClientUtil;
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 获取密级管理配置
|
* @return
|
*/
|
@Override
|
public Map<String, Boolean> getSecretGradeConfig() throws PLException {
|
Map<String, Boolean> returnMap = new HashMap<>();
|
//map.put();
|
String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
|
UserEntityInfo userEntityInfo = new UserEntityInfo(userId,"");
|
AppConfigDetailInfo userConfigDetail = platformClientUtil.getFrameworkService().getAppConfigDetailByKey("userSecuritySwith", userEntityInfo);
|
AppConfigDetailInfo ipConfigDetail = platformClientUtil.getFrameworkService().getAppConfigDetailByKey("ipSecuritySwitch",userEntityInfo);
|
if ("on".equals(userConfigDetail.value)) {
|
returnMap.put("userSecuritySwith",true);
|
}else{
|
returnMap.put("userSecuritySwith",false);
|
}
|
|
if ("on".equals(ipConfigDetail.value)) {
|
returnMap.put("ipSecuritySwitch",true);
|
}else{
|
returnMap.put("ipSecuritySwitch",false);
|
}
|
return returnMap;
|
}
|
|
/**
|
* 用户/机器密级停启配置保存
|
* @param secretGradeMap
|
* @return
|
*/
|
@Override
|
public BaseResult saveSecretGrade(Map<String, Boolean> secretGradeMap){
|
VciBaseUtil.alertNotNull(secretGradeMap,"密级配置对象");
|
Boolean userSecuritySwith = secretGradeMap.getOrDefault("userSecuritySwith", false);
|
Boolean ipSecuritySwitch = secretGradeMap.getOrDefault("ipSecuritySwitch", false);
|
|
try{
|
String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
|
UserEntityInfo userEntityInfo = new UserEntityInfo(userId,"");
|
AppConfigCategoryInfo[] categories = platformClientUtil.getFrameworkService().getAppConfigCategorys(userEntityInfo);
|
String secretGradeCategoryId = "";
|
for (int i = 0; i < categories.length; i++) {
|
if ("系统密级配置".equals(categories[i].name)) {
|
secretGradeCategoryId = categories[i].id;
|
break;
|
}
|
}
|
|
if ("".equals(secretGradeCategoryId)) {
|
AppConfigCategoryInfo categoryObj = new AppConfigCategoryInfo();
|
categoryObj.name = "系统密级配置";
|
categoryObj.desc = "系统密级配置";
|
secretGradeCategoryId = platformClientUtil.getFrameworkService().saveAppConfigCategory(categoryObj,userEntityInfo);
|
}
|
|
AppConfigDetailInfo userConfigDetail = platformClientUtil.getFrameworkService().getAppConfigDetailByKey("userSecuritySwith", userEntityInfo);
|
AppConfigDetailInfo ipConfigDetail = platformClientUtil.getFrameworkService().getAppConfigDetailByKey("ipSecuritySwitch",userEntityInfo);
|
|
if (ipSecuritySwitch) {
|
if (ipConfigDetail.id != null && !"".equals(ipConfigDetail.id)) {
|
ipConfigDetail.value = "on";
|
boolean res = platformClientUtil.getFrameworkService().updateAppConfigDetail(ipConfigDetail,userEntityInfo);
|
System.out.println("ip配置修改结果-------" + res);
|
} else {
|
ipConfigDetail = new AppConfigDetailInfo();
|
ipConfigDetail.key = "ipSecuritySwitch";
|
ipConfigDetail.value = "on";
|
ipConfigDetail.name = "机器密级停启";
|
ipConfigDetail.desc = "value值为on时代表机器密级开启,值为其他或者不配置时代表不开启。";
|
ipConfigDetail.categoryId = secretGradeCategoryId;
|
String res = platformClientUtil.getFrameworkService().saveAppConfigDetail(ipConfigDetail,userEntityInfo);
|
System.out.println("ip配置保存结果-------" + res);
|
}
|
} else {
|
if (ipConfigDetail.id != null && !"".equals(ipConfigDetail.id)) {
|
ipConfigDetail.value = "off";
|
platformClientUtil.getFrameworkService().updateAppConfigDetail(ipConfigDetail,userEntityInfo);
|
}
|
}
|
|
if (userSecuritySwith) {
|
if (userConfigDetail.id != null && !"".equals(userConfigDetail.id)) {
|
userConfigDetail.value = "on";
|
boolean res = platformClientUtil.getFrameworkService().updateAppConfigDetail(userConfigDetail,userEntityInfo);
|
System.out.println("user配置修改结果-------" + res);
|
} else {
|
userConfigDetail = new AppConfigDetailInfo();
|
userConfigDetail.key = "userSecuritySwith";
|
userConfigDetail.value = "on";
|
userConfigDetail.name = "用户密级停启";
|
userConfigDetail.categoryId = secretGradeCategoryId;
|
userConfigDetail.desc = ("value值为on时代表用户密级开启,值为其他或者不配置时代表不开启。");
|
String res = platformClientUtil.getFrameworkService().saveAppConfigDetail(userConfigDetail,userEntityInfo);
|
System.out.println("user配置保存结果-------" + res);
|
}
|
updateUserSecretGrade();
|
} else {
|
if (userConfigDetail.id != null && !"".equals(userConfigDetail.id)) {
|
userConfigDetail.value = "off";
|
boolean res = platformClientUtil.getFrameworkService().updateAppConfigDetail(userConfigDetail,userEntityInfo);
|
System.out.println("user配置修改结果-------" + res);
|
}
|
}
|
return BaseResult.success("保存配置成功");
|
}catch (Exception e){
|
String errorLog = "保存配置失败,原因:"+VciBaseUtil.getExceptionMessage(e);
|
logger.error(errorLog);
|
return BaseResult.fail(errorLog);
|
}
|
}
|
|
/**
|
* 修改用户的密集
|
* @throws PLException
|
*/
|
private void updateUserSecretGrade() throws PLException {
|
EnumType enumType = platformClientUtil.getEnumService().getEnumTypeByName("usersecurityenum");
|
EnumItem[] children = enumType.items;
|
int grade = 10;
|
if (children.length > 0) {
|
grade = Integer.parseInt(children[0].value);
|
for (int i = 0; i < children.length; i++) {
|
EnumItem child = children[i];
|
if (grade >= Integer.parseInt(child.value)) {
|
grade = Integer.parseInt(child.value);
|
}
|
}
|
}
|
String updateSql = "update pluser set plsecretgrade = '" + grade + "' " +
|
"where plsecretgrade is null";
|
platformClientUtil.getBOFService().executeUpdateSql(updateSql);
|
}
|
|
}
|