package models import ( "errors" "fmt" "zhiyuan/pkg/db" "github.com/gin-gonic/gin" ) type WorkSiteQualityAcceptItem struct { ID int64 `json:"id" prop:"add:false"` SiteNodeId int64 `json:"site_node_id" type:"int" prop:"add" search:"="` RequireId int64 `json:"require_id" type:"int" prop:"add" search:"="` ItemId int64 `json:"item_id" type:"int" prop:"add:false" search:"="` Pictures string `json:"pictures" label:"图片列表" type:"string"` Mark string `json:"mark" label:"备注" type:"string"` State int64 `json:"state" label:"状态" type:"int" prop:"add" default:"0" search:"="` AdminId int64 `json:"admin_id" label:"质检人" type:"int" prop:"add:false"` DeletedAt int64 `json:"deleted_at" prop:"add:false select:false"` CreatedAt int64 `json:"created_at" prop:"add:false"` UpdatedAt int64 `json:"updated_at" prop:"add:false"` Content string `json:"content" label:"内容" prop:"add:false select:item.content"` Photograph string `json:"photograph" label:"拍照标准" prop:"add:false select:item.photograph"` Days int64 `json:"days" label:"整改时间" prop:"add:false select:item.quality_days"` AdminName string `json:"admin_name" prop:"select:admin.username"` AdminPhone string `json:"admin_phone" prop:"select:admin.phone"` AdminHeadImgUrl string `json:"admin_headimgurl" prop:"select:admin.headimgurl"` db.BaseModel } func (WorkSiteQualityAcceptItem) TableName() string { return "zy_work_site_quality_accept_item" } func (WorkSiteQualityAcceptItem) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool { return true } func (WorkSiteQualityAcceptItem) OnePrivilege(c *gin.Context, id int64) bool { return true } func (WorkSiteQualityAcceptItem) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error { var item WorkSiteQualityAcceptItem db.GetModel(map[string]interface{}{ "site_node_id": data["site_node_id"].(int64), "require_id": data["require_id"].(int64), }, &item) if item.ID != 0 { return errors.New("没有权限") } data["admin_id"] = c.GetInt("adminID") return nil } func (model WorkSiteQualityAcceptItem) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel { return []db.JoinModel{ { Model: WorkProcessRequire{}, As: "item", On: []string{ "`item`.`id` = " + model.TableName() + ".`require_id`", }, }, { Model: Admin{}, As: "admin", On: []string{ "`admin`.`id` = " + model.TableName() + ".`admin_id`", }, }, } } func (WorkSiteQualityAcceptItem) Page() bool { return false } func (WorkSiteQualityAcceptItem) Count() bool { return true } type WorkSiteQualityAcceptItemModel struct { WorkQualityAcceptItem SiteItemID int64 `json:"site_item_id" prop:"select:siteitem.id"` Pictures string `json:"pictures" prop:"select:siteitem.pictures"` Mark string `json:"mark" prop:"select:siteitem.mark"` ItemState int64 `json:"item_state" prop:"select:siteitem.state"` AdminId int64 `json:"admin_id" prop:"select:siteitem.admin_id"` Updated int64 `json:"updated" prop:"select:siteitem.updated_at"` } func (model WorkSiteQualityAcceptItemModel) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel { return []db.JoinModel{ { Model: WorkSiteQualityAcceptItem{}, As: "siteitem", On: []string{ "`siteitem`.`item_id` = " + model.TableName() + ".`id`", fmt.Sprintf("`siteitem`.`site_node_id` = %s", s.Param(data["site_node_id"])), }, }, } } type MyWorkSiteQualityAcceptItem struct { LimitTime int64 `json:"limit_time" prop:"select:zy_work_site_quality_accept_item.created_at+item.quality_days*86400"` SiteNodeId int `json:"site_node_id" prop:"select:worksitenode.id"` SiteId int `json:"site_id" prop:"select:worksite.id"` NodeName string `json:"node_name" prop:"select:worksitenode.name"` NodeStartTime int `json:"node_starttime" prop:"select:worksitenode.starttime"` NodeEndTime int `json:"node_endtime" prop:"select:worksitenode.endtime"` NodeState int `json:"node_state" prop:"select:worksitenode.state"` NodeColor string `json:"node_color" prop:"select:worknode.color"` NodeLogo string `json:"node_logo" prop:"select:worknode.logo"` Username string `json:"username" prop:"select:worksite.username"` Phone string `json:"phone" prop:"select:worksite.phone"` Village string `json:"village" prop:"select:worksite.village"` Address string `json:"address" prop:"select:worksite.address"` RoomNo string `json:"room_no" prop:"select:worksite.room_no"` SiteStarttime string `json:"site_starttime" prop:"select:worksite.starttime"` SiteEndtime string `json:"site_endtime" prop:"select:worksite.endtime"` SiteState string `json:"site_state" prop:"select:worksite.state"` WorkSiteQualityAcceptItem } func (MyWorkSiteQualityAcceptItem) Page() bool { return true } func (model MyWorkSiteQualityAcceptItem) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel { return append(model.WorkSiteQualityAcceptItem.LeftJoin(data, s), db.JoinModel{ Model: WorkSiteNode{}, As: "worksitenode", On: []string{"`worksitenode`.`id` = " + model.TableName() + ".`site_node_id`"}, }, db.JoinModel{ Model: WorkSite{}, As: "worksite", On: []string{"`worksite`.`id` = `worksitenode`.`site_id`"}, }, db.JoinModel{ Model: WorkNode{}, As: "worknode", On: []string{"`worknode`.`id` = `worksitenode`.`node_id`"}, }) }