package com.xkrs.controller; import com.xkrs.common.encapsulation.PromptMessageEnum; import com.xkrs.common.tool.TokenUtil; import com.xkrs.dao.FirePointDao; import com.xkrs.dao.SysUserDao; import com.xkrs.model.entity.FirePoint; import com.xkrs.model.entity.FirePointEntity; import com.xkrs.model.entity.SysUserEntity; import com.xkrs.model.qo.FirePointQo; import com.xkrs.model.vo.AppTaskBodyVo; import com.xkrs.service.FirePointService; import com.xkrs.websocket.service.WebSocketServer; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.transaction.Transactional; import java.io.IOException; import java.util.List; import java.util.Locale; import java.util.Map; import static com.xkrs.common.encapsulation.OutputEncapsulation.outputEncapsulationObject; /** * @author XinYi Song */ @RestController public class FirePointController { @Resource private FirePointService firePointService; @Resource private SysUserDao sysUserDao; @Resource private FirePointDao firePointDao; /** * 添加火点数据 * @param firePointQo * @return */ @PostMapping("/insertFirePoint") public String insertFirePoint(@RequestBody FirePointQo firePointQo){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); FirePointEntity firePointEntity = firePointService.insertFirePoint(firePointQo); if(firePointEntity == null){ return outputEncapsulationObject(PromptMessageEnum.PROCESS_FAIL,"添加数据失败",locale); }else { return outputEncapsulationObject(PromptMessageEnum.SUCCESS,"添加成功",locale); } } /** * 测试 * @param token * @return */ @GetMapping("/selectUserName") @PreAuthorize("hasAnyAuthority('auth_general_user')") public String selectUserName(@RequestHeader(value="Authorization") String token){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); // 验证token String tokenUserName = TokenUtil.getTokenUserName(token); SysUserEntity sysUserEntity = sysUserDao.selectByUserName(tokenUserName); if(sysUserEntity == null){ return outputEncapsulationObject(PromptMessageEnum.USER_LOGIN_ERROR,"您还没有注册登录,请先注册登录",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,sysUserEntity.getUserName(),locale); } /** * 查询今天的火点信息 * @param token * @return */ @GetMapping("/selectTodayFirePoint") @PreAuthorize("hasAnyAuthority('auth_general_user')") public String selectTodayFirePoint(@RequestParam("countyCode") String countyCode,@RequestHeader(value="Authorization") String token){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); List firePointEntities = firePointService.selectTodayFirePoint(countyCode); if(firePointEntities == null || firePointEntities.size() == 0){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没有火点数据",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); } /** * 动态多条件查询火点信息 * @param map * @param token * @return */ @PostMapping("/selectFirePoint") @PreAuthorize("hasAnyAuthority('auth_general_user')") public String selectFirePoint(@RequestBody Map map,@RequestHeader(value="Authorization") String token){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); // 区县编码 String cityCode = (String) map.get("cityCode"); // 卫星类型 String satelliteType = (String) map.get("satelliteType"); // 植被类型 String landType = (String) map.get("landType"); // 开始时间 String startTime = (String) map.get("startTime"); // 结束时间 String endTime = (String) map.get("endTime"); // 验证token String tokenUserName = TokenUtil.getTokenUserName(token); SysUserEntity sysUserEntity = sysUserDao.selectByUserName(tokenUserName); // 查询省 if(sysUserEntity.getCountyCode().substring(2).equals("0000")){ List firePointEntities = firePointService.selectFirePoint(sysUserEntity.getCountyCode(),cityCode, satelliteType, landType, startTime, endTime); if(firePointEntities == null || firePointEntities.size() == 0){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没有火点数据",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); // 查询市 }else if(sysUserEntity.getCountyCode().substring(4).equals("00") && !sysUserEntity.getCountyCode().substring(2).equals("0000")){ List firePointEntities = firePointService.selectFirePointByCity(sysUserEntity.getCountyCode(), cityCode, satelliteType, landType, startTime, endTime); if(firePointEntities == null || firePointEntities.size() == 0){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没有火点数据",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); // 查询县 }else { List firePointEntities = firePointService.selectFirePointByCounty(sysUserEntity.getCountyCode(), satelliteType, landType, startTime, endTime); if(firePointEntities == null || firePointEntities.size() == 0){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没有火点数据",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); } } /** * 根据火点编码修改火点状态 * @param map * @param token * @return */ @PostMapping("/updateTypeByFireCode") public String updateTypeByFireCode(@RequestBody Map map, @RequestHeader(value="Authorization") String token){ String fireCode = (String) map.get("fireCode"); String fireType = (String) map.get("fireType"); return firePointService.updateTypeByFireCode(fireCode,fireType,token); } /** * 提交核查任务 * @param files * @param appTaskBodyVo * @return */ @PostMapping("/insertAppTask") public String insertAppTask(@RequestParam("files") MultipartFile[] files, AppTaskBodyVo appTaskBodyVo) throws IOException { // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); if("".equals(appTaskBodyVo.getFireCode()) || appTaskBodyVo.getFireCode() == null){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"火点编码不能为空",locale); } if("".equals(appTaskBodyVo.getTaskInformation()) || appTaskBodyVo.getTaskInformation() == null){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"任务描述不能为空",locale); } if(files == null || files.length == 0 ){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"图片不能为空",locale); } return firePointService.insertAppTask(files,appTaskBodyVo); } /** * 查询核查的任务信息 * @param fireCode * @return */ @GetMapping("/selectAppTask") public String selectAppTask(@RequestParam("fireCode") String fireCode) throws Exception { return firePointService.selectAppTask(fireCode); } /** * 查询近一周的火点信息 * @return */ @GetMapping("/selectFirePointBetweenSeven") public String selectFirePointBetweenSeven(){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); List firePointEntities = firePointService.selectFirePointBetweenSeven(); if(firePointEntities == null || firePointEntities.size() == 0){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时没有火点数据",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); } /** * 查询近一个月的火点信息 * @return */ @GetMapping("/selectFirePointByMonth") @PreAuthorize("hasAnyAuthority('auth_general_user')") public String selectFirePointByMonth(@RequestHeader(value="Authorization") String token) { // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); // 验证token String tokenUserName = TokenUtil.getTokenUserName(token); SysUserEntity sysUserEntity = sysUserDao.selectByUserName(tokenUserName); List firePointEntities = firePointService.selectFirePointByMonth(sysUserEntity.getCountyCode()); if(firePointEntities == null || firePointEntities.size() == 0){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时没有火点数据",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); } /** * 查询火点数量 * @return */ @GetMapping("/selectFirePointNum") public String selectFirePointNum(@RequestParam("keepType") String keepType){ // keepType为1时,查询近一天的火点数量 if("1".equals(keepType)){ return firePointService.selectFirePointNumDay(); // keepType为2时,查询近一周的火点数量 }else if("2".equals(keepType)){ return firePointService.selectFirePointNumWeek(); }else { return firePointService.selectFirePointNumMonth(); } } @GetMapping("/websocketTest") public void websocketTest(@RequestParam("message") String message){ WebSocketServer.broadInfo(message); } /** * 查询该省所有的市 * @return */ @GetMapping("/selectCityName") public String selectCityName(@RequestParam("code") String code){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); if(code.substring(2).equals("0000")){ List> maps = firePointService.selectCityName(code); return outputEncapsulationObject(PromptMessageEnum.SUCCESS,maps,locale); }else { List> maps = firePointService.selectCountyName(code); return outputEncapsulationObject(PromptMessageEnum.SUCCESS,maps,locale); } } /** * 根据火点编码查询火点信息 * @param fireCode * @return */ @GetMapping("/selectFirePointByCode") public String selectFirePoint(@RequestParam("fireCode") String fireCode){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); FirePointEntity byFireCode = firePointDao.findByFireCode(fireCode); return outputEncapsulationObject(PromptMessageEnum.SUCCESS,byFireCode,locale); } /** * 测试添加火点信息 * @param firePointQo * @return */ @PostMapping("/insertFireTest") public String insertFireTest(@RequestBody FirePointQo firePointQo){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); FirePoint firePoint = firePointService.insertFireTest(firePointQo); if(firePoint == null){ return outputEncapsulationObject(PromptMessageEnum.PROCESS_FAIL,"添加数据失败",locale); }else { return outputEncapsulationObject(PromptMessageEnum.SUCCESS,"添加成功",locale); } } /** * 导入全国省市区 * @param file * @return * @throws Exception */ @PostMapping("/importCityExcel") public String importCityExcel(MultipartFile file) throws Exception { // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); firePointService.importCityExcel(file); return outputEncapsulationObject(PromptMessageEnum.SUCCESS,"导入成功",locale); } /** * 查询今天的火点信息(测试) * @param token * @return */ @GetMapping("/selectTodayFire") @PreAuthorize("hasAnyAuthority('auth_general_user')") public String selectTodayFire(@RequestParam("countyCode") String countyCode,@RequestHeader(value="Authorization") String token){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); List firePointEntities = firePointService.selectTodayFire(countyCode); if(firePointEntities == null || firePointEntities.size() == 0){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没有火点数据",locale); } return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); } /** * 删除水体类型的火点信息 * @return */ @Transactional(rollbackOn = Exception.class) @PostMapping("/deleteShuiTi") public String deleteShuiTi(){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); List integers = firePointDao.selectId(); firePointDao.deleteByIdIn(integers); return outputEncapsulationObject(PromptMessageEnum.SUCCESS,"删除成功",locale); } @GetMapping("/selectBeijing") public String selectBeijing(){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); List firePointEntities = firePointDao.selectBeijing(); return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale); } /** * 根据火点编码添加火点前后的图片 * @param map * @return */ @Transactional(rollbackOn = Exception.class) @PostMapping("/updateBeforeFireAndAfterFireImage") public String updateBeforeFireAndAfterFireImage(@RequestBody Map map){ // 获取区域信息 Locale locale = LocaleContextHolder.getLocale(); String fireCode = (String) map.get("fireCode"); String beforeFireImage = (String) map.get("beforeFireImage"); String afterFireImage = (String) map.get("afterFireImage"); if(fireCode == null || "".equals(fireCode)){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"火点编码不能为空!",locale); } FirePointEntity byFireCode = firePointDao.findByFireCode(fireCode); if(byFireCode == null){ return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"火点编码错误!",locale); } firePointDao.updateBeforeFireAndAfterFireImage(fireCode,beforeFireImage,afterFireImage); return outputEncapsulationObject(PromptMessageEnum.SUCCESS,"添加图片成功!",locale); } }