运营区查询、站点类型

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

View File

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