wangfei 6 years ago
parent
commit
4c46c476a8
7 changed files with 211 additions and 3 deletions
  1. 13
    0
      controllers/base.go
  2. 84
    0
      controllers/user/user.go
  3. 30
    0
      models/system/dict.go
  4. 8
    0
      models/system/user.go
  5. 20
    0
      service/dict.go
  6. 46
    3
      service/user.go
  7. 10
    0
      utils/guid.go

+ 13
- 0
controllers/base.go View File

@@ -2,6 +2,7 @@ package controllers
2 2
 
3 3
 import (
4 4
 	"net/http"
5
+	"spaceofcheng/services/models/model"
5 6
 	"spaceofcheng/services/utils"
6 7
 
7 8
 	"github.com/astaxie/beego"
@@ -89,3 +90,15 @@ func (c *BaseController) initController() {
89 90
 		ctrl.Constructor()
90 91
 	}
91 92
 }
93
+
94
+// GetCaseIDs 获取案场IDs
95
+func (c *BaseController) GetCaseIDs(cases []model.SysUserCase) string {
96
+	caseIDs := ""
97
+	for _, value := range cases {
98
+		if caseIDs != "" {
99
+			caseIDs = caseIDs + ","
100
+		}
101
+		caseIDs = caseIDs + value.CaseId
102
+	}
103
+	return caseIDs
104
+}

+ 84
- 0
controllers/user/user.go View File

@@ -0,0 +1,84 @@
1
+package user
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service"
7
+)
8
+
9
+// UserController 用户
10
+type UserController struct {
11
+	dao *service.UserServ
12
+	controllers.BaseController
13
+}
14
+
15
+// Constructor 初始化 Controller
16
+// @Title Constructor
17
+// @Description 初始化 Controller, 系统自动调用
18
+func (c *UserController) Constructor() {
19
+	c.dao = service.NewUserServ(c.Context)
20
+}
21
+
22
+// UpdatePassword 更新用户密码
23
+func (c *UserController) UpdatePassword() {
24
+	oriPasswd := c.GetString("oriPasswd")
25
+	newPasswd := c.GetString("newPasswd")
26
+
27
+	user := c.Context.Get("user").(model.SysUser)
28
+	err := c.dao.UpdatePassword(oriPasswd, newPasswd, &user)
29
+	if err != nil {
30
+		c.ResponseError(err)
31
+	}
32
+	c.ResponseJSON("ok")
33
+}
34
+
35
+// ResetPassword 重置用户密码
36
+func (c *UserController) ResetPassword() {
37
+	userid := c.GetString("userid")
38
+	err := c.dao.ResetPassword(userid)
39
+	if err != nil {
40
+		c.ResponseError(err)
41
+	}
42
+	c.ResponseJSON("OK")
43
+}
44
+
45
+// GetUserByID 获取用户信息
46
+func (c *UserController) GetUserByID() {
47
+	userid := c.GetString("userid")
48
+	user, err := c.dao.GetUserByID(userid)
49
+	if err != nil {
50
+		c.ResponseError(err)
51
+	}
52
+	c.ResponseJSON(user)
53
+}
54
+
55
+// GetUserList 获取用户列表
56
+func (c *UserController) GetUserList() {
57
+	userName := c.GetString("username")
58
+	typeID := c.GetString("typeid")
59
+	cases := c.Context.Get("cases").([]model.SysUserCase)
60
+	caseIDs := c.GetCaseIDs(cases)
61
+	userList, err := c.dao.GetUserList(userName, typeID, caseIDs)
62
+	if err != nil {
63
+		c.ResponseError(err)
64
+	}
65
+	c.ResponseJSON(userList)
66
+}
67
+
68
+// UserMapping 用户映射
69
+func (c *UserController) UserMapping() {
70
+	userid := ""
71
+	usertype := ""
72
+	openid := c.GetString("openid")
73
+	uuid := c.GetString("uuid")
74
+	accountType := c.GetString("type")
75
+	accountInfo := c.GetString("userinfo")
76
+	var userMapping = model.TaUserMapping{}
77
+	userMapping.UserId = userid
78
+	userMapping.UserType = usertype
79
+	userMapping.AccountInfo = accountInfo
80
+	userMapping.Openid = openid
81
+	userMapping.Uuid = uuid
82
+	userMapping.AccountType = accountType
83
+
84
+}

+ 30
- 0
models/system/dict.go View File

@@ -0,0 +1,30 @@
1
+package system
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+
8
+	"github.com/go-xorm/xorm"
9
+)
10
+
11
+// DictDAO 当前数据库操作对象
12
+type DictDAO struct {
13
+	ctx *utils.Context
14
+	db  *xorm.Session
15
+}
16
+
17
+// NewDictDAO New Inst
18
+func NewDictDAO(ctx *utils.Context) *DictDAO {
19
+	return &DictDAO{
20
+		ctx: ctx,
21
+		db:  ctx.DB,
22
+	}
23
+}
24
+
25
+// GetUserType 获取用户类型
26
+func (m *DictDAO) GetUserType() ([]model.TdUserType, error) {
27
+	var usertype []model.TdUserType
28
+	err := m.db.Where("status>?", models.STATUS_DEL).Find(&usertype)
29
+	return usertype, err
30
+}

+ 8
- 0
models/system/user.go View File

@@ -97,6 +97,7 @@ func (m *UserDAO) GetUserMenu(userid string) ([]model.SysMenu, error) {
97 97
 
98 98
 // AddUser 新增用户
99 99
 func (m *UserDAO) AddUser(user model.SysUser) (*model.SysUser, error) {
100
+	user.UserId = utils.GetGUID()
100 101
 	user.CreateDate = time.Now()
101 102
 	user.Status = models.STATUS_NOMAIL
102 103
 	_, err := m.db.Insert(&user)
@@ -218,3 +219,10 @@ func (m *UserDAO) UpdatePassword(userID, newPass string) error {
218 219
 
219 220
 	return nil
220 221
 }
222
+
223
+// SaveUserMapping 保存用户映射信息
224
+func (m *UserDAO) SaveUserMapping(usermapping *model.TaUserMapping) error {
225
+	usermapping.MappingId = utils.GetGUID()
226
+	_, err := m.db.Insert(&usermapping)
227
+	return err
228
+}

+ 20
- 0
service/dict.go View File

@@ -0,0 +1,20 @@
1
+package service
2
+
3
+import (
4
+	"spaceofcheng/services/models/system"
5
+	"spaceofcheng/services/utils"
6
+)
7
+
8
+// DictServ 系统处理
9
+type DictServ struct {
10
+	ctx *utils.Context
11
+	dao *system.DictDAO
12
+}
13
+
14
+// NewDictServ 初始化
15
+func NewDictServ(ctx *utils.Context) *DictServ {
16
+	return &DictServ{
17
+		ctx: ctx,
18
+		dao: system.NewDictDAO(ctx),
19
+	}
20
+}

+ 46
- 3
service/user.go View File

@@ -1,9 +1,17 @@
1 1
 package service
2 2
 
3 3
 import (
4
+	"errors"
4 5
 	"spaceofcheng/services/models/model"
5 6
 	"spaceofcheng/services/models/system"
6 7
 	"spaceofcheng/services/utils"
8
+
9
+	"github.com/yl10/kit/encrypt"
10
+)
11
+
12
+const (
13
+	USERTYPE_USER     = "user"
14
+	USERTYPE_CUSTOMER = "customer"
7 15
 )
8 16
 
9 17
 // UserServ 系统处理
@@ -66,11 +74,46 @@ func (s *UserServ) GetUserByID(userid string) (*system.UserInfo, error) {
66 74
 }
67 75
 
68 76
 // SaveUser 用户保存
69
-func (s *UserServ) SaveUser() {
70
-
77
+func (s *UserServ) SaveUser() (*model.SysUser, error) {
78
+	return nil, nil
71 79
 }
72 80
 
73 81
 // UpdatePassword 密码修改
74
-func (s *UserServ) UpdatePassword(oriPasswd, newPasswd string) error {
82
+func (s *UserServ) UpdatePassword(oriPasswd, newPasswd string, user *model.SysUser) error {
83
+	if !s.dao.ValidatePassword(user, oriPasswd) {
84
+		return errors.New("密码错误!")
85
+	}
86
+
87
+	if err := s.dao.UpdatePassword(user.UserId, newPasswd); err != nil {
88
+		return err
89
+	}
90
+
91
+	return nil
92
+}
93
+
94
+// ResetPassword 重设密码
95
+func (s *UserServ) ResetPassword(userid string) error {
96
+	newPasswd := encrypt.Md5("123456")
97
+	if err := s.dao.UpdatePassword(userid, newPasswd); err != nil {
98
+		return err
99
+	}
100
+
101
+	return nil
102
+}
103
+
104
+// UserMapping 用户隐射
105
+func (s *UserServ) UserMapping(userMapping model.TaUserMapping) error {
106
+	err := s.dao.SaveUserMapping(&userMapping)
107
+	if err != nil {
108
+		return err
109
+	}
110
+	// 根据用户类型更新用户表中的数据
111
+
112
+	switch userMapping.UserType {
113
+	case USERTYPE_USER:
114
+		break
115
+	case USERTYPE_CUSTOMER:
116
+		break
117
+	}
75 118
 	return nil
76 119
 }

+ 10
- 0
utils/guid.go View File

@@ -0,0 +1,10 @@
1
+package utils
2
+
3
+import (
4
+	"github.com/pborman/uuid"
5
+)
6
+
7
+// GetGUID 获取GUID
8
+func GetGUID() string {
9
+	return uuid.New()
10
+}