Controller.java.vm 7.28 KB
package ${packageName}.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huaheng.framework.web.page.PageDomain;
import com.huaheng.framework.web.page.TableDataInfo;
import com.huaheng.framework.web.page.TableSupport;
import com.huaheng.common.utils.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import ${packageName}.domain.${ClassName};
import ${packageName}.service.I${ClassName}Service;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.common.support.Convert;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * ${functionName} 信息操作处理
 *
 * @author ${author}
 * @date ${datetime}
 */
@Controller
@RequestMapping("/${moduleName}/${className}")
public class ${ClassName}Controller extends BaseController {
    private String prefix = "${moduleName}/${className}";

	@Resource
	private I${ClassName}Service ${className}Service;

	@RequiresPermissions("${moduleName}:${className}:view")
	@GetMapping()
	public String ${className}() {
	    return prefix + "/${className}";
	}

	/**
	 * 查询${functionName}列表
	 */
	@RequiresPermissions("${moduleName}:${className}:list")
	@PostMapping("/list")
	@ResponseBody
	public TableDataInfo list(${ClassName} ${className}) {
		LambdaQueryWrapper<${ClassName}> lambdaQueryWrapper = Wrappers.lambdaQuery();
		lambdaQueryWrapper
		#foreach( ${column} in ${columns})
			#if(${column.isQuery} == 1)
				#if(${column.queryType} == "EQ")
					#if(${column.javaType} == "String")
							.eq(StringUtils.isNotEmpty(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
						#else
							.eq(StringUtils.isNotNull(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#end
				#elseif(${column.queryType} == "NE")
					#if(${column.javaType} == "String")
						.ne(StringUtils.isNotEmpty(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#else
						.ne(StringUtils.isNotNull(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#end
				#elseif(${column.queryType} == "GT")
					#if(${column.javaType} == "String")
						.gt(StringUtils.isNotEmpty(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#else
						.gt(StringUtils.isNotNull(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#end
				#elseif(${column.queryType} == "GTE")
					#if(${column.javaType} == "String")
						.ge(StringUtils.isNotEmpty(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#else
						.ge(StringUtils.isNotNull(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#end
				#elseif(${column.queryType} == "LT")
					#if(${column.javaType} == "String")
						.lt(StringUtils.isNotEmpty(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#else
						.lt(StringUtils.isNotNull(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#end
				#elseif(${column.queryType} == "LTE")
					.#if(${column.javaType} == "String")
						.le(StringUtils.isNotEmpty(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#else
						.le(StringUtils.isNotNull(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#end
				#elseif(${column.queryType} == "LIKE")
					#if(${column.javaType} == "String")
						.like(StringUtils.isNotEmpty(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#else
						.like(StringUtils.isNotNull(${className}.get${column.CapColumnName}()), ${ClassName}::get${column.CapColumnName}, ${className}.get${column.CapColumnName}())
					#end
				#end
			#end
		#end;
		PageDomain pageDomain = TableSupport.buildPageRequest();
		Integer pageNum = pageDomain.getPageNum();
		Integer pageSize = pageDomain.getPageSize();
		if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
			/*使用分页查询*/
			Page<${ClassName}> page = new Page<>(pageNum, pageSize);
			IPage<${ClassName}> iPage = ${className}Service.page(page, lambdaQueryWrapper);
			return getMpDataTable(iPage.getRecords(), iPage.getTotal());
		} else {
			List<${ClassName}> list = ${className}Service.list(lambdaQueryWrapper);
			return getDataTable(list);
		}
	}

	/**
	 * 新增${functionName}
	 */
	@GetMapping("/add")
	public String add() {
	    return prefix + "/add";
	}

	/**
	 * 新增保存${functionName}
	 */
	@RequiresPermissions("${moduleName}:${className}:add")
	@Log(title = "${functionName}", action = BusinessType.INSERT)
	@PostMapping("/add")
	@ResponseBody
	public AjaxResult addSave(${ClassName} ${className}) {
		return toAjax(${className}Service.save(${className}));
	}

	/**
	 * 修改${functionName}
	 */
	@GetMapping("/edit/{${pkColumn.javaField}}")
	public String edit(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}, ModelMap mmap) {
		${ClassName} ${className} = ${className}Service.getById(${pkColumn.javaField});
		mmap.put("${className}", ${className});
	    return prefix + "/edit";
	}

	/**
	 * 修改保存${functionName}
	 */
	@RequiresPermissions("${moduleName}:${className}:edit")
	@Log(title = "${functionName}", action = BusinessType.UPDATE)
	@PostMapping("/edit")
	@ResponseBody
	public AjaxResult editSave(${ClassName} ${className}) {
		return toAjax(${className}Service.updateById(${className}));
	}

	/**
	 * 删除${functionName}
	 */
	@RequiresPermissions("${moduleName}:${className}:remove")
	@Log(title = "${functionName}", action = BusinessType.DELETE)
	@PostMapping( "/remove")
	@ResponseBody
	public AjaxResult remove(String ids) {
		if (StringUtils.isEmpty(ids)){
			return AjaxResult.error("id不能为空");
		}
		return toAjax(${className}Service.removeByIds(Arrays.asList(Convert.toIntArray(ids))));
	}

}