|
@@ -1,12 +1,31 @@
|
|
|
package models
|
|
|
|
|
|
import (
|
|
|
+ "context"
|
|
|
"time"
|
|
|
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
)
|
|
|
|
|
|
type SysUser struct {
|
|
|
+ SysUserId int `orm:"pk" description:"系统用户id"`
|
|
|
+ SysUserName string `description:"账号"`
|
|
|
+ SysRealName string `description:"姓名"`
|
|
|
+ Password string `description:"密码"`
|
|
|
+ Email string `description:"邮箱"`
|
|
|
+ Phone string `description:"手机号"`
|
|
|
+ AreaCode string `description:"手机区号"`
|
|
|
+ SysRoleId int `description:"角色id"`
|
|
|
+ SysRoleName string `description:"角色名称"`
|
|
|
+ SysDepartmentId int `description:"所属部门id"`
|
|
|
+ Province string `description:"省"`
|
|
|
+ City string `description:"市"`
|
|
|
+ IsEnabled bool `description:"是否启用"`
|
|
|
+ CreateTime time.Time `description:"创建时间"`
|
|
|
+ ModifyTime time.Time `description:"更新时间"`
|
|
|
+}
|
|
|
+
|
|
|
+type SysUserView struct {
|
|
|
SysUserId int `orm:"pk" description:"系统用户id"`
|
|
|
SysUserName string `description:"账号"`
|
|
|
SysRealName string `description:"姓名"`
|
|
@@ -25,6 +44,27 @@ type SysUser struct {
|
|
|
ModifyTime time.Time `description:"更新时间"`
|
|
|
}
|
|
|
|
|
|
+type SysUserMapping struct {
|
|
|
+ SysUserId int `orm:"pk" description:"系统用户id"`
|
|
|
+ SysUserName string `description:"账号"`
|
|
|
+ SysRealName string `description:"姓名"`
|
|
|
+ Password string `description:"密码"`
|
|
|
+ Email string `description:"邮箱"`
|
|
|
+ Phone string `description:"手机号"`
|
|
|
+ AreaCode string `description:"手机区号"`
|
|
|
+ SysRoleId int `description:"角色id"`
|
|
|
+ SysRoleName string `description:"角色名称"`
|
|
|
+ SysDepartmentId int `description:"所属部门id"`
|
|
|
+ SysDepartmentName1 string `description:"所属部门一级"`
|
|
|
+ SysDepartmentName2 string `description:"所属部门二级路径"`
|
|
|
+ SysDepartmentName3 string `description:"所属部门三级路径"`
|
|
|
+ Province string `description:"省"`
|
|
|
+ City string `description:"市"`
|
|
|
+ IsEnabled bool `description:"是否启用"`
|
|
|
+ CreateTime time.Time `description:"创建时间"`
|
|
|
+ ModifyTime time.Time `description:"更新时间"`
|
|
|
+}
|
|
|
+
|
|
|
func (s *SysUser) Save() (err error) {
|
|
|
o := orm.NewOrmUsingDB("master")
|
|
|
_, err = o.InsertOrUpdate(s, "sys_user_id")
|
|
@@ -37,6 +77,27 @@ func (s *SysUser) Update(cols []string) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func SaveSysUser(sysUser *SysUser, sysDepartmendPathIds []int) (err error) {
|
|
|
+ o := orm.NewOrmUsingDB("master")
|
|
|
+ err = o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error {
|
|
|
+ insertId, e := txOrm.InsertOrUpdate(sysUser)
|
|
|
+ if e != nil {
|
|
|
+ return e
|
|
|
+ }
|
|
|
+ userDepMapping := &SysUserDepartmentMapping{}
|
|
|
+ userDepMapping.SysUserId = int(insertId)
|
|
|
+ userDepMapping.SysDepartmentId1 = sysDepartmendPathIds[0]
|
|
|
+ userDepMapping.SysDepartmentId2 = sysDepartmendPathIds[1]
|
|
|
+ userDepMapping.SysDepartmentId3 = sysDepartmendPathIds[2]
|
|
|
+ _, e = txOrm.InsertOrUpdate(userDepMapping)
|
|
|
+ if e != nil {
|
|
|
+ return e
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ })
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func GetSysUserBySysUserName(sysUserName string) (item *SysUser, err error) {
|
|
|
sql := `SELECT * FROM sys_user WHERE sys_user_name=?`
|
|
|
o := orm.NewOrmUsingDB("master")
|
|
@@ -51,6 +112,13 @@ func GetSysUserById(sysUserId int) (item *SysUser, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func GetSysUserCountById(sysUserId int) (count int, err error) {
|
|
|
+ sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_user_id=?`
|
|
|
+ o := orm.NewOrmUsingDB("master")
|
|
|
+ err = o.Raw(sql, sysUserId).QueryRow(&count)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func GetSysUserCountBySysUserName(sysUserName string) (count int, err error) {
|
|
|
sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_user_name=?`
|
|
|
o := orm.NewOrmUsingDB("master")
|
|
@@ -68,12 +136,29 @@ func GetSysUserCount(condition string, pars []interface{}) (count int, err error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func GetSysUserList(condition string, pars []interface{}, startSize, pageSize int) (items []*SysUser, err error) {
|
|
|
- sql := `SELECT * FROM sys_user WHERE 1=1`
|
|
|
+func GetSysUserCountByRoleId(roleId int) (count int, err error) {
|
|
|
+ sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_role_id=?`
|
|
|
+ o := orm.NewOrmUsingDB("master")
|
|
|
+ err = o.Raw(sql, roleId).QueryRow(&count)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func GetSysUserList(condition string, pars []interface{}, startSize, pageSize int) (items []*SysUserMapping, err error) {
|
|
|
+ sql := `SELECT u.*,d1.sys_department_name sys_department_name1, d2.sys_department_name sys_department_name2, d3.sys_department_name sys_department_name3
|
|
|
+ FROM sys_user u
|
|
|
+ LEFT JOIN sys_user_department_mapping AS ud
|
|
|
+ ON u.sys_user_id = ud.sys_user_id
|
|
|
+ LEFT JOIN sys_department AS d1
|
|
|
+ ON ud.sys_department_id1 = d1.sys_department_id
|
|
|
+ LEFT JOIN sys_department AS d2
|
|
|
+ ON ud.sys_department_id2 = d2.sys_department_id
|
|
|
+ LEFT JOIN sys_department AS d3
|
|
|
+ ON ud.sys_department_id3 = d3.sys_department_id
|
|
|
+ WHERE 1=1 `
|
|
|
if condition != "" {
|
|
|
sql += condition
|
|
|
}
|
|
|
- sql += `ORDER BY modify_time DESC LIMIT ?,?`
|
|
|
+ sql += `ORDER BY u.is_enabled, u.modify_time DESC LIMIT ?,?`
|
|
|
o := orm.NewOrmUsingDB("master")
|
|
|
_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
|
|
|
return
|