liujiandao
2023-12-02 002539c8dc7eae6e64da1608245be01a889c061c
model/client.go
@@ -71,6 +71,9 @@
   if slf.Name != "" {
      db.Where("name = ?", slf.Name)
   }
   if slf.Number != "" {
      db.Where("number = ?", slf.Number)
   }
   if len(slf.SearchMap) > 0 {
      for key, value := range slf.SearchMap {
@@ -114,17 +117,21 @@
               db = db.Joins("Member").Where("Member.username LIKE ?", "%"+v+"%")
            }
         case int, uint, int64, float64:
         case int, uint, int64, float64, bool:
            if key == "id" || key == "client_type_id" || key == "client_status_id" || key == "member_id" {
               db = db.Where(key+" = ?", v)
            }
            if key == "not_admin" {
               if v == float64(constvar.NotAdminYes) {
                  db = db.Where("clients.member_id != ?", constvar.UserTypeSuper)
               } else {
                  db = db.Where("clients.member_id = ?", constvar.UserTypeSuper)
            if key == "is_public" {
               if val, ok := v.(bool); ok {
                  if val {
                     db = db.Where("clients.member_id = ?", 0)
                  }
               }
            }
         case []int:
            if key == "member_ids" {
               db = db.Where("clients.member_id in ?", v)
            }
         }
@@ -234,3 +241,11 @@
   slf.Orm = slf.Orm.Where("id in (?)", ids)
   return slf
}
func (slf *ClientSearch) FindAll() ([]*Client, error) {
   var db = slf.build()
   var records = make([]*Client, 0)
   err := db.Find(&records).Error
   return records, err
}