用户关锁错误优化

This commit is contained in:
yanglei 2025-12-18 16:02:13 +08:00
parent 8ef2311b94
commit 09d940b1e4
4 changed files with 5 additions and 132 deletions

View File

@ -162,26 +162,4 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
Long refundInFen = refund.getAmount().getRefund(); Long refundInFen = refund.getAmount().getRefund();
return calculateRefundAmountInternal(refundInFen, refund.getOutRefundNo()); return calculateRefundAmountInternal(refundInFen, refund.getOutRefundNo());
} }
/**
* 查询订单号
*
* @param refundOrderId 根据退款回调退款订单号查询订单号
*/
private Long queryOrderId(String refundOrderId) {
if (refundOrderId == null) {
log.warn("退款订单ID为空无法查询主订单ID");
return null;
}
//查询退款中且状态为2的订单
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_REFUND.REFUND_ORDER_ID.eq(refundOrderId));
EbikeRefund ebikeRefund = this.mapper.selectOneByQuery(queryWrapper);
if (ebikeRefund == null) {
log.warn("未找到退款订单号为的退款记录退款单ID: {}", refundOrderId);
return null;
}
return ebikeRefund.getOrderId();
}
} }

View File

@ -1,19 +0,0 @@
package com.cdzy.user.model.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 开锁结果
*
* @author yanglei
* @since 2025-11-11 11:34
*/
@Data
@AllArgsConstructor
public class EbikeUnlockResultDto {
private boolean success;
private String errorMsg;
}

View File

@ -1,51 +0,0 @@
package com.cdzy.user.model.dto;
import com.cdzy.common.model.request.PageParam;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* 用户信息实名制 查询参数
*
* @author yanglei
* @since 2025-10-16 09:54
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EbikeUserRealInfoDto {
/**
* 用户注册时间
*/
private LocalDateTime registerTimeStart;
/**
* 用户注册时间
*/
private LocalDateTime registerTimeEnd;
/**
* 手机号
*/
private String mobile;
/**
* 真实姓名
*/
private String realName;
/**
* 实名状态
*/
private Integer realNameStatus;
/**
* 分页参数
*/
private PageParam pageParam;
}

View File

@ -7,7 +7,6 @@ import com.cdzy.common.model.request.PageParam;
import com.cdzy.common.model.response.JsonResult; import com.cdzy.common.model.response.JsonResult;
import com.cdzy.user.enums.*; import com.cdzy.user.enums.*;
import com.cdzy.user.mapper.EbikeOrderMapper; import com.cdzy.user.mapper.EbikeOrderMapper;
import com.cdzy.user.model.dto.EbikeUnlockResultDto;
import com.cdzy.user.model.dto.EbikeUserCyclingDto; import com.cdzy.user.model.dto.EbikeUserCyclingDto;
import com.cdzy.user.model.dto.EbikeUserCyclingEndDto; import com.cdzy.user.model.dto.EbikeUserCyclingEndDto;
import com.cdzy.user.model.entity.EbikeOrder; import com.cdzy.user.model.entity.EbikeOrder;
@ -30,7 +29,6 @@ import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import feign.FeignException;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -98,9 +96,9 @@ public class EbikeOrderServiceImpl extends ServiceImpl<EbikeOrderMapper, EbikeOr
.build(); .build();
save(order); save(order);
// 尝试开锁 // 尝试开锁
EbikeUnlockResultDto unlockResult = attemptUnlockWithValidation(bikeCode, userId); JsonResult<?> jsonResult = operationsFeignClient.openLock(bikeCode);
if (!unlockResult.isSuccess()) { if (jsonResult.getCode() != Code.SUCCESS) {
throw new EbikeException("开锁失败: " + unlockResult.getErrorMsg()); throw new EbikeException("开锁失败:" + jsonResult.getMessage());
} }
// 开锁成功 // 开锁成功
EbikeOrder orders = EbikeOrder.builder() EbikeOrder orders = EbikeOrder.builder()
@ -194,7 +192,7 @@ public class EbikeOrderServiceImpl extends ServiceImpl<EbikeOrderMapper, EbikeOr
public EbikeBikeInfoVo queryBikeInfo(String bikeCode) { public EbikeBikeInfoVo queryBikeInfo(String bikeCode) {
JsonResult<FeignEbikeUserBikeInfo> jsonResult = operationsFeignClient.bikeInfo(bikeCode); JsonResult<FeignEbikeUserBikeInfo> jsonResult = operationsFeignClient.bikeInfo(bikeCode);
if (jsonResult.getCode() != Code.SUCCESS) { if (jsonResult.getCode() != Code.SUCCESS) {
throw new EbikeException("获取车辆详情"); throw new EbikeException("获取车辆详情失败");
} }
FeignEbikeUserBikeInfo source = jsonResult.getData(); FeignEbikeUserBikeInfo source = jsonResult.getData();
return EbikeBikeInfoVo.builder() return EbikeBikeInfoVo.builder()
@ -240,7 +238,7 @@ public class EbikeOrderServiceImpl extends ServiceImpl<EbikeOrderMapper, EbikeOr
ebikeLockVo.setPoint(endDto.getEndPoint()); ebikeLockVo.setPoint(endDto.getEndPoint());
JsonResult<FeignEbikeUserLockDto> jsonResult = operationsFeignClient.lock(ebikeLockVo); JsonResult<FeignEbikeUserLockDto> jsonResult = operationsFeignClient.lock(ebikeLockVo);
if (jsonResult.getCode() != Code.SUCCESS) { if (jsonResult.getCode() != Code.SUCCESS) {
throw new EbikeException("关锁失败"); throw new EbikeException("关锁失败:" + jsonResult.getMessage());
} }
FeignEbikeUserLockDto data = jsonResult.getData(); FeignEbikeUserLockDto data = jsonResult.getData();
// 订单费用计算 // 订单费用计算
@ -474,37 +472,4 @@ public class EbikeOrderServiceImpl extends ServiceImpl<EbikeOrderMapper, EbikeOr
} }
return userOrders; return userOrders;
} }
/**
* 开锁
*/
private EbikeUnlockResultDto attemptUnlockWithValidation(String bikeCode, Long userId) {
try {
JsonResult<?> jsonResult = operationsFeignClient.openLock(bikeCode);
if (jsonResult == null) {
String errorMsg = "开锁服务返回结果为空";
log.error("开锁失败 - 响应为空, bikeCode={}, userId={}", bikeCode, userId);
return new EbikeUnlockResultDto(false, errorMsg);
}
Integer code = jsonResult.getCode();
String msg = jsonResult.getMessage() != null ? jsonResult.getMessage() : "未知错误";
if (code != null && code == 200) {
log.info("开锁成功,用户: {}, 车辆: {}", userId, bikeCode);
return new EbikeUnlockResultDto(true, null);
} else {
log.warn("开锁失败,用户: {}, 车辆: {}, 错误码: {}, 原因: {}",
userId, bikeCode, code, msg);
return new EbikeUnlockResultDto(false, msg);
}
} catch (FeignException e) {
String errorMsg = "开锁服务调用失败";
log.error("Feign 开锁失败, bikeCode={}, userId={}, status={}, response={}",
bikeCode, userId, e.status(), e.contentUTF8(), e);
return new EbikeUnlockResultDto(false, errorMsg);
} catch (Exception e) {
String errorMsg = "系统繁忙,请稍后重试";
log.error("开锁过程发生未知异常, bikeCode={}, userId={}", bikeCode, userId, e);
return new EbikeUnlockResultDto(false, errorMsg);
}
}
} }