Explorar o código

:bug: 定位修改

Ritchie hai 1 ano
pai
achega
d7d55d56f3

+ 7 - 2
src/main/java/com/szwl/controller/IndexController.java

@@ -244,8 +244,11 @@ public class IndexController {
     @RequestMapping(value = "/initNew2.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
     @ResponseBody
     public String initNew2(String clientId, String managerId, String gtClientId, String equipmentType, String ip, String longitude, String latitude) throws IOException {
-        if (StringUtils.isEmpty(ip) || StringUtils.isEmpty(clientId)) {
-            return "ip、clientId不能为空";
+//        if (StringUtils.isEmpty(ip) || StringUtils.isEmpty(clientId)) {
+//            return "ip、clientId不能为空";
+//        }
+        if (StringUtils.isEmpty(clientId) || StringUtils.isEmpty(longitude) || StringUtils.isEmpty(latitude)) {
+            return "设备编号、经纬度不能为空";
         }
 
         // 根据 clientId 查设备的 location,country
@@ -273,6 +276,8 @@ public class IndexController {
                 throw new RuntimeException(e);
             }
             locationCheck.setIp(ip);
+            locationCheck.setLongitude(longitude);
+            locationCheck.setLatitude(latitude);
             locationCheck.setAddr(addr);
             locationCheckService.saveOrUpdate(locationCheck);
 

+ 16 - 19
src/main/java/com/szwl/controller/ScheduledService.java

@@ -1,9 +1,6 @@
 package com.szwl.controller;
 
-import cn.hutool.http.HttpUtil;
 import com.szwl.mapper.TLocationCheckMapper;
-import com.szwl.model.entity.TEquipment;
-import com.szwl.model.entity.THotUpdate;
 import com.szwl.model.entity.TLocationCheck;
 import com.szwl.service.TDepartmentService;
 import com.szwl.service.TEquipmentService;
@@ -11,8 +8,6 @@ import com.szwl.service.THotUpdateService;
 import com.szwl.service.TLocationCheckService;
 import com.szwl.service.es.EsTCoinOrderService;
 import com.szwl.service.es.EsTOrderService;
-import com.szwl.util.WhoIsUtil;
-import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
@@ -25,9 +20,7 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Calendar;
 import java.util.List;
-import java.util.stream.Collectors;
 
-import static com.szwl.util.geoCoderUtil.getLocByLonLatVer;
 
 
 @Configuration //1.主要用于标记配置类,兼备Component的效果。
@@ -54,28 +47,32 @@ public class ScheduledService {
     @Scheduled(cron = "0 10 8 ? * TUE")
     public void equipmentLocCheck() throws IOException {
         if (isDo()) {
-            List<TLocationCheck> locationChecks = locationCheckMapper.selectNotNullIp();
+//            List<TLocationCheck> locationChecks = locationCheckMapper.selectNotNullIp();
+            List<TLocationCheck> locationChecks = locationCheckMapper.selectNotNullAddr();
 //            String locErrorEq = null;
             StringBuilder locErrorEq = new StringBuilder();
             for (TLocationCheck locationChc : locationChecks) {
                 String clientId = locationChc.getClientId();
-                String ip = locationChc.getIp();
-                String longitude = locationChc.getLongitude();
-                String latitude = locationChc.getLatitude();
+                String addr = locationChc.getAddr();
 
-//                String addr = WhoIsUtil.getLocByIp(ip);
-                String addr = null;
-                try {
-                    addr = getLocByLonLatVer(longitude, latitude);
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
                 // 这里不需要更新ip,只需要校验有ip的设备位置对不对
 //                locationCheckService.locCheckMsg(locationChc, clientId, addr);
                 String check = locationCheckService.schLocCheck(locationChc, clientId, addr);
                 locErrorEq.append(check);
             }
-            locationCheckService.schSendMsg(locErrorEq.toString());
+            if (!locErrorEq.toString().isEmpty()) {
+                locationCheckService.schSendMsg(locErrorEq.toString());
+            }
+
+//            Optional.ofNullable(locErrorEq)
+//                    .filter(stringBuilder -> stringBuilder.length() > 0)
+//                    .ifPresent(stringBuilder -> {
+//                        try {
+//                            locationCheckService.schSendMsg(locErrorEq.toString());
+//                        } catch (IOException e) {
+//                            throw new RuntimeException(e);
+//                        }
+//                    });
         }
     }
 

+ 5 - 20
src/main/java/com/szwl/controller/TLocationCheckController.java

@@ -2,19 +2,11 @@ package com.szwl.controller;
 
 
 import cn.hutool.core.util.IdUtil;
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
-import com.szwl.model.entity.TAdmin;
 import com.szwl.model.entity.TLocationCheck;
-import com.szwl.model.utils.YunPianSms;
 import com.szwl.service.TAdminService;
 import com.szwl.service.TLocationCheckService;
 import com.szwl.util.WhoIsUtil;
@@ -22,7 +14,6 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
-import java.io.IOException;
 import java.util.*;
 
 /**
@@ -120,12 +111,6 @@ public class TLocationCheckController {
             return R.fail("设备唯一码不能为空");
         }
 
-//        if (country.equals("中国")) {
-//            if (StringUtils.isEmpty(location)) {
-//                return R.fail("国内省市不能为空");
-//            }
-//        }
-
         LambdaQueryWrapper<TLocationCheck> wrapper = Wrappers.lambdaQuery();
         wrapper.eq(TLocationCheck::getClientId, clientId);
         List<TLocationCheck> checks = locationCheckService.list(wrapper);
@@ -156,12 +141,12 @@ public class TLocationCheckController {
             return R.fail("参数不能为空");
         }
 
+        String name = locationCheck.getName();
         String phone = locationCheck.getPhone();
         String username = locationCheck.getUsername();
         String clientId = locationCheck.getClientId();
-        String name = locationCheck.getName();
-        String location = locationCheck.getLocation();
-        String country = locationCheck.getCountry();
+        String country = locationCheck.getCountry(); // 国家
+        String location = locationCheck.getLocation(); // 地区
 
         if (Objects.isNull(clientId)) {
             return R.fail("设备唯一码不能为空");
@@ -183,12 +168,12 @@ public class TLocationCheckController {
         String uuid = IdUtil.simpleUUID();
         tLocationCheck.setId(uuid);
         tLocationCheck.setCreateTime(new Date());
+        tLocationCheck.setName(name);
         tLocationCheck.setPhone(phone);
         tLocationCheck.setUsername(username);
         tLocationCheck.setClientId(clientId);
-        tLocationCheck.setName(name);
-        tLocationCheck.setLocation(location);
         tLocationCheck.setCountry(country);
+        tLocationCheck.setLocation(location);
 
         locationCheckService.save(tLocationCheck);
 

+ 0 - 31
src/main/java/com/szwl/controller/TestController.java

@@ -1,19 +1,10 @@
 package com.szwl.controller;
 
-import com.szwl.mapper.TLocationCheckMapper;
-import com.szwl.model.entity.TLocationCheck;
-import com.szwl.service.TLocationCheckService;
-import com.szwl.util.WhoIsUtil;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.annotation.Resource;
-import java.io.IOException;
-import java.util.List;
 
 @Slf4j
 @Api(value = "/tTest", tags = {"测试"})
@@ -21,26 +12,4 @@ import java.util.List;
 @RequestMapping("/tTest")
 public class TestController {
 
-    @Resource
-    TLocationCheckMapper locationCheckMapper;
-    @Resource
-    TLocationCheckService locationCheckService;
-    @ApiOperation(value = "测试定时任务")
-    @PostMapping("/testSch")
-    public void test() throws IOException {
-        List<TLocationCheck> locationChecks = locationCheckMapper.selectNotNullIp();
-//            String locErrorEq = null;
-        StringBuilder locErrorEq = new StringBuilder();
-        for (TLocationCheck locationChc : locationChecks) {
-            String clientId = locationChc.getClientId();
-            String ip = locationChc.getIp();
-            String addr = WhoIsUtil.getLocByIp(ip);
-            // 这里不需要更新ip,只需要校验有ip的设备位置对不对
-//                locationCheckService.locCheckMsg(locationChc, clientId, addr);
-            String check = locationCheckService.schLocCheck(locationChc, clientId, addr);
-            locErrorEq.append(check);
-        }
-        locationCheckService.schSendMsg(locErrorEq.toString());
-    }
-
 }

+ 2 - 1
src/main/java/com/szwl/mapper/TLocationCheckMapper.java

@@ -15,5 +15,6 @@ import java.util.List;
  */
 public interface TLocationCheckMapper extends BaseMapper<TLocationCheck> {
 
-    List<TLocationCheck> selectNotNullIp();
+//    List<TLocationCheck> selectNotNullIp();
+    List<TLocationCheck> selectNotNullAddr();
 }

+ 2 - 2
src/main/java/com/szwl/mapper/xml/TLocationCheckMapper.xml

@@ -39,9 +39,9 @@
         id, create_time, modify_time, admin_id, phone, client_id, location, longitude, latitude, country, country_code, username, ip, pro, pro_code, city, city_code, region, region_code, addr, region_names, err, name, mod_admin_id, mod_phone, mod_username, mod_name, message
     </sql>
 
-    <select id="selectNotNullIp" resultMap="BaseResultMap">
+    <select id="selectNotNullAddr" resultMap="BaseResultMap">
         select id, create_time, modify_time, admin_id, phone, client_id, location, longitude, latitude, country, country_code, username, ip, pro, pro_code, city, city_code, region, region_code, addr, region_names, err, name, mod_admin_id, mod_phone, mod_username, mod_name, message
         from t_location_check
-        where ip is not null
+        where addr is not null
     </select>
 </mapper>

+ 12 - 45
src/main/java/com/szwl/service/impl/TLocationCheckServiceImpl.java

@@ -1,12 +1,5 @@
 package com.szwl.service.impl;
 
-import cn.hutool.http.HttpUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.szwl.model.bo.R;
 import com.szwl.model.entity.TLocationCheck;
 import com.szwl.mapper.TLocationCheckMapper;
 import com.szwl.model.utils.YunPianSms;
@@ -15,13 +8,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.Objects;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author wuhs
@@ -30,11 +21,6 @@ import java.util.Objects;
 @Service
 public class TLocationCheckServiceImpl extends ServiceImpl<TLocationCheckMapper, TLocationCheck> implements TLocationCheckService {
 
-//    TLocationCheckService locationCheckService;
-//
-//    public TLocationCheckServiceImpl(TLocationCheckService locationCheckService) {
-//        this.locationCheckService = locationCheckService;
-//    }
 
     private static final String appid = "07784f5fedb508046c841b391005b7de";
 
@@ -69,30 +55,19 @@ public class TLocationCheckServiceImpl extends ServiceImpl<TLocationCheckMapper,
         if (StringUtils.isEmpty(country)) {
             return "国家不能为空";
         }
-//        ObjectMapper objectMapper = new ObjectMapper();
-//        JsonNode jsonNode = objectMapper.readTree(s);
-//        String addr = jsonNode.get("addr").asText();
 
         // 如果 pro,city,addr 中都不包含 country 或者 location,就是异常,发短信通知
         boolean containsUserInput = true;
         // location 为空 / 不为空
         // country 是中国 / 不是中国
         if (StringUtils.isEmpty(location)) {
-            if (country.equals("中国")) {
-                return "国内必须精确到省市";
-            } else {
-                containsUserInput = addr.contains(country);
-            }
+            containsUserInput = addr.contains(country);
         } else {
-            if (country.equals("中国")) {
-                containsUserInput = addr.contains(location);
-            } else {
-                containsUserInput = addr.contains(country) || addr.contains(location) || location.contains(addr);
-            }
+            containsUserInput = addr.contains(country) || addr.contains(location) || location.contains(addr);
         }
 
         String phone = "18620242721";
-        String phone1 = "13631231970"; // 基哥
+//        String phone1 = "13631231970"; // 基哥
         String phone2 = "15018460394"; // 龙
 
         String messages = "【申泽部门】设备编号:" + clientId + ",所在ip与设定位置不符,请及时查看。";
@@ -114,20 +89,12 @@ public class TLocationCheckServiceImpl extends ServiceImpl<TLocationCheckMapper,
         }
 
         boolean containsUserInput = true;
-        // location 为空 / 不为空
-        // country 是中国 / 不是中国
+        // location 地区为空 / 不为空
+        // country 国家是中国 / 不是中国
         if (StringUtils.isEmpty(location)) {
-            if (country.equals("中国")) {
-                return "国内必须精确到省";
-            } else {
-                containsUserInput = addr.contains(country);
-            }
+            containsUserInput = addr.contains(country);
         } else {
-            if (country.equals("中国")) {
-                containsUserInput = addr.contains(location);
-            } else {
-                containsUserInput = addr.contains(country) || addr.contains(location) || location.contains(addr);
-            }
+            containsUserInput = addr.contains(country) || addr.contains(location) || location.contains(addr);
         }
 
         if (!containsUserInput) { // 不包含,返回设备编号
@@ -140,12 +107,12 @@ public class TLocationCheckServiceImpl extends ServiceImpl<TLocationCheckMapper,
     @Override
     public void schSendMsg(String locErrorEq) throws IOException {
         String phone = "18620242721";
-        String phone1 = "13631231970"; // 基哥
-        String phone2 = "15018460394"; // 龙
+//        String phone1 = "13631231970"; // 基哥
+//        String phone2 = "15018460394"; // 龙
         String messages = "【申泽部门】设备编号:" + locErrorEq + ",所在ip与设定位置不符,请及时查看。";
         YunPianSms.sendSms(appid, messages, phone);
-        YunPianSms.sendSms(appid, messages, phone1);
-        YunPianSms.sendSms(appid, messages, phone2);
+//        YunPianSms.sendSms(appid, messages, phone1);
+//        YunPianSms.sendSms(appid, messages, phone2);
     }