wangfei 6 lat temu
rodzic
commit
8858f54010

+ 1
- 1
controllers/channel/channel.go Wyświetl plik

@@ -34,7 +34,7 @@ func (c *ChannelController) GetChannelList() {
34 34
 
35 35
 // GetChannelById根据id获取渠道
36 36
 func (c *ChannelController) GetChannelById() {
37
-	caseid := c.GetString(":caseid")
37
+	caseid := c.GetString(":channelId")
38 38
 	channel, err := c.dao.GetChannelById(caseid)
39 39
 	if err != nil {
40 40
 		c.ResponseError(err)

+ 6
- 3
controllers/customer/customer.go Wyświetl plik

@@ -27,8 +27,9 @@ func (c *CustomerController) Constructor() {
27 27
 func (c *CustomerController) CustWXList() {
28 28
 	phone := c.GetString("phone")
29 29
 	page, _ := c.GetInt("page")
30
+	pageSize, _ := c.GetInt("pagesize")
30 31
 
31
-	custList, total, err := c.serv.GetCustWithWXList(phone, page)
32
+	custList, total, err := c.serv.GetCustWithWXList(phone, page, pageSize)
32 33
 	if err != nil {
33 34
 		utils.LogError("获取客户列表失败: " + err.Error())
34 35
 		c.ResponseError(
@@ -38,8 +39,10 @@ func (c *CustomerController) CustWXList() {
38 39
 	}
39 40
 
40 41
 	c.ResponseJSON(map[string]interface{}{
41
-		"list":  custList,
42
-		"total": total,
42
+		"list":     custList,
43
+		"pagenum":  total,
44
+		"page":     page,
45
+		"pagesize": pageSize,
43 46
 	})
44 47
 }
45 48
 

+ 10
- 0
controllers/system/role.go Wyświetl plik

@@ -45,6 +45,16 @@ func (c *RoleController) GetRoleByID() {
45 45
 	c.ResponseJSON(info)
46 46
 }
47 47
 
48
+// GetRoleMenuByRole 获取角色菜单
49
+func (c *RoleController) GetRoleMenuByRole() {
50
+	roleid := c.GetString(":roleid")
51
+	menus, err := c.dao.GetRoleMeneByID(roleid)
52
+	if err != nil {
53
+		c.ResponseError(err)
54
+	}
55
+	c.ResponseJSON(menus)
56
+}
57
+
48 58
 // SaveCaseRole 保存角色
49 59
 func (c *RoleController) SaveCaseRole() {
50 60
 	role := model.SysRole{}

+ 1
- 1
models/channel/channel.go Wyświetl plik

@@ -53,7 +53,7 @@ func (m *ChannelDAO) GetChannels(caseid string, page int, pageSize int) ([]Chann
53 53
 // GetChannelById 根据渠道id获取渠道
54 54
 func (m *ChannelDAO) GetChannelById(channelId string) (*model.TaChannel, error) {
55 55
 	var channel []model.TaChannel
56
-	err := m.db.Where("channel_id = ", channelId).And("status > ?", models.STATUS_DEL).Find(&channel)
56
+	err := m.db.Where("channel_id = ?", channelId).And("status > ?", models.STATUS_DEL).Find(&channel)
57 57
 	if err != nil {
58 58
 		return nil, err
59 59
 	}

+ 3
- 0
models/customer/customer.go Wyświetl plik

@@ -40,6 +40,9 @@ func (m *CustomerDAO) CustWithWXList(phone string, page ...int) ([]CustWithWX, i
40 40
 	if m.ctx.Get("pageNum") != nil {
41 41
 		pageNum = m.ctx.Get("pageNum").(int)
42 42
 	}
43
+	if len(page) > 1 {
44
+		pageNum = page[1]
45
+	}
43 46
 
44 47
 	pg := 1
45 48
 	if len(page) > 0 {

+ 1
- 0
models/model/sys_menu.go Wyświetl plik

@@ -16,4 +16,5 @@ type SysMenu struct {
16 16
 	Status     int       `xorm:"SMALLINT(6)"`
17 17
 	CreateDate time.Time `xorm:"DATETIME"`
18 18
 	OrgId      string    `xorm:"VARCHAR(64)"`
19
+	FatherIds  string    `xorm:"TEXT"`
19 20
 }

+ 21
- 3
models/system/role.go Wyświetl plik

@@ -60,8 +60,8 @@ type Role struct {
60 60
 }
61 61
 
62 62
 // GetRoleByID 根据ID获取角色
63
-func (m *RoleDAO) GetRoleByID(roleid string) (*Role, error) {
64
-	var roles []Role
63
+func (m *RoleDAO) GetRoleByID(roleid string) (*model.SysRole, error) {
64
+	var roles []model.SysRole
65 65
 	sql := `select * from sys_role where role_id='` + roleid + `' and status>` + strconv.Itoa(models.STATUS_DEL)
66 66
 	err := m.db.Sql(sql).Find(&roles)
67 67
 	if err != nil {
@@ -122,7 +122,25 @@ func (m *RoleDAO) DelRoleMenu(roleid string) error {
122 122
 
123 123
 // SaveRoleMenu 保存角色对应的菜单
124 124
 func (m *RoleDAO) SaveRoleMenu(roleid, menuids string) error {
125
-	sql := `insert into sys_role_menu(role_id,menu_id) select '` + roleid + `', menu_id from sys_menu where menu_id in ('` + strings.Replace(menuids, ",", "','", -1) + `') and status > ` + strconv.Itoa(models.STATUS_DEL)
125
+	sql := `insert into sys_role_menu(role_id,menu_id) select DISTINCT '` + roleid + `', a.menu_id from sys_menu a left join sys_menu b on find_in_set(b.menu_id,a.father_ids) where (b.menu_id in ('` + strings.Replace(menuids, ",", "','", -1) + `') or a.menu_id in ('` + strings.Replace(menuids, ",", "','", -1) + `')) and a.status> ` + strconv.Itoa(models.STATUS_DEL)
126
+	_, err := m.db.Exec(sql)
127
+	return err
128
+}
129
+
130
+// DelUserMenusByRole 批量删除处理用户对应菜单信息
131
+func (m *RoleDAO) DelUserMenusByRole(roleid string) error {
132
+	sql := "delete a from sys_user_menu a inner join sys_user_role b on a.user_id=b.user_id where b.role_id='" + roleid + "'"
133
+	_, err := m.db.Exec(sql)
134
+	return err
135
+}
136
+
137
+// SaveUserMenusByRole 批量保存用户对应菜单信息
138
+func (m *RoleDAO) SaveUserMenus(roleid string) error {
139
+	sql := `insert into sys_user_menu (user_id,menu_id)
140
+	select DISTINCT c.user_id,a.menu_id from sys_menu a 
141
+	inner join sys_role_menu b on a.menu_id = b.menu_id
142
+	inner join sys_user_role c on b.role_id = c.role_id
143
+	where c.user_id in (select user_id from sys_user_role where role_id='` + roleid + `')`
126 144
 	_, err := m.db.Exec(sql)
127 145
 	return err
128 146
 }

+ 8
- 1
models/system/user.go Wyświetl plik

@@ -213,6 +213,13 @@ func (m *UserDAO) SaveUserRole(userid, roleids string) error {
213 213
 	return err
214 214
 }
215 215
 
216
+// GetUserByRole 根据角色获取用户信息
217
+func (m *UserDAO) GetUserByRole(roleid string) ([]model.SysUserRole, error) {
218
+	var userroles []model.SysUserRole
219
+	err := m.db.Where("role_id=?", roleid).Find(&userroles)
220
+	return userroles, err
221
+}
222
+
216 223
 // DelUserMenu 删除用户对应的菜单信息
217 224
 func (m *UserDAO) DelUserMenu(userid string) error {
218 225
 	sql := "delete from sys_user_menu where user_id='" + userid + "'"
@@ -284,7 +291,7 @@ func (m *UserDAO) ValidatePassword(user *model.SysUser, password string) bool {
284 291
 func (m *UserDAO) UpdatePassword(userID, newPass string) error {
285 292
 	password := encrypt.Md5(newPass, userID)
286 293
 
287
-	sql := "update sys_user set passwd=? where user_id=?"
294
+	sql := "update sys_user set pwd=? where user_id=?"
288 295
 
289 296
 	_, err := m.db.Exec(sql, password, userID)
290 297
 	if err != nil {

+ 1
- 0
routers/common.go Wyświetl plik

@@ -148,6 +148,7 @@ func getCommonRoutes() beego.LinkNamespace {
148 148
 		beego.NSRouter("/role", &system.RoleController{}, "put:SaveCaseRole"),
149 149
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "delete:DelCaseRole"),
150 150
 
151
+		beego.NSRouter("/rolemenu/:roleid", &system.RoleController{}, "get:GetRoleMenuByRole"),
151 152
 		beego.NSRouter("/rolemenu/:roleid", &system.RoleController{}, "put:SaveRoleMenus"),
152 153
 
153 154
 		// course 课程

+ 26
- 10
service/system/role.go Wyświetl plik

@@ -51,23 +51,33 @@ func (s *RoleServ) GetRoleList(caseids, name, caseid string, page, pageSize int)
51 51
 }
52 52
 
53 53
 // GetRoleByID 根据ID获取角色
54
-func (s *RoleServ) GetRoleByID(roleid string) (*system.Role, error) {
54
+func (s *RoleServ) GetRoleByID(roleid string) (*model.SysRole, error) {
55 55
 	role, err := s.dao.GetRoleByID(roleid)
56 56
 	if err != nil {
57 57
 		beego.Error(err)
58 58
 		return nil, err
59 59
 	}
60
-	if role != nil {
61
-		menus, err := s.dao.GetRoleMenuByRoleID(roleid)
62
-		if err != nil {
63
-			beego.Error(err)
64
-			return nil, err
65
-		}
66
-		role.RoleMenu = menus
67
-	}
60
+	// if role != nil {
61
+	// 	menus, err := s.dao.GetRoleMenuByRoleID(roleid)
62
+	// 	if err != nil {
63
+	// 		beego.Error(err)
64
+	// 		return nil, err
65
+	// 	}
66
+	// 	role.RoleMenu = menus
67
+	// }
68 68
 	return role, err
69 69
 }
70 70
 
71
+// GetRoleMeneByID 根据ID获取角色菜单
72
+func (s *RoleServ) GetRoleMeneByID(roleid string) ([]model.SysMenu, error) {
73
+	menus, err := s.dao.GetRoleMenuByRoleID(roleid)
74
+	if err != nil {
75
+		beego.Error(err)
76
+		return nil, err
77
+	}
78
+	return menus, nil
79
+}
80
+
71 81
 // SaveRole 保存角色
72 82
 func (s *RoleServ) SaveRole(role model.SysRole) (*model.SysRole, error) {
73 83
 	var newInfo *model.SysRole
@@ -99,7 +109,13 @@ func (s *RoleServ) SaveRoleMenu(roleid, menuids string) error {
99 109
 		beego.Error(err)
100 110
 		return err
101 111
 	}
102
-	return nil
112
+	err = s.dao.DelUserMenusByRole(roleid)
113
+	if err != nil {
114
+		beego.Error(err)
115
+		return err
116
+	}
117
+	err = s.dao.SaveUserMenus(roleid)
118
+	return err
103 119
 }
104 120
 
105 121
 // DelRole 删除角色