package workprocessrequire import ( "errors" "zhiyuan/models" "zhiyuan/pkg/app" "zhiyuan/pkg/db" "zhiyuan/services/form" ) var WorkProcessRequire models.WorkProcessRequire func Add(form form.WorkProcessRequireAdd) (int64, error) { if CheckWorkProcessRequireDuplicate(form.ProcessId, form.Name) { return 0, errors.New("要点已存在") } workProcessRequireMap := map[string]interface{}{ "`process_id`": form.ProcessId, "`name`": form.Name, "`content`": form.Content, "`pictures`": form.Pictures, "`state`": form.State, } workProcessRequireID, err := db.InsertOne(WorkProcessRequire.TableName(), workProcessRequireMap) if err != nil { return 0, nil } return workProcessRequireID, nil } func EditByID(form form.WorkProcessRequireAdd, id int) error { info, err := GetInfoByID(id, nil, nil) if info == nil { return errors.New("invalid id") } if info.Name != form.Name && CheckWorkProcessRequireDuplicate(form.ProcessId, form.Name) { return errors.New("要点已存在") } workProcessRequireMap := map[string]interface{}{ "`process_id`": form.ProcessId, "`name`": form.Name, "`content`": form.Content, "`pictures`": form.Pictures, "`state`": form.State, } _, err = db.Update(WorkProcessRequire.TableName(), map[string]interface{}{"id": id}, workProcessRequireMap) return err } func DeleteByID(id int) error { info, _ := GetInfoByID(id, nil, nil) if info == nil { return errors.New("invalid id") } _, err := db.DeleteSoft(WorkProcessRequire.TableName(), map[string]interface{}{"id": id}) return err } func Count(where map[string]interface{}) (int64, error) { return db.Count(WorkProcessRequire.TableName(), where) } func CountRaw(where string, param map[string]interface{}) (int64, error) { query := "`zy_work_process_require` WHERE " + where return db.CountRaw(query, param) } func GetList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.WorkProcessRequire, error) { if page.PageNum > 0 && page.PageSize > 0 { where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize)) } return WorkProcessRequire.GetMulti(where, fields, retVal) } func GetWorkProcesssRaw(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*models.WorkProcessRequire, error) { return WorkProcessRequire.GetMultiRaw(where, param, retVal) } func GetWorkSiteRequiresRaw(where map[string]string, param map[string]interface{}, retVal interface{}) error { field := "SELECT `zy_work_process_require`.*, `zy_work_site_process_point`.`id` as `point_id`, `zy_work_site_process_point`.`pictures` as `picture_list`, `zy_work_site_process_point`.`mark` as `mark` from `zy_work_process_require` left join `zy_work_site_process_point` on `zy_work_site_process_point`.`require_id` = `zy_work_process_require`.`id` AND `zy_work_site_process_point`.`deleted_at`=0" where["_group_by"] = "`zy_work_process_require`.`id`" return db.GetMultiRaw(field, where, param, retVal) } func GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*models.WorkProcessRequire, error) { return WorkProcessRequire.GetOne(where, fields, retVal) } func GetInfoByID(id int, fields []string, retVal interface{}) (*models.WorkProcessRequire, error) { return GetOne(map[string]interface{}{"id": id}, fields, retVal) } func CheckWorkProcessRequireDuplicate(processId int, name string) bool { workProcessRequireInfo, err := GetOne(map[string]interface{}{"process_id": processId, "name": name, "deleted_at": 0}, nil, nil) return workProcessRequireInfo != nil && err == nil }