package com.cdzy.ebikeoperate; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.cdzy.common.model.EbikeTracking; import com.cdzy.ebikeoperate.enums.EbikeRegionType; import com.cdzy.ebikeoperate.mapper.EbikeSiteTypeMapper; import com.cdzy.ebikeoperate.mapper.EbikeStaffRegionMapper; import com.cdzy.ebikeoperate.model.pojo.EbikeAdministrationZone; import com.cdzy.ebikeoperate.model.pojo.EbikeSiteType; import com.cdzy.ebikeoperate.model.pojo.EbikeStaffRegion; import com.cdzy.ebikeoperate.service.EbikeAdministrationZoneService; import com.cdzy.ebikeoperate.service.EbikeTrackingService; import com.cdzy.ebikeoperate.utils.RedisUtil; import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; @SpringBootTest class EbikeOperateApplicationTests { @Resource private EbikeAdministrationZoneService ebikeAdministrationZoneService; @Resource private RedisUtil redisUtil; @Resource private EbikeTrackingService ebikeTrackingService; @Resource private EbikeStaffRegionMapper staffRegionMapper; @Resource private EbikeSiteTypeMapper siteTypeMapper; @Test void contextLoads() { EbikeSiteType siteType = new EbikeSiteType(); siteType.setSiteTypeValue(6); siteType.setSiteTypeName("仓管区"); siteTypeMapper.insert(siteType); // EbikeRegion ebikeRegion = regionMapper.selectOneWithRelationsById(267781609627852800L); // EbikeRegionoperation ebikeRegionoperation = new EbikeRegionoperation(); // ebikeRegionoperation.setValue(0); // ebikeRegionoperation.setName("停止"); // ebikeRegionoperationMapper.insert(ebikeRegionoperation); // List coordinates = new ArrayList<>(); // coordinates.add(new Coordinate(104.05910877816825, 30.57179615956648)); // coordinates.add(new Coordinate(104.05786705975333, 30.567029588620894)); // 原第三点提前 // coordinates.add(new Coordinate(104.06899079661343, 30.565024886202252)); // 原第二点后移 // coordinates.add(new Coordinate(104.07111206657589, 30.57157342833641)); // coordinates.add(new Coordinate(104.05910877816825, 30.57179615956648)); // // Point point = redisUtil.calculateCentroid(coordinates); // System.out.println(point); // redisUtil.addParkingArea(ebikeRegion.getOrgId(),ebikeRegion.getRegionId(),coordinates); // double lng = 104.06039749583406 ; // double lat = 30.570284824458937 ; // boolean pointInParking = redisUtil.isPointInOperation(lng, lat,258106438092689408L,264959259224088576L); // System.out.println("在运营区内:"+pointInParking); } @Test void testSaveOrUpdate(){ EbikeStaffRegion staffRegion = new EbikeStaffRegion(); staffRegion.setRegionId(264950721565753344L); staffRegion.setStaffId(258108517645389824L); staffRegionMapper.insertOrUpdateSelective(staffRegion); } @Test void load_tracking(){ EbikeTracking ebikeTracking = new EbikeTracking(); ebikeTracking.setDeviceId("2370171016"); ebikeTracking.setLatitude(30.630787); ebikeTracking.setLongitude(103.976717); boolean r = ebikeTrackingService.save(ebikeTracking); System.out.println(r?"插入成功":"插入失败"); } @Test void load_admin_zone(){ String classPath = System.getProperty("user.dir"); // 从文件加载行政区划数据json try(FileInputStream fis = new FileInputStream( classPath + File.separator + "china_area.json")){ JSONObject jsonObject = JSON.parseObject(fis, JSONObject.class); if (jsonObject != null&& jsonObject.get("result")!=null&& (jsonObject.get("result") instanceof JSONArray)) { JSONArray jsonArray = jsonObject.getJSONArray("result"); for (int i = 0; i < jsonArray.size(); i++) { List batchData = new ArrayList<>(); JSONArray data = jsonArray.getJSONArray(i); for (int j = 0; j < data.size(); j++) { JSONObject object = data.getJSONObject(j); EbikeAdministrationZone adminZone = new EbikeAdministrationZone(); String id = object.getString("id"); String id_ = id.substring ((i+1)*2); if (!id_.isEmpty() && id_.replaceAll("0+$","").isEmpty()){ id = id.substring(0, (i+1)*2); } adminZone.setId(id); adminZone.setName(object.getString("name")==null?object.getString("fullname"):object.getString("name")); adminZone.setFullname(object.getString("fullname")); //String[] pinyinArray = object.getJSONArray("pinyin").toArray(String.class); //adminZone.setPinyin(String.join(",", pinyinArray)); adminZone.setLng(object.getJSONObject("location").getDouble("lng")); adminZone.setLat(object.getJSONObject("location").getDouble("lat")); batchData.add(adminZone); } boolean b = ebikeAdministrationZoneService.saveBatch(batchData); if (b) { System.out.println("第" + (i + 1) + "页数据插入成功"); } } } }catch (Exception e){ e.printStackTrace(); } } }