Commit 152843b4 by s_guodong

支持定制vo

No related merge requests found
...@@ -3,12 +3,12 @@ package com.ceb.gjjs.mda.resource.base; ...@@ -3,12 +3,12 @@ package com.ceb.gjjs.mda.resource.base;
import com.brilliance.mda.runtime.request.BaseVO; import com.brilliance.mda.runtime.request.BaseVO;
import com.brilliance.mda.runtime.response.ResponseSet; import com.brilliance.mda.runtime.response.ResponseSet;
import com.brilliance.mda.support.service.ICommonService; import com.brilliance.mda.support.service.ICommonService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import javax.ws.rs.POST; import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.PathParam; import javax.ws.rs.PathParam;
import java.util.Set;
/** /**
* @author wangguangchao * @author wangguangchao
...@@ -18,88 +18,157 @@ public abstract class AbstractCommonResource<V extends BaseVO> { ...@@ -18,88 +18,157 @@ public abstract class AbstractCommonResource<V extends BaseVO> {
protected abstract ICommonService getCommonService(); protected abstract ICommonService getCommonService();
@Path("/init") @Path("/init")
@POST @POST
public ResponseSet<V> init(@RequestBody V req) { public ResponseSet<V> init(@RequestBody V req) {
return getCommonService().init(req); String checkResult = checkParam(req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
return resetRespond(getCommonService().init(req));
} }
@Path("/checkAll") @Path("/checkAll")
@POST @POST
public ResponseSet checkAll(@RequestBody V req) { public ResponseSet checkAll(@RequestBody V req) {
return getCommonService().checkAll(req); String checkResult = checkParam(req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
return resetRespond(getCommonService().checkAll(req));
} }
@Path("/saveData") @Path("/saveData")
@POST @POST
public ResponseSet<V> saveData(@RequestBody V req) { public ResponseSet<V> saveData(@RequestBody V req) {
return getCommonService().saveData(req); String checkResult = checkParam(req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
return resetRespond(getCommonService().saveData(req));
} }
@Path("/confirmData") @Path("/confirmData")
@POST @POST
public ResponseSet<V> confirmData(@RequestBody V req) { public ResponseSet<V> confirmData(@RequestBody V req) {
return getCommonService().confirmData(req); String checkResult = checkParam(req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
return resetRespond(getCommonService().confirmData(req));
} }
@Path("/pending") @Path("/pending")
@POST @POST
public ResponseSet<V> pending(@RequestBody V req) { public ResponseSet<V> pending(@RequestBody V req) {
return getCommonService().pending(req); String checkResult = checkParam(req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
return resetRespond(getCommonService().pending(req));
} }
@Path("/executeCheck/{rule}") @Path("/executeCheck/{rule}")
@POST @POST
public ResponseSet<V> executeCheck(@PathParam("rule") String rule, @RequestBody V req) { public ResponseSet<V> executeCheck(@PathParam("rule") String rule, @RequestBody V req) {
String checkResult = checkParam(rule, req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
String[] ruleArr = rule.split(","); String[] ruleArr = rule.split(",");
return getCommonService().executeCheck(req, ruleArr); return resetRespond(rule, getCommonService().executeCheck(req, ruleArr));
} }
@Path("/executeRule/{rule}") @Path("/executeRule/{rule}")
@POST @POST
public ResponseSet<V> executeRule(@PathParam("rule") String rule, @RequestBody V req) { public ResponseSet<V> executeRule(@PathParam("rule") String rule, @RequestBody V req) {
String checkResult = checkParam(rule, req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
String[] ruleArr = rule.split(","); String[] ruleArr = rule.split(",");
ResponseSet<V> res = getCommonService().executeRule(req, ruleArr); ResponseSet<V> res = getCommonService().executeRule(req, ruleArr);
return res; return resetRespond(rule, res);
} }
@Path("/executeDefault/{rule}") @Path("/executeDefault/{rule}")
@POST @POST
public ResponseSet<V> executeDefault(@PathParam("rule") String rule, @RequestBody V req) { public ResponseSet<V> executeDefault(@PathParam("rule") String rule, @RequestBody V req) {
String checkResult = checkParam(rule, req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
String[] ruleArr = rule.split(","); String[] ruleArr = rule.split(",");
return getCommonService().executeDefault(req, ruleArr); return resetRespond(rule, getCommonService().executeDefault(req, ruleArr));
} }
@Path("/executeNotify") @Path("/executeNotify")
@POST @POST
public ResponseSet<V> executeNotify(@RequestBody V req) { public ResponseSet<V> executeNotify(@RequestBody V req) {
return getCommonService().executeNotify(req); String checkResult = checkParam(req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
return resetRespond(getCommonService().executeNotify(req));
} }
@Path("/executeDocpan") @Path("/executeDocpan")
@POST @POST
public ResponseSet<V> executeDocpan(@RequestBody V req) { public ResponseSet<V> executeDocpan(@RequestBody V req) {
return getCommonService().executeDocpan(req); String checkResult = checkParam(req);
if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
}
return resetRespond(getCommonService().executeDocpan(req));
} }
@Path("/executeDocpanDetail") @Path("/executeDocpanDetail")
@POST @POST
public ResponseSet<V> executeDocpanDetail(@RequestBody V req) { public ResponseSet<V> executeDocpanDetail(@RequestBody V req) {
return getCommonService().executeDocpanDetail(req); String checkResult = checkParam(req);
} if (StringUtils.isNotBlank(checkResult)) {
return new ResponseSet<>(ResponseSet.CODE_FAILURE, checkResult, req);
private void setInitFlag(V req, Set<String> needInitSet, String[] ruleArr) {
Class<? extends AbstractCommonResource> aClass = this.getClass();
Path annotation = aClass.getAnnotation(Path.class);
String path = annotation.value();
for (String rule : ruleArr) {
if (needInitSet.contains(path + "@" + rule)) {
req.setNeedInit(true);
return;
} }
ResponseSet responseSet = getCommonService().executeDocpanDetail(req);
return resetRespond(responseSet);
} }
}
/**
* 检验参数
*
* @param rule
* @param req
* @return
*/
protected abstract String checkParam(String rule, V req);
/**
* 检验参数
*
* @param req
* @return
*/
protected abstract String checkParam(V req);
/**
* 重新设置返回值
*
* @param rule
* @param responseSet
* @return
*/
protected abstract ResponseSet<V> resetRespond(String rule, ResponseSet<V> responseSet);
/**
* 重新设置返回值
*
* @param responseSet
* @return
*/
protected abstract ResponseSet<V> resetRespond(ResponseSet<V> responseSet);
} }
package com.ceb.gjjs.mda.util; package com.ceb.gjjs.mda.util;
import com.brilliance.mda.runtime.annotation.Need;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
...@@ -32,18 +33,26 @@ public class ValidatorUtil { ...@@ -32,18 +33,26 @@ public class ValidatorUtil {
if (o != null) { if (o != null) {
String stringValue = (String) o; String stringValue = (String) o;
if (stringValue.length() > max || stringValue.length() < min) { if (stringValue.length() > max || stringValue.length() < min) {
return f.getName() + ":" + message; return "参数校验错误[" + f.getName() + ":" + message + "]";
} }
} }
} }
if (f.isAnnotationPresent(NotEmpty.class) && type.isAssignableFrom(String.class)) { if (f.isAnnotationPresent(NotEmpty.class) && type.isAssignableFrom(String.class)) {
if (o == null || StringUtils.isBlank((String) o)) { if (o == null || StringUtils.isBlank((String) o)) {
return f.getName() + ":不能为空"; return "参数校验错误[" + f.getName() + ":不能为空]";
} }
} }
if (f.isAnnotationPresent(NotNull.class) && !type.isAssignableFrom(String.class)) { if (f.isAnnotationPresent(NotNull.class) && !type.isAssignableFrom(String.class)) {
if (o == null) { if (o == null) {
return f.getName() + ":不能为null"; return "参数校验错误[" + f.getName() + ":不能为null]";
}
}
if (f.isAnnotationPresent(Need.class)) {
if (o == null) {
return "参数校验错误[" + f.getName() + ":为必需参数]";
}
if (type.isAssignableFrom(String.class) && StringUtils.isBlank((String) o)) {
return "参数校验错误[" + f.getName() + ":为必需参数,不能为空]";
} }
} }
} }
......
package com.brilliance.mda.runtime.annotation;
import java.lang.annotation.*;
/**
* 是否需要执行初始化方法
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Need {
boolean value() default true;
String message() default "不能为空";
}
...@@ -5,9 +5,10 @@ import java.util.Map; ...@@ -5,9 +5,10 @@ import java.util.Map;
public class BaseVO { public class BaseVO {
protected String src; protected String src;
protected boolean needInit;
protected String pageId; protected String pageId;
protected Map<String, Object> params; protected Map<String, Object> params;
protected Map<String, Object> special_vo;
protected List<Map<String, Object>> changes; protected List<Map<String, Object>> changes;
...@@ -55,14 +56,6 @@ public class BaseVO { ...@@ -55,14 +56,6 @@ public class BaseVO {
this.pageSize = pageSize; this.pageSize = pageSize;
} }
public boolean isNeedInit() {
return needInit;
}
public void setNeedInit(boolean needInit) {
this.needInit = needInit;
}
public String getSrc() { public String getSrc() {
return src; return src;
} }
...@@ -70,4 +63,12 @@ public class BaseVO { ...@@ -70,4 +63,12 @@ public class BaseVO {
public void setSrc(String src) { public void setSrc(String src) {
this.src = src; this.src = src;
} }
public Map<String, Object> getSpecial_vo() {
return special_vo;
}
public void setSpecial_vo(Map<String, Object> special_vo) {
this.special_vo = special_vo;
}
} }
package com.brilliance.mda.runtime.response; package com.brilliance.mda.runtime.response;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.brilliance.mda.runtime.mda.IContext; import com.brilliance.mda.runtime.mda.IContext;
import com.brilliance.mda.runtime.mda.driver.MdaDriver; import com.brilliance.mda.runtime.mda.driver.MdaDriver;
import com.brilliance.mda.runtime.mda.driver.MdaEnv; import com.brilliance.mda.runtime.mda.driver.MdaEnv;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class ResponseSet<T> { public class ResponseSet<T> {
...@@ -17,16 +17,17 @@ public class ResponseSet<T> { ...@@ -17,16 +17,17 @@ public class ResponseSet<T> {
/** /**
* 成功代码 * 成功代码
*/ */
public static final String CODE_SUCCESS="AAAAAA"; public static final String CODE_SUCCESS = "AAAAAA";
public static final String MSG_SUCESS="操作成功!"; public static final String CODE_FAILURE = "BBBBBB";
public static final String MSG_SUCESS = "操作成功!";
private String respCode; private String respCode;
private String respMsg; private String respMsg;
private Map<String,String> fieldErrors; private Map<String, String> fieldErrors;
private Map<String, List<String>> codeSet; private Map<String, List<String>> codeSet;
private Object data; private Object data;
public ResponseSet(IContext ctx, Object t){ public ResponseSet(IContext ctx, Object t) {
this.respCode = CODE_SUCCESS; this.respCode = CODE_SUCCESS;
this.respMsg = MSG_SUCESS; this.respMsg = MSG_SUCESS;
this.data = t; this.data = t;
...@@ -35,31 +36,32 @@ public class ResponseSet<T> { ...@@ -35,31 +36,32 @@ public class ResponseSet<T> {
ctx.visitValues(); ctx.visitValues();
MdaDriver.setValueToVO(ctx, this.data); MdaDriver.setValueToVO(ctx, this.data);
} }
private Map<String, List<String>> getValuesSet(IContext ctx){
private Map<String, List<String>> getValuesSet(IContext ctx) {
Map<String, List<String>> valuesSet = new LinkedHashMap<>(); Map<String, List<String>> valuesSet = new LinkedHashMap<>();
ctx.getValuesSet().forEach((key, codeEntity)->{ ctx.getValuesSet().forEach((key, codeEntity) -> {
if(!codeEntity.visited){ if (!codeEntity.visited) {
valuesSet.put(key,codeEntity.values); valuesSet.put(key, codeEntity.values);
} }
}); });
return valuesSet; return valuesSet;
} }
private Map<String,String> cloneFieldErrorsFromContext(IContext ctx){ private Map<String, String> cloneFieldErrorsFromContext(IContext ctx) {
if(ctx == null){ if (ctx == null) {
return null; return null;
} }
Map<String,String> fieldErrors = ctx.getFieldErrors(); Map<String, String> fieldErrors = ctx.getFieldErrors();
Map<String,String> fieldErrorsClone = new LinkedHashMap<>(); Map<String, String> fieldErrorsClone = new LinkedHashMap<>();
fieldErrorsClone.putAll(fieldErrors); fieldErrorsClone.putAll(fieldErrors);
fieldErrors.clear(); fieldErrors.clear();
return fieldErrorsClone; return fieldErrorsClone;
} }
public ResponseSet(Object t){ public ResponseSet(Object t) {
this.respCode = CODE_SUCCESS; this.respCode = CODE_SUCCESS;
this.respMsg = MSG_SUCESS; this.respMsg = MSG_SUCESS;
if(MdaEnv.getContext()!=null) { if (MdaEnv.getContext() != null) {
fieldErrors = cloneFieldErrorsFromContext(MdaEnv.getContext()); fieldErrors = cloneFieldErrorsFromContext(MdaEnv.getContext());
this.codeSet = getValuesSet(MdaEnv.getContext()); this.codeSet = getValuesSet(MdaEnv.getContext());
MdaEnv.getContext().visitValues(); MdaEnv.getContext().visitValues();
...@@ -67,10 +69,10 @@ public class ResponseSet<T> { ...@@ -67,10 +69,10 @@ public class ResponseSet<T> {
this.data = t; this.data = t;
} }
public ResponseSet(String errCode,String errMsg){ public ResponseSet(String errCode, String errMsg) {
this.respCode = errCode; this.respCode = errCode;
this.respMsg = errMsg; this.respMsg = errMsg;
if(MdaEnv.getContext()!=null) { if (MdaEnv.getContext() != null) {
fieldErrors = cloneFieldErrorsFromContext(MdaEnv.getContext()); fieldErrors = cloneFieldErrorsFromContext(MdaEnv.getContext());
this.codeSet = getValuesSet(MdaEnv.getContext()); this.codeSet = getValuesSet(MdaEnv.getContext());
MdaEnv.getContext().visitValues(); MdaEnv.getContext().visitValues();
...@@ -81,16 +83,18 @@ public class ResponseSet<T> { ...@@ -81,16 +83,18 @@ public class ResponseSet<T> {
// this(errCode,errMsg); // this(errCode,errMsg);
// this.fieldErrors = fieldErrors; // this.fieldErrors = fieldErrors;
// } // }
public ResponseSet(String errCode,String errMsg,T t){ public ResponseSet(String errCode, String errMsg, T t) {
this(errCode,errMsg); this(errCode, errMsg);
this.data = t; this.data = t;
if(t!=null) { if (t != null && MdaEnv.getContext() != null) {
MdaDriver.setValueToVO(MdaEnv.getContext(), this.data); MdaDriver.setValueToVO(MdaEnv.getContext(), this.data);
} }
} }
public Object getData() { public Object getData() {
return data; return data;
} }
public void setData(Object data) { public void setData(Object data) {
this.data = data; this.data = data;
} }
...@@ -127,18 +131,22 @@ public class ResponseSet<T> { ...@@ -127,18 +131,22 @@ public class ResponseSet<T> {
this.codeSet = codeSet; this.codeSet = codeSet;
} }
static class BooleanResult{ static class BooleanResult {
boolean result; boolean result;
public BooleanResult(boolean result){
public BooleanResult(boolean result) {
this.result = result; this.result = result;
} }
} }
static final String FAIL_CODE = "999999"; static final String FAIL_CODE = "999999";
public static ResponseSet fail(String message) { public static ResponseSet fail(String message) {
ResponseSet responseSet = new ResponseSet(FAIL_CODE,message); ResponseSet responseSet = new ResponseSet(FAIL_CODE, message);
return responseSet; return responseSet;
} }
public static ResponseSet simpleSuccess(Object data){
public static ResponseSet simpleSuccess(Object data) {
return new ResponseSet(data); return new ResponseSet(data);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment