wangfei 6 年前
父节点
当前提交
0cf4ff9d95

+ 62
- 0
controllers/cases/area.go 查看文件

@@ -0,0 +1,62 @@
1
+package cases
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetCaseArea 获取案场区域列表
6
+func (c *CaseController) GetCaseArea() {
7
+	caseids := c.GetString("caseid")
8
+	if caseids == "" {
9
+		cases := c.Context.Get("cases").([]model.SysUserCase)
10
+		caseids = c.GetCaseIDs(cases)
11
+	}
12
+	page, _ := c.GetInt("page")
13
+	pageSize, _ := c.GetInt("pagesize")
14
+	areas, err := c.dao.GetCaseArea(caseids, page, pageSize)
15
+	if err != nil {
16
+		c.ResponseError(err)
17
+	}
18
+	c.ResponseJSON(areas)
19
+}
20
+
21
+// GetCaseAreaByID 根据ID获取案场区域
22
+func (c *CaseController) GetCaseAreaByID() {
23
+	areaid := c.GetString(":areaid")
24
+	area, err := c.dao.GetCaseAreaByID(areaid)
25
+	if err != nil {
26
+		c.ResponseError(err)
27
+	}
28
+	c.ResponseJSON(area)
29
+}
30
+
31
+// SaveCaseArea 保存案场区域
32
+func (c *CaseController) SaveCaseArea() {
33
+	area := model.SysCaseArea{}
34
+	if err := c.ParseForm(&area); err != nil {
35
+		c.ResponseError(err)
36
+	}
37
+	newinfo, err := c.dao.SaveCaseArea(area)
38
+	if err != nil {
39
+		c.ResponseError(err)
40
+	}
41
+	c.ResponseJSON(newinfo)
42
+}
43
+
44
+// DelCaseArea 删除案场区域
45
+func (c *CaseController) DelCaseArea() {
46
+	areaid := c.GetString(":areaid")
47
+	err := c.dao.DelCaseArea(areaid)
48
+	if err != nil {
49
+		c.ResponseError(err)
50
+	}
51
+	c.ResponseJSON("删除成功!")
52
+}
53
+
54
+// GetAreaByCase 根据案场获取区域信息
55
+func (c *CaseController) GetAreaByCase() {
56
+	caseid := c.GetString("caseid")
57
+	areas, err := c.dao.GetAreaByCase(caseid)
58
+	if err != nil {
59
+		c.ResponseError(err)
60
+	}
61
+	c.ResponseJSON(areas)
62
+}

+ 49
- 0
controllers/cases/key.go 查看文件

@@ -0,0 +1,49 @@
1
+package cases
2
+
3
+// GetKeyList 获取钥匙列表
4
+func (c *CaseController) GetKeyList() {
5
+	caseid := c.GetString("caseid")
6
+	page, _ := c.GetInt("page")
7
+	pageSize, _ := c.GetInt("pagesize")
8
+	num := c.GetString("num")
9
+
10
+	list, err := c.dao.GetKeysByCase(caseid, num, page, pageSize)
11
+	if err != nil {
12
+		c.ResponseError(err)
13
+	}
14
+	c.ResponseJSON(list)
15
+}
16
+
17
+// AddKeys 新增钥匙
18
+func (c *CaseController) AddKeys() {
19
+	caseid := c.GetString("caseid")
20
+	orgid := c.GetString("orgid")
21
+	beginnum, _ := c.GetInt("beginnum")
22
+	endnum, _ := c.GetInt("endnum")
23
+
24
+	err := c.dao.AddKeys(orgid, caseid, beginnum, endnum)
25
+	if err != nil {
26
+		c.ResponseError(err)
27
+	}
28
+	c.ResponseJSON("操作成功!")
29
+}
30
+
31
+// UnLockKey 解锁
32
+func (c *CaseController) UnLockKey() {
33
+	keyid := c.GetString(":keyid")
34
+	err := c.dao.UnLockKey(keyid)
35
+	if err != nil {
36
+		c.ResponseError(err)
37
+	}
38
+	c.ResponseJSON("解锁成功!")
39
+}
40
+
41
+// DelKey 删除
42
+func (c *CaseController) DelKey() {
43
+	keyid := c.GetString(":keyid")
44
+	err := c.dao.DelKey(keyid)
45
+	if err != nil {
46
+		c.ResponseError(err)
47
+	}
48
+	c.ResponseJSON("删除成功!")
49
+}

+ 52
- 0
controllers/cases/table.go 查看文件

@@ -0,0 +1,52 @@
1
+package cases
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetCaseTable 获取案场桌位列表
6
+func (c *CaseController) GetCaseTable() {
7
+	caseids := c.GetString("caseid")
8
+	if caseids == "" {
9
+		cases := c.Context.Get("cases").([]model.SysUserCase)
10
+		caseids = c.GetCaseIDs(cases)
11
+	}
12
+	page, _ := c.GetInt("page")
13
+	pageSize, _ := c.GetInt("pagesize")
14
+	tables, err := c.dao.GetCaseTable(caseids, page, pageSize)
15
+	if err != nil {
16
+		c.ResponseError(err)
17
+	}
18
+	c.ResponseJSON(tables)
19
+}
20
+
21
+// GetCaseTableByID 根据ID获取案场桌位
22
+func (c *CaseController) GetCaseTableByID() {
23
+	tableid := c.GetString(":tableid")
24
+	table, err := c.dao.GetCaseTableByID(tableid)
25
+	if err != nil {
26
+		c.ResponseError(err)
27
+	}
28
+	c.ResponseJSON(table)
29
+}
30
+
31
+// SaveCaseTable 保存案场桌位
32
+func (c *CaseController) SaveCaseTable() {
33
+	table := model.SysCaseTable{}
34
+	if err := c.ParseForm(&table); err != nil {
35
+		c.ResponseError(err)
36
+	}
37
+	newinfo, err := c.dao.SaveCaseTable(table)
38
+	if err != nil {
39
+		c.ResponseError(err)
40
+	}
41
+	c.ResponseJSON(newinfo)
42
+}
43
+
44
+// DelCaseTable 删除案场桌位
45
+func (c *CaseController) DelCaseTable() {
46
+	tableid := c.GetString(":tableid")
47
+	err := c.dao.DelCaseTable(tableid)
48
+	if err != nil {
49
+		c.ResponseError(err)
50
+	}
51
+	c.ResponseJSON("删除成功!")
52
+}

+ 68
- 0
controllers/system/role.go 查看文件

@@ -0,0 +1,68 @@
1
+package system
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service/system"
7
+)
8
+
9
+// RoleController 用户
10
+type RoleController struct {
11
+	dao *system.RoleServ
12
+	controllers.BaseController
13
+}
14
+
15
+// Constructor 初始化 Controller
16
+// @Title Constructor
17
+// @Description 初始化 Controller, 系统自动调用
18
+func (c *RoleController) Constructor() {
19
+	c.dao = system.NewRoleServ(c.Context)
20
+}
21
+
22
+// GetRoleList 获取角色列表
23
+func (c *RoleController) GetRoleList() {
24
+	cases := c.Context.Get("cases").([]model.SysUserCase)
25
+	caseIDs := c.GetCaseIDs(cases)
26
+	page, _ := c.GetInt("page")
27
+	pageSize, _ := c.GetInt("pagesize")
28
+
29
+	list, err := c.dao.GetRoleList(caseIDs, page, pageSize)
30
+	if err != nil {
31
+		c.ResponseError(err)
32
+	}
33
+	c.ResponseJSON(list)
34
+}
35
+
36
+// GetRoleByID 根据ID获取角色信息
37
+func (c *RoleController) GetRoleByID() {
38
+	roleid := c.GetString(":roleid")
39
+	info, err := c.dao.GetRoleByID(roleid)
40
+	if err != nil {
41
+		c.ResponseError(err)
42
+	}
43
+	c.ResponseJSON(info)
44
+}
45
+
46
+// SaveCaseRole 保存角色
47
+func (c *RoleController) SaveCaseRole() {
48
+	role := model.SysRole{}
49
+	if err := c.ParseForm(&role); err != nil {
50
+		c.ResponseError(err)
51
+	}
52
+	menuids := c.GetString("menuids")
53
+	newRole, err := c.dao.SaveRole(role, menuids)
54
+	if err != nil {
55
+		c.ResponseError(err)
56
+	}
57
+	c.ResponseJSON(newRole)
58
+}
59
+
60
+// DelCaseRole 删除角色
61
+func (c *RoleController) DelCaseRole() {
62
+	roleid := c.GetString(":roleid")
63
+	err := c.dao.DelRole(roleid)
64
+	if err != nil {
65
+		c.ResponseError(err)
66
+	}
67
+	c.ResponseJSON("删除成功!")
68
+}

+ 87
- 0
models/cases/area.go 查看文件

@@ -0,0 +1,87 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+	"time"
10
+)
11
+
12
+// GetCaseAreaCount 获取案场区域总数
13
+func (m *CaseDAO) GetCaseAreaCount(caseids string) (int, error) {
14
+	var areas []model.SysCaseArea
15
+	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
16
+	err := dao.Find(&areas)
17
+	return len(areas), err
18
+}
19
+
20
+// GetCaseArea 根据案场获取案场区域
21
+func (m *CaseDAO) GetCaseArea(caseids string, page int, pageSize int) ([]model.SysCaseArea, error) {
22
+	var areas []model.SysCaseArea
23
+	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
24
+	err := dao.Limit(pageSize, page*pageSize).Find(&areas)
25
+	return areas, err
26
+}
27
+
28
+// AreaInfo 案场区域
29
+type AreaInfo struct {
30
+	model.SysCaseArea `xorm:"extends"`
31
+	Tables            []model.SysCaseTable
32
+}
33
+
34
+// GetCaseAreaByCase 根据案场获取案场区域
35
+func (m *CaseDAO) GetCaseAreaByCase(caseid string) ([]AreaInfo, error) {
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)
38
+	return areas, err
39
+}
40
+
41
+// GetCaseAreaByID 根据ID获取案场区域
42
+func (m *CaseDAO) GetCaseAreaByID(specid string) (*model.SysCaseArea, error) {
43
+	var areas []model.SysCaseArea
44
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("area_id=?", specid).Find(&areas)
45
+	if err != nil {
46
+		return nil, err
47
+	}
48
+	if len(areas) > 0 {
49
+		return &areas[0], nil
50
+	}
51
+	return nil, nil
52
+}
53
+
54
+// AddCaseArea 新增案场区域
55
+func (m *CaseDAO) AddCaseArea(area *model.SysCaseArea) (*model.SysCaseArea, error) {
56
+	area.AreaId = utils.GetGUID()
57
+	area.Status = models.STATUS_NORMAL
58
+	area.CreateDate = time.Now()
59
+	user := m.ctx.Get("user").(*model.SysUser)
60
+	area.CreateUser = user.UserId
61
+	_, err := m.db.Insert(area)
62
+	return area, err
63
+}
64
+
65
+// UpdateCaseArea 修改案场区域
66
+func (m *CaseDAO) UpdateCaseArea(area model.SysCaseArea) error {
67
+	var cols = []string{
68
+		"area_name",
69
+		"area_icon",
70
+		"area_icon_white",
71
+	}
72
+	_, err := m.db.Cols(cols...).Where("area_id=?", area.AreaId).Update(area)
73
+	return err
74
+}
75
+
76
+// DelCaseArea 刪除案场区域
77
+func (m *CaseDAO) DelCaseArea(areaid string) error {
78
+	var area = model.SysCaseArea{
79
+		AreaId: areaid,
80
+		Status: models.STATUS_DEL,
81
+	}
82
+	var cols = []string{
83
+		"status",
84
+	}
85
+	_, err := m.db.Cols(cols...).Where("area_id=?", area.AreaId).Update(area)
86
+	return err
87
+}

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

@@ -41,13 +41,6 @@ func (m *CaseDAO) GetCaseList(caseids, casename string, page, pageSize int) ([]C
41 41
 	}
42 42
 
43 43
 	sql = sql + " order by create_date desc limit " + strconv.Itoa(page*pageSize) + ", " + strconv.Itoa((page+1)*pageSize)
44
-
45
-	// var cases []model.SysCase
46
-	// dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
47
-	// if casename != "" {
48
-	// 	dao = dao.And("case_name like '%" + casename + "%'")
49
-	// }
50
-	// err := dao.Limit(pageSize, page*pageSize).Find(&cases)
51 44
 	err := m.db.Sql(sql).Find(&cases)
52 45
 	return cases, err
53 46
 }

+ 79
- 2
models/cases/key.go 查看文件

@@ -3,14 +3,91 @@ package cases
3 3
 import (
4 4
 	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
6 7
 	"strconv"
8
+	"time"
7 9
 )
8 10
 
11
+const (
12
+	STATUS_UNLOCK = 0
13
+)
14
+
15
+// CaseKeyInfo 案场钥匙信息
16
+type CaseKeyInfo struct {
17
+	model.TaCaseKey `xorm:"extends"`
18
+	CustomerId      string
19
+	CustomerName    string
20
+}
21
+
9 22
 // GetKeysByCase 根据案场获取钥匙信息
10
-func (m *CaseDAO) GetKeysByCase(caseid string, page, pageSize int) ([]model.TaCaseKey, error) {
23
+func (m *CaseDAO) GetKeysByCase(caseid, num string, page, pageSize int) ([]CaseKeyInfo, error) {
24
+	var keys []CaseKeyInfo
25
+	dao := m.db.Where("case_id=?", caseid).Table("ta_case_key").And("status>" + strconv.Itoa(models.STATUS_DEL))
26
+	if num != "" {
27
+		dao.And("lock_num like '%" + num + "%'")
28
+	}
29
+	err := dao.Limit(pageSize, page*pageSize).Find(&keys)
30
+	return keys, err
31
+}
32
+
33
+// GetKeysCountByCase 根据案场获取钥匙数量
34
+func (m *CaseDAO) GetKeysCountByCase(caseid string) (int, error) {
11 35
 	var keys []model.TaCaseKey
12 36
 	err := m.db.Where("case_id=?", caseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&keys)
13
-	return keys, err
37
+	return len(keys), err
14 38
 }
15 39
 
16 40
 // GetCurrentKey 获取当前钥匙的占用人员
41
+func (m *CaseDAO) GetCurrentKey(keyid string) (*model.TaCaseKeyUse, error) {
42
+	var use []model.TaCaseKeyUse
43
+	err := m.db.Where("key_id=?", keyid).And("status=?", models.STATUS_NORMAL).Find(&use)
44
+	if err != nil {
45
+		return nil, err
46
+	}
47
+	if len(use) > 0 {
48
+		return &use[0], nil
49
+	}
50
+	return nil, nil
51
+}
52
+
53
+// GetKeyByID 根据ID获取钥匙信息
54
+func (m *CaseDAO) GetKeyByID(keyid string) (*model.TaCaseKey, error) {
55
+	var keys []model.TaCaseKey
56
+	err := m.db.Where("key_id=?", keyid).Find(&keys)
57
+	if err != nil {
58
+		return nil, err
59
+	}
60
+	if len(keys) > 0 {
61
+		return &keys[0], nil
62
+	}
63
+	return nil, nil
64
+}
65
+
66
+// AddKey 新增单个钥匙信息
67
+func (m *CaseDAO) AddKey(key model.TaCaseKey) (*model.TaCaseKey, error) {
68
+	key.KeyId = utils.GetGUID()
69
+	key.Status = models.STATUS_NORMAL
70
+	key.CreateDate = time.Now()
71
+	_, err := m.db.Insert(&key)
72
+	return &key, err
73
+}
74
+
75
+// DelKey 删除钥匙信息
76
+func (m *CaseDAO) DelKey(keyid string) error {
77
+	var keyinfo = model.TaCaseKey{
78
+		KeyId:  keyid,
79
+		Status: models.STATUS_DEL,
80
+	}
81
+	var cols = []string{
82
+		"status",
83
+	}
84
+	_, err := m.db.Cols(cols...).Where("key_id=?", keyid).Update(keyinfo)
85
+	return err
86
+}
87
+
88
+// UnLockKey 解绑钥匙信息
89
+func (m *CaseDAO) UnLockKey(keyid string) error {
90
+	sql := `update ta_case_key_use set status=` + strconv.Itoa(STATUS_UNLOCK) + ` where key_id= '` + keyid + `'`
91
+	_, err := m.db.Exec(sql)
92
+	return err
93
+}

+ 93
- 0
models/cases/table.go 查看文件

@@ -0,0 +1,93 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+	"time"
10
+)
11
+
12
+// GetCaseTableCount 获取桌位总数
13
+func (m *CaseDAO) GetCaseTableCount(caseids string) (int, error) {
14
+	var tables []model.SysCaseTable
15
+	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
16
+	err := dao.Find(&tables)
17
+	return len(tables), err
18
+}
19
+
20
+// CaseTableInfo 案场桌位
21
+type CaseTableInfo struct {
22
+	model.SysCaseTable `xorm:"extends"`
23
+	AreaName           string
24
+	CaseName           string
25
+}
26
+
27
+// GetCaseTable 根据案场获取桌位
28
+func (m *CaseDAO) GetCaseTable(caseids string, page int, pageSize int) ([]CaseTableInfo, error) {
29
+	var tables []CaseTableInfo
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
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 ('` +
34
+		strings.Replace(caseids, ",", "','", -1) + `')`
35
+
36
+	err := m.db.Sql(sql).Find(&tables)
37
+	return tables, err
38
+}
39
+
40
+// GetCaseTableByAreaID 根据区域ID获取桌位信息
41
+func (m *CaseDAO) GetCaseTableByAreaID(areaid string) ([]model.SysCaseTable, error) {
42
+	var tables []model.SysCaseTable
43
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("area_id=?", areaid).Find(&tables)
44
+	return tables, err
45
+}
46
+
47
+// GetCaseTableByID 根据ID获取桌位
48
+func (m *CaseDAO) GetCaseTableByID(tableid string) (*model.SysCaseTable, error) {
49
+	var tables []model.SysCaseTable
50
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("table_id=?", tableid).Find(&tables)
51
+	if err != nil {
52
+		return nil, err
53
+	}
54
+	if len(tables) > 0 {
55
+		return &tables[0], nil
56
+	}
57
+	return nil, nil
58
+}
59
+
60
+// AddCaseTable 新增桌位
61
+func (m *CaseDAO) AddCaseTable(area *model.SysCaseTable) (*model.SysCaseTable, error) {
62
+	area.TableId = utils.GetGUID()
63
+	area.Status = models.STATUS_NORMAL
64
+	area.CreateDate = time.Now()
65
+	user := m.ctx.Get("user").(*model.SysUser)
66
+	area.CreateUser = user.UserId
67
+	_, err := m.db.Insert(area)
68
+	return area, err
69
+}
70
+
71
+// UpdateCaseTable 修改桌位
72
+func (m *CaseDAO) UpdateCaseTable(area model.SysCaseTable) error {
73
+	var cols = []string{
74
+		"table_no",
75
+		"order",
76
+		"remark",
77
+	}
78
+	_, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
79
+	return err
80
+}
81
+
82
+// DelCaseTable 刪除桌位
83
+func (m *CaseDAO) DelCaseTable(tableid string) error {
84
+	var area = model.SysCaseTable{
85
+		TableId: tableid,
86
+		Status:  models.STATUS_DEL,
87
+	}
88
+	var cols = []string{
89
+		"status",
90
+	}
91
+	_, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
92
+	return err
93
+}

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

@@ -1,7 +1,7 @@
1 1
 package cases
2 2
 
3 3
 import (
4
-	"jcjy/demo/models"
4
+	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6 6
 	"spaceofcheng/services/utils"
7 7
 	"strconv"

+ 113
- 0
models/system/role.go 查看文件

@@ -0,0 +1,113 @@
1
+package system
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
+// RoleDAO 菜单
15
+type RoleDAO struct {
16
+	ctx *utils.Context
17
+	db  *xorm.Session
18
+}
19
+
20
+// NewRoleDAO New Inst
21
+func NewRoleDAO(ctx *utils.Context) *RoleDAO {
22
+	return &RoleDAO{
23
+		ctx: ctx,
24
+		db:  ctx.DB,
25
+	}
26
+}
27
+
28
+// GetRoleCount 获取角色总数
29
+func (m *RoleDAO) GetRoleCount(caseids string) (int, error) {
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)
32
+	return len(roles), err
33
+}
34
+
35
+// GetRoleList 根据案场获取角色
36
+func (m *RoleDAO) GetRoleList(caseids string, page int, pageSize int) ([]model.SysRole, error) {
37
+	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*pageSize).Desc("create_date").Find(&roles)
39
+	return roles, err
40
+}
41
+
42
+// Role 角色
43
+type Role struct {
44
+	model.TaCmsCase `xorm:"extends"`
45
+	RoleMenu        []model.SysMenu
46
+}
47
+
48
+// 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)
52
+	if err != nil {
53
+		return nil, err
54
+	}
55
+	if len(roles) > 0 {
56
+		return &roles[0], err
57
+	}
58
+	return nil, nil
59
+}
60
+
61
+// GetRoleMenuByRoleID 根据角色ID获取角色对应菜单
62
+func (m *RoleDAO) GetRoleMenuByRoleID(roleid string) ([]model.SysMenu, error) {
63
+	var menus []model.SysMenu
64
+	sql := `select a.* from sys_menu a inner join sys_role_menu b on a.menu_id=b.menu_id where b.role_id='` + roleid + `'`
65
+	err := m.db.Sql(sql).Find(&menus)
66
+	return menus, err
67
+}
68
+
69
+// AddRole 新增角色
70
+func (m *RoleDAO) AddRole(Role model.SysRole) (*model.SysRole, error) {
71
+	Role.RoleId = utils.GetGUID()
72
+	Role.Status = models.STATUS_NORMAL
73
+	Role.CreateDate = time.Now()
74
+	_, err := m.db.Insert(&Role)
75
+	return &Role, err
76
+}
77
+
78
+// UpdateRole 修改角色
79
+func (m *RoleDAO) UpdateRole(Role model.SysRole) error {
80
+	var cols = []string{
81
+		"role_name",
82
+		"remark",
83
+	}
84
+	_, err := m.db.Cols(cols...).Where("role_id=?", Role.RoleId).Update(Role)
85
+	return err
86
+}
87
+
88
+// DeleteRole 刪除角色
89
+func (m *RoleDAO) DeleteRole(roleid string) error {
90
+	var Role = model.SysRole{
91
+		RoleId: roleid,
92
+		Status: models.STATUS_DEL,
93
+	}
94
+	var cols = []string{
95
+		"status",
96
+	}
97
+	_, err := m.db.Cols(cols...).Where("role_id=?", Role.RoleId).Update(Role)
98
+	return err
99
+}
100
+
101
+// DelRoleMenu 删除角色对应的菜单
102
+func (m *RoleDAO) DelRoleMenu(roleid string) error {
103
+	sql := "delete from sys_role_menu where role_id='" + roleid + "'"
104
+	_, err := m.db.Exec(sql)
105
+	return err
106
+}
107
+
108
+// 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)
111
+	_, err := m.db.Exec(sql)
112
+	return err
113
+}

+ 43
- 18
routers/common.go 查看文件

@@ -2,9 +2,11 @@ package routers
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/controllers/cases"
5 6
 	"spaceofcheng/services/controllers/customer"
6 7
 	"spaceofcheng/services/controllers/goods"
7 8
 	"spaceofcheng/services/controllers/message"
9
+	"spaceofcheng/services/controllers/system"
8 10
 	"spaceofcheng/services/controllers/user"
9 11
 
10 12
 	"github.com/astaxie/beego"
@@ -70,24 +72,47 @@ func getCommonRoutes() beego.LinkNamespace {
70 72
 		beego.NSRouter("/cms/case/:cmscaseid", &message.MessageController{}, "put:SaveCmsCase"),
71 73
 		beego.NSRouter("/cms/case/:cmscaseid", &message.MessageController{}, "delete:DelCmsCase"),
72 74
 
73
-		beego.NSRouter("/caseuser", &message.MessageController{}, "get:GetCaseUserByCase"),
74
-		beego.NSRouter("/caseuserbytype", &message.MessageController{}, "get:GetCaseUserByType"),
75
-		beego.NSRouter("/caseuser/:userid", &message.MessageController{}, "get:GetCaseUserByID"),
76
-		beego.NSRouter("/caseuser", &message.MessageController{}, "post:SaveCaseUser"),
77
-		beego.NSRouter("/caseuser", &message.MessageController{}, "put:SaveCaseUser"),
78
-		beego.NSRouter("/caseuser/:userid", &message.MessageController{}, "delete:DelCaseUser"),
79
-
80
-		beego.NSRouter("/equipment", &message.MessageController{}, "get:GetEquipmentList"),
81
-		beego.NSRouter("/equipment/:id", &message.MessageController{}, "get:GetEquipmentByID"),
82
-		beego.NSRouter("/equipment", &message.MessageController{}, "post:SaveCaseEquipment"),
83
-		beego.NSRouter("/equipment", &message.MessageController{}, "put:SaveCaseEquipment"),
84
-		beego.NSRouter("/equipment/:id", &message.MessageController{}, "delete:DelCaseEquipment"),
85
-
86
-		beego.NSRouter("/case", &message.MessageController{}, "get:GetCaseList"),
87
-		beego.NSRouter("/case/:id", &message.MessageController{}, "get:GetCaseByID"),
88
-		beego.NSRouter("/case", &message.MessageController{}, "post:SaveCase"),
89
-		beego.NSRouter("/case", &message.MessageController{}, "put:SaveCase"),
90
-		beego.NSRouter("/case/:id", &message.MessageController{}, "delete:DelCase"),
75
+		beego.NSRouter("/caseuser", &cases.CaseController{}, "get:GetCaseUserByCase"),
76
+		beego.NSRouter("/caseuserbytype", &cases.CaseController{}, "get:GetCaseUserByType"),
77
+		beego.NSRouter("/caseuser/:userid", &cases.CaseController{}, "get:GetCaseUserByID"),
78
+		beego.NSRouter("/caseuser", &cases.CaseController{}, "post:SaveCaseUser"),
79
+		beego.NSRouter("/caseuser", &cases.CaseController{}, "put:SaveCaseUser"),
80
+		beego.NSRouter("/caseuser/:userid", &cases.CaseController{}, "delete:DelCaseUser"),
81
+
82
+		beego.NSRouter("/equipment", &cases.CaseController{}, "get:GetEquipmentList"),
83
+		beego.NSRouter("/equipment/:id", &cases.CaseController{}, "get:GetEquipmentByID"),
84
+		beego.NSRouter("/equipment", &cases.CaseController{}, "post:SaveCaseEquipment"),
85
+		beego.NSRouter("/equipment", &cases.CaseController{}, "put:SaveCaseEquipment"),
86
+		beego.NSRouter("/equipment/:id", &cases.CaseController{}, "delete:DelCaseEquipment"),
87
+
88
+		beego.NSRouter("/case", &cases.CaseController{}, "get:GetCaseList"),
89
+		beego.NSRouter("/case/:id", &cases.CaseController{}, "get:GetCaseByID"),
90
+		beego.NSRouter("/case", &cases.CaseController{}, "post:SaveCase"),
91
+		beego.NSRouter("/case", &cases.CaseController{}, "put:SaveCase"),
92
+		beego.NSRouter("/case/:id", &cases.CaseController{}, "delete:DelCase"),
93
+
94
+		beego.NSRouter("/key", &cases.CaseController{}, "get:GetKeyList"),
95
+		beego.NSRouter("/key", &cases.CaseController{}, "post:AddKeys"),
96
+		beego.NSRouter("/unlock/:keyid", &cases.CaseController{}, "put:UnLockKey"),
97
+		beego.NSRouter("/key/:id", &cases.CaseController{}, "delete:DelKey"),
98
+
99
+		beego.NSRouter("/area", &cases.CaseController{}, "get:GetCaseArea"),
100
+		beego.NSRouter("/area/:areaid", &cases.CaseController{}, "get:GetCaseAreaByID"),
101
+		beego.NSRouter("/area", &cases.CaseController{}, "post:SaveCaseArea"),
102
+		beego.NSRouter("/area", &cases.CaseController{}, "put:SaveCaseArea"),
103
+		beego.NSRouter("/area/:areaid", &cases.CaseController{}, "delete:DelCaseArea"),
104
+
105
+		beego.NSRouter("/table", &cases.CaseController{}, "get:GetCaseTable"),
106
+		beego.NSRouter("/table/:tableid", &cases.CaseController{}, "get:GetCaseTableByID"),
107
+		beego.NSRouter("/table", &cases.CaseController{}, "post:SaveCaseTable"),
108
+		beego.NSRouter("/table", &cases.CaseController{}, "put:SaveCaseTable"),
109
+		beego.NSRouter("/table/:tableid", &cases.CaseController{}, "delete:DelCaseTable"),
110
+
111
+		beego.NSRouter("/role", &system.RoleController{}, "get:GetRoleList"),
112
+		beego.NSRouter("/role/:roleid", &system.RoleController{}, "get:GetRoleByID"),
113
+		beego.NSRouter("/role", &system.RoleController{}, "post:SaveCaseRole"),
114
+		beego.NSRouter("/role", &system.RoleController{}, "put:SaveCaseRole"),
115
+		beego.NSRouter("/role/:roleid", &system.RoleController{}, "delete:DelCaseRole"),
91 116
 
92 117
 		// 文件
93 118
 		beego.NSRouter("/file", &controllers.BaseController{}, "post:FileUpload"),

+ 4
- 1
routers/guest.go 查看文件

@@ -2,6 +2,7 @@ package routers
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/controllers/cases"
5 6
 	"spaceofcheng/services/controllers/customer"
6 7
 	"spaceofcheng/services/controllers/message"
7 8
 	"spaceofcheng/services/controllers/user"
@@ -17,7 +18,9 @@ func getGuestRoutes() beego.LinkNamespace {
17 18
 		beego.NSRouter("/cms/info", &message.MessageController{}, "get:GetCmsInfoByLocation"),
18 19
 		beego.NSRouter("/cms/img", &message.MessageController{}, "get:GetImgByLocation"),
19 20
 		beego.NSRouter("/cms/news", &message.MessageController{}, "get:GetNewsByLocation"),
20
-		beego.NSRouter("/cms/case", &message.MessageController{}, "get:GetCmsCaseList"),
21
+
22
+		// 案场
23
+		beego.NSRouter("/case/area", &cases.CaseController{}, "get:GetAreaByCase"),
21 24
 
22 25
 		// 验证码 获取, 校验
23 26
 		beego.NSRouter("/captcha", &controllers.BaseController{}, "get:SendCaptcha"),

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

@@ -0,0 +1,69 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models/cases"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service"
7
+)
8
+
9
+// GetCaseArea 获取案场区域
10
+func (s *CaseServ) GetCaseArea(caseids string, page int, pageSize int) (map[string]interface{}, error) {
11
+	if pageSize == 0 {
12
+		pageSize = service.PAGENUM
13
+	}
14
+	areas, err := s.dao.GetCaseArea(caseids, page, pageSize)
15
+	if err != nil {
16
+		return nil, err
17
+	}
18
+	total, err := s.dao.GetCaseAreaCount(caseids)
19
+	if err != nil {
20
+		return nil, err
21
+	}
22
+
23
+	return map[string]interface{}{
24
+		"list":     areas,
25
+		"pagesize": pageSize,
26
+		"pagenum":  total,
27
+		"page":     page,
28
+	}, err
29
+}
30
+
31
+// GetCaseAreaByID 根据区域ID获取区域
32
+func (s *CaseServ) GetCaseAreaByID(areaid string) (*model.SysCaseArea, error) {
33
+	areas, err := s.dao.GetCaseAreaByID(areaid)
34
+	return areas, err
35
+}
36
+
37
+// SaveCaseArea 保存区域
38
+func (s *CaseServ) SaveCaseArea(area model.SysCaseArea) (*model.SysCaseArea, error) {
39
+	var err error
40
+	if area.AreaId == "" {
41
+		_, err = s.dao.AddCaseArea(&area)
42
+	} else {
43
+		err = s.dao.UpdateCaseArea(area)
44
+	}
45
+	return &area, err
46
+}
47
+
48
+// DelCaseArea 删除区域
49
+func (s *CaseServ) DelCaseArea(areaid string) error {
50
+	err := s.dao.DelCaseArea(areaid)
51
+	return err
52
+}
53
+
54
+// GetAreaByCase 根据案场获取区域信息
55
+func (s *CaseServ) GetAreaByCase(caseid string) ([]cases.AreaInfo, error) {
56
+	areas, err := s.dao.GetCaseAreaByCase(caseid)
57
+	if err != nil {
58
+		return nil, err
59
+	}
60
+	for index, area := range areas {
61
+		tables, err := s.dao.GetCaseTableByAreaID(area.AreaId)
62
+		if err != nil {
63
+			return nil, err
64
+		}
65
+		areas[index].Tables = tables
66
+	}
67
+
68
+	return areas, nil
69
+}

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

@@ -0,0 +1,91 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/service"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+)
9
+
10
+// GetKeysByCase 根据案场获取钥匙信息
11
+func (s *CaseServ) GetKeysByCase(caseid, num string, page, pageSize int) (map[string]interface{}, error) {
12
+	cases := s.ctx.Get("cases").([]model.SysUserCase)
13
+	isdict := false
14
+	for _, value := range cases {
15
+		if caseid == value.CaseId {
16
+			isdict = true
17
+		}
18
+	}
19
+	if !isdict {
20
+		return nil, utils.LogError("您没有该案场的权限!")
21
+	}
22
+
23
+	if pageSize == 0 {
24
+		pageSize = service.PAGENUM
25
+	}
26
+	keys, err := s.dao.GetKeysByCase(caseid, num, page, pageSize)
27
+	if err != nil {
28
+		return nil, err
29
+	}
30
+	total, err := s.dao.GetCaseCount(caseid, num)
31
+	if err != nil {
32
+		return nil, err
33
+	}
34
+
35
+	for index, key := range keys {
36
+		use, err := s.dao.GetCurrentKey(key.KeyId)
37
+		if err != nil {
38
+			return nil, err
39
+		}
40
+		keys[index].CustomerId = use.CustomerId
41
+		keys[index].CustomerName = use.CustomerName
42
+	}
43
+
44
+	return map[string]interface{}{
45
+		"list":     keys,
46
+		"pagesize": pageSize,
47
+		"pagenum":  total,
48
+		"page":     page,
49
+	}, err
50
+}
51
+
52
+// AddKeys 保存钥匙
53
+func (s *CaseServ) AddKeys(orgid, caseid string, beginnum, endnum int) error {
54
+	if endnum <= beginnum {
55
+		return utils.LogError("锁柜编号起始不能大于截止时间!")
56
+	}
57
+
58
+	for i := beginnum; i <= endnum; i++ {
59
+		key := model.TaCaseKey{
60
+			OrgId:   orgid,
61
+			CaseId:  caseid,
62
+			LockNum: strconv.Itoa(i),
63
+		}
64
+		_, err := s.dao.AddKey(key)
65
+		if err != nil {
66
+			return err
67
+		}
68
+	}
69
+	return nil
70
+}
71
+
72
+// UnLockKey 解锁
73
+func (s *CaseServ) UnLockKey(keyid string) error {
74
+	err := s.dao.UnLockKey(keyid)
75
+	return err
76
+}
77
+
78
+// DelKey 刪除
79
+func (s *CaseServ) DelKey(keyid string) error {
80
+	use, err := s.dao.GetCurrentKey(keyid)
81
+	if err != nil {
82
+		return err
83
+	}
84
+
85
+	if use != nil {
86
+		return utils.LogError("当前锁柜未解锁!请先解锁再删除!")
87
+	}
88
+
89
+	err = s.dao.DelKey(keyid)
90
+	return err
91
+}

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

@@ -0,0 +1,51 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/service"
6
+)
7
+
8
+// GetCaseTable 获取案场桌位
9
+func (s *CaseServ) GetCaseTable(caseids string, page int, pageSize int) (map[string]interface{}, error) {
10
+	if pageSize == 0 {
11
+		pageSize = service.PAGENUM
12
+	}
13
+	areas, err := s.dao.GetCaseTable(caseids, page, pageSize)
14
+	if err != nil {
15
+		return nil, err
16
+	}
17
+	total, err := s.dao.GetCaseTableCount(caseids)
18
+	if err != nil {
19
+		return nil, err
20
+	}
21
+
22
+	return map[string]interface{}{
23
+		"list":     areas,
24
+		"pagesize": pageSize,
25
+		"pagenum":  total,
26
+		"page":     page,
27
+	}, err
28
+}
29
+
30
+// GetCaseTableByID 根据桌位ID获取桌位
31
+func (s *CaseServ) GetCaseTableByID(tableid string) (*model.SysCaseTable, error) {
32
+	areas, err := s.dao.GetCaseTableByID(tableid)
33
+	return areas, err
34
+}
35
+
36
+// SaveCaseTable 保存桌位
37
+func (s *CaseServ) SaveCaseTable(table model.SysCaseTable) (*model.SysCaseTable, error) {
38
+	var err error
39
+	if table.TableId == "" {
40
+		_, err = s.dao.AddCaseTable(&table)
41
+	} else {
42
+		err = s.dao.UpdateCaseTable(table)
43
+	}
44
+	return &table, err
45
+}
46
+
47
+// DelCaseTable 删除桌位
48
+func (s *CaseServ) DelCaseTable(tableid string) error {
49
+	err := s.dao.DelCaseTable(tableid)
50
+	return err
51
+}

+ 1
- 1
service/customer/customer.go 查看文件

@@ -228,7 +228,7 @@ func (s *CustomerServ) SaveNewCustomer(wxInfo map[string]interface{}, caseID, ar
228 228
 		}
229 229
 
230 230
 		if user != nil && user.Status != models.STATUS_DEL {
231
-			cust.UserId = userID
231
+			cust.CustomerId = userID
232 232
 		}
233 233
 	}
234 234
 

+ 90
- 0
service/system/role.go 查看文件

@@ -0,0 +1,90 @@
1
+package system
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/models/system"
6
+	"spaceofcheng/services/service"
7
+	"spaceofcheng/services/utils"
8
+)
9
+
10
+// RoleServ 系统处理
11
+type RoleServ struct {
12
+	ctx *utils.Context
13
+	dao *system.RoleDAO
14
+}
15
+
16
+// NewRoleServ 初始化
17
+func NewRoleServ(ctx *utils.Context) *RoleServ {
18
+	return &RoleServ{
19
+		ctx: ctx,
20
+		dao: system.NewRoleDAO(ctx),
21
+	}
22
+}
23
+
24
+// GetRoleList 获取Role列表
25
+func (s *RoleServ) GetRoleList(caseids string, page, pageSize int) (map[string]interface{}, error) {
26
+	if pageSize == 0 {
27
+		pageSize = service.PAGENUM
28
+	}
29
+	roles, err := s.dao.GetRoleList(caseids, page, pageSize)
30
+	if err != nil {
31
+		return nil, err
32
+	}
33
+	total, err := s.dao.GetRoleCount(caseids)
34
+	if err != nil {
35
+		return nil, err
36
+	}
37
+
38
+	return map[string]interface{}{
39
+		"list":     roles,
40
+		"pagesize": pageSize,
41
+		"pagenum":  total,
42
+		"page":     page,
43
+	}, err
44
+}
45
+
46
+// GetRoleByID 根据ID获取角色
47
+func (s *RoleServ) GetRoleByID(roleid string) (*system.Role, error) {
48
+	role, err := s.dao.GetRoleByID(roleid)
49
+	if err != nil {
50
+		return nil, err
51
+	}
52
+	if role != nil {
53
+		menus, err := s.dao.GetRoleMenuByRoleID(roleid)
54
+		if err != nil {
55
+			return nil, err
56
+		}
57
+		role.RoleMenu = menus
58
+	}
59
+	return role, err
60
+}
61
+
62
+// SaveRole 保存角色
63
+func (s *RoleServ) SaveRole(role model.SysRole, menuids string) (*model.SysRole, error) {
64
+	var newInfo *model.SysRole
65
+	var err error
66
+	if role.RoleId == "" {
67
+		newInfo, err = s.dao.AddRole(role)
68
+	} else {
69
+		err = s.dao.UpdateRole(role)
70
+		newInfo = &role
71
+	}
72
+	if err != nil {
73
+		return nil, err
74
+	}
75
+	err = s.dao.DelRoleMenu(newInfo.RoleId)
76
+	if err != nil {
77
+		return nil, err
78
+	}
79
+	err = s.dao.SaveRoleMenu(newInfo.RoleId, menuids)
80
+	if err != nil {
81
+		return nil, err
82
+	}
83
+	return newInfo, err
84
+}
85
+
86
+// DelRole 删除角色
87
+func (s *RoleServ) DelRole(Roleid string) error {
88
+	err := s.dao.DeleteRole(Roleid)
89
+	return err
90
+}