package final import ( "errors" "fmt" "strings" "zhiyuan/pkg/db" "github.com/gin-gonic/gin" ) type FinalMaterialSettleProcess struct { ID int64 `json:"id" prop:"add:false"` SettleId int64 `json:"settle_id" label:"材料ID" type:"int"` CollectId int64 `json:"collect_id" label:"汇总ID" type:"int"` Explain string `json:"explain" label:"说明" type:"string" search:"like"` Pictures string `json:"pictures" label:"图片" type:"string" search:"like"` Type int64 `json:"type" label:"类型" type:"int" prop:"add" default:"0"` Signature string `json:"signature" label:"签名" prop:"add" type:"string"` State int64 `json:"state" label:"状态" type:"int" prop:"add" default:"0"` CreatedId int64 `json:"created_id" label:"创建人员" type:"int" prop:"add:false" search:"="` CreatedName string `json:"created_name" prop:"add:false select:created.username"` CreatedPhone string `json:"created_phone" prop:"add:false select:created.phone"` CreatedHeadimgurl string `json:"created_headimgurl" prop:"add:false select:created.headimgurl"` 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 (FinalMaterialSettleProcess) TableName() string { return "zy_final_material_settle_process" } func (model FinalMaterialSettleProcess) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool { settle_id, _ := db.ToInt64(data["settle_id"]) collect_id, _ := db.ToInt64(data["collect_id"]) if settle_id != 0 && collect_id != 0 { s.Where = append(s.Where, fmt.Sprintf("`%s`.`settle_id` = %s OR `%s`.`collect_id` = %s", model.TableName(), s.Param(settle_id), model.TableName(), s.Param(collect_id))) } else if settle_id != 0 { s.Where = append(s.Where, fmt.Sprintf("`%s`.`settle_id` = %s", model.TableName(), s.Param(settle_id))) } else if collect_id != 0 { s.Where = append(s.Where, fmt.Sprintf("`%s`.`collect_id` = %s", model.TableName(), s.Param(collect_id))) } return true } func (FinalMaterialSettleProcess) OnePrivilege(c *gin.Context, id int64) bool { return true } func (FinalMaterialSettleProcess) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error { data["created_id"] = c.GetInt("adminID") typ, _ := db.ToInt64(data["type"]) settleID, _ := db.ToInt64(post["settle_id"]) collectID, _ := db.ToInt64(data["collect_id"]) state, _ := db.ToInt64(data["state"]) if settleID != 0 { var model FinalMaterialSettle db.GetModel(map[string]interface{}{ "id": settleID, }, &model) if model.ID == 0 { return errors.New("没有权限") } if typ == 2 && model.State == 2 && state != 0 { datas := map[string]interface{}{ "state": -1, } ids := strings.Split(model.Orders, ",") err := db.UpdateModels(db.Type(FinalMaterialOrder{}), map[string]interface{}{ "id in": ids, }, map[string]interface{}{ "state": 11, "settle_id": 0, }) if err != nil { return err } err = db.UpdateModel(db.Type(model), settleID, datas) if err != nil { return err } } else { return errors.New("没有权限") } } else if collectID != 0 { var model FinalSiteCollect db.GetModel(map[string]interface{}{ "id": collectID, }, &model) if model.ID == 0 || model.State != typ { return errors.New("没有权限") } if state != 0 { return errors.New("没有权限") } s := model.State + 1 err := db.UpdateModel(db.Type(model), collectID, map[string]interface{}{ "state": s, }) if err != nil { return errors.New("没有权限") } err = db.UpdateModels(db.Type(FinalMaterialSettle{}), map[string]interface{}{ "collect_id": collectID, }, map[string]interface{}{ "state": s, }) if err != nil { return errors.New("没有权限") } } else { return errors.New("没有权限") } return nil } func (FinalMaterialSettleProcess) Page() bool { return false } func (model FinalMaterialSettleProcess) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel { return []db.JoinModel{ { Model: JoinAdmin{}, As: "created", On: []string{"`created`.`id` = " + model.TableName() + ".`created_id`"}, }, } }