调整目录结构
This commit is contained in:
52
.golangci.yml
Normal file
52
.golangci.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
# .golangci.yml - 为你的项目量身定制的 linter 配置
|
||||
|
||||
linters-settings:
|
||||
# 这里可以对特定的 linter 进行微调
|
||||
errcheck:
|
||||
# 检查未处理的错误,但可以排除一些常见的、我们确认无需处理的函数
|
||||
exclude-functions:
|
||||
- io/ioutil.ReadFile
|
||||
- io.Copy
|
||||
- io.WriteString
|
||||
- os.Create
|
||||
|
||||
linters:
|
||||
# 明确我们想要禁用的 linter
|
||||
disable:
|
||||
# --- 暂时禁用的“干扰项” ---
|
||||
- godox # 禁用对 TODO, FIXME 注释的检查,让我们能专注于代码
|
||||
|
||||
# --- 暂时禁用的“风格/复杂度”检查器 ---
|
||||
- gocyclo # 暂时不检查圈复杂度
|
||||
- funlen # 暂时不检查函数长度
|
||||
- lll # 暂时不检查行长度
|
||||
- wsl # 检查多余的空格和换行,可以后期再处理
|
||||
- gocritic # 这个检查器包含很多子项,有些可能过于严格,可以先禁用,或在下面精细配置
|
||||
|
||||
# 排除路径:分析这些文件但不报告问题(使用 regex 匹配)
|
||||
exclusions:
|
||||
paths:
|
||||
# 排除 docs/ 目录(匹配路径以 docs/ 开头)
|
||||
- '^docs/'
|
||||
|
||||
# 精细排除规则:用于特定文件/文本的 linter 排除
|
||||
rules:
|
||||
# 排除对 main.go 中 log.Fatalf 的抱怨(仅针对 goconst linter)
|
||||
- path: '^main\.go$'
|
||||
text: "log.Fatalf"
|
||||
linters:
|
||||
- goconst
|
||||
|
||||
# 你也可以明确启用你认为最重要的检查器,形成一个“白名单”
|
||||
# enable:
|
||||
# - govet
|
||||
# - errcheck
|
||||
# - staticcheck
|
||||
# - unused
|
||||
# - gosimple
|
||||
# - ineffassign
|
||||
# - typecheck
|
||||
|
||||
run:
|
||||
# 完全跳过测试文件分析(不解析、不报告任何问题)
|
||||
tests: false
|
||||
8
Makefile
8
Makefile
@@ -13,6 +13,7 @@ help:
|
||||
@echo " swag Generate swagger docs"
|
||||
@echo " help Show this help message"
|
||||
@echo " proto Generate protobuf files"
|
||||
@echo " lint Lint the code"
|
||||
|
||||
# 运行应用
|
||||
.PHONY: run
|
||||
@@ -44,4 +45,9 @@ swag:
|
||||
# 生成protobuf文件
|
||||
.PHONY: proto
|
||||
proto:
|
||||
protoc --go_out=internal/app/service/device/proto --go_opt=paths=source_relative --go-grpc_out=internal/app/service/device/proto --go-grpc_opt=paths=source_relative -Iinternal/app/service/device/proto internal/app/service/device/proto/device.proto
|
||||
protoc --go_out=internal/domain/device/proto --go_opt=paths=source_relative --go-grpc_out=internal/domain/device/proto --go-grpc_opt=paths=source_relative -Iinternal/domain/device/proto internal/domain/device/proto/device.proto
|
||||
|
||||
# 运行代码检查
|
||||
.PHONY: lint
|
||||
lint:
|
||||
golangci-lint run ./...
|
||||
@@ -20,10 +20,10 @@ import (
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/plan"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller/user"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/middleware"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/audit"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/task"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/transport"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/webhook"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/audit"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/task"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/config"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
@@ -45,7 +45,7 @@ type API struct {
|
||||
userController *user.Controller // 用户控制器实例
|
||||
deviceController *device.Controller // 设备控制器实例
|
||||
planController *plan.Controller // 计划控制器实例
|
||||
listenHandler transport.ListenHandler // 设备上行事件监听器
|
||||
listenHandler webhook.ListenHandler // 设备上行事件监听器
|
||||
analysisTaskManager *task.AnalysisPlanTaskManager // 计划触发器管理器实例
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ func NewAPI(cfg config.ServerConfig,
|
||||
userActionLogRepository repository.UserActionLogRepository,
|
||||
tokenService token.TokenService,
|
||||
auditService audit.Service, // 注入审计服务
|
||||
listenHandler transport.ListenHandler,
|
||||
listenHandler webhook.ListenHandler,
|
||||
analysisTaskManager *task.AnalysisPlanTaskManager) *API {
|
||||
// 设置 Gin 模式,例如 gin.ReleaseMode (生产模式) 或 gin.DebugMode (开发模式)
|
||||
// 从配置中获取 Gin 模式
|
||||
@@ -127,10 +127,7 @@ func (a *API) setupRoutes() {
|
||||
a.logger.Info("pprof 接口注册成功")
|
||||
|
||||
// 上行事件监听路由
|
||||
a.engine.POST("/upstream", func(c *gin.Context) {
|
||||
h := a.listenHandler.Handler()
|
||||
h.ServeHTTP(c.Writer, c.Request)
|
||||
})
|
||||
a.engine.POST("/upstream", gin.WrapH(a.listenHandler.Handler()))
|
||||
a.logger.Info("上行事件监听接口注册成功")
|
||||
|
||||
// 添加 Swagger UI 路由, Swagger UI可在 /swagger/index.html 上找到
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"strconv"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller"
|
||||
task "git.huangwc.com/pig/pig-farm-controller/internal/app/service/task"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/task"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"time"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"io"
|
||||
"strconv"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/audit"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/audit"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package transport
|
||||
package webhook
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/device/proto"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/device/proto"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
@@ -1,4 +1,4 @@
|
||||
package transport
|
||||
package webhook
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@@ -1,4 +1,4 @@
|
||||
package transport
|
||||
package webhook
|
||||
|
||||
import "net/http"
|
||||
|
||||
@@ -8,11 +8,11 @@ import (
|
||||
"time"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/api"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/audit"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/device"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/task"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/transport"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/webhook"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/audit"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/device"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/task"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/config"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/database"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
@@ -95,7 +95,7 @@ func NewApplication(configPath string) (*Application, error) {
|
||||
auditService := audit.NewService(userActionLogRepo, logger)
|
||||
|
||||
// 初始化设备上行监听器
|
||||
listenHandler := transport.NewChirpStackListener(logger, sensorDataRepo, deviceRepo, areaControllerRepo, deviceCommandLogRepo, pendingCollectionRepo)
|
||||
listenHandler := webhook.NewChirpStackListener(logger, sensorDataRepo, deviceRepo, areaControllerRepo, deviceCommandLogRepo, pendingCollectionRepo)
|
||||
|
||||
// 初始化计划触发器管理器
|
||||
analysisPlanTaskManager := task.NewAnalysisPlanTaskManager(planRepo, pendingTaskRepo, executionLogRepo, logger)
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/device/proto"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/device/proto"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
@@ -354,7 +354,7 @@ const file_device_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"MethodType\x12\x0f\n" +
|
||||
"\vINSTRUCTION\x10\x00\x12\v\n" +
|
||||
"\aCOLLECT\x10\x01B#Z!internal/app/service/device/protob\x06proto3"
|
||||
"\aCOLLECT\x10\x01B\x1eZ\x1cinternal/domain/device/protob\x06proto3"
|
||||
|
||||
var (
|
||||
file_device_proto_rawDescOnce sync.Once
|
||||
@@ -4,7 +4,7 @@ package device;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
option go_package = "internal/app/service/device/proto";
|
||||
option go_package = "internal/domain/device/proto";
|
||||
|
||||
// --- 通用指令结构 ---
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/device"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/device"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/device"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/domain/device"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
Reference in New Issue
Block a user