Răsfoiți Sursa

fix: 修复任务列表接口空指针崩溃及统一任务状态定义

- 修正数据库别名配置(app→daytask),解决 BizDBByAlias 找不到数据库导致 nil panic
- SetDbAlias 使用写锁替代读锁,修复并发数据竞争
- DB() 方法增加错误日志和 nil 防护
- 任务状态去掉草稿,统一为: 0=筹备中 1=上架 2=下架 3=已结束
urban 2 săptămâni în urmă
părinte
comite
32cfe1f085

+ 3 - 3
base/config/sys_info.go

@@ -5,7 +5,7 @@ package config
 const (
 	BizHostPort   = 2001
 	AdminHostPort = 2002
-	BizAliasName  = "app"
-	BizDbName     = "app"
-	AdminDbName   = "app_admin"
+	BizAliasName  = "daytask"
+	BizDbName     = "day_task"
+	AdminDbName   = "day_task"
 )

+ 1 - 1
model/biz_modules/daytask/dt_task.go

@@ -52,7 +52,7 @@ type DtTask struct {
 	RequireIdcard   int8       `json:"requireIdcard" gorm:"column:require_idcard;type:tinyint;default:0;comment:需要身份认证: 0=否 1=是"`
 	IsTop             int8       `json:"isTop" gorm:"column:is_top;type:tinyint;default:0;comment:是否置顶: 0=否 1=是"`
 	IsRecommend       int8       `json:"isRecommend" gorm:"column:is_recommend;type:tinyint;default:0;comment:是否推荐: 0=否 1=是"`
-	Status            int8       `json:"status" gorm:"column:status;type:tinyint;default:0;index:idx_status;comment:状态: 0=草稿 1=上架 2=下架 3=已结束"`
+	Status            int8       `json:"status" gorm:"column:status;type:tinyint;default:0;index:idx_status;comment:状态: 0=筹备中 1=上架 2=下架 3=已结束"`
 	Sort              int        `json:"sort" gorm:"column:sort;type:int;default:0;comment:排序"`
 	Remark            string     `json:"remark" gorm:"column:remark;type:varchar(255);comment:备注"`
 	CreatedAt         int64      `json:"createdAt" gorm:"column:created_at;type:bigint;autoCreateTime;index:idx_created_at;comment:创建时间"`

+ 7 - 3
service/base/commonBIzService.go

@@ -32,13 +32,17 @@ func (s *BizCommonService) mustAlias() string {
 }
 
 func (s *BizCommonService) SetDbAlias(alias string) {
-	lock.RLock()
-	defer lock.RUnlock()
+	lock.Lock()
+	defer lock.Unlock()
 	s.DbAlias = alias
 }
 
 func (s *BizCommonService) DB() *gorm.DB {
-	db, _ := global.BizDBByAlias(s.mustAlias())
+	db, err := global.BizDBByAlias(s.mustAlias())
+	if err != nil {
+		core.Log.Errorf("获取业务数据库失败, alias: %s, err: %v", s.mustAlias(), err)
+		return nil
+	}
 	return db
 }
 

+ 4 - 0
service/daytask/dt_task.go

@@ -108,6 +108,10 @@ func (s *DtTaskService) Find(c *gin.Context) {
 		return
 	}
 	db := s.DB()
+	if db == nil {
+		response.Resp(c, "数据库连接失败")
+		return
+	}
 	if req.Id != nil && *req.Id != 0 {
 		db = db.Where("id", req.Id)
 	}