You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
5.6 KiB

2 weeks ago
#parse("vms/$version/common/variable/head.vm")
package ${companyName}.${projectName}.admin.api.${lowerEntity};
import ${companyName}.${projectName}.core.service.CommonRestController;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
#if($hasDateQuery)
import java.util.Date;
import java.sql.Time;
import java.sql.Timestamp;
#end
import java.math.*;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import ${companyName}.${projectName}.core.common.constant.PageConstant;
import ${companyName}.${projectName}.core.common.exception.BusinessException;
import ${companyName}.${projectName}.core.serialize.ResponseMsg;
import ${companyName}.${projectName}.model.${Entity};
import ${companyName}.${projectName}.service.${lowerEntity}.service.${Entity}Service;
import ${companyName}.${projectName}.core.utils.ListUtil;
import ${companyName}.${projectName}.core.utils.MapUtil;
import ${companyName}.${projectName}.core.utils.StringUtil;
#parse("vms/$version/common/comment/ClassDesc.vm")
@RequestMapping("/admin/${tableRealName}_rest/")
@RestController
public class Admin${Entity}RestController extends CommonRestController<${Entity},$dbPriorityKeyJavaType> implements InitializingBean
{
@Resource
private ${Entity}Service ${entity}Service;
#if($childrenList)
//外键下拉查询接口
@RequestMapping(value = "search")
public ResponseMsg search(
@RequestParam(required = false) String uniqueField,
@RequestParam(required = false,value = "uniqueValue[]") Set<$dbPriorityKeyJavaType> uniqueValue,//主键多个值
@RequestParam(required = false,defaultValue = "20") Integer limit,
@RequestParam(required = false) String keyword
){
limit = Math.min(PageConstant.MAX_LIMIT,limit);
List<$Entity> list = null;
Map<String,Object> query = new HashMap();
query.put("limit",limit);
##默认排序逻辑
#set($defaultOrderBy = $TableFieldUtil.buildDefaultOrderBy($nodeList))
#if($StringUtil.isNotBlank($defaultOrderBy))
query.put("notSafeOrderBy","$defaultOrderBy");
#end
if(uniqueValue!=null){//说明是来初始化的
list = ${entity}Service.getModelInList(uniqueValue);
}else {//正常搜索
#foreach($node in $nodeList)
#set($inputType = $node.formItem.inputType)
#if($node.formQueryList)
#foreach($formQuery in $node.formQueryList)
#if($formQuery.foreignInputSelectShow == 1)
#if($StringUtil.isNotBlank($formQuery.firstCompare))
if(ListUtil.isBlank(list)){
query.put("${node.dbField.javaField}First",keyword);
list = ${entity}Service.getModelList(query);
query.remove("${node.dbField.javaField}First");
}
#end
#if($StringUtil.isNotBlank($formQuery.secondCompare))
if(ListUtil.isBlank(list)){
query.put("${node.dbField.javaField}Second",keyword);
list = ${entity}Service.getModelList(query);
query.remove("${node.dbField.javaField}Second");
}
#end
#end
#end
#end
#end
}
return new ResponseMsg(list);
}
#end
//分页查询
@RequestMapping(value={"page"}, method={RequestMethod.GET})
public ResponseMsg page(
#parse("vms/$version/controller/include/self/pageParam.vm")
@RequestParam int page,@RequestParam int limit,@RequestParam(required = false) String safeOrderBy
,HttpServletResponse response,@RequestParam(required = false) Integer queryType
){
Map<String,Object> query = new HashMap();
#parse("vms/$version/controller/include/self/pageQueryMap.vm")
Integer count = ${entity}Service.getModelListCount(query);
##默认排序逻辑
#set($defaultOrderBy = $TableFieldUtil.buildDefaultOrderBy($nodeList))
#if($StringUtil.isBlank($defaultOrderBy))
query.put("safeOrderBy",safeOrderBy);
#else
if(StringUtil.isBlank(safeOrderBy)){
query.put("notSafeOrderBy","$defaultOrderBy");
}else{
query.put("safeOrderBy",safeOrderBy);
}
#end
if(queryType==null || queryType == QUERY_TYPE_SEARCH){//普通查询
limit = Math.min(limit, PageConstant.MAX_LIMIT);
query.put("start",(page - 1) * limit);query.put("limit",limit);
return new ResponseMsg(count,${entity}Service.getModelList(query));
}else if(queryType == QUERY_TYPE_EXPORT_EXCEL){
query.put("start",(page - 1) * limit);query.put("limit",limit);
exportExcel(response,${entity}Service.getModelList(query),"$tableComment",
new String[]{#foreach($node in $nodeList)#if($velocityCount!=1),#end"${node.formItem.title}"#end},
new String[]{#foreach($node in $nodeList)#if($velocityCount!=1),#end #set($selectValueMap = $TableFieldUtil.parseJsonToMap($node.formItem.selectValue))"#set($keyValueList = $selectValueMap.get('keyValueList'))#if($keyValueList)$TableFieldUtil.replaceDoubleYinHao($JSON.toJSONString($keyValueList))#end"#end});
}
return null;
}
@Override
public void afterPropertiesSet() throws Exception {
super.commonService = ${entity}Service;
super.primaryKey = "$dbPriorityKeyJavaField";//硬编码此实体的主键名称
}
}