LingxinMeng 6 ماه پیش
والد
کامیت
ec385edace
42فایلهای تغییر یافته به همراه131 افزوده شده و 118 حذف شده
  1. 0 1
      amd64/score_server/entity/e_monitor.go
  2. 0 72
      amd64/score_server/main.go
  3. 0 0
      amd64/web_server/README.md
  4. 0 0
      amd64/web_server/resource/background.png
  5. 0 0
      amd64/web_server/resource/logo.png
  6. 0 0
      amd64/web_server/resource/simfang.ttf
  7. 0 0
      amd64/web_server/resource/sql/collect_limit-add_one.sql
  8. 0 0
      amd64/web_server/resource/sql/collect_limit-insert_new.sql
  9. 0 0
      amd64/web_server/resource/sql/collect_limit-select-by-sn_code.sql
  10. 0 0
      amd64/web_server/resource/sql/exam-insert-begin_time-and-topic-and-equipment_no-by-team_name.sql
  11. 0 0
      amd64/web_server/resource/sql/exam-insert-begin_time-and-topic-by-team_name.sql
  12. 0 0
      amd64/web_server/resource/sql/exam-insert-begin_time-by-team_name.sql
  13. 0 0
      amd64/web_server/resource/sql/exam-reset-by-id.sql
  14. 0 0
      amd64/web_server/resource/sql/exam-select-all.sql
  15. 0 0
      amd64/web_server/resource/sql/exam-select-details-by-id.sql
  16. 0 0
      amd64/web_server/resource/sql/exam-select-latest-by-team_name.sql
  17. 0 0
      amd64/web_server/resource/sql/exam-select-max-id-by-team_name-and-topic.sql
  18. 0 0
      amd64/web_server/resource/sql/exam-select-page-by-team_name-and-topic.sql
  19. 0 0
      amd64/web_server/resource/sql/exam-select-page-by-team_name.sql
  20. 0 0
      amd64/web_server/resource/sql/exam-select-page-by-topic.sql
  21. 0 0
      amd64/web_server/resource/sql/exam-select-page.sql
  22. 0 0
      amd64/web_server/resource/sql/exam-select-total-by-team_name-and-topic.sql
  23. 0 0
      amd64/web_server/resource/sql/exam-select-total-by-team_name.sql
  24. 0 0
      amd64/web_server/resource/sql/exam-select-total-by-topic.sql
  25. 0 0
      amd64/web_server/resource/sql/exam-select-total.sql
  26. 0 0
      amd64/web_server/resource/sql/exam-update-deduct_score_offline-by-id.sql
  27. 0 0
      amd64/web_server/resource/sql/exam-update-end_time-by-id.sql
  28. 0 0
      amd64/web_server/resource/sql/exam-update-end_time-by-team_name-and-topic.sql
  29. 0 0
      amd64/web_server/resource/sql/exam-update-end_time-by-team_name.sql
  30. 0 0
      amd64/web_server/resource/sql/insert_device_monitor.sql
  31. 33 0
      amd64/web_server/src/cmd/main.go
  32. 2 2
      amd64/web_server/src/domain/collect/e_collect_limit.go
  33. 1 1
      amd64/web_server/src/domain/competition/e_exam.go
  34. 1 0
      amd64/web_server/src/domain/monitor/e_monitor.go
  35. 0 0
      amd64/web_server/src/infrastructure/config/application.yaml
  36. 1 1
      amd64/web_server/src/infrastructure/config/i_application.go
  37. 51 0
      amd64/web_server/src/infrastructure/http/router.go
  38. 6 5
      amd64/web_server/src/infrastructure/persistence/mapper_collect_limit.go
  39. 9 9
      amd64/web_server/src/infrastructure/persistence/mapper_exam.go
  40. 4 4
      amd64/web_server/src/interfaces/api/h_collect_limit.go
  41. 22 22
      amd64/web_server/src/interfaces/api/h_exam.go
  42. 1 1
      amd64/web_server/src/interfaces/api/h_monitor.go

+ 0 - 1
amd64/score_server/entity/e_monitor.go

@@ -1 +0,0 @@
-package entity

+ 0 - 72
amd64/score_server/main.go

@@ -1,72 +0,0 @@
-package main
-
-import (
-	"cicv-data-closedloop/amd64/score_server/handler"
-	"cicv-data-closedloop/amd64/score_server/infra"
-	"cicv-data-closedloop/common/config/c_db"
-	"cicv-data-closedloop/common/config/c_log"
-	"cicv-data-closedloop/common/gin/middleware"
-	_ "embed"
-	"github.com/gin-gonic/gin"
-	_ "gopkg.in/yaml.v3"
-	"os"
-)
-
-func init() {
-	infra.InitApplication()
-	c_log.InitLog(
-		infra.ApplicationYaml.Log.Dir,
-		infra.ApplicationYaml.Log.Prefix,
-	)
-	c_db.InitSqlxMysql(
-		infra.ApplicationYaml.Mysql.Username,
-		infra.ApplicationYaml.Mysql.Password,
-		infra.ApplicationYaml.Mysql.Ip,
-		infra.ApplicationYaml.Mysql.Port,
-		infra.ApplicationYaml.Mysql.Dbname,
-		infra.ApplicationYaml.Mysql.Charset,
-	)
-	c_db.InitSqlFilesMap(infra.ApplicationYaml.Mysql.SqlfileDir)
-}
-
-func main() {
-	c_log.GlobalLogger.Info("配置文件为:", infra.ApplicationYaml)
-	// 创建 gin 实例
-	router := gin.Default()
-	// 使用中间件
-	router.Use(middleware.Cors())                                                                                // 解决cors
-	router.Use(middleware.LogRequest())                                                                          // 请求日志打印
-	router.Use(middleware.ValidateHeaders(infra.ApplicationYaml.Web.WhiteList, infra.ApplicationYaml.Web.Token)) // 全局请求头校验
-	// 通过路由组设置全局前缀
-	projectPrefix := router.Group(infra.ApplicationYaml.Web.RoutePrefix)
-	{
-		examPrefix := projectPrefix.Group("/exam")
-		{
-			examPrefix.POST("/tick", handler.Tick)       // 考试开始
-			go handler.ExamEndTicker()                   // 考试结束
-			examPrefix.POST("/display", handler.Display) // 云控展示线上评分
-			examPrefix.POST("/page", handler.Page)       // 分页查询
-			examPrefix.POST("/report", handler.Report)   // pdf下载
-			examPrefix.POST("/offline", handler.Offline) // 录入线下成绩
-		}
-	}
-	{
-		monitorPrefix := router.Group("/web_server/monitor") // todo web_server会改成score_server,后续修改
-		{
-			monitorPrefix.POST("/insert", handler.SaveDeviceMonitor)
-		}
-	}
-	{
-		monitorPrefix := router.Group("/web_server/collect_limit") // todo web_server会改成score_server,后续修改
-		{
-			monitorPrefix.POST("/can_collect", handler.TriggerCollect)
-			monitorPrefix.POST("/plus_collect_num", handler.CanCollectPlus)
-		}
-	}
-	// 端口
-	err := router.Run(":" + infra.ApplicationYaml.Web.Port)
-	if err != nil {
-		c_log.GlobalLogger.Error("程序崩溃,监听端口 "+infra.ApplicationYaml.Web.Port+" 失败:", err)
-		os.Exit(-1)
-	}
-}

+ 0 - 0
amd64/score_server/README.md → amd64/web_server/README.md


+ 0 - 0
amd64/score_server/background.png → amd64/web_server/resource/background.png


+ 0 - 0
amd64/score_server/logo.png → amd64/web_server/resource/logo.png


+ 0 - 0
amd64/score_server/simfang.ttf → amd64/web_server/resource/simfang.ttf


+ 0 - 0
amd64/score_server/sql/collect_limit-add_one.sql → amd64/web_server/resource/sql/collect_limit-add_one.sql


+ 0 - 0
amd64/score_server/sql/collect_limit-insert_new.sql → amd64/web_server/resource/sql/collect_limit-insert_new.sql


+ 0 - 0
amd64/score_server/sql/collect_limit-select-by-sn_code.sql → amd64/web_server/resource/sql/collect_limit-select-by-sn_code.sql


+ 0 - 0
amd64/score_server/sql/exam-insert-begin_time-and-topic-and-equipment_no-by-team_name.sql → amd64/web_server/resource/sql/exam-insert-begin_time-and-topic-and-equipment_no-by-team_name.sql


+ 0 - 0
amd64/score_server/sql/exam-insert-begin_time-and-topic-by-team_name.sql → amd64/web_server/resource/sql/exam-insert-begin_time-and-topic-by-team_name.sql


+ 0 - 0
amd64/score_server/sql/exam-insert-begin_time-by-team_name.sql → amd64/web_server/resource/sql/exam-insert-begin_time-by-team_name.sql


+ 0 - 0
amd64/score_server/sql/exam-reset-by-id.sql → amd64/web_server/resource/sql/exam-reset-by-id.sql


+ 0 - 0
amd64/score_server/sql/exam-select-all.sql → amd64/web_server/resource/sql/exam-select-all.sql


+ 0 - 0
amd64/score_server/sql/exam-select-details-by-id.sql → amd64/web_server/resource/sql/exam-select-details-by-id.sql


+ 0 - 0
amd64/score_server/sql/exam-select-latest-by-team_name.sql → amd64/web_server/resource/sql/exam-select-latest-by-team_name.sql


+ 0 - 0
amd64/score_server/sql/exam-select-max-id-by-team_name-and-topic.sql → amd64/web_server/resource/sql/exam-select-max-id-by-team_name-and-topic.sql


+ 0 - 0
amd64/score_server/sql/exam-select-page-by-team_name-and-topic.sql → amd64/web_server/resource/sql/exam-select-page-by-team_name-and-topic.sql


+ 0 - 0
amd64/score_server/sql/exam-select-page-by-team_name.sql → amd64/web_server/resource/sql/exam-select-page-by-team_name.sql


+ 0 - 0
amd64/score_server/sql/exam-select-page-by-topic.sql → amd64/web_server/resource/sql/exam-select-page-by-topic.sql


+ 0 - 0
amd64/score_server/sql/exam-select-page.sql → amd64/web_server/resource/sql/exam-select-page.sql


+ 0 - 0
amd64/score_server/sql/exam-select-total-by-team_name-and-topic.sql → amd64/web_server/resource/sql/exam-select-total-by-team_name-and-topic.sql


+ 0 - 0
amd64/score_server/sql/exam-select-total-by-team_name.sql → amd64/web_server/resource/sql/exam-select-total-by-team_name.sql


+ 0 - 0
amd64/score_server/sql/exam-select-total-by-topic.sql → amd64/web_server/resource/sql/exam-select-total-by-topic.sql


+ 0 - 0
amd64/score_server/sql/exam-select-total.sql → amd64/web_server/resource/sql/exam-select-total.sql


+ 0 - 0
amd64/score_server/sql/exam-update-deduct_score_offline-by-id.sql → amd64/web_server/resource/sql/exam-update-deduct_score_offline-by-id.sql


+ 0 - 0
amd64/score_server/sql/exam-update-end_time-by-id.sql → amd64/web_server/resource/sql/exam-update-end_time-by-id.sql


+ 0 - 0
amd64/score_server/sql/exam-update-end_time-by-team_name-and-topic.sql → amd64/web_server/resource/sql/exam-update-end_time-by-team_name-and-topic.sql


+ 0 - 0
amd64/score_server/sql/exam-update-end_time-by-team_name.sql → amd64/web_server/resource/sql/exam-update-end_time-by-team_name.sql


+ 0 - 0
amd64/score_server/sql/insert_device_monitor.sql → amd64/web_server/resource/sql/insert_device_monitor.sql


+ 33 - 0
amd64/web_server/src/cmd/main.go

@@ -0,0 +1,33 @@
+package main
+
+import (
+	"cicv-data-closedloop/amd64/web_server/src/infrastructure/config"
+	"cicv-data-closedloop/amd64/web_server/src/infrastructure/http"
+	"cicv-data-closedloop/common/config/c_db"
+	"cicv-data-closedloop/common/config/c_log"
+	_ "embed"
+	_ "gopkg.in/yaml.v3"
+)
+
+func init() {
+	config.InitApplication()
+	c_log.InitLog(
+		config.ApplicationYaml.Log.Dir,
+		config.ApplicationYaml.Log.Prefix,
+	)
+	c_db.InitSqlxMysql(
+		config.ApplicationYaml.Mysql.Username,
+		config.ApplicationYaml.Mysql.Password,
+		config.ApplicationYaml.Mysql.Ip,
+		config.ApplicationYaml.Mysql.Port,
+		config.ApplicationYaml.Mysql.Dbname,
+		config.ApplicationYaml.Mysql.Charset,
+	)
+	c_db.InitSqlFilesMap(config.ApplicationYaml.Mysql.SqlfileDir)
+}
+
+func main() {
+	c_log.GlobalLogger.Info("配置文件为:", config.ApplicationYaml)
+	go http.CreateServer()
+	select {}
+}

+ 2 - 2
amd64/score_server/entity/e_collect_limit.go → amd64/web_server/src/domain/collect/e_collect_limit.go

@@ -1,6 +1,6 @@
-package entity
+package collect
 
-type CollectLimitPo struct {
+type LimitPo struct {
 	Id                   int    `db:"id" `                    // 自增id
 	SnCode               string `db:"sn_code" `               // 设备 sn 码
 	DayCollectedNumber   string `db:"day_collected_number" `  // 本日已采集包数量

+ 1 - 1
amd64/score_server/entity/e_exam.go → amd64/web_server/src/domain/competition/e_exam.go

@@ -1,4 +1,4 @@
-package entity
+package competition
 
 import (
 	"database/sql"

+ 1 - 0
amd64/web_server/src/domain/monitor/e_monitor.go

@@ -0,0 +1 @@
+package monitor

+ 0 - 0
amd64/score_server/infra/application.yaml → amd64/web_server/src/infrastructure/config/application.yaml


+ 1 - 1
amd64/score_server/infra/i_application.go → amd64/web_server/src/infrastructure/config/i_application.go

@@ -1,4 +1,4 @@
-package infra
+package config
 
 import (
 	_ "embed"

+ 51 - 0
amd64/web_server/src/infrastructure/http/router.go

@@ -0,0 +1,51 @@
+package http
+
+import (
+	"cicv-data-closedloop/amd64/web_server/src/infrastructure/config"
+	"cicv-data-closedloop/amd64/web_server/src/interfaces/api"
+	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/common/gin/middleware"
+	"github.com/gin-gonic/gin"
+	"os"
+)
+
+func CreateServer() {
+	// 创建 gin 实例
+	router := gin.Default()
+	// 使用中间件
+	router.Use(middleware.Cors())                                                                                  // 解决cors
+	router.Use(middleware.LogRequest())                                                                            // 请求日志打印
+	router.Use(middleware.ValidateHeaders(config.ApplicationYaml.Web.WhiteList, config.ApplicationYaml.Web.Token)) // 全局请求头校验
+	// 通过路由组设置全局前缀
+	webPrefix := router.Group(config.ApplicationYaml.Web.RoutePrefix)
+	{
+		examPrefix := webPrefix.Group("/exam")
+		{
+			examPrefix.POST("/tick", api.Tick)       // 考试开始
+			go api.ExamEndTicker()                   // 考试结束
+			examPrefix.POST("/display", api.Display) // 云控展示线上评分
+			examPrefix.POST("/page", api.Page)       // 分页查询
+			examPrefix.POST("/report", api.Report)   // pdf下载
+			examPrefix.POST("/offline", api.Offline) // 录入线下成绩
+		}
+	}
+	{
+		monitorPrefix := webPrefix.Group("/monitor")
+		{
+			monitorPrefix.POST("/insert", api.SaveDeviceMonitor)
+		}
+	}
+	{
+		collectLimitPrefix := webPrefix.Group("/collect_limit")
+		{
+			collectLimitPrefix.POST("/can_collect", api.TriggerCollect)
+			collectLimitPrefix.POST("/plus_collect_num", api.CanCollectPlus)
+		}
+	}
+	// 端口
+	err := router.Run(":" + config.ApplicationYaml.Web.Port)
+	if err != nil {
+		c_log.GlobalLogger.Error("程序崩溃,监听端口 "+config.ApplicationYaml.Web.Port+" 失败:", err)
+		os.Exit(-1)
+	}
+}

+ 6 - 5
amd64/score_server/dao/mapper/mapper_collect_limit.go → amd64/web_server/src/infrastructure/persistence/mapper_collect_limit.go

@@ -1,21 +1,21 @@
-package mapper
+package persistence
 
 import (
-	webServerEntity "cicv-data-closedloop/amd64/score_server/entity"
+	"cicv-data-closedloop/amd64/web_server/src/domain/collect"
 	"cicv-data-closedloop/common/config/c_db"
 	"cicv-data-closedloop/common/config/c_log"
 	"cicv-data-closedloop/common/util"
 )
 
-func SelectFromCollectLimitBySnCode(snCode string) webServerEntity.CollectLimitPo {
+func SelectFromCollectLimitBySnCode(snCode string) collect.LimitPo {
 	// 如果查出是空,则插入一条新数据
-	var resultPos []webServerEntity.CollectLimitPo
+	var resultPos []collect.LimitPo
 	selectSql, _ := util.ReadFile(c_db.SqlFilesMap["collect_limit-select-by-sn_code.sql"])
 	err := c_db.MysqlDb.Select(&resultPos, selectSql, snCode)
 	if err != nil || len(resultPos) == 0 {
 		c_log.GlobalLogger.Error(err)
 		InsertNew(snCode)
-		return *new(webServerEntity.CollectLimitPo)
+		return *new(collect.LimitPo)
 	}
 	return resultPos[0]
 }
@@ -38,6 +38,7 @@ func UpdateCollectLimit(snCode string) error {
 		c_log.GlobalLogger.Error("插入数据报错:", err)
 		return err
 	}
+	return nil
 }
 
 //

+ 9 - 9
amd64/score_server/dao/mapper/mapper_exam.go → amd64/web_server/src/infrastructure/persistence/mapper_exam.go

@@ -1,14 +1,14 @@
-package mapper
+package persistence
 
 import (
-	webServerEntity "cicv-data-closedloop/amd64/score_server/entity"
+	"cicv-data-closedloop/amd64/web_server/src/domain/competition"
 	"cicv-data-closedloop/common/config/c_db"
 	"cicv-data-closedloop/common/config/c_log"
 	"cicv-data-closedloop/common/util"
 )
 
-func SelectPage(teamName string, topic string, offset int, size int) ([]webServerEntity.ExamPo, []int) {
-	var resultPos []webServerEntity.ExamPo
+func SelectPage(teamName string, topic string, offset int, size int) ([]competition.ExamPo, []int) {
+	var resultPos []competition.ExamPo
 	var resultPosTotal []int
 	var pageSql string
 	var totalSql string
@@ -45,8 +45,8 @@ func SelectPage(teamName string, topic string, offset int, size int) ([]webServe
 	return resultPos, resultPosTotal
 }
 
-func SelectAllFromExam() []webServerEntity.ExamPo {
-	var result []webServerEntity.ExamPo
+func SelectAllFromExam() []competition.ExamPo {
+	var result []competition.ExamPo
 	selectSql, err := util.ReadFile(c_db.SqlFilesMap["exam-select-all.sql"])
 	if err != nil {
 		c_log.GlobalLogger.Error("读取sql文件报错:", err)
@@ -60,7 +60,7 @@ func SelectAllFromExam() []webServerEntity.ExamPo {
 	return result
 }
 
-func UpdateDeductScoreOffline(e *webServerEntity.ExamOfflinePao) {
+func UpdateDeductScoreOffline(e *competition.ExamOfflinePao) {
 	// 更新记录结束时间为默认时间
 	sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["exam-update-deduct_score_offline-by-id.sql"])
 	if err := c_db.DoTx(sqlTemplate, []any{
@@ -108,9 +108,9 @@ func UpdateDeductScoreOffline(e *webServerEntity.ExamOfflinePao) {
 	}
 }
 
-func SelectLatestByTeamName(teamName string) []webServerEntity.ExamPo {
+func SelectLatestByTeamName(teamName string) []competition.ExamPo {
 	// 车辆不是在起点启动的自动驾驶模式
-	var result []webServerEntity.ExamPo
+	var result []competition.ExamPo
 	selectSql, err := util.ReadFile(c_db.SqlFilesMap["exam-select-latest-by-team_name.sql"])
 	if err != nil {
 		c_log.GlobalLogger.Error("读取sql文件报错:", err)

+ 4 - 4
amd64/score_server/handler/h_collect_limit.go → amd64/web_server/src/interfaces/api/h_collect_limit.go

@@ -1,7 +1,7 @@
-package handler
+package api
 
 import (
-	"cicv-data-closedloop/amd64/score_server/dao/mapper"
+	"cicv-data-closedloop/amd64/web_server/src/infrastructure/persistence"
 	"cicv-data-closedloop/common/config/c_log"
 	commonEntity "cicv-data-closedloop/common/entity"
 	"cicv-data-closedloop/common/util"
@@ -33,7 +33,7 @@ func TriggerCollect(c *gin.Context) {
 	}
 	c_log.GlobalLogger.Info("请求体为:", param)
 	// 1 根据sn码查询当前设备已采集的包数量
-	collectLimitPo := mapper.SelectFromCollectLimitBySnCode(param.SnCode)
+	collectLimitPo := persistence.SelectFromCollectLimitBySnCode(param.SnCode)
 	c_log.GlobalLogger.Info("数据库记录为:", collectLimitPo)
 	// 2 将查出的数据与参数中的限额数进行对比,判断是否允许采集,如果允许,则返回 code 200
 	if util.StringToInt(collectLimitPo.YearCollectedNumber) < util.StringToInt(param.CollectLimitYear) {
@@ -78,7 +78,7 @@ func CanCollectPlus(c *gin.Context) {
 	}
 	c_log.GlobalLogger.Info("请求体为:", param)
 	// 所有值添加一
-	err := mapper.UpdateCollectLimit(param.SnCode)
+	err := persistence.UpdateCollectLimit(param.SnCode)
 	if err != nil {
 		c.JSON(http.StatusOK, commonEntity.Response{
 			Code: 400,

+ 22 - 22
amd64/score_server/handler/h_exam.go → amd64/web_server/src/interfaces/api/h_exam.go

@@ -1,9 +1,9 @@
-package handler
+package api
 
 import (
-	"cicv-data-closedloop/amd64/score_server/dao/mapper"
-	webServerEntity "cicv-data-closedloop/amd64/score_server/entity"
-	"cicv-data-closedloop/amd64/score_server/infra"
+	"cicv-data-closedloop/amd64/web_server/src/domain/competition"
+	"cicv-data-closedloop/amd64/web_server/src/infrastructure/config"
+	"cicv-data-closedloop/amd64/web_server/src/infrastructure/persistence"
 	"cicv-data-closedloop/common/config/c_db"
 	"cicv-data-closedloop/common/config/c_log"
 	commonEntity "cicv-data-closedloop/common/entity"
@@ -35,7 +35,7 @@ var (
 
 // 考试心跳
 func Tick(c *gin.Context) {
-	param := new(webServerEntity.ExamPao)
+	param := new(competition.ExamPao)
 	// 映射到结构体
 	if err := c.ShouldBindJSON(&param); err != nil {
 		c_log.GlobalLogger.Error("请求体解析失败,错误信息为:", err)
@@ -52,7 +52,7 @@ func Tick(c *gin.Context) {
 	_, _ = fmt.Sscanf(numStr, "%e", &positionY)
 	if !util.ContainsKey(&cacheTeamName, teamName) && math.Abs(positionX-InitialPositionX) < 5.00 && math.Abs(positionY-InitialPositionY) < 5.00 { // (在起点开始)
 
-		result := mapper.SelectLatestByTeamName(teamName)
+		result := persistence.SelectLatestByTeamName(teamName)
 		if len(result) == 1 {
 			// 判断上一条记录的开始时间和当前时间是否小于2分钟
 			temp := time.Since(result[0].BeginTime).Minutes()
@@ -105,7 +105,7 @@ func Tick(c *gin.Context) {
 
 	} else if !util.ContainsKey(&cacheTeamName, teamName) && (math.Abs(positionX-InitialPositionX) > 5.00 || math.Abs(positionY-InitialPositionY) > 5.00) { // 不在起点(开始)
 		// 车辆不是在起点启动的自动驾驶模式
-		result := mapper.SelectLatestByTeamName(teamName)
+		result := persistence.SelectLatestByTeamName(teamName)
 		if len(result) == 1 {
 			if time.Since(result[0].EndTime).Minutes() <= 5 { // 5分钟之内重启就还算上一条数据
 				c_log.GlobalLogger.Info("上一条数据记录为:", result[0])
@@ -189,7 +189,7 @@ func ExamEndTicker() {
 				cacheTeamName.Delete(teamName)
 				//delete(cacheTeamName, teamName)
 				// 1 查询指定队伍的开始时间最新的考试是否有结束时间,如果有则不在处理,如果没有则更新
-				var result []webServerEntity.ExamPo
+				var result []competition.ExamPo
 				selectSql, err := util.ReadFile(c_db.SqlFilesMap["exam-select-latest-by-team_name.sql"])
 				if err != nil {
 					c_log.GlobalLogger.Error("读取sql文件报错:", err)
@@ -247,13 +247,13 @@ func ExamEndTicker() {
 
 // 分页查询,如果日期为默认值,则返回空""
 func Page(c *gin.Context) {
-	param := new(webServerEntity.ExamPagePao)
+	param := new(competition.ExamPagePao)
 	_ = c.ShouldBindJSON(&param)
-	resultPos, resultPosTotal := mapper.SelectPage(param.TeamName, param.Topic, (param.CurrentPage-1)*param.PageSize, param.PageSize)
-	var resultVos []webServerEntity.ExamVo
+	resultPos, resultPosTotal := persistence.SelectPage(param.TeamName, param.Topic, (param.CurrentPage-1)*param.PageSize, param.PageSize)
+	var resultVos []competition.ExamVo
 	for _, po := range resultPos {
 
-		resultVos = append(resultVos, webServerEntity.ExamVo{
+		resultVos = append(resultVos, competition.ExamVo{
 			Id:                      po.Id,
 			TeamName:                po.TeamName,
 			Topic:                   po.Topic,
@@ -314,8 +314,8 @@ func Page(c *gin.Context) {
 // 评分报告pdf下载
 func Report(c *gin.Context) {
 	pdfName := util.NewShortUUID() + ".pdf"
-	pdfPath := infra.ApplicationYaml.Pdf.LocalDir + pdfName
-	param := new(webServerEntity.ExamReportPao)
+	pdfPath := config.ApplicationYaml.Pdf.LocalDir + pdfName
+	param := new(competition.ExamReportPao)
 	// 映射到结构体
 	if err := c.ShouldBindJSON(&param); err != nil {
 		c_log.GlobalLogger.Error("接收请求参数报错:", err)
@@ -355,7 +355,7 @@ func Report(c *gin.Context) {
 		return
 	}
 	// 解析详情为数组
-	var detailsDtos []webServerEntity.DetailsDto
+	var detailsDtos []competition.DetailsDto
 	_ = json.Unmarshal([]byte(details.String), &detailsDtos)
 
 	layout := "2006-01-02 15:04:05"
@@ -369,7 +369,7 @@ func Report(c *gin.Context) {
 		pdf := gopdf.GoPdf{}
 		pdf.Start(gopdf.Config{PageSize: *gopdf.PageSizeA4})
 		// 添加字体文件到pdf
-		err := pdf.AddTTFFont("simfang", infra.ApplicationYaml.Pdf.Ttf)
+		err := pdf.AddTTFFont("simfang", config.ApplicationYaml.Pdf.Ttf)
 		if err != nil {
 			log.Print(err.Error())
 			return
@@ -389,8 +389,8 @@ func Report(c *gin.Context) {
 		pdf.AddPage()
 		{
 			err = pdf.SetFont("simfang", "", 36)
-			err = pdf.Image(infra.ApplicationYaml.Pdf.BackgroundPng, 0, 0, nil) // 背景图片
-			err = pdf.Image(infra.ApplicationYaml.Pdf.LogoPng, 20, 20, &gopdf.Rect{W: 320, H: 100})
+			err = pdf.Image(config.ApplicationYaml.Pdf.BackgroundPng, 0, 0, nil) // 背景图片
+			err = pdf.Image(config.ApplicationYaml.Pdf.LogoPng, 20, 20, &gopdf.Rect{W: 320, H: 100})
 			{
 				pdf.SetXY(100, 250)
 				_ = pdf.Text("车路云一体化算法挑战赛")
@@ -553,7 +553,7 @@ func Report(c *gin.Context) {
 			}
 		}
 		// ------- 详情页 第二页 -------
-		var detailsDtos2 []webServerEntity.DetailsDto // 扣分的场景
+		var detailsDtos2 []competition.DetailsDto // 扣分的场景
 		for _, detailsDto := range detailsDtos {
 			if detailsDto.Reason != "" {
 				detailsDtos2 = append(detailsDtos2, detailsDto)
@@ -655,7 +655,7 @@ func Report(c *gin.Context) {
 
 // 云控展示线上评分
 func Display(c *gin.Context) {
-	exam := mapper.SelectAllFromExam()
+	exam := persistence.SelectAllFromExam()
 	if exam == nil || len(exam) == 0 {
 		c.JSON(http.StatusOK, commonEntity.Response{
 			Code: 500,
@@ -672,7 +672,7 @@ func Display(c *gin.Context) {
 
 // 云控录入线下成绩
 func Offline(c *gin.Context) {
-	param := new(webServerEntity.ExamOfflinePao)
+	param := new(competition.ExamOfflinePao)
 	// 映射到结构体
 	if err := c.ShouldBindJSON(&param); err != nil {
 		c_log.GlobalLogger.Error("接收请求参数报错:", err)
@@ -691,7 +691,7 @@ func Offline(c *gin.Context) {
 		return
 	}
 	// todo 这里可能会修改多条数据
-	mapper.UpdateDeductScoreOffline(param)
+	persistence.UpdateDeductScoreOffline(param)
 	c.JSON(http.StatusOK, commonEntity.Response{
 		Code: 200,
 		Msg:  "线下成绩录入成功。",

+ 1 - 1
amd64/score_server/handler/h_monitor.go → amd64/web_server/src/interfaces/api/h_monitor.go

@@ -1,4 +1,4 @@
-package handler
+package api
 
 import (
 	"cicv-data-closedloop/common/config/c_db"