diff --git a/ebike-payment/src/main/java/com/cdzy/payment/component/EbikeTenantFactory.java b/ebike-payment/src/main/java/com/cdzy/payment/component/EbikeTenantFactory.java deleted file mode 100644 index 65b669c..0000000 --- a/ebike-payment/src/main/java/com/cdzy/payment/component/EbikeTenantFactory.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.cdzy.payment.component; - -import cn.dev33.satoken.stp.StpUtil; -import com.cdzy.common.model.response.CommonEbikeRole; -import com.cdzy.common.model.response.CommonStaffInfo; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import com.mybatisflex.core.tenant.TenantFactory; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; - -import java.util.List; -import java.util.TimeZone; - -/** - * @author: yanglei - * @since: 2025-10-15 09:41 - */ - -public class EbikeTenantFactory implements TenantFactory { - - public Object[] getTenantIds() { - if (StpUtil.isLogin()) { - RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); - Object attribute = attributes.getAttribute("tenantId", RequestAttributes.SCOPE_REQUEST); - if (attribute != null) { - String id = (String) StpUtil.getLoginId(); - Object object = StpUtil.getSessionByLoginId(id).get(id); - ObjectMapper objectMapper = new ObjectMapper() - .registerModule(new JavaTimeModule()) - .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) - .setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); - CommonStaffInfo staffInfo = objectMapper.convertValue(object, CommonStaffInfo.class); - List roles = staffInfo.getRoles(); - boolean isSysAdmin = false; - for (CommonEbikeRole role : roles) { - if (role.getSysAdmin()) { - isSysAdmin = true; - break; - } - } - long tenantId = Long.parseLong(attribute.toString()); - //系统管理员 - if (isSysAdmin) { - return null; - } else { - return new Object[]{tenantId}; - } - } - - } - return null; - } -} \ No newline at end of file diff --git a/ebike-payment/src/main/java/com/cdzy/payment/config/MyBatisFlexConfiguration.java b/ebike-payment/src/main/java/com/cdzy/payment/config/MyBatisFlexConfiguration.java index 7f8a45d..793e27e 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/config/MyBatisFlexConfiguration.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/config/MyBatisFlexConfiguration.java @@ -1,17 +1,13 @@ package com.cdzy.payment.config; import com.cdzy.common.enums.EbikeContents; -import com.cdzy.payment.component.EbikeTenantFactory; import com.mybatisflex.annotation.KeyType; import com.mybatisflex.core.FlexGlobalConfig; import com.mybatisflex.core.audit.AuditManager; import com.mybatisflex.core.dialect.DbType; import com.mybatisflex.core.keygen.KeyGenerators; -import com.mybatisflex.core.tenant.TenantFactory; -import com.mybatisflex.core.tenant.TenantManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** @@ -54,15 +50,4 @@ public class MyBatisFlexConfiguration { //设置数据已被删除时的值 globalConfig.setDeletedValueOfLogicDelete(Boolean.TRUE); } - - /** - * 详细的租户工厂配置 - */ - @Bean - public static TenantFactory tenantFactory() { - logger.info("开始初始化租户工厂..."); - EbikeTenantFactory factory = new EbikeTenantFactory(); - TenantManager.setTenantFactory(factory); - return new EbikeTenantFactory(); - } } \ No newline at end of file diff --git a/ebike-user/src/main/java/com/cdzy/user/controller/EbikePaymentController.java b/ebike-user/src/main/java/com/cdzy/user/controller/EbikePaymentController.java new file mode 100644 index 0000000..ffa57c1 --- /dev/null +++ b/ebike-user/src/main/java/com/cdzy/user/controller/EbikePaymentController.java @@ -0,0 +1,37 @@ +package com.cdzy.user.controller; + +import com.cdzy.common.model.response.JsonResult; +import com.cdzy.user.model.entity.EbikePayment; +import com.cdzy.user.service.EbikePaymentService; +import jakarta.annotation.Resource; +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; + +/** + * 用户支付 控制层 + * + * @author yanglei + * @since 2025-11-13 13:49 + */ + +@RestController +@RequestMapping("/ebikePayment") +public class EbikePaymentController { + + @Resource + private EbikePaymentService ebikePaymentService; + + /** + * 根据订单号获取支付订单 + * + * @param orderId 用户订单号 + * @return 支付订单信息 + */ + @GetMapping("/queryPaymentInfo") + public JsonResult queryPaymentInfo(@RequestParam(name = "orderId") Long orderId) { + EbikePayment ebikePayment = ebikePaymentService.queryPaymentInfo(orderId); + return JsonResult.success(ebikePayment); + } +} diff --git a/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java b/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java index e0432bd..06ef980 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/EbikePaymentService.java @@ -11,4 +11,12 @@ import com.mybatisflex.core.service.IService; */ public interface EbikePaymentService extends IService { + + /** + * 查询用户支付订单 + * + * @param orderId 订单id + * @return 用户支付订单 + */ + EbikePayment queryPaymentInfo(Long orderId); } diff --git a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderImpl.java b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderImpl.java index 8d54fca..3a5f444 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderImpl.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderImpl.java @@ -95,7 +95,7 @@ public class EbikeOrderImpl extends ServiceImpl im .updateTime(LocalDateTime.now()) .build(); updateById(orders); - return orders; + return getById(order.getOrderId()); } catch (Exception e) { log.error("开锁失败, userId={}, bikeCode={}", userId, bikeCode, e); throw new RuntimeException("开锁失败", e); diff --git a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikePaymentServiceImpl.java b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikePaymentServiceImpl.java index 2d1c59c..e92865a 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikePaymentServiceImpl.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikePaymentServiceImpl.java @@ -3,10 +3,13 @@ package com.cdzy.user.service.impl; import com.cdzy.user.mapper.EbikePaymentMapper; import com.cdzy.user.model.entity.EbikePayment; import com.cdzy.user.service.EbikePaymentService; +import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import static com.cdzy.user.model.entity.table.EbikePaymentTableDef.EBIKE_PAYMENT; + /** * 用户支付服务层 * @@ -16,4 +19,16 @@ import org.springframework.stereotype.Service; @Slf4j @Service public class EbikePaymentServiceImpl extends ServiceImpl implements EbikePaymentService { + + @Override + public EbikePayment queryPaymentInfo(Long orderId) { + QueryWrapper queryWrapper = QueryWrapper.create() + .where(EBIKE_PAYMENT.ORDER_ID.eq(orderId)); + EbikePayment ebikePayment = this.mapper.selectOneByQuery(queryWrapper); + if (ebikePayment == null) { + log.error("{}支付订单不存在!", orderId); + return null; + } + return ebikePayment; + } } diff --git a/ebike-user/src/main/resources/db/init.sql b/ebike-user/src/main/resources/db/init.sql index 50ae2c4..a6f9561 100644 --- a/ebike-user/src/main/resources/db/init.sql +++ b/ebike-user/src/main/resources/db/init.sql @@ -298,7 +298,7 @@ CREATE TABLE "public"."ebike_payment" ( "user_id" int8 NOT NULL, "order_id" int8 NOT NULL, "operator_id" int8 NOT NULL, - "trade_id" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "trade_id" varchar(64) COLLATE "pg_catalog"."default", "transaction_id" varchar(64) COLLATE "pg_catalog"."default", "payment_time" timestamp(6), "payment_method" int2 NOT NULL,