| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package repository
- import (
- "wails-app/internal/dao"
- "wails-app/internal/global"
- )
- type TicketRepository struct{}
- func (r *TicketRepository) Create(ticket *dao.DigitalTicket) error {
- return global.GVA_DB.Create(ticket).Error
- }
- func (r *TicketRepository) GetByTicketNo(ticketNo string) (*dao.DigitalTicket, error) {
- var t dao.DigitalTicket
- err := global.GVA_DB.Where("ticket_no = ?", ticketNo).First(&t).Error
- if err != nil {
- return nil, err
- }
- return &t, nil
- }
- func (r *TicketRepository) GetByID(id uint) (*dao.DigitalTicket, error) {
- var t dao.DigitalTicket
- err := global.GVA_DB.First(&t, id).Error
- if err != nil {
- return nil, err
- }
- return &t, nil
- }
- func (r *TicketRepository) UpdateState(id uint, state string, updates map[string]interface{}) error {
- updates["state"] = state
- return global.GVA_DB.Model(&dao.DigitalTicket{}).Where("id = ?", id).Updates(updates).Error
- }
- type TicketListQuery struct {
- PlateNumber string `form:"plate_number"`
- State string `form:"state"`
- Page int `form:"page"`
- PageSize int `form:"page_size"`
- }
- func (r *TicketRepository) List(q TicketListQuery) ([]dao.DigitalTicket, int64, error) {
- db := global.GVA_DB.Model(&dao.DigitalTicket{})
- if q.PlateNumber != "" {
- db = db.Where("plate_number LIKE ?", "%"+q.PlateNumber+"%")
- }
- if q.State != "" {
- db = db.Where("state = ?", q.State)
- }
- var total int64
- db.Count(&total)
- if q.Page <= 0 {
- q.Page = 1
- }
- if q.PageSize <= 0 {
- q.PageSize = 10
- }
- var list []dao.DigitalTicket
- err := db.Order("id DESC").Offset((q.Page - 1) * q.PageSize).Limit(q.PageSize).Find(&list).Error
- return list, total, err
- }
|