Pārlūkot izejas kodu

凌云集团更改公司

peiguo 5 gadi atpakaļ
vecāks
revīzija
4b43f681f2

+ 1 - 0
whepi-doc/login.sql

@@ -260,6 +260,7 @@ CREATE TABLE sys_uptown_door  (
   out_img           varchar(100)  NOT NULL DEFAULT '' COMMENT '出口二维码',
   longitude         varchar(20)  NOT NULL DEFAULT '' COMMENT '经度',
   latitude          varchar(20)  NOT NULL DEFAULT '' COMMENT '纬度',
+  distance          int(11)  NOT NULL DEFAULT 0 COMMENT '距离(米)',
   status            int(11) NOT NULL DEFAULT 0 COMMENT '状态:1正常,0草稿,-1删除',
   time_create       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '新增时间',
   time_update       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',

+ 1 - 1
whepi-web/src/main/java/com/bofeng/dao/UptownDoorMapper.java

@@ -16,7 +16,7 @@ import java.util.Map;
 @Repository
 public interface UptownDoorMapper extends BaseMapper<UptownDoor> {
 
-    @Select("SELECT ud.door_id,u.uptown_id,u.uptown_name,ud.door_name FROM sys_uptown_door ud INNER JOIN " +
+    @Select("SELECT ud.door_id,u.uptown_id,ud.longitude,ud.latitude,ud.distance,u.uptown_name,ud.door_name FROM sys_uptown_door ud INNER JOIN " +
             "sys_uptown u ON u.uptown_id = ud.uptown_id WHERE ud.door_id = #{doorId} AND ud.STATUS = 1")
     UptownDoor getUptownDoorById(@Param("doorId") Long doorId);
 

+ 4 - 0
whepi-web/src/main/java/com/bofeng/entity/UptownDoor.java

@@ -44,6 +44,10 @@ public class UptownDoor {
     @TableField("latitude")
     private String latitude;
 
+    @ApiModelProperty("距离(米)")
+    @TableField("distance")
+    private Integer distance;
+
     @ApiModelProperty("状态:1正常,0草稿,-1删除")
     @TableField("status")
     private Integer status;

+ 1 - 0
whepi-web/src/main/java/com/bofeng/service/ScanAdminService.java

@@ -26,6 +26,7 @@ public class ScanAdminService {
         uptownDoor.setOutImg("");
         uptownDoor.setLongitude("");
         uptownDoor.setLatitude("");
+        uptownDoor.setDistance(0);
         uptownDoor.setStatus(1);
         OutScanConf outScanConf = outScanConfMapper.getOutScanConfByUptown(uptownDoor.getUptownId());
         if (outScanConf == null) {

+ 17 - 0
whepi-web/src/main/java/com/bofeng/service/ScanService.java

@@ -5,6 +5,9 @@ import com.bofeng.dao.OutScanEstateMapper;
 import com.bofeng.dao.OutScanMapper;
 import com.bofeng.entity.OutScan;
 import com.bofeng.entity.OutScanEstate;
+import org.gavaghan.geodesy.Ellipsoid;
+import org.gavaghan.geodesy.GeodeticCalculator;
+import org.gavaghan.geodesy.GlobalCoordinates;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -62,4 +65,18 @@ public class ScanService {
         o.setUserUpdate(userId);
         outScanEstateMapper.insert(o);
     }
+
+    /**
+     * 根据经纬度查询距离
+     * @param longitudeFrom
+     * @param latitudeFrom
+     * @param longitudeTo
+     * @param latitudeTo
+     * @return
+     */
+    public double getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) {
+        GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
+        GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
+        return new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere, source, target).getEllipsoidalDistance();
+    }
 }

+ 12 - 0
whepi-web/src/main/java/com/bofeng/wx/controller/ScanController.java

@@ -153,6 +153,17 @@ public class ScanController {
                         model.put("url", url);
                         model.put("moreUrl", moreUrl);
                         return new ModelAndView("/user/location.ftl", model);
+                    } else {
+                        String[] coor = coord.split(",");
+                        Double dis = scanService.getDistance(Double.parseDouble(coor[0]),Double.parseDouble(coor[1]),Double.parseDouble(uptownDoor.getLongitude()), Double.parseDouble(uptownDoor.getLatitude()));
+                        if(dis > Double.parseDouble(uptownDoor.getDistance().toString())) {
+                            model.put("collor", "red");
+                            model.put("collor2", "red");
+                            model.put("into", "不许进入");
+                            model.put("errorMsg", "您当前扫码位置距离" +uptownDoor.getDoorName()+"大门太远,请到门口扫码,如有疑问请与上级管理部门联系。");
+                            scanService.saveOutScan(userOpen.getUserId(), inType, coord, address, uptownDoor.getUptownId(), uptownDoor.getDoorId(), -1, model.get("errorMsg").toString());
+                            return new ModelAndView("/user/scan.ftl", model);
+                        }
                     }
                     OutUser outUser1 = outUserMapper.getOutUserByPhone(4, uptownHomes.get(0).getLinkman(), Long.parseLong(uptownHomes.get(0).getPhone()));
                     if (outUser1 != null) {
@@ -727,6 +738,7 @@ public class ScanController {
         }
     }
 
+
 //    /**
 //     * 生成进出门二维码
 //     * @param doorId 小区大门ID

+ 1 - 0
yvan-platform/build.gradle

@@ -35,6 +35,7 @@ dependencies {
     compile 'cn.afterturn:easypoi-base:4.1.0'
     compile 'cn.afterturn:easypoi-web:4.1.0'
     compile 'cn.afterturn:easypoi-annotation:4.1.0'
+    compile 'org.gavaghan:geodesy:1.1.3'
 }
 
 artifacts {