瀏覽代碼

Merge branch 'dev' of http://git.ycjcjy.com/SpaceOfCheng/services into dev

zjxpcyc 6 年之前
父節點
當前提交
0b2a862977
共有 5 個檔案被更改,包括 314 行新增33 行删除
  1. 13
    12
      models/model/sys_user.go
  2. 5
    0
      models/models.go
  3. 220
    0
      models/system/user.go
  4. 0
    21
      models/user.go
  5. 76
    0
      service/user.go

+ 13
- 12
models/model/sys_user.go 查看文件

@@ -5,16 +5,17 @@ import (
5 5
 )
6 6
 
7 7
 type SysUser struct {
8
-	UserId     string    `xorm:"not null pk VARCHAR(64)"`
9
-	UserName   string    `xorm:"not null VARCHAR(50)"`
10
-	RealName   string    `xorm:"VARCHAR(50)"`
11
-	Pwd        string    `xorm:"VARCHAR(500)"`
12
-	OrgId      string    `xorm:"VARCHAR(64)"`
13
-	Sex        int       `xorm:"SMALLINT(6)"`
14
-	WorkNo     string    `xorm:"VARCHAR(100)"`
15
-	Email      string    `xorm:"VARCHAR(100)"`
16
-	Phone      string    `xorm:"VARCHAR(100)"`
17
-	Status     int       `xorm:"SMALLINT(6)"`
18
-	CreateDate time.Time `xorm:"DATETIME"`
19
-	Headimgurl string    `xorm:"TEXT"`
8
+	UserId       string    `xorm:"not null pk VARCHAR(64)"`
9
+	UserName     string    `xorm:"not null VARCHAR(50)"`
10
+	RealName     string    `xorm:"VARCHAR(50)"`
11
+	Pwd          string    `xorm:"VARCHAR(500)"`
12
+	OrgId        string    `xorm:"VARCHAR(64)"`
13
+	Sex          int       `xorm:"SMALLINT(6)"`
14
+	WorkNo       string    `xorm:"VARCHAR(100)"`
15
+	Email        string    `xorm:"VARCHAR(100)"`
16
+	Phone        string    `xorm:"VARCHAR(100)"`
17
+	Status       int       `xorm:"SMALLINT(6)"`
18
+	CreateDate   time.Time `xorm:"DATETIME"`
19
+	Headimgurl   string    `xorm:"TEXT"`
20
+	UserTypeName string    `xorm:"VARCHAR(500)"`
20 21
 }

+ 5
- 0
models/models.go 查看文件

@@ -9,6 +9,11 @@ var (
9 9
 	DBEngine *xorm.Engine
10 10
 )
11 11
 
12
+const (
13
+	STATUS_NOMAIL = 1
14
+	STATUS_DEL    = -1
15
+)
16
+
12 17
 func init() {
13 18
 	DBEngine = NewDBEngine()
14 19
 }

+ 220
- 0
models/system/user.go 查看文件

@@ -0,0 +1,220 @@
1
+package system
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strings"
8
+	"time"
9
+	"wechat/helper"
10
+
11
+	"github.com/go-xorm/builder"
12
+	"github.com/go-xorm/xorm"
13
+	"github.com/yl10/kit/encrypt"
14
+)
15
+
16
+// UserDAO 当前数据库操作对象
17
+type UserDAO struct {
18
+	ctx *utils.Context
19
+	db  *xorm.Session
20
+}
21
+
22
+// NewUserDAO New Inst
23
+func NewUserDAO(ctx *utils.Context) *UserDAO {
24
+	return &UserDAO{
25
+		ctx: ctx,
26
+		db:  ctx.DB,
27
+	}
28
+}
29
+
30
+// GetUserList 用户列表
31
+func (m *UserDAO) GetUserList(username, typeid, caseids string) ([]model.SysUser, error) {
32
+	var users []model.SysUser
33
+	userDAO := m.db.Where(`(status>? and user_name like '%?%' and user_id in 
34
+		(select user_id from sys_user_tag a inner join sys_tag_case b on a.tag_id=b.tag_id where b.case_id in ('?')))`, models.STATUS_DEL, username, caseids)
35
+
36
+	if typeid != "" {
37
+		userDAO.In("user_id", builder.Select("user_id").From("sys_user_type").Where(builder.Eq{"type_id": typeid}))
38
+	}
39
+	err := userDAO.Find(&users)
40
+	return users, err
41
+}
42
+
43
+// UserInfo 用户详情
44
+type UserInfo struct {
45
+	model.SysUser `xorm:"extends"`
46
+	UserType      []model.TdUserType
47
+	UserTag       []model.SysTag
48
+	UserCase      []model.SysCase
49
+	UserRole      []model.SysRole
50
+	UserMenu      []model.SysMenu
51
+}
52
+
53
+// GetUserByID 根据ID获取用户信息
54
+func (m *UserDAO) GetUserByID(userid string) (*UserInfo, error) {
55
+	var userinfo = UserInfo{}
56
+	_, err := m.db.Table("sys_user").Where("user_id=?", userid).And("status>?", models.STATUS_DEL).Get(&userinfo)
57
+	if err != nil {
58
+		return nil, err
59
+	}
60
+	return &userinfo, nil
61
+}
62
+
63
+// GetUserType 获取用户类型
64
+func (m *UserDAO) GetUserType(userid string) ([]model.TdUserType, error) {
65
+	var usertype []model.TdUserType
66
+	err := m.db.In("type_id", builder.Select("type_id").From("sys_user_type").Where(builder.Eq{"user_id": userid}).And(builder.Gt{"status": models.STATUS_DEL})).Find(&usertype)
67
+	return usertype, err
68
+}
69
+
70
+// GetUserTag 获取用户标签
71
+func (m *UserDAO) GetUserTag(userid string) ([]model.SysTag, error) {
72
+	var userTag []model.SysTag
73
+	err := m.db.In("tag_id", builder.Select("tag_id").From("sys_user_tag").Where(builder.Eq{"user_id": userid}).And(builder.Gt{"status": models.STATUS_DEL})).Find(&userTag)
74
+	return userTag, err
75
+}
76
+
77
+// GetUserCase 获取用户案场
78
+func (m *UserDAO) GetUserCase(userid string) ([]model.SysCase, error) {
79
+	var userCase []model.SysCase
80
+	err := m.db.In("case_id", builder.Select("case_id").From("sys_user_case").Where(builder.Eq{"user_id": userid}).And(builder.Gt{"status": models.STATUS_DEL})).Find(&userCase)
81
+	return userCase, err
82
+}
83
+
84
+// GetUserRole 获取用户角色
85
+func (m *UserDAO) GetUserRole(userid string) ([]model.SysRole, error) {
86
+	var userRole []model.SysRole
87
+	err := m.db.In("role_id", builder.Select("role_id").From("sys_user_role").Where(builder.Eq{"user_id": userid}).And(builder.Gt{"status": models.STATUS_DEL})).Find(&userRole)
88
+	return userRole, err
89
+}
90
+
91
+// GetUserMenu 获取用户菜单
92
+func (m *UserDAO) GetUserMenu(userid string) ([]model.SysMenu, error) {
93
+	var userMenu []model.SysMenu
94
+	err := m.db.In("menu_id", builder.Select("menu_id").From("sys_user_menu").Where(builder.Eq{"user_id": userid}).And(builder.Gt{"status": models.STATUS_DEL})).Find(&userMenu)
95
+	return userMenu, err
96
+}
97
+
98
+// AddUser 新增用户
99
+func (m *UserDAO) AddUser(user model.SysUser) (*model.SysUser, error) {
100
+	user.CreateDate = time.Now()
101
+	user.Status = models.STATUS_NOMAIL
102
+	_, err := m.db.Insert(&user)
103
+	return &user, err
104
+}
105
+
106
+// UpdateUser 修改用户
107
+func (m *UserDAO) UpdateUser(user model.SysUser) error {
108
+	var col = []string{
109
+		"user_name",
110
+		"real_name",
111
+		"sex",
112
+		"work_no",
113
+		"email",
114
+		"phone",
115
+		"headimgurl",
116
+		"user_type_name",
117
+	}
118
+	_, err := m.db.Update(user, col, "user_id=?", user.UserId)
119
+	return err
120
+}
121
+
122
+// DelUser 删除用户
123
+func (m *UserDAO) DelUser(userid string) error {
124
+	var user = model.SysUser{}
125
+	user.Status = models.STATUS_DEL
126
+	user.UserId = userid
127
+	var col = []string{
128
+		"status",
129
+	}
130
+	_, err := m.db.Update(user, col, "user_id=?", user.UserId)
131
+	return err
132
+}
133
+
134
+// DelUserType 删除用户对应的类型信息
135
+func (m *UserDAO) DelUserType(userid string) error {
136
+	sql := "delete from sys_user_type where user_id='" + userid + "'"
137
+	_, err := m.db.Exec(sql)
138
+	return err
139
+}
140
+
141
+// SaveUserType 保存用户对应类型信息
142
+func (m *UserDAO) SaveUserType(userid, typeids string) error {
143
+	sql := `insert into sys_user_type(user_id,type_id) select '` + userid + `', type_id from td_user_type where type_id in ('` + strings.Replace(typeids, ",", "','", -1) + `') and status>?`
144
+	_, err := m.db.Exec(sql, models.STATUS_DEL)
145
+	return err
146
+}
147
+
148
+// DelUserRole 删除用户对应的角色信息
149
+func (m *UserDAO) DelUserRole(userid string) error {
150
+	sql := "delete from sys_user_role where user_id='" + userid + "'"
151
+	_, err := m.db.Exec(sql)
152
+	return err
153
+}
154
+
155
+// SaveUserRole 保存用户对应角色信息
156
+func (m *UserDAO) SaveUserRole(userid, roleids string) error {
157
+	sql := `insert into sys_user_role(user_id,role_id) select '` + userid + `', role_id from sys_role where role_id in ('` + strings.Replace(roleids, ",", "','", -1) + `') and status>?`
158
+	_, err := m.db.Exec(sql, models.STATUS_DEL)
159
+	return err
160
+}
161
+
162
+// DelUserTag 删除用户对应的标签信息
163
+func (m *UserDAO) DelUserTag(userid string) error {
164
+	sql := "delete from sys_user_tag where user_id='" + userid + "'"
165
+	_, err := m.db.Exec(sql)
166
+	return err
167
+}
168
+
169
+// SaveUserTag 保存用户对应标签信息
170
+func (m *UserDAO) SaveUserTag(userid, tagids string) error {
171
+	sql := `insert into sys_user_tag(user_id,tag_id) select '` + userid + `', tag_id from sys_tag where tag_id in ('` + strings.Replace(tagids, ",", "','", -1) + `') and status>?`
172
+	_, err := m.db.Exec(sql, models.STATUS_DEL)
173
+	return err
174
+}
175
+
176
+// DelUserCase 删除用户对应的案场
177
+func (m *UserDAO) DelUserCase(userid string) error {
178
+	sql := "delete from sys_user_case where user_id='" + userid + "'"
179
+	_, err := m.db.Exec(sql)
180
+	return err
181
+}
182
+
183
+// SaveUserCase 保存用户对应案场信息
184
+func (m *UserDAO) SaveUserCase(usercase model.SysUserCase) error {
185
+	usercase.CreateDate = time.Now()
186
+	usercase.Status = models.STATUS_NOMAIL
187
+	_, err := m.db.Insert(&usercase)
188
+	return err
189
+}
190
+
191
+// SaveUserCaseByUserTag 根据用户标签保存用户对应案场
192
+func (m *UserDAO) SaveUserCaseByUserTag(userid string) error {
193
+	sql := `insert into sys_user_case(user_id, case_id, case_name, is_belong, status, create_date) 
194
+	select c.user_id, a.case_id,a.case_name, 0,?,now() from sys_case a 
195
+	inner join sys_tag_case b on a.case_id = b.case_id
196
+	inner join sys_user_tag c on b.tag_id = c.tag_id
197
+	where c.user_id = ? and a.status > ?`
198
+
199
+	_, err := m.db.Exec(sql, models.STATUS_NOMAIL, userid, models.STATUS_DEL)
200
+	return err
201
+}
202
+
203
+// ValidatePassword 验证密码是否正确
204
+func (m *UserDAO) ValidatePassword(user *model.SysUser, password string) bool {
205
+	return user.Pwd == encrypt.Md5(password, user.UserId)
206
+}
207
+
208
+// UpdatePassword 更新用户密码
209
+func (m *UserDAO) UpdatePassword(userID, newPass string) error {
210
+	password := encrypt.Md5(newPass, userID)
211
+
212
+	sql := "update sys_user set passwd=? where user_id=?"
213
+
214
+	_, err := m.db.Exec(sql, password, userID)
215
+	if err != nil {
216
+		return helper.LogError("更新新密码出错", err)
217
+	}
218
+
219
+	return nil
220
+}

+ 0
- 21
models/user.go 查看文件

@@ -1,21 +0,0 @@
1
-package models
2
-
3
-import (
4
-	"spaceofcheng/services/utils"
5
-
6
-	"github.com/go-xorm/xorm"
7
-)
8
-
9
-// UserDAO 系统
10
-type UserDAO struct {
11
-	ctx *utils.Context
12
-	db  *xorm.Session
13
-}
14
-
15
-// NewUserDAO New Inst
16
-func NewUserDAO(ctx *utils.Context) *UserDAO {
17
-	return &UserDAO{
18
-		ctx: ctx,
19
-		db:  ctx.DB,
20
-	}
21
-}

+ 76
- 0
service/user.go 查看文件

@@ -0,0 +1,76 @@
1
+package service
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/models/system"
6
+	"spaceofcheng/services/utils"
7
+)
8
+
9
+// UserServ 系统处理
10
+type UserServ struct {
11
+	ctx *utils.Context
12
+	dao *system.UserDAO
13
+}
14
+
15
+// NewUserServ 初始化
16
+func NewUserServ(ctx *utils.Context) *UserServ {
17
+	return &UserServ{
18
+		ctx: ctx,
19
+		dao: system.NewUserDAO(ctx),
20
+	}
21
+}
22
+
23
+// GetUserList 获取用户列表
24
+func (s *UserServ) GetUserList(username, typeid, caseids string) ([]model.SysUser, error) {
25
+	userList, err := s.dao.GetUserList(username, typeid, caseids)
26
+	return userList, err
27
+}
28
+
29
+// GetUserByID 根据用户ID获取用户信息
30
+func (s *UserServ) GetUserByID(userid string) (*system.UserInfo, error) {
31
+	userinfo, err := s.dao.GetUserByID(userid)
32
+	if err != nil {
33
+		return nil, err
34
+	}
35
+	usertype, err := s.dao.GetUserType(userid)
36
+	if err != nil {
37
+		return nil, err
38
+	}
39
+	userinfo.UserType = usertype
40
+
41
+	usertag, err := s.dao.GetUserTag(userid)
42
+	if err != nil {
43
+		return nil, err
44
+	}
45
+	userinfo.UserTag = usertag
46
+
47
+	usercase, err := s.dao.GetUserCase(userid)
48
+	if err != nil {
49
+		return nil, err
50
+	}
51
+	userinfo.UserCase = usercase
52
+
53
+	userrole, err := s.dao.GetUserRole(userid)
54
+	if err != nil {
55
+		return nil, err
56
+	}
57
+	userinfo.UserRole = userrole
58
+
59
+	usermenu, err := s.dao.GetUserMenu(userid)
60
+	if err != nil {
61
+		return nil, err
62
+	}
63
+	userinfo.UserMenu = usermenu
64
+
65
+	return userinfo, nil
66
+}
67
+
68
+// SaveUser 用户保存
69
+func (s *UserServ) SaveUser() {
70
+
71
+}
72
+
73
+// UpdatePassword 密码修改
74
+func (s *UserServ) UpdatePassword(oriPasswd, newPasswd string) error {
75
+	return nil
76
+}