|
@@ -24,17 +24,22 @@ export class KycService extends BaseService {
|
|
async toPay(payload) {
|
|
async toPay(payload) {
|
|
const { orderNo, customerId } = payload;
|
|
const { orderNo, customerId } = payload;
|
|
const order = await this.orderService.findByOrderNo(orderNo);
|
|
const order = await this.orderService.findByOrderNo(orderNo);
|
|
- if(!orderNo || !order) {
|
|
|
|
|
|
+ const customer = await this.kycEntity.findOneBy({ customerId })
|
|
|
|
+ if (!orderNo || !order) {
|
|
throw new CoolCommException('Order does not exist');
|
|
throw new CoolCommException('Order does not exist');
|
|
}
|
|
}
|
|
- if(order.payUrl) {
|
|
|
|
|
|
+ if(!customer) {
|
|
|
|
+ throw new CoolCommException('Customer does not exist');
|
|
|
|
+ }
|
|
|
|
+ if (order.payUrl) {
|
|
return {
|
|
return {
|
|
payUrl: order.payUrl
|
|
payUrl: order.payUrl
|
|
};
|
|
};
|
|
}
|
|
}
|
|
- const { payUrl, traceNo } = await this.sunPayService.createOrder({
|
|
|
|
|
|
+ const { payUrl, traceNo } = await this.sunPayService.createOrder({
|
|
...order,
|
|
...order,
|
|
- customerId
|
|
|
|
|
|
+ customerId,
|
|
|
|
+ country: customer.country
|
|
})
|
|
})
|
|
order.payUrl = payUrl;
|
|
order.payUrl = payUrl;
|
|
order.traceNo = traceNo;
|
|
order.traceNo = traceNo;
|
|
@@ -44,29 +49,29 @@ export class KycService extends BaseService {
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
- async createAdvanced(payload, files){
|
|
|
|
- const kyc = await this.kycEntity.findOneBy({customerId: payload.customerId});
|
|
|
|
- if(!payload.customerId || !kyc) {
|
|
|
|
|
|
+ async createAdvanced(payload, files) {
|
|
|
|
+ const kyc = await this.kycEntity.findOneBy({ customerId: payload.customerId });
|
|
|
|
+ if (!payload.customerId || !kyc) {
|
|
throw new CoolCommException('KYC user does not exist');
|
|
throw new CoolCommException('KYC user does not exist');
|
|
}
|
|
}
|
|
const fileObj = {};
|
|
const fileObj = {};
|
|
files.forEach(item => {
|
|
files.forEach(item => {
|
|
fileObj[item.fieldName] = item
|
|
fileObj[item.fieldName] = item
|
|
- })
|
|
|
|
|
|
+ })
|
|
const data = await this.sunPayService.createAdvanced(payload, fileObj);
|
|
const data = await this.sunPayService.createAdvanced(payload, fileObj);
|
|
await this.kycEntity.update(kyc.id, { level: '2' });
|
|
await this.kycEntity.update(kyc.id, { level: '2' });
|
|
return data;
|
|
return data;
|
|
}
|
|
}
|
|
|
|
|
|
- async createPremium(payload, files){
|
|
|
|
- const kyc = await this.kycEntity.findOneBy({customerId: payload.customerId});
|
|
|
|
- if(!payload.customerId || !kyc) {
|
|
|
|
|
|
+ async createPremium(payload, files) {
|
|
|
|
+ const kyc = await this.kycEntity.findOneBy({ customerId: payload.customerId });
|
|
|
|
+ if (!payload.customerId || !kyc) {
|
|
throw new CoolCommException('KYC user does not exist');
|
|
throw new CoolCommException('KYC user does not exist');
|
|
}
|
|
}
|
|
const fileObj = {};
|
|
const fileObj = {};
|
|
files.forEach(item => {
|
|
files.forEach(item => {
|
|
fileObj[item.fieldName] = item
|
|
fileObj[item.fieldName] = item
|
|
- })
|
|
|
|
|
|
+ })
|
|
const data = await this.sunPayService.createPremium(payload, fileObj);
|
|
const data = await this.sunPayService.createPremium(payload, fileObj);
|
|
await this.kycEntity.update(kyc.id, { level: '3' });
|
|
await this.kycEntity.update(kyc.id, { level: '3' });
|
|
return data;
|
|
return data;
|
|
@@ -75,18 +80,19 @@ export class KycService extends BaseService {
|
|
async createBasic(payload) {
|
|
async createBasic(payload) {
|
|
const { orderNo } = payload;
|
|
const { orderNo } = payload;
|
|
const order = await this.orderService.findByOrderNo(orderNo);
|
|
const order = await this.orderService.findByOrderNo(orderNo);
|
|
- if(!orderNo || !order) {
|
|
|
|
|
|
+ if (!orderNo || !order) {
|
|
throw new CoolCommException('Order does not exist');
|
|
throw new CoolCommException('Order does not exist');
|
|
}
|
|
}
|
|
const { customerId } = await this.sunPayService.createBasic(payload);
|
|
const { customerId } = await this.sunPayService.createBasic(payload);
|
|
- if(customerId) {
|
|
|
|
|
|
+ if (customerId) {
|
|
await this.kycEntity.insert({
|
|
await this.kycEntity.insert({
|
|
userId: order.userId,
|
|
userId: order.userId,
|
|
mchId: order.mchId,
|
|
mchId: order.mchId,
|
|
code: order.code,
|
|
code: order.code,
|
|
kycUserId: payload.outUserId,
|
|
kycUserId: payload.outUserId,
|
|
customerId: customerId,
|
|
customerId: customerId,
|
|
- level: '1'
|
|
|
|
|
|
+ level: '1',
|
|
|
|
+ country: payload.countryCode
|
|
})
|
|
})
|
|
return { customerId }
|
|
return { customerId }
|
|
} else {
|
|
} else {
|
|
@@ -100,7 +106,7 @@ export class KycService extends BaseService {
|
|
|
|
|
|
async getLevel(orderNo) {
|
|
async getLevel(orderNo) {
|
|
const order = await this.orderService.findByOrderNo(orderNo);
|
|
const order = await this.orderService.findByOrderNo(orderNo);
|
|
- if(!orderNo || !order) {
|
|
|
|
|
|
+ if (!orderNo || !order) {
|
|
throw new CoolCommException('Order does not exist');
|
|
throw new CoolCommException('Order does not exist');
|
|
}
|
|
}
|
|
const outUserId = md5(order.mchId + '_' + order.userId + 'v1');
|
|
const outUserId = md5(order.mchId + '_' + order.userId + 'v1');
|
|
@@ -115,20 +121,20 @@ export class KycService extends BaseService {
|
|
code: order.code,
|
|
code: order.code,
|
|
mchId: order.mchId,
|
|
mchId: order.mchId,
|
|
});
|
|
});
|
|
- if(kyc) {
|
|
|
|
|
|
+ if (kyc) {
|
|
data.level = +kyc.level + 1;
|
|
data.level = +kyc.level + 1;
|
|
data.customerId = kyc.customerId
|
|
data.customerId = kyc.customerId
|
|
}
|
|
}
|
|
- if(data.level > 3) {
|
|
|
|
|
|
+ if (data.level > 3) {
|
|
return data;
|
|
return data;
|
|
}
|
|
}
|
|
const dailyLevel = this.getAmountLevel(order.amount);
|
|
const dailyLevel = this.getAmountLevel(order.amount);
|
|
- if(dailyLevel === 3) {
|
|
|
|
|
|
+ if (dailyLevel === 3) {
|
|
data.levelEnd = dailyLevel;
|
|
data.levelEnd = dailyLevel;
|
|
return data;
|
|
return data;
|
|
}
|
|
}
|
|
const weekly = await this.getWeekLyLevel(order);
|
|
const weekly = await this.getWeekLyLevel(order);
|
|
- if(weekly === 3) {
|
|
|
|
|
|
+ if (weekly === 3) {
|
|
data.levelEnd = dailyLevel;
|
|
data.levelEnd = dailyLevel;
|
|
return data;
|
|
return data;
|
|
}
|
|
}
|
|
@@ -140,7 +146,7 @@ export class KycService extends BaseService {
|
|
async getMonthlyLevel(order) {
|
|
async getMonthlyLevel(order) {
|
|
const month = await this.orderService.getMonthlyAmount(order.mchId, order.userId, order.code);
|
|
const month = await this.orderService.getMonthlyAmount(order.mchId, order.userId, order.code);
|
|
let amount = 0;
|
|
let amount = 0;
|
|
- if(month && month[0]) {
|
|
|
|
|
|
+ if (month && month[0]) {
|
|
amount = +month[0].total;
|
|
amount = +month[0].total;
|
|
}
|
|
}
|
|
return this.getAmountLevel(amount + +order.amount);
|
|
return this.getAmountLevel(amount + +order.amount);
|
|
@@ -149,16 +155,16 @@ export class KycService extends BaseService {
|
|
async getWeekLyLevel(order) {
|
|
async getWeekLyLevel(order) {
|
|
const weekly = await this.orderService.getWeeklyAmount(order.mchId, order.userId, order.code);
|
|
const weekly = await this.orderService.getWeeklyAmount(order.mchId, order.userId, order.code);
|
|
let amount = 0;
|
|
let amount = 0;
|
|
- if(weekly && weekly[0]) {
|
|
|
|
|
|
+ if (weekly && weekly[0]) {
|
|
amount = +weekly[0].total;
|
|
amount = +weekly[0].total;
|
|
}
|
|
}
|
|
return this.getAmountLevel(amount + +order.amount);
|
|
return this.getAmountLevel(amount + +order.amount);
|
|
}
|
|
}
|
|
|
|
|
|
getAmountLevel(amount: number) {
|
|
getAmountLevel(amount: number) {
|
|
- if(amount <= 1000) {
|
|
|
|
|
|
+ if (amount <= 1000) {
|
|
return 1;
|
|
return 1;
|
|
- } else if(amount <= 5000) {
|
|
|
|
|
|
+ } else if (amount <= 5000) {
|
|
return 2;
|
|
return 2;
|
|
} else {
|
|
} else {
|
|
return 3;
|
|
return 3;
|