Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsEnumDTO.java
@@ -1,6 +1,10 @@ package com.vci.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.vci.starter.web.util.VciDateUtil; import java.util.Date; import java.util.List; import java.util.Map; /** @@ -48,7 +52,28 @@ /** * æ¶é´æ³ï¼æ ¼å¼æ¯yyyy-MM-dd HH:mm:ss.SSS */ @JsonFormat(pattern = VciDateUtil.DateTimeMillFormat) private Date ts; /** * å建人 */ private String creator; /** * å建æ¶é´ */ private Date createTime; /** * æåä¿®æ¹äºº */ private String lastModifier; /** * æåä¿®æ¹æ¶é´ï¼æ ¼å¼æ¯yyyy-MM-dd HH:mm:ss */ private Date lastModifyTime; /** * ç±»çå ¨è·¯å¾ @@ -65,6 +90,51 @@ */ private Map<String,String> itemOidMaps; /** * æä¸¾é¡¹ */ private List<OsEnumItemDTO> items; public String getCreator() { return creator; } public Date getCreateTime() { return createTime; } public String getLastModifier() { return lastModifier; } public Date getLastModifyTime() { return lastModifyTime; } public void setCreator(String creator) { this.creator = creator; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public void setLastModifier(String lastModifier) { this.lastModifier = lastModifier; } public void setLastModifyTime(Date lastModifyTime) { this.lastModifyTime = lastModifyTime; } public void setItems(List<OsEnumItemDTO> items) { this.items = items; } public List<OsEnumItemDTO> getItems() { return items; } public String getOid() { return oid; } Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsEnumItemDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.vci.dto; /** * æä¸¾é¡¹æ°æ®ä¼ è¾å¯¹è±¡ * @author ludc * @date 2024/7/17 14:23 */ public class OsEnumItemDTO implements java.io.Serializable{ private static final long serialVersionUID = -900528102L; private String name; private String value; private String description; public void setName(String name) { this.name = name; } public void setValue(String value) { this.value = value; } public void setDescription(String description) { this.description = description; } public String getName() { return name; } public String getValue() { return value; } public String getDescription() { return description; } } Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OsEnumItemVO.java
@@ -31,7 +31,7 @@ /** * æä¸¾å¼ */ private String id; private String value; /** * æä¸¾æ¾ç¤ºåç§° @@ -95,12 +95,12 @@ this.pkEnum = pkEnum; } public String getId() { return id; public String getValue() { return value; } public void setId(String id) { this.id = id; public void setValue(String id) { this.value = id; } public String getName() { @@ -181,7 +181,7 @@ return "OsEnumItemVO{" + "oid='" + oid + '\'' + ", pkEnum='" + pkEnum + '\'' + ", id='" + id + '\'' + ", value='" + value + '\'' + ", name='" + name + '\'' + ", description='" + description + '\'' + ", btmname='" + btmname + '\'' + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
@@ -195,7 +195,7 @@ * @param password æ°çå¯ç * @param confirmPassword 确认å¯ç */ boolean changePassword(String userOid,String oldPassword, String password, String confirmPassword) throws PLException; boolean changePassword(String userOid,String oldPassword, String password, String confirmPassword) throws Exception; /** * æ´æ°ç¨æ·çå¯ç éè¯¯æ¬¡æ° Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
@@ -1028,15 +1028,18 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean changePassword(String userOid,String oldPassword, String password, String confirmPassword) throws PLException { String confirmPassword) throws Exception { WebUtil.alertNotNull(userOid,"ç¨æ·ä¸»é®",oldPassword,"ç»å½å¯ç ",password,"å¯ç ",confirmPassword,"确认å¯ç "); if(!password.equals(confirmPassword)){ throw new VciBaseException("å¯ç å确认å¯ç ä¸ç¸ç"); } //对æ§å¯ç åå¯ç è¿è¡è§£å¯ï¼ä¾¿äºæ¯å¯¹å¯ç ç¨ oldPassword = Func.decryptAes(oldPassword,"daliantan0v0vcip"); password = Func.decryptAes(password,"daliantan0v0vcip"); //å¯¹æ¯æ§å¯ç boolean b = this.checkPasswordEqual(oldPassword, userOid); if(!b){ throw new PLException("500", new String[] { "æ¨è¾å ¥çå¯ç ä¸ç»å½å¯ç ä¸ä¸è´,è¯·éæ°è¾å ¥!"}); } if(!password.equals(confirmPassword)){ throw new VciBaseException("å¯ç å确认å¯ç ä¸ç¸ç"); } SmUserVO smUserVO = getUserByUserOid(userOid); if(Func.isEmpty(smUserVO)){ @@ -1047,12 +1050,21 @@ if (!StringUtils.isBlank(error)) { throw new VciBaseException("å½å设置çå¯ç ï¼å¯ç çç¥æ ¡éªæªéè¿!"); } //TODO:èèæ¯å¦éè¦å°ä¿®æ¹æ¹å¼æ¹æç´æ¥è°ç¨å¹³å°çæ¥å£ï¼å 为ç°å¨çä¿®æ¹æ¹å¼æ²¡è½æ£ç¡®çæ´æ°ç¼å /*UserInfo userInfo = new UserInfo(); userInfo.id = userOid.trim(); userInfo.pwd = password; userInfo.pwdUpdateTime = System.currentTimeMillis(); boolean updateBoolean = platformClientUtil.getFrameworkService().updateUser(userInfo, new UserEntityInfo(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(), null)); return updateBoolean;*/ ThreeDES des = new ThreeDES();// å®ä¾åä¸ä¸ªå¯¹ï¿½? des.getKey("daliantan0v0");// çæå¯å String encPassword = des.getEncString(password); //ä¿®æ¹å¯ç çåæ¶éè¦å°å¯ç ä¿®æ¹æ¶é´ä¹æ´æ° String sql = "update pluser set plpassword = '" + encPassword + "', plpwdupdatetime = TO_DATE('" + Func.format(new Date(),"yyyy-MM-dd HH:mm:ss") +"','yyyy-MM-dd hh24:mi:ssxff') where pluid = '" + userOid.trim() + "'"; + Func.format(new Date(),"yyyy-MM-dd HH:mm:ss") +"','yyyy-MM-dd hh24:mi:ss') where pluid = '" + userOid.trim() + "'"; try { return platformClientUtil.getBOFactoryService().executeUpdateSql(sql); } catch (PLException vciError) { Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDepartmentQueryController.java
@@ -62,7 +62,7 @@ e.printStackTrace(); String exceptionMessage = "é¨é¨æ æ¥è¯¢æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(e.getMessage()); return BaseResult.fail(exceptionMessage); } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmPwdStrategyQueryController.java
@@ -55,7 +55,7 @@ e.printStackTrace(); String exceptionMessage = "å¯ç å®å ¨çç¥å表æ¥è¯¢æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(e.getMessage()); return BaseResult.fail(exceptionMessage); } } @@ -75,7 +75,7 @@ e.printStackTrace(); String exceptionMessage = "å¯ç å®å ¨çç¥ä¸æå表æ¥è¯¢æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(e.getMessage()); return BaseResult.fail(exceptionMessage); } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
@@ -206,7 +206,7 @@ @RequestMapping(value = "/changePassword",method = RequestMethod.POST) public BaseResult changePassword(String userOid,String oldPassword, String password, String confirmPassword) throws PLException { try { return BaseResult.success(userQueryService.changePassword(userOid, oldPassword, password, confirmPassword) ? "ä¿®æ¹å¯ç æåï¼":"ä¿®æ¹å¯ç 失败ï¼"); return userQueryService.changePassword(userOid, oldPassword, password, confirmPassword) ? BaseResult.success("ç¨æ·ä¿®æ¹æåï¼"):BaseResult.fail("ç¨æ·ä¿®æ¹å¤±è´¥ï¼"); }catch (Exception e){ e.printStackTrace(); String exceptionMessage = "ä¿®æ¹å¯ç æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); @@ -230,7 +230,7 @@ e.printStackTrace(); String exceptionMessage = "ç¨æ·ç®¡çå表æ¥è¯¢æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(e.getMessage()); return BaseResult.fail(exceptionMessage); } } @@ -259,7 +259,7 @@ @RequestMapping(value = "/updateUser",method = RequestMethod.PUT) public BaseResult updateUser(@RequestBody SmUserDTO smUserDTO){ try { return BaseResult.success(userQueryService.updateUser(smUserDTO) ? "ç¨æ·ä¿®æ¹æåï¼":"ç¨æ·ä¿®æ¹å¤±è´¥ï¼"); return userQueryService.updateUser(smUserDTO) ? BaseResult.success("ç¨æ·ä¿®æ¹æåï¼"):BaseResult.fail("ç¨æ·ä¿®æ¹å¤±è´¥ï¼"); }catch (Exception e){ e.printStackTrace(); String exceptionMessage = "ä¿®æ¹ç¨æ·æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebEnumController.java
@@ -1,5 +1,6 @@ package com.vci.web.controller; import com.vci.dto.OsEnumDTO; import com.vci.starter.web.annotation.controller.VciUnCheckRight; import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.pagemodel.BaseQueryObject; @@ -8,11 +9,12 @@ import com.vci.pagemodel.KeyValue; import com.vci.pagemodel.OsEnumItemVO; import com.vci.pagemodel.OsEnumVO; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.service.OsEnumServiceI; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -34,6 +36,11 @@ private OsEnumServiceI enumService; /** * æ¥å¿ */ private Logger logger = LoggerFactory.getLogger(getClass()); /** * è·åæä¸¾çä¸ææ¡ * @param comboxKey æä¸¾çåç§° * @return æä¸¾çä¸æå¼ @@ -45,6 +52,27 @@ return BaseResult.success(enumService.getEnum(comboxKey)); } /** * åç §æä¸¾å表 * @param baseQueryObject æ¥è¯¢æ¡ä»¶ * @return å表çå 容 */ @GetMapping( "/referDataGrid") @VciBusinessLog(operateName = "åç §æä¸¾å表") public DataGrid<OsEnumVO> referDataGrid(BaseQueryObject baseQueryObject){ return enumService.referDataGrid(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()); } /** * è·åæä¸¾çæç» * @param pkEnum æä¸¾çä¸»é® * @return æä¸¾çé项 */ @GetMapping("/gridEnumItemByOid") @VciBusinessLog(operateName = "è·åæä¸¾çæç»") public DataGrid<OsEnumItemVO> gridEnumItemByOid(String pkEnum){ return enumService.gridEnumItemByOid(pkEnum); } /** * è·åæ°æ®çå¯çº§ @@ -60,24 +88,97 @@ /** * æä¸¾å表 * @param baseQueryObject æ¥è¯¢æ¡ä»¶ * @param enumName æ¥è¯¢æ¡ä»¶name * @return å表çå 容 */ @GetMapping( "/gridEnum") @GetMapping( "/getEnumTypeList") @VciBusinessLog(operateName = "æä¸¾å表") public DataGrid<OsEnumVO> gridEnum(BaseQueryObject baseQueryObject){ return enumService.referDataGrid(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()); @VciUnCheckRight public BaseResult<List<OsEnumVO>> getEnumTypeList(String enumName) { try { return BaseResult.dataList(enumService.getEnumTypeList(enumName)); }catch (Exception e) { e.printStackTrace(); String exceptionMessage = "æä¸¾ç®¡çå表æ¥è¯¢æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } /** * è·åæä¸¾çæç» * @param pkEnum æä¸¾çä¸»é® * @return æä¸¾çé项 * æ·»å åæ¡æä¸¾ * @param osEnumDTO * @return å表çå 容 */ @GetMapping("/gridEnumItemByOid") @VciBusinessLog(operateName = "è·åæä¸¾çæç»") public DataGrid<OsEnumItemVO> gridEnumItemByOid(String pkEnum){ return enumService.gridEnumItemByOid(pkEnum); @PostMapping( "/addEnumType") @VciBusinessLog(operateName = "æ·»å æä¸¾") @VciUnCheckRight public BaseResult addEnumType(@RequestBody OsEnumDTO osEnumDTO) { try { return enumService.addEnumType(osEnumDTO) ? BaseResult.success("æä¸¾ç±»åæ·»å æåï¼"):BaseResult.fail("æä¸¾ç±»åæ·»å 失败ï¼"); }catch (Exception e) { e.printStackTrace(); String exceptionMessage = "å¢å æä¸¾ç±»åæ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } /** * ä¿®æ¹åæ¡æä¸¾ï¼å¸¦ä¿®æ¹æä¸¾é¡¹åè½ï¼ * @param osEnumDTO * @return å表çå 容 */ @PutMapping( "/updateEnumType") @VciBusinessLog(operateName = "ä¿®æ¹æä¸¾") @VciUnCheckRight public BaseResult updateEnumType(@RequestBody OsEnumDTO osEnumDTO) { try { return enumService.updateEnumType(osEnumDTO) ? BaseResult.success("æä¸¾ç±»åä¿®æ¹æåï¼"):BaseResult.fail("æä¸¾ç±»åä¿®æ¹å¤±è´¥ï¼"); }catch (Exception e) { e.printStackTrace(); String exceptionMessage = "ä¿®æ¹æä¸¾ç±»åæ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } /** * å 餿䏾 * @param osEnumDTOS * @return å表çå 容 */ @DeleteMapping( "/deleteEnumTypes") @VciBusinessLog(operateName = "å 餿䏾") @VciUnCheckRight public BaseResult deleteEnumTypes(@RequestBody List<OsEnumDTO> osEnumDTOS) { try { return enumService.deleteEnumTypes(osEnumDTOS) ? BaseResult.success("æä¸¾ç±»åå 餿åï¼"):BaseResult.fail("æä¸¾ç±»åå é¤å¤±è´¥ï¼"); }catch (Exception e) { e.printStackTrace(); String exceptionMessage = "å é¤æä¸¾ç±»åæ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } /** * æ¥çæä¸¾ç使ç¨èå´ * @param enumName * @return å表çå 容 */ @GetMapping( "/getUsedEnumList") @VciBusinessLog(operateName = "æ¥çæä¸¾ç使ç¨èå´") @VciUnCheckRight public BaseResult getUsedEnumList(String enumName) { try { return BaseResult.dataList(enumService.getUsedEnumList(enumName)); }catch (Exception e) { e.printStackTrace(); String exceptionMessage = "è·åæä¸¾ç使ç¨èå´æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBaseServiceI.java
@@ -63,7 +63,7 @@ } } String baseSql = "select oid,to_char(ts,'yyyy-mm-dd hh24:mi:ss') as ts,creator,to_char(createTime,'yyyy-mm-dd hh24:mi:ss') as createTime,modifier,to_char(modifyTime,'yyyy-mm-dd hh24:mi:ss') as modifyTime,name,label," + ("plenum".equalsIgnoreCase(tableName)?" '' as " :"") + "description from " + tableName ("plenumtype".equalsIgnoreCase(tableName)?" '' as " :"") + "description from " + tableName + (StringUtils.isNotBlank(whereSql)?(" where " + whereSql):""); baseSql += " order by lower(name) asc "; String sql = (StringUtils.isNotBlank(pageSql)?" select oid,ts,creator,createTime,modifier,modifyTime,name,label,description from (select A.* , rownum RN from (":"") @@ -99,7 +99,7 @@ dataList.add(obj); }); dataGrid.setData(dataList); List<Map> maps = boService.queryBySqlForMap("select count(oid) as total from plbtmtype " + (StringUtils.isNotBlank(whereSql)?(" where " + whereSql):""), null); List<Map> maps = boService.queryBySqlForMap("select count(*) as total from "+ tableName + (StringUtils.isNotBlank(whereSql)?(" where " + whereSql):""), null); dataGrid.setTotal(VciBaseUtil.getInt(maps.get(0).get("total").toString())); } return dataGrid; Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsEnumServiceI.java
@@ -1,5 +1,7 @@ package com.vci.web.service; import com.vci.corba.common.PLException; import com.vci.corba.omd.etm.EnumType; import com.vci.dto.OsEnumDTO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; @@ -59,6 +61,49 @@ List<OsEnumVO> selectAllEnum(); /** * æä¸¾å®ä¹å表æ¥è¯¢ï¼å¸¦æ¥è¯¢æ¡ä»¶ï¼ * @param enumName * @return æä¸¾çæ¾ç¤ºå¯¹è±¡ */ List<OsEnumVO> getEnumTypeList(String enumName) throws PLException; /** * æ¥çæä¸¾ç使ç¨èå´ * @param enumName * @return * @throws PLException */ List<OsEnumVO> getUsedEnumList(String enumName) throws PLException; /** * æ ¹æ®æä¸¾è±æåç§°è·åæä¸¾ç±»å * @param id * @return */ OsEnumVO getEnumTypeById(String id) throws PLException; /** * æ°å¢æä¸¾ç±»å * @param osEnumDTO * @return */ boolean addEnumType(OsEnumDTO osEnumDTO) throws PLException ; /** * ä¿®æ¹æä¸¾ç±»å * @param osEnumDTO * @return */ boolean updateEnumType(OsEnumDTO osEnumDTO) throws PLException ; /** * å é¤æä¸¾ç±»å * @param osEnumDTOS * @return */ boolean deleteEnumTypes(List<OsEnumDTO> osEnumDTOS) throws PLException; /** * æ¥è¯¢ææçæä¸¾æ å° * @return keyæ¯æä¸¾çè±æåç§° */ @@ -73,10 +118,10 @@ /** * æä¸¾çæ°æ®å¯¹è±¡è½¬æ¢ä¸ºæ¾ç¤ºå¯¹è±¡ * @param enumItem æ°æ®å¯¹è±¡ * @param enumType æ°æ®å¯¹è±¡ * @return æ¾ç¤ºå¯¹è±¡ */ OsEnumVO enumDO2VO(EnumType enumItem); OsEnumVO enumDO2VO(EnumType enumType); /** * æä¸¾æç»è½¬æ¢ä¸ºKV Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
@@ -195,9 +195,8 @@ machine.machine = clientInfo.getMachine(); String token = null; try { /*ThreeDES des = new ThreeDES();// å®ä¾åä¸ä¸ªå¯¹ï¿½? des.getKey("daliantan0v0");// çæå¯å String encPassword = des.getDesString(userDTO.getPassword());*/ //åç«¯ä¼ è¿æ¥çå¯ç æ¯ç»è¿å å¯ä¼ è¾çï¼æä»¥éè¦æç §çº¦å®è§£å¯ï¼åä¼ ç»å¹³å°è¿è¡æ¯å¯¹ userDTO.setPassword(Func.decryptAes(userDTO.getPassword(),"daliantan0v0vcip")); LoginResult chkRes = platformClientUtil.getFrameworkService().checkLogin(userDTO.getUserId(),userDTO.getPassword(), machine); loginResult.setFailCode(getErrorCode(chkRes)); //loginResult.setFailMsgArray(new String[]{userDTO.getUserId(), String.valueOf(chkRes.auxInfo)}); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
@@ -4,6 +4,8 @@ import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.etm.EnumItem; import com.vci.corba.omd.etm.EnumType; import com.vci.dto.OsEnumDTO; import com.vci.dto.OsEnumItemDTO; import com.vci.omd.utils.ObjectTool; import com.vci.starter.web.annotation.log.VciUnLog; import com.vci.starter.web.enumpck.UserSecretEnum; @@ -17,9 +19,11 @@ import com.vci.pagemodel.OsEnumItemVO; import com.vci.pagemodel.OsEnumVO; import com.vci.pagemodel.OsStatusVO; import com.vci.starter.web.util.WebThreadLocalUtil; import com.vci.web.service.OsEnumServiceI; import com.vci.web.service.OsLifeCycleServiceI; import com.vci.web.service.WebBoServiceI; import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; @@ -72,14 +76,12 @@ */ private Logger logger = LoggerFactory.getLogger(getClass()); /** * å è½½èªèº« */ @Autowired(required = false) @Lazy private OsEnumServiceI self; /** * 使ç¨ç¼å·è·åæä¸¾æç» @@ -98,13 +100,14 @@ int userSecret = WebUtil.getInt(WebUtil.getCurrentUserSessionInfoNotException().getUserSecret()); List<OsEnumItemVO> itemVOS = new ArrayList<>(); if(enumVO!=null && !CollectionUtils.isEmpty(enumVO.getItems())){ itemVOS = enumVO.getItems().stream().filter(item->WebUtil.getInt(item.getId()) <= userSecret).collect(Collectors.toList()); itemVOS = enumVO.getItems().stream().filter(item->WebUtil.getInt(item.getValue()) <= userSecret).collect(Collectors.toList()); } return itemVOS; }else{ return enumVOMap.getOrDefault(enumCode.toLowerCase(),new OsEnumVO()).getItems(); } } /** * è·åæä¸¾çå 容 * @param enumCode æä¸¾çç¼å·ï¼è±æåç§°ï¼ @@ -217,6 +220,197 @@ } /** * æä¸¾å®ä¹å表æ¥è¯¢ï¼ç¼åé颿¾ä¸å¸¦nameæ¥è¯¢æ¡ä»¶ï¼ * @param enumName * @return æä¸¾çæ¾ç¤ºå¯¹è±¡ */ @Override public List<OsEnumVO> getEnumTypeList(String enumName) throws PLException { return enumDO2VOs(Arrays.stream(platformClientUtil.getEnumService().getEnumTypes(enumName,1,1)).collect(Collectors.toList())); } /** * æ¥çæä¸¾ç使ç¨èå´ * @param enumName * @return * @throws PLException */ @Override public List<OsEnumVO> getUsedEnumList(String enumName) throws PLException { return null; } /** * æ ¹æ®æä¸¾è±æåç§°è·åæä¸¾ç±»å * @param id * @return */ @Override public OsEnumVO getEnumTypeById(String id) throws PLException { if (Func.isBlank(id)) { return null; } EnumType enumType = platformClientUtil.getEnumService().getEnumTypeByName(id); return enumDO2VO(enumType); } /** * æ°å¢æä¸¾ç±»å * @param osEnumDTO * @return */ @Override public boolean addEnumType(OsEnumDTO osEnumDTO) throws PLException { //1ãæä¸¾å¼å¤ç©º VciBaseUtil.alertNotNull( osEnumDTO,"æä¸¾ç±»å对象", osEnumDTO.getId(),"æä¸¾åç§°", osEnumDTO.getEnumValueDataType(),"æä¸¾çç±»å", osEnumDTO.getLength(),"æä¸¾é¿åº¦" ); //2ãæä¸¾ç±»ååç§°æ£åæ ¡éªåæ¥é if(!osEnumDTO.getId().matches("^[A-Za-z]+$")){ throw new PLException("500", new String[] { "æä¸¾åç§°åªè½ä¸ºè±æåæ¯!"}); } OsEnumVO osEnumVO = this.getEnumTypeById(osEnumDTO.getId()); if(Func.isNotEmpty(osEnumVO) && Func.isNotBlank(osEnumVO.getOid())){ throw new PLException("500", new String[] { "æä¸¾åç§°å·²åå¨ï¼è¯·ä¿®æ¹æä¸¾åç§°!"}); } //æä¸¾é¡¹åç§°å¤éçæä½ checkOsEnumItem(osEnumDTO); //é»è®¤å¼å¤ç String userId = "developer";//WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); osEnumDTO.setCreator(userId); osEnumDTO.setLastModifier(userId); return platformClientUtil.getEnumService().addEnumType(this.osEnumDTO2EnumType(osEnumDTO)); } /** * ä¿®æ¹æä¸¾ç±»å * @param osEnumDTO * @return */ @Override public boolean updateEnumType(OsEnumDTO osEnumDTO) throws PLException { //1ãæä¸¾å¼å¤ç©º VciBaseUtil.alertNotNull( osEnumDTO,"æä¸¾ç±»å对象", osEnumDTO.getOid(),"æä¸¾ç主é®", osEnumDTO.getId(),"æä¸¾åç§°", osEnumDTO.getEnumValueDataType(),"æä¸¾çç±»å", osEnumDTO.getLength(),"æä¸¾é¿åº¦" ); //2ãæä¸¾ç±»ååç§°(åç§°ä¸å 许修æ¹)æä»¥å¯ä»¥ç¨åç§°æ¥è¯¢æ¯å¦åå¨ OsEnumVO osEnumVO = this.getEnumTypeById(osEnumDTO.getId()); if(Func.isEmpty(osEnumVO) || Func.isBlank(osEnumVO.getOid())){ throw new PLException("500", new String[] { "å½åä¿®æ¹æä¸¾å¯¹è±¡ä¸åå¨ï¼è¯·å·æ°åéè¯!"}); } //3ãæä¸¾é¡¹å¤éï¼åé¿åº¦çæ ¡éª checkOsEnumItem(osEnumDTO); //å°osEnumVOä¸çé»è®¤å¼èµå¼ç»osEnumDTO对象 String userId = "developer";//WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); osEnumDTO.setLastModifier(userId); osEnumDTO.setCreator(osEnumVO.getCreator()); osEnumDTO.setCreateTime(osEnumVO.getCreateTime()); //ä¿®æ¹åå 餿¶tsåæ°ä¸ºåç«¯å¿ ä¼ åæ° return platformClientUtil.getEnumService().modifyEnumType(osEnumDTO2EnumType(osEnumDTO)); } /** * å é¤æä¸¾ç±»å(å å«å 餿䏾项åè½) * @param osEnumDTOS * @return */ @Override public boolean deleteEnumTypes(List<OsEnumDTO> osEnumDTOS) throws PLException { VciBaseUtil.alertNotNull(osEnumDTOS,"å¾ å é¤çæä¸¾å表"); //å¹³å°çdeleteEnumTypesæ¹æ³å¿ ä¼ ä¸ä¸ªåæ°ï¼oidãnameåts List<EnumType> enumTypes = new ArrayList<>(); for(OsEnumDTO osEnumDTO : osEnumDTOS){ //oidåtså¤ç©º String oid = osEnumDTO.getOid(); //name主è¦ç¨æ¥å¯¹ç¼åæ°æ®å é¤ String name = osEnumDTO.getName(); Date ts = osEnumDTO.getTs(); if(Func.isBlank(oid) || Func.isBlank(name) || Func.isEmpty(ts)){ throw new PLException("500",new String[]{"å¾ å é¤çæä¸¾å表ä¸ä¸»é®ãoidãåè°æ´æ¶é´ãtsãä¸è½ä¸ºç©ºï¼"}); } EnumType enumType = new EnumType(); enumType.oid = oid; enumType.name = name; enumType.ts = Func.format(ts,VciDateUtil.DateTimeMillFormat); enumTypes.add(enumType); } if(Func.isEmpty(enumTypes)){ return false; } return platformClientUtil.getEnumService().deleteEnumTypes(enumTypes.toArray(new EnumType[enumTypes.size()])); } /** * æä¸¾é¡¹æ ¡éª * @param osEnumDTO * @return æ ¡éªå¤±è´¥ç´æ¥æåºå¼å¸¸ï¼å¦åä¸ä¼åä»»ä½è¿å */ private void checkOsEnumItem(OsEnumDTO osEnumDTO) throws PLException { List<OsEnumItemDTO> items = osEnumDTO.getItems(); if (Func.isNotEmpty(items)) { //è·åæ£åï¼ä¸»è¦æ¯é对Integerç±»åçæ¶å String regular = "Integer".equals(osEnumDTO.getEnumValueDataType()) ? "^[0-9]+$" : ""; //å©ç¨setçaddè¿åå¼è¿è¡nameå¤é Set<String> uniqueNames = new HashSet<>(); for (OsEnumItemDTO item : items) { // 夿name屿§æ¯å¦æéå¤çå¼ if (!uniqueNames.add(item.getName())) { throw new PLException("500", new String[] {"以䏿䏾项åç§°: ã" + item.getName()+ "ãéå¤ï¼è¯·ä¿®æ¹æä¸¾é¡¹ååéè¯!"}); } //夿æä¸¾å¼æ¯å¦è¶ è¿è®¾å®é¿åº¦ if (item.getValue().length() > osEnumDTO.getLength()) { throw new PLException("500", new String[] {"æä¸¾é¡¹å称为ï¼ã" + item.getName() + "ãçæä¸¾å¼é¿åº¦ï¼è¶ è¿éå®é¿åº¦ã" + osEnumDTO.getLength() + "ã"}); } //æä¸¾ç±»åæ£åæ ¡éª if(Func.isNotBlank(regular) && !item.getValue().matches(regular)){ throw new PLException("500", new String[] { "æä¸¾å¼åªè½ä¸ºã" + ("String".equals(osEnumDTO.getEnumValueDataType()) ? "å符串":"æ´å") + "ãç±»å!"}); } } } } /** * æ°å¹³å°æä¸¾DTO对象转平å°EnumType对象 * @param osEnumDTO * @return */ private EnumType osEnumDTO2EnumType(OsEnumDTO osEnumDTO){ EnumType enumType = new EnumType(); enumType.oid = osEnumDTO.getOid(); enumType.name = osEnumDTO.getId(); enumType.label = osEnumDTO.getName(); enumType.length = osEnumDTO.getLength(); enumType.creator = osEnumDTO.getCreator(); enumType.ts = Func.format((Func.isNotEmpty(osEnumDTO.getTs()) ? osEnumDTO.getTs():new Date()),VciDateUtil.DateTimeMillFormat); enumType.createTime = Func.isNotEmpty(osEnumDTO.getCreateTime()) ? osEnumDTO.getCreateTime().getTime():System.currentTimeMillis(); enumType.modifier = osEnumDTO.getLastModifier(); enumType.modifyTime = System.currentTimeMillis(); enumType.type = osEnumDTO.getEnumValueDataType(); //å¤çæä¸¾é¡¹ List<EnumItem> enumItems = new ArrayList<>(); List<OsEnumItemDTO> items = osEnumDTO.getItems(); if(Func.isNotEmpty(items)){ items.stream().forEach(item->{ EnumItem enumItem = new EnumItem(); enumItem.name = item.getName(); enumItem.value = item.getValue(); enumItem.description = item.getDescription(); enumItems.add(enumItem); }); } enumType.items = enumItems.toArray(new EnumItem[enumItems.size()]); return enumType; } /** * æ¥è¯¢ææçæä¸¾æ å° * * @return keyæ¯æä¸¾çè±æåç§° @@ -246,43 +440,45 @@ /** * æä¸¾çæ°æ®å¯¹è±¡è½¬æ¢ä¸ºæ¾ç¤ºå¯¹è±¡ * * @param enumItem æ°æ®å¯¹è±¡ * @param enumType æ°æ®å¯¹è±¡ * @return æ¾ç¤ºå¯¹è±¡ */ @Override public OsEnumVO enumDO2VO(EnumType enumItem) { public OsEnumVO enumDO2VO(EnumType enumType) { OsEnumVO enumVO = new OsEnumVO(); if(enumItem!=null){ enumVO.setOid(enumItem.oid); enumVO.setCreator(enumItem.creator); enumVO.setLastModifier(enumItem.modifier); enumVO.setId(enumItem.name); enumVO.setName(enumItem.label); enumVO.setEnumValueDataType(enumItem.type); enumVO.setLength((int) enumItem.length); if(enumType!=null){ enumVO.setOid(enumType.oid); enumVO.setCreator(enumType.creator); enumVO.setLastModifier(enumType.modifier); enumVO.setId(enumType.name); enumVO.setName(enumType.label); enumVO.setEnumValueDataType(enumType.type); enumVO.setEnumValueDataTypeText("String".equalsIgnoreCase(enumType.type) ? "å符串":"æ´å"); enumVO.setLength((int) enumType.length); try { enumVO.setLastModifyTime(new Date(enumItem.createTime)); enumVO.setLastModifyTime(new Date(enumType.createTime)); } catch (Exception e) { e.printStackTrace(); } try { enumVO.setCreateTime(new Date(enumItem.createTime)); enumVO.setCreateTime(new Date(enumType.createTime)); } catch (Exception e) { e.printStackTrace(); } try { enumVO.setTs(VciDateUtil.str2Date(enumItem.ts,VciDateUtil.DateTimeMillFormat)); enumVO.setTs(VciDateUtil.str2Date(enumType.ts,VciDateUtil.DateTimeMillFormat)); } catch (Exception e) { e.printStackTrace(); } //æä¸¾é¡¹å¤ç List<OsEnumItemVO> itemVOS = new ArrayList<>(); Map<String,String> itemVOMap = new HashMap<>(); if(enumItem.items!=null && enumItem.items.length > 0){ for(int i = 0 ; i < enumItem.items.length ; i ++){ if(enumType.items!=null && enumType.items.length > 0){ for(int i = 0 ; i < enumType.items.length ; i ++){ OsEnumItemVO enumItemVO = new OsEnumItemVO(); EnumItem enumChild = enumItem.items[i]; enumItemVO.setId(enumChild.value); EnumItem enumChild = enumType.items[i]; enumItemVO.setValue(enumChild.value); enumItemVO.setName(enumChild.name); enumItemVO.setDescription(enumChild.description); itemVOS.add(enumItemVO); @@ -307,7 +503,7 @@ if(!CollectionUtils.isEmpty(enumItemVO)){ enumItemVO.forEach(itemVO->{ KeyValue keyValue = new KeyValue(); keyValue.setKey(itemVO.getId()); keyValue.setKey(itemVO.getValue()); keyValue.setValue(itemVO.getName()); keyValueList.add(keyValue); }); @@ -421,7 +617,7 @@ } /** * åç §æä¸¾çä¿¡æ¯ * åç §æä¸¾çä¿¡æ¯ ä¸å»ºè®®ä½¿ç¨è¿ä¸ªæ¹æ³ï¼å 为æ¯sqlæ¼æ¥åçæ¥è¯¢ * * @param conditionMap æ¥è¯¢æ¡ä»¶ * @param pageHelper å页 @@ -429,7 +625,7 @@ */ @Override public DataGrid<OsEnumVO> referDataGrid(Map<String, String> conditionMap, PageHelper pageHelper) { DataGrid<OsEnumVO> dataGrid = queryObjectServiceInfoBySql(conditionMap, pageHelper, "plenum",OsEnumVO.class,null); DataGrid<OsEnumVO> dataGrid = queryObjectServiceInfoBySql(conditionMap, pageHelper, "plenumtype",OsEnumVO.class,null); return dataGrid; } @@ -454,7 +650,6 @@ return dataGrid; } /** * æ¸ é¤ç¼å */ @@ -462,4 +657,5 @@ public void clearCache() { } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DigestUtil.java
@@ -1,14 +1,18 @@ package com.vci.web.util; import com.vci.corba.common.PLException; import com.vci.starter.web.exception.VciBaseException; import org.apache.commons.codec.binary.Hex; import org.springframework.lang.Nullable; import org.springframework.util.DigestUtils; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.*; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.util.Base64; /** * å å¯ç¸å ³å·¥å ·ç±»ç´æ¥ä½¿ç¨Spring utilå°è£ ï¼åå°jarä¾èµ @@ -327,6 +331,32 @@ } /** * aesè§£å¯ * @param secretKey ç§é¥ * @param encryptedData Data * @return digest as a hex string */ public static String decryptAes(String encryptedData, String secretKey) throws Exception { // AES å¯é¥é¿åº¦éè¦æ¯ 128, 192, æ 256 ä½ï¼16, 24, æ 32 åèï¼ byte[] keyBytes = secretKey.getBytes("UTF-8"); SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); // åå§ååé IV ä¹éè¦æ¯ 128 ä½ï¼16 åèï¼ byte[] ivBytes = secretKey.substring(0, 16).getBytes("UTF-8"); IvParameterSpec iv = new IvParameterSpec(ivBytes); // è§£å¯ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, key, iv); // è§£å¯çæ°æ®éè¦æ¯ Base64 ç¼ç çï¼å 为 JavaScript ç CryptoJS é»è®¤è¿å Base64 ç¼ç çå符串 byte[] decodedValue = Base64.getDecoder().decode(encryptedData); byte[] decryptedBytes = cipher.doFinal(decodedValue); return new String(decryptedBytes, "UTF-8"); } /** * digest HMac * * @param algorithm ç®æ³ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/Func.java
@@ -1232,6 +1232,16 @@ } /** * AES è§£å¯ * @param encryptedData * @param secretKey * @return */ public static String decryptAes(String encryptedData, String secretKey) throws Exception { return DigestUtil.decryptAes(encryptedData, secretKey); } /** * hmacMd5 Hex * * @param bytes Data to digest