@Override
 public List<Object> queryForList(
     Map<String, Object> paramMap, Integer startIndex, Integer pageSize) {
   paramMap.put("startIndex", startIndex);
   paramMap.put("pageSize", pageSize);
   return incomeProxy.queryForList(paramMap);
 }
 @UrlMapping(value = "/incomeDelete", type = ReturnType.JSON)
 public DataInfoBean delete() {
   DataInfoBean info = AtheneUtils.getInfo();
   try {
     incomeProxy.delete();
   } catch (Exception e) {
     log.error("delete income error", e);
     info.setException(e);
   }
   return info;
 }
 @UrlMapping(value = "/incomeSave", type = ReturnType.JSON)
 public DataInfoBean save() {
   DataInfoBean info = null;
   try {
     info = incomeValidation.simpleValidate();
     if (info.hasError()) return info;
     incomeProxy.save();
   } catch (Exception e) {
     log.error("save income error", e);
     info.setException(e);
   }
   return info;
 }
 private Map<String, Object> queryById(Map<String, Object> paramMap) throws Exception {
   Integer id = ParamUtils.getIdInteger(paramMap.get(BaseModel.ID));
   if (id == null || id == 0) {
     paramMap.put("error", "ID为空");
   } else {
     IncomeWrap wrap = incomeProxy.queryForWrap(id);
     if (wrap == null) {
       paramMap.put("error", "数据已删除");
     } else {
       paramMap.put("income", wrap);
     }
   }
   return paramMap;
 }
 @Override
 public int queryForCount(Map<String, Object> paramMap) {
   return incomeProxy.queryForCount(paramMap);
 }