Controller.java.vm 8.59 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))));
    }

}