演示

PartnerService

合作方(客户与供应商)的内置 CRUD 与搜索。请使用本服务,而不是在插件中再建 partner 表。

注入

TSXinject
1import { 2 ContainerRegistryManager, 3 PartnerService, 4 Inject, 5 Service, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class MyPluginService { 10 @Inject(PartnerService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private partnerService: PartnerService; 12}

查询方法

  • getPartnerById(id) — 按 id 取合作方
  • getPartner({ search?, isCustomer?, isSupplier?, skip, limit }) — 带筛选的分页列表
  • sportlightSearch(dto, user) — Spotlight 搜索(拼写与源码一致)
TSXlookup
1import { 2 ContainerRegistryManager, 3 Inject, 4 PartnerService, 5 Service, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class SalePartnerService { 10 @Inject(PartnerService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private partnerService: PartnerService; 12 13 async customers(search?: string) { 14 return this.partnerService.getPartner({ 15 search, 16 isCustomer: true, 17 skip: 0, 18 limit: 20, 19 }); 20 } 21 22 async byId(id: number) { 23 return this.partnerService.getPartnerById(id); 24 } 25}

创建 / 更新 / 删除

CreateServiceProps 形如 { data, manager?, createdByUserId? }。保持 isCustomer / isSupplier 与实际用途一致。

  • create(props) — 创建合作方(firstName、lastName 必填)
  • createMany(props) — 批量创建
  • update(id, partner, updateBy?) — 按 id 更新
  • delete(id) — 删除
TSXcreate
1import { 2 ContainerRegistryManager, 3 Inject, 4 PartnerService, 5 Service, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class CustomerOnboardService { 10 @Inject(PartnerService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private partnerService: PartnerService; 12 13 async createCustomer(createdByUserId: number) { 14 return this.partnerService.create({ 15 createdByUserId, 16 data: { 17 firstName: "Aung", 18 lastName: "Kyaw", 19 phone: "09123456789", 20 isCustomer: true, 21 isSupplier: false, 22 }, 23 }); 24 } 25}

说明

  • 优先使用本服务,不要自建插件内客户/供应商实体
  • 前端 partner hooks/组件由 base 插件暴露