...
|
...
|
@@ -84,6 +84,37 @@ func (repository *EmployeeRepository) FindOne(queryOptions map[string]interface{ |
|
|
}
|
|
|
}
|
|
|
|
|
|
func (repository *EmployeeRepository) FindByIds(queryOptions map[string]interface{}) (int64, []*domain.Employee, error) {
|
|
|
tx := repository.transactionContext.PgTx
|
|
|
var employeeModels []*models.Employee
|
|
|
employees := make([]*domain.Employee, 0)
|
|
|
query := tx.Model(&employeeModels)
|
|
|
if ids, ok := queryOptions["ids"]; ok && len(ids.([]int)) != 0 {
|
|
|
query = query.Where("employee.uid IN (?)", pg.In(ids.([]int)) )
|
|
|
}
|
|
|
if where, ok := queryOptions["where"]; ok && where.(map[string]interface{}) != nil {
|
|
|
if personNameMatch, ok := where.(map[string]interface{})["personNameMatch"]; ok && (personNameMatch != "") {
|
|
|
query = query.Where("employee.employee_name LIKE ?", fmt.Sprintf("%%%s%%", personNameMatch.(string)))
|
|
|
}
|
|
|
if companyId, ok := where.(map[string]interface{})["companyId"]; ok && companyId.(float64) != 0 {
|
|
|
query = query.Where("employee.company_id = ?", companyId)
|
|
|
}
|
|
|
}
|
|
|
query = query.Where(`employee.status = ?`, 1)
|
|
|
if count, err := query.Order("uid DESC").SelectAndCount(); err != nil {
|
|
|
return 0, employees, err
|
|
|
} else {
|
|
|
for _, employeeModel := range employeeModels {
|
|
|
if employee, err := repository.transformPgModelToDomainModel(employeeModel); err != nil {
|
|
|
return 0, employees, err
|
|
|
} else {
|
|
|
employees = append(employees, employee)
|
|
|
}
|
|
|
}
|
|
|
return int64(count), employees, nil
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func (repository *EmployeeRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Employee, error) {
|
|
|
tx := repository.transactionContext.PgTx
|
|
|
var employeeModels []*models.Employee
|
...
|
...
|
|