package ${packageName}.controller; import java.net.URLEncoder; import java.util.List; import java.io.IOException; import java.util.Map; import javax.servlet.http.HttpServletResponse; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.util.MapUtils; import com.alibaba.fastjson2.JSON; import com.chinagas.common.core.domain.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.chinagas.common.log.annotation.Log; import com.chinagas.common.log.enums.BusinessType; import com.chinagas.common.security.annotation.RequirePermission; import ${packageName}.domain.${ClassName}; import ${packageName}.service.I${ClassName}Service; import com.chinagas.common.core.web.controller.BaseController; #if($table.crud || $table.sub) import com.chinagas.common.core.web.page.TableDataInfo; #elseif($table.tree) #end /** * ${functionName}Controller * * @author ${author} * @date ${datetime} */ @RestController @RequestMapping("/${className}") public class ${ClassName}Controller extends BaseController { @Autowired private I${ClassName}Service ${className}Service; /** * 查询${functionName}列表 */ @RequirePermission("${permissionPrefix}:list") @GetMapping("/list") #if($table.crud || $table.sub) public TableDataInfo list(${ClassName} ${className}) { startPage(); List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); return getDataTable(list); } #elseif($table.tree) public AjaxResult list(${ClassName} ${className}) { List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); return AjaxResult.success(list); } #end ## @RequirePermission("${permissionPrefix}:export") ## @Log(title = "${functionName}", businessType = BusinessType.EXPORT) ## @PostMapping("/export") ## public void export(HttpServletResponse response, ${ClassName} ${className}) ## { ## List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); ## ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class); ## util.exportExcel(response, list, "${functionName}数据"); ## } /** * 导出${functionName}列表 */ @RequirePermission("${permissionPrefix}:export") @Log(title = "${functionName}",businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response,${ClassName} ${className}) throws IOException { List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); try { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 String fileName = URLEncoder.encode("${functionName}", "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); // 这里需要设置不关闭流 EasyExcel.write(response.getOutputStream(), ${ClassName}.class).autoCloseStream(Boolean.FALSE).sheet("客户信息列表") .doWrite(list); } catch (Exception e) { // 重置response e.printStackTrace(); response.reset(); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); Map map = MapUtils.newHashMap(); map.put("status", "failure"); map.put("message", "下载文件失败" + e.getMessage()); response.getWriter().println(JSON.toJSONString(map)); } } /** * 获取${functionName}详细信息 */ @RequirePermission("${permissionPrefix}:query") @GetMapping(value = "/{${pkColumn.javaField}}") public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { return AjaxResult.success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); } /** * 新增${functionName} */ @RequirePermission("${permissionPrefix}:add") @Log(title = "${functionName}", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ${ClassName} ${className}) { return toAjax(${className}Service.insert${ClassName}(${className})); } /** * 修改${functionName} */ @RequirePermission("${permissionPrefix}:edit") @Log(title = "${functionName}", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ${ClassName} ${className}) { return toAjax(${className}Service.update${ClassName}(${className})); } /** * 删除${functionName} */ @RequirePermission("${permissionPrefix}:remove") @Log(title = "${functionName}", businessType = BusinessType.DELETE) @DeleteMapping("/{${pkColumn.javaField}s}") public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s)); } }