发表于: 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.继续编写接口文档
遇到的困难:
无
收获:
无
评论