Просмотр исходного кода

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

zjxpcyc 6 лет назад
Родитель
Сommit
20417d7f2a
48 измененных файлов: 1800 добавлений и 136 удалений
  1. 62
    0
      controllers/cases/area.go
  2. 49
    0
      controllers/cases/case.go
  3. 59
    0
      controllers/cases/caseuser.go
  4. 50
    0
      controllers/cases/equipment.go
  5. 49
    0
      controllers/cases/key.go
  6. 52
    0
      controllers/cases/table.go
  7. 25
    1
      controllers/cases/tag.go
  8. 68
    0
      controllers/system/role.go
  9. 87
    0
      models/cases/area.go
  10. 86
    0
      models/cases/cases.go
  11. 69
    0
      models/cases/caseuser.go
  12. 66
    0
      models/cases/equipment.go
  13. 93
    0
      models/cases/key.go
  14. 93
    0
      models/cases/table.go
  15. 50
    3
      models/cases/tag.go
  16. 17
    17
      models/customer/customer.go
  17. 4
    3
      models/goods/spec.go
  18. 7
    4
      models/goods/type.go
  19. 4
    2
      models/message/cmscase.go
  20. 7
    4
      models/message/image.go
  21. 3
    2
      models/message/location.go
  22. 7
    4
      models/message/message.go
  23. 5
    3
      models/message/news.go
  24. 8
    6
      models/model/sys_case_user.go
  25. 2
    1
      models/model/sys_wechat_conf.go
  26. 21
    15
      models/model/ta_account_change.go
  27. 14
    0
      models/model/ta_case_key.go
  28. 15
    0
      models/model/ta_case_key_use.go
  29. 3
    2
      models/model/ta_cms_case_image.go
  30. 28
    0
      models/model/ta_coupon_card.go
  31. 0
    1
      models/model/ta_customer.go
  32. 25
    0
      models/model/ta_experience_card.go
  33. 21
    20
      models/model/ta_goods_orders.go
  34. 6
    4
      models/model/ta_user_mapping.go
  35. 0
    35
      models/system/case.go
  36. 113
    0
      models/system/role.go
  37. 44
    0
      routers/common.go
  38. 4
    1
      routers/guest.go
  39. 69
    0
      service/cases/area.go
  40. 49
    0
      service/cases/cases.go
  41. 40
    0
      service/cases/caseuser.go
  42. 51
    0
      service/cases/equipment.go
  43. 91
    0
      service/cases/key.go
  44. 51
    0
      service/cases/table.go
  45. 31
    0
      service/cases/tag.go
  46. 9
    6
      service/customer/customer.go
  47. 90
    0
      service/system/role.go
  48. 3
    2
      service/user.go

+ 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/case.go Просмотреть файл

@@ -2,6 +2,7 @@ package cases
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/models/model"
5 6
 	"spaceofcheng/services/service/cases"
6 7
 )
7 8
 
@@ -17,3 +18,51 @@ type CaseController struct {
17 18
 func (c *CaseController) Constructor() {
18 19
 	c.dao = cases.NewCaseServ(c.Context)
19 20
 }
21
+
22
+// GetCaseList 获取案场列表
23
+func (c *CaseController) GetCaseList() {
24
+	cases := c.Context.Get("cases").([]model.SysUserCase)
25
+	caseIDs := c.GetCaseIDs(cases)
26
+	page, _ := c.GetInt("page")
27
+	pageSize, _ := c.GetInt("pagesize")
28
+	casename := c.GetString("name")
29
+
30
+	list, err := c.dao.GetCases(caseIDs, casename, page, pageSize)
31
+	if err != nil {
32
+		c.ResponseError(err)
33
+	}
34
+	c.ResponseJSON(list)
35
+}
36
+
37
+// GetCaseByID 根据ID获取案场信息
38
+func (c *CaseController) GetCaseByID() {
39
+	caseid := c.GetString(":caseid")
40
+	info, err := c.dao.GetCaseByID(caseid)
41
+	if err != nil {
42
+		c.ResponseError(err)
43
+	}
44
+	c.ResponseJSON(info)
45
+}
46
+
47
+// SaveCase 保存案场信息
48
+func (c *CaseController) SaveCase() {
49
+	info := model.SysCase{}
50
+	if err := c.ParseForm(&info); err != nil {
51
+		c.ResponseError(err)
52
+	}
53
+	newinfo, err := c.dao.SaveCase(info)
54
+	if err != nil {
55
+		c.ResponseError(err)
56
+	}
57
+	c.ResponseJSON(newinfo)
58
+}
59
+
60
+//DelCase 删除案场信息
61
+func (c *CaseController) DelCase() {
62
+	caseid := c.GetString(":caseid")
63
+	err := c.dao.DelCase(caseid)
64
+	if err != nil {
65
+		c.ResponseError(err)
66
+	}
67
+	c.ResponseJSON("删除成功!")
68
+}

+ 59
- 0
controllers/cases/caseuser.go Просмотреть файл

@@ -0,0 +1,59 @@
1
+package cases
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetCaseUserByCase 根据案场获取用户信息
6
+func (c *CaseController) GetCaseUserByCase() {
7
+	caseid := c.GetString("caseid")
8
+
9
+	list, err := c.dao.GetCaseUserByCase(caseid)
10
+
11
+	if err != nil {
12
+		c.ResponseError(err)
13
+	}
14
+	c.ResponseJSON(list)
15
+}
16
+
17
+// GetCaseUserByType 根据类型获取用户信息
18
+func (c *CaseController) GetCaseUserByType() {
19
+	usertype := c.GetString("usertype")
20
+	caseid := c.GetString("caseid")
21
+	caseuser, err := c.dao.GetCaseUserByType(caseid, usertype)
22
+	if err != nil {
23
+		c.ResponseError(err)
24
+	}
25
+	c.ResponseJSON(caseuser)
26
+}
27
+
28
+// GetCaseUserByID 根据ID获取用户
29
+func (c *CaseController) GetCaseUserByID() {
30
+	userid := c.GetString(":userid")
31
+	info, err := c.dao.GetCaseUserByID(userid)
32
+	if err != nil {
33
+		c.ResponseError(err)
34
+	}
35
+	c.ResponseJSON(info)
36
+}
37
+
38
+// SaveCaseUser 保存案场人员
39
+func (c *CaseController) SaveCaseUser() {
40
+	user := model.SysCaseUser{}
41
+	if err := c.ParseForm(&user); err != nil {
42
+		c.ResponseError(err)
43
+	}
44
+	newUser, err := c.dao.SaveCaseUser(user)
45
+	if err != nil {
46
+		c.ResponseError(err)
47
+	}
48
+	c.ResponseJSON(newUser)
49
+}
50
+
51
+// DelCaseUser 删除案场人员
52
+func (c *CaseController) DelCaseUser() {
53
+	tagid := c.GetString(":userid")
54
+	err := c.dao.DelCaseUser(tagid)
55
+	if err != nil {
56
+		c.ResponseError(err)
57
+	}
58
+	c.ResponseJSON("删除成功!")
59
+}

+ 50
- 0
controllers/cases/equipment.go Просмотреть файл

@@ -0,0 +1,50 @@
1
+package cases
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetEquipmentList 获取体检设备列表
6
+func (c *CaseController) GetEquipmentList() {
7
+	cases := c.Context.Get("cases").([]model.SysUserCase)
8
+	caseIDs := c.GetCaseIDs(cases)
9
+	page, _ := c.GetInt("page")
10
+	pageSize, _ := c.GetInt("pagesize")
11
+
12
+	list, err := c.dao.GetCaseEquipment(caseIDs, page, pageSize)
13
+	if err != nil {
14
+		c.ResponseError(err)
15
+	}
16
+	c.ResponseJSON(list)
17
+}
18
+
19
+// GetEquipmentByID 根据ID获取体检设备信息
20
+func (c *CaseController) GetEquipmentByID() {
21
+	id := c.GetString(":id")
22
+	info, err := c.dao.GetCaseEquipmentByID(id)
23
+	if err != nil {
24
+		c.ResponseError(err)
25
+	}
26
+	c.ResponseJSON(info)
27
+}
28
+
29
+// SaveCaseEquipment 保存体检设备
30
+func (c *CaseController) SaveCaseEquipment() {
31
+	info := model.SysCaseEquipment{}
32
+	if err := c.ParseForm(&info); err != nil {
33
+		c.ResponseError(err)
34
+	}
35
+	newinfo, err := c.dao.SaveCaseEquipment(info)
36
+	if err != nil {
37
+		c.ResponseError(err)
38
+	}
39
+	c.ResponseJSON(newinfo)
40
+}
41
+
42
+// DelCaseEquipment 删除体检设备
43
+func (c *CaseController) DelCaseEquipment() {
44
+	id := c.GetString(":id")
45
+	err := c.dao.DelCaseEquipment(id)
46
+	if err != nil {
47
+		c.ResponseError(err)
48
+	}
49
+	c.ResponseJSON("删除成功!")
50
+}

+ 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
+}

+ 25
- 1
controllers/cases/tag.go Просмотреть файл

@@ -23,5 +23,29 @@ func (c *CaseController) GetTagByID() {
23 23
 	if err != nil {
24 24
 		c.ResponseError(err)
25 25
 	}
26
-	c.ResponseJSON(list)
26
+	c.ResponseJSON(info)
27
+}
28
+
29
+// SaveCaseTag 保存标签
30
+func (c *CaseController) SaveCaseTag() {
31
+	tag := model.SysTag{}
32
+	if err := c.ParseForm(&tag); err != nil {
33
+		c.ResponseError(err)
34
+	}
35
+	caseids := c.GetString("caseids")
36
+	newTag, err := c.dao.SaveTag(tag, caseids)
37
+	if err != nil {
38
+		c.ResponseError(err)
39
+	}
40
+	c.ResponseJSON(newTag)
41
+}
42
+
43
+// DelCaseTag 删除标签
44
+func (c *CaseController) DelCaseTag() {
45
+	tagid := c.GetString(":tagid")
46
+	err := c.dao.DelTag(tagid)
47
+	if err != nil {
48
+		c.ResponseError(err)
49
+	}
50
+	c.ResponseJSON("删除成功!")
27 51
 }

+ 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
+}

+ 86
- 0
models/cases/cases.go Просмотреть файл

@@ -1,7 +1,12 @@
1 1
 package cases
2 2
 
3 3
 import (
4
+	"jcjy/demo/models"
5
+	"spaceofcheng/services/models/model"
4 6
 	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+	"time"
5 10
 
6 11
 	"github.com/go-xorm/xorm"
7 12
 )
@@ -19,3 +24,84 @@ func NewCaseDAO(ctx *utils.Context) *CaseDAO {
19 24
 		db:  ctx.DB,
20 25
 	}
21 26
 }
27
+
28
+// CaseInfo 案场
29
+type CaseInfo struct {
30
+	model.TaCmsCase `xorm:"extends"`
31
+	CreateUserName  string
32
+}
33
+
34
+// GetCaseList 获取案场列表
35
+func (m *CaseDAO) GetCaseList(caseids, casename string, page, pageSize int) ([]CaseInfo, error) {
36
+	var cases []CaseInfo
37
+	sql := `select a.*,b.user_name as create_user_name from sys_case a inner join sys_user b on a.create_user = b.user_id
38
+	 where a.status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `')`
39
+	if casename != "" {
40
+		sql = sql + ` and  a.case_name like '%` + casename + `%'`
41
+	}
42
+
43
+	sql = sql + " order by create_date desc limit " + strconv.Itoa(page*pageSize) + ", " + strconv.Itoa((page+1)*pageSize)
44
+	err := m.db.Sql(sql).Find(&cases)
45
+	return cases, err
46
+}
47
+
48
+// GetCaseCount 获取案场数量
49
+func (m *CaseDAO) GetCaseCount(caseids, casename string) (int, error) {
50
+	var cases []model.SysCase
51
+	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
52
+	if casename != "" {
53
+		dao = dao.And("case_name like '%" + casename + "%'")
54
+	}
55
+	err := dao.Find(&cases)
56
+	return len(cases), err
57
+}
58
+
59
+// GetCaseByID 根据ID获取案场信息
60
+func (m *CaseDAO) GetCaseByID(caseid string) (*model.SysCase, error) {
61
+	var cases []model.SysCase
62
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("case_id=?", caseid).Find(&cases)
63
+	if err != nil {
64
+		return nil, err
65
+	}
66
+	if len(cases) > 0 {
67
+		return &cases[0], nil
68
+	}
69
+	return nil, nil
70
+}
71
+
72
+// AddCase 新增案场信息
73
+func (m *CaseDAO) AddCase(caseinfo model.SysCase) (*model.SysCase, error) {
74
+	caseinfo.CreateDate = time.Now()
75
+	caseinfo.Status = models.STATUS_NORMAL
76
+	user := m.ctx.Get("user").(*model.SysUser)
77
+	caseinfo.CreateUser = user.UserId
78
+	_, err := m.db.Insert(&caseinfo)
79
+	return &caseinfo, err
80
+}
81
+
82
+// UpdateCase 修改案场信息
83
+func (m *CaseDAO) UpdateCase(caseinfo model.SysCase) error {
84
+	var cols = []string{
85
+		"case_name",
86
+		"case_desc",
87
+		"case_icon",
88
+		"case_address",
89
+		"case_tel",
90
+		"coordinate",
91
+	}
92
+	_, err := m.db.Cols(cols...).Where("case_id=?", caseinfo.CaseId).Update(caseinfo)
93
+	return err
94
+}
95
+
96
+// DelCase 删除案场信息
97
+func (m *CaseDAO) DelCase(caseid string) error {
98
+	var caseinfo = model.SysCaseUser{
99
+		CaseId: caseid,
100
+		Status: models.STATUS_DEL,
101
+	}
102
+	var cols = []string{
103
+		"status",
104
+	}
105
+	_, err := m.db.Cols(cols...).Where("case_id=?", caseid).Update(caseinfo)
106
+	return err
107
+}

+ 69
- 0
models/cases/caseuser.go Просмотреть файл

@@ -0,0 +1,69 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"time"
9
+)
10
+
11
+// GetCaseUserByCase 根据案场id获取案场相关人员
12
+func (m *CaseDAO) GetCaseUserByCase(caseid string) ([]model.SysCaseUser, error) {
13
+	var caseusers []model.SysCaseUser
14
+	err := m.db.Where("case_id=?", caseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&caseusers)
15
+	return caseusers, err
16
+}
17
+
18
+// GetCaseUserByID 根据id获取相关人员
19
+func (m *CaseDAO) GetCaseUserByID(userid string) (*model.SysCaseUser, error) {
20
+	var caseusers []model.SysCaseUser
21
+	err := m.db.Where("case_user_id=?", userid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&caseusers)
22
+	if err != nil {
23
+		return nil, err
24
+	}
25
+	if len(caseusers) > 0 {
26
+		return &caseusers[0], nil
27
+	}
28
+	return nil, nil
29
+}
30
+
31
+// GetCaseUserByUserType 根据用户类型获取相关人员
32
+func (m *CaseDAO) GetCaseUserByUserType(caseid, usertype string) ([]model.SysCaseUser, error) {
33
+	var caseusers []model.SysCaseUser
34
+	err := m.db.Where("case_id=?", caseid).And("user_type=?", usertype).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&caseusers)
35
+	return caseusers, err
36
+}
37
+
38
+// AddCaseUser 新增案场相关人员
39
+func (m *CaseDAO) AddCaseUser(caseuser model.SysCaseUser) (*model.SysCaseUser, error) {
40
+	caseuser.CreateDate = time.Now()
41
+	caseuser.Status = models.STATUS_NORMAL
42
+	caseuser.CaseUserId = utils.GetGUID()
43
+	_, err := m.db.Insert(&caseuser)
44
+	return &caseuser, err
45
+}
46
+
47
+// UpdateCaseUser 修改案场相关人员
48
+func (m *CaseDAO) UpdateCaseUser(caseuser model.SysCaseUser) error {
49
+	var cols = []string{
50
+		"user_name",
51
+		"tel",
52
+		"user_type",
53
+	}
54
+	_, err := m.db.Cols(cols...).Where("case_user_id=?", caseuser.CaseUserId).Update(caseuser)
55
+	return err
56
+}
57
+
58
+// DelCaseUser 删除案场相关人员
59
+func (m *CaseDAO) DelCaseUser(caseuserid string) error {
60
+	var caseuser = model.SysCaseUser{
61
+		CaseUserId: caseuserid,
62
+		Status:     models.STATUS_DEL,
63
+	}
64
+	var cols = []string{
65
+		"status",
66
+	}
67
+	_, err := m.db.Cols(cols...).Where("case_user_id=?", caseuserid).Update(caseuser)
68
+	return err
69
+}

+ 66
- 0
models/cases/equipment.go Просмотреть файл

@@ -0,0 +1,66 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+)
10
+
11
+// GetEquipmentList 获取体检设备
12
+func (m *CaseDAO) GetEquipmentList(caseids string, page, pageSize int) ([]model.SysCaseEquipment, error) {
13
+	var equipments []model.SysCaseEquipment
14
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").Limit(pageSize, page*pageSize).Find(&equipments)
15
+	return equipments, err
16
+}
17
+
18
+// GetEquipmentCount 获取体检设备总数
19
+func (m *CaseDAO) GetEquipmentCount(caseids string) (int, error) {
20
+	var caseEquipment []model.SysCaseEquipment
21
+	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&caseEquipment)
22
+	return len(caseEquipment), err
23
+}
24
+
25
+// GetCaseEquipmentByID 根据ID获取体检设备
26
+func (m *CaseDAO) GetCaseEquipmentByID(equipmentid string) (*model.SysCaseEquipment, error) {
27
+	var caseEquipment []model.SysCaseEquipment
28
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("spec_id=?", equipmentid).Find(&caseEquipment)
29
+	if err != nil {
30
+		return nil, err
31
+	}
32
+	if len(caseEquipment) > 0 {
33
+		return &caseEquipment[0], nil
34
+	}
35
+	return nil, nil
36
+}
37
+
38
+// AddCaseEquipment 新增体检设备
39
+func (m *CaseDAO) AddCaseEquipment(caseEquipment *model.SysCaseEquipment) (*model.SysCaseEquipment, error) {
40
+	caseEquipment.EquipmentId = utils.GetGUID()
41
+	caseEquipment.Status = models.STATUS_NORMAL
42
+	_, err := m.db.Insert(caseEquipment)
43
+	return caseEquipment, err
44
+}
45
+
46
+// UpdateCaseEquipment 修改体检设备
47
+func (m *CaseDAO) UpdateCaseEquipment(caseEquipment model.SysCaseEquipment) error {
48
+	var cols = []string{
49
+		"spec_name",
50
+	}
51
+	_, err := m.db.Cols(cols...).Where("spec_id=?", caseEquipment.EquipmentId).Update(caseEquipment)
52
+	return err
53
+}
54
+
55
+// DelCaseEquipment 刪除体检设备
56
+func (m *CaseDAO) DelCaseEquipment(equipmentid string) error {
57
+	var caseEquipment = model.SysCaseEquipment{
58
+		EquipmentId: equipmentid,
59
+		Status:      models.STATUS_DEL,
60
+	}
61
+	var cols = []string{
62
+		"status",
63
+	}
64
+	_, err := m.db.Cols(cols...).Where("spec_id=?", caseEquipment.EquipmentId).Update(caseEquipment)
65
+	return err
66
+}

+ 93
- 0
models/cases/key.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
+	"time"
9
+)
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
+
22
+// GetKeysByCase 根据案场获取钥匙信息
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) {
35
+	var keys []model.TaCaseKey
36
+	err := m.db.Where("case_id=?", caseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&keys)
37
+	return len(keys), err
38
+}
39
+
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
+}

+ 50
- 3
models/cases/tag.go Просмотреть файл

@@ -1,16 +1,18 @@
1 1
 package cases
2 2
 
3 3
 import (
4
-	"jcjy/demo/models"
4
+	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
6 7
 	"strconv"
7 8
 	"strings"
9
+	"time"
8 10
 )
9 11
 
10 12
 // GetTagCount 获取标签总数
11 13
 func (m *CaseDAO) GetTagCount(caseids string) (int, error) {
12 14
 	var tags []model.SysTag
13
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&tags)
15
+	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&tags)
14 16
 	return len(tags), err
15 17
 }
16 18
 
@@ -24,7 +26,7 @@ type TagInfo struct {
24 26
 func (m *CaseDAO) GetTagList(caseids string, page int, pageSize int) ([]TagInfo, error) {
25 27
 	var tags []TagInfo
26 28
 	sql := `select tag.*,c.case_names from sys_tag tag inner join (
27
-	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_NORMAL) + `
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) + `
28 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 ('` +
29 31
 		strings.Replace(caseids, ",", "','", -1) + `'))
30 32
 	group by b.tag_id ) c on tag.tag_id = c.tag_id`
@@ -58,3 +60,48 @@ func (m *CaseDAO) GetTagCaseByTagID(tagid string) ([]model.SysTagCase, error) {
58 60
 	err := m.db.Where("tag_id=?", tagid).Find(&tagcase)
59 61
 	return tagcase, err
60 62
 }
63
+
64
+// AddTag 新增标签
65
+func (m *CaseDAO) AddTag(tag model.SysTag) (*model.SysTag, error) {
66
+	tag.TagId = utils.GetGUID()
67
+	tag.Status = models.STATUS_NORMAL
68
+	tag.CreateDate = time.Now()
69
+	_, err := m.db.Insert(&tag)
70
+	return &tag, err
71
+}
72
+
73
+// UpdateTag 修改标签
74
+func (m *CaseDAO) UpdateTag(tag model.SysTag) error {
75
+	var cols = []string{
76
+		"tag_name",
77
+	}
78
+	_, err := m.db.Cols(cols...).Where("tag_id=?", tag.TagId).Update(tag)
79
+	return err
80
+}
81
+
82
+// DeleteTag 刪除标签
83
+func (m *CaseDAO) DeleteTag(tagid string) error {
84
+	var tag = model.SysTag{
85
+		TagId:  tagid,
86
+		Status: models.STATUS_DEL,
87
+	}
88
+	var cols = []string{
89
+		"status",
90
+	}
91
+	_, err := m.db.Cols(cols...).Where("tag_id=?", tag.TagId).Update(tag)
92
+	return err
93
+}
94
+
95
+// DelTagCase 删除标签对应的案场
96
+func (m *CaseDAO) DelTagCase(tagid string) error {
97
+	sql := "delete from sys_tag_case where tag_id='" + tagid + "'"
98
+	_, err := m.db.Exec(sql)
99
+	return err
100
+}
101
+
102
+// SaveTagCase 保存标签对应的案场
103
+func (m *CaseDAO) SaveTagCase(tagid, caseids string) error {
104
+	sql := `insert into sys_tag_case(tag_id,case_id) select '` + tagid + `', case_id from sys_case where case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and status > ` + strconv.Itoa(models.STATUS_DEL)
105
+	_, err := m.db.Exec(sql)
106
+	return err
107
+}

+ 17
- 17
models/customer/customer.go Просмотреть файл

@@ -129,23 +129,23 @@ func (m *CustomerDAO) UpdateUserMapping(userMap *model.TaUserMapping, cols []str
129 129
 }
130 130
 
131 131
 // GetCaseByID 获取案场
132
-func (m *CustomerDAO) GetCaseByID(caseID string) (*model.SysCase, error) {
133
-	if caseID == "" {
134
-		return nil, errors.New("获取案场信息失败")
135
-	}
136
-
137
-	cs := model.SysCase{}
138
-	has, err := m.db.Where("case_id=?", caseID).Get(&cs)
139
-	if err != nil {
140
-		return nil, err
141
-	}
142
-
143
-	if !has {
144
-		return nil, nil
145
-	}
146
-
147
-	return &cs, nil
148
-}
132
+// func (m *CustomerDAO) GetCaseByID(caseID string) (*model.SysCase, error) {
133
+// 	if caseID == "" {
134
+// 		return nil, errors.New("获取案场信息失败")
135
+// 	}
136
+
137
+// 	cs := model.SysCase{}
138
+// 	has, err := m.db.Where("case_id=?", caseID).Get(&cs)
139
+// 	if err != nil {
140
+// 		return nil, err
141
+// 	}
142
+
143
+// 	if !has {
144
+// 		return nil, nil
145
+// 	}
146
+
147
+// 	return &cs, nil
148
+// }
149 149
 
150 150
 // GetUserByID 获取系统用户
151 151
 func (m *CustomerDAO) GetUserByID(userID string) (*model.SysUser, error) {

+ 4
- 3
models/goods/spec.go Просмотреть файл

@@ -4,27 +4,28 @@ import (
4 4
 	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6 6
 	"spaceofcheng/services/utils"
7
+	"strconv"
7 8
 	"strings"
8 9
 )
9 10
 
10 11
 // GetGoodsSpecCount 获取商品规格总数
11 12
 func (m *GoodsDAO) GetGoodsSpecCount(caseids string) (int, error) {
12 13
 	var goodsSpec []model.TdSpec
13
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&goodsSpec)
14
+	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&goodsSpec)
14 15
 	return len(goodsSpec), err
15 16
 }
16 17
 
17 18
 // GetGoodsSpec 根据案场获取商品规格
18 19
 func (m *GoodsDAO) GetGoodsSpec(caseids string, page int, pageSize int) ([]model.TdSpec, error) {
19 20
 	var goodsSpec []model.TdSpec
20
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").Limit(pageSize, page*pageSize).Find(&goodsSpec)
21
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").Limit(pageSize, page*pageSize).Find(&goodsSpec)
21 22
 	return goodsSpec, err
22 23
 }
23 24
 
24 25
 // GetGoodsSpecByID 根据ID获取商品规格
25 26
 func (m *GoodsDAO) GetGoodsSpecByID(specid string) (*model.TdSpec, error) {
26 27
 	var goodsSpec []model.TdSpec
27
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("spec_id=?", specid).Find(&goodsSpec)
28
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("spec_id=?", specid).Find(&goodsSpec)
28 29
 	if err != nil {
29 30
 		return nil, err
30 31
 	}

+ 7
- 4
models/goods/type.go Просмотреть файл

@@ -4,6 +4,7 @@ import (
4 4
 	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6 6
 	"spaceofcheng/services/utils"
7
+	"strconv"
7 8
 	"strings"
8 9
 	"time"
9 10
 )
@@ -11,21 +12,21 @@ import (
11 12
 // GetGoodsTypeCount 获取商品类型总数
12 13
 func (m *GoodsDAO) GetGoodsTypeCount(caseids string) (int, error) {
13 14
 	var goodstype []model.TdGoodsType
14
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&goodstype)
15
+	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&goodstype)
15 16
 	return len(goodstype), err
16 17
 }
17 18
 
18 19
 // GetGoodsType 根据案场获取商品类型
19 20
 func (m *GoodsDAO) GetGoodsType(caseids string, page int, pageSize int) ([]model.TdGoodsType, error) {
20 21
 	var goodstype []model.TdGoodsType
21
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").Limit(pageSize, page*pageSize).Desc("create_date").Find(&goodstype)
22
+	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(&goodstype)
22 23
 	return goodstype, err
23 24
 }
24 25
 
25 26
 // GetGoodsTypeByID 根据ID获取商品类型
26 27
 func (m *GoodsDAO) GetGoodsTypeByID(typeid string) (*model.TdGoodsType, error) {
27 28
 	var goodstype []model.TdGoodsType
28
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("type_id=?", typeid).Find(&goodstype)
29
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("type_id=?", typeid).Find(&goodstype)
29 30
 	if err != nil {
30 31
 		return nil, err
31 32
 	}
@@ -40,7 +41,9 @@ func (m *GoodsDAO) AddGoodsType(goodsType *model.TdGoodsType) (*model.TdGoodsTyp
40 41
 	goodsType.TypeId = utils.GetGUID()
41 42
 	goodsType.CreateDate = time.Now()
42 43
 	goodsType.Status = models.STATUS_NORMAL
43
-	_, err := m.db.Insert(goodsType)
44
+	user := m.ctx.Get("user").(*model.SysUser)
45
+	goodsType.CreateUser = user.UserId
46
+	_, err := m.db.Insert(&goodsType)
44 47
 	return goodsType, err
45 48
 }
46 49
 

+ 4
- 2
models/message/cmscase.go Просмотреть файл

@@ -80,7 +80,7 @@ func (m *MessageDAO) GetCoursesByCmsCase(cmscaseid string) ([]model.TaCourse, er
80 80
 // GetCmsCaseImgs 根据项目专题ID获取课程图片
81 81
 func (m *MessageDAO) GetCmsCaseImgs(cmscaseid string) ([]model.TaCmsCaseImage, error) {
82 82
 	var imgs []model.TaCmsCaseImage
83
-	err := m.db.Where("cms_case_id=?", cmscaseid).And("status=?", models.STATUS_NORMAL).Find(&imgs)
83
+	err := m.db.Where("cms_case_id=?", cmscaseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&imgs)
84 84
 	return imgs, err
85 85
 }
86 86
 
@@ -95,6 +95,8 @@ func (m *MessageDAO) GetCourseByCaseID(caseid string) ([]model.TaCourse, error)
95 95
 func (m *MessageDAO) AddCmsCase(cmscase model.TaCmsCase) (*model.TaCmsCase, error) {
96 96
 	cmscase.CreateDate = time.Now()
97 97
 	cmscase.CmsCaseId = utils.GetGUID()
98
+	user := m.ctx.Get("user").(model.SysUser)
99
+	cmscase.CreateUser = user.UserId
98 100
 	_, err := m.db.Insert(cmscase)
99 101
 	return &cmscase, err
100 102
 }
@@ -134,7 +136,7 @@ func (m *MessageDAO) DelCmsCaseCourse(cmscaseid string) error {
134 136
 
135 137
 // SaveCmsCaseCourse 保存项目对应的课程
136 138
 func (m *MessageDAO) SaveCmsCaseCourse(cmscaseid, courseids string) error {
137
-	sql := `insert into ta_cms_case_course(cms_case_id,course_id) select '` + cmscaseid + `', course_id from ta_course where course_id in ('` + strings.Replace(courseids, ",", "','", -1) + `') and status = ` + strconv.Itoa(models.STATUS_NORMAL)
139
+	sql := `insert into ta_cms_case_course(cms_case_id,course_id) select '` + cmscaseid + `', course_id from ta_course where course_id in ('` + strings.Replace(courseids, ",", "','", -1) + `') and status > ` + strconv.Itoa(models.STATUS_DEL)
138 140
 	_, err := m.db.Exec(sql)
139 141
 	return err
140 142
 }

+ 7
- 4
models/message/image.go Просмотреть файл

@@ -4,20 +4,21 @@ import (
4 4
 	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6 6
 	"spaceofcheng/services/utils"
7
+	"strconv"
7 8
 	"time"
8 9
 )
9 10
 
10 11
 // GetImgList 获取轮播图列表
11 12
 func (m *MessageDAO) GetImgList(orgid string, page int, pageSize int) ([]model.TaCmsImages, error) {
12 13
 	var imgs []model.TaCmsImages
13
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).Limit(pageSize, page*pageSize).Desc("create_date").Find(&imgs)
14
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid).Limit(pageSize, page*pageSize).Desc("create_date").Find(&imgs)
14 15
 	return imgs, err
15 16
 }
16 17
 
17 18
 // GetImgListCount 获取轮播图count
18 19
 func (m *MessageDAO) GetImgListCount(orgid string) (int, error) {
19 20
 	var imgs []model.TaCmsImages
20
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).Find(&imgs)
21
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid).Find(&imgs)
21 22
 	if err != nil {
22 23
 		return 0, err
23 24
 	}
@@ -27,7 +28,7 @@ func (m *MessageDAO) GetImgListCount(orgid string) (int, error) {
27 28
 // GetImgByLocation 根据位置获取轮播图信息
28 29
 func (m *MessageDAO) GetImgByLocation(orgid, locationid string) ([]model.TaCmsImages, error) {
29 30
 	var imgs []model.TaCmsImages
30
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).And("location_id=?", locationid).Asc("sort").Find(&imgs)
31
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid).And("location_id=?", locationid).Asc("sort").Find(&imgs)
31 32
 	return imgs, err
32 33
 }
33 34
 
@@ -35,7 +36,7 @@ func (m *MessageDAO) GetImgByLocation(orgid, locationid string) ([]model.TaCmsIm
35 36
 func (m *MessageDAO) GetImgByID(imgid string) (*model.TaCmsImages, error) {
36 37
 	var imgs []model.TaCmsImages
37 38
 
38
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("image_id=?", imgid).Find(&imgs)
39
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("image_id=?", imgid).Find(&imgs)
39 40
 	if err != nil {
40 41
 		return nil, err
41 42
 	}
@@ -50,6 +51,8 @@ func (m *MessageDAO) AddCmsImg(info model.TaCmsImages) (*model.TaCmsImages, erro
50 51
 	info.ImageId = utils.GetGUID()
51 52
 	info.Status = models.STATUS_NORMAL
52 53
 	info.CreateDate = time.Now()
54
+	user := m.ctx.Get("user").(model.SysUser)
55
+	info.CreateUser = user.UserId
53 56
 	_, err := m.db.Insert(&info)
54 57
 	return &info, err
55 58
 }

+ 3
- 2
models/message/location.go Просмотреть файл

@@ -4,6 +4,7 @@ import (
4 4
 	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6 6
 	"spaceofcheng/services/utils"
7
+	"strconv"
7 8
 )
8 9
 
9 10
 const (
@@ -13,7 +14,7 @@ const (
13 14
 // GetLocationList 获取位置字典
14 15
 func (m *MessageDAO) GetLocationList(issys, org_id string) ([]model.TdCmsImageLocation, error) {
15 16
 	var locations []model.TdCmsImageLocation
16
-	s := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", org_id)
17
+	s := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", org_id)
17 18
 	if issys != "" {
18 19
 		s = s.And("is_sys=?", issys)
19 20
 	}
@@ -24,7 +25,7 @@ func (m *MessageDAO) GetLocationList(issys, org_id string) ([]model.TdCmsImageLo
24 25
 // GetLocationById 根据ID获取明细
25 26
 func (m *MessageDAO) GetLocationById(id string) (*model.TdCmsImageLocation, error) {
26 27
 	var location []model.TdCmsImageLocation
27
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("location_id=?", id).Find(&location)
28
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("location_id=?", id).Find(&location)
28 29
 	if err != nil {
29 30
 		return nil, err
30 31
 	}

+ 7
- 4
models/message/message.go Просмотреть файл

@@ -4,6 +4,7 @@ import (
4 4
 	"spaceofcheng/services/models"
5 5
 	"spaceofcheng/services/models/model"
6 6
 	"spaceofcheng/services/utils"
7
+	"strconv"
7 8
 	"time"
8 9
 
9 10
 	"github.com/go-xorm/xorm"
@@ -27,7 +28,7 @@ func NewMessageDAO(ctx *utils.Context) *MessageDAO {
27 28
 func (m *MessageDAO) GetCmsInfoList(title, orgid string, page int, pageSize int) ([]model.TaCmsInfo, error) {
28 29
 	var cmsinfos []model.TaCmsInfo
29 30
 
30
-	dao := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid)
31
+	dao := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid)
31 32
 	if title != "" {
32 33
 		dao.And("info_name like '%" + title + "%'")
33 34
 	}
@@ -40,7 +41,7 @@ func (m *MessageDAO) GetCmsInfoList(title, orgid string, page int, pageSize int)
40 41
 func (m *MessageDAO) GetCmsInfoListCount(title, orgid string) (int, error) {
41 42
 	var cmsinfos []model.TaCmsInfo
42 43
 
43
-	dao := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid)
44
+	dao := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid)
44 45
 	if title != "" {
45 46
 		dao.And("info_name like '%" + title + "%'")
46 47
 	}
@@ -56,14 +57,14 @@ func (m *MessageDAO) GetCmsInfoListCount(title, orgid string) (int, error) {
56 57
 func (m *MessageDAO) GetCmsInfoByLocation(locationid, orgid string) ([]model.TaCmsInfo, error) {
57 58
 	var cmsinfos []model.TaCmsInfo
58 59
 
59
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).And("location_id=?", locationid).Find(&cmsinfos)
60
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid).And("location_id=?", locationid).Find(&cmsinfos)
60 61
 	return cmsinfos, err
61 62
 }
62 63
 
63 64
 // GetCmsInfoByID 获取单条消息记录
64 65
 func (m *MessageDAO) GetCmsInfoByID(id string) (*model.TaCmsInfo, error) {
65 66
 	var cmsinfos []model.TaCmsInfo
66
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("info_id=?", id).Find(&cmsinfos)
67
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("info_id=?", id).Find(&cmsinfos)
67 68
 	if err != nil {
68 69
 		return nil, err
69 70
 	}
@@ -75,6 +76,8 @@ func (m *MessageDAO) AddCmsInfo(cmsinfo model.TaCmsInfo) (*model.TaCmsInfo, erro
75 76
 	cmsinfo.InfoId = utils.GetGUID()
76 77
 	cmsinfo.Status = models.STATUS_NORMAL
77 78
 	cmsinfo.CreateDate = time.Now()
79
+	user := m.ctx.Get("user").(model.SysUser)
80
+	cmsinfo.CreateUser = user.UserId
78 81
 	_, err := m.db.Insert(&cmsinfo)
79 82
 	return &cmsinfo, err
80 83
 }

+ 5
- 3
models/message/news.go Просмотреть файл

@@ -23,7 +23,7 @@ func (m *MessageDAO) GetNewsList(locationid, orgid string, page int, pageSize in
23 23
 	var news []CmsNewsInfo
24 24
 	sql := `select * from ta_cms_news new left join (
25 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_NORMAL) +
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 27
 		` and b.org_id='` + orgid + `' group by b.news_id
28 28
 		) c on new.news_id = c.news_id and new.status>` + strconv.Itoa(models.STATUS_DEL) + ` and new.org_id='` + orgid + `'`
29 29
 
@@ -54,7 +54,7 @@ func (m *MessageDAO) GetNewsListCount(locationid, orgid string) (int, error) {
54 54
 // GetNewsByLocation 根据位置获取咨询信息
55 55
 func (m *MessageDAO) GetNewsByLocation(locationid, orgid string) ([]model.TaCmsNews, error) {
56 56
 	var news []model.TaCmsNews
57
-	err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).In("news_id", builder.Select("news_id").From("ta_cms_location").Where(builder.Eq{"location_id": locationid})).Find(&news)
57
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid).In("news_id", builder.Select("news_id").From("ta_cms_location").Where(builder.Eq{"location_id": locationid})).Find(&news)
58 58
 	return news, err
59 59
 }
60 60
 
@@ -88,6 +88,8 @@ func (m *MessageDAO) GetNewsLocationByID(newsid string) ([]model.TaCmsLocation,
88 88
 func (m *MessageDAO) AddNews(news model.TaCmsNews) (*model.TaCmsNews, error) {
89 89
 	news.NewsId = utils.GetGUID()
90 90
 	news.CreateDate = time.Now()
91
+	user := m.ctx.Get("user").(*model.SysUser)
92
+	news.CreateUser = user.UserId
91 93
 	_, err := m.db.Insert(&news)
92 94
 	return &news, err
93 95
 }
@@ -101,7 +103,7 @@ func (m *MessageDAO) DelNewsLocation(newsid string) error {
101 103
 
102 104
 // SaveNewsLocation 保存咨询与位置映射
103 105
 func (m *MessageDAO) SaveNewsLocation(newsid, locationsid string) error {
104
-	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_NORMAL)
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)
105 107
 	_, err := m.db.Exec(sql)
106 108
 	return err
107 109
 }

+ 8
- 6
models/model/sys_case_user.go Просмотреть файл

@@ -5,12 +5,14 @@ import (
5 5
 )
6 6
 
7 7
 type SysCaseUser struct {
8
-	CaseUserId string    `xorm:"not null pk VARCHAR(64)"`
9
-	OrgId      string    `xorm:"VARCHAR(64)"`
10
-	CaseId     string    `xorm:"VARCHAR(64)"`
11
-	UserName   string    `xorm:"VARCHAR(50)"`
12
-	Tel        string    `xorm:"VARCHAR(50)"`
13
-	UserType   string    `xorm:"comment('案场管理员 咖啡师 消息收发员') VARCHAR(20)"`
8
+	CaseUserId string `xorm:"not null pk VARCHAR(64)"`
9
+	OrgId      string `xorm:"VARCHAR(64)"`
10
+	CaseId     string `xorm:"VARCHAR(64)"`
11
+	UserName   string `xorm:"VARCHAR(50)"`
12
+	Tel        string `xorm:"VARCHAR(50)"`
13
+	UserType   string `xorm:"comment('案场管理员
14
+            咖啡师
15
+            消息收发员') VARCHAR(20)"`
14 16
 	Status     int       `xorm:"SMALLINT(6)"`
15 17
 	CreateDate time.Time `xorm:"DATETIME"`
16 18
 }

+ 2
- 1
models/model/sys_wechat_conf.go Просмотреть файл

@@ -3,7 +3,8 @@ package model
3 3
 type SysWechatConf struct {
4 4
 	ConfId string `xorm:"VARCHAR(64)"`
5 5
 	OrgId  string `xorm:"VARCHAR(64)"`
6
-	Type   int    `xorm:"comment('wechat 微信公众号  mini 小程序') SMALLINT(6)"`
6
+	Type   int    `xorm:"comment('wechat 微信公众号
7
+            mini 小程序') SMALLINT(6)"`
7 8
 	Appid  string `xorm:"VARCHAR(50)"`
8 9
 	Secret string `xorm:"VARCHAR(50)"`
9 10
 	Token  string `xorm:"VARCHAR(50)"`

+ 21
- 15
models/model/ta_account_change.go Просмотреть файл

@@ -5,19 +5,25 @@ import (
5 5
 )
6 6
 
7 7
 type TaAccountChange struct {
8
-	DetailId     string    `xorm:"not null pk VARCHAR(64)"`
9
-	AccountId    string    `xorm:"VARCHAR(64)"`
10
-	UserId       string    `xorm:"VARCHAR(64)"`
11
-	UserName     string    `xorm:"VARCHAR(50)"`
12
-	OrgId        string    `xorm:"VARCHAR(64)"`
13
-	CaseId       string    `xorm:"VARCHAR(64)"`
14
-	ChangeType   string    `xorm:"comment('integral 积分  amount 城币') VARCHAR(20)"`
15
-	ChangeSource string    `xorm:"comment('vip vip卡充值  orders 订单消费  register 注册  perfect 完善资料  recommend 推荐') VARCHAR(20)"`
16
-	SourceId     string    `xorm:"VARCHAR(64)"`
17
-	SourceName   string    `xorm:"VARCHAR(255)"`
18
-	Amount       float32   `xorm:"FLOAT(8,2)"`
19
-	FloatType    string    `xorm:"comment('+  -') VARCHAR(5)"`
20
-	CreateDate   time.Time `xorm:"DATETIME"`
21
-	CreateUser   string    `xorm:"VARCHAR(64)"`
22
-	Status       int       `xorm:"SMALLINT(6)"`
8
+	DetailId   string `xorm:"not null pk VARCHAR(64)"`
9
+	AccountId  string `xorm:"VARCHAR(64)"`
10
+	UserId     string `xorm:"VARCHAR(64)"`
11
+	UserName   string `xorm:"VARCHAR(50)"`
12
+	OrgId      string `xorm:"VARCHAR(64)"`
13
+	CaseId     string `xorm:"VARCHAR(64)"`
14
+	ChangeType string `xorm:"comment('integral 积分
15
+            amount 城币') VARCHAR(20)"`
16
+	ChangeSource string `xorm:"comment('vip vip卡充值
17
+            orders 订单消费
18
+            register 注册
19
+            perfect 完善资料
20
+            recommend 推荐') VARCHAR(20)"`
21
+	SourceId   string  `xorm:"VARCHAR(64)"`
22
+	SourceName string  `xorm:"VARCHAR(255)"`
23
+	Amount     float32 `xorm:"FLOAT(8,2)"`
24
+	FloatType  string  `xorm:"comment('+
25
+            -') VARCHAR(5)"`
26
+	CreateDate time.Time `xorm:"DATETIME"`
27
+	CreateUser string    `xorm:"VARCHAR(64)"`
28
+	Status     int       `xorm:"SMALLINT(6)"`
23 29
 }

+ 14
- 0
models/model/ta_case_key.go Просмотреть файл

@@ -0,0 +1,14 @@
1
+package model
2
+
3
+import (
4
+	"time"
5
+)
6
+
7
+type TaCaseKey struct {
8
+	KeyId      string    `xorm:"not null pk VARCHAR(64)"`
9
+	LockNum    string    `xorm:"VARCHAR(50)"`
10
+	Status     int       `xorm:"SMALLINT(6)"`
11
+	CreateDate time.Time `xorm:"DATETIME"`
12
+	OrgId      string    `xorm:"VARCHAR(64)"`
13
+	CaseId     string    `xorm:"VARCHAR(64)"`
14
+}

+ 15
- 0
models/model/ta_case_key_use.go Просмотреть файл

@@ -0,0 +1,15 @@
1
+package model
2
+
3
+import (
4
+	"time"
5
+)
6
+
7
+type TaCaseKeyUse struct {
8
+	UseId        string    `xorm:"not null pk VARCHAR(64)"`
9
+	KeyId        string    `xorm:"VARCHAR(64)"`
10
+	CustomerId   string    `xorm:"VARCHAR(64)"`
11
+	CustomerName string    `xorm:"VARCHAR(50)"`
12
+	UseDate      time.Time `xorm:"DATETIME"`
13
+	ReturnDate   time.Time `xorm:"DATETIME"`
14
+	Status       int       `xorm:"SMALLINT(6)"`
15
+}

+ 3
- 2
models/model/ta_cms_case_image.go Просмотреть файл

@@ -5,6 +5,7 @@ type TaCmsCaseImage struct {
5 5
 	CmsCaseId      string `xorm:"VARCHAR(64)"`
6 6
 	CaseImageUrl   string `xorm:"TEXT"`
7 7
 	Status         int    `xorm:"SMALLINT(6)"`
8
-	ImageType      string `xorm:"comment('cover:封面  detail:详情') VARCHAR(32)"`
9
-	Sort           int    `xorm:"INT(11)"`
8
+	ImageType      string `xorm:"comment('cover:封面
9
+            detail:详情') VARCHAR(32)"`
10
+	Sort int `xorm:"INT(11)"`
10 11
 }

+ 28
- 0
models/model/ta_coupon_card.go Просмотреть файл

@@ -0,0 +1,28 @@
1
+package model
2
+
3
+import (
4
+	"time"
5
+)
6
+
7
+type TaCouponCard struct {
8
+	CardId           string    `xorm:"not null pk VARCHAR(64)"`
9
+	CardTypeId       string    `xorm:"VARCHAR(64)"`
10
+	SendType         int       `xorm:"comment('0案场 1渠道') SMALLINT(6)"`
11
+	VideoUrl         string    `xorm:"TEXT"`
12
+	CoverUrl         string    `xorm:"TEXT"`
13
+	Price            float32   `xorm:"FLOAT(64)"`
14
+	StartDate        time.Time `xorm:"DATETIME"`
15
+	EndDate          time.Time `xorm:"DATETIME"`
16
+	ShareDescription string    `xorm:"VARCHAR(255)"`
17
+	RuleDescription  string    `xorm:"VARCHAR(400)"`
18
+	UseDescription   string    `xorm:"TEXT"`
19
+	TotalCount       int       `xorm:"INT(11)"`
20
+	SentCount        int       `xorm:"INT(11)"`
21
+	UsedCount        int       `xorm:"INT(11)"`
22
+	Status           int       `xorm:"comment('0未发布 1发布 2过期') SMALLINT(6)"`
23
+	CaseId           string    `xorm:"VARCHAR(64)"`
24
+	OrgId            string    `xorm:"VARCHAR(64)"`
25
+	CreateDate       time.Time `xorm:"DATETIME"`
26
+	CreateUser       string    `xorm:"VARCHAR(64)"`
27
+	IsOver           int       `xorm:"TINYINT(1)"`
28
+}

+ 0
- 1
models/model/ta_customer.go Просмотреть файл

@@ -17,5 +17,4 @@ type TaCustomer struct {
17 17
 	RecommendName string    `xorm:"VARCHAR(50)"`
18 18
 	CreateDate    time.Time `xorm:"DATETIME"`
19 19
 	Status        int       `xorm:"SMALLINT(6)"`
20
-	UserId        string    `xorm:"VARCHAR(64)"`
21 20
 }

+ 25
- 0
models/model/ta_experience_card.go Просмотреть файл

@@ -0,0 +1,25 @@
1
+package model
2
+
3
+import (
4
+	"time"
5
+)
6
+
7
+type TaExperienceCard struct {
8
+	CardId     string    `xorm:"not null pk VARCHAR(64)"`
9
+	CardTypeId string    `xorm:"VARCHAR(64)"`
10
+	SendType   string    `xorm:"comment('0案场 1渠道') VARCHAR(32)"`
11
+	VideoUrl   string    `xorm:"TEXT"`
12
+	CoverUrl   string    `xorm:"TEXT"`
13
+	Price      float32   `xorm:"FLOAT(64)"`
14
+	StartDate  time.Time `xorm:"DATETIME"`
15
+	EndDate    time.Time `xorm:"DATETIME"`
16
+	TotalCount int       `xorm:"INT(11)"`
17
+	SentCount  int       `xorm:"INT(11)"`
18
+	UsedCount  int       `xorm:"INT(11)"`
19
+	Status     string    `xorm:"comment('private未发布 public发布 over过期') VARCHAR(32)"`
20
+	CaseId     string    `xorm:"VARCHAR(64)"`
21
+	OrgId      string    `xorm:"VARCHAR(64)"`
22
+	CreateDate time.Time `xorm:"DATETIME"`
23
+	CreateUser string    `xorm:"VARCHAR(64)"`
24
+	IsOver     int       `xorm:"TINYINT(1)"`
25
+}

+ 21
- 20
models/model/ta_goods_orders.go Просмотреть файл

@@ -5,24 +5,25 @@ import (
5 5
 )
6 6
 
7 7
 type TaGoodsOrders struct {
8
-	OrdersId     string    `xorm:"not null pk VARCHAR(64)"`
9
-	OrdersNo     string    `xorm:"VARCHAR(32)"`
10
-	OrgId        string    `xorm:"VARCHAR(64)"`
11
-	CaseId       string    `xorm:"VARCHAR(64)"`
12
-	AreaId       string    `xorm:"VARCHAR(64)"`
13
-	AreaName     string    `xorm:"VARCHAR(50)"`
14
-	TableId      string    `xorm:"VARCHAR(64)"`
15
-	TableName    string    `xorm:"VARCHAR(50)"`
16
-	Amount       string    `xorm:"DECIMAL(8,2)"`
17
-	CreateDate   time.Time `xorm:"DATETIME"`
18
-	Status       int       `xorm:"SMALLINT(6)"`
19
-	PayType      int       `xorm:"comment('vip VIP卡城币抵用 coupon 优惠券抵用') SMALLINT(6)"`
20
-	UserType     int       `xorm:"SMALLINT(6)"`
21
-	UserId       string    `xorm:"VARCHAR(64)"`
22
-	UserName     string    `xorm:"VARCHAR(50)"`
23
-	OrdersNum    int       `xorm:"INT(11)"`
24
-	Remark       string    `xorm:"TEXT"`
25
-	IsPay        int       `xorm:"TINYINT(1)"`
26
-	ActualAmount string    `xorm:"DECIMAL(8,2)"`
27
-	CouponAmount string    `xorm:"DECIMAL(8,2)"`
8
+	OrdersId   string    `xorm:"not null pk VARCHAR(64)"`
9
+	OrdersNo   string    `xorm:"VARCHAR(32)"`
10
+	OrgId      string    `xorm:"VARCHAR(64)"`
11
+	CaseId     string    `xorm:"VARCHAR(64)"`
12
+	AreaId     string    `xorm:"VARCHAR(64)"`
13
+	AreaName   string    `xorm:"VARCHAR(50)"`
14
+	TableId    string    `xorm:"VARCHAR(64)"`
15
+	TableName  string    `xorm:"VARCHAR(50)"`
16
+	Amount     string    `xorm:"DECIMAL(8,2)"`
17
+	CreateDate time.Time `xorm:"DATETIME"`
18
+	Status     int       `xorm:"SMALLINT(6)"`
19
+	PayType    int       `xorm:"comment('vip VIP卡城币抵用
20
+            coupon 优惠券抵用') SMALLINT(6)"`
21
+	UserType     int    `xorm:"SMALLINT(6)"`
22
+	UserId       string `xorm:"VARCHAR(64)"`
23
+	UserName     string `xorm:"VARCHAR(50)"`
24
+	OrdersNum    int    `xorm:"INT(11)"`
25
+	Remark       string `xorm:"TEXT"`
26
+	IsPay        int    `xorm:"TINYINT(1)"`
27
+	ActualAmount string `xorm:"DECIMAL(8,2)"`
28
+	CouponAmount string `xorm:"DECIMAL(8,2)"`
28 29
 }

+ 6
- 4
models/model/ta_user_mapping.go Просмотреть файл

@@ -1,10 +1,12 @@
1 1
 package model
2 2
 
3 3
 type TaUserMapping struct {
4
-	MappingId   string `xorm:"not null pk VARCHAR(64)"`
5
-	UserId      string `xorm:"VARCHAR(64)"`
6
-	UserType    string `xorm:"comment('customer 为会员  user 为后台用户') VARCHAR(50)"`
7
-	AccountType string `xorm:"comment('wechat 微信公众号 mini 小程序') VARCHAR(50)"`
4
+	MappingId string `xorm:"not null pk VARCHAR(64)"`
5
+	UserId    string `xorm:"VARCHAR(64)"`
6
+	UserType  string `xorm:"comment('customer 为会员
7
+            user 为后台用户') VARCHAR(50)"`
8
+	AccountType string `xorm:"comment('wechat 微信公众号
9
+            mini 小程序') VARCHAR(50)"`
8 10
 	Openid      string `xorm:"VARCHAR(200)"`
9 11
 	Uuid        string `xorm:"VARCHAR(200)"`
10 12
 	AccountInfo string `xorm:"TEXT"`

+ 0
- 35
models/system/case.go Просмотреть файл

@@ -1,35 +0,0 @@
1
-package system
2
-
3
-import (
4
-	"spaceofcheng/services/models/model"
5
-	"spaceofcheng/services/utils"
6
-
7
-	"github.com/go-xorm/xorm"
8
-)
9
-
10
-// CaseDAO 当前数据库操作对象
11
-type CaseDAO struct {
12
-	ctx *utils.Context
13
-	db  *xorm.Session
14
-}
15
-
16
-// NewCaseDAO New Inst
17
-func NewCaseDAO(ctx *utils.Context) *CaseDAO {
18
-	return &CaseDAO{
19
-		ctx: ctx,
20
-		db:  ctx.DB,
21
-	}
22
-}
23
-
24
-// GetCaseByID 根据ID获取案场信息
25
-func (m *CaseDAO) GetCaseByID(caseid string) (*model.SysCase, error) {
26
-	var cases []model.SysCase
27
-	err := m.db.Where("case_id=?", caseid).Find(&cases)
28
-	if err != nil {
29
-		return nil, err
30
-	}
31
-	if len(cases) > 0 {
32
-		return &cases[0], nil
33
-	}
34
-	return nil, nil
35
-}

+ 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
+}

+ 44
- 0
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,6 +72,48 @@ 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
 
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"),
116
+
73 117
 		// 文件
74 118
 		beego.NSRouter("/file", &controllers.BaseController{}, "post:FileUpload"),
75 119
 

+ 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
+}

+ 49
- 0
service/cases/cases.go Просмотреть файл

@@ -2,6 +2,8 @@ package cases
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/models/cases"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service"
5 7
 	"spaceofcheng/services/utils"
6 8
 )
7 9
 
@@ -18,3 +20,50 @@ func NewCaseServ(ctx *utils.Context) *CaseServ {
18 20
 		dao: cases.NewCaseDAO(ctx),
19 21
 	}
20 22
 }
23
+
24
+// GetCases 获取案场列表
25
+func (s *CaseServ) GetCases(caseids, casename string, page, pageSize int) (map[string]interface{}, error) {
26
+	if pageSize == 0 {
27
+		pageSize = service.PAGENUM
28
+	}
29
+	cases, err := s.dao.GetCaseList(caseids, casename, page, pageSize)
30
+	if err != nil {
31
+		return nil, err
32
+	}
33
+	total, err := s.dao.GetCaseCount(caseids, casename)
34
+	if err != nil {
35
+		return nil, err
36
+	}
37
+
38
+	return map[string]interface{}{
39
+		"list":     cases,
40
+		"pagesize": pageSize,
41
+		"pagenum":  total,
42
+		"page":     page,
43
+	}, err
44
+}
45
+
46
+// GetCaseByID 根据案场id获取案场
47
+func (s *CaseServ) GetCaseByID(caseid string) (*model.SysCase, error) {
48
+	caseinfo, err := s.dao.GetCaseByID(caseid)
49
+	return caseinfo, err
50
+}
51
+
52
+// SaveCase 保存案场
53
+func (s *CaseServ) SaveCase(caseinfo model.SysCase) (*model.SysCase, error) {
54
+	var newInfo *model.SysCase
55
+	var err error
56
+	if caseinfo.CaseId == "" {
57
+		newInfo, err = s.dao.AddCase(caseinfo)
58
+	} else {
59
+		err = s.dao.UpdateCase(caseinfo)
60
+		newInfo = &caseinfo
61
+	}
62
+	return newInfo, err
63
+}
64
+
65
+// DelCase 删除案场
66
+func (s *CaseServ) DelCase(caseid string) error {
67
+	err := s.dao.DelCase(caseid)
68
+	return err
69
+}

+ 40
- 0
service/cases/caseuser.go Просмотреть файл

@@ -0,0 +1,40 @@
1
+package cases
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetCaseUserByCase 根据案场id获取案场相关人员信息
6
+func (s *CaseServ) GetCaseUserByCase(caseid string) ([]model.SysCaseUser, error) {
7
+	caseusers, err := s.dao.GetCaseUserByCase(caseid)
8
+	return caseusers, err
9
+}
10
+
11
+// GetCaseUserByType 根据类型获取人员
12
+func (s *CaseServ) GetCaseUserByType(caseid, usertype string) ([]model.SysCaseUser, error) {
13
+	caseusers, err := s.dao.GetCaseUserByUserType(caseid, usertype)
14
+	return caseusers, err
15
+}
16
+
17
+// GetCaseUserByID 根据ID获取人员
18
+func (s *CaseServ) GetCaseUserByID(userid string) (*model.SysCaseUser, error) {
19
+	caseuser, err := s.dao.GetCaseUserByID(userid)
20
+	return caseuser, err
21
+}
22
+
23
+// SaveCaseUser 保存人员信息
24
+func (s *CaseServ) SaveCaseUser(caseuser model.SysCaseUser) (*model.SysCaseUser, error) {
25
+	var newInfo *model.SysCaseUser
26
+	var err error
27
+	if caseuser.CaseUserId == "" {
28
+		newInfo, err = s.dao.AddCaseUser(caseuser)
29
+	} else {
30
+		err = s.dao.UpdateCaseUser(caseuser)
31
+		newInfo = &caseuser
32
+	}
33
+	return newInfo, err
34
+}
35
+
36
+// DelCaseUser 删除人员信息
37
+func (s *CaseServ) DelCaseUser(userid string) error {
38
+	err := s.dao.DelCaseUser(userid)
39
+	return err
40
+}

+ 51
- 0
service/cases/equipment.go Просмотреть файл

@@ -0,0 +1,51 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/service"
6
+)
7
+
8
+// GetCaseEquipment 获取体检设备
9
+func (s *CaseServ) GetCaseEquipment(caseids string, page int, pageSize int) (map[string]interface{}, error) {
10
+	if pageSize == 0 {
11
+		pageSize = service.PAGENUM
12
+	}
13
+	specs, err := s.dao.GetEquipmentList(caseids, page, pageSize)
14
+	if err != nil {
15
+		return nil, err
16
+	}
17
+	total, err := s.dao.GetEquipmentCount(caseids)
18
+	if err != nil {
19
+		return nil, err
20
+	}
21
+
22
+	return map[string]interface{}{
23
+		"list":     specs,
24
+		"pagesize": pageSize,
25
+		"pagenum":  total,
26
+		"page":     page,
27
+	}, err
28
+}
29
+
30
+// GetCaseEquipmentByID 根据ID获取体检设备
31
+func (s *CaseServ) GetCaseEquipmentByID(equipmentid string) (*model.SysCaseEquipment, error) {
32
+	equipment, err := s.dao.GetCaseEquipmentByID(equipmentid)
33
+	return equipment, err
34
+}
35
+
36
+// SaveCaseEquipment 保存体检设备
37
+func (s *CaseServ) SaveCaseEquipment(equipment model.SysCaseEquipment) (*model.SysCaseEquipment, error) {
38
+	var err error
39
+	if equipment.EquipmentId == "" {
40
+		_, err = s.dao.AddCaseEquipment(&equipment)
41
+	} else {
42
+		err = s.dao.UpdateCaseEquipment(equipment)
43
+	}
44
+	return &equipment, err
45
+}
46
+
47
+// DelCaseEquipment 删除体检设备
48
+func (s *CaseServ) DelCaseEquipment(equipmentid string) error {
49
+	err := s.dao.DelCaseEquipment(equipmentid)
50
+	return err
51
+}

+ 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
+}

+ 31
- 0
service/cases/tag.go Просмотреть файл

@@ -2,6 +2,7 @@ package cases
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/models/cases"
5
+	"spaceofcheng/services/models/model"
5 6
 	"spaceofcheng/services/service"
6 7
 )
7 8
 
@@ -42,3 +43,33 @@ func (s *CaseServ) GetTagByID(tagid string) (*cases.Tag, error) {
42 43
 	}
43 44
 	return tag, err
44 45
 }
46
+
47
+// SaveTag 保存标签
48
+func (s *CaseServ) SaveTag(tag model.SysTag, caseids string) (*model.SysTag, error) {
49
+	var newInfo *model.SysTag
50
+	var err error
51
+	if tag.TagId == "" {
52
+		newInfo, err = s.dao.AddTag(tag)
53
+	} else {
54
+		err = s.dao.UpdateTag(tag)
55
+		newInfo = &tag
56
+	}
57
+	if err != nil {
58
+		return nil, err
59
+	}
60
+	err = s.dao.DelTagCase(newInfo.TagId)
61
+	if err != nil {
62
+		return nil, err
63
+	}
64
+	err = s.dao.SaveTagCase(newInfo.TagId, caseids)
65
+	if err != nil {
66
+		return nil, err
67
+	}
68
+	return newInfo, err
69
+}
70
+
71
+// DelTag 删除标签
72
+func (s *CaseServ) DelTag(tagid string) error {
73
+	err := s.dao.DeleteTag(tagid)
74
+	return err
75
+}

+ 9
- 6
service/customer/customer.go Просмотреть файл

@@ -3,6 +3,7 @@ package customer
3 3
 import (
4 4
 	"errors"
5 5
 	"spaceofcheng/services/models"
6
+	"spaceofcheng/services/models/cases"
6 7
 	"spaceofcheng/services/models/customer"
7 8
 	"spaceofcheng/services/models/model"
8 9
 	"spaceofcheng/services/service/events"
@@ -12,15 +13,17 @@ import (
12 13
 
13 14
 // CustomerServ 系统处理
14 15
 type CustomerServ struct {
15
-	ctx *utils.Context
16
-	dao *customer.CustomerDAO
16
+	ctx     *utils.Context
17
+	dao     *customer.CustomerDAO
18
+	casedao *cases.CaseDAO
17 19
 }
18 20
 
19 21
 // NewCustomerServ 初始化
20 22
 func NewCustomerServ(ctx *utils.Context) *CustomerServ {
21 23
 	return &CustomerServ{
22
-		ctx: ctx,
23
-		dao: customer.NewCustomerDAO(ctx),
24
+		ctx:     ctx,
25
+		dao:     customer.NewCustomerDAO(ctx),
26
+		casedao: cases.NewCaseDAO(ctx),
24 27
 	}
25 28
 }
26 29
 
@@ -188,7 +191,7 @@ func (s *CustomerServ) SaveNewCustomer(wxInfo map[string]interface{}, caseID, ar
188 191
 
189 192
 	// 校验案场信息
190 193
 	if caseID != "" {
191
-		cs, err := s.dao.GetCaseByID(caseID)
194
+		cs, err := s.casedao.GetCaseByID(caseID)
192 195
 		if err != nil {
193 196
 			return nil, err
194 197
 		}
@@ -225,7 +228,7 @@ func (s *CustomerServ) SaveNewCustomer(wxInfo map[string]interface{}, caseID, ar
225 228
 		}
226 229
 
227 230
 		if user != nil && user.Status != models.STATUS_DEL {
228
-			cust.UserId = userID
231
+			cust.CustomerId = userID
229 232
 		}
230 233
 	}
231 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
+}

+ 3
- 2
service/user.go Просмотреть файл

@@ -3,6 +3,7 @@ package service
3 3
 import (
4 4
 	"errors"
5 5
 	"spaceofcheng/services/models"
6
+	"spaceofcheng/services/models/cases"
6 7
 	"spaceofcheng/services/models/model"
7 8
 	"spaceofcheng/services/models/system"
8 9
 	"spaceofcheng/services/utils"
@@ -14,7 +15,7 @@ import (
14 15
 type UserServ struct {
15 16
 	ctx     *utils.Context
16 17
 	dao     *system.UserDAO
17
-	casedao *system.CaseDAO
18
+	casedao *cases.CaseDAO
18 19
 }
19 20
 
20 21
 // NewUserServ 初始化
@@ -22,7 +23,7 @@ func NewUserServ(ctx *utils.Context) *UserServ {
22 23
 	return &UserServ{
23 24
 		ctx:     ctx,
24 25
 		dao:     system.NewUserDAO(ctx),
25
-		casedao: system.NewCaseDAO(ctx),
26
+		casedao: cases.NewCaseDAO(ctx),
26 27
 	}
27 28
 }
28 29