package aftersale import ( "errors" "zhiyuan/models" "zhiyuan/pkg/app" "zhiyuan/pkg/db" "zhiyuan/services/form" ) var ASQa models.ASQa func GetQaList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.ASQa, error) { if page.PageNum > 0 && page.PageSize > 0 { where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize)) } return ASQa.GetMulti(where, fields, retVal) } func CountQa(where map[string]interface{}) (int64, error) { return db.Count(ASQa.TableName(), where) } func GetQaOne(where map[string]interface{}, fields []string, dest interface{}) (*models.ASQa, error) { return ASQa.GetOne(where, fields, dest) } func AddQa(form form.ASQaAdd) (int64, error) { qaMap := map[string]interface{}{ "title": form.Title, "content": form.Content, } return db.InsertOne(ASQa.TableName(), qaMap) } func EditQa(form form.ASQaAdd, id int) (int64, error) { qaInfo, _ := GetQaOne(map[string]interface{}{"id": id}, nil, nil) if qaInfo.Title != form.Title && CheckQaDuplicate(form.Title) { return 0, errors.New("类别已存在") } qaMap := map[string]interface{}{ "title": form.Title, "content": form.Content, } return db.Update(ASQa.TableName(), map[string]interface{}{"id": id}, qaMap) } func CheckQaDuplicate(name string) bool { typeInfo, err := GetQaOne(map[string]interface{}{"title": name}, nil, nil) return typeInfo != nil && err == nil } func DelQa(id int) (int64, error) { return db.DeleteSoft(ASQa.TableName(), map[string]interface{}{"id": id}) }