package sysuser import ( "strconv" "time" "wechat-conf/models" "wechat-conf/models/model" "wechat-conf/utils" "github.com/go-xorm/xorm" ) // SysuserDAO 当前数据库操作对象 type SysuserDAO struct { ctx *utils.Context db *xorm.Session } // NewSysuserDAO New Inst func NewSysuserDAO(ctx *utils.Context) *SysuserDAO { return &SysuserDAO{ ctx: ctx, db: ctx.DB, } } type User struct { model.SysUser `xorm:"extends"` OrgName string } func (m *SysuserDAO) GetSysuserList(page, pageSize int) ([]User, error) { var user []User sql := `SELECT a.*,b.org_name from sys_user a left join sys_org b on a.org_id = b.org_id WHERE a.status >` + strconv.Itoa(models.STATUS_DEL) + ` order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize) err := m.db.Sql(sql).Find(&user) return user, err } func (m *SysuserDAO) GetSysuserListCount() (int, error) { var user []model.SysUser sql := `SELECT * from sys_user WHERE status >` + strconv.Itoa(models.STATUS_DEL) err := m.db.Sql(sql).Find(&user) return len(user), err } func (m *SysuserDAO) GetSysuserById(userId string) (*model.SysUser, error) { var user []model.SysUser sql := `SELECT * from sys_user WHERE status >` + strconv.Itoa(models.STATUS_DEL) + ` and user_id = '` + userId + `'` err := m.db.Sql(sql).Find(&user) if len(user) > 0 { return &user[0], err } return nil, err } func (m *SysuserDAO) AddUser(user model.SysUser) (*model.SysUser, error) { user.CreateDate = time.Now() user.UserId = utils.GetGUID() user.Status = models.STATUS_NORMAL _, err := m.db.Insert(user) return &user, err } func (m *SysuserDAO) DeleteUser(userId string) error { var user = model.SysUser{ UserId: userId, Status: models.STATUS_DEL, } var cols = []string{ "status", } _, err := m.db.Cols(cols...).Where("user_id = ?", user.UserId).Update(user) return err } func (m *SysuserDAO) EditUser(user model.SysUser) error { var cols = []string{ "user_name", "real_name", "phone", "email", "head_imgurl", } _, err := m.db.Cols(cols...).Where("user_id = ?", user.UserId).Update(user) return err } func (m *SysuserDAO) BindUserToOrg(userId, orgId string) error { var user = model.SysUser{ UserId: userId, OrgId: orgId, } var cols = []string{ "org_id", } _, err := m.db.Cols(cols...).Where("user_id=?", user.UserId).Update(user) return err } func (m *SysuserDAO) ChangePassword(userId, pwd string) error { var user = model.SysUser{ UserId: userId, Pwd: pwd, } var cols = []string{ "pwd", } _, err := m.db.Cols(cols...).Where("user_id=?", user.UserId).Update(user) return err } func (m *SysuserDAO) GetAppIdByOrgId(orgId string) (string, error) { var config []model.SysWechatConf sql := `SELECT * FROM sys_wechat_conf a INNER JOIN sys_org b ON b.wechat_id = a.conf_id WHERE org_id = '` + orgId + `'` err := m.db.Sql(sql).Find(&config) if len(config) > 0 { return config[0].Appid, err } return "", err }