package worksiteprocesspoint import ( "errors" "zhiyuan/models" "zhiyuan/pkg/app" "zhiyuan/pkg/db" "zhiyuan/pkg/utils" "zhiyuan/services/form" "zhiyuan/services/work/worksite" "zhiyuan/services/work/worksitenode" ) var WorkSiteProcessPoint models.WorkSiteProcessPoint func Add(form form.WorkSiteProcessPointAdd, adminID int) (int64, error) { worksitenodeInfo, err := worksitenode.GetInfoByID(form.SiteNodeId, nil, nil) if worksitenodeInfo == nil { return 0, errors.New("invalid worksitenode id") } /*if worksitenodeInfo.State == 4 { return 0, errors.New("节点已验收") }*/ worksiteInfo, err := worksite.GetInfoByID(worksitenodeInfo.SiteId, nil, nil) if worksiteInfo == nil { return 0, errors.New("invalid worksite id") } if worksiteInfo.State != 1 { return 0, errors.New("项目未开工") } workSiteProcessPointMap := map[string]interface{}{ "`site_node_id`": form.SiteNodeId, "`require_id`": form.RequireId, "`pictures`": form.Pictures, "`mark`": form.Mark, } workSiteProcessPointID, err := db.InsertOne(WorkSiteProcessPoint.TableName(), workSiteProcessPointMap) if err != nil { return 0, nil } return workSiteProcessPointID, nil } func CheckByID(id int, adminID int) error { info, _ := GetInfoByID(id, nil, nil) if info == nil { return errors.New("invalid id") } worksitenodeInfo, err := worksitenode.GetInfoByID(info.SiteNodeId, nil, nil) if worksitenodeInfo == nil { return errors.New("invalid worksitenode id") } worksiteInfo, err := worksite.GetInfoByID(worksitenodeInfo.SiteId, nil, nil) if worksiteInfo == nil { return errors.New("invalid worksite id") } if worksiteInfo.State != 1 { return errors.New("项目未开工") } _, err = db.Update(info.TableName(), map[string]interface{}{"id": info.ID}, map[string]interface{}{ "state": 1, }) return err } func DeleteByID(id int, adminID int) error { info, _ := GetInfoByID(id, nil, nil) if info == nil { return errors.New("invalid id") } worksitenodeInfo, err := worksitenode.GetInfoByID(info.SiteNodeId, nil, nil) if worksitenodeInfo == nil { return errors.New("invalid worksitenode id") } if worksitenodeInfo.State == 4 { return errors.New("节点已验收") } worksiteInfo, err := worksite.GetInfoByID(worksitenodeInfo.SiteId, nil, nil) if worksiteInfo == nil { return errors.New("invalid worksite id") } if worksiteInfo.ManagerId != adminID { return errors.New("账号权限有误") } if worksiteInfo.State == 2 { return errors.New("项目已完工") } _, err = db.DeleteSoft(WorkSiteProcessPoint.TableName(), map[string]interface{}{"id": id}) return err } func Count(where map[string]interface{}) (int64, error) { return db.Count(WorkSiteProcessPoint.TableName(), where) } func CountRaw(where string, param map[string]interface{}) (int64, error) { query := "`zy_work_site_process_point` WHERE " + where return db.CountRaw(query, param) } func GetList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.WorkSiteProcessPoint, error) { if page.PageNum > 0 && page.PageSize > 0 { where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize)) } return WorkSiteProcessPoint.GetMulti(where, fields, retVal) } func GetWorkSiteProcessPointsRaw(where map[string]string, param map[string]interface{}, retVal interface{}) error { field := "SELECT `zy_work_site_process_point`.*, `zy_work_process_require`.`name` FROM `zy_work_site_process_point` left join `zy_work_process_require` on `zy_work_process_require`.`id` = `zy_work_site_process_point`.`require_id` " return db.GetMultiRaw(field, where, param, retVal) } func GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*models.WorkSiteProcessPoint, error) { return WorkSiteProcessPoint.GetOne(where, fields, retVal) } func GetWorkSiteProcessPointOne(where map[string]string, param map[string]interface{}, retVal interface{}) error { field := "SELECT `zy_work_site_process_point`.*, `zy_work_process_require`.`name` FROM `zy_work_site_process_point` left join `zy_work_process_require` on `zy_work_process_require`.`id` = `zy_work_site_process_point`.`require_id` " where["_page_size"] = utils.ToStr(1) where["_page_num"] = utils.ToStr(1) return db.GetMultiRaw(field, where, param, retVal) } func GetWorkSiteProcessPointByID(id int, retVal interface{}) error { where := map[string]string{ "where": "`zy_work_site_process_point`.`id` = {{id}}", } param := map[string]interface{}{"id": id} return GetWorkSiteProcessPointOne(where, param, retVal) } func GetInfoByID(id int, fields []string, retVal interface{}) (*models.WorkSiteProcessPoint, error) { return GetOne(map[string]interface{}{"id": id}, fields, retVal) }