1、总结java
2、BUG描述:else逻辑未补全,倒置查询数据泄露数据库
在查询筛选参数的时候,有以下逻辑:app
if (StringUtils.isNotBlank(logisticsOrder.getParentIds())) { // 所属复合单 String[] ids = SqlStringUtil.sliptQueryStr(logisticsOrder.getParentIds()); for (String id : ids) { if (!StringUtils.isNumeric(id)) { throw new ServiceException(ErrorCode.param_number); } } List<Integer> orderIds = assetBeanMapperExt.getOrderIdsByParentIds(SqlStringUtil.formatInStr(logisticsOrder.getParentIds())); if (CollectionUtils.isNotEmpty(orderIds)) { StringBuffer sb = new StringBuffer(); for (Integer orderId : orderIds) { sb.append(orderId.toString()); sb.append(","); } if (StringUtils.isBlank(logisticsOrder.getQueryIds())) { _map_result.put("queryIds", sb.substring(0, sb.length() - 1)); } else { // 工单编号、所属复核单 同时查询 _map_result.put("queryIds", sb.append(SqlStringUtil.formatInStr(logisticsOrder.getQueryIds())).toString()); } } else { _map_result.put("queryIds", "-1"); } }
因为未补全orderIds为空的逻辑,致使没有把参数传入,所以全量数据被查询了出来。所以要补全else状况,插入“-1”,作为查询条件。但这里同时要注意,若是数据库中该字段是无符号整型,那么就不能够这样作了。编辑器
3、BUG描述:空指针致使线上的bug工具
//SiteVo sourceSiteVo = siteMapperExt.getSiteFullInfo(Integer.valueOf(atomic.getOldSite())); //SiteVo targetSiteVo = siteMapperExt.getSiteFullInfo(Integer.valueOf(atomic.getTargetSite())); //RuleInfos ruleInfos = constructRuleInfos(sourceSiteVo, targetSiteVo);
上述代码优化了线上空指针的问题,先查询,而后再构造。在构造过程当中,若是可能出现字段为空的状况,要记得用逻辑中要处理,而且要用三目运算符对其处理:null == sourceSiteVo.getSiteId() ? StringUtils.EMPTY : sourceSiteVo.getSiteId().toString()。优化
4、BUG描述:SVN冲突解决编码
在主干和多分支开发的过程当中,在往平常发布代码的过程当中,会常常出现合并代码冲突的发生。在冲突的文件中,一般,冲突的地方会有三个标记其冲突位置:atom
<<<<<<< .working
=======
>>>>>>> .merge-right.r10329
注意,在解决冲突的过程当中,建议使用notepad、visual code、sublime等工具来解决冲突,若是使用txt文本编辑器来解决冲突的话,一般会带来编码错误的:java:[1,0] illegal character: \65279,这样的话,能够依次退出当前分之,不要合并到主干truck分支上。即退出部署,再从新部署来尝试解决它。spa
5、线上实时查看日志的命令指针
tail -f -n 200 all.log
该命令表示,查看all.log文件中最后新增的200行的代码。
6、