发布商品,商品图片使用oss服务器地址

This commit is contained in:
2026-07-06 08:53:03 +08:00
parent a0466f023e
commit 5ba69eb935
60 changed files with 2776 additions and 157 deletions
@@ -1,7 +1,8 @@
import { Controller, Get, UseGuards } from '@nestjs/common';
import { Body, Controller, Get, Param, Post, Query, UseGuards } from '@nestjs/common';
import { SettlementService } from './settlement.service';
import { JwtAuthGuard, AuthUser } from '../../common/guards/jwt-auth.guard';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { HqAuthGuard } from '../../common/guards/hq-auth.guard';
import { PrismaService } from '../../common/prisma/prisma.module';
@Controller('partner/settlement')
@@ -15,6 +16,101 @@ export class SettlementController {
}
}
@Controller('shop/payouts')
@UseGuards(JwtAuthGuard)
export class ShopPayoutController {
constructor(private readonly settlementService: SettlementService) {}
@Get()
list(
@CurrentUser() user: AuthUser,
@Query('page') page = '1',
@Query('pageSize') pageSize = '20',
) {
return this.settlementService.listShopPayouts(user.actorId, Number(page), Number(pageSize));
}
}
@Controller('admin/store-payouts')
@UseGuards(HqAuthGuard)
export class AdminStorePayoutController {
constructor(private readonly settlementService: SettlementService) {}
@Get()
list(@Query() query: Record<string, string>) {
return this.settlementService.listAdminStorePayouts({
page: query.page ? Number(query.page) : 1,
pageSize: query.pageSize ? Number(query.pageSize) : 20,
status: query.status,
storeId: query.storeId,
});
}
@Get(':id')
detail(@Param('id') id: string) {
return this.settlementService.getAdminStorePayout(BigInt(id));
}
@Post(':id/confirm')
confirm(@Param('id') id: string, @Body() body: { paymentRef?: string; batchNo?: string; remark?: string }) {
return this.settlementService.confirmStorePayout(BigInt(id), body);
}
@Post('batch-confirm')
batchConfirm(@Body() body: { ids: string[]; batchNo?: string }) {
return this.settlementService.batchConfirmStorePayouts(body.ids ?? [], body);
}
@Post('scan-due')
scanDue() {
return this.settlementService.scanDueStorePayouts();
}
}
@Controller('admin/partner-bills')
@UseGuards(HqAuthGuard)
export class AdminPartnerBillController {
constructor(private readonly settlementService: SettlementService) {}
@Post('generate')
generate(@Body() body: { partnerId: string; year: number; month: number }) {
return this.settlementService.generatePartnerBill(body);
}
@Get()
list(@Query() query: Record<string, string>) {
return this.settlementService.listAdminPartnerBills({
page: query.page ? Number(query.page) : 1,
pageSize: query.pageSize ? Number(query.pageSize) : 20,
status: query.status,
partnerId: query.partnerId,
});
}
@Get('export')
export(@Query() query: Record<string, string>) {
return this.settlementService.exportPartnerBills({
partnerId: query.partnerId,
status: query.status,
});
}
@Get(':id')
detail(@Param('id') id: string) {
return this.settlementService.getAdminPartnerBill(BigInt(id));
}
@Post(':id/confirm')
confirm(@Param('id') id: string) {
return this.settlementService.confirmPartnerBill(BigInt(id));
}
@Post(':id/mark-paid')
markPaid(@Param('id') id: string, @Body() body: { paymentRef?: string }) {
return this.settlementService.markPartnerBillPaid(BigInt(id), body);
}
}
@Controller('partner/me')
@UseGuards(JwtAuthGuard)
export class PartnerMeController {