/* * 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.jfpt.feedback.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; 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.jfpt.alarm.service.IAlarmService; import org.springblade.jfpt.feedback.entity.Feedback; import org.springblade.jfpt.feedback.service.IFeedbackService; import org.springblade.jfpt.feedback.vo.FeedbackVO; import org.springblade.jfpt.feedback.wrapper.FeedbackWrapper; import org.springblade.jfpt.operation.entity.Operation; import org.springblade.jfpt.operation.service.IOperationService; import org.springblade.jfpt.wj.entity.Wj; import org.springblade.jfpt.wj.service.IWjService; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; /** * 控制器 * * @author BladeX * @since 2020-07-14 */ @RestController @AllArgsConstructor @RequestMapping("feedback/feedback") @Api(value = "", tags = "接口") public class FeedbackController extends BladeController { private final IFeedbackService feedbackService; private final IAlarmService alarmService; private IWjService iWjService; private final IOperationService operationService; /** * 详情 */ @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("删除成功"); } /** * APP警情反馈信息 * * @param response * @return */ @PostMapping("/selectFeedEdit") public R selectFeedEdit(HttpServletResponse response, String jid) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials", "true"); Map maps = new HashMap(); //保存视频的数组 ArrayList arlistm = new ArrayList(); //保存图片的数组 ArrayList arlistj = new ArrayList(); List> lists = new ArrayList<>(); List feedbackVOS = feedbackService.selectFeedEdit(jid); List> map = feedbackService.selectWjEdit(jid); for (int i = 0; i < map.size(); i++) { Object address = map.get(i).get("address"); String addr = address.toString(); String substring = addr.substring(addr.length() - 4, addr.length()); if (substring.equals(".mp4")) { arlistm.add(addr); } else if (substring.equals(".jpg") || substring.equals("JPEG")) { arlistj.add(addr); } } maps.put("List", feedbackVOS); maps.put("tp", arlistj); maps.put("sp", arlistm); lists.add(maps); return R.data(lists); } /** * 警情反馈新增 */ @PostMapping("/saves") public R saves(FeedbackVO feedback) { SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间 sdf.applyPattern("yyyy-MM-dd HH:mm:ss");// a为am/pm的标记 Date date = new Date();// 获取当前时间 //System.out.println("现在时间:" + sdf.format(date)); // 输出已经格式化的现在时间(24小时制) Operation operation = new Operation(); operation.setJid(feedback.getJid()); operation.setSnumber(feedback.getSnumber()); operation.setZc("任务反馈提交,警情结束"); operation.setSname(feedback.getSname()); operation.setZctime(sdf.format(date)); operationService.save(operation); feedbackService.save(feedback); Wj wj = new Wj(); if (feedback.getSpaddress().equals("")&&feedback.getSpaddress()!=null) { } else { //获取视频地址 String[] splitsp = feedback.getSpaddress().split(",");//以逗号分割 for (String string2 : splitsp) { wj.setJid(feedback.getJid()); wj.setAddress(string2); iWjService.insertfeed(wj); } } if (feedback.getTpaddress().equals("")&&feedback.getTpaddress()!=null){ } else { String[] splittp = feedback.getTpaddress().split(",");//以逗号分割 for ( String string3 : splittp) { wj.setJid(feedback.getJid()); wj.setAddress(string3); iWjService.insertfeed(wj); } } alarmService.updateJtype(operation.getJid(), "2", null, null,null); return R.success("新增成功"); } }