fix(ticket): harden lightweight backend core

This commit is contained in:
mlogclub
2026-05-02 19:19:18 +08:00
parent a06ce7074e
commit fa9d431cbe
9 changed files with 232 additions and 51 deletions
@@ -2,11 +2,13 @@ package repositories
import (
"cs-agent/internal/models"
"errors"
"time"
"github.com/mlogclub/simple/sqls"
"github.com/mlogclub/simple/web/params"
"gorm.io/gorm"
"gorm.io/gorm/clause"
)
var TicketNoSequenceRepository = newTicketNoSequenceRepository()
@@ -74,6 +76,18 @@ func (r *ticketNoSequenceRepository) GetByDateKey(db *gorm.DB, dateKey string) *
return ret
}
func (r *ticketNoSequenceRepository) GetByDateKeyForUpdate(db *gorm.DB, dateKey string) (*models.TicketNoSequence, error) {
ret := &models.TicketNoSequence{}
err := db.Clauses(clause.Locking{Strength: "UPDATE"}).Take(ret, "date_key = ?", dateKey).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, nil
}
if err != nil {
return nil, err
}
return ret, nil
}
func (r *ticketNoSequenceRepository) Create(db *gorm.DB, t *models.TicketNoSequence) error {
return db.Create(t).Error
}
@@ -25,7 +25,7 @@ func (r *ticketViewRepository) Get(db *gorm.DB, id int64) *models.TicketView {
return ret
}
func (r *ticketViewRepository) Take(db *gorm.DB, where ...interface{}) *models.TicketView {
func (r *ticketViewRepository) Take(db *gorm.DB, where ...any) *models.TicketView {
ret := &models.TicketView{}
if err := db.Take(ret, where...).Error; err != nil {
return nil
@@ -74,10 +74,10 @@ func (r *ticketViewRepository) Update(db *gorm.DB, t *models.TicketView) error {
return db.Save(t).Error
}
func (r *ticketViewRepository) Updates(db *gorm.DB, id int64, columns map[string]interface{}) error {
func (r *ticketViewRepository) Updates(db *gorm.DB, id int64, columns map[string]any) error {
return db.Model(&models.TicketView{}).Where("id = ?", id).Updates(columns).Error
}
func (r *ticketViewRepository) Delete(db *gorm.DB, id int64) {
db.Delete(&models.TicketView{}, "id = ?", id)
func (r *ticketViewRepository) Delete(db *gorm.DB, id int64) error {
return db.Delete(&models.TicketView{}, "id = ?", id).Error
}