package com.vci.web.service.impl; import com.vci.client.common.providers.ClientServiceProvider; import com.vci.common.exception.VciException; 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 javax.swing.*; 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 getSecretGradeConfig() throws PLException { Map 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 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); } }