优化这段代码try{ //1.获取参数值YX220 String rolepks = YSPubUtils.getExpHintLoanByRole(pk_corp); //2.查询出参数值为空,则全部角色提示 if(YCPubUtils.isEmpty(rolepks)){ return true; } //3.当前登录用户为空,不提示 if (YCPubUtils.isEmpty(userpk)){ return false; } String[] roles = rolepks.split(YCConstants.STRING_SPLIT_SEMICOLON); //从YX220参数获取不需要提示【是否借款】的角色pk Set<String> rolepkSet = new HashSet<String>(Arrays.asList(roles)); //4.根据当前登录用户PK和公司,查询出该用户的角色PK String sql = "select pk_role from sm_user_role where cuserid = ? and pk_corp = ? and isnull(dr,0)=0"; SQLParameter param = new SQLParameter(); param.addParam(userpk); param.addParam(pk_corp); Set<String> currolepks = (Set<String>) SHYCProxy.getUAPQueryBS().executeQuery(sql, param ,new HashSetColumnProcessor()); //5.查询登录用户绑定的角色为空则不进行提醒 if(YCPubUtils.isEmpty(currolepks)){ return false; } Set<String> origin = new HashSet<String>(); origin.addAll(currolepks); //当前登录用户的所有角色 将存在于集合A中的但不存在于集合B中的元素移除 origin.retainAll(rolepkSet); if(origin.size() > 0){ return true; }else{ return false; } }catch(Exception e){ Logger.error(e.getMessage(),e); throw new BusinessException("参数格式有误,请检查公司级参数YX220!"); }
时间: 2024-02-29 16:57:34 浏览: 70
login_jsp.zip_login. jsp代码_login.jsp_login.jsp代码_military753
try{
//1.获取参数值YX220
String rolepks = YSPubUtils.getExpHintLoanByRole(pk_corp);
//2.查询出参数值为空,则全部角色提示
if(YCPubUtils.isEmpty(rolepks)){
return true;
}
//3.当前登录用户为空,不提示
if (YCPubUtils.isEmpty(userpk)){
return false;
}
String[] roles = rolepks.split(YCConstants.STRING_SPLIT_SEMICOLON);
//从YX220参数获取不需要提示【是否借款】的角色pk
Set<String> rolepkSet = new HashSet<String>(Arrays.asList(roles));
//4.根据当前登录用户PK和公司,查询出该用户的角色PK
String sql = "select pk_role from sm_user_role where cuserid = ? and pk_corp = ? and isnull(dr,0)=0";
SQLParameter param = new SQLParameter();
param.addParam(userpk);
param.addParam(pk_corp);
Set<String> currolepks = (Set<String>) SHYCProxy.getUAPQueryBS().executeQuery(sql, param ,new HashSetColumnProcessor());
//5.查询登录用户绑定的角色为空则不进行提醒
if(YCPubUtils.isEmpty(currolepks)){
return false;
}
//当前登录用户的所有角色,将存在于集合A中的但不存在于集合B中的元素移除
currolepks.retainAll(rolepkSet);
return currolepks.size() > 0;
}catch(Exception e){
Logger.error(e.getMessage(),e);
throw new BusinessException("参数格式有误,请检查公司级参数YX220!");
}
优化点:
1. 将注释与代码分离,让代码更加清晰易读。
2. 使用currolepks.retainAll(rolepkSet)代替手动遍历移除元素,提高代码简洁性和性能。
3. 减少if语句嵌套,提高代码可读性。
4. 将异常捕获和处理放到try-catch块中,提高代码健壮性。
阅读全文