131 lines
5.7 KiB
Java
131 lines
5.7 KiB
Java
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<Coordinate> 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<EbikeAdministrationZone> 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();
|
|
}
|
|
|
|
}
|
|
}
|