فهرست منبع

凌云集团更改公司

peiguo 5 سال پیش
والد
کامیت
4b43f681f2

+ 1 - 0
whepi-doc/login.sql

@@ -260,6 +260,7 @@ CREATE TABLE sys_uptown_door  (
   out_img           varchar(100)  NOT NULL DEFAULT '' COMMENT '出口二维码',
   out_img           varchar(100)  NOT NULL DEFAULT '' COMMENT '出口二维码',
   longitude         varchar(20)  NOT NULL DEFAULT '' COMMENT '经度',
   longitude         varchar(20)  NOT NULL DEFAULT '' COMMENT '经度',
   latitude          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删除',
   status            int(11) NOT NULL DEFAULT 0 COMMENT '状态:1正常,0草稿,-1删除',
   time_create       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '新增时间',
   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 '修改时间',
   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
 @Repository
 public interface UptownDoorMapper extends BaseMapper<UptownDoor> {
 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")
             "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);
     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")
     @TableField("latitude")
     private String latitude;
     private String latitude;
 
 
+    @ApiModelProperty("距离(米)")
+    @TableField("distance")
+    private Integer distance;
+
     @ApiModelProperty("状态:1正常,0草稿,-1删除")
     @ApiModelProperty("状态:1正常,0草稿,-1删除")
     @TableField("status")
     @TableField("status")
     private Integer 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.setOutImg("");
         uptownDoor.setLongitude("");
         uptownDoor.setLongitude("");
         uptownDoor.setLatitude("");
         uptownDoor.setLatitude("");
+        uptownDoor.setDistance(0);
         uptownDoor.setStatus(1);
         uptownDoor.setStatus(1);
         OutScanConf outScanConf = outScanConfMapper.getOutScanConfByUptown(uptownDoor.getUptownId());
         OutScanConf outScanConf = outScanConfMapper.getOutScanConfByUptown(uptownDoor.getUptownId());
         if (outScanConf == null) {
         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.dao.OutScanMapper;
 import com.bofeng.entity.OutScan;
 import com.bofeng.entity.OutScan;
 import com.bofeng.entity.OutScanEstate;
 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.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -62,4 +65,18 @@ public class ScanService {
         o.setUserUpdate(userId);
         o.setUserUpdate(userId);
         outScanEstateMapper.insert(o);
         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("url", url);
                         model.put("moreUrl", moreUrl);
                         model.put("moreUrl", moreUrl);
                         return new ModelAndView("/user/location.ftl", model);
                         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()));
                     OutUser outUser1 = outUserMapper.getOutUserByPhone(4, uptownHomes.get(0).getLinkman(), Long.parseLong(uptownHomes.get(0).getPhone()));
                     if (outUser1 != null) {
                     if (outUser1 != null) {
@@ -727,6 +738,7 @@ public class ScanController {
         }
         }
     }
     }
 
 
+
 //    /**
 //    /**
 //     * 生成进出门二维码
 //     * 生成进出门二维码
 //     * @param doorId 小区大门ID
 //     * @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-base:4.1.0'
     compile 'cn.afterturn:easypoi-web:4.1.0'
     compile 'cn.afterturn:easypoi-web:4.1.0'
     compile 'cn.afterturn:easypoi-annotation:4.1.0'
     compile 'cn.afterturn:easypoi-annotation:4.1.0'
+    compile 'org.gavaghan:geodesy:1.1.3'
 }
 }
 
 
 artifacts {
 artifacts {