运营区查询、站点类型

This commit is contained in:
attiya 2025-05-06 16:51:59 +08:00
parent 84c4457fb0
commit 994558e65c
2 changed files with 35 additions and 8 deletions

View File

@ -404,6 +404,7 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
*/
BigDecimal timeSlotCostCalculation(List<EbikeOrderDetails> list, EbikeUserOrders userOrders, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto) {
BigDecimal decimal = new BigDecimal(0);
//TODO计算起步费用后时间后移
List<TimeSegment> timeSegments = TimeUtils.splitByDays(userOrders.getStartTime(), userOrders.getEndTime());
//TODO:时间划分不同自然时间段每一段才判断在高峰时间段内有多长时间收费多少非高峰期多长时间收费多少
for (TimeSegment timeSegment : timeSegments) {
@ -482,6 +483,7 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
LocalDateTime startTime = userOrders.getStartTime();
LocalDateTime endTime = userOrders.getEndTime();
Long orderId = userOrders.getOrderId();
//TODO计算起步费用后时间后移
//处理为自然时间段防止跨天
List<TimeSegment> timeSegments = TimeUtils.splitByDays(startTime, endTime);
for (int i = 0; i < timeSegments.size(); i++) {
@ -622,7 +624,10 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
* @return 计费后总金额
*/
BigDecimal defaultCostCalculation(List<EbikeOrderDetails> list, EbikeUserOrders userOrders, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto, long orderId) {
TimeSegment timeSegment = new TimeSegment(userOrders.getStartTime(), userOrders.getEndTime());
LocalDateTime startTime = userOrders.getStartTime();
LocalDateTime endTime = userOrders.getEndTime();
//TODO计算起步费用后时间后移
TimeSegment timeSegment = new TimeSegment(startTime, endTime);
return dailyFee(timeSegment, feignEbikeSysRcostsetDto, true, false, list, orderId);
}
}

View File

@ -1,13 +1,18 @@
package com.cdzy.orders;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.cdzy.common.enums.Code;
import com.cdzy.common.model.JsonResult;
import com.cdzy.orders.component.EbikeCoreHandler;
import com.cdzy.orders.enums.CmdCode;
import com.cdzy.orders.mapper.UserOrdersMapper;
import com.cdzy.orders.model.dto.res.RedisPoint;
import com.cdzy.orders.model.entity.UserOrders;
import com.cdzy.orders.model.dto.res.TimeSegment;
import com.cdzy.orders.model.entity.EbikeUserOrders;
import com.cdzy.orders.uitls.RedisUtil;
import com.ebike.feign.clients.OperateFeignClient;
import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetDto;
import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetWeekDto;
import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.zaxxer.hikari.HikariDataSource;
@ -18,7 +23,10 @@ import com.ebike.feign.model.rsp.FeignEbikeEcuInfo;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.geo.Point;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@ -37,12 +45,26 @@ class EbikeOrdersApplicationTests {
@Resource
MaintenanceFeignClient maintenanceFeignClient;
@Test
void contextLoads() {
double lng = 103.975457 ;
double lat = 30.633199 ;
List<RedisPoint> nearbyMembers = redisUtil.findNearbyMembers(lng, lat, 5.0);
nearbyMembers.forEach(System.out::println);
// LocalTime localTime1 = LocalTime.of(10,22,23);
// LocalTime localTime2 = LocalTime.of(10,22,23);
// boolean result = localTime1.isBefore(localTime2) || localTime1.equals(localTime2);
// System.out.println(result);
// EbikeUserOrders ebikeUserOrders = ordersMapper.selectOneById(267861509802156032L);
// List<TimeSegment> timeSegments = TimeUtils.splitByDays(ebikeUserOrders.getStartTime(), ebikeUserOrders.getEndTime());
// timeSegments.forEach(System.out::println);
// System.out.println(crossDay);
double lng = 103.97465469434792 ;
double lat = 30.63210622402551 ;
// List<RedisPoint> nearbyMembers = redisUtil.findNearbyMembers(lng, lat, 5.0);
// nearbyMembers.forEach(System.out::println);
// redisUtil.addLocation(new Point(lng,lat),"2370171016");
//
boolean pointInOperation = redisUtil.isPointInOperation(lng, lat, 258106438092689409L, 269652483491594240L);
// System.out.println(pointInOperation);
}
private static final String model_path ="D:/Projects/eBIKE/mybatis-flex/ebike-orders";
@ -129,7 +151,7 @@ class EbikeOrdersApplicationTests {
}
@Test
void time() {
UserOrders userOrders = ordersMapper.selectOneById(267861509802156032L);
EbikeUserOrders userOrders = ordersMapper.selectOneById(267861509802156032L);
long minutes = TimeUtils.betweenMinutes(userOrders.getStartTime(), userOrders.getEndTime());
System.out.println(minutes);
}