ebike-share/ebike-operate/src/test/java/com/cdzy/ebikeoperate/EbikeOperateApplicationTests.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();
}
}
}