Administrator 2 năm trước cách đây
mục cha
commit
c4907364f1

+ 14 - 5
src/main/java/com/sysu/admin/api/crop/ApiCropController.java

@@ -2,6 +2,8 @@ package com.sysu.admin.api.crop;
 
 import com.alibaba.fastjson.JSON;
 import com.mysql.jdbc.StringUtils;
+import com.sysu.admin.api.interceptor.LogAspect;
+import com.sysu.admin.api.valid.ApiReqValid;
 import com.sysu.admin.controller.crop.CropLand;
 import com.sysu.admin.controller.crop.CropLandService;
 import com.sysu.admin.controller.crop.CropPoint;
@@ -14,6 +16,7 @@ import com.sysu.admin.support.system.config.SConfigService;
 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.core.token.handle.CurrentToken;
 import com.xiesx.fastboot.utils.CopyUtils;
 import org.apache.commons.codec.binary.Base64;
 import org.opengis.referencing.FactoryException;
@@ -50,7 +53,6 @@ public class ApiCropController extends BaseComponent {
             vo.setMeter(5000);
         }
         List<CropPoint> cropPoints = cityLandService.findByBuffer(vo.getPoint(), vo.getMeter());
-
         return R.succ(cropPoints);
     }
 
@@ -86,26 +88,33 @@ public class ApiCropController extends BaseComponent {
     }
 
     @RequestMapping("/list")
+    @LogAspect
     public BaseResult list(@RequestBody String data){
         CropVo vo = JSON.parseObject(data, CropVo.class);
-        List<CropLand> cityLandList = null;
-        cityLandList = cityLandService.findIdAndNameByExecutor(testId);
+        super.validate(vo, ApiReqValid.TokenCheckValid.class);
+        CurrentToken currentToken = CurrentToken.getCurrentToken(vo.getToken());
+        List<CropLand> cityLandList = cityLandService.findIdAndNameByExecutor(Long.valueOf(currentToken.getUserId()));
         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());
+        super.validate(vo, ApiReqValid.TokenCheckValid.class);
+        CurrentToken currentToken = CurrentToken.getCurrentToken(vo.getToken());
+        cityLandService.updateStatus(vo.getId(),vo.getStatus(), Long.parseLong(currentToken.getUserId()));
         return R.succ();
     }
 
     @PostMapping("/uploadData")
+    @LogAspect
     public BaseResult uploadData(@RequestBody String json){
         CropVo vo = JSON.parseObject(json, CropVo.class);
+        super.validate(vo, ApiReqValid.TokenCheckValid.class);
+        CurrentToken currentToken = CurrentToken.getCurrentToken(vo.getToken());
         CropLand bean = cityLandService.findOne(vo.getId());
         BeanUtils.copyProperties(vo, bean, CopyUtils.nullNames(vo));
-        bean.setExecutor(testId);
+        bean.setExecutor(Long.parseLong(currentToken.getUserId()));
         bean.setUpdateDate(new Date());
         cityLandService.saveCropAndImages(bean);
         return R.succ();

+ 4 - 0
src/main/java/com/sysu/admin/api/crop/CropVo.java

@@ -1,5 +1,6 @@
 package com.sysu.admin.api.crop;
 
+import com.sysu.admin.api.valid.ApiReqValid;
 import com.sysu.admin.controller.crop.images.CropImage;
 import lombok.Data;
 import lombok.experimental.FieldNameConstants;
@@ -37,4 +38,7 @@ public class CropVo {
     private String name;
     private String address;
 
+    @NotNull(message = "token为空!", groups = {ApiReqValid.TokenCheckValid.class})
+    private String token;
+
 }

+ 9 - 0
src/main/java/com/sysu/admin/api/interceptor/LogAspect.java

@@ -0,0 +1,9 @@
+package com.sysu.admin.api.interceptor;
+
+import java.lang.annotation.*;
+
+@Target({ElementType.METHOD})
+@Retention(value = RetentionPolicy.RUNTIME)
+@Documented
+public @interface LogAspect {
+}

+ 5 - 5
src/main/java/com/sysu/admin/api/interceptor/WebLogAspect.java

@@ -1,5 +1,7 @@
 package com.sysu.admin.api.interceptor;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -30,7 +32,7 @@ public class WebLogAspect {
     /**
      * 切面, xxx.xxx.xxx.web.ctl是Controller包名
      */
-    @Pointcut("execution(* com.sysu.admin.api.*.controller..*.*(..))")
+    @Pointcut("@annotation(LogAspect)")
     private void parameterPointCut() {}
 
 
@@ -62,13 +64,12 @@ public class WebLogAspect {
             return;
         }
         int c = 0;
-        ObjectMapper mapper = new ObjectMapper();
         for(Object arg: reqArgs){
             if(arg instanceof ServletRequest){
                 continue;
             }
             try{
-                log.warn("请求入参[{}]: {}", c, mapper.writeValueAsString(arg));
+                log.warn("请求入参[{}]: {}", c, arg);
             }catch (Exception ex){
                 log.error("请求入参转换异常", ex);
             }
@@ -86,8 +87,7 @@ public class WebLogAspect {
     public Object responeLog(JoinPoint joinPoint, Object ret){
         if(startLog) {
             try {
-                ObjectMapper mapper = new ObjectMapper();
-                log.warn("响应出参: {}", mapper.writeValueAsString(ret));
+                log.warn("响应出参: {}", JSON.toJSONString(ret));
             } catch (Throwable ex) {
                 log.error("响应异常", ex);
             }

+ 1 - 10
src/main/java/com/sysu/admin/api/user/ApiUserController.java

@@ -78,15 +78,6 @@ public class ApiUserController extends BaseComponent {
         return user;
     }
 
-    public static void main(String[] args) {
-        Map<String, Object> claims = Maps.newConcurrentMap();
-        claims.put(TokenCfg.USERID, 380402566221008896L);
-        claims.put(TokenCfg.USERNAME, "13797066447");
-        String newToken = JwtHelper.create("sysuimars", "api", claims, JwtHelper.JWT_EXPIRE_D_1 * 20);
-        AliSmsSenderHelper mSmsSenderHelper = new AliSmsSenderHelper();
-        mSmsSenderHelper.checkToken(newToken);
-    }
-
     private User getUser(String code, String mobile){
         User user = userService.findByUsername(mobile);
         if(user == null) {
@@ -98,7 +89,7 @@ public class ApiUserController extends BaseComponent {
         Map<String, Object> claims = Maps.newConcurrentMap();
         claims.put(TokenCfg.USERID, user.getId());
         claims.put(TokenCfg.USERNAME, user.getUsername());
-        String token = JwtHelper.create("sysuimars", "api", claims, JwtHelper.JWT_EXPIRE_D_30);
+        String token = JwtHelper.create("sysuimars", "api", claims, JwtHelper.JWT_EXPIRE_D_1 * 20);
         user.setToken(token);
         return user;
     }

+ 6 - 0
src/main/java/com/sysu/admin/api/valid/ApiReqValid.java

@@ -0,0 +1,6 @@
+package com.sysu.admin.api.valid;
+
+public interface ApiReqValid {
+    public interface TokenCheckValid {
+    }
+}

+ 5 - 3
src/main/java/com/sysu/admin/controller/crop/CropLand.java

@@ -85,18 +85,20 @@ public class CropLand {
     private Date receiveDate;
 
     @Column(nullable = false)
+    private Long receiver;
+
+    @Column(nullable = false)
     private Date pickDate;
 
     /**
      * 创建人
      */
-    @Column(updatable = false, nullable = false)
+    @Column( nullable = false)
     private Long creator;
 
     /**
-     * 创建人
      */
-    @Column(updatable = false, nullable = false)
+    @Column(nullable = false)
     private Long executor;
 
     /**

+ 7 - 1
src/main/java/com/sysu/admin/controller/crop/CropLandController.java

@@ -7,6 +7,7 @@ import com.querydsl.core.types.dsl.BooleanExpression;
 import com.querydsl.core.types.dsl.PathBuilder;
 import com.querydsl.jpa.impl.JPAUpdateClause;
 import com.sysu.admin.api.crop.CropVo;
+import com.sysu.admin.api.interceptor.LogAspect;
 import com.sysu.admin.controller.city.*;
 import com.sysu.admin.controller.crop.CropLand;
 import com.sysu.admin.controller.crop.CropLandService;
@@ -60,10 +61,15 @@ public class CropLandController extends ServiceContext {
             return R.fail();
         }
         cityLand.setWkt(GeoCastUtil.geomToWkt(cityLand.getGeom()));
-//        cityLand.setWkt(cityLandService.getBuffer(new Double[]{x, y}, 10));
         return R.succ(cityLand);
     }
 
+    @RequestMapping("/getBuffer")
+    @ResponseBody
+    public BaseResult getBuffer(Double x, Double y, Integer m){
+        return R.succ(cityLandService.getBuffer(new Double[]{x, y}, m));
+    }
+
     @RequestMapping("/save")
     @ResponseBody
     public BaseResult save(CropLandVo vo){

+ 3 - 2
src/main/java/com/sysu/admin/controller/crop/CropLandService.java

@@ -74,11 +74,12 @@ public class CropLandService extends BaseService<CropLand, Long> {
     }
 
     @Transactional
-    public void updateStatus(Long id, Integer status){
+    public void updateStatus(Long id, Integer status, Long updateUserId){
         CropLand bean = mCropLandRepository.findOne(id);
         bean.setStatus(status);
-        if(status.equals(LandTaskStatus.receive)) {
+        if(status.equals(LandTaskStatus.receive.ordinal())) {
             bean.setReceiveDate(new Date());
+            bean.setReceiver(updateUserId);
         }
         mCropLandRepository.save(bean);
     }

+ 1 - 1
src/main/webapp/WEB-INF/jsp/comm/admin2.jsp

@@ -69,7 +69,7 @@
                 var target = "map"
 
                 view1 = new ol.View({
-                    center: [113.37966949,23.06685869],
+                    center: [113.26962951874916,23.126323245095218],
                     projection: projection,
                     zoom: 15
                 })

+ 23 - 1
src/main/webapp/static/package/cityland.js

@@ -48,15 +48,19 @@ CityLandAction.prototype = {
         // this.context.clicks[this.id] = this
         this.drawMultiPolygon.show()
         this.context.currentMap.addLayer(this.obj.layerData.layer)
+        this.tempVectorLayer.setVisible(true)
+
         this.context.getSldStyleSign(this.obj.wmsData.params.STYLE)
         this.startStatus = true;
+
+        // this.showBuffer();
     },
     stop(){
         if(!this.startStatus){
             console.log("startStatus is false")
             return
         }
-        this.tempVectorLayer.getSource().clear()
+        this.tempVectorLayer.setVisible(false)
         this.context.currentMap.removeLayer(this.obj.layerData.layer)
         console.log("drawMultiPolygon close")
         this.drawMultiPolygon.close()
@@ -108,6 +112,24 @@ CityLandAction.prototype = {
             that.clickLock = false
         })
     },
+    showBuffer(){
+        let that = this
+        that.context.getBuffer([113.26962951874916,23.126323245095218],5000, function(res){
+            try {
+                if(res.code == -1){
+                    return;
+                }
+                let geometry = that.context.wkt.readGeometry(res.msg)
+                let feature = new ol.Feature({
+                    geometry: geometry
+                });
+                that.tempVectorLayer.getSource().addFeature(feature)
+            }catch (e){
+                console.log(e)
+            }finally {
+            }
+        })
+    },
     addFieldPointOfTempLayer(cityLand){
         let geometry = this.context.wkt.readGeometry(cityLand.wkt)
         let extent = ol.extent.getCenter(geometry.getExtent());

+ 14 - 0
src/main/webapp/static/package/geo_server_context.js

@@ -53,6 +53,20 @@ GeoServerContext.prototype = {
                     error(req)
             }
         });
+    },getBuffer(coordinate,m, callback, error) {
+        // coordinate = ol.proj.transform([coordinate[0],coordinate[1]],"EPSG:4326","EPSG:4526")
+        $.ajax({
+            type : 'POST',
+            url : "/crop/getBuffer",
+            data : { x : coordinate[0], y : coordinate[1], m:m},
+            dataType : 'json',
+            success : function(res){
+                callback(res)
+            },error: function(req){
+                if(error)
+                    error(req)
+            }
+        });
     },
     //获取图例
     getSldStyleSign(styleName){

+ 1 - 1
src/main/webapp/static/package/style.js

@@ -8,7 +8,7 @@ let globalStyle = {
         });
     },
     pointStyle(f){
-        let colors = ['rgb(7,31,250)','rgb(7,31,250)','rgb(250,189,7)','rgb(7,250,11)']
+        let colors = ['rgb(88,88,90)','rgb(7,31,250)','rgb(250,189,7)','rgb(7,250,11)']
         let style = new ol.style.Style({
             text: new ol.style.Text({
                 text:f.getId() ? f.getId() : f.get("id"),