|
@@ -12,6 +12,7 @@ import { Utils } from '../../../comm/utils';
|
|
|
import { DispatchService } from './channels/dispatch';
|
|
|
import { ChannelService } from './channel';
|
|
|
import { WalletService } from './wallet';
|
|
|
+import { RefundService } from './refund';
|
|
|
|
|
|
@Provide()
|
|
|
export class OrderService extends BaseService {
|
|
@@ -33,12 +34,26 @@ export class OrderService extends BaseService {
|
|
|
@Inject()
|
|
|
channelService: ChannelService;
|
|
|
|
|
|
+ @Inject()
|
|
|
+ refundService: RefundService;
|
|
|
+
|
|
|
@Inject()
|
|
|
ctx;
|
|
|
|
|
|
@Inject()
|
|
|
utils: Utils;
|
|
|
|
|
|
+ async toRefund(payload) {
|
|
|
+ const order = await this.orderEntity.findOneBy({ orderNo: payload.orderNo });
|
|
|
+ if (!order) {
|
|
|
+ throw new CoolCommException('订单不存在');
|
|
|
+ }
|
|
|
+ if (+order.status !== 1) {
|
|
|
+ throw new CoolCommException('订单未支付成功');
|
|
|
+ }
|
|
|
+ return await this.refundService.toRefund(order, payload.amount, payload.reson);
|
|
|
+ }
|
|
|
+
|
|
|
async handleNotify(code, payload, headers) {
|
|
|
const data = await this.dispatchService.handleOrderNotify(code, payload, headers);
|
|
|
const order = await this.orderEntity.findOneBy({ orderNo: data.orderNo });
|
|
@@ -184,19 +199,17 @@ export class OrderService extends BaseService {
|
|
|
SUM(IF(a.status = 1, a.charge, 0)) as num2,
|
|
|
SUM(IF(a.status = 1, 1, 0)) as num3,
|
|
|
count(*) as num4
|
|
|
- ${
|
|
|
- this.utils.isMerchant(roleIds)
|
|
|
+ ${this.utils.isMerchant(roleIds)
|
|
|
? ''
|
|
|
: ',SUM(IF(a.status = 1, a.channelCharge, 0)) as num5'
|
|
|
- }
|
|
|
+ }
|
|
|
FROM dj_order a WHERE 1=1
|
|
|
${this.setSql(orderNo, 'and a.orderNo like ?', [`%${orderNo}%`])}
|
|
|
${this.setSql(outOrderNo, 'and a.outOrderNo like ?', [`%${outOrderNo}%`])}
|
|
|
${this.setSql(traceNo, 'and a.traceNo like ?', [`%${traceNo}%`])}
|
|
|
- ${
|
|
|
- this.utils.isMerchant(roleIds)
|
|
|
- ? this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`])
|
|
|
- : this.setSql(mchId, 'and a.mchId like ?', [`%${mchId}%`])
|
|
|
+ ${this.utils.isMerchant(roleIds)
|
|
|
+ ? this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`])
|
|
|
+ : this.setSql(mchId, 'and a.mchId like ?', [`%${mchId}%`])
|
|
|
}
|
|
|
${this.setSql(payType, 'and a.payType = ?', [payType])}
|
|
|
${this.setSql(code, 'and a.code = ?', [code])}
|
|
@@ -238,16 +251,14 @@ export class OrderService extends BaseService {
|
|
|
mchId = '-1';
|
|
|
}
|
|
|
}
|
|
|
- const sql = `SELECT a.id, a.orderNo, a.outOrderNo, a.payUrl, a.traceNo, a.mchId, a.code, a.payType, a.amount,${
|
|
|
- this.utils.isMerchant(roleIds) ? '' : 'a.channelCharge,'
|
|
|
- } a.charge, a.status, a.notifyStatus, a.userId, a.userIp, a.currency, a.date, a.notifyUrl, a.returnUrl, a.remark, a.createTime, a.updateTime FROM dj_order a WHERE 1=1
|
|
|
+ const sql = `SELECT a.id, a.orderNo, a.outOrderNo, a.payUrl, a.traceNo, a.mchId, a.code, a.payType, a.amount,${this.utils.isMerchant(roleIds) ? '' : 'a.channelCharge,'
|
|
|
+ } a.charge, a.status, a.notifyStatus, a.userId, a.userIp, a.currency, a.date, a.notifyUrl, a.returnUrl, a.remark, a.createTime, a.updateTime FROM dj_order a WHERE 1=1
|
|
|
${this.setSql(orderNo, 'and a.orderNo like ?', [`%${orderNo}%`])}
|
|
|
${this.setSql(outOrderNo, 'and a.outOrderNo like ?', [`%${outOrderNo}%`])}
|
|
|
${this.setSql(traceNo, 'and a.traceNo like ?', [`%${traceNo}%`])}
|
|
|
- ${
|
|
|
- this.utils.isMerchant(roleIds)
|
|
|
- ? this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`])
|
|
|
- : this.setSql(mchId, 'and a.mchId like ?', [`%${mchId}%`])
|
|
|
+ ${this.utils.isMerchant(roleIds)
|
|
|
+ ? this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`])
|
|
|
+ : this.setSql(mchId, 'and a.mchId like ?', [`%${mchId}%`])
|
|
|
}
|
|
|
${this.setSql(payType, 'and a.payType = ?', [payType])}
|
|
|
${this.setSql(code, 'and a.code = ?', [code])}
|
|
@@ -268,9 +279,9 @@ export class OrderService extends BaseService {
|
|
|
moment().endOf('week').format('YYYY-MM-DD') + ' 23:59:59',
|
|
|
];
|
|
|
const sql = `SELECT SUM(IF(a.status = 1, a.amount, 0)) as total FROM dj_order a WHERE 1=1
|
|
|
- ${ this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`]) }
|
|
|
- ${ this.setSql(userId, 'and a.userId = ?', [`${userId}`]) }
|
|
|
- ${ this.setSql(code, 'and a.code = ?', [`${code}`]) }
|
|
|
+ ${this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`])}
|
|
|
+ ${this.setSql(userId, 'and a.userId = ?', [`${userId}`])}
|
|
|
+ ${this.setSql(code, 'and a.code = ?', [`${code}`])}
|
|
|
${this.setSql(true, 'and (a.createTime between ? and ?)', time)}
|
|
|
`
|
|
|
return await this.nativeQuery(sql);
|
|
@@ -282,9 +293,9 @@ export class OrderService extends BaseService {
|
|
|
moment().endOf('month').format('YYYY-MM-DD') + ' 23:59:59',
|
|
|
];
|
|
|
const sql = `SELECT SUM(IF(a.status = 1, a.amount, 0)) as total FROM dj_order a WHERE 1=1
|
|
|
- ${ this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`]) }
|
|
|
- ${ this.setSql(userId, 'and a.userId = ?', [`${userId}`]) }
|
|
|
- ${ this.setSql(code, 'and a.code = ?', [`${code}`]) }
|
|
|
+ ${this.setSql(mchId, 'and a.mchId = ?', [`${mchId}`])}
|
|
|
+ ${this.setSql(userId, 'and a.userId = ?', [`${userId}`])}
|
|
|
+ ${this.setSql(code, 'and a.code = ?', [`${code}`])}
|
|
|
${this.setSql(true, 'and (a.createTime between ? and ?)', time)}
|
|
|
`
|
|
|
return await this.nativeQuery(sql);
|