diff --git a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeSpecialBillingConfigurationServiceImpl.java b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeSpecialBillingConfigurationServiceImpl.java index 9206838..5f61ee2 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeSpecialBillingConfigurationServiceImpl.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeSpecialBillingConfigurationServiceImpl.java @@ -23,8 +23,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; -import static com.cdzy.operations.model.entity.table.EbiekSpecialDayTableDef.EBIEK_SPECIAL_DAY; -import static com.cdzy.operations.model.entity.table.EbiekSpecialTimeTableDef.EBIEK_SPECIAL_TIME; +import static com.cdzy.operations.model.entity.table.EbikeSpecialDayTableDef.EBIKE_SPECIAL_DAY; +import static com.cdzy.operations.model.entity.table.EbikeSpecialTimeTableDef.EBIKE_SPECIAL_TIME; import static com.cdzy.operations.model.entity.table.EbikeSpecialBillingConfigurationTableDef.EBIKE_SPECIAL_BILLING_CONFIGURATION; /** @@ -65,7 +65,7 @@ public class EbikeSpecialBillingConfigurationServiceImpl extends ServiceImpl list = new ArrayList<>(); for (EbiekSpecialTimeVo timeConfig : timeConfigs) { @@ -89,7 +89,7 @@ public class EbikeSpecialBillingConfigurationServiceImpl extends ServiceImpl list = new ArrayList<>(); for (EbiekSpecialDayVo dayConfig : dayConfigs) { @@ -117,11 +117,11 @@ public class EbikeSpecialBillingConfigurationServiceImpl extends ServiceImpl days = dayMapper.selectListByQuery(queryWrapper); queryWrapper.clear(); - queryWrapper.where(EBIEK_SPECIAL_TIME.REGION_ID.eq(regionId)); + queryWrapper.where(EBIKE_SPECIAL_TIME.REGION_ID.eq(regionId)); List times = timeMapper.selectListByQuery(queryWrapper); specialBillingConfiguration.setDayConfigs(days); specialBillingConfiguration.setTimeConfigs(times); diff --git a/ebike-user/pom.xml b/ebike-user/pom.xml index 4cdec4d..dd18967 100644 --- a/ebike-user/pom.xml +++ b/ebike-user/pom.xml @@ -148,6 +148,11 @@ spring-cloud-starter-openfeign + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + org.springframework.kafka spring-kafka diff --git a/ebike-user/src/main/java/com/cdzy/user/config/RedisConfig.java b/ebike-user/src/main/java/com/cdzy/user/config/RedisConfig.java new file mode 100644 index 0000000..2e76ca7 --- /dev/null +++ b/ebike-user/src/main/java/com/cdzy/user/config/RedisConfig.java @@ -0,0 +1,39 @@ +package com.cdzy.user.config; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + + +/** + * @author attiya + * @since 2025-03-20 + */ +@Configuration +public class RedisConfig { + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(factory); + + // 使用Jackson2JsonRedisSerializer序列化值 + Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); + ObjectMapper mapper = new ObjectMapper(); + mapper.activateDefaultTyping(mapper.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL); + serializer.setObjectMapper(mapper); + + // 设置键和值的序列化器 + template.setKeySerializer(new StringRedisSerializer()); + template.setValueSerializer(serializer); + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(serializer); + + template.afterPropertiesSet(); + return template; + } +} diff --git a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderTransactionController.java b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderTransactionController.java index ab6f208..6b4152e 100644 --- a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderTransactionController.java +++ b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderTransactionController.java @@ -1,13 +1,15 @@ package com.cdzy.user.controller; import com.cdzy.common.model.response.JsonResult; -import com.cdzy.user.model.dto.EbikeUserCyclingDto; import com.cdzy.user.model.entity.EbikeOrderTransaction; import com.cdzy.user.service.EbikeOrderTransactionService; import jakarta.annotation.Resource; import jakarta.validation.constraints.NotBlank; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; /** * 用户订单 控制层 @@ -29,11 +31,11 @@ public class EbikeOrderTransactionController { * @param orderDto 骑行信息 * @ {@code 200} 添加成功,{@code 500} 添加失败 */ - @PostMapping("saveRide") - public JsonResult saveRide(@RequestBody @Validated EbikeUserCyclingDto orderDto) { - Long orderId = ebikeOrderTransactionService.saveRide(orderDto); - return JsonResult.success(orderId); - } +// @PostMapping("saveRide") +// public JsonResult saveRide(@RequestBody @Validated EbikeUserCyclingDto orderDto) { +// Long orderId = ebikeOrderTransactionService.saveRide(orderDto); +// return JsonResult.success(orderId); +// } /** * 查看用户是否有未完成订单。 diff --git a/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderTransactionService.java b/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderTransactionService.java index e91ed29..758d965 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderTransactionService.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderTransactionService.java @@ -1,6 +1,5 @@ package com.cdzy.user.service; -import com.cdzy.user.model.dto.EbikeUserCyclingDto; import com.cdzy.user.model.entity.EbikeOrderTransaction; import com.mybatisflex.core.service.IService; @@ -19,7 +18,7 @@ public interface EbikeOrderTransactionService extends IService implements EbikeOrderTransactionService { -// -// @Resource -// private RedisUtil redisUtil; -// +package com.cdzy.user.service.impl; + +import com.cdzy.common.enums.BikeUsageStatus; +import com.cdzy.user.enums.OrderStatus; +import com.cdzy.user.mapper.EbikeOrderTransactionMapper; +import com.cdzy.user.model.dto.EbikeUserCyclingDto; +import com.cdzy.user.model.entity.EbikeOrderTransaction; +import com.cdzy.user.service.EbikeOrderTransactionService; +import com.cdzy.user.utils.RedisUtil; +import com.ebike.feign.clients.OperationsFeignClient; +import com.ebike.feign.model.vo.FeignEbikeBikeInfoVo; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import static com.cdzy.user.model.entity.table.EbikeOrderTransactionTableDef.EBIKE_ORDER_TRANSACTION; + + +/** + * 用户订单 服务层实现 + * + * @author: yanglei + * @since: 2025-10-15 17:07 + */ + +@Service +public class EbikeOrderTransactionServiceImpl extends ServiceImpl implements EbikeOrderTransactionService { + + @Resource + private RedisUtil redisUtil; + // @Resource // private EbikeCoreHandler ebikeCoreHandler; -// -// @Resource -// private EbikeOrderTransactionMapper ebikeOrderTransactionMapper; -// -// @Resource -// private OperationsFeignClient operationsFeignClient; + + @Resource + private EbikeOrderTransactionMapper ebikeOrderTransactionMapper; + + @Resource + private OperationsFeignClient operationsFeignClient; // // @Override // public Long saveRide(EbikeUserCyclingDto orderDto) { @@ -116,40 +101,40 @@ // //处理车辆 // return userOrders.getOrderId(); // } -// -// @Override -// public EbikeOrderTransaction checkHistoryOrder(Long userId) { -// QueryWrapper queryWrapper = QueryWrapper.create() -// .where(EBIKE_ORDER_TRANSACTION.USER_ID.eq(userId)) -// .where(EBIKE_ORDER_TRANSACTION.ORDER_STATUS.eq(OrderStatus.IN_PROGRESS).or(EBIKE_ORDER_TRANSACTION.ORDER_STATUS.eq(OrderStatus.PENDING_PAYMENT))); -// return ebikeOrderTransactionMapper.selectOneByQuery(queryWrapper); -// } -// -// /** -// * 校验车辆是否可用 -// * -// * @param bikeInfoVo 车辆信息 -// */ -// private void validateBikeUsable(FeignEbikeBikeInfoVo bikeInfoVo) { -// if (bikeInfoVo == null) { -// throw new IllegalArgumentException("车辆信息不能为空"); -// } -// Integer usageStatus = bikeInfoVo.getUsageStatus(); -// if (usageStatus == null || usageStatus != BikeUsageStatus.WAIT) { -// throw new IllegalArgumentException("车辆当前状态不可用,状态码:" + usageStatus); -// } -// } -// -// -// private EbikeOrderTransaction getOrder(EbikeUserCyclingDto orderDto) { -// QueryWrapper queryWrapper = QueryWrapper.create() -// .where(EBIKE_ORDER_TRANSACTION.BIKE_CODE.eq(orderDto.getBikeCode())) -// .where(EBIKE_ORDER_TRANSACTION.USER_ID.eq(orderDto.getUserId())) -// .where(EBIKE_ORDER_TRANSACTION.ORDER_STATUS.eq(OrderStatus.IN_PROGRESS)); -// EbikeOrderTransaction userOrders = ebikeOrderTransactionMapper.selectOneByQuery(queryWrapper); -// if (userOrders == null) { -// throw new RuntimeException("该订单不存在"); -// } -// return userOrders; -// } -//} + + @Override + public EbikeOrderTransaction checkHistoryOrder(Long userId) { + QueryWrapper queryWrapper = QueryWrapper.create() + .where(EBIKE_ORDER_TRANSACTION.USER_ID.eq(userId)) + .where(EBIKE_ORDER_TRANSACTION.ORDER_STATUS.eq(OrderStatus.IN_PROGRESS).or(EBIKE_ORDER_TRANSACTION.ORDER_STATUS.eq(OrderStatus.PENDING_PAYMENT))); + return ebikeOrderTransactionMapper.selectOneByQuery(queryWrapper); + } + + /** + * 校验车辆是否可用 + * + * @param bikeInfoVo 车辆信息 + */ + private void validateBikeUsable(FeignEbikeBikeInfoVo bikeInfoVo) { + if (bikeInfoVo == null) { + throw new IllegalArgumentException("车辆信息不能为空"); + } + Integer usageStatus = bikeInfoVo.getUsageStatus(); + if (usageStatus == null || usageStatus != BikeUsageStatus.WAIT) { + throw new IllegalArgumentException("车辆当前状态不可用,状态码:" + usageStatus); + } + } + + + private EbikeOrderTransaction getOrder(EbikeUserCyclingDto orderDto) { + QueryWrapper queryWrapper = QueryWrapper.create() + .where(EBIKE_ORDER_TRANSACTION.BIKE_CODE.eq(orderDto.getBikeCode())) + .where(EBIKE_ORDER_TRANSACTION.USER_ID.eq(orderDto.getUserId())) + .where(EBIKE_ORDER_TRANSACTION.ORDER_STATUS.eq(OrderStatus.IN_PROGRESS)); + EbikeOrderTransaction userOrders = ebikeOrderTransactionMapper.selectOneByQuery(queryWrapper); + if (userOrders == null) { + throw new RuntimeException("该订单不存在"); + } + return userOrders; + } +} diff --git a/ebike-user/src/main/resources/application-dev.yml b/ebike-user/src/main/resources/application-dev.yml index c6072c3..56ec3b9 100644 --- a/ebike-user/src/main/resources/application-dev.yml +++ b/ebike-user/src/main/resources/application-dev.yml @@ -42,11 +42,11 @@ spring: # Redis数据库索引(默认为0) database: 1 # Redis服务器地址 - host: 192.168.2.226 + host: 47.109.71.130 # Redis服务器连接端口 port: 6379 # Redis服务器连接密码(默认为空) - # password: + password: 970529 # 连接超时时间 lettuce: pool: