package system import ( "fmt" "log" "time" "xorm.io/xorm" "xps/datamodels" "xps/viewmodels" ) type AppPermitRepo struct { engine *xorm.Engine } // New Instance func NewAppPermitRepo(engine *xorm.Engine) *AppPermitRepo { return &AppPermitRepo{ engine: engine, } } func (d *AppPermitRepo) GetByList(appKey string, roleId int64, keywords string) []viewmodels.AppPermitInfo { var datalist = make([]viewmodels.AppPermitInfo, 0) sqlSelect := `SELECT A.app_id, A.role_id, A.permit_id, A.permit_title, A.permit_code, A.permit_desc, A.permit_type, A.root_id, A.parent_id, A.sort_no ` sqlFrom := `FROM app_permit AS A JOIN app AS B ON (A.app_id = B.app_id) ` sqlWhere := `WHERE A.deleted_flag = 0 AND B.app_key = '` + appKey + "'" if keywords != "" { sqlWhere += ` AND A.role_id = ` + fmt.Sprintf("%d", roleId) } if keywords != "" { sqlWhere += ` AND A.permit_title like ` + "'%" + keywords + "%'" } sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no " err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist) if err != nil { log.Fatal(err) } return datalist } // Delete func (d *AppPermitRepo) Delete(ocId int64, groupTypeId int64) error { data := &datamodels.AppPermit{DeletedFlag: 1, DeletedAt: time.Now()} _, err := d.engine.Where("oc_id = ?", ocId).Where("group_cat_id = ?", groupTypeId).Update(data) return err } // Update func (d *AppPermitRepo) Update(ocId int64, groupTypeId int64, data *datamodels.AppPermit) error { _, err := d.engine.Where("oc_id = ?", ocId).Where("group_cat_id = ?", groupTypeId).Update(data) return err } func (d *AppPermitRepo) Create(data *datamodels.AppPermit) error { _, err := d.engine.Insert(data) return err }