123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package com.sysu.admin.api.crop;
- import com.alibaba.fastjson.JSON;
- import com.google.common.collect.Lists;
- import com.sysu.admin.controller.crop.CropLand;
- import com.sysu.admin.controller.crop.CropLandService;
- import com.sysu.admin.controller.crop.images.CropImage;
- import com.sysu.admin.controller.crop.images.CropImageService;
- import com.sysu.admin.support.base.BaseComponent;
- import com.sysu.admin.support.shiro.ShiroService;
- import com.sysu.admin.support.system.config.ConfigContext;
- import com.sysu.admin.support.system.config.SConfigService;
- import com.sysu.admin.utils.TextUtil;
- import com.sysu.admin.utils.shape.GeoCastUtil;
- import com.xiesx.fastboot.base.result.BaseResult;
- import com.xiesx.fastboot.base.result.R;
- import com.xiesx.fastboot.utils.CopyUtils;
- import org.opengis.referencing.FactoryException;
- import org.opengis.referencing.operation.TransformException;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- @RequestMapping("/api/crop")
- @RestController
- public class CropController extends BaseComponent {
- @Autowired
- CropLandService cityLandService;
- @Autowired
- SConfigService mSConfigService;
- @Autowired
- ShiroService mShiroService;
- @Autowired
- ConfigContext configContext;
- @Autowired
- CropImageService cropImageService;
- @RequestMapping("/list")
- public BaseResult list(@RequestBody String data) throws FactoryException, TransformException {
- CropVo vo = JSON.parseObject(data, CropVo.class);
- List<CropLand> cityLandList = cityLandService.findByBuffer(vo.getPoint(),vo.getMeter());
- cityLandList.stream().forEach(cityLand -> {
- cityLand.setGeojson(GeoCastUtil.gjson.toString(cityLand.getGeom()));
- });
- return R.succ(cityLandList);
- }
- @RequestMapping("/updateStatus")
- public BaseResult updateStatus(@RequestBody String data){
- CropVo vo = JSON.parseObject(data, CropVo.class);
- cityLandService.updateStatus(vo.getId(),vo.getStatus());
- return R.succ();
- }
- @PostMapping("/uploadData")
- public BaseResult uploadData(@RequestParam("fay") MultipartFile fay,
- @RequestParam("center") MultipartFile center,
- @RequestParam("near") MultipartFile near,
- String json){
- CropVo vo = JSON.parseObject(json, CropVo.class);
- CropLand bean = cityLandService.findOne(vo.getId());
- BeanUtils.copyProperties(vo, bean, CopyUtils.nullNames(vo));
- CropImage fayImage = vo.getFay();
- fayImage.setType(0);
- CropImage centerImage = vo.getCenter();
- centerImage.setType(1);
- CropImage nearImage = vo.getNear();
- nearImage.setType(2);
- fayImage.setFilename(saveFile(fay, "fay","test"));
- centerImage.setFilename(saveFile(center, "center","test"));
- nearImage.setFilename(saveFile(near, "near","test"));
- cityLandService.saveCropAndImages(bean, new CropImage[]{fayImage, centerImage, nearImage});
- return R.succ();
- }
- public String saveFile(MultipartFile file, String sign, String username){
- if(file != null){
- String imageDirPath = configContext.getImageDirPath();
- String hz = TextUtil.rightSubstring(".",file.getOriginalFilename());
- String newFileName = System.currentTimeMillis() + "_" + username+"_"+sign+"." + hz;
- try {
- //复制到零时文件
- File target = new File(imageDirPath + newFileName);
- file.transferTo(target);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return newFileName;
- }
- return "";
- }
- }
|