package mysql import ( "context" "fmt" "gorm.io/gen" "pji_desktop_http/biz/dal/query" "pji_desktop_http/biz/model" "pji_desktop_http/common/config" ) func AddMapUpdateOneRecord(ctx context.Context, record model.MapUpdate) error { r := query.MapUpdate err := r.WithContext(ctx).Create(&record) return err } func UpdateMapUpdateOneRecord(ctx context.Context, record model.MapUpdate) (gen.ResultInfo, error) { r := query.MapUpdate info, err := r.WithContext(ctx).Where(r.ID.Eq(record.ID)).Updates(record) if err != nil { return info, err } return info, nil } func QueryMapUpdateRecordById(ctx context.Context, id string) (*model.MapUpdate, error) { r := query.MapUpdate record, err := r.WithContext(ctx).Where(r.ID.Eq(id)).First() if err != nil { return &model.MapUpdate{}, err } fmt.Println("Query map update records successfully:", &record) return record, err } func QueryMapUpdateRecords(ctx context.Context, record *model.MapUpdate, pageFlag bool, page, pageSize int) ([]*model.MapUpdate, int64, error) { r := query.MapUpdate q := r.WithContext(ctx) var records []*model.MapUpdate var count int64 var err error if record.DeviceName != "" { q = q.Where(r.DeviceName.Like("%" + record.DeviceName + "%")) } if record.DeviceType != "" { q = q.Where(r.DeviceType.Eq(record.DeviceType)) } if pageFlag { offset := (page - 1) * pageSize records, count, err = q.Order(r.UpdateTime.Desc()).FindByPage(offset, pageSize) } else { records, err = q.Order(r.UpdateTime.Desc()).Find() } if err != nil { fmt.Println("Query map update records failed:", err.Error()) return nil, 0, err } fmt.Println("Query map update records successfully:", len(records)) return records, count, err } func QueryMapUpdateRecordsByRescanFlag(ctx context.Context, flag int32) ([]*model.MapUpdate, error) { r := query.MapUpdate var records []*model.MapUpdate records, err := r.WithContext(ctx).Where(r.RescanNotifyFlag.Eq(flag)).Find() if err != nil { return records, err } fmt.Println("Query map update records successfully:", len(records)) return records, err } func QueryMapUpdateRecordsByUpdateFlag(ctx context.Context, flag int32) ([]*model.MapUpdate, error) { r := query.MapUpdate var records []*model.MapUpdate records, err := r.WithContext(ctx).Where(r.UpdateFlag.Eq(flag)).Find() if err != nil { return records, err } fmt.Println("Query map update records successfully:", len(records)) return records, err } func QueryMapRescanList(ctx context.Context, record *model.MapUpdate, pageFlag bool, page, pageSize int) ([]*model.MapUpdate, int64, error) { r := query.MapUpdate q := r.WithContext(ctx) var records []*model.MapUpdate var count int64 var err error q = q.Where(r.RescanNotifyFlag.Eq(config.MAP_RESCAN_FLAG)) if record.DeviceName != "" { q = q.Where(r.DeviceName.Like("%" + record.DeviceName + "%")) } if record.DeviceType != "" { q = q.Where(r.DeviceType.Eq(record.DeviceType)) } if pageFlag { offset := (page - 1) * pageSize records, count, err = q.Order(r.UpdateTime.Desc()).FindByPage(offset, pageSize) } else { records, err = q.Order(r.UpdateTime.Desc()).Find() } if err != nil { fmt.Println("Query map rescan records failed:", err.Error()) return nil, 0, err } fmt.Println("Query map rescan records successfully:", len(records)) return records, count, err }