瀏覽代碼

feat(): 删除受益人地址

zerogo 6 月之前
父節點
當前提交
572fec748a
共有 2 個文件被更改,包括 27 次插入4 次删除
  1. 3 2
      src/modules/api/controller/beneficiaryAddress.ts
  2. 24 2
      src/modules/payment/service/payee_address.ts

+ 3 - 2
src/modules/api/controller/beneficiaryAddress.ts

@@ -120,12 +120,13 @@ export class BeneficiaryAddressController extends BaseController {
    * /api/v3/Fiat/BeneficiaryAddress/{id}
    */
   // delete 请求存疑
+  // https://sandbox-api.sunpay.pro/api/v3/Fiat/BeneficiaryAddress/{id}
   @Del('/DelBeneficiaryAddress/:id', {
     summary: '删除受益人地址',
   })
-  async deleteBeneficiaryAddressForId(@Body(ALL) business: BusinessEntity) {
+  async deleteBeneficiaryAddressForId(@Param('id') id: string) {
     return await this.payeeAddressService.delete({
-      id: business.id,
+      id: id,
     });
   }
 }

+ 24 - 2
src/modules/payment/service/payee_address.ts

@@ -20,6 +20,13 @@ export class PayeeAddressService extends BaseService {
   @Inject()
   ctx;
 
+
+  @Init()
+  async init() {
+    await super.init();
+    this.setEntity(this.payeeAddressEntity);
+  }
+
   private _isOpenApi: boolean = false
 
   setIsOpenApi(payload = false) {
@@ -58,17 +65,32 @@ export class PayeeAddressService extends BaseService {
     return params;
   }
   async delete(params: any) {
+    if (this.ctx.admin?.openApi) {
+      const payee = await this.payeeAddressEntity.findOneBy({
+        beneficiary_address_id: params.id,
+      });
+      const res = await this.paymentService
+        .setChannel(params.channel || 'SUNPAY')
+        .deleteBeneficiaryAddress(params);
+      try{
+        payee && await super.delete([payee.id]);
+      } catch (err) {
+        console.log(err);
+      }
+      return  res
+    }
     const payee = await this.payeeAddressEntity.findOneBy({
       id: params.id,
     });
     if (payee.beneficiary_address_id) {
-      await this.paymentService
+      const res = await this.paymentService
         .setChannel(payee.channel)
         .deleteBeneficiaryAddress({
           id: payee.beneficiary_address_id,
         });
+      await super.delete(params);
+      return res;
     }
-    await super.delete(params);
   }
   async list(params: any, option: any, connectionName?: any) {
     const { channel, currency } = params;