@be-link/ecommerce-promotion-service-node-sdk 0.1.61 → 0.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/enum.d.ts +9 -0
- package/enum.js +10 -0
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/modules/award/types.d.ts +2 -0
- package/modules/benefit/service.js +3 -3
- package/modules/benefit/types.d.ts +89 -9
- package/modules/member/service.d.ts +4 -0
- package/modules/member/service.js +32 -0
- package/modules/member/types.d.ts +88 -2
- package/package.json +1 -1
- package/utils/http.d.ts +5 -0
- package/utils/http.js +9 -0
package/enum.d.ts
CHANGED
|
@@ -537,6 +537,15 @@ export declare namespace ENUM {
|
|
|
537
537
|
SKIPPED = "\u8DF3\u8FC7",
|
|
538
538
|
NOT_NEEDED = "\u65E0\u9700\u56DE\u6536"
|
|
539
539
|
}
|
|
540
|
+
/**
|
|
541
|
+
* 会员权益链路(按用户查可领权益列表是否有促销侧记录;调用方约定传入已是会员的 userId)
|
|
542
|
+
*/
|
|
543
|
+
enum MEMBER_BENEFIT_CHAIN_TYPE {
|
|
544
|
+
/** 新会员:有可展示的 MemberBenefitRecord */
|
|
545
|
+
NEW = "NEW",
|
|
546
|
+
/** 老会员:无 MemberBenefitRecord(历史开通链路) */
|
|
547
|
+
LEGACY = "LEGACY"
|
|
548
|
+
}
|
|
540
549
|
}
|
|
541
550
|
namespace TASK_ENUM {
|
|
542
551
|
/** 任务状态 */
|
package/enum.js
CHANGED
|
@@ -608,6 +608,16 @@ var ENUM;
|
|
|
608
608
|
RECOVERY_STATUS_CHINESE["SKIPPED"] = "\u8DF3\u8FC7";
|
|
609
609
|
RECOVERY_STATUS_CHINESE["NOT_NEEDED"] = "\u65E0\u9700\u56DE\u6536";
|
|
610
610
|
})(RECOVERY_STATUS_CHINESE = MEMBER_ENUM.RECOVERY_STATUS_CHINESE || (MEMBER_ENUM.RECOVERY_STATUS_CHINESE = {}));
|
|
611
|
+
/**
|
|
612
|
+
* 会员权益链路(按用户查可领权益列表是否有促销侧记录;调用方约定传入已是会员的 userId)
|
|
613
|
+
*/
|
|
614
|
+
let MEMBER_BENEFIT_CHAIN_TYPE;
|
|
615
|
+
(function (MEMBER_BENEFIT_CHAIN_TYPE) {
|
|
616
|
+
/** 新会员:有可展示的 MemberBenefitRecord */
|
|
617
|
+
MEMBER_BENEFIT_CHAIN_TYPE["NEW"] = "NEW";
|
|
618
|
+
/** 老会员:无 MemberBenefitRecord(历史开通链路) */
|
|
619
|
+
MEMBER_BENEFIT_CHAIN_TYPE["LEGACY"] = "LEGACY";
|
|
620
|
+
})(MEMBER_BENEFIT_CHAIN_TYPE = MEMBER_ENUM.MEMBER_BENEFIT_CHAIN_TYPE || (MEMBER_ENUM.MEMBER_BENEFIT_CHAIN_TYPE = {}));
|
|
611
621
|
})(MEMBER_ENUM = ENUM.MEMBER_ENUM || (ENUM.MEMBER_ENUM = {}));
|
|
612
622
|
let TASK_ENUM;
|
|
613
623
|
(function (TASK_ENUM) {
|
package/index.d.ts
CHANGED
|
@@ -16,4 +16,5 @@ export { memberService } from './modules/member/service';
|
|
|
16
16
|
export type { Service as MemberServiceTypes } from './modules/member/types';
|
|
17
17
|
export { benefitService } from './modules/benefit/service';
|
|
18
18
|
export type { Service as BenefitServiceTypes } from './modules/benefit/types';
|
|
19
|
+
export { destroyHttpAgents } from './utils/http';
|
|
19
20
|
export { ENUM as PROMOTION_ENUM } from './enum';
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PROMOTION_ENUM = exports.benefitService = exports.memberService = exports.taskService = exports.jobService = exports.pointsMallService = exports.pricingCalculationService = exports.configService = exports.couponService = exports.awardService = void 0;
|
|
3
|
+
exports.PROMOTION_ENUM = exports.destroyHttpAgents = exports.benefitService = exports.memberService = exports.taskService = exports.jobService = exports.pointsMallService = exports.pricingCalculationService = exports.configService = exports.couponService = exports.awardService = void 0;
|
|
4
4
|
var service_1 = require("./modules/award/service");
|
|
5
5
|
Object.defineProperty(exports, "awardService", { enumerable: true, get: function () { return service_1.awardService; } });
|
|
6
6
|
var service_2 = require("./modules/coupon/service");
|
|
@@ -19,6 +19,8 @@ var service_8 = require("./modules/member/service");
|
|
|
19
19
|
Object.defineProperty(exports, "memberService", { enumerable: true, get: function () { return service_8.memberService; } });
|
|
20
20
|
var service_9 = require("./modules/benefit/service");
|
|
21
21
|
Object.defineProperty(exports, "benefitService", { enumerable: true, get: function () { return service_9.benefitService; } });
|
|
22
|
+
var http_1 = require("./utils/http");
|
|
23
|
+
Object.defineProperty(exports, "destroyHttpAgents", { enumerable: true, get: function () { return http_1.destroyHttpAgents; } });
|
|
22
24
|
// 服务.模块.枚举名称.枚举值 示例: AWARD_ENUM.DISTRIBUTION_CHANNEL.ORDER
|
|
23
25
|
var enum_1 = require("./enum");
|
|
24
26
|
Object.defineProperty(exports, "PROMOTION_ENUM", { enumerable: true, get: function () { return enum_1.ENUM; } });
|
package/modules/award/types.d.ts
CHANGED
|
@@ -149,6 +149,8 @@ export declare namespace Service {
|
|
|
149
149
|
successCount?: number;
|
|
150
150
|
/** 失败数量 */
|
|
151
151
|
failureCount?: number;
|
|
152
|
+
/** 实际发放数量(券场景下返回实际发放的券数量) */
|
|
153
|
+
actualQuantity?: number;
|
|
152
154
|
}
|
|
153
155
|
/** 直播间积分&券发放统计响应 */
|
|
154
156
|
interface queryLiveRoomDistributionStatsResponse {
|
|
@@ -104,17 +104,17 @@ __decorate([
|
|
|
104
104
|
__param(0, (0, tsoa_1.Body)())
|
|
105
105
|
], BenefitService.prototype, "listConfigsByTemplate", null);
|
|
106
106
|
__decorate([
|
|
107
|
-
(0, tsoa_1.OperationId)('
|
|
107
|
+
(0, tsoa_1.OperationId)('查询会员订单权益状态,给交易侧b端查询使用'),
|
|
108
108
|
(0, tsoa_1.Post)('get-benefit-status'),
|
|
109
109
|
__param(0, (0, tsoa_1.Body)())
|
|
110
110
|
], BenefitService.prototype, "getBenefitStatus", null);
|
|
111
111
|
__decorate([
|
|
112
|
-
(0, tsoa_1.OperationId)('
|
|
112
|
+
(0, tsoa_1.OperationId)('按用户查询当前会员权益状态,给c端查询使用'),
|
|
113
113
|
(0, tsoa_1.Post)('get-benefit-status-by-user-id'),
|
|
114
114
|
__param(0, (0, tsoa_1.Body)())
|
|
115
115
|
], BenefitService.prototype, "getBenefitStatusByUserId", null);
|
|
116
116
|
__decorate([
|
|
117
|
-
(0, tsoa_1.OperationId)('按城市查询黑钻模板ID'),
|
|
117
|
+
(0, tsoa_1.OperationId)('按城市查询黑钻模板ID,给c端查询使用'),
|
|
118
118
|
(0, tsoa_1.Post)('get-black-diamond-template-id-by-city'),
|
|
119
119
|
__param(0, (0, tsoa_1.Body)())
|
|
120
120
|
], BenefitService.prototype, "getBlackDiamondTemplateIdByCity", null);
|
|
@@ -67,6 +67,62 @@ export declare namespace Service {
|
|
|
67
67
|
/** 删除时间(时间戳,毫秒,0 表示未删除) */
|
|
68
68
|
deletedAt: number;
|
|
69
69
|
}
|
|
70
|
+
/** 核销券关联商品快照(商品中心字段裁剪) */
|
|
71
|
+
interface BenefitVerifyProductSnapshot {
|
|
72
|
+
productId: string;
|
|
73
|
+
productName: string;
|
|
74
|
+
mainImg: string;
|
|
75
|
+
pickType?: string;
|
|
76
|
+
dispatchType?: string;
|
|
77
|
+
status?: string;
|
|
78
|
+
needVerify?: number;
|
|
79
|
+
verifyPeriod?: {
|
|
80
|
+
startDate?: number;
|
|
81
|
+
endDate?: number;
|
|
82
|
+
payAfterDay?: number;
|
|
83
|
+
type?: number;
|
|
84
|
+
};
|
|
85
|
+
targetSkuId?: string;
|
|
86
|
+
targetSkuCode?: string;
|
|
87
|
+
targetSkuAttrs?: Array<{
|
|
88
|
+
attrName: string;
|
|
89
|
+
attrValue: string;
|
|
90
|
+
}>;
|
|
91
|
+
price?: number;
|
|
92
|
+
memberPrice?: number;
|
|
93
|
+
strikethroughPrice?: number;
|
|
94
|
+
skuStatus?: string;
|
|
95
|
+
skuListSummary?: Array<{
|
|
96
|
+
skuId: string;
|
|
97
|
+
skuCode: string;
|
|
98
|
+
attrs: Array<{
|
|
99
|
+
attrName: string;
|
|
100
|
+
attrValue: string;
|
|
101
|
+
}>;
|
|
102
|
+
price: number;
|
|
103
|
+
memberPrice: number;
|
|
104
|
+
strikethroughPrice?: number;
|
|
105
|
+
status: string;
|
|
106
|
+
}>;
|
|
107
|
+
}
|
|
108
|
+
/** 单个候选券对应的商品信息 */
|
|
109
|
+
interface BenefitCouponVerifyOption {
|
|
110
|
+
/** 候选券模板ID(用于和商品建立关联) */
|
|
111
|
+
couponTemplateId: string;
|
|
112
|
+
product: BenefitVerifyProductSnapshot | null;
|
|
113
|
+
productFetchError?: string;
|
|
114
|
+
}
|
|
115
|
+
/** 一条券权益(N 选 1 核销券)的展示数据 */
|
|
116
|
+
interface BenefitCouponBenefitDetail {
|
|
117
|
+
benefitId: string;
|
|
118
|
+
claimStatus: ENUM.MEMBER_ENUM.BENEFIT_CLAIM_STATUS;
|
|
119
|
+
/**
|
|
120
|
+
* 用户已选择的券模板 ID(与领取接口 couponId 一致,未选为空串时不返回)
|
|
121
|
+
*/
|
|
122
|
+
selectedCouponTemplateId?: string;
|
|
123
|
+
/** 候选券对应的商品信息 */
|
|
124
|
+
verifyOptions: BenefitCouponVerifyOption[];
|
|
125
|
+
}
|
|
70
126
|
/** 会员订单权益状态 */
|
|
71
127
|
interface BenefitStatus {
|
|
72
128
|
/** 积分权益状态 */
|
|
@@ -84,13 +140,30 @@ export declare namespace Service {
|
|
|
84
140
|
hotelTravel?: {
|
|
85
141
|
status: string;
|
|
86
142
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
143
|
+
}
|
|
144
|
+
/** 按用户查询当前权益状态的列表项(与会员权益列表结构对齐) */
|
|
145
|
+
interface BenefitStatusByUserIdItem {
|
|
146
|
+
id: string;
|
|
147
|
+
bizKey: string;
|
|
148
|
+
userId: string;
|
|
149
|
+
orderNo: string;
|
|
150
|
+
membershipType: string;
|
|
151
|
+
benefitType: string;
|
|
152
|
+
benefitSubType: ENUM.MEMBER_ENUM.BENEFIT_SUB_TYPE;
|
|
153
|
+
status: string;
|
|
154
|
+
failReason: string;
|
|
155
|
+
benefitId: string;
|
|
156
|
+
claimStatus: ENUM.MEMBER_ENUM.BENEFIT_CLAIM_STATUS;
|
|
157
|
+
selectedCouponId: string;
|
|
158
|
+
templateId: string;
|
|
159
|
+
couponCandidateIds: string[];
|
|
160
|
+
expireAt: number;
|
|
161
|
+
extra: Record<string, unknown>;
|
|
162
|
+
createdAt: number;
|
|
163
|
+
updatedAt: number;
|
|
164
|
+
deletedAt: number;
|
|
165
|
+
/** 仅券权益返回:候选券对应商品信息 */
|
|
166
|
+
verifyOptions?: BenefitCouponVerifyOption[];
|
|
94
167
|
}
|
|
95
168
|
}
|
|
96
169
|
namespace Request {
|
|
@@ -312,8 +385,15 @@ export declare namespace Service {
|
|
|
312
385
|
type listConfigsByTemplate = Entity.BenefitConfig[];
|
|
313
386
|
/** 会员订单权益状态 */
|
|
314
387
|
type getBenefitStatus = Entity.BenefitStatus;
|
|
315
|
-
/**
|
|
316
|
-
|
|
388
|
+
/** 按用户查询当前会员权益状态(权益列表结构) */
|
|
389
|
+
interface getBenefitStatusByUserId {
|
|
390
|
+
orderNo: string;
|
|
391
|
+
list: Entity.BenefitStatusByUserIdItem[];
|
|
392
|
+
/**
|
|
393
|
+
* 权益链路:约定传入已是会员的 userId;list 有数据=新会员,无数据=老会员
|
|
394
|
+
*/
|
|
395
|
+
memberBenefitChainType: ENUM.MEMBER_ENUM.MEMBER_BENEFIT_CHAIN_TYPE;
|
|
396
|
+
}
|
|
317
397
|
/** 按城市查询黑钻模板ID */
|
|
318
398
|
interface getBlackDiamondTemplateIdByCity {
|
|
319
399
|
/** 模板ID */
|
|
@@ -7,6 +7,10 @@ declare class MemberService extends BaseService implements Service.MemberControl
|
|
|
7
7
|
listBenefitOfficers(request: Service.Request.listBenefitOfficers): Promise<Service.Response.listBenefitOfficers>;
|
|
8
8
|
listClaimableBenefits(request: Service.Request.listClaimableBenefits): Promise<Service.Response.listClaimableBenefits>;
|
|
9
9
|
claimMemberBenefit(request: Service.Request.claimMemberBenefit): Promise<Service.Response.claimMemberBenefit>;
|
|
10
|
+
triggerMemberPriceOrderCompleted(request: Service.Request.triggerMemberPriceOrderCompleted): Promise<Service.Response.triggerMemberPriceOrderCompleted>;
|
|
11
|
+
triggerMemberPriceOrderPositiveClosed(request: Service.Request.triggerMemberPriceOrderPositiveClosed): Promise<Service.Response.triggerMemberPriceOrderPositiveClosed>;
|
|
12
|
+
backfillMemberSavingByDate(request: Service.Request.backfillMemberSavingByDate): Promise<Service.Response.backfillMemberSavingByDate>;
|
|
13
|
+
getBackfillMemberSavingTaskStatus(request: Service.Request.getBackfillMemberSavingTaskStatus): Promise<Service.Response.getBackfillMemberSavingTaskStatus>;
|
|
10
14
|
}
|
|
11
15
|
export declare const memberService: MemberService;
|
|
12
16
|
export default memberService;
|
|
@@ -36,6 +36,18 @@ let MemberService = class MemberService extends BaseService_1.default {
|
|
|
36
36
|
claimMemberBenefit(request) {
|
|
37
37
|
return (0, http_1.callApi)(this.getApiUrl(this.claimMemberBenefit), request);
|
|
38
38
|
}
|
|
39
|
+
triggerMemberPriceOrderCompleted(request) {
|
|
40
|
+
return (0, http_1.callApi)(this.getApiUrl(this.triggerMemberPriceOrderCompleted), request);
|
|
41
|
+
}
|
|
42
|
+
triggerMemberPriceOrderPositiveClosed(request) {
|
|
43
|
+
return (0, http_1.callApi)(this.getApiUrl(this.triggerMemberPriceOrderPositiveClosed), request);
|
|
44
|
+
}
|
|
45
|
+
backfillMemberSavingByDate(request) {
|
|
46
|
+
return (0, http_1.callApi)(this.getApiUrl(this.backfillMemberSavingByDate), request);
|
|
47
|
+
}
|
|
48
|
+
getBackfillMemberSavingTaskStatus(request) {
|
|
49
|
+
return (0, http_1.callApi)(this.getApiUrl(this.getBackfillMemberSavingTaskStatus), request);
|
|
50
|
+
}
|
|
39
51
|
};
|
|
40
52
|
__decorate([
|
|
41
53
|
(0, tsoa_1.OperationId)('会员正向触发(mock trade)'),
|
|
@@ -62,6 +74,26 @@ __decorate([
|
|
|
62
74
|
(0, tsoa_1.Post)('claim-member-benefit'),
|
|
63
75
|
__param(0, (0, tsoa_1.Body)())
|
|
64
76
|
], MemberService.prototype, "claimMemberBenefit", null);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, tsoa_1.OperationId)('测试触发会员价订单正向省钱累计'),
|
|
79
|
+
(0, tsoa_1.Post)('trigger-member-price-order-completed'),
|
|
80
|
+
__param(0, (0, tsoa_1.Body)())
|
|
81
|
+
], MemberService.prototype, "triggerMemberPriceOrderCompleted", null);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, tsoa_1.OperationId)('测试触发会员价订单正向关单省钱冲销'),
|
|
84
|
+
(0, tsoa_1.Post)('trigger-member-price-order-positive-closed'),
|
|
85
|
+
__param(0, (0, tsoa_1.Body)())
|
|
86
|
+
], MemberService.prototype, "triggerMemberPriceOrderPositiveClosed", null);
|
|
87
|
+
__decorate([
|
|
88
|
+
(0, tsoa_1.OperationId)('按完成日回补会员省钱明细(按天异步)'),
|
|
89
|
+
(0, tsoa_1.Post)('backfill-member-saving-by-date'),
|
|
90
|
+
__param(0, (0, tsoa_1.Body)())
|
|
91
|
+
], MemberService.prototype, "backfillMemberSavingByDate", null);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, tsoa_1.OperationId)('查询会员省钱回补任务状态'),
|
|
94
|
+
(0, tsoa_1.Post)('get-backfill-member-saving-task-status'),
|
|
95
|
+
__param(0, (0, tsoa_1.Body)())
|
|
96
|
+
], MemberService.prototype, "getBackfillMemberSavingTaskStatus", null);
|
|
65
97
|
MemberService = __decorate([
|
|
66
98
|
(0, tsoa_1.Route)('member'),
|
|
67
99
|
(0, tsoa_1.Tags)('Member')
|
|
@@ -127,13 +127,31 @@ export declare namespace Service {
|
|
|
127
127
|
interface claimMemberBenefit {
|
|
128
128
|
/** 用户ID */
|
|
129
129
|
userId: string;
|
|
130
|
-
/** 会员订单号 */
|
|
131
|
-
orderNo: string;
|
|
132
130
|
/** 权益ID */
|
|
133
131
|
benefitId: string;
|
|
134
132
|
/** 券权益选择的券ID */
|
|
135
133
|
couponId?: string;
|
|
136
134
|
}
|
|
135
|
+
/** 测试触发会员价订单正向省钱累计 */
|
|
136
|
+
interface triggerMemberPriceOrderCompleted {
|
|
137
|
+
userId: string;
|
|
138
|
+
orderNo: string;
|
|
139
|
+
}
|
|
140
|
+
/** 测试触发会员价订单正向关单省钱冲销(对齐 trade.order.positive.closed) */
|
|
141
|
+
interface triggerMemberPriceOrderPositiveClosed {
|
|
142
|
+
userId: string;
|
|
143
|
+
orderNo: string;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* 按订单完成日回补会员省钱(单日)。建议配置 MEMBER_SAVING_BACKFILL_SECRET,请求头 x-member-saving-backfill-secret
|
|
147
|
+
*/
|
|
148
|
+
interface backfillMemberSavingByDate {
|
|
149
|
+
/** 处理日期,YYYYMMDD,例如 20251022 */
|
|
150
|
+
date: string;
|
|
151
|
+
}
|
|
152
|
+
interface getBackfillMemberSavingTaskStatus {
|
|
153
|
+
taskId: string;
|
|
154
|
+
}
|
|
137
155
|
}
|
|
138
156
|
namespace Response {
|
|
139
157
|
type triggerMemberOrderPaid = void;
|
|
@@ -146,6 +164,70 @@ export declare namespace Service {
|
|
|
146
164
|
interface claimMemberBenefit {
|
|
147
165
|
claimStatus: string;
|
|
148
166
|
}
|
|
167
|
+
type triggerMemberPriceOrderCompleted = void;
|
|
168
|
+
type triggerMemberPriceOrderPositiveClosed = void;
|
|
169
|
+
interface backfillMemberSavingByDate {
|
|
170
|
+
taskId: string;
|
|
171
|
+
date: string;
|
|
172
|
+
status: 'QUEUED';
|
|
173
|
+
createdAt: number;
|
|
174
|
+
/** 存在同日运行中任务时返回,用于提示请求被去重 */
|
|
175
|
+
activeTaskId?: string;
|
|
176
|
+
}
|
|
177
|
+
interface getBackfillMemberSavingTaskStatus {
|
|
178
|
+
taskId: string;
|
|
179
|
+
date: string;
|
|
180
|
+
status: 'QUEUED' | 'RUNNING' | 'SUCCESS' | 'FAILED';
|
|
181
|
+
createdAt: number;
|
|
182
|
+
startedAt?: number;
|
|
183
|
+
finishedAt?: number;
|
|
184
|
+
progress?: {
|
|
185
|
+
stage: 'QUERY' | 'WRITE' | 'DONE';
|
|
186
|
+
day: string;
|
|
187
|
+
pageIndex: number;
|
|
188
|
+
pages: number;
|
|
189
|
+
scanned: number;
|
|
190
|
+
memberOrders: number;
|
|
191
|
+
pointsOrders: number;
|
|
192
|
+
normalOrders: number;
|
|
193
|
+
aggregatedUsers: number;
|
|
194
|
+
written: number;
|
|
195
|
+
failed: number;
|
|
196
|
+
lastMessage: string;
|
|
197
|
+
updatedAt: number;
|
|
198
|
+
};
|
|
199
|
+
result?: {
|
|
200
|
+
range: {
|
|
201
|
+
start: string;
|
|
202
|
+
end: string;
|
|
203
|
+
};
|
|
204
|
+
totals: {
|
|
205
|
+
scanned: number;
|
|
206
|
+
memberOrders: number;
|
|
207
|
+
pointsOrders: number;
|
|
208
|
+
normalOrders: number;
|
|
209
|
+
written: number;
|
|
210
|
+
aggregatedUsers: number;
|
|
211
|
+
failed: number;
|
|
212
|
+
pages: number;
|
|
213
|
+
};
|
|
214
|
+
perDay: Array<{
|
|
215
|
+
day: string;
|
|
216
|
+
scanned: number;
|
|
217
|
+
memberOrders: number;
|
|
218
|
+
pointsOrders: number;
|
|
219
|
+
normalOrders: number;
|
|
220
|
+
written: number;
|
|
221
|
+
aggregatedUsers: number;
|
|
222
|
+
failed: number;
|
|
223
|
+
pages: number;
|
|
224
|
+
}>;
|
|
225
|
+
failuresTotal: number;
|
|
226
|
+
failuresTruncated: boolean;
|
|
227
|
+
};
|
|
228
|
+
error?: string;
|
|
229
|
+
activeTaskId?: string;
|
|
230
|
+
}
|
|
149
231
|
}
|
|
150
232
|
interface MemberController {
|
|
151
233
|
triggerMemberOrderPaid(request: Request.triggerMemberOrderPaid): Promise<Response.triggerMemberOrderPaid>;
|
|
@@ -153,5 +235,9 @@ export declare namespace Service {
|
|
|
153
235
|
listBenefitOfficers(request: Request.listBenefitOfficers): Promise<Response.listBenefitOfficers>;
|
|
154
236
|
listClaimableBenefits(request: Request.listClaimableBenefits): Promise<Response.listClaimableBenefits>;
|
|
155
237
|
claimMemberBenefit(request: Request.claimMemberBenefit): Promise<Response.claimMemberBenefit>;
|
|
238
|
+
triggerMemberPriceOrderCompleted(request: Request.triggerMemberPriceOrderCompleted): Promise<Response.triggerMemberPriceOrderCompleted>;
|
|
239
|
+
triggerMemberPriceOrderPositiveClosed(request: Request.triggerMemberPriceOrderPositiveClosed): Promise<Response.triggerMemberPriceOrderPositiveClosed>;
|
|
240
|
+
backfillMemberSavingByDate(request: Request.backfillMemberSavingByDate): Promise<Response.backfillMemberSavingByDate>;
|
|
241
|
+
getBackfillMemberSavingTaskStatus(request: Request.getBackfillMemberSavingTaskStatus): Promise<Response.getBackfillMemberSavingTaskStatus>;
|
|
156
242
|
}
|
|
157
243
|
}
|
package/package.json
CHANGED
package/utils/http.d.ts
CHANGED
|
@@ -9,3 +9,8 @@ declare module '@fastify/request-context' {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
export declare function callApi<T extends (...args: any[]) => Promise<any>>(url: string, request?: Parameters<T>[0]): Promise<Awaited<ReturnType<T>>>;
|
|
12
|
+
/**
|
|
13
|
+
* 优雅退出时,销毁所有 HTTP/HTTPS Agent 连接池
|
|
14
|
+
* 确保所有 socket 被正确关闭,防止进程 hang 住
|
|
15
|
+
*/
|
|
16
|
+
export declare function destroyHttpAgents(): void;
|
package/utils/http.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.callApi = callApi;
|
|
7
|
+
exports.destroyHttpAgents = destroyHttpAgents;
|
|
7
8
|
const axios_1 = __importDefault(require("axios"));
|
|
8
9
|
const uuid_1 = require("uuid");
|
|
9
10
|
const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
@@ -106,3 +107,11 @@ async function callApi(url, request) {
|
|
|
106
107
|
const responseData = response.data;
|
|
107
108
|
return responseData.data;
|
|
108
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* 优雅退出时,销毁所有 HTTP/HTTPS Agent 连接池
|
|
112
|
+
* 确保所有 socket 被正确关闭,防止进程 hang 住
|
|
113
|
+
*/
|
|
114
|
+
function destroyHttpAgents() {
|
|
115
|
+
httpAgent.destroy();
|
|
116
|
+
httpsAgent.destroy();
|
|
117
|
+
}
|