package {{controllerPackage}}; import java.util.HashMap; import java.util.Map; {{#each controllerImports}} import {{this}}; {{/each}} import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import {{rootPackage}}.{{serviceName}}; import {{entityFqcn}}; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.log4j.Log4j2; @RestController @RequestMapping("{{requestBasePath}}") @Log4j2 public class {{controllerName}} { private final {{serviceName}} {{entityVarName}}Service; public {{controllerName}}({{serviceName}} {{entityVarName}}Service) { this.{{entityVarName}}Service = {{entityVarName}}Service; } @Operation(summary = "page 초기정보.") @PostMapping(value = "list/main.do", params = "method=page") public Map page(@RequestBody Map params) throws Exception { Map result = new HashMap(); result.put("menuName", "{{menuName}}"); result.put("result", {{entityVarName}}Service.get{{entityName}}List()); return result; } @Operation(summary = "{{menuName}} 목록 조회") @PostMapping(value = "list/main.do", params = "method=search") public Map list_search(@RequestBody Map params) throws Exception { Map result = new HashMap(); result.put("result", {{entityVarName}}Service.get{{entityName}}List()); return result; } @Operation(summary = "{{menuName}} 상세 조회") @PostMapping(value = "item/main.do", params = "method=get{{entityName}}") public Map item_get{{entityName}}(@RequestBody Map params) throws Exception { Map result = new HashMap(); result.put("result", {{entityVarName}}Service.get{{entityName}}(getPrimaryKey(params))); return result; } @Operation(summary = "{{menuName}} 등록") @PostMapping(value = "item/main.do", params = "method=regist") public Map item_regist(@RequestBody {{entityName}} {{entityVarName}}) throws Exception { Map result = new HashMap(); result.put("result", {{entityVarName}}Service.create{{entityName}}({{entityVarName}})); return result; } @Operation(summary = "{{menuName}} 수정") @PostMapping(value = "item/main.do", params = "method=update") public Map item_update(@RequestBody {{entityName}} {{entityVarName}}) throws Exception { if ({{entityVarName}}.{{primaryKeyGetterName}}() == null) { throw new IllegalArgumentException("{{primaryKeyProperty}} 값은 필수입니다."); } Map result = new HashMap(); result.put("result", {{entityVarName}}Service.update{{entityName}}({{entityVarName}})); return result; } @Operation(summary = "{{menuName}} 삭제") @PostMapping(value = "item/main.do", params = "method=delete") public String item_delete(@RequestBody Map params) throws Exception { {{entityVarName}}Service.delete{{entityName}}(getPrimaryKey(params)); return "success"; } private {{primaryKeyJavaType}} getPrimaryKey(Map params) { if (params == null || params.get("{{primaryKeyProperty}}") == null) { throw new IllegalArgumentException("{{primaryKeyProperty}} 값은 필수입니다."); } String value = params.get("{{primaryKeyProperty}}").toString(); return {{primaryKeyParseExpression}}; } }