package com.brframework.generate.template; import com.brframework.generate.BaseUtil; import com.brframework.generate.Constant; import com.brframework.generate.base.JavaFile; import java.util.LinkedList; import java.util.List; import java.util.Map; import static com.brframework.generate.BaseUtil.buildMethod; import static com.brframework.generate.Constant.PACKAGE_API; /** * @Author: ljr * @Date: 2019/8/15 14:16 * @Description: */ public class ApiControllerClassFile extends JavaFile { public ApiControllerClassFile(String route, String packageDir, String entity, String function, Map notes) { fileDir = route + "/" + Constant.PACKAGE_CONTROLLER + "/" + PACKAGE_API; packageDir = BaseUtil.toPackage(packageDir); String className = "Api" + BaseUtil.getClassWithoutSuffix(function) + Constant.MODULE_CONTROLLER; fileName = className + Constant.SUFFIX_CLASS_TYPE; filePackageName = packageDir + "." +Constant.PACKAGE_CONTROLLER + "." + PACKAGE_API; type = Constant.CLASS_TYPE; name = className; List imports = getImports(packageDir, function); List classAnnotations = getClassAnnotations(function); List extendss = getExtendss(); List implementss = getImplementss(); List fields = getFields(entity); List methods = getMethods(function); super.init(imports, notes, classAnnotations, extendss, implementss, fields, methods); } public List getImports(String mainPackage, String function){ List imports = new LinkedList<>(); imports.add(mainPackage + "." + Constant.PACKAGE_ENTITY + "." + function + ".*" ); imports.add(mainPackage + "." + Constant.PACKAGE_SERVICE + "." + function + ".*" ); imports.add("com.brframework.commonweb.json.JSONResult"); imports.add("io.swagger.annotations.Api"); imports.add("io.swagger.annotations.ApiOperation"); imports.add("org.springframework.beans.factory.annotation.Autowired"); imports.add("org.springframework.web.bind.annotation.*"); return imports; } public List getClassAnnotations(String function){ List classAnnotations = new LinkedList<>(); classAnnotations.add("RestController"); classAnnotations.add("Api(tags = \""+ function +"\")"); classAnnotations.add(new StringBuilder().append("RequestMapping(\"/").append("api").append("\")").toString()); return classAnnotations; } public List getExtendss(){ List extendss = new LinkedList<>(); return extendss; } public List getImplementss(){ List implementss = new LinkedList<>(); return implementss; } public List getFields(String entity){ List fields = new LinkedList<>(); List fannotations = new LinkedList<>(); String className = entity.substring(0, 1).toUpperCase() + entity.substring(1); fannotations.add("Autowired"); String fmodifier = "private"; String ftype = new StringBuilder().append(className).append(Constant.MODULE_SERVICE).toString(); String fname = entity + Constant.MODULE_SERVICE; String value = null; Field field = new Field(fannotations, fmodifier , ftype, fname, value); fields.add(field); return fields; } public List getMethods( String function){ List methods = new LinkedList<>(); List mannotations ; String mmodifier = "public"; String resultType = "JSONResult"; String name; String args; List exceptions = new LinkedList<>(); String methodBody; //get mannotations = new LinkedList<>(); mannotations.add("ApiOperation(value = \"获取"+ function +"V1\", notes = \"获取"+ function +"V1\", produces = \"text/plain\")"); mannotations.add("GetMapping(\"/v1/" + function + "/list" + "\")"); name = "list"; args = ""; methodBody = buildMethod(new String[] { "return JSONResult.ok();" }); Method method = new Method(mannotations, mmodifier, resultType, name, args, exceptions, methodBody); methods.add(method); return methods; } }