/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.feedback.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import lombok.AllArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.wj.entity.Wj; import org.springblade.modules.wj.service.IWjService; import org.springblade.modules.wj.vo.WjVO; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.modules.feedback.entity.Feedback; import org.springblade.modules.feedback.vo.FeedbackVO; import org.springblade.modules.feedback.wrapper.FeedbackWrapper; import org.springblade.modules.feedback.service.IFeedbackService; import org.springblade.core.boot.ctrl.BladeController; import org.springframework.web.multipart.MultipartFile; import java.io.*; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; /** * 控制器 * * @author BladeX * @since 2020-07-14 */ @RestController @AllArgsConstructor @RequestMapping("feedback/feedback") @Api(value = "", tags = "接口") public class FeedbackController extends BladeController { private final IFeedbackService feedbackService; private IWjService iWjService; /** * 详情 */ @GetMapping("/detail") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入feedback") public R detail(Feedback feedback) { Feedback detail = feedbackService.getOne(Condition.getQueryWrapper(feedback)); return R.data(FeedbackWrapper.build().entityVO(detail)); } /** * 分页 */ @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入feedback") public R> list(Feedback feedback, Query query) { IPage pages = feedbackService.page(Condition.getPage(query), Condition.getQueryWrapper(feedback)); return R.data(FeedbackWrapper.build().pageVO(pages)); } /** * 自定义分页 */ @GetMapping("/page") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入feedback") public R> page(FeedbackVO feedback, Query query) { IPage pages = feedbackService.selectFeedbackPage(Condition.getPage(query), feedback); return R.data(pages); } /** * 新增 */ @PostMapping("/save") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入feedback") public R save(@Valid @RequestBody Feedback feedback) { return R.status(feedbackService.save(feedback)); } /** * 修改 */ @PostMapping("/update") @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入feedback") public R update(@Valid @RequestBody Feedback feedback) { return R.status(feedbackService.updateById(feedback)); } /** * 新增或修改 */ @PostMapping("/submit") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入feedback") public R submit(@Valid @RequestBody Feedback feedback) { return R.status(feedbackService.saveOrUpdate(feedback)); } /** * 删除 */ @PostMapping("/remove") @ApiOperationSupport(order = 8) @ApiOperation(value = "删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(feedbackService.removeByIds(Func.toLongList(ids))); } /** * 图片上传 * @param file * @return * @throws IOException */ @PostMapping("/saveImage") @ResponseBody public R upLoadFile(@RequestParam("file") MultipartFile file,String jid) throws IOException { Map map = new HashMap<>(); String fileExtension = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String s = UUID.randomUUID().toString().replace("-", ""); String fileName = s + fileExtension; String path ="D:/nginx-1.12.2/images/"; //检查该路径对应的目录是否存在. 如果不存在则创建目录 File dir=new File(path); if (!dir.exists()) { dir.mkdirs(); } String filePath = path + fileName; //保存文件 File dest = new File(filePath); if (!(dest.exists())) { file.transferTo(dest); } //文件新增 String address= "localhost:80/"+fileName; //文件新增 Wj wj = new Wj(); wj.setJid(jid); wj.setAddress(address); iWjService.insertfeed(wj); map.put("id", wj.getId()); map.put("filePath","D:/nginx-1.12.2/images/"+fileName); return R.data(map); } @PostMapping("/insertfeed") public R insertfeed(String jid, String snumber, String sname, String addvcd, String place, String result, String describe, String type, String devicenumber, String galarmpeople, String phone, String stime, String ctime, String feedbackaudio, String feedbackvideo, String feedbackphoto, String jd, String wd, String tname,HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); feedbackService.insertfeed(jid, snumber, sname, addvcd, place, result, describe, type, devicenumber, galarmpeople, phone, stime, ctime, feedbackaudio, feedbackvideo, feedbackphoto, jd, wd, tname); return R.success("新增成功"); } /** * 查询 * @param response * @return */ @PostMapping("/selectFeedList") public R selectFeedList(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); return R.data(feedbackService.selectFeedList()); } /** * 删除 * @return */ @PostMapping("/deletefeed") public R deletefeed(String Path,String id,HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); try{ File file = new File(Path); if(file.delete()){ iWjService.del(id); System.out.println(file.getName() + " 文件已被删除!"); }else{ System.out.println("文件删除失败!"); } }catch(Exception e){ e.printStackTrace(); } return R.success("删除成功"); } }