Selaa lähdekoodia

fix: "构造函数注入循环依赖"
fix: "Airwallex提现账户信息"

Ritchie 1 vuosi sitten
vanhempi
commit
1d7d0459ae

+ 8 - 9
src/main/java/com/szwl/controller/AirwallexPayController.java

@@ -15,7 +15,6 @@ import com.szwl.constant.AirwallexConstant;
 import com.szwl.feign.bean.SzwlFeign;
 import com.szwl.model.bean.PaymentIntentRequestBody;
 import com.szwl.model.bean.RefundRequestBody;
-import com.szwl.model.bo.JsonMessage;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.dto.*;
@@ -42,14 +41,8 @@ import java.util.*;
 @RequestMapping("/api/airwallexPay")
 @Slf4j
 public class AirwallexPayController {
-    @Value("${test.value:bbb}")
-    private String testValue;
-
-    TAdminService tAdminService;
-
-    AirwallexService airwallexService;
-
-    TCoinOrderService tCoinOrderService;
+//    @Value("${test.value:bbb}")
+//    private String testValue;
 
     public AirwallexPayController(TAdminService tAdminService, AirwallexService airwallexService, TCoinOrderService tCoinOrderService, TOrderDetailsService tOrderDetailsService, TAirwallexPaymentService tAirwallexPaymentService, SzwlFeign szwlFeign, TAirwallexMchService airwallexMchService) {
         this.tAdminService = tAdminService;
@@ -61,6 +54,12 @@ public class AirwallexPayController {
         this.airwallexMchService = airwallexMchService;
     }
 
+    TAdminService tAdminService;
+
+    AirwallexService airwallexService;
+
+    TCoinOrderService tCoinOrderService;
+
     TOrderDetailsService tOrderDetailsService;
 
     TAirwallexPaymentService tAirwallexPaymentService;

+ 28 - 10
src/main/java/com/szwl/feign/bean/SzwlFeign.java

@@ -13,6 +13,7 @@ import java.util.Date;
 
 
 @FeignClient(name = "szwl-server")
+//@FeignClient(name = "szwl-server", url = "http://127.0.0.1:49011/")
 public interface SzwlFeign {
 
     @GetMapping("/test/testGetAdmin")
@@ -20,46 +21,63 @@ public interface SzwlFeign {
 
     @GetMapping("/tEquipment/findEquipmentByClientId")
     ResponseModel<TEquipment> findEquipmentByClientId(@RequestParam String clientId);
+
     @GetMapping("/tEquipment/updateByEquipment")
     ResponseModel<TEquipment> updateByEquipment(@RequestBody TEquipment equipment);
+
     @GetMapping("/tPromoCode/getTPromoCode")
     ResponseModel<IPage<TPromoCode>> getTPromoCode(@RequestParam String code);
+
     @GetMapping("/tPromoCode/getPromoCode")
     ResponseModel<TPromoCode> getPromoCode(@RequestParam String code);
+
     @GetMapping("/tPromoCode/selectTPromoCode")
-    ResponseModel<TPromoCode> selectTPromoCode(@RequestParam String code,@RequestParam String adminId);
+    ResponseModel<TPromoCode> selectTPromoCode(@RequestParam String code, @RequestParam String adminId);
+
     @GetMapping("/tPromoCode/getYHJ")
     ResponseModel<TPromoCode> getYHJ(@RequestParam(value = "code") String code);
+
     @GetMapping("/tPromoCode/updatePromoCode")
-    void updatePromoCode(@RequestParam(value = "id")String id, @RequestParam(value = "type")String type);
+    void updatePromoCode(@RequestParam(value = "id") String id, @RequestParam(value = "type") String type);
+
     @GetMapping("/tPromoCode/useYHJ")
-    void useYHJ(@RequestParam String code,@RequestParam String adminId,@RequestParam String clentId);
+    void useYHJ(@RequestParam String code, @RequestParam String adminId, @RequestParam String clentId);
+
     @GetMapping("/tProduct/getProduct")
-    ResponseModel<TProduct> getProduct(@RequestParam(value = "equipmentId")String equipmentId, @RequestParam(value = "productName")String productName);
+    ResponseModel<TProduct> getProduct(@RequestParam(value = "equipmentId") String equipmentId, @RequestParam(value = "productName") String productName);
+
     @GetMapping("/tProportion/getProportion")
     ResponseModel<TProportion> getProportion(@RequestParam String equipmentId);
+
     @GetMapping("/tAdmin/getAdmin")
-    ResponseModel<TAdmin>  getAdmin(@RequestParam String id);
+    ResponseModel<TAdmin> getAdmin(@RequestParam String id);
+
     @GetMapping("/tJoinpayMch/getMch")
-    ResponseModel<TJoinpayMch>  getMch(@RequestParam String id);
+    ResponseModel<TJoinpayMch> getMch(@RequestParam String id);
+
     @GetMapping("/tShandeMch/getShandeMch")
-    ResponseModel<TShandeMch>  getShandeMch(@RequestParam String id);
+    ResponseModel<TShandeMch> getShandeMch(@RequestParam String id);
+
     @GetMapping("/tShandeMch/updateShandeMch")
     void updateShandeMch(@RequestBody TShandeMch shandeMch);
+
     @GetMapping("/tEquipmentDesc/findEquipmentById")
     ResponseModel<TEquipmentDesc> findEquipmentById(@RequestParam Long id);
+
     @GetMapping("/tPrice/getPrice")
-    ResponseModel<TPrice>  getPrice(@RequestParam String name);
+    ResponseModel<TPrice> getPrice(@RequestParam String name);
+
     @GetMapping("/tPromoCode/addPromoCode")
-    void addPromoCode(@RequestParam(value = "adminId")String adminId, @RequestParam(value = "lastUseDate")Date lastUseDate, @RequestParam(value = "number")int number);
+    void addPromoCode(@RequestParam(value = "adminId") String adminId, @RequestParam(value = "lastUseDate") Date lastUseDate, @RequestParam(value = "number") int number);
     //同步订单到es中
 
     /**
      * 获取汇付商户号
+     *
      * @param adminId
      * @return
      */
     @GetMapping("/tHuifuMch/getHuifuId")
     ResponseModel<THuifuMch> getHuifuId(@RequestParam Long adminId);
-    
+
 }

+ 6 - 2
src/main/java/com/szwl/service/TAirwallexMchService.java

@@ -1,5 +1,6 @@
 package com.szwl.service;
 
+import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.TAirwallexMch;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,7 +14,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface TAirwallexMchService extends IService<TAirwallexMch> {
 
-//    TAirwallexMch getAirwallexId(Long adminId);
-
+    /**
+     * 获取提现账户信息
+     * @param adminId
+     * @return
+     */
     TAirwallexMch getAirMch(Long adminId);
 }

+ 24 - 23
src/main/java/com/szwl/service/impl/TAirwallexMchServiceImpl.java

@@ -2,22 +2,22 @@ package com.szwl.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.feign.bean.SzwlFeign;
 import com.szwl.model.bo.R;
 import com.szwl.model.entity.TAdmin;
 import com.szwl.model.entity.TAirwallexMch;
 import com.szwl.mapper.TAirwallexMchMapper;
-import com.szwl.service.TAdminService;
 import com.szwl.service.TAirwallexMchService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.elasticsearch.search.aggregations.bucket.terms.RareTerms;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.szwl.utils.AirwallexMchException;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author wuhs
@@ -26,43 +26,44 @@ import java.util.List;
 @Service
 public class TAirwallexMchServiceImpl extends ServiceImpl<TAirwallexMchMapper, TAirwallexMch> implements TAirwallexMchService {
 
-    public TAirwallexMchService airwallexMchService;
-    public TAdminService adminService;
-
-    public TAirwallexMchServiceImpl(TAirwallexMchService airwallexMchService, TAdminService adminService) {
-        this.airwallexMchService = airwallexMchService;
-        this.adminService = adminService;
-    }
-
-//    @Override
-//    public TAirwallexMch getAirwallexId(Long adminId) {
-//        return null;
-//    }
+    @Resource
+    TAirwallexMchService airwallexMchService;
+    @Resource
+    SzwlFeign szwlFeign;
 
     @Override
     public TAirwallexMch getAirMch(Long adminId) {
 
-        TAdmin admin = adminService.getById(adminId);
+        String adminIdStr = String.valueOf(adminId);
+        // 根据 adminId 获取admin信息
+        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(adminIdStr));
+
         if (!admin.getIsAdmined()) {
             if (admin.getType() <= 1) { // 公司人员
                 TAirwallexMch airwallexMch = new TAirwallexMch();
-                airwallexMch.setEntityType("PERSONAL"); // 商户类型,“0”为个人,“1”为企业
+                airwallexMch.setEntityType("PERSONAL"); // 商户类型,“PERSONAL”为个人,“COMPANY”为企业
                 return airwallexMch;
             } else { // 商家
-                TAdmin parentAdmin = adminService.getById(admin.getParentId());
+//                TAdmin parentAdmin = adminService.getById();
+                TAdmin parentAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
                 LambdaQueryWrapper<TAirwallexMch> wrapper = Wrappers.lambdaQuery();
                 wrapper.eq(TAirwallexMch::getAdminId, Long.valueOf(parentAdmin.getId()));
 
                 List<TAirwallexMch> list = airwallexMchService.list(wrapper);
                 TAirwallexMch airwallexMch = list.get(0);
-                // 刷新 airwallexMch
-//            TAirwallexMch tAirwallexMch = airwallexMchService.getById(airwallexMch.getId());
+                // 刷新
+//                TAirwallexMch tAirwallexMch = airwallexMchService.getById(airwallexMch.getId());
                 return airwallexMch;
             }
         } else {
+            LambdaQueryWrapper<TAirwallexMch> wrapper = Wrappers.lambdaQuery();
+            wrapper.eq(TAirwallexMch::getAdminId, Long.valueOf(adminId));
+            TAirwallexMch airwallexMch = airwallexMchService.getOne(wrapper);
 
+            if (airwallexMch == null) {
+                throw new AirwallexMchException("未注册提现号");
+            }
+            return airwallexMch;
         }
-
-        return null;
     }
 }

+ 8 - 0
src/main/java/com/szwl/utils/AirwallexMchException.java

@@ -0,0 +1,8 @@
+package com.szwl.utils;
+
+public class AirwallexMchException extends RuntimeException{
+
+    public AirwallexMchException(String msg) {
+        super(msg);
+    }
+}