package sysorg import ( "strconv" "time" "wechat-conf/models" "wechat-conf/models/model" "wechat-conf/utils" "github.com/go-xorm/xorm" ) // SysorgDAO 当前数据库操作对象 type SysorgDAO struct { ctx *utils.Context db *xorm.Session } // NewSysorgDAO New Inst func NewSysorgDAO(ctx *utils.Context) *SysorgDAO { return &SysorgDAO{ ctx: ctx, db: ctx.DB, } } func (m *SysorgDAO) GetOrgList(page, pagesize int) ([]model.SysOrg, error) { var org []model.SysOrg sql := `select * from sys_org where status >` + strconv.Itoa(models.STATUS_DEL) sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pagesize) + `, ` + strconv.Itoa(pagesize) err := m.db.Sql(sql).Find(&org) return org, err } func (m *SysorgDAO) GetOrgListCount() (int, error) { var org []model.SysOrg sql := `select * from sys_org where status >` + strconv.Itoa(models.STATUS_DEL) err := m.db.Sql(sql).Find(&org) return len(org), err } func (m *SysorgDAO) AddOrg(org model.SysOrg) (*model.SysOrg, error) { org.OrgId = utils.GetGUID() org.CreateDate = time.Now() org.Status = models.STATUS_NORMAL org.AuthStatus = models.AUTH_STATUS_NO _, err := m.db.Insert(org) return &org, err } func (m *SysorgDAO) AuthOrg(org model.SysOrg) error { org.AuthStatus = models.AUTH_STATUS_YES var cols = []string{ "auth_status", "wechat_id", "wechat_name", } _, err := m.db.Cols(cols...).Where("org_id = ?", org.OrgId).Update(org) return err } func (m *SysorgDAO) DeleteOrg(orgId string) error { var org = model.SysOrg{ OrgId: orgId, Status: models.STATUS_DEL, } var cols = []string{ "status", } _, err := m.db.Cols(cols...).Where("org_id = ?", org.OrgId).Update(org) return err } // UnAutoOrg 解绑 func (m *SysorgDAO) UnAutoOrg(confid string) error { var org = model.SysOrg{ WechatId: "", AuthStatus: models.AUTH_STATUS_NO, } var cols = []string{ "wechat_id", "auth_status", } _, err := m.db.Cols(cols...).Where("wechat_id = ?", confid).Update(org) return err } func (m *SysorgDAO) IsOrgBinded(orgId string) (bool, error) { var user []model.SysUser sql := `select * from sys_user WHERE org_id = '` + orgId + `'` err := m.db.Sql(sql).Find(&user) if len(user) > 0 { return false, err } return true, err }