Files
shop/models/employee.go
2020-09-29 19:35:36 +08:00

142 lines
3.2 KiB
Go

package models
import (
"github.com/jinzhu/gorm"
)
type Employee struct {
Model
AvatarUrl string `json:"avatar_url"`
Username string `json:"username"`
Password string `json:"password"`
Department string `json:"department"`
Position string `json:"position"`
State int `json:"state"`
}
func CheckEmployee(username, password string) bool {
var employee Employee
db.Select("id").Where(Employee{Username: username, Password: password}).First(&employee)
if employee.ID > 0 {
return true
}
return false
}
func ExistEmployeeByID(id int) (bool, error) {
var employee Employee
err := db.Select("id").Where("id = ? AND deleted_on = ?", id, 0).First(&employee).Error
if err != nil && err != gorm.ErrRecordNotFound {
return false, err
}
if employee.ID > 0 {
return true, nil
}
return false, nil
}
func ExistEmployeeByUsername(username string) bool {
var employee Employee
db.Select("username").Where("username = ?", username).First(&employee)
if employee.ID > 0 {
return true
}
return false
}
func GetEmployeeTotal(maps interface{}) (int, error) {
var count int
if err := db.Model(&Employee{}).Where(maps).Count(&count).Error; err != nil {
return 0, err
}
return count, nil
}
func GetEmployees(pageNum int, pageSize int, maps interface{}) ([]*Employee, error) {
var employees []*Employee
err := db.Where(maps).Offset(pageNum).Limit(pageSize).Find(&employees).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
return employees, nil
}
func GetEmployee(id int) (*Employee, error) {
var employee Employee
err := db.Where("id = ? AND deleted_on = ? ", id, 0).First(&employee).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
err = db.Model(&employee).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
return &employee, nil
}
func GetEmployeeByUsername(username string) (*Employee, error) {
var employee Employee
err := db.Where("username = ? AND deleted_on = ? ", username, 0).First(&employee).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
err = db.Model(&employee).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
return &employee, nil
}
func EditEmployee(id int, data map[string]interface{}) error {
if err := db.Model(&Employee{}).Where("id = ? AND deleted_on = ?", id, 0).Updates(Employee{
AvatarUrl: data["avatar_url"].(string),
Username: data["username"].(string),
Password: data["password"].(string),
Department: data["department"].(string),
Position: data["position"].(string),
State: data["state"].(int),
}).Error; err != nil {
return err
}
return nil
}
func AddEmployee(data map[string]interface{}) error {
employee := Employee{
AvatarUrl: data["avatar_url"].(string),
Username: data["username"].(string),
Password: data["password"].(string),
Department: data["department"].(string),
Position: data["position"].(string),
}
if err := db.Create(&employee).Error; err != nil {
return err
}
return nil
}
func DeleteEmployee(id int) error {
if err := db.Where("id = ?", id).Delete(Employee{}).Error; err != nil {
return err
}
return nil
}
func CleanAllEmployee() bool {
db.Unscoped().Where("deleted_on != ?", 0).Delete(&Employee{})
return true
}