Эх сурвалжийг харах

fix(backend): 修复循环依赖 + ProductOrder重复字段 + QrCodeService静态调用

Xiaogang Liao 2 сар өмнө
parent
commit
6e2dc0edb8

+ 21 - 6
cfc-backend/src/main/java/com/etotem/cfc/controller/product/ProductOrderController.java

@@ -9,6 +9,7 @@ import com.etotem.cfc.entity.ActivityProvision;
 import com.etotem.cfc.service.ActivityProvisionService;
 import com.etotem.cfc.service.PaymentService;
 import com.etotem.cfc.service.ProductOrderService;
+import com.etotem.cfc.service.QrCodeService;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestAttribute;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -32,8 +33,11 @@ public class ProductOrderController {
     @Resource
     private PaymentService paymentService;
 
-    @Resource
-    private ActivityProvisionService activityProvisionService;
+@Resource
+private ActivityProvisionService activityProvisionService;
+
+@Resource
+private QrCodeService qrCodeService;
 
     @PostMapping("/create")
     public Result<ProductOrderDTO> create(@RequestBody CreateProductOrderDTO dto,
@@ -176,9 +180,20 @@ public class ProductOrderController {
         return activityProvisionService.complete(orderId);
     }
 
-    @PostMapping("/activity/provision")
-    public Result<ActivityProvision> activityProvision(@RequestBody Map<String, Object> params) {
-        Long orderId = Long.valueOf(params.get("orderId").toString());
-        return activityProvisionService.getByOrderId(orderId);
+@PostMapping("/activity/provision")
+public Result<ActivityProvision> activityProvision(@RequestBody Map<String, Object> params) {
+    Long orderId = Long.valueOf(params.get("orderId").toString());
+    return activityProvisionService.getByOrderId(orderId);
+}
+
+@PostMapping("/activity/qr-image")
+public Result<String> getActivityQrImage(@RequestBody Map<String, Object> params) {
+    Long orderId = Long.valueOf(params.get("orderId").toString());
+    ActivityProvision provision = activityProvisionService.getByOrderId(orderId).getData();
+    if (provision == null || provision.getQrCode() == null) {
+        return Result.error("QR code not available");
     }
+    String base64Qr = qrCodeService.generateQrCodeBase64(provision.getQrCode());
+    return Result.success(base64Qr);
+}
 }

+ 0 - 6
cfc-backend/src/main/java/com/etotem/cfc/entity/ProductOrder.java

@@ -64,12 +64,6 @@ public class ProductOrder implements Serializable {
     private Date auditedAt;
     private String auditReason;
 
-    private Long activityId;
-    private String provisionStatus;
-    private Long auditorId;
-    private Date auditedAt;
-    private String auditReason;
-
     private Date createdAt;
     private Date updatedAt;
 

+ 2 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/DimensionEnergySyncService.java

@@ -3,6 +3,7 @@ package com.etotem.cfc.service;
 import com.etotem.cfc.entity.HealthDimensionScore;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -34,6 +35,7 @@ public class DimensionEnergySyncService {
     private HealthDimensionScoreService scoreService;
 
     @Resource
+    @Lazy
     private EnergyService energyService;
 
     @Resource

+ 2 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/impl/DimensionScoreServiceImpl.java

@@ -20,6 +20,7 @@ import com.etotem.cfc.service.HealthDataSourceRecordService;
 import com.etotem.cfc.entity.DanAssessmentResult;
 import com.etotem.cfc.mapper.DanAssessmentResultMapper;
 import com.etotem.cfc.service.DimensionEnergySyncService;
+import org.springframework.context.annotation.Lazy;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -57,6 +58,7 @@ public class DimensionScoreServiceImpl implements DimensionScoreService {
     private DanAssessmentResultMapper danAssessmentResultMapper;
 
     @Resource
+    @Lazy
     private HealthReportService healthReportService;
 
     @Resource