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、