package final import ( "errors" "fmt" "zhiyuan/pkg/db" "github.com/gin-gonic/gin" ) type FinalSiteControl struct { ID int64 `json:"id" prop:"add:false"` TypeId int64 `json:"type_id" label:"类型" type:"int" prop:"add edit" search:"="` SiteId int64 `json:"site_id" label:"工地" type:"int" prop:"add edit" search:"="` Budget float64 `json:"budget" label:"控额" type:"float" prop:"edit" default:"0"` ChangeState int64 `json:"change_state" label:"状态" type:"int" prop:"add:false edit" default:"0" search:"="` 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"` db.BaseModel } func (FinalSiteControl) TableName() string { return "zy_final_site_control" } func (model FinalSiteControl) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool { return true } func (FinalSiteControl) OnePrivilege(c *gin.Context, id int64) bool { return true } func (FinalSiteControl) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error { typ, _ := db.ToInt64(data["type_id"]) site_id, _ := db.ToInt64(data["site_id"]) table, _ := db.GetModelMap(db.Type(FinalSiteControl{}), map[string]interface{}{"type_id": typ, "site_id": site_id, "deleted_at": 0}, nil) if table != nil { return errors.New("没有权限") } return nil } func (FinalSiteControl) AddAfter(c *gin.Context, id int64, post map[string]interface{}, data map[string]interface{}) { } func (FinalSiteControl) EditPrivilege(c *gin.Context, id int64, data map[string]interface{}, post map[string]interface{}) error { return nil } func (FinalSiteControl) DelPrivilege(c *gin.Context, id int64) error { return nil } func (FinalSiteControl) Page() bool { return false } func (FinalSiteControl) Count() bool { return true } type FinalSiteControlMobile struct { Name string `json:"name" type:"string" prop:"select:type.name"` Budget float64 `json:"budget" label:"控额" type:"float" prop:"edit" default:"0"` LivingCount int64 `json:"living_count" type:"int" prop:"select:count(distinct(IF(table.type=1,table.id,NULL)))"` SettleCount int64 `json:"settle_count" type:"int" prop:"select:count(distinct(IF(table.type=0,table.id,NULL)))"` LivingBudget int64 `json:"living_budget" type:"int" prop:"select:zy_final_site_control.budget*type.living_proportion/100-if(count(table.id)=0,0,sum(table.total))"` SettleBudget int64 `json:"settle_budget" type:"int" prop:"select:zy_final_site_control.budget-if(count(table.id)=0,0,sum(table.total))"` LivingState int64 `json:"living_state" type:"int" prop:"select:IF((zy_final_site_control.budget!=0)and(count(distinct(IF(table.state<2,table.id,NULL)))=0)and(count(distinct(IF(table.type=1,table.id,NULL)))