service对外提供下面方法会保证 一定能获得ActStepDesc对象,这样外部使用时就不用判断null了。
public ActStepDesc selectByBPK(Integer activityId, Integer tplStepId){
ActStepDesc actStepDesc= actStepDescMapper.selectByBPK(activityId, tplStepId);
if (null==actStepDesc||null == actStepDesc.getId()) {
actStepDesc = new ActStepDesc();
actStepDesc.setActivityId(activityId);
actStepDesc.setTplStepId(tplStepId);
actStepDesc.setProjectId(ProjectContextUtils.getProjectContext().getProjectId());
actStepDesc.setId(saveOrUpdate(actStepDesc));
}
return actStepDesc;
}
下面是同一类内部调用上面方法的方法,直接使用了底层查询,导致有时会出现null的情况,
也应该直接使用上面的方法,就是说类内部也要使用类本身的方法。
public Integer selectUploadCount(@InvokeParam(value="activityId",required=true) String activityId,@InvokeParam(value="tplStepId",required=true) String tplStepId){
ActStepDesc actStepDesc= actStepDescMapper.selectByBPK(Integer.valueOf(activityId), Integer.valueOf(tplStepId));
//改成下面 ActStepDesc actStepDesc= selectByBPK(Integer.valueOf(activityId), //Integer.valueOf(tplStepId));
return resourceService.selectUserCount(Const.RESOURCE_ORIGIN.ACT_STEP, actStepDesc.getId());
}