fix(ticket): harden lightweight backend core
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user