refactor all service dependency injection

This commit is contained in:
2026-08-10 11:35:48 +08:00
parent 007a7ba38a
commit c883cc52a2
152 changed files with 1030 additions and 223 deletions

View File

@@ -3,9 +3,11 @@ package application
import (
"errors"
"bsm/full/module/base/mgt/internal/impl"
"bsm/full/module/base/mgt/internal/libs"
"bsm/full/module/base/mgt/internal/models"
"bsm/full/module/base/mgt/internal/types"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/infra"
"git.apinb.com/bsm-sdk/core/printer"
@@ -35,7 +37,7 @@ func Create(c *gin.Context) {
}
// 判断应用是否已经存在(包括软删除的记录)
db := models.DBService.Model(&models.MgtApplication{})
db := impl.DBService.Model(&models.MgtApplication{})
if err = db.Where("title = ? or workspace = ?", request.Title, request.Workspace).First(&data).Error; err != nil {
if !errors.Is(err, gorm.ErrRecordNotFound) {
infra.Response.Error(c, errcode.ErrDB)
@@ -45,9 +47,9 @@ func Create(c *gin.Context) {
var deletedData models.MgtApplication
// 检查 workspace 是否被软删除workspace 有唯一索引)
if request.Workspace != "" {
if err = models.DBService.Unscoped().Where("workspace = ?", request.Workspace).First(&deletedData).Error; err == nil {
if err = impl.DBService.Unscoped().Where("workspace = ?", request.Workspace).First(&deletedData).Error; err == nil {
// 存在软删除的记录,先物理删除它,以便可以重新创建
if err = models.DBService.Unscoped().Delete(&deletedData).Error; err != nil {
if err = impl.DBService.Unscoped().Delete(&deletedData).Error; err != nil {
infra.Response.Error(c, errcode.ErrDB)
return
}
@@ -56,9 +58,9 @@ func Create(c *gin.Context) {
}
// 检查 title 是否被软删除(如果 title 和 workspace 不同)
if request.Title != "" && request.Title != request.Workspace {
if err = models.DBService.Unscoped().Where("title = ?", request.Title).First(&deletedData).Error; err == nil {
if err = impl.DBService.Unscoped().Where("title = ?", request.Title).First(&deletedData).Error; err == nil {
// 存在软删除的记录,先物理删除它
if err = models.DBService.Unscoped().Delete(&deletedData).Error; err != nil {
if err = impl.DBService.Unscoped().Delete(&deletedData).Error; err != nil {
infra.Response.Error(c, errcode.ErrDB)
return
}
@@ -79,7 +81,7 @@ func Create(c *gin.Context) {
Workspace: request.Workspace,
Description: request.Description,
}
if err = models.DBService.Model(&models.MgtApplication{}).Create(&dataModel).Error; err != nil {
if err = impl.DBService.Model(&models.MgtApplication{}).Create(&dataModel).Error; err != nil {
infra.Response.Error(c, errcode.ErrDB)
return
}

View File

@@ -1,9 +1,11 @@
package application
import (
"bsm/full/module/base/mgt/internal/impl"
"bsm/full/module/base/mgt/internal/libs"
"bsm/full/module/base/mgt/internal/models"
"bsm/full/module/base/mgt/internal/types"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/infra"
"git.apinb.com/bsm-sdk/core/printer"
@@ -36,7 +38,7 @@ func Del(c *gin.Context) {
appId := request.ID
var dptIds []uint
if err := models.DBService.Transaction(func(tx *gorm.DB) error {
if err := impl.DBService.Transaction(func(tx *gorm.DB) error {
if err := tx.Model(&models.MgtDepartment{}).Where("app_id = ?", appId).Pluck("id", &dptIds).Error; err != nil {
printer.Error("查询应用部门异常: %v", err)
return err

View File

@@ -3,9 +3,11 @@ package application
import (
"errors"
"bsm/full/module/base/mgt/internal/impl"
"bsm/full/module/base/mgt/internal/libs"
"bsm/full/module/base/mgt/internal/models"
"bsm/full/module/base/mgt/internal/types"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/infra"
"git.apinb.com/bsm-sdk/core/printer"
@@ -38,7 +40,7 @@ func Detail(c *gin.Context) {
return
}
if err = models.DBService.Model(&models.MgtApplication{}).Where("id = ?", request.ID).First(&data).Error; err != nil {
if err = impl.DBService.Model(&models.MgtApplication{}).Where("id = ?", request.ID).First(&data).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
infra.Response.Error(c, errcode.ErrRecordNotFound)
return

View File

@@ -1,10 +1,12 @@
package application
import (
"bsm/full/module/base/mgt/internal/impl"
"bsm/full/module/base/mgt/internal/libs"
"bsm/full/module/base/mgt/internal/logic/tool"
"bsm/full/module/base/mgt/internal/models"
"bsm/full/module/base/mgt/internal/types"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/infra"
"github.com/gin-gonic/gin"
@@ -15,7 +17,7 @@ func Fetch(c *gin.Context) {
request = types.ApplicationRequest{}
count int64 = 0
data = make([]types.ApplicationRsp, 0)
db = models.DBService.Model(&models.MgtApplication{})
db = impl.DBService.Model(&models.MgtApplication{})
)
// 解析JSON请求

View File

@@ -1,10 +1,12 @@
package application
import (
"bsm/full/module/base/mgt/internal/impl"
"bsm/full/module/base/mgt/internal/libs"
"bsm/full/module/base/mgt/internal/logic/tool"
"bsm/full/module/base/mgt/internal/models"
"bsm/full/module/base/mgt/internal/types"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/infra"
"git.apinb.com/bsm-sdk/core/printer"
@@ -17,7 +19,7 @@ func UserFetch(c *gin.Context) {
var (
request = types.FetchBase{}
data = models.MgtApplication{}
db = models.DBService.Model(&models.MgtApplication{}).Select("id", "identity", "title")
db = impl.DBService.Model(&models.MgtApplication{}).Select("id", "identity", "title")
count int64 = 0
)
err := c.ShouldBindJSON(&request)
@@ -56,7 +58,7 @@ func RoleFetch(c *gin.Context) {
var (
request = types.FetchBase{}
data = make([]models.MgtApplication, 0)
db = models.DBService.Model(&models.MgtApplication{}).Select("id", "identity", "title")
db = impl.DBService.Model(&models.MgtApplication{}).Select("id", "identity", "title")
count int64 = 0
)
err := c.ShouldBindJSON(&request)
@@ -97,7 +99,7 @@ func PermissionFetch(c *gin.Context) {
var (
request = types.FetchBase{}
data = make([]models.MgtApplication, 0)
db = models.DBService.Model(&models.MgtApplication{}).Select("id", "identity", "title")
db = impl.DBService.Model(&models.MgtApplication{}).Select("id", "identity", "title")
count int64 = 0
)
err := c.ShouldBindJSON(&request)

View File

@@ -3,9 +3,11 @@ package application
import (
"errors"
"bsm/full/module/base/mgt/internal/impl"
"bsm/full/module/base/mgt/internal/libs"
"bsm/full/module/base/mgt/internal/models"
"bsm/full/module/base/mgt/internal/types"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/infra"
"git.apinb.com/bsm-sdk/core/printer"
@@ -40,7 +42,7 @@ func Midify(c *gin.Context) {
// 检查workspace是否已被其他应用使用
if request.Workspace != "" {
if err := models.DBService.Model(&models.MgtApplication{}).Where("workspace=? and id<>?", request.Workspace, request.ID).First(&data).Error; err != nil {
if err := impl.DBService.Model(&models.MgtApplication{}).Where("workspace=? and id<>?", request.Workspace, request.ID).First(&data).Error; err != nil {
if !errors.Is(err, gorm.ErrRecordNotFound) {
infra.Response.Error(c, errcode.ErrDB)
return
@@ -61,7 +63,7 @@ func Midify(c *gin.Context) {
if request.Status != 0 {
dataModel.Status = request.Status
}
if err := models.DBService.Model(&models.MgtApplication{}).Where("id = ?", request.ID).Updates(&dataModel).Error; err != nil {
if err := impl.DBService.Model(&models.MgtApplication{}).Where("id = ?", request.ID).Updates(&dataModel).Error; err != nil {
infra.Response.Error(c, errcode.ErrDB)
return
}