浏览代码

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

zjxpcyc 6 年前
父节点
当前提交
aacb832386

+ 3
- 1
controllers/cases/caseuser.go 查看文件

5
 // GetCaseUserByCase 根据案场获取用户信息
5
 // GetCaseUserByCase 根据案场获取用户信息
6
 func (c *CaseController) GetCaseUserByCase() {
6
 func (c *CaseController) GetCaseUserByCase() {
7
 	caseid := c.GetString("caseid")
7
 	caseid := c.GetString("caseid")
8
+	page, _ := c.GetInt("page")
9
+	pageSize, _ := c.GetInt("pagesize")
8
 
10
 
9
-	list, err := c.dao.GetCaseUserByCase(caseid)
11
+	list, err := c.dao.GetCaseUserByCase(caseid, page, pageSize)
10
 
12
 
11
 	if err != nil {
13
 	if err != nil {
12
 		c.ResponseError(err)
14
 		c.ResponseError(err)

+ 66
- 0
controllers/channel/channel.go 查看文件

1
+package channel
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service/channel"
7
+)
8
+
9
+// CaseController 信息
10
+type ChannelController struct {
11
+	dao *channel.ChannelServ
12
+	controllers.BaseController
13
+}
14
+
15
+// Constructor 初始化 Controller
16
+// @Title Constructor
17
+// @Description 初始化 Controller, 系统自动调用
18
+func (c *ChannelController) Constructor() {
19
+	c.dao = channel.NewChannelServ(c.Context)
20
+}
21
+
22
+// GetChannelList获取渠道列表
23
+func (c *ChannelController) GetChannelList() {
24
+	cases := c.Context.Get("cases").([]model.SysUserCase)
25
+	caseIDs := c.GetCaseIDs(cases)
26
+	page, _ := c.GetInt("page")
27
+	pageSize, _ := c.GetInt("pagesize")
28
+	list, err := c.dao.GetChannelList(caseIDs, page, pageSize)
29
+	if err != nil {
30
+		c.ResponseError(err)
31
+	}
32
+	c.ResponseJSON(list)
33
+}
34
+
35
+// GetChannelById根据id获取渠道
36
+func (c *ChannelController) GetChannelById() {
37
+	caseid := c.GetString(":channelId")
38
+	channel, err := c.dao.GetChannelById(caseid)
39
+	if err != nil {
40
+		c.ResponseError(err)
41
+	}
42
+	c.ResponseJSON(channel)
43
+}
44
+
45
+// SaveChannel 保存渠道信息
46
+func (c *ChannelController) SaveChannel() {
47
+	channel := model.TaChannel{}
48
+	if err := c.ParseForm(&channel); err != nil {
49
+		c.ResponseError(err)
50
+	}
51
+	newChannel, err := c.dao.SaveChannel(channel)
52
+	if err != nil {
53
+		c.ResponseError(err)
54
+	}
55
+	c.ResponseJSON(newChannel)
56
+}
57
+
58
+// DeleteChannel 删除渠道
59
+func (c *ChannelController) DeleteChannel() {
60
+	channelId := c.GetString(":channelId")
61
+	err := c.dao.DeleteChannel(channelId)
62
+	if err != nil {
63
+		c.ResponseError(err)
64
+	}
65
+	c.ResponseJSON("删除成功")
66
+}

+ 6
- 3
controllers/customer/customer.go 查看文件

27
 func (c *CustomerController) CustWXList() {
27
 func (c *CustomerController) CustWXList() {
28
 	phone := c.GetString("phone")
28
 	phone := c.GetString("phone")
29
 	page, _ := c.GetInt("page")
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
 	if err != nil {
33
 	if err != nil {
33
 		utils.LogError("获取客户列表失败: " + err.Error())
34
 		utils.LogError("获取客户列表失败: " + err.Error())
34
 		c.ResponseError(
35
 		c.ResponseError(
38
 	}
39
 	}
39
 
40
 
40
 	c.ResponseJSON(map[string]interface{}{
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
 

+ 20
- 0
controllers/message/cmscase.go 查看文件

60
 	}
60
 	}
61
 	c.ResponseJSON("删除成功!")
61
 	c.ResponseJSON("删除成功!")
62
 }
62
 }
63
+
64
+// CmsCaseShow 前台展示
65
+func (c *MessageController) CmsCaseShow() {
66
+	cmscaseid := c.GetString(":cmscaseid")
67
+	err := c.dao.CmsCaseShow(cmscaseid)
68
+	if err != nil {
69
+		c.ResponseError(err)
70
+	}
71
+	c.ResponseJSON("操作成功!")
72
+}
73
+
74
+// CmsCaseHide 前台隐藏
75
+func (c *MessageController) CmsCaseHide() {
76
+	cmscaseid := c.GetString(":cmscaseid")
77
+	err := c.dao.CmsCaseHide(cmscaseid)
78
+	if err != nil {
79
+		c.ResponseError(err)
80
+	}
81
+	c.ResponseJSON("操作成功!")
82
+}

+ 11
- 0
controllers/message/location.go 查看文件

45
 	}
45
 	}
46
 	c.ResponseJSON("删除成功!")
46
 	c.ResponseJSON("删除成功!")
47
 }
47
 }
48
+
49
+// UpdateLocationSort 修改位置的排序
50
+func (c *MessageController) UpdateLocationSort() {
51
+	locations := c.GetString("locations")
52
+
53
+	err := c.dao.UpdateLocationSort(locations)
54
+	if err != nil {
55
+		c.ResponseError(err)
56
+	}
57
+	c.ResponseJSON("操作成功!")
58
+}

+ 3
- 1
controllers/message/news.go 查看文件

1
 package message
1
 package message
2
 
2
 
3
-import "spaceofcheng/services/models/model"
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+)
4
 
6
 
5
 // GetNews 获取咨询列表
7
 // GetNews 获取咨询列表
6
 func (c *MessageController) GetNews() {
8
 func (c *MessageController) GetNews() {

+ 25
- 3
controllers/system/role.go 查看文件

25
 	caseIDs := c.GetCaseIDs(cases)
25
 	caseIDs := c.GetCaseIDs(cases)
26
 	page, _ := c.GetInt("page")
26
 	page, _ := c.GetInt("page")
27
 	pageSize, _ := c.GetInt("pagesize")
27
 	pageSize, _ := c.GetInt("pagesize")
28
+	name := c.GetString("name")
29
+	caseid := c.GetString("caseid")
28
 
30
 
29
-	list, err := c.dao.GetRoleList(caseIDs, page, pageSize)
31
+	list, err := c.dao.GetRoleList(caseIDs, name, caseid, page, pageSize)
30
 	if err != nil {
32
 	if err != nil {
31
 		c.ResponseError(err)
33
 		c.ResponseError(err)
32
 	}
34
 	}
43
 	c.ResponseJSON(info)
45
 	c.ResponseJSON(info)
44
 }
46
 }
45
 
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
+
46
 // SaveCaseRole 保存角色
58
 // SaveCaseRole 保存角色
47
 func (c *RoleController) SaveCaseRole() {
59
 func (c *RoleController) SaveCaseRole() {
48
 	role := model.SysRole{}
60
 	role := model.SysRole{}
49
 	if err := c.ParseForm(&role); err != nil {
61
 	if err := c.ParseForm(&role); err != nil {
50
 		c.ResponseError(err)
62
 		c.ResponseError(err)
51
 	}
63
 	}
52
-	menuids := c.GetString("menuids")
53
-	newRole, err := c.dao.SaveRole(role, menuids)
64
+	newRole, err := c.dao.SaveRole(role)
54
 	if err != nil {
65
 	if err != nil {
55
 		c.ResponseError(err)
66
 		c.ResponseError(err)
56
 	}
67
 	}
57
 	c.ResponseJSON(newRole)
68
 	c.ResponseJSON(newRole)
58
 }
69
 }
59
 
70
 
71
+// SaveRoleMenus 保存角色对应菜单
72
+func (c *RoleController) SaveRoleMenus() {
73
+	roleid := c.GetString(":roleid")
74
+	menuids := c.GetString("menuids")
75
+	err := c.dao.SaveRoleMenu(roleid, menuids)
76
+	if err != nil {
77
+		c.ResponseError(err)
78
+	}
79
+	c.ResponseJSON("保存成功!")
80
+}
81
+
60
 // DelCaseRole 删除角色
82
 // DelCaseRole 删除角色
61
 func (c *RoleController) DelCaseRole() {
83
 func (c *RoleController) DelCaseRole() {
62
 	roleid := c.GetString(":roleid")
84
 	roleid := c.GetString(":roleid")

+ 24
- 0
controllers/user/user.go 查看文件

72
 	c.ResponseJSON(userList)
72
 	c.ResponseJSON(userList)
73
 }
73
 }
74
 
74
 
75
+// GetUserTypes 获取用户类型
76
+func (c *UserController) GetUserTypes() {
77
+	cases := c.Context.Get("cases").([]model.SysUserCase)
78
+	caseIDs := c.GetCaseIDs(cases)
79
+	usertypes, err := c.dao.GetUserTypes(caseIDs)
80
+	if err != nil {
81
+		c.ResponseError(err)
82
+	}
83
+	c.ResponseJSON(usertypes)
84
+}
85
+
75
 // UserMapping 用户映射
86
 // UserMapping 用户映射
76
 func (c *UserController) UserMapping() {
87
 func (c *UserController) UserMapping() {
77
 	userMapping := model.TaUserMapping{}
88
 	userMapping := model.TaUserMapping{}
202
 
213
 
203
 	c.ResponseJSON(vars)
214
 	c.ResponseJSON(vars)
204
 }
215
 }
216
+
217
+// GetUserRole 获取用户角色
218
+func (c *UserController) GetUserRole() {
219
+	userid := c.GetString("userid")
220
+	roles, err := c.dao.GetUserRoles(userid)
221
+	if err != nil {
222
+		c.ResponseError(
223
+			err,
224
+			http.StatusInternalServerError,
225
+		)
226
+	}
227
+	c.ResponseJSON(roles)
228
+}

+ 2
- 1
models/cases/area.go 查看文件

34
 // GetCaseAreaByCase 根据案场获取案场区域
34
 // GetCaseAreaByCase 根据案场获取案场区域
35
 func (m *CaseDAO) GetCaseAreaByCase(caseid string) ([]AreaInfo, error) {
35
 func (m *CaseDAO) GetCaseAreaByCase(caseid string) ([]AreaInfo, error) {
36
 	var areas []AreaInfo
36
 	var areas []AreaInfo
37
-	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("case_id =?", caseid).Table("sys_case_area").Find(&areas)
37
+	sql := `select * from sys_case_area where status>` + strconv.Itoa(models.STATUS_DEL) + ` and case_id ='` + caseid + `'`
38
+	err := m.db.Sql(sql).Find(&sql)
38
 	return areas, err
39
 	return areas, err
39
 }
40
 }
40
 
41
 

+ 1
- 1
models/cases/cases.go 查看文件

40
 		sql = sql + ` and  a.case_name like '%` + casename + `%'`
40
 		sql = sql + ` and  a.case_name like '%` + casename + `%'`
41
 	}
41
 	}
42
 
42
 
43
-	sql = sql + " order by create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa((page+1)*pageSize)
43
+	sql = sql + " order by create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(page*pageSize)
44
 
44
 
45
 	err := m.db.Sql(sql).Find(&cases)
45
 	err := m.db.Sql(sql).Find(&cases)
46
 	return cases, err
46
 	return cases, err

+ 12
- 2
models/cases/caseuser.go 查看文件

9
 )
9
 )
10
 
10
 
11
 // GetCaseUserByCase 根据案场id获取案场相关人员
11
 // GetCaseUserByCase 根据案场id获取案场相关人员
12
-func (m *CaseDAO) GetCaseUserByCase(caseid string) ([]model.SysCaseUser, error) {
12
+func (m *CaseDAO) GetCaseUserByCase(caseid string, page int, pageSize int) ([]model.SysCaseUser, error) {
13
 	var caseusers []model.SysCaseUser
13
 	var caseusers []model.SysCaseUser
14
-	err := m.db.Where("case_id=?", caseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&caseusers)
14
+	err := m.db.Where("case_id=?", caseid).And("status>"+strconv.Itoa(models.STATUS_DEL)).Limit(pageSize, (page-1)*pageSize).Find(&caseusers)
15
 	return caseusers, err
15
 	return caseusers, err
16
 }
16
 }
17
 
17
 
18
+// GetCaseUserCount 列表数量
19
+func (m *CaseDAO) GetCaseUserCount(caseid string) (int, error) {
20
+	var caseusers []model.SysCaseUser
21
+	err := m.db.Where("case_id=?", caseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&caseusers)
22
+	if err != nil {
23
+		return 0, err
24
+	}
25
+	return len(caseusers), nil
26
+}
27
+
18
 // GetCaseUserByID 根据id获取相关人员
28
 // GetCaseUserByID 根据id获取相关人员
19
 func (m *CaseDAO) GetCaseUserByID(userid string) (*model.SysCaseUser, error) {
29
 func (m *CaseDAO) GetCaseUserByID(userid string) (*model.SysCaseUser, error) {
20
 	var caseusers []model.SysCaseUser
30
 	var caseusers []model.SysCaseUser

+ 10
- 4
models/cases/equipment.go 查看文件

6
 	"spaceofcheng/services/utils"
6
 	"spaceofcheng/services/utils"
7
 	"strconv"
7
 	"strconv"
8
 	"strings"
8
 	"strings"
9
+	"time"
9
 )
10
 )
10
 
11
 
11
 // GetEquipmentList 获取体检设备
12
 // GetEquipmentList 获取体检设备
25
 // GetCaseEquipmentByID 根据ID获取体检设备
26
 // GetCaseEquipmentByID 根据ID获取体检设备
26
 func (m *CaseDAO) GetCaseEquipmentByID(equipmentid string) (*model.SysCaseEquipment, error) {
27
 func (m *CaseDAO) GetCaseEquipmentByID(equipmentid string) (*model.SysCaseEquipment, error) {
27
 	var caseEquipment []model.SysCaseEquipment
28
 	var caseEquipment []model.SysCaseEquipment
28
-	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("spec_id=?", equipmentid).Find(&caseEquipment)
29
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("equipment_id=?", equipmentid).Find(&caseEquipment)
29
 	if err != nil {
30
 	if err != nil {
30
 		return nil, err
31
 		return nil, err
31
 	}
32
 	}
39
 func (m *CaseDAO) AddCaseEquipment(caseEquipment *model.SysCaseEquipment) (*model.SysCaseEquipment, error) {
40
 func (m *CaseDAO) AddCaseEquipment(caseEquipment *model.SysCaseEquipment) (*model.SysCaseEquipment, error) {
40
 	caseEquipment.EquipmentId = utils.GetGUID()
41
 	caseEquipment.EquipmentId = utils.GetGUID()
41
 	caseEquipment.Status = models.STATUS_NORMAL
42
 	caseEquipment.Status = models.STATUS_NORMAL
43
+	caseEquipment.CreateDate = time.Now()
44
+	user := m.ctx.Get("user").(model.SysUser)
45
+	caseEquipment.CreateUser = user.UserId
42
 	_, err := m.db.Insert(caseEquipment)
46
 	_, err := m.db.Insert(caseEquipment)
43
 	return caseEquipment, err
47
 	return caseEquipment, err
44
 }
48
 }
46
 // UpdateCaseEquipment 修改体检设备
50
 // UpdateCaseEquipment 修改体检设备
47
 func (m *CaseDAO) UpdateCaseEquipment(caseEquipment model.SysCaseEquipment) error {
51
 func (m *CaseDAO) UpdateCaseEquipment(caseEquipment model.SysCaseEquipment) error {
48
 	var cols = []string{
52
 	var cols = []string{
49
-		"spec_name",
53
+		"name",
54
+		"equipment_code",
55
+		"case_id",
50
 	}
56
 	}
51
-	_, err := m.db.Cols(cols...).Where("spec_id=?", caseEquipment.EquipmentId).Update(caseEquipment)
57
+	_, err := m.db.Cols(cols...).Where("equipment_id=?", caseEquipment.EquipmentId).Update(caseEquipment)
52
 	return err
58
 	return err
53
 }
59
 }
54
 
60
 
61
 	var cols = []string{
67
 	var cols = []string{
62
 		"status",
68
 		"status",
63
 	}
69
 	}
64
-	_, err := m.db.Cols(cols...).Where("spec_id=?", caseEquipment.EquipmentId).Update(caseEquipment)
70
+	_, err := m.db.Cols(cols...).Where("equipment_id=?", caseEquipment.EquipmentId).Update(caseEquipment)
65
 	return err
71
 	return err
66
 }
72
 }

+ 19
- 4
models/cases/key.go 查看文件

5
 	"spaceofcheng/services/models/model"
5
 	"spaceofcheng/services/models/model"
6
 	"spaceofcheng/services/utils"
6
 	"spaceofcheng/services/utils"
7
 	"strconv"
7
 	"strconv"
8
+	"strings"
8
 	"time"
9
 	"time"
9
 )
10
 )
10
 
11
 
39
 	}
40
 	}
40
 
41
 
41
 	offset := (page - 1) * pageSize
42
 	offset := (page - 1) * pageSize
42
-	query += " LIMIT " + strconv.Itoa(pageSize) + " OFFSET " + strconv.Itoa(offset)
43
+	query += " order by lock_num asc LIMIT " + strconv.Itoa(pageSize) + " OFFSET " + strconv.Itoa(offset)
43
 
44
 
44
 	err := m.db.SQL(query, models.STATUS_NORMAL, caseid, models.STATUS_DEL).Find(&keys)
45
 	err := m.db.SQL(query, models.STATUS_NORMAL, caseid, models.STATUS_DEL).Find(&keys)
45
 	return keys, err
46
 	return keys, err
46
 }
47
 }
47
 
48
 
48
 // GetKeysCountByCase 根据案场获取钥匙数量
49
 // GetKeysCountByCase 根据案场获取钥匙数量
49
-func (m *CaseDAO) GetKeysCountByCase(caseid string) (int, error) {
50
+func (m *CaseDAO) GetKeysCountByCase(caseid, num string) (int, error) {
50
 	var keys []model.TaCaseKey
51
 	var keys []model.TaCaseKey
51
-	err := m.db.Where("case_id=?", caseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&keys)
52
+	dao := m.db.Where("case_id=?", caseid).And("status>" + strconv.Itoa(models.STATUS_DEL))
53
+	if num != "" {
54
+		dao.And("num like '%" + num + "%'")
55
+	}
56
+	err := dao.Find(&keys)
52
 	return len(keys), err
57
 	return len(keys), err
53
 }
58
 }
54
 
59
 
81
 // AddKey 新增单个钥匙信息
86
 // AddKey 新增单个钥匙信息
82
 func (m *CaseDAO) AddKey(key model.TaCaseKey) (*model.TaCaseKey, error) {
87
 func (m *CaseDAO) AddKey(key model.TaCaseKey) (*model.TaCaseKey, error) {
83
 	key.KeyId = utils.GetGUID()
88
 	key.KeyId = utils.GetGUID()
84
-	key.Status = models.STATUS_NORMAL
89
+	key.Status = STATUS_UNLOCK
85
 	key.CreateDate = time.Now()
90
 	key.CreateDate = time.Now()
86
 	_, err := m.db.Insert(key)
91
 	_, err := m.db.Insert(key)
87
 	return &key, err
92
 	return &key, err
106
 	_, err := m.db.Exec(sql)
111
 	_, err := m.db.Exec(sql)
107
 	return err
112
 	return err
108
 }
113
 }
114
+
115
+// GetKeyByNumRange 根据区间获取钥匙
116
+func (m *CaseDAO) GetKeyByNumRange(caseid, nums string) ([]model.TaCaseKey, error) {
117
+	var keys []model.TaCaseKey
118
+	sql := `select * from ta_case_key where status>` + strconv.Itoa(models.STATUS_DEL) + `
119
+	and case_id='` + caseid + `' and lock_num in ('` + strings.Replace(nums, ",", "','", -1) + `')`
120
+
121
+	err := m.db.Sql(sql).Find(keys)
122
+	return keys, err
123
+}

+ 2
- 1
models/cases/table.go 查看文件

30
 	sql := `select a.*,b.area_name,c.case_name from sys_case_table a 
30
 	sql := `select a.*,b.area_name,c.case_name from sys_case_table a 
31
 	inner join sys_case_area b on a.area_id=b.area_id
31
 	inner join sys_case_area b on a.area_id=b.area_id
32
 	inner join sys_case c on a.case_id=c.case_id
32
 	inner join sys_case c on a.case_id=c.case_id
33
-	where status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.case_id in ('` +
33
+	where a.status>` + strconv.Itoa(models.STATUS_DEL) + ` and b.status>` + strconv.Itoa(models.STATUS_DEL) +
34
+		` and c.status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.case_id in ('` +
34
 		strings.Replace(caseids, ",", "','", -1) + `')`
35
 		strings.Replace(caseids, ",", "','", -1) + `')`
35
 
36
 
36
 	err := m.db.Sql(sql).Find(&tables)
37
 	err := m.db.Sql(sql).Find(&tables)

+ 20
- 9
models/cases/tag.go 查看文件

7
 	"strconv"
7
 	"strconv"
8
 	"strings"
8
 	"strings"
9
 	"time"
9
 	"time"
10
+
11
+	"github.com/astaxie/beego"
10
 )
12
 )
11
 
13
 
12
 // GetTagCount 获取标签总数
14
 // GetTagCount 获取标签总数
13
 func (m *CaseDAO) GetTagCount(caseids string) (int, error) {
15
 func (m *CaseDAO) GetTagCount(caseids string) (int, error) {
14
-	var tags []model.SysTag
15
-	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&tags)
16
+	var tags []TagInfo
17
+	sql := `select tag.*,c.case_names from sys_tag tag inner join (
18
+	select b.tag_id,GROUP_CONCAT(a.case_name) case_names from sys_case a inner join sys_tag_case b on a.case_id=b.case_id and a.status > ` + strconv.Itoa(models.STATUS_DEL) + `
19
+	where b.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and b.tag_id not in (select tag_id from sys_tag_case where case_id not in ('` +
20
+		strings.Replace(caseids, ",", "','", -1) + `'))
21
+	group by b.tag_id ) c on tag.tag_id = c.tag_id where tag.status>` + strconv.Itoa(models.STATUS_DEL)
22
+	err := m.db.Sql(sql).Find(&tags)
23
+
16
 	return len(tags), err
24
 	return len(tags), err
17
 }
25
 }
18
 
26
 
19
 // TagInfo 标签
27
 // TagInfo 标签
20
 type TagInfo struct {
28
 type TagInfo struct {
21
-	model.TaCmsCase `xorm:"extends"`
22
-	CaseNames       string
29
+	model.SysTag `xorm:"extends"`
30
+	CaseNames    string
23
 }
31
 }
24
 
32
 
25
 // GetTagList 根据案场获取标签
33
 // GetTagList 根据案场获取标签
26
 func (m *CaseDAO) GetTagList(caseids string, page int, pageSize int) ([]TagInfo, error) {
34
 func (m *CaseDAO) GetTagList(caseids string, page int, pageSize int) ([]TagInfo, error) {
27
 	var tags []TagInfo
35
 	var tags []TagInfo
36
+	offset := (page - 1) * pageSize
28
 	sql := `select tag.*,c.case_names from sys_tag tag inner join (
37
 	sql := `select tag.*,c.case_names from sys_tag tag inner join (
29
 	select b.tag_id,GROUP_CONCAT(a.case_name) case_names from sys_case a inner join sys_tag_case b on a.case_id=b.case_id and a.status > ` + strconv.Itoa(models.STATUS_DEL) + `
38
 	select b.tag_id,GROUP_CONCAT(a.case_name) case_names from sys_case a inner join sys_tag_case b on a.case_id=b.case_id and a.status > ` + strconv.Itoa(models.STATUS_DEL) + `
30
 	where b.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and b.tag_id not in (select tag_id from sys_tag_case where case_id not in ('` +
39
 	where b.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and b.tag_id not in (select tag_id from sys_tag_case where case_id not in ('` +
31
 		strings.Replace(caseids, ",", "','", -1) + `'))
40
 		strings.Replace(caseids, ",", "','", -1) + `'))
32
-	group by b.tag_id ) c on tag.tag_id = c.tag_id`
41
+	group by b.tag_id ) c on tag.tag_id = c.tag_id where tag.status>` + strconv.Itoa(models.STATUS_DEL) + ` LIMIT ` + strconv.Itoa(pageSize) + ` OFFSET ` + strconv.Itoa(offset)
33
 
42
 
34
-	err := m.db.Sql(sql).Find(tags)
43
+	err := m.db.Sql(sql).Find(&tags)
35
 	return tags, err
44
 	return tags, err
36
 }
45
 }
37
 
46
 
38
 // Tag 标签
47
 // Tag 标签
39
 type Tag struct {
48
 type Tag struct {
40
-	model.TaCmsCase `xorm:"extends"`
41
-	TagCases        []model.SysTagCase
49
+	model.SysTag `xorm:"extends"`
50
+	TagCases     []model.SysTagCase
42
 }
51
 }
43
 
52
 
44
 // GetTagByID 根据ID获取标签
53
 // GetTagByID 根据ID获取标签
45
 func (m *CaseDAO) GetTagByID(tagid string) (*Tag, error) {
54
 func (m *CaseDAO) GetTagByID(tagid string) (*Tag, error) {
46
 	var tags []Tag
55
 	var tags []Tag
47
-	err := m.db.Table("sys_tag").Where("tag_id=?", tagid).Find(&tags)
56
+	sql := `select * from sys_tag where tag_id='` + tagid + `'`
57
+	err := m.db.Sql(sql).Find(&tags)
48
 	if err != nil {
58
 	if err != nil {
49
 		return nil, err
59
 		return nil, err
50
 	}
60
 	}
81
 
91
 
82
 // DeleteTag 刪除标签
92
 // DeleteTag 刪除标签
83
 func (m *CaseDAO) DeleteTag(tagid string) error {
93
 func (m *CaseDAO) DeleteTag(tagid string) error {
94
+	beego.Error(tagid)
84
 	var tag = model.SysTag{
95
 	var tag = model.SysTag{
85
 		TagId:  tagid,
96
 		TagId:  tagid,
86
 		Status: models.STATUS_DEL,
97
 		Status: models.STATUS_DEL,

+ 97
- 0
models/channel/channel.go 查看文件

1
+package channel
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+	"time"
10
+
11
+	"github.com/go-xorm/xorm"
12
+)
13
+
14
+// ChannelDAO 当前数据库操作对象
15
+type ChannelDAO struct {
16
+	ctx *utils.Context
17
+	db  *xorm.Session
18
+}
19
+
20
+// NewChannelDAO New Inst
21
+func NewChannelDAO(ctx *utils.Context) *ChannelDAO {
22
+	return &ChannelDAO{
23
+		ctx: ctx,
24
+		db:  ctx.DB,
25
+	}
26
+}
27
+
28
+type Channel struct {
29
+	model.TaChannel `xorm:"extends"`
30
+	CaseName        string
31
+}
32
+
33
+// GetChannelsCount 获取渠道总数
34
+func (m *ChannelDAO) GetChannelsCount(caseid string) (int, error) {
35
+	var channels []model.TaChannel
36
+	dao := m.db.Where("status >" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseid, ",", "','", -1) + "')")
37
+	err := dao.Find(&channels)
38
+	return len(channels), err
39
+}
40
+
41
+// GetChannels 根据案场获取渠道
42
+func (m *ChannelDAO) GetChannels(caseid string, page int, pageSize int) ([]Channel, error) {
43
+	var channels []Channel
44
+	sql := `
45
+	select a.*,b.case_name 
46
+	from ta_channel a 
47
+	inner join sys_case b on a.case_id = b.case_id 
48
+	where a.case_id in('` + strings.Replace(caseid, ",", "','", -1) + `') and b.status> ` + strconv.Itoa(models.STATUS_DEL) + ` and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
49
+	err := m.db.Sql(sql).Find(&channels)
50
+	return channels, err
51
+}
52
+
53
+// GetChannelById 根据渠道id获取渠道
54
+func (m *ChannelDAO) GetChannelById(channelId string) (*model.TaChannel, error) {
55
+	var channel []model.TaChannel
56
+	err := m.db.Where("channel_id = ?", channelId).And("status > ?", models.STATUS_DEL).Find(&channel)
57
+	if err != nil {
58
+		return nil, err
59
+	}
60
+	if len(channel) > 0 {
61
+		return &channel[0], nil
62
+	}
63
+	return nil, nil
64
+}
65
+
66
+// AddNewChannel 新增渠道
67
+func (m *ChannelDAO) AddNewChannel(channel model.TaChannel) (*model.TaChannel, error) {
68
+	channel.ChannelId = utils.GetGUID()
69
+	channel.CreateDate = time.Now()
70
+	channel.Status = models.STATUS_NORMAL
71
+	_, err := m.db.Insert(channel)
72
+	return &channel, err
73
+}
74
+
75
+// UpdateChannel 修改渠道
76
+func (m *ChannelDAO) UpdateChannel(channel model.TaChannel) error {
77
+	var cols = []string{
78
+		"channel_name",
79
+		"case_id",
80
+		"org_id",
81
+	}
82
+	_, err := m.db.Cols(cols...).Where("channel_id=?", channel.ChannelId).Update(channel)
83
+	return err
84
+}
85
+
86
+// DeleteChannel 删除渠道
87
+func (m *ChannelDAO) DeleteChannel(channelId string) error {
88
+	var channel = model.TaChannel{
89
+		ChannelId: channelId,
90
+		Status:    models.STATUS_DEL,
91
+	}
92
+	var cols = []string{
93
+		"status",
94
+	}
95
+	_, err := m.db.Cols(cols...).Where("channel_id", channel.ChannelId).Update(channel)
96
+	return err
97
+}

+ 3
- 0
models/customer/customer.go 查看文件

40
 	if m.ctx.Get("pageNum") != nil {
40
 	if m.ctx.Get("pageNum") != nil {
41
 		pageNum = m.ctx.Get("pageNum").(int)
41
 		pageNum = m.ctx.Get("pageNum").(int)
42
 	}
42
 	}
43
+	if len(page) > 1 {
44
+		pageNum = page[1]
45
+	}
43
 
46
 
44
 	pg := 1
47
 	pg := 1
45
 	if len(page) > 0 {
48
 	if len(page) > 0 {

+ 36
- 4
models/message/cmscase.go 查看文件

8
 	"strings"
8
 	"strings"
9
 	"time"
9
 	"time"
10
 
10
 
11
+	"github.com/astaxie/beego"
12
+
11
 	"github.com/go-xorm/builder"
13
 	"github.com/go-xorm/builder"
12
 )
14
 )
13
 
15
 
17
 	CaseName        string
19
 	CaseName        string
18
 }
20
 }
19
 
21
 
22
+const (
23
+	STATUS_NOSHOW = 0
24
+)
25
+
20
 // GetCmsCaseList 获取项目专题列表
26
 // GetCmsCaseList 获取项目专题列表
21
 func (m *MessageDAO) GetCmsCaseList(name, caseids string, page int, pageSize int) ([]CmsCaseInfo, error) {
27
 func (m *MessageDAO) GetCmsCaseList(name, caseids string, page int, pageSize int) ([]CmsCaseInfo, error) {
22
 	var cases []CmsCaseInfo
28
 	var cases []CmsCaseInfo
23
 	sql := `select a.*,b.case_name from ta_cms_case a inner join sys_case b on a.case_id = b.case_id 
29
 	sql := `select a.*,b.case_name from ta_cms_case a inner join sys_case b on a.case_id = b.case_id 
24
-	where a.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and a.name like '%` + name + `%' and a.status > ` + strconv.Itoa(models.STATUS_DEL) + `
30
+	where a.org_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and a.name like '%` + name + `%' and a.status > ` + strconv.Itoa(models.STATUS_DEL) + `
25
 	and b.status > ` + strconv.Itoa(models.STATUS_DEL) + `
31
 	and b.status > ` + strconv.Itoa(models.STATUS_DEL) + `
26
-	order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa((page+1)*pageSize)
27
-
32
+	order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(page*pageSize)
28
 	err := m.db.Sql(sql).Find(&cases)
33
 	err := m.db.Sql(sql).Find(&cases)
29
 	return cases, err
34
 	return cases, err
30
 }
35
 }
33
 func (m *MessageDAO) GetCmsCaseByOrg(orgid string) ([]model.TaCmsCase, error) {
38
 func (m *MessageDAO) GetCmsCaseByOrg(orgid string) ([]model.TaCmsCase, error) {
34
 	var cases []model.TaCmsCase
39
 	var cases []model.TaCmsCase
35
 	err := m.db.Where("org_id=?", orgid).Find(&cases)
40
 	err := m.db.Where("org_id=?", orgid).Find(&cases)
41
+	beego.Error(cases)
36
 	return cases, err
42
 	return cases, err
37
 }
43
 }
38
 
44
 
60
 // GetCmsCaseByID 获取项目专题详情
66
 // GetCmsCaseByID 获取项目专题详情
61
 func (m *MessageDAO) GetCmsCaseByID(cmscaseid string) (*CmsCase, error) {
67
 func (m *MessageDAO) GetCmsCaseByID(cmscaseid string) (*CmsCase, error) {
62
 	var cases []CmsCase
68
 	var cases []CmsCase
63
-	err := m.db.Table("ta_cms_case").Where("cms_case_id=?", cmscaseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&cases)
69
+	sql := `select * from ta_cms_case where cms_case_id='` + cmscaseid + `' and status>` + strconv.Itoa(models.STATUS_DEL)
70
+	err := m.db.Sql(sql).Find(&cases)
64
 	if err != nil {
71
 	if err != nil {
72
+		beego.Error(err)
65
 		return nil, err
73
 		return nil, err
66
 	}
74
 	}
67
 	if len(cases) > 0 {
75
 	if len(cases) > 0 {
155
 	_, err := m.db.Insert(img)
163
 	_, err := m.db.Insert(img)
156
 	return err
164
 	return err
157
 }
165
 }
166
+
167
+// CmsCaseShow 前台展示
168
+func (m *MessageDAO) CmsCaseShow(cmscaseid string) error {
169
+	var cmscase = model.TaCmsCase{}
170
+	cmscase.Status = models.STATUS_NORMAL
171
+	cmscase.CmsCaseId = cmscaseid
172
+	var cols = []string{
173
+		"status",
174
+	}
175
+	_, err := m.db.Cols(cols...).Where("cms_case_id=?", cmscase.CmsCaseId).Update(cmscase)
176
+	return err
177
+}
178
+
179
+// CmsCaseHide 前台隐藏
180
+func (m *MessageDAO) CmsCaseHide(cmscaseid string) error {
181
+	var cmscase = model.TaCmsCase{}
182
+	cmscase.Status = STATUS_NOSHOW
183
+	cmscase.CmsCaseId = cmscaseid
184
+	var cols = []string{
185
+		"status",
186
+	}
187
+	_, err := m.db.Cols(cols...).Where("cms_case_id=?", cmscase.CmsCaseId).Update(cmscase)
188
+	return err
189
+}

+ 2
- 0
models/message/image.go 查看文件

66
 		"forward_resource_id",
66
 		"forward_resource_id",
67
 		"sort",
67
 		"sort",
68
 		"title",
68
 		"title",
69
+		"location_id",
70
+		"status",
69
 	}
71
 	}
70
 	_, err := m.db.Cols(cols...).Where("image_id=?", img.ImageId).Update(img)
72
 	_, err := m.db.Cols(cols...).Where("image_id=?", img.ImageId).Update(img)
71
 	return err
73
 	return err

+ 38
- 2
models/message/location.go 查看文件

8
 )
8
 )
9
 
9
 
10
 const (
10
 const (
11
-	ISSYS = 1
11
+	ISSYS = 0
12
 )
12
 )
13
 
13
 
14
 // GetLocationList 获取位置字典
14
 // GetLocationList 获取位置字典
18
 	if issys != "" {
18
 	if issys != "" {
19
 		s = s.And("is_sys=?", issys)
19
 		s = s.And("is_sys=?", issys)
20
 	}
20
 	}
21
-	err := s.Find(&locations)
21
+	err := s.Asc("order_no").Find(&locations)
22
 	return locations, err
22
 	return locations, err
23
 }
23
 }
24
 
24
 
25
+// GetLocationMaxSort 获取最大的位置
26
+func (m *MessageDAO) GetLocationMaxSort(issys, org_id string) (int, error) {
27
+	var location []map[string][]byte
28
+	sql := `select max(order_no) as order_no from td_cms_image_location where is_sys=` + issys + ` and org_id ='` + org_id + `'`
29
+	location, err := m.db.Query(sql)
30
+	if err != nil {
31
+		return 0, err
32
+	}
33
+	if len(location) > 0 {
34
+		sort := string(location[0]["order_no"])
35
+		if sort != "" {
36
+			sortno, err := strconv.Atoi(string(location[0]["order_no"]))
37
+			return sortno, err
38
+		}
39
+		return 0, err
40
+	}
41
+	return 0, nil
42
+}
43
+
25
 // GetLocationById 根据ID获取明细
44
 // GetLocationById 根据ID获取明细
26
 func (m *MessageDAO) GetLocationById(id string) (*model.TdCmsImageLocation, error) {
45
 func (m *MessageDAO) GetLocationById(id string) (*model.TdCmsImageLocation, error) {
27
 	var location []model.TdCmsImageLocation
46
 	var location []model.TdCmsImageLocation
67
 	_, err := m.db.Cols(cols...).Where("location_id=?", location.LocationId).Update(location)
86
 	_, err := m.db.Cols(cols...).Where("location_id=?", location.LocationId).Update(location)
68
 	return err
87
 	return err
69
 }
88
 }
89
+
90
+// UpdateLocationSort 修改顺序
91
+func (m *MessageDAO) UpdateLocationSort(loc []string) error {
92
+	orderno, err := strconv.Atoi(loc[1])
93
+	if err != nil {
94
+		return err
95
+	}
96
+	var location = model.TdCmsImageLocation{
97
+		LocationId: loc[0],
98
+		OrderNo:    orderno,
99
+	}
100
+	var cols = []string{
101
+		"order_no",
102
+	}
103
+	_, err = m.db.Cols(cols...).Where("location_id=?", location.LocationId).Update(location)
104
+	return err
105
+}

+ 3
- 0
models/message/message.go 查看文件

86
 func (m *MessageDAO) UpdateCmsInfo(cmsinfo model.TaCmsInfo) error {
86
 func (m *MessageDAO) UpdateCmsInfo(cmsinfo model.TaCmsInfo) error {
87
 	var cols = []string{
87
 	var cols = []string{
88
 		"info_name",
88
 		"info_name",
89
+		"info_url",
90
+		"location_id",
91
+		"case_id",
89
 	}
92
 	}
90
 	_, err := m.db.Cols(cols...).Where("info_id=?", cmsinfo.InfoId).Update(cmsinfo)
93
 	_, err := m.db.Cols(cols...).Where("info_id=?", cmsinfo.InfoId).Update(cmsinfo)
91
 	return err
94
 	return err

+ 7
- 7
models/message/news.go 查看文件

24
 	sql := `select * from ta_cms_news new left join (
24
 	sql := `select * from ta_cms_news new left join (
25
 		select b.news_id,GROUP_CONCAT(a.location_name) location_names,GROUP_CONCAT(a.location_id) location_ids 
25
 		select b.news_id,GROUP_CONCAT(a.location_name) location_names,GROUP_CONCAT(a.location_id) location_ids 
26
 		from td_cms_image_location a inner join ta_cms_location b on a.location_id=b.location_id and a.status>` + strconv.Itoa(models.STATUS_DEL) +
26
 		from td_cms_image_location a inner join ta_cms_location b on a.location_id=b.location_id and a.status>` + strconv.Itoa(models.STATUS_DEL) +
27
-		` and b.org_id='` + orgid + `' group by b.news_id
28
-		) c on new.news_id = c.news_id and new.status>` + strconv.Itoa(models.STATUS_DEL) + ` and new.org_id='` + orgid + `'`
27
+		` and a.org_id='` + orgid + `' group by b.news_id
28
+		) c on new.news_id = c.news_id WHERE new.status>` + strconv.Itoa(models.STATUS_DEL) + ` and new.org_id='` + orgid + `'`
29
 
29
 
30
 	if locationid != "" {
30
 	if locationid != "" {
31
 		sql += ` and new.news_id in (select news_id from ta_cms_location where location_id='` + locationid + `')`
31
 		sql += ` and new.news_id in (select news_id from ta_cms_location where location_id='` + locationid + `')`
32
 	}
32
 	}
33
 
33
 
34
-	sql = sql + " order by new.create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa((page+1)*pageSize)
35
-
34
+	sql = sql + " order by new.create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(page*pageSize)
36
 	err := m.db.Sql(sql).Find(&news)
35
 	err := m.db.Sql(sql).Find(&news)
37
 	return news, err
36
 	return news, err
38
 }
37
 }
67
 // GetNewsByID 获取咨询详情
66
 // GetNewsByID 获取咨询详情
68
 func (m *MessageDAO) GetNewsByID(newid string) (*CmsNews, error) {
67
 func (m *MessageDAO) GetNewsByID(newid string) (*CmsNews, error) {
69
 	var news []CmsNews
68
 	var news []CmsNews
70
-	err := m.db.Where("news_id=?", newid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&news)
69
+	sql := `select * from ta_cms_news where news_id='` + newid + `' and status>` + strconv.Itoa(models.STATUS_DEL)
70
+	err := m.db.Sql(sql).Find(&news)
71
 	if err != nil {
71
 	if err != nil {
72
 		return nil, err
72
 		return nil, err
73
 	}
73
 	}
103
 
103
 
104
 // SaveNewsLocation 保存咨询与位置映射
104
 // SaveNewsLocation 保存咨询与位置映射
105
 func (m *MessageDAO) SaveNewsLocation(newsid, locationsid string) error {
105
 func (m *MessageDAO) SaveNewsLocation(newsid, locationsid string) error {
106
-	sql := `insert into ta_cms_location(location_id,news_id) select '` + newsid + `', location_id from td_cms_image_location where location_id in ('` + strings.Replace(locationsid, ",", "','", -1) + `') and status > ` + strconv.Itoa(models.STATUS_DEL)
106
+	sql := `insert into ta_cms_location(news_id,location_id) select '` + newsid + `', location_id from td_cms_image_location where location_id in ('` + strings.Replace(locationsid, ",", "','", -1) + `') and status > ` + strconv.Itoa(models.STATUS_DEL)
107
 	_, err := m.db.Exec(sql)
107
 	_, err := m.db.Exec(sql)
108
 	return err
108
 	return err
109
 }
109
 }
131
 	var cols = []string{
131
 	var cols = []string{
132
 		"status",
132
 		"status",
133
 	}
133
 	}
134
-	_, err := m.db.Cols(cols...).Where("user_id=?", news.NewsId).Update(news)
134
+	_, err := m.db.Cols(cols...).Where("news_id=?", news.NewsId).Update(news)
135
 	return err
135
 	return err
136
 }
136
 }

+ 1
- 0
models/model/sys_menu.go 查看文件

16
 	Status     int       `xorm:"SMALLINT(6)"`
16
 	Status     int       `xorm:"SMALLINT(6)"`
17
 	CreateDate time.Time `xorm:"DATETIME"`
17
 	CreateDate time.Time `xorm:"DATETIME"`
18
 	OrgId      string    `xorm:"VARCHAR(64)"`
18
 	OrgId      string    `xorm:"VARCHAR(64)"`
19
+	FatherIds  string    `xorm:"TEXT"`
19
 }
20
 }

+ 44
- 11
models/system/role.go 查看文件

26
 }
26
 }
27
 
27
 
28
 // GetRoleCount 获取角色总数
28
 // GetRoleCount 获取角色总数
29
-func (m *RoleDAO) GetRoleCount(caseids string) (int, error) {
29
+func (m *RoleDAO) GetRoleCount(caseids, name, caseid string) (int, error) {
30
 	var roles []model.SysRole
30
 	var roles []model.SysRole
31
-	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&roles)
31
+	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
32
+	if name != "" {
33
+		dao.And("role_name like '%" + name + "%'")
34
+	}
35
+	if caseid != "" {
36
+		dao.And("case_id =?", caseid)
37
+	}
38
+	err := dao.Find(&roles)
32
 	return len(roles), err
39
 	return len(roles), err
33
 }
40
 }
34
 
41
 
35
 // GetRoleList 根据案场获取角色
42
 // GetRoleList 根据案场获取角色
36
-func (m *RoleDAO) GetRoleList(caseids string, page int, pageSize int) ([]model.SysRole, error) {
43
+func (m *RoleDAO) GetRoleList(caseids, name, caseid string, page int, pageSize int) ([]model.SysRole, error) {
37
 	var roles []model.SysRole
44
 	var roles []model.SysRole
38
-	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").Limit(pageSize, (page-1)*pageSize).Desc("create_date").Find(&roles)
45
+	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
46
+	if name != "" {
47
+		dao.And("role_name like '%" + name + "%'")
48
+	}
49
+	if caseid != "" {
50
+		dao.And("case_id =?", caseid)
51
+	}
52
+	err := dao.Limit(pageSize, (page-1)*pageSize).Desc("create_date").Find(&roles)
39
 	return roles, err
53
 	return roles, err
40
 }
54
 }
41
 
55
 
42
 // Role 角色
56
 // Role 角色
43
 type Role struct {
57
 type Role struct {
44
-	model.TaCmsCase `xorm:"extends"`
45
-	RoleMenu        []model.SysMenu
58
+	model.SysRole `xorm:"extends"`
59
+	RoleMenu      []model.SysMenu
46
 }
60
 }
47
 
61
 
48
 // GetRoleByID 根据ID获取角色
62
 // GetRoleByID 根据ID获取角色
49
-func (m *RoleDAO) GetRoleByID(roleid string) (*Role, error) {
50
-	var roles []Role
51
-	err := m.db.Table("sys_role").Where("role_id=?", roleid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&roles)
63
+func (m *RoleDAO) GetRoleByID(roleid string) (*model.SysRole, error) {
64
+	var roles []model.SysRole
65
+	sql := `select * from sys_role where role_id='` + roleid + `' and status>` + strconv.Itoa(models.STATUS_DEL)
66
+	err := m.db.Sql(sql).Find(&roles)
52
 	if err != nil {
67
 	if err != nil {
53
 		return nil, err
68
 		return nil, err
54
 	}
69
 	}
106
 }
121
 }
107
 
122
 
108
 // SaveRoleMenu 保存角色对应的菜单
123
 // SaveRoleMenu 保存角色对应的菜单
109
-func (m *RoleDAO) SaveRoleMenu(roleid, caseids string) error {
110
-	sql := `insert into sys_role_menu(role_id,menu_id) select '` + roleid + `', menu_id from sys_menu where case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and status > ` + strconv.Itoa(models.STATUS_DEL)
124
+func (m *RoleDAO) SaveRoleMenu(roleid, menuids string) error {
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 + `')`
111
 	_, err := m.db.Exec(sql)
144
 	_, err := m.db.Exec(sql)
112
 	return err
145
 	return err
113
 }
146
 }

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

40
 		select a.user_id,GROUP_CONCAT(b.type_name) as user_type_names from sys_user_type a
40
 		select a.user_id,GROUP_CONCAT(b.type_name) as user_type_names from sys_user_type a
41
 		INNER join td_user_type b on a.type_id = b.type_id
41
 		INNER join td_user_type b on a.type_id = b.type_id
42
 		group by a.user_id) c on user.user_id = c.user_id where 
42
 		group by a.user_id) c on user.user_id = c.user_id where 
43
-		(status> ` + strconv.Itoa(models.STATUS_DEL) + ` and user_name like '%` + username + `%' and user_id in 
43
+		(status> ` + strconv.Itoa(models.STATUS_DEL) + ` and user_name like '%` + username + `%' and user.user_id in 
44
 		(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 ('` + strings.Replace(caseids, ",", "','", -1) + `')))`
44
 		(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 ('` + strings.Replace(caseids, ",", "','", -1) + `')))`
45
 
45
 
46
 	if typeid != "" {
46
 	if typeid != "" {
47
-		sql = sql + " and user_id in (select user_id from sys_user_type where type_id = '" + typeid + "')"
47
+		sql = sql + " and user.user_id in (select user_id from sys_user_type where type_id = '" + typeid + "')"
48
 	}
48
 	}
49
 
49
 
50
-	sql = sql + " order by create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa((page+1)*pageSize)
51
-
50
+	sql = sql + " order by create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(page*pageSize)
52
 	err := m.db.Sql(sql).Find(&users)
51
 	err := m.db.Sql(sql).Find(&users)
53
 	return users, err
52
 	return users, err
54
-
55
-	// var users []model.SysUser
56
-	// userDAO := m.db.Where(`(status> `+strconv.Itoa(models.STATUS_DEL)+` and user_name like '%?%' and user_id in
57
-	// 	(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 ('?')))`, username, strings.Replace(caseids, ",", "','", -1))
58
-
59
-	// if typeid != "" {
60
-	// 	userDAO.In("user_id", builder.Select("user_id").From("sys_user_type").Where(builder.Eq{"type_id": typeid}))
61
-	// }
62
-	// err := userDAO.Limit(pageSize, (page-1)*pageSize).Desc("create_date").Find(&users)
63
-	// return users, err
64
 }
53
 }
65
 
54
 
66
 // GetUserCount 用户列表count
55
 // GetUserCount 用户列表count
67
 func (m *UserDAO) GetUserCount(username, typeid, caseids string) (int, error) {
56
 func (m *UserDAO) GetUserCount(username, typeid, caseids string) (int, error) {
68
-	// var users []model.SysUser
69
-	// userDAO := m.db.Where(`(status> `+strconv.Itoa(models.STATUS_DEL)+` and user_name like '%?%' and user_id in
70
-	// 	(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 ('?')))`, username, strings.Replace(caseids, ",", "','", -1))
71
-
72
-	// if typeid != "" {
73
-	// 	userDAO.In("user_id", builder.Select("user_id").From("sys_user_type").Where(builder.Eq{"type_id": typeid}))
74
-	// }
75
-	// err := userDAO.Find(&users)
76
 	var users []UserListInfo
57
 	var users []UserListInfo
77
 	sql := `select user.*,c.user_type_names from sys_user user left join (
58
 	sql := `select user.*,c.user_type_names from sys_user user left join (
78
 		select a.user_id,GROUP_CONCAT(b.type_name) as user_type_names from sys_user_type a
59
 		select a.user_id,GROUP_CONCAT(b.type_name) as user_type_names from sys_user_type a
79
 		INNER join td_user_type b on a.type_id = b.type_id
60
 		INNER join td_user_type b on a.type_id = b.type_id
80
 		group by a.user_id) c on user.user_id = c.user_id where 
61
 		group by a.user_id) c on user.user_id = c.user_id where 
81
-		(status> ` + strconv.Itoa(models.STATUS_DEL) + ` and user_name like '%` + username + `%' and user_id in 
62
+		(status> ` + strconv.Itoa(models.STATUS_DEL) + ` and user_name like '%` + username + `%' and user.user_id in 
82
 		(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 ('` + strings.Replace(caseids, ",", "','", -1) + `')))`
63
 		(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 ('` + strings.Replace(caseids, ",", "','", -1) + `')))`
83
 
64
 
84
 	if typeid != "" {
65
 	if typeid != "" {
85
-		sql = sql + " and user_id in (select user_id from sys_user_type where type_id = '" + typeid + "')"
66
+		sql = sql + " and user.user_id in (select user_id from sys_user_type where type_id = '" + typeid + "')"
86
 	}
67
 	}
87
 	err := m.db.Sql(sql).Find(&users)
68
 	err := m.db.Sql(sql).Find(&users)
88
 	if err != nil {
69
 	if err != nil {
96
 	model.SysUser `xorm:"extends"`
77
 	model.SysUser `xorm:"extends"`
97
 	UserType      []model.TdUserType
78
 	UserType      []model.TdUserType
98
 	UserTag       []model.SysTag
79
 	UserTag       []model.SysTag
99
-	UserCase      []model.SysCase
80
+	UserCase      []model.SysUserCase
100
 	UserRole      []model.SysRole
81
 	UserRole      []model.SysRole
101
 	UserMenu      []model.SysMenu
82
 	UserMenu      []model.SysMenu
102
 }
83
 }
111
 
92
 
112
 // GetUserByID 根据ID获取用户信息
93
 // GetUserByID 根据ID获取用户信息
113
 func (m *UserDAO) GetUserByID(userid string) (*UserInfo, error) {
94
 func (m *UserDAO) GetUserByID(userid string) (*UserInfo, error) {
114
-	var userinfo = UserInfo{}
115
-	_, err := m.db.Table("sys_user").Where("user_id=?", userid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Get(&userinfo)
95
+	var userinfo []UserInfo
96
+	sql := `select * from sys_user where user_id='` + userid + `' and status>` + strconv.Itoa(models.STATUS_DEL)
97
+	err := m.db.Sql(sql).Find(&userinfo)
116
 	if err != nil {
98
 	if err != nil {
117
 		return nil, err
99
 		return nil, err
118
 	}
100
 	}
119
-	return &userinfo, nil
101
+	if len(userinfo) > 0 {
102
+		return &userinfo[0], nil
103
+	}
104
+	return nil, nil
105
+}
106
+
107
+// GetUserTypes 获取所有的用户类型
108
+func (m *UserDAO) GetUserTypes(caseids string) ([]model.TdUserType, error) {
109
+	var usertype []model.TdUserType
110
+	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&usertype)
111
+	return usertype, err
120
 }
112
 }
121
 
113
 
122
 // GetUserType 获取用户类型
114
 // GetUserType 获取用户类型
134
 }
126
 }
135
 
127
 
136
 // GetUserCase 获取用户案场
128
 // GetUserCase 获取用户案场
137
-func (m *UserDAO) GetUserCase(userid string) ([]model.SysCase, error) {
138
-	var userCase []model.SysCase
129
+func (m *UserDAO) GetUserCase(userid string) ([]model.SysUserCase, error) {
130
+	var userCase []model.SysUserCase
131
+	// err := m.db.Where("user_id=?", userid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&userCase)
139
 	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)
132
 	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)
140
 	return userCase, err
133
 	return userCase, err
141
 }
134
 }
220
 	return err
213
 	return err
221
 }
214
 }
222
 
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
+
223
 // DelUserMenu 删除用户对应的菜单信息
223
 // DelUserMenu 删除用户对应的菜单信息
224
 func (m *UserDAO) DelUserMenu(userid string) error {
224
 func (m *UserDAO) DelUserMenu(userid string) error {
225
 	sql := "delete from sys_user_menu where user_id='" + userid + "'"
225
 	sql := "delete from sys_user_menu where user_id='" + userid + "'"
291
 func (m *UserDAO) UpdatePassword(userID, newPass string) error {
291
 func (m *UserDAO) UpdatePassword(userID, newPass string) error {
292
 	password := encrypt.Md5(newPass, userID)
292
 	password := encrypt.Md5(newPass, userID)
293
 
293
 
294
-	sql := "update sys_user set passwd=? where user_id=?"
294
+	sql := "update sys_user set pwd=? where user_id=?"
295
 
295
 
296
 	_, err := m.db.Exec(sql, password, userID)
296
 	_, err := m.db.Exec(sql, password, userID)
297
 	if err != nil {
297
 	if err != nil {

+ 94
- 0
models/vipcard/vipcard.go 查看文件

1
+package vipcard
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+	"time"
10
+
11
+	"github.com/go-xorm/xorm"
12
+)
13
+
14
+// ChannelDAO 当前数据库操作对象
15
+type VipcardDAO struct {
16
+	ctx *utils.Context
17
+	db  *xorm.Session
18
+}
19
+
20
+// NewVipcardDAO New Inst
21
+func NewVipcardDAO(ctx *utils.Context) *VipcardDAO {
22
+	return &VipcardDAO{
23
+		ctx: ctx,
24
+		db:  ctx.DB,
25
+	}
26
+}
27
+
28
+type VipChild struct {
29
+	model.TaVipCardChild `xorm:"extendes"`
30
+	CaesName             string
31
+	CustomerName         string
32
+}
33
+
34
+// GetVipCardList获取VIP卡列表
35
+func (m *VipcardDAO) GetVipCardList(caseid string) ([]VipChild, error) {
36
+	var vipcards []VipChild
37
+	sql := `SELECT
38
+	vcc.*,
39
+	sc.case_name,
40
+	tc.customer_name
41
+FROM
42
+	ta_vip_card_child vcc
43
+	INNER JOIN ta_vip_card vc ON vcc.vip_card_id = vc.vip_card_id
44
+	INNER JOIN sys_case sc ON vc.case_id = sc.case_id 
45
+	INNER JOIN ta_customer tc on vcc.customer_id = tc.customer_id
46
+WHERE
47
+	vcc.status > 0 ` + strconv.Itoa(models.STATUS_DEL) +
48
+		`AND sc.case_id IN(` + strings.Replace(caseid, ",", "','", -1) + `) `
49
+	err := m.db.Sql(sql).Find(&vipcards)
50
+	return vipcards, err
51
+}
52
+
53
+// AddVipCard 新增VIP卡
54
+func (m *VipcardDAO) AddVipCard(vipCard model.TaVipCard) (*model.TaVipCard, error) {
55
+	vipCard.VipCardId = utils.GetGUID()
56
+	vipCard.CreateDate = time.Now()
57
+	vipCard.Status = models.STATUS_NORMAL
58
+	_, err := m.db.Insert(vipCard)
59
+	return &vipCard, err
60
+
61
+}
62
+
63
+// AddVipChildCard 新增VIP子卡
64
+func (m *VipcardDAO) AddVipChildCard(vipChild model.TaVipCardChild) (*model.TaVipCardChild, error) {
65
+	vipChild.CreateDate = time.Now()
66
+	vipChild.VipCardChildId = utils.GetGUID()
67
+	vipChild.Status = models.STATUS_NORMAL
68
+	_, err := m.db.Insert(vipChild)
69
+	return &vipChild, err
70
+}
71
+
72
+// GetVipChildByCode 通过code获取VIP子卡
73
+func (m *VipcardDAO) GetVipChildByCode(vipCode string) (*model.TaVipCardChild, error) {
74
+	var vipChild []model.TaVipCardChild
75
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("vip_card_child_code =?", vipCode).Find(&vipChild)
76
+	if err != nil {
77
+		return nil, err
78
+	}
79
+	if len(vipChild) > 0 {
80
+		return &vipChild[0], nil
81
+	}
82
+	return nil, nil
83
+}
84
+
85
+// UpdateVipChild 更新子卡
86
+func (m *VipcardDAO) UpdateVipChild(vipChild model.TaVipCardChild) error {
87
+	var cols = []string{
88
+		"customer_id",
89
+		"customer_tel",
90
+		"active_date",
91
+	}
92
+	_, err := m.db.Cols(cols...).Where("vip_card_child_id", vipChild.VipCardChildId).Update(vipChild)
93
+	return err
94
+}

+ 31
- 0
routers/common.go 查看文件

3
 import (
3
 import (
4
 	"spaceofcheng/services/controllers"
4
 	"spaceofcheng/services/controllers"
5
 	"spaceofcheng/services/controllers/cases"
5
 	"spaceofcheng/services/controllers/cases"
6
+	"spaceofcheng/services/controllers/channel"
6
 	"spaceofcheng/services/controllers/course"
7
 	"spaceofcheng/services/controllers/course"
7
 	"spaceofcheng/services/controllers/customer"
8
 	"spaceofcheng/services/controllers/customer"
8
 	"spaceofcheng/services/controllers/goods"
9
 	"spaceofcheng/services/controllers/goods"
34
 		// 系统用户
35
 		// 系统用户
35
 		beego.NSRouter("/user", &user.UserController{}, "get:GetUserList"),
36
 		beego.NSRouter("/user", &user.UserController{}, "get:GetUserList"),
36
 		beego.NSRouter("/user/:userid", &user.UserController{}, "get:GetUserByID"),
37
 		beego.NSRouter("/user/:userid", &user.UserController{}, "get:GetUserByID"),
38
+		beego.NSRouter("/user", &user.UserController{}, "post:SaveUser"),
39
+		beego.NSRouter("/user", &user.UserController{}, "put:SaveUser"),
40
+		beego.NSRouter("/user/:userid", &user.UserController{}, "delete:DelUser"),
37
 		beego.NSRouter("/user/:userid/password", &user.UserController{}, "put:UpdatePassword"),
41
 		beego.NSRouter("/user/:userid/password", &user.UserController{}, "put:UpdatePassword"),
38
 		beego.NSRouter("/user/password/reset", &user.UserController{}, "put:ResetPassword"),
42
 		beego.NSRouter("/user/password/reset", &user.UserController{}, "put:ResetPassword"),
39
 		beego.NSRouter("/signout", &user.UserController{}, "post:SignOut"),
43
 		beego.NSRouter("/signout", &user.UserController{}, "post:SignOut"),
40
 
44
 
45
+		// 用户类型
46
+		beego.NSRouter("/usertype", &user.UserController{}, "get:GetUserTypes"),
47
+
48
+		// 用户角色
49
+		beego.NSRouter("/userrole", &user.UserController{}, "get:GetUserRole"),
50
+		beego.NSRouter("/userrole", &user.UserController{}, "put:UserMapRole"),
51
+
41
 		// cms 位置
52
 		// cms 位置
42
 		beego.NSRouter("/cms/location", &message.MessageController{}, "get:GetLocations"),
53
 		beego.NSRouter("/cms/location", &message.MessageController{}, "get:GetLocations"),
43
 		beego.NSRouter("/cms/location/:locationid", &message.MessageController{}, "get:GetLocationById"),
54
 		beego.NSRouter("/cms/location/:locationid", &message.MessageController{}, "get:GetLocationById"),
45
 		beego.NSRouter("/cms/location/:locationid", &message.MessageController{}, "put:SaveLocation"),
56
 		beego.NSRouter("/cms/location/:locationid", &message.MessageController{}, "put:SaveLocation"),
46
 		beego.NSRouter("/cms/location/:locationid", &message.MessageController{}, "delete:DelLocation"),
57
 		beego.NSRouter("/cms/location/:locationid", &message.MessageController{}, "delete:DelLocation"),
47
 
58
 
59
+		beego.NSRouter("/cms/location/:locationid/sort", &message.MessageController{}, "put:UpdateLocationSort"),
60
+
48
 		// cms
61
 		// cms
49
 		beego.NSRouter("/cms/info", &message.MessageController{}, "get:GetCmsInfoList"),
62
 		beego.NSRouter("/cms/info", &message.MessageController{}, "get:GetCmsInfoList"),
50
 		beego.NSRouter("/cms/info/:infoid", &message.MessageController{}, "get:GetCmsInfoByID"),
63
 		beego.NSRouter("/cms/info/:infoid", &message.MessageController{}, "get:GetCmsInfoByID"),
72
 		beego.NSRouter("/cms/case", &message.MessageController{}, "post:SaveCmsCase"),
85
 		beego.NSRouter("/cms/case", &message.MessageController{}, "post:SaveCmsCase"),
73
 		beego.NSRouter("/cms/case/:cmscaseid", &message.MessageController{}, "put:SaveCmsCase"),
86
 		beego.NSRouter("/cms/case/:cmscaseid", &message.MessageController{}, "put:SaveCmsCase"),
74
 		beego.NSRouter("/cms/case/:cmscaseid", &message.MessageController{}, "delete:DelCmsCase"),
87
 		beego.NSRouter("/cms/case/:cmscaseid", &message.MessageController{}, "delete:DelCmsCase"),
88
+		beego.NSRouter("/cms/caseshow/:cmscaseid", &message.MessageController{}, "put:CmsCaseShow"),
89
+		beego.NSRouter("/cms/casehide/:cmscaseid", &message.MessageController{}, "put:CmsCaseHide"),
90
+
91
+		// tag 标签
92
+		beego.NSRouter("/case/tag", &cases.CaseController{}, "get:GetTagList"),
93
+		beego.NSRouter("/case/tag/:tagid", &cases.CaseController{}, "get:GetTagByID"),
94
+		beego.NSRouter("/case/tag", &cases.CaseController{}, "post:SaveCaseTag"),
95
+		beego.NSRouter("/case/tag", &cases.CaseController{}, "put:SaveCaseTag"),
96
+		beego.NSRouter("/case/tag/:tagid", &cases.CaseController{}, "delete:DelCaseTag"),
75
 
97
 
76
 		// caseuser 案场人员
98
 		// caseuser 案场人员
77
 		beego.NSRouter("/case/user", &cases.CaseController{}, "get:GetCaseUserByCase"),
99
 		beego.NSRouter("/case/user", &cases.CaseController{}, "get:GetCaseUserByCase"),
115
 		beego.NSRouter("/case/table", &cases.CaseController{}, "put:SaveCaseTable"),
137
 		beego.NSRouter("/case/table", &cases.CaseController{}, "put:SaveCaseTable"),
116
 		beego.NSRouter("/case/table/:tableid", &cases.CaseController{}, "delete:DelCaseTable"),
138
 		beego.NSRouter("/case/table/:tableid", &cases.CaseController{}, "delete:DelCaseTable"),
117
 
139
 
140
+		beego.NSRouter("/channel", &channel.ChannelController{}, "get:GetChannelList"),
141
+		beego.NSRouter("/channel/:channelId", &channel.ChannelController{}, "get:GetChannelById"),
142
+		beego.NSRouter("/channel", &channel.ChannelController{}, "post:SaveChannel"),
143
+		beego.NSRouter("/channel", &channel.ChannelController{}, "put:SaveChannel"),
144
+		beego.NSRouter("/channel/:channelId", &channel.ChannelController{}, "delete:DeleteChannel"),
145
+
118
 		// role 角色
146
 		// role 角色
119
 		beego.NSRouter("/role", &system.RoleController{}, "get:GetRoleList"),
147
 		beego.NSRouter("/role", &system.RoleController{}, "get:GetRoleList"),
120
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "get:GetRoleByID"),
148
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "get:GetRoleByID"),
122
 		beego.NSRouter("/role", &system.RoleController{}, "put:SaveCaseRole"),
150
 		beego.NSRouter("/role", &system.RoleController{}, "put:SaveCaseRole"),
123
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "delete:DelCaseRole"),
151
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "delete:DelCaseRole"),
124
 
152
 
153
+		beego.NSRouter("/rolemenu/:roleid", &system.RoleController{}, "get:GetRoleMenuByRole"),
154
+		beego.NSRouter("/rolemenu/:roleid", &system.RoleController{}, "put:SaveRoleMenus"),
155
+
125
 		// course 课程
156
 		// course 课程
126
 		beego.NSRouter("/course/taglist", &course.CourseController{}, "get:GetCourseTagsByPage"),
157
 		beego.NSRouter("/course/taglist", &course.CourseController{}, "get:GetCourseTagsByPage"),
127
 		beego.NSRouter("/course/tag", &course.CourseController{}, "get:GetCourseTags"),
158
 		beego.NSRouter("/course/tag", &course.CourseController{}, "get:GetCourseTags"),

+ 5
- 0
service/cases/area.go 查看文件

4
 	"spaceofcheng/services/models/cases"
4
 	"spaceofcheng/services/models/cases"
5
 	"spaceofcheng/services/models/model"
5
 	"spaceofcheng/services/models/model"
6
 	"spaceofcheng/services/service"
6
 	"spaceofcheng/services/service"
7
+	"spaceofcheng/services/utils"
7
 
8
 
8
 	"github.com/astaxie/beego"
9
 	"github.com/astaxie/beego"
9
 )
10
 )
44
 // SaveCaseArea 保存区域
45
 // SaveCaseArea 保存区域
45
 func (s *CaseServ) SaveCaseArea(area model.SysCaseArea) (*model.SysCaseArea, error) {
46
 func (s *CaseServ) SaveCaseArea(area model.SysCaseArea) (*model.SysCaseArea, error) {
46
 	var err error
47
 	var err error
48
+	if area.AreaName == "" {
49
+		return nil, utils.LogError("区域名称不能为空!")
50
+	}
51
+
47
 	if area.AreaId == "" {
52
 	if area.AreaId == "" {
48
 		_, err = s.dao.AddCaseArea(&area)
53
 		_, err = s.dao.AddCaseArea(&area)
49
 	} else {
54
 	} else {

+ 7
- 0
service/cases/cases.go 查看文件

63
 func (s *CaseServ) SaveCase(caseinfo model.SysCase) (*model.SysCase, error) {
63
 func (s *CaseServ) SaveCase(caseinfo model.SysCase) (*model.SysCase, error) {
64
 	var newInfo *model.SysCase
64
 	var newInfo *model.SysCase
65
 	var err error
65
 	var err error
66
+	if caseinfo.CaseName == "" {
67
+		return nil, utils.LogError("案场名称不能为空!")
68
+	}
69
+	if caseinfo.Coordinate == "" {
70
+		return nil, utils.LogError("案场经纬度不能为空!")
71
+	}
72
+
66
 	if caseinfo.CaseId == "" {
73
 	if caseinfo.CaseId == "" {
67
 		newInfo, err = s.dao.AddCase(caseinfo)
74
 		newInfo, err = s.dao.AddCase(caseinfo)
68
 		if err != nil {
75
 		if err != nil {

+ 40
- 4
service/cases/caseuser.go 查看文件

1
 package cases
1
 package cases
2
 
2
 
3
-import "spaceofcheng/services/models/model"
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/service"
6
+	"spaceofcheng/services/utils"
7
+
8
+	"github.com/astaxie/beego"
9
+)
4
 
10
 
5
 // GetCaseUserByCase 根据案场id获取案场相关人员信息
11
 // GetCaseUserByCase 根据案场id获取案场相关人员信息
6
-func (s *CaseServ) GetCaseUserByCase(caseid string) ([]model.SysCaseUser, error) {
7
-	caseusers, err := s.dao.GetCaseUserByCase(caseid)
8
-	return caseusers, err
12
+func (s *CaseServ) GetCaseUserByCase(caseid string, page int, pageSize int) (map[string]interface{}, error) {
13
+	if pageSize == 0 {
14
+		pageSize = service.PAGENUM
15
+	}
16
+	if page == 0 {
17
+		page = 1
18
+	}
19
+	caseusers, err := s.dao.GetCaseUserByCase(caseid, page, pageSize)
20
+	if err != nil {
21
+		beego.Error(err)
22
+		return nil, err
23
+	}
24
+	total, err := s.dao.GetCaseUserCount(caseid)
25
+	if err != nil {
26
+		beego.Error(err)
27
+		return nil, err
28
+	}
29
+
30
+	return map[string]interface{}{
31
+		"list":     caseusers,
32
+		"pagesize": pageSize,
33
+		"pagenum":  total,
34
+		"page":     page,
35
+	}, err
9
 }
36
 }
10
 
37
 
11
 // GetCaseUserByType 根据类型获取人员
38
 // GetCaseUserByType 根据类型获取人员
24
 func (s *CaseServ) SaveCaseUser(caseuser model.SysCaseUser) (*model.SysCaseUser, error) {
51
 func (s *CaseServ) SaveCaseUser(caseuser model.SysCaseUser) (*model.SysCaseUser, error) {
25
 	var newInfo *model.SysCaseUser
52
 	var newInfo *model.SysCaseUser
26
 	var err error
53
 	var err error
54
+	if caseuser.UserName == "" {
55
+		return nil, utils.LogError("人员名称不能为空!")
56
+	}
57
+	if caseuser.UserType == "" {
58
+		return nil, utils.LogError("人员类型不能为空!")
59
+	}
60
+	if caseuser.Tel == "" {
61
+		return nil, utils.LogError("人员电话不能为空!")
62
+	}
27
 	if caseuser.CaseUserId == "" {
63
 	if caseuser.CaseUserId == "" {
28
 		newInfo, err = s.dao.AddCaseUser(caseuser)
64
 		newInfo, err = s.dao.AddCaseUser(caseuser)
29
 	} else {
65
 	} else {

+ 4
- 0
service/cases/equipment.go 查看文件

3
 import (
3
 import (
4
 	"spaceofcheng/services/models/model"
4
 	"spaceofcheng/services/models/model"
5
 	"spaceofcheng/services/service"
5
 	"spaceofcheng/services/service"
6
+	"spaceofcheng/services/utils"
6
 
7
 
7
 	"github.com/astaxie/beego"
8
 	"github.com/astaxie/beego"
8
 )
9
 )
43
 // SaveCaseEquipment 保存体检设备
44
 // SaveCaseEquipment 保存体检设备
44
 func (s *CaseServ) SaveCaseEquipment(equipment model.SysCaseEquipment) (*model.SysCaseEquipment, error) {
45
 func (s *CaseServ) SaveCaseEquipment(equipment model.SysCaseEquipment) (*model.SysCaseEquipment, error) {
45
 	var err error
46
 	var err error
47
+	if equipment.Name == "" {
48
+		return nil, utils.LogError("体检设备名称不能为空!")
49
+	}
46
 	if equipment.EquipmentId == "" {
50
 	if equipment.EquipmentId == "" {
47
 		_, err = s.dao.AddCaseEquipment(&equipment)
51
 		_, err = s.dao.AddCaseEquipment(&equipment)
48
 	} else {
52
 	} else {

+ 14
- 6
service/cases/key.go 查看文件

1
 package cases
1
 package cases
2
 
2
 
3
 import (
3
 import (
4
+	"spaceofcheng/services/models/cases"
4
 	"spaceofcheng/services/models/model"
5
 	"spaceofcheng/services/models/model"
5
 	"spaceofcheng/services/service"
6
 	"spaceofcheng/services/service"
6
 	"spaceofcheng/services/utils"
7
 	"spaceofcheng/services/utils"
7
 	"strconv"
8
 	"strconv"
9
+	"time"
8
 
10
 
9
 	"github.com/astaxie/beego"
11
 	"github.com/astaxie/beego"
10
 )
12
 )
18
 			isdict = true
20
 			isdict = true
19
 		}
21
 		}
20
 	}
22
 	}
23
+
21
 	if !isdict {
24
 	if !isdict {
22
 		return nil, utils.LogError("您没有该案场的权限!")
25
 		return nil, utils.LogError("您没有该案场的权限!")
23
 	}
26
 	}
32
 		return nil, err
35
 		return nil, err
33
 	}
36
 	}
34
 
37
 
35
-	total, err := s.dao.GetCaseCount(caseid, num)
38
+	total, err := s.dao.GetKeysCountByCase(caseid, num)
36
 	if err != nil {
39
 	if err != nil {
37
 		beego.Error(err)
40
 		beego.Error(err)
38
 		return nil, err
41
 		return nil, err
44
 			beego.Error(err)
47
 			beego.Error(err)
45
 			return nil, err
48
 			return nil, err
46
 		}
49
 		}
47
-		keys[index].CustomerId = use.CustomerId
48
-		keys[index].CustomerName = use.CustomerName
50
+		if use != nil {
51
+			keys[index].CustomerId = use.CustomerId
52
+			keys[index].CustomerName = use.CustomerName
53
+		}
49
 	}
54
 	}
50
 
55
 
51
 	return map[string]interface{}{
56
 	return map[string]interface{}{
64
 
69
 
65
 	for i := beginnum; i <= endnum; i++ {
70
 	for i := beginnum; i <= endnum; i++ {
66
 		key := model.TaCaseKey{
71
 		key := model.TaCaseKey{
67
-			OrgId:   orgid,
68
-			CaseId:  caseid,
69
-			LockNum: strconv.Itoa(i),
72
+			OrgId:      orgid,
73
+			CaseId:     caseid,
74
+			LockNum:    strconv.Itoa(i),
75
+			KeyId:      utils.GetGUID(),
76
+			Status:     cases.STATUS_UNLOCK,
77
+			CreateDate: time.Now(),
70
 		}
78
 		}
71
 		_, err := s.dao.AddKey(key)
79
 		_, err := s.dao.AddKey(key)
72
 		if err != nil {
80
 		if err != nil {

+ 4
- 0
service/cases/table.go 查看文件

3
 import (
3
 import (
4
 	"spaceofcheng/services/models/model"
4
 	"spaceofcheng/services/models/model"
5
 	"spaceofcheng/services/service"
5
 	"spaceofcheng/services/service"
6
+	"spaceofcheng/services/utils"
6
 
7
 
7
 	"github.com/astaxie/beego"
8
 	"github.com/astaxie/beego"
8
 )
9
 )
43
 // SaveCaseTable 保存桌位
44
 // SaveCaseTable 保存桌位
44
 func (s *CaseServ) SaveCaseTable(table model.SysCaseTable) (*model.SysCaseTable, error) {
45
 func (s *CaseServ) SaveCaseTable(table model.SysCaseTable) (*model.SysCaseTable, error) {
45
 	var err error
46
 	var err error
47
+	if table.TableNo == "" {
48
+		return nil, utils.LogError("桌位名称不能为空")
49
+	}
46
 	if table.TableId == "" {
50
 	if table.TableId == "" {
47
 		_, err = s.dao.AddCaseTable(&table)
51
 		_, err = s.dao.AddCaseTable(&table)
48
 	} else {
52
 	} else {

+ 7
- 0
service/cases/tag.go 查看文件

4
 	"spaceofcheng/services/models/cases"
4
 	"spaceofcheng/services/models/cases"
5
 	"spaceofcheng/services/models/model"
5
 	"spaceofcheng/services/models/model"
6
 	"spaceofcheng/services/service"
6
 	"spaceofcheng/services/service"
7
+	"spaceofcheng/services/utils"
7
 
8
 
8
 	"github.com/astaxie/beego"
9
 	"github.com/astaxie/beego"
9
 )
10
 )
57
 func (s *CaseServ) SaveTag(tag model.SysTag, caseids string) (*model.SysTag, error) {
58
 func (s *CaseServ) SaveTag(tag model.SysTag, caseids string) (*model.SysTag, error) {
58
 	var newInfo *model.SysTag
59
 	var newInfo *model.SysTag
59
 	var err error
60
 	var err error
61
+	if tag.TagName == "" {
62
+		return nil, utils.LogError("标签名称不能为空!")
63
+	}
64
+	if caseids == "" {
65
+		return nil, utils.LogError("案场不能为空!")
66
+	}
60
 	if tag.TagId == "" {
67
 	if tag.TagId == "" {
61
 		newInfo, err = s.dao.AddTag(tag)
68
 		newInfo, err = s.dao.AddTag(tag)
62
 	} else {
69
 	} else {

+ 68
- 0
service/channel/channel.go 查看文件

1
+package channel
2
+
3
+import (
4
+	"spaceofcheng/services/models/channel"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service"
7
+	"spaceofcheng/services/utils"
8
+)
9
+
10
+// ChannelServ 系统处理
11
+type ChannelServ struct {
12
+	ctx *utils.Context
13
+	dao *channel.ChannelDAO
14
+}
15
+
16
+// NewChannelServ 初始化
17
+func NewChannelServ(ctx *utils.Context) *ChannelServ {
18
+	return &ChannelServ{
19
+		ctx: ctx,
20
+		dao: channel.NewChannelDAO(ctx),
21
+	}
22
+}
23
+
24
+// GetChannelList 获取渠道列表
25
+func (s *ChannelServ) GetChannelList(caseid string, page, pageSize int) (map[string]interface{}, error) {
26
+	if pageSize == 0 {
27
+		pageSize = service.PAGENUM
28
+	}
29
+	channels, err := s.dao.GetChannels(caseid, page, pageSize)
30
+	if err != nil {
31
+		return nil, err
32
+	}
33
+	total, err := s.dao.GetChannelsCount(caseid)
34
+	if err != nil {
35
+		return nil, err
36
+	}
37
+	return map[string]interface{}{
38
+		"list":     channels,
39
+		"pageSize": pageSize,
40
+		"pagenum":  total,
41
+		"page":     page,
42
+	}, err
43
+}
44
+
45
+// GetChannelById 根据渠道id获取渠道
46
+func (s *ChannelServ) GetChannelById(channelId string) (*model.TaChannel, error) {
47
+	channel, err := s.dao.GetChannelById(channelId)
48
+	return channel, err
49
+}
50
+
51
+// SaveChannel 保存渠道
52
+func (s *ChannelServ) SaveChannel(channel model.TaChannel) (*model.TaChannel, error) {
53
+	var newChannel *model.TaChannel
54
+	var err error
55
+	if channel.ChannelId == "" {
56
+		newChannel, err = s.dao.AddNewChannel(channel)
57
+	} else {
58
+		err = s.dao.UpdateChannel(channel)
59
+		newChannel = &channel
60
+	}
61
+	return newChannel, err
62
+}
63
+
64
+// DeleteChannel 删除渠道
65
+func (s *ChannelServ) DeleteChannel(caseid string) error {
66
+	err := s.dao.DeleteChannel(caseid)
67
+	return err
68
+}

+ 49
- 24
service/message/cmscase.go 查看文件

5
 	"spaceofcheng/services/models/message"
5
 	"spaceofcheng/services/models/message"
6
 	"spaceofcheng/services/models/model"
6
 	"spaceofcheng/services/models/model"
7
 	"spaceofcheng/services/service"
7
 	"spaceofcheng/services/service"
8
+	"spaceofcheng/services/utils"
8
 	"strings"
9
 	"strings"
9
 
10
 
10
 	"github.com/astaxie/beego"
11
 	"github.com/astaxie/beego"
77
 func (s *MessageServ) SaveCmsCase(cmscase model.TaCmsCase, courseids, imgs, detailimgs string) (*model.TaCmsCase, error) {
78
 func (s *MessageServ) SaveCmsCase(cmscase model.TaCmsCase, courseids, imgs, detailimgs string) (*model.TaCmsCase, error) {
78
 	var newInfo *model.TaCmsCase
79
 	var newInfo *model.TaCmsCase
79
 	var err error
80
 	var err error
81
+	if cmscase.Name == "" {
82
+		return nil, utils.LogError("项目名称不能为空!")
83
+	}
84
+
85
+	if cmscase.Title == "" {
86
+		return nil, utils.LogError("项目标题不能为空!")
87
+	}
88
+
80
 	if cmscase.CmsCaseId == "" {
89
 	if cmscase.CmsCaseId == "" {
81
 		newInfo, err = s.dao.AddCmsCase(cmscase)
90
 		newInfo, err = s.dao.AddCmsCase(cmscase)
82
 	} else {
91
 	} else {
105
 		return nil, err
114
 		return nil, err
106
 	}
115
 	}
107
 
116
 
108
-	arrimg := strings.Split(imgs, ",")
109
-	for index, img := range arrimg {
110
-		CmsImg := model.TaCmsCaseImage{
111
-			ImageType:    models.IMAGETYPE_COVER,
112
-			Sort:         (index + 1),
113
-			CaseImageUrl: img,
114
-			CmsCaseId:    newInfo.CmsCaseId,
115
-		}
116
-		err = s.dao.SaveCmsCaseImg(CmsImg)
117
-		if err != nil {
118
-			beego.Error(err)
119
-			return nil, err
117
+	if imgs != "" {
118
+		arrimg := strings.Split(imgs, ",")
119
+		for index, img := range arrimg {
120
+			CmsImg := model.TaCmsCaseImage{
121
+				ImageType:    models.IMAGETYPE_COVER,
122
+				Sort:         (index + 1),
123
+				CaseImageUrl: img,
124
+				CmsCaseId:    newInfo.CmsCaseId,
125
+			}
126
+			err = s.dao.SaveCmsCaseImg(CmsImg)
127
+			if err != nil {
128
+				beego.Error(err)
129
+				return nil, err
130
+			}
120
 		}
131
 		}
121
 	}
132
 	}
122
-	arrdetailimg := strings.Split(detailimgs, ",")
123
-	for index, img := range arrdetailimg {
124
-		CmsImg := model.TaCmsCaseImage{
125
-			ImageType:    models.IMAGETYPE_DETAIL,
126
-			Sort:         (index + 1),
127
-			CaseImageUrl: img,
128
-			CmsCaseId:    newInfo.CmsCaseId,
129
-		}
130
-		err = s.dao.SaveCmsCaseImg(CmsImg)
131
-		if err != nil {
132
-			beego.Error(err)
133
-			return nil, err
133
+	if detailimgs != "" {
134
+		arrdetailimg := strings.Split(detailimgs, ",")
135
+		for index, img := range arrdetailimg {
136
+			CmsImg := model.TaCmsCaseImage{
137
+				ImageType:    models.IMAGETYPE_DETAIL,
138
+				Sort:         (index + 1),
139
+				CaseImageUrl: img,
140
+				CmsCaseId:    newInfo.CmsCaseId,
141
+			}
142
+			err = s.dao.SaveCmsCaseImg(CmsImg)
143
+			if err != nil {
144
+				beego.Error(err)
145
+				return nil, err
146
+			}
134
 		}
147
 		}
135
 	}
148
 	}
136
 	return newInfo, err
149
 	return newInfo, err
141
 	err := s.dao.DelCmsCase(cmscaseid)
154
 	err := s.dao.DelCmsCase(cmscaseid)
142
 	return err
155
 	return err
143
 }
156
 }
157
+
158
+// CmsCaseShow 前台展示
159
+func (s *MessageServ) CmsCaseShow(cmscaseid string) error {
160
+	err := s.dao.CmsCaseShow(cmscaseid)
161
+	return err
162
+}
163
+
164
+// CmsCaseHide 前台隐藏
165
+func (s *MessageServ) CmsCaseHide(cmscaseid string) error {
166
+	err := s.dao.CmsCaseHide(cmscaseid)
167
+	return err
168
+}

+ 32
- 1
service/message/location.go 查看文件

1
 package message
1
 package message
2
 
2
 
3
-import "spaceofcheng/services/models/model"
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/utils"
6
+	"strings"
7
+
8
+	"github.com/astaxie/beego"
9
+)
4
 
10
 
5
 // GetLocationList 获取列表
11
 // GetLocationList 获取列表
6
 func (s *MessageServ) GetLocationList(issys, orgid string) ([]model.TdCmsImageLocation, error) {
12
 func (s *MessageServ) GetLocationList(issys, orgid string) ([]model.TdCmsImageLocation, error) {
17
 // SaveLocation 保存
23
 // SaveLocation 保存
18
 func (s *MessageServ) SaveLocation(location model.TdCmsImageLocation) (*model.TdCmsImageLocation, error) {
24
 func (s *MessageServ) SaveLocation(location model.TdCmsImageLocation) (*model.TdCmsImageLocation, error) {
19
 	if location.LocationId == "" {
25
 	if location.LocationId == "" {
26
+		sort, err := s.dao.GetLocationMaxSort("0", location.OrgId)
27
+		if err != nil {
28
+			beego.Error(err)
29
+			return nil, err
30
+		}
31
+		location.OrderNo = sort + 1
20
 		newlocation, err := s.dao.AddLocation(location)
32
 		newlocation, err := s.dao.AddLocation(location)
21
 		return newlocation, err
33
 		return newlocation, err
22
 	}
34
 	}
29
 	err := s.dao.DelLocation(locationID)
41
 	err := s.dao.DelLocation(locationID)
30
 	return err
42
 	return err
31
 }
43
 }
44
+
45
+// UpdateLocationSort 更新顺序
46
+func (s *MessageServ) UpdateLocationSort(locations string) error {
47
+	if locations == "" {
48
+		return utils.LogError("没有需要修改的5A信息!")
49
+	}
50
+	arrlocation := strings.Split(locations, ",")
51
+	for _, loc := range arrlocation {
52
+		loc := strings.Split(loc, ":")
53
+		if len(loc) < 2 {
54
+			return utils.LogError("修改信息不全!")
55
+		}
56
+		err := s.dao.UpdateLocationSort(loc)
57
+		if err != nil {
58
+			return err
59
+		}
60
+	}
61
+	return nil
62
+}

+ 20
- 0
service/message/news.go 查看文件

1
 package message
1
 package message
2
 
2
 
3
 import (
3
 import (
4
+	"errors"
4
 	"spaceofcheng/services/models/message"
5
 	"spaceofcheng/services/models/message"
5
 	"spaceofcheng/services/models/model"
6
 	"spaceofcheng/services/models/model"
6
 	"spaceofcheng/services/service"
7
 	"spaceofcheng/services/service"
61
 func (s *MessageServ) SaveNews(news model.TaCmsNews, locationids string) (*model.TaCmsNews, error) {
62
 func (s *MessageServ) SaveNews(news model.TaCmsNews, locationids string) (*model.TaCmsNews, error) {
62
 	var newInfo *model.TaCmsNews
63
 	var newInfo *model.TaCmsNews
63
 	var err error
64
 	var err error
65
+	if news.Title == "" {
66
+		return nil, errors.New("咨询标题不允许为空!")
67
+	}
68
+
69
+	if news.ImageUrl == "" {
70
+		return nil, errors.New("图片不允许为空!")
71
+	}
72
+
73
+	if news.ForwardType == "" {
74
+		return nil, errors.New("跳转类型不允许为空!")
75
+	}
76
+	if news.ForwardType == ForwardTypeUrl && news.ForwardUrl == "" {
77
+		return nil, errors.New("跳转地址不允许为空!")
78
+	}
79
+
80
+	if news.ForwardType == ForwardTypeCourse && news.CaseId == "" {
81
+		return nil, errors.New("跳转资源不允许为空!")
82
+	}
83
+
64
 	if news.NewsId == "" {
84
 	if news.NewsId == "" {
65
 		newInfo, err = s.dao.AddNews(news)
85
 		newInfo, err = s.dao.AddNews(news)
66
 	} else {
86
 	} else {

+ 41
- 18
service/system/role.go 查看文件

24
 }
24
 }
25
 
25
 
26
 // GetRoleList 获取Role列表
26
 // GetRoleList 获取Role列表
27
-func (s *RoleServ) GetRoleList(caseids string, page, pageSize int) (map[string]interface{}, error) {
27
+func (s *RoleServ) GetRoleList(caseids, name, caseid string, page, pageSize int) (map[string]interface{}, error) {
28
 	if pageSize == 0 {
28
 	if pageSize == 0 {
29
 		pageSize = service.PAGENUM
29
 		pageSize = service.PAGENUM
30
 	}
30
 	}
31
 	if page == 0 {
31
 	if page == 0 {
32
 		page = 1
32
 		page = 1
33
 	}
33
 	}
34
-	roles, err := s.dao.GetRoleList(caseids, page, pageSize)
34
+	roles, err := s.dao.GetRoleList(caseids, name, caseid, page, pageSize)
35
 	if err != nil {
35
 	if err != nil {
36
 		beego.Error(err)
36
 		beego.Error(err)
37
 		return nil, err
37
 		return nil, err
38
 	}
38
 	}
39
-	total, err := s.dao.GetRoleCount(caseids)
39
+	total, err := s.dao.GetRoleCount(caseids, name, caseid)
40
 	if err != nil {
40
 	if err != nil {
41
 		beego.Error(err)
41
 		beego.Error(err)
42
 		return nil, err
42
 		return nil, err
51
 }
51
 }
52
 
52
 
53
 // GetRoleByID 根据ID获取角色
53
 // GetRoleByID 根据ID获取角色
54
-func (s *RoleServ) GetRoleByID(roleid string) (*system.Role, error) {
54
+func (s *RoleServ) GetRoleByID(roleid string) (*model.SysRole, error) {
55
 	role, err := s.dao.GetRoleByID(roleid)
55
 	role, err := s.dao.GetRoleByID(roleid)
56
 	if err != nil {
56
 	if err != nil {
57
 		beego.Error(err)
57
 		beego.Error(err)
58
 		return nil, err
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
 	return role, err
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
 // SaveRole 保存角色
81
 // SaveRole 保存角色
72
-func (s *RoleServ) SaveRole(role model.SysRole, menuids string) (*model.SysRole, error) {
82
+func (s *RoleServ) SaveRole(role model.SysRole) (*model.SysRole, error) {
73
 	var newInfo *model.SysRole
83
 	var newInfo *model.SysRole
74
 	var err error
84
 	var err error
75
 	if role.RoleId == "" {
85
 	if role.RoleId == "" {
82
 		beego.Error(err)
92
 		beego.Error(err)
83
 		return nil, err
93
 		return nil, err
84
 	}
94
 	}
85
-	err = s.dao.DelRoleMenu(newInfo.RoleId)
95
+
96
+	return newInfo, err
97
+}
98
+
99
+// SaveRoleMenu 保存角色菜单
100
+func (s *RoleServ) SaveRoleMenu(roleid, menuids string) error {
101
+	var err error
102
+	err = s.dao.DelRoleMenu(roleid)
86
 	if err != nil {
103
 	if err != nil {
87
 		beego.Error(err)
104
 		beego.Error(err)
88
-		return nil, err
105
+		return err
89
 	}
106
 	}
90
-	err = s.dao.SaveRoleMenu(newInfo.RoleId, menuids)
107
+	err = s.dao.SaveRoleMenu(roleid, menuids)
91
 	if err != nil {
108
 	if err != nil {
92
 		beego.Error(err)
109
 		beego.Error(err)
93
-		return nil, err
110
+		return err
94
 	}
111
 	}
95
-	return newInfo, err
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
96
 }
119
 }
97
 
120
 
98
 // DelRole 删除角色
121
 // DelRole 删除角色

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

264
 	return err
264
 	return err
265
 }
265
 }
266
 
266
 
267
+// GetUserTypes 获取用户类型
268
+func (s *UserServ) GetUserTypes(caseids string) ([]model.TdUserType, error) {
269
+	types, err := s.dao.GetUserTypes(caseids)
270
+	return types, err
271
+}
272
+
273
+// GetUserRoles 获取用户角色
274
+func (s *UserServ) GetUserRoles(userid string) ([]model.SysRole, error) {
275
+	if userid == "" {
276
+		return nil, utils.LogError("没有对应的用户信息!")
277
+	}
278
+	userroles, err := s.dao.GetUserRole(userid)
279
+	return userroles, err
280
+}
281
+
267
 // SaveUserRole 保存用户对应角色
282
 // SaveUserRole 保存用户对应角色
268
 func (s *UserServ) SaveUserRole(userid, roleids string) error {
283
 func (s *UserServ) SaveUserRole(userid, roleids string) error {
284
+	if userid == "" {
285
+		return utils.LogError("没有对应的用户信息!")
286
+	}
287
+	if roleids == "" {
288
+		return utils.LogError("没有对应的角色信息!")
289
+	}
269
 	err := s.dao.DelUserRole(userid)
290
 	err := s.dao.DelUserRole(userid)
270
 	if err != nil {
291
 	if err != nil {
271
 		return err
292
 		return err

+ 20
- 0
service/vipcard/vipcard.go 查看文件

1
+package vipcard
2
+
3
+import (
4
+	"spaceofcheng/services/models/vipcard"
5
+	"spaceofcheng/services/utils"
6
+)
7
+
8
+// CaseServ 系统处理
9
+type VipcardServ struct {
10
+	ctx *utils.Context
11
+	dao *vipcard.VipcardDAO
12
+}
13
+
14
+// NewVipcardServ 初始化
15
+func NewVipcardServ(ctx *utils.Context) *VipcardServ {
16
+	return &VipcardServ{
17
+		ctx: ctx,
18
+		dao: vipcard.NewVipcardDAO(ctx),
19
+	}
20
+}