kra-new/internal/service
Yvan bfb6295153 优化结构 2026-08-28 09:46:42 +08:00
..
dto 优化结构 2026-08-28 09:44:11 +08:00
integration 优化结构 2026-08-23 02:36:58 +08:00
payment 优化结构 2026-08-28 09:44:11 +08:00
system 优化结构 2026-08-28 09:46:42 +08:00
task 优化结构 2026-08-28 09:19:54 +08:00
README.md 优化结构 2026-08-23 02:36:58 +08:00
service.go 优化结构 2026-08-28 00:29:40 +08:00

README.md

Service Layer

service adapts HTTP-facing DTOs to business usecases and owns application orchestration. Request/response/filter contracts live in dto/; the root package is a compatibility facade and module provider aggregator.

Implementations are grouped by the same business modules as biz and data:

Directory Responsibility
system/ authentication, users, authorization, menus, organization, dictionaries, settings, audit, media, announcements, email, versions, exports
payment/ payment orchestration and callback handling
integration/ integration configuration orchestration
task/ scheduled task orchestration
dto/ HTTP request/response contracts

The stateless router-prefix helper lives in internal/utils/routepath because both service modules and HTTP middleware use it; it does not depend on a business usecase or DTO.

Each module owns its Wire ProviderSet. The root service package re-exports the existing service types and constructors through aliases and thin wrappers, so handlers, middleware and generated Wire code can migrate independently without a flag day.

Within system/, larger cross-cutting resources stay in the same package while being split by concern (audit.go and its error/log companions, media.go and upload companion, and export.go/export_excel.go). New transport code should import the module package directly when it does not need the compatibility facade.