package models import ( "errors" "strconv" "strings" "zhiyuan/pkg/db" "github.com/gin-gonic/gin" ) type WorkSite struct { ID int `json:"id"` PkgId int `json:"pkg_id"` Username string `json:"username" search:"like"` Phone string `json:"phone" search:"like"` Village string `json:"village" search:"like"` Address string `json:"address" search:"like"` RoomNo string `json:"room_no" search:"like"` Area string `json:"area" search:"like"` Longitude string `json:"longitude"` Latitude string `json:"latitude"` ManagerId int `json:"manager_id"` DesignerId int `json:"designer_id"` SalesmanId int `json:"salesman_id"` ProjectManagerId int `json:"project_manager_id"` ProjectLeaderId int `json:"project_leader_id"` ServicerId int `json:"servicer_id"` QualityId int `json:"quality_id"` AssistantId int `json:"assistant_id"` CreatedId int `json:"created_id"` AdminIds string `json:"admin_ids"` StartTime int `json:"starttime"` EndTime int `json:"endtime"` RealStartTime int `json:"real_starttime"` RealEndTime int `json:"real_endtime"` StopTime int `json:"stoptime"` Discount string `json:"discount"` Promotion string `json:"promotion"` Gifts string `json:"gifts"` Other string `json:"other"` Hose string `json:"hose"` Bear string `json:"bear"` State int `json:"state" type:"int" search:"="` CreatedAt int `json:"created_at"` UpdatedAt int `json:"updated_at"` db.BaseModel } func (WorkSite) TableName() string { return "zy_work_site" } func (a WorkSite) GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*WorkSite, error) { if retVal == nil { var workSite *WorkSite err := db.GetOne(a.TableName(), where, fields, &workSite) return workSite, err } else { err := db.GetOne(a.TableName(), where, fields, retVal) return nil, err } } func (a WorkSite) GetMulti(where map[string]interface{}, fields []string, retVal interface{}) ([]*WorkSite, error) { if retVal == nil { var workSite []*WorkSite err := db.GetMulti(a.TableName(), where, fields, &workSite) return workSite, err } else { err := db.GetMulti(a.TableName(), where, fields, retVal) return nil, err } } func (a WorkSite) GetOneRaw(where map[string]string, param map[string]interface{}, retVal interface{}) (*WorkSite, error) { workSite, err := a.GetMultiRaw(where, param, retVal) if err != nil { return nil, err } if len(workSite) == 0 { return nil, errors.New("empty record2") } return workSite[0], nil } func (a WorkSite) GetMultiRaw(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*WorkSite, error) { field := "SELECT * FROM zy_work_site " if retVal == nil { var workSite []*WorkSite err := db.GetMultiRaw(field, where, param, &workSite) return workSite, err } else { err := db.GetMultiRaw(field, where, param, retVal) return nil, err } } func (model WorkSite) AdminAuth(adminID int) bool { auth := false for _, v := range strings.Split(model.AdminIds, ",") { if num, err := strconv.Atoi(v); err == nil && num == adminID { auth = true break } } return auth } type WorkSiteModel struct { WorkSite ManagerName string `json:"manager_name" prop:"select:manager.username"` ManagerPhone string `json:"manager_phone" prop:"select:manager.phone"` ManagerHeadImgUrl string `json:"manager_headimgurl" prop:"select:manager.headimgurl"` DesignerName string `json:"designer_name" prop:"select:designer.username"` DesignerPhone string `json:"designer_phone" prop:"select:designer.phone"` DesignerHeadImgUrl string `json:"designer_headimgurl" prop:"select:designer.headimgurl"` SalesmanName string `json:"salesman_name" prop:"select:salesman.username"` SalesmanPhone string `json:"salesman_phone" prop:"select:salesman.phone"` SalesmanHeadImgUrl string `json:"salesman_headimgurl" prop:"select:salesman.headimgurl"` ProjectManagerName string `json:"project_manager_name" prop:"select:project_manager.username"` ProjectManagerPhone string `json:"project_manager_phone" prop:"select:project_manager.phone"` ProjectManagerHeadImgUrl string `json:"project_manager_headimgurl" prop:"select:project_manager.headimgurl"` ProjectLeaderName string `json:"project_leader_name" prop:"select:project_leader.username"` ProjectLeaderPhone string `json:"project_leader_phone" prop:"select:project_leader.phone"` ProjectLeaderHeadImgUrl string `json:"project_leader_headimgurl" prop:"select:project_leader.headimgurl"` ServicerName string `json:"servicer_name" prop:"select:servicer.username"` ServicerPhone string `json:"servicer_phone" prop:"select:servicer.phone"` ServicerHeadImgUrl string `json:"servicer_headimgurl" prop:"select:servicer.headimgurl"` QualityName string `json:"quality_name" prop:"select:quality.username"` QualityPhone string `json:"quality_phone" prop:"select:quality.phone"` QualityHeadImgUrl string `json:"quality_headimgurl" prop:"select:quality.headimgurl"` AssistantName string `json:"assistant_name" prop:"select:assistant.username"` AssistantPhone string `json:"assistant_phone" prop:"select:assistant.phone"` AssistantHeadImgUrl string `json:"assistant_headimgurl" prop:"select:assistant.headimgurl"` } func (WorkSiteModel) OnePrivilege(c *gin.Context, id int64) bool { return true } func (WorkSiteModel) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool { return true } func (model WorkSiteModel) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel { return []db.JoinModel{ { Model: Admin{}, As: "manager", On: []string{"`manager`.`id` = " + model.TableName() + ".`manager_id`"}, }, { Model: Admin{}, As: "designer", On: []string{"`designer`.`id` = " + model.TableName() + ".`designer_id`"}, }, { Model: Admin{}, As: "salesman", On: []string{"`salesman`.`id` = " + model.TableName() + ".`salesman_id`"}, }, { Model: Admin{}, As: "project_manager", On: []string{"`project_manager`.`id` = " + model.TableName() + ".`project_manager_id`"}, }, { Model: Admin{}, As: "project_leader", On: []string{"`project_leader`.`id` = " + model.TableName() + ".`project_leader_id`"}, }, { Model: Admin{}, As: "servicer", On: []string{"`servicer`.`id` = " + model.TableName() + ".`servicer_id`"}, }, { Model: Admin{}, As: "quality", On: []string{"`quality`.`id` = " + model.TableName() + ".`quality_id`"}, }, { Model: Admin{}, As: "assistant", On: []string{"`assistant`.`id` = " + model.TableName() + ".`assistant_id`"}, }, } } func (WorkSiteModel) Page() bool { return false } func (WorkSiteModel) Count() bool { return true }