CropController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package com.sysu.admin.api.crop;
  2. import com.alibaba.fastjson.JSON;
  3. import com.google.common.collect.Lists;
  4. import com.sysu.admin.controller.crop.CropLand;
  5. import com.sysu.admin.controller.crop.CropLandService;
  6. import com.sysu.admin.controller.crop.images.CropImage;
  7. import com.sysu.admin.controller.crop.images.CropImageService;
  8. import com.sysu.admin.support.base.BaseComponent;
  9. import com.sysu.admin.support.shiro.ShiroService;
  10. import com.sysu.admin.support.system.config.ConfigContext;
  11. import com.sysu.admin.support.system.config.SConfigService;
  12. import com.sysu.admin.utils.TextUtil;
  13. import com.sysu.admin.utils.shape.GeoCastUtil;
  14. import com.xiesx.fastboot.base.result.BaseResult;
  15. import com.xiesx.fastboot.base.result.R;
  16. import com.xiesx.fastboot.utils.CopyUtils;
  17. import org.opengis.referencing.FactoryException;
  18. import org.opengis.referencing.operation.TransformException;
  19. import org.springframework.beans.BeanUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.*;
  22. import org.springframework.web.multipart.MultipartFile;
  23. import java.io.File;
  24. import java.io.IOException;
  25. import java.util.ArrayList;
  26. import java.util.Arrays;
  27. import java.util.List;
  28. @RequestMapping("/api/crop")
  29. @RestController
  30. public class CropController extends BaseComponent {
  31. @Autowired
  32. CropLandService cityLandService;
  33. @Autowired
  34. SConfigService mSConfigService;
  35. @Autowired
  36. ShiroService mShiroService;
  37. @Autowired
  38. ConfigContext configContext;
  39. @Autowired
  40. CropImageService cropImageService;
  41. @RequestMapping("/list")
  42. public BaseResult list(@RequestBody String data) throws FactoryException, TransformException {
  43. CropVo vo = JSON.parseObject(data, CropVo.class);
  44. List<CropLand> cityLandList = cityLandService.findByBuffer(vo.getPoint(),vo.getMeter());
  45. cityLandList.stream().forEach(cityLand -> {
  46. cityLand.setGeojson(GeoCastUtil.gjson.toString(cityLand.getGeom()));
  47. });
  48. return R.succ(cityLandList);
  49. }
  50. @RequestMapping("/updateStatus")
  51. public BaseResult updateStatus(@RequestBody String data){
  52. CropVo vo = JSON.parseObject(data, CropVo.class);
  53. cityLandService.updateStatus(vo.getId(),vo.getStatus());
  54. return R.succ();
  55. }
  56. @PostMapping("/uploadData")
  57. public BaseResult uploadData(@RequestParam("fay") MultipartFile fay,
  58. @RequestParam("center") MultipartFile center,
  59. @RequestParam("near") MultipartFile near,
  60. String json){
  61. CropVo vo = JSON.parseObject(json, CropVo.class);
  62. CropLand bean = cityLandService.findOne(vo.getId());
  63. BeanUtils.copyProperties(vo, bean, CopyUtils.nullNames(vo));
  64. CropImage fayImage = vo.getFay();
  65. fayImage.setType(0);
  66. CropImage centerImage = vo.getCenter();
  67. centerImage.setType(1);
  68. CropImage nearImage = vo.getNear();
  69. nearImage.setType(2);
  70. fayImage.setFilename(saveFile(fay, "fay","test"));
  71. centerImage.setFilename(saveFile(center, "center","test"));
  72. nearImage.setFilename(saveFile(near, "near","test"));
  73. cityLandService.saveCropAndImages(bean, new CropImage[]{fayImage, centerImage, nearImage});
  74. return R.succ();
  75. }
  76. public String saveFile(MultipartFile file, String sign, String username){
  77. if(file != null){
  78. String imageDirPath = configContext.getImageDirPath();
  79. String hz = TextUtil.rightSubstring(".",file.getOriginalFilename());
  80. String newFileName = System.currentTimeMillis() + "_" + username+"_"+sign+"." + hz;
  81. try {
  82. //复制到零时文件
  83. File target = new File(imageDirPath + newFileName);
  84. file.transferTo(target);
  85. } catch (IOException e) {
  86. e.printStackTrace();
  87. }
  88. return newFileName;
  89. }
  90. return "";
  91. }
  92. }