发表于: 2017-12-04 23:41:36

4 765


今天完成的事情:

1.统一了约定,并将约定信息生成类存储并提供校验方法

首先放在类里是为了方便提供校验方法,以及易维护.省的约定产生冲突且在各个controller中处理校验代码.减少了样板式代码

package com.ptteng.reclamation.funlearn.utils;

/**
* 主要是检查controller接收的参数是否是非法
* 非法体现在必填参数为null以及参数未按约定填写
*
* XXX_XXX_CODE代表了特定状态的约定参数值
* 枚举中的XXX_XXX代表了特定状态
* create_at:MaZheng
* create_by:${2017.12.01} ${21.00}
*/
public class CheckTheParameters {
private static CheckTheParameters tool = new CheckTheParameters();

   private CheckTheParameters(){

}

//定义了约定类型,并作为入参限制
   public enum typeOfCheck {
FAVORITE_STATUS,
       GRADES,
       POPULAR_RECOMMENDTION,
       PURRCHASE_STATUS,
       PAYMENT_TYPE,
       LEARNING_STATE,
       IS_EXIST,
       LOCKED_STATE,
       SUBJECT_TYPES,
       UPPER_OR_LOWER_STATE,
       BOOK_VERSIONS,
       PAPER_TYPES,
       FREZZING_STATE,
       IS_FREE,
       TYPE_OF_QUERY_PERIOD,
       TYPEOF_QUERY_TASK
   }

/*
       收藏状态
       0 收藏
       1 未收藏
    */
   private final static Integer[] FAVORITE_STATUS_CODE = new Integer[]{0,1};

   /*
       年级
       0 全部
       1 - 6 一至六年级
    */
   private final static Integer[] GRADES_CODE = new Integer[]{0,1,2,3,4,5,6};

   /*
       热门推荐
       -1 不推荐
       任意正整数从0开始表示推荐及推荐位置
    */
   private final static Integer[] POPULAR_RECOMMENDTION_CODE = new Integer[] {-1};

   /*
       购买状态
       0 未购买
       1 已购买
    */
   private final static Integer[] PURRCHASE_STATUS_CODE = new Integer[] {0,1};

   /*
       支付类型
       0 学习星
       1 人民币
    */
   private final static Integer[] PAYMENT_TYPE_CODE = new Integer[] {0,1};

   /*
       学习状态
       0 开学
       1 在学
       2 已学
    */
   private final static Integer[] LEARNING_STATE_CODE = new Integer[] {0,1,2};

   /*
       是否存在
       0 不存在
       1 存在
    */
   private final static Integer[] IS_EXIST_CODE = new Integer[] {0,1};

   /*
       解锁状态
       0 已解锁
       1 未解锁
    */
   private final static Integer[] LOCKED_STATE_CODE = new Integer[]{0,1};

   /*
       科目类型
       -1 全部
       0 自有
       1 校内
       2 合作
    */
   public final static Integer[] SUBJECT_TYPES_CODE = new Integer[]{-1,0,1,2};

   /*
       上下架状态
       0 上架
       1 下架
    */
   public final static Integer[] UPPER_OR_LOWER_STATE_CODE = new Integer[] {0,1};

   /*
       教材版本
       1111 全部版本
       -1 其他版本
       0 人教版
       1 苏教版
       2 沪教版
       3 语文社
       4 北大师版
       5 湘教版
       5 西师版
       6 长春版
    */
   public final static Integer[] BOOK_VERSIONS_CODE = new Integer[] {1111,-1,0,1,2,3,4,5,6};

   /*
       资料类别
       0 课程
       1 教材
    */
   public final static Integer[] PAPER_TYPES_CODE = new Integer[] {0,1};

   /*
       冻结状态
       0 未冻结
       1 已冻结
    */
   public final static Integer[] FREZZING_STATE_CODE = new Integer[]{0,1};


   /*
       收费状态
       0 收费
       1 免费
    */
   public final static Integer[] IS_FREE_CODE = new Integer[] {0,1};


   /*
       查询课时类型
       0 课程下课时
       1 教材下课时
    */
   public final static Integer[] TYPE_OF_QUERY_PERIOD_CODE = new Integer[] {0,1};

   /*
       查询任务类型
       0 课程下任务
       1 教材下任务
    */
   private final static Integer[] TYPEOF_QUERY_TASK_CODE = new Integer[] {0,1};
   



   public static boolean isNullOfTheParameters(Object... parameters) {

if (parameters == null)
return true;

       boolean isIllegal = false;

       for (Object parameter : parameters) {
if (parameter == null) {
isIllegal = true;
               break;
           }
}


return isIllegal;
   }


/**
    * 主要用于检查约定值是否非法
    * @param param 待检查参数
    * @param type 枚举类型,待检查参数所属约定类型
    * @return 若非法返回true
    */
   public static boolean valueIsIllegal(Integer param, typeOfCheck type) {

if (null == param)
return true;

       boolean isIllegal;

       switch (type) {
case GRADES:
isIllegal = tool.theParamIsNonExistentOnTheGRADES(param);
               break;
           case IS_EXIST:
isIllegal = tool.theParamIsNonExistentOnTheIS_EXIST(param);
               break;
           case PAPER_TYPES:
isIllegal = tool.theParamIsNonExistentOnThePAPER_TYPES(param);
               break;
           case LOCKED_STATE:
isIllegal = tool.theParamIsNonExistentOnTheLOCKED_STATE(param);
               break;
           case PAYMENT_TYPE:
isIllegal = tool.theParamIsNonExistentOnThePAYMENT_TYPE(param);
               break;
           case BOOK_VERSIONS:
isIllegal = tool.theParamIsNonExistentOnTheBOOK_VERSIONS(param);
               break;
           case SUBJECT_TYPES:
isIllegal=tool.theParamIsNonExistentOnTheSUBJECT_TYPES(param);
               break;
           case LEARNING_STATE:
isIllegal=tool.theParamIsNonExistentOnTheLEARNING_STATE(param);
               break;
           case FREZZING_STATE:
isIllegal=tool.theParamIsNonExistentOnTheFREZZING_STATE(param);
               break;
           case FAVORITE_STATUS:
isIllegal=tool.theParamIsNonExistentOnTheFAVORITE_STATUS(param);
               break;
           case PURRCHASE_STATUS:
isIllegal=tool.theParamIsNonExistentOnThePURRCHASE_STATUS(param);
               break;
           case UPPER_OR_LOWER_STATE:
isIllegal=tool.theParamIsNonExistentOnTheUPPER_OR_LOWER_STATE(param);
               break;
           case POPULAR_RECOMMENDTION:
isIllegal=tool.theParamIsNonExistentOnThePOPULAR_RECOMMENDTION(param);
               break;
           case IS_FREE:
isIllegal = tool.theParamIsNonExistentOnTheIS_FREE(param);
               break;
           case TYPE_OF_QUERY_PERIOD:
isIllegal = tool.theParamIsNonExistentOnTheTYPE_OF_QUERY_PERIOD(param);
               break;
           case TYPEOF_QUERY_TASK:
isIllegal = tool.theParamIsNonExistentOnTYPE_OF_QUERY_TASK(param);
               break;
           default:
isIllegal = true;
       }

return isIllegal;
   }

private  boolean theParamIsNonExistentOnTheGRADES(Integer param) {
return !theParamIsExistInArray(param,GRADES_CODE);
   }

private  boolean theParamIsNonExistentOnTheIS_EXIST(Integer param) {
return !theParamIsExistInArray(param,IS_EXIST_CODE);
   }

private boolean theParamIsNonExistentOnThePAPER_TYPES(Integer param) {
return !theParamIsExistInArray(param,PAPER_TYPES_CODE);
   }

private boolean theParamIsNonExistentOnTheLOCKED_STATE(Integer param) {
return !theParamIsExistInArray(param,LOCKED_STATE_CODE);
   }

private boolean theParamIsNonExistentOnThePAYMENT_TYPE(Integer param) {
return !theParamIsExistInArray(param,PAYMENT_TYPE_CODE);
   }
private boolean theParamIsNonExistentOnTheBOOK_VERSIONS(Integer param){
System.out.println(param);
       return !theParamIsExistInArray(param,BOOK_VERSIONS_CODE);
   }
private boolean theParamIsNonExistentOnTheSUBJECT_TYPES(Integer param){
return !theParamIsExistInArray(param,SUBJECT_TYPES_CODE);
   }
private boolean theParamIsNonExistentOnTheFREZZING_STATE(Integer param){
return !theParamIsExistInArray(param,FREZZING_STATE_CODE);
   }
private boolean theParamIsNonExistentOnTheFAVORITE_STATUS(Integer param){
return !theParamIsExistInArray(param,FAVORITE_STATUS_CODE);
   }
private boolean theParamIsNonExistentOnThePURRCHASE_STATUS(Integer param){
return !theParamIsExistInArray(param,PURRCHASE_STATUS_CODE);
   }
private boolean theParamIsNonExistentOnTheUPPER_OR_LOWER_STATE(Integer param){
return !theParamIsExistInArray(param,UPPER_OR_LOWER_STATE_CODE);
   }

private boolean theParamIsNonExistentOnTheLEARNING_STATE(Integer param) {
return !theParamIsExistInArray(param,LEARNING_STATE_CODE);
   }

private boolean theParamIsNonExistentOnTheIS_FREE(Integer param){
return !theParamIsExistInArray(param,IS_FREE_CODE);
   }

private boolean theParamIsNonExistentOnTheTYPE_OF_QUERY_PERIOD(Integer param) {
return !theParamIsExistInArray(param, TYPE_OF_QUERY_PERIOD_CODE);
   }


private  boolean theParamIsNonExistentOnThePOPULAR_RECOMMENDTION(Integer param){
boolean paramIsPositiveInteger = param.intValue()>=0?true:false;
       if (paramIsPositiveInteger==true)
return false;

       return !theParamIsExistInArray(param,POPULAR_RECOMMENDTION_CODE);
   }

private boolean theParamIsNonExistentOnTYPE_OF_QUERY_TASK(Integer param) {
return !theParamIsExistInArray(param,TYPEOF_QUERY_TASK_CODE);
   }


private  boolean theParamIsExistInArray(Integer param,Integer[] array) {
for (Integer t:array) {
if (param.intValue()==t.intValue()) {
return true;
           }
}

return false;
   }
}




2.定义接口

之前接口一起定义时没有考虑到复用性,整的一个小小的项目就要上百个接口............

所谓我是打算将自己的两个模块原先的40几个接口控制在10个以内.

这一两天不急着写代码


明天计划的事情:

1.继续编写接口文档


遇到的困难:

收获:


返回列表 返回列表
评论

    分享到