日志初步结构

This commit is contained in:
2024-04-15 16:08:17 +08:00
parent 16967381d8
commit de7cd23deb
16 changed files with 414 additions and 68 deletions

View File

@@ -1,6 +1,8 @@
package model
import (
"strings"
"gorm.io/gorm"
)
@@ -9,3 +11,140 @@ type KillaraCatalogLanguageModel struct {
db *gorm.DB
TableName string // 表名
}
func (m *KillaraCatalogLanguageModel) InsertLanguage(language *KillaraCatalogLanguage) (uint64, error) {
if err := m.db.Model(&KillaraCatalogLanguage{}).Create(language).Error; err != nil {
return 0, err
}
return *language.LanguageId, nil
}
func (m *KillaraCatalogLanguageModel) UpdateLanguage(language *KillaraCatalogLanguage) error {
return m.db.Model(&KillaraCatalogLanguage{}).Where("language_id = ?", *language.LanguageId).Updates(language).Error
}
func (m *KillaraCatalogLanguageModel) DeleteLanguage(language *KillaraCatalogLanguage) error {
return m.db.Where("language_id = ?", *language.LanguageId).Delete(&KillaraCatalogLanguage{}).Error
}
func (m *KillaraCatalogLanguageModel) GetLanguage(languageID uint64) (*KillaraCatalogLanguage, error) {
var language KillaraCatalogLanguage
err := m.db.Where("language_id = ?", languageID).First(&language).Error
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return &language, err
}
func (m *KillaraCatalogLanguageModel) GetLanguagesForBackEnd(data map[string]interface{}) ([]*KillaraCatalogLanguage, error) {
var languages []*KillaraCatalogLanguage
query := m.db.Model(&KillaraCatalogLanguage{})
var conditions []interface{}
if filterName, ok := data["filter_name"].(string); ok && filterName != "" {
conditions = append(conditions, m.db.Where("name LIKE ?", filterName+"%"))
}
if filterCode, ok := data["filter_code"].(string); ok && filterCode != "" {
conditions = append(conditions, m.db.Where("code LIKE ?", filterCode+"%"))
}
if filterStatus, ok := data["filter_status"]; ok {
conditions = append(conditions, m.db.Where("status = ?", filterStatus))
}
if len(conditions) > 0 {
query = query.Where(strings.Join(make([]string, len(conditions)), " AND "), conditions...)
}
if sort, ok := data["sort"].(string); ok && sort != "" {
order := "DESC"
if sortOrder, ok := data["order"].(string); ok {
order = sortOrder
}
query = query.Order(sort + " " + order)
}
if start, ok := data["start"].(int); ok && start > 0 {
query = query.Offset(start)
}
if limit, ok := data["limit"].(int); ok && limit > 0 {
query = query.Limit(limit)
} else {
query = query.Limit(10)
}
err := query.Find(&languages).Error
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return languages, err
}
func (m *KillaraCatalogLanguageModel) GetTotalLanguagesForBackEnd(data map[string]interface{}) (int64, error) {
var count int64
query := m.db.Model(&KillaraCatalogLanguage{})
var conditions []interface{}
if filterName, ok := data["filter_name"].(string); ok && filterName != "" {
conditions = append(conditions, m.db.Where("name LIKE ?", filterName+"%"))
}
if filterCode, ok := data["filter_code"].(string); ok && filterCode != "" {
conditions = append(conditions, m.db.Where("code LIKE ?", filterCode+"%"))
}
if filterStatus, ok := data["filter_status"]; ok {
conditions = append(conditions, m.db.Where("status = ?", filterStatus))
}
if len(conditions) > 0 {
query = query.Where(strings.Join(make([]string, len(conditions)), " AND "), conditions...)
}
err := query.Count(&count).Error
if err == gorm.ErrRecordNotFound {
return 0, nil
}
return count, err
}
func (m *KillaraCatalogLanguageModel) GetLanguageForBackEnd(languageID uint64) (*KillaraCatalogLanguage, error) {
var language KillaraCatalogLanguage
err := m.db.Where("language_id = ?", languageID).First(&language).Error
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return &language, err
}
func (m *KillaraCatalogLanguageModel) GetLanguageByCodeForBackEnd(code string) (*KillaraCatalogLanguage, error) {
var language KillaraCatalogLanguage
err := m.db.Where("code = ?", code).First(&language).Error
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return &language, err
}
// 前台使用的方法
func (m *KillaraCatalogLanguageModel) GetLanguagesForFrontEnd() ([]*KillaraCatalogLanguage, error) {
var languages []*KillaraCatalogLanguage
err := m.db.Where("status = 1").Order("sort_order").Find(&languages).Error
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return languages, err
}
func (m *KillaraCatalogLanguageModel) GetLanguageForFrontEnd(languageID uint64) (*KillaraCatalogLanguage, error) {
var language KillaraCatalogLanguage
err := m.db.Where("status = 1 AND language_id = ?", languageID).First(&language).Error
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return &language, err
}

View File

@@ -32,6 +32,9 @@ func (m *KillaraCustomerModel) DeleteCustomer(customer *KillaraCustomer) error {
func (m *KillaraCustomerModel) GetCustomer(customerID uint64) (*KillaraCustomer, error) {
var customer KillaraCustomer
err := m.db.Where("customer_id = ? AND status = 1", customerID).First(&customer).Error
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return &customer, err
}

View File

@@ -44,7 +44,7 @@ func (m *KillaraCustomerTokenModel) InsertToken(data *KillaraCustomerToken) erro
if !errors.Is(err, gorm.ErrRecordNotFound) {
// 存在记录,先删除
err = tx.Delete(&existingToken).Error
if err != nil {
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
tx.Rollback() // 删除错误,回滚事务
return err
}