zjxpcyc преди 6 години
родител
ревизия
c5c508cac9

+ 19
- 0
controllers/cases/case.go Целия файл

@@ -0,0 +1,19 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/service/cases"
6
+)
7
+
8
+// CaseController 信息
9
+type CaseController struct {
10
+	dao *cases.CaseServ
11
+	controllers.BaseController
12
+}
13
+
14
+// Constructor 初始化 Controller
15
+// @Title Constructor
16
+// @Description 初始化 Controller, 系统自动调用
17
+func (c *CaseController) Constructor() {
18
+	c.dao = cases.NewCaseServ(c.Context)
19
+}

+ 27
- 0
controllers/cases/tag.go Целия файл

@@ -0,0 +1,27 @@
1
+package cases
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetTagList 获取标签列表
6
+func (c *CaseController) GetTagList() {
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.GetTagList(caseIDs, page, pageSize)
13
+	if err != nil {
14
+		c.ResponseError(err)
15
+	}
16
+	c.ResponseJSON(list)
17
+}
18
+
19
+// GetTagByID 根据ID获取标签信息
20
+func (c *CaseController) GetTagByID() {
21
+	tagid := c.GetString(":tagid")
22
+	info, err := c.dao.GetTagByID(tagid)
23
+	if err != nil {
24
+		c.ResponseError(err)
25
+	}
26
+	c.ResponseJSON(list)
27
+}

+ 0
- 99
controllers/goods/goods.go Целия файл

@@ -2,7 +2,6 @@ package goods
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5
-	"spaceofcheng/services/models/model"
6 5
 	"spaceofcheng/services/service/goods"
7 6
 )
8 7
 
@@ -18,101 +17,3 @@ type GoodsController struct {
18 17
 func (c *GoodsController) Constructor() {
19 18
 	c.dao = goods.NewGoodsServ(c.Context)
20 19
 }
21
-
22
-// GetGoodsType 获取商品分类列表
23
-func (c *GoodsController) GetGoodsType() {
24
-	caseids := c.GetString("caseid")
25
-	if caseids == "" {
26
-		cases := c.Context.Get("cases").([]model.SysUserCase)
27
-		caseids = c.GetCaseIDs(cases)
28
-	}
29
-	page, _ := c.GetInt("page")
30
-	pageSize, _ := c.GetInt("pagesize")
31
-	goodstype, err := c.dao.GetGoodsType(caseids, page, pageSize)
32
-	if err != nil {
33
-		c.ResponseError(err)
34
-	}
35
-	c.ResponseJSON(goodstype)
36
-}
37
-
38
-// GetGoodsTypeByID 根据ID获取商品分类
39
-func (c *GoodsController) GetGoodsTypeByID() {
40
-	typeid := c.GetString(":typeid")
41
-	goodsType, err := c.dao.GetGoodsTypeByID(typeid)
42
-	if err != nil {
43
-		c.ResponseError(err)
44
-	}
45
-	c.ResponseJSON(goodsType)
46
-}
47
-
48
-// SaveGoodsType 保存商品分类
49
-func (c *GoodsController) SaveGoodsType() {
50
-	goodsType := model.TdGoodsType{}
51
-	if err := c.ParseForm(&goodsType); err != nil {
52
-		c.ResponseError(err)
53
-	}
54
-	newtype, err := c.dao.SaveGoodsType(goodsType)
55
-	if err != nil {
56
-		c.ResponseError(err)
57
-	}
58
-	c.ResponseJSON(newtype)
59
-}
60
-
61
-// DelGoodsType 删除商品分类
62
-func (c *GoodsController) DelGoodsType() {
63
-	typeid := c.GetString(":typeid")
64
-	err := c.dao.DelGoodsType(typeid)
65
-	if err != nil {
66
-		c.ResponseError(err)
67
-	}
68
-	c.ResponseJSON("删除成功!")
69
-}
70
-
71
-// GetGoodsSpec 获取商品规格列表
72
-func (c *GoodsController) GetGoodsSpec() {
73
-	caseids := c.GetString("caseid")
74
-	if caseids == "" {
75
-		cases := c.Context.Get("cases").([]model.SysUserCase)
76
-		caseids = c.GetCaseIDs(cases)
77
-	}
78
-	page, _ := c.GetInt("page")
79
-	pageSize, _ := c.GetInt("pagesize")
80
-	goodsSpec, err := c.dao.GetGoodsSpec(caseids, page, pageSize)
81
-	if err != nil {
82
-		c.ResponseError(err)
83
-	}
84
-	c.ResponseJSON(goodsSpec)
85
-}
86
-
87
-// GetGoodsSpecByID 根据ID获取商品分类
88
-func (c *GoodsController) GetGoodsSpecByID() {
89
-	specid := c.GetString(":specid")
90
-	goodsSpec, err := c.dao.GetGoodsSpecByID(specid)
91
-	if err != nil {
92
-		c.ResponseError(err)
93
-	}
94
-	c.ResponseJSON(goodsSpec)
95
-}
96
-
97
-// SaveGoodsSpec 保存商品分类
98
-func (c *GoodsController) SaveGoodsSpec() {
99
-	goodsSpec := model.TdSpec{}
100
-	if err := c.ParseForm(&goodsSpec); err != nil {
101
-		c.ResponseError(err)
102
-	}
103
-	newSpec, err := c.dao.SaveGoodsSpec(goodsSpec)
104
-	if err != nil {
105
-		c.ResponseError(err)
106
-	}
107
-	c.ResponseJSON(newSpec)
108
-}
109
-
110
-// DelGoodsSpec 删除商品分类
111
-func (c *GoodsController) DelGoodsSpec() {
112
-	specid := c.GetString(":specid")
113
-	err := c.dao.DelGoodsSpec(specid)
114
-	if err != nil {
115
-		c.ResponseError(err)
116
-	}
117
-	c.ResponseJSON("删除成功!")
118
-}

+ 52
- 0
controllers/goods/spec.go Целия файл

@@ -0,0 +1,52 @@
1
+package goods
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetGoodsSpec 获取商品规格列表
6
+func (c *GoodsController) GetGoodsSpec() {
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
+	goodsSpec, err := c.dao.GetGoodsSpec(caseids, page, pageSize)
15
+	if err != nil {
16
+		c.ResponseError(err)
17
+	}
18
+	c.ResponseJSON(goodsSpec)
19
+}
20
+
21
+// GetGoodsSpecByID 根据ID获取商品分类
22
+func (c *GoodsController) GetGoodsSpecByID() {
23
+	specid := c.GetString(":specid")
24
+	goodsSpec, err := c.dao.GetGoodsSpecByID(specid)
25
+	if err != nil {
26
+		c.ResponseError(err)
27
+	}
28
+	c.ResponseJSON(goodsSpec)
29
+}
30
+
31
+// SaveGoodsSpec 保存商品分类
32
+func (c *GoodsController) SaveGoodsSpec() {
33
+	goodsSpec := model.TdSpec{}
34
+	if err := c.ParseForm(&goodsSpec); err != nil {
35
+		c.ResponseError(err)
36
+	}
37
+	newSpec, err := c.dao.SaveGoodsSpec(goodsSpec)
38
+	if err != nil {
39
+		c.ResponseError(err)
40
+	}
41
+	c.ResponseJSON(newSpec)
42
+}
43
+
44
+// DelGoodsSpec 删除商品分类
45
+func (c *GoodsController) DelGoodsSpec() {
46
+	specid := c.GetString(":specid")
47
+	err := c.dao.DelGoodsSpec(specid)
48
+	if err != nil {
49
+		c.ResponseError(err)
50
+	}
51
+	c.ResponseJSON("删除成功!")
52
+}

+ 52
- 0
controllers/goods/type.go Целия файл

@@ -0,0 +1,52 @@
1
+package goods
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetGoodsType 获取商品分类列表
6
+func (c *GoodsController) GetGoodsType() {
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
+	goodstype, err := c.dao.GetGoodsType(caseids, page, pageSize)
15
+	if err != nil {
16
+		c.ResponseError(err)
17
+	}
18
+	c.ResponseJSON(goodstype)
19
+}
20
+
21
+// GetGoodsTypeByID 根据ID获取商品分类
22
+func (c *GoodsController) GetGoodsTypeByID() {
23
+	typeid := c.GetString(":typeid")
24
+	goodsType, err := c.dao.GetGoodsTypeByID(typeid)
25
+	if err != nil {
26
+		c.ResponseError(err)
27
+	}
28
+	c.ResponseJSON(goodsType)
29
+}
30
+
31
+// SaveGoodsType 保存商品分类
32
+func (c *GoodsController) SaveGoodsType() {
33
+	goodsType := model.TdGoodsType{}
34
+	if err := c.ParseForm(&goodsType); err != nil {
35
+		c.ResponseError(err)
36
+	}
37
+	newtype, err := c.dao.SaveGoodsType(goodsType)
38
+	if err != nil {
39
+		c.ResponseError(err)
40
+	}
41
+	c.ResponseJSON(newtype)
42
+}
43
+
44
+// DelGoodsType 删除商品分类
45
+func (c *GoodsController) DelGoodsType() {
46
+	typeid := c.GetString(":typeid")
47
+	err := c.dao.DelGoodsType(typeid)
48
+	if err != nil {
49
+		c.ResponseError(err)
50
+	}
51
+	c.ResponseJSON("删除成功!")
52
+}

+ 62
- 0
controllers/message/cmscase.go Целия файл

@@ -0,0 +1,62 @@
1
+package message
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetCmsCase 获取项目列表
6
+func (c *MessageController) GetCmsCase() {
7
+	org := c.Context.Get("org").(model.SysOrg)
8
+	page, _ := c.GetInt("page")
9
+	pageSize, _ := c.GetInt("pagesize")
10
+	name := c.GetString("name")
11
+	list, err := c.dao.GetCmsCasesList(name, org.OrgId, page, pageSize)
12
+	if err != nil {
13
+		c.ResponseError(err)
14
+	}
15
+	c.ResponseJSON(list)
16
+}
17
+
18
+// GetCmsCaseList 项目列表
19
+func (c *MessageController) GetCmsCaseList() {
20
+	orgid := c.GetString("orgid")
21
+	list, err := c.dao.GetCmsCaseByOrg(orgid)
22
+	if err != nil {
23
+		c.ResponseError(err)
24
+	}
25
+	c.ResponseJSON(list)
26
+}
27
+
28
+// GetCmsCaseByID 获取明细
29
+func (c *MessageController) GetCmsCaseByID() {
30
+	cmscaseid := c.GetString(":cmscaseid")
31
+	cmscase, err := c.dao.GetCmsCasesByID(cmscaseid)
32
+	if err != nil {
33
+		c.ResponseError(err)
34
+	}
35
+	c.ResponseJSON(cmscase)
36
+}
37
+
38
+// SaveCmsCase 保存项目
39
+func (c *MessageController) SaveCmsCase() {
40
+	cmscase := model.TaCmsCase{}
41
+	if err := c.ParseForm(&cmscase); err != nil {
42
+		c.ResponseError(err)
43
+	}
44
+	courseids := c.GetString("courseids")
45
+	imgs := c.GetString("imgs")
46
+	detailimgs := c.GetString("detailimgs")
47
+	newInfo, err := c.dao.SaveCmsCase(cmscase, courseids, imgs, detailimgs)
48
+	if err != nil {
49
+		c.ResponseError(err)
50
+	}
51
+	c.ResponseJSON(newInfo)
52
+}
53
+
54
+// DelCmsCase 删除项目
55
+func (c *MessageController) DelCmsCase() {
56
+	cmscaseid := c.GetString(":cmscaseid")
57
+	err := c.dao.DelCmsCase(cmscaseid)
58
+	if err != nil {
59
+		c.ResponseError(err)
60
+	}
61
+	c.ResponseJSON("删除成功!")
62
+}

+ 59
- 0
controllers/message/image.go Целия файл

@@ -0,0 +1,59 @@
1
+package message
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetImgList 获取轮播图列表
6
+func (c *MessageController) GetImgList() {
7
+	org := c.Context.Get("org").(model.SysOrg)
8
+	page, _ := c.GetInt("page")
9
+	pageSize, _ := c.GetInt("pagesize")
10
+	imgs, err := c.dao.GetImgList(org.OrgId, page, pageSize)
11
+	if err != nil {
12
+		c.ResponseError(err)
13
+	}
14
+	c.ResponseJSON(imgs)
15
+}
16
+
17
+// GetImgByLocation 根据位置获取轮播图信息
18
+func (c *MessageController) GetImgByLocation() {
19
+	loctionid := c.GetString("loctionid")
20
+	orgid := c.GetString("orgid")
21
+	imgs, err := c.dao.GetImgByLocation(loctionid, orgid)
22
+	if err != nil {
23
+		c.ResponseError(err)
24
+	}
25
+	c.ResponseJSON(imgs)
26
+}
27
+
28
+// GetImgByID 根据id获取轮播图信息
29
+func (c *MessageController) GetImgByID() {
30
+	imgid := c.GetString(":imgid")
31
+	img, err := c.dao.GetImgByID(imgid)
32
+	if err != nil {
33
+		c.ResponseError(err)
34
+	}
35
+	c.ResponseJSON(img)
36
+}
37
+
38
+// SaveImage 保存轮播图信息
39
+func (c *MessageController) SaveImage() {
40
+	img := model.TaCmsImages{}
41
+	if err := c.ParseForm(&img); err != nil {
42
+		c.ResponseError(err)
43
+	}
44
+	newInfo, err := c.dao.SaveImg(img)
45
+	if err != nil {
46
+		c.ResponseError(err)
47
+	}
48
+	c.ResponseJSON(newInfo)
49
+}
50
+
51
+// DelImg 删除轮播图信息
52
+func (c *MessageController) DelImg() {
53
+	imgid := c.GetString(":imgid")
54
+	err := c.dao.DelImg(imgid)
55
+	if err != nil {
56
+		c.ResponseError(err)
57
+	}
58
+	c.ResponseJSON("删除成功!")
59
+}

+ 10
- 0
controllers/message/location.go Целия файл

@@ -13,6 +13,16 @@ func (c *MessageController) GetLocations() {
13 13
 	c.ResponseJSON(location)
14 14
 }
15 15
 
16
+// GetLocationById 根据id获取位置信息
17
+func (c *MessageController) GetLocationById() {
18
+	locationid := c.GetString(":locationid")
19
+	location, err := c.dao.GetLocationByID(locationid)
20
+	if err != nil {
21
+		c.ResponseError(err)
22
+	}
23
+	c.ResponseJSON(location)
24
+}
25
+
16 26
 // SaveLocation 保存位置信息
17 27
 func (c *MessageController) SaveLocation() {
18 28
 	location := model.TdCmsImageLocation{}

+ 58
- 0
controllers/message/message.go Целия файл

@@ -2,6 +2,7 @@ package message
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/models/model"
5 6
 	"spaceofcheng/services/service/message"
6 7
 )
7 8
 
@@ -17,3 +18,60 @@ type MessageController struct {
17 18
 func (c *MessageController) Constructor() {
18 19
 	c.dao = message.NewMessageServ(c.Context)
19 20
 }
21
+
22
+// GetCmsInfoList 获取消息列表
23
+func (c *MessageController) GetCmsInfoList() {
24
+	org := c.Context.Get("org").(model.SysOrg)
25
+	title := c.GetString("title")
26
+	page, _ := c.GetInt("page")
27
+	pageSize, _ := c.GetInt("pagesize")
28
+	cmsInfos, err := c.dao.GetCmsInfoList(title, org.OrgId, page, pageSize)
29
+	if err != nil {
30
+		c.ResponseError(err)
31
+	}
32
+	c.ResponseJSON(cmsInfos)
33
+}
34
+
35
+// GetCmsInfoByLocation 根据位置获取消息列表
36
+func (c *MessageController) GetCmsInfoByLocation() {
37
+	locationid := c.GetString("locationid")
38
+	orgid := c.GetString("orgid")
39
+	cmsinfos, err := c.dao.GetCmsInfoByLocation(locationid, orgid)
40
+	if err != nil {
41
+		c.ResponseError(err)
42
+	}
43
+	c.ResponseJSON(cmsinfos)
44
+}
45
+
46
+// GetCmsInfoByID 根据id获取消息信息
47
+func (c *MessageController) GetCmsInfoByID() {
48
+	infoid := c.GetString(":infoid")
49
+	info, err := c.dao.GetCmsInfoByID(infoid)
50
+	if err != nil {
51
+		c.ResponseError(err)
52
+	}
53
+	c.ResponseJSON(info)
54
+}
55
+
56
+// SaveCmsInfo 保存消息信息
57
+func (c *MessageController) SaveCmsInfo() {
58
+	cmsinfo := model.TaCmsInfo{}
59
+	if err := c.ParseForm(&cmsinfo); err != nil {
60
+		c.ResponseError(err)
61
+	}
62
+	newInfo, err := c.dao.SaveCmsInfo(cmsinfo)
63
+	if err != nil {
64
+		c.ResponseError(err)
65
+	}
66
+	c.ResponseJSON(newInfo)
67
+}
68
+
69
+// DelCmsInfo 删除消息信息
70
+func (c *MessageController) DelCmsInfo() {
71
+	infoid := c.GetString(":infoid")
72
+	err := c.dao.DelCmsInfo(infoid)
73
+	if err != nil {
74
+		c.ResponseError(err)
75
+	}
76
+	c.ResponseJSON("删除成功!")
77
+}

+ 61
- 0
controllers/message/news.go Целия файл

@@ -0,0 +1,61 @@
1
+package message
2
+
3
+import "spaceofcheng/services/models/model"
4
+
5
+// GetNews 获取咨询列表
6
+func (c *MessageController) GetNews() {
7
+	org := c.Context.Get("org").(model.SysOrg)
8
+	page, _ := c.GetInt("page")
9
+	pageSize, _ := c.GetInt("pagesize")
10
+	locationid := c.GetString("locationid")
11
+	news, err := c.dao.GetNewsList(locationid, org.OrgId, page, pageSize)
12
+	if err != nil {
13
+		c.ResponseError(err)
14
+	}
15
+	c.ResponseJSON(news)
16
+}
17
+
18
+// GetNewsByID 获取咨询明细
19
+func (c *MessageController) GetNewsByID() {
20
+	newsid := c.GetString(":newsid")
21
+	news, err := c.dao.GetNewsByID(newsid)
22
+	if err != nil {
23
+		c.ResponseError(err)
24
+	}
25
+	c.ResponseJSON(news)
26
+}
27
+
28
+// GetNewsByLocation 根据位置获取咨询明细
29
+func (c *MessageController) GetNewsByLocation() {
30
+	locationid := c.GetString("locationid")
31
+	orgid := c.GetString("orgid")
32
+	news, err := c.dao.GetNewsByLocation(locationid, orgid)
33
+	if err != nil {
34
+		c.ResponseError(err)
35
+	}
36
+	c.ResponseJSON(news)
37
+}
38
+
39
+// SaveNews 保存咨询明细
40
+func (c *MessageController) SaveNews() {
41
+	news := model.TaCmsNews{}
42
+	if err := c.ParseForm(&news); err != nil {
43
+		c.ResponseError(err)
44
+	}
45
+	locationids := c.GetString("locationids")
46
+	newInfo, err := c.dao.SaveNews(news, locationids)
47
+	if err != nil {
48
+		c.ResponseError(err)
49
+	}
50
+	c.ResponseJSON(newInfo)
51
+}
52
+
53
+// DelNews 删除咨询明细
54
+func (c *MessageController) DelNews() {
55
+	newsid := c.GetString(":newsid")
56
+	err := c.dao.DelNews(newsid)
57
+	if err != nil {
58
+		c.ResponseError(err)
59
+	}
60
+	c.ResponseJSON("删除成功!")
61
+}

+ 21
- 0
models/cases/cases.go Целия файл

@@ -0,0 +1,21 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/utils"
5
+
6
+	"github.com/go-xorm/xorm"
7
+)
8
+
9
+// CaseDAO 当前数据库操作对象
10
+type CaseDAO struct {
11
+	ctx *utils.Context
12
+	db  *xorm.Session
13
+}
14
+
15
+// NewCaseDAO New Inst
16
+func NewCaseDAO(ctx *utils.Context) *CaseDAO {
17
+	return &CaseDAO{
18
+		ctx: ctx,
19
+		db:  ctx.DB,
20
+	}
21
+}

+ 60
- 0
models/cases/tag.go Целия файл

@@ -0,0 +1,60 @@
1
+package cases
2
+
3
+import (
4
+	"jcjy/demo/models"
5
+	"spaceofcheng/services/models/model"
6
+	"strconv"
7
+	"strings"
8
+)
9
+
10
+// GetTagCount 获取标签总数
11
+func (m *CaseDAO) GetTagCount(caseids string) (int, error) {
12
+	var tags []model.SysTag
13
+	err := m.db.Where("status=?", models.STATUS_NORMAL).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").Find(&tags)
14
+	return len(tags), err
15
+}
16
+
17
+// TagInfo 标签
18
+type TagInfo struct {
19
+	model.TaCmsCase `xorm:"extends"`
20
+	CaseNames       string
21
+}
22
+
23
+// GetTagList 根据案场获取标签
24
+func (m *CaseDAO) GetTagList(caseids string, page int, pageSize int) ([]TagInfo, error) {
25
+	var tags []TagInfo
26
+	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) + `
28
+	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
+		strings.Replace(caseids, ",", "','", -1) + `'))
30
+	group by b.tag_id ) c on tag.tag_id = c.tag_id`
31
+
32
+	err := m.db.Sql(sql).Find(tags)
33
+	return tags, err
34
+}
35
+
36
+// Tag 标签
37
+type Tag struct {
38
+	model.TaCmsCase `xorm:"extends"`
39
+	TagCases        []model.SysTagCase
40
+}
41
+
42
+// GetTagByID 根据ID获取标签
43
+func (m *CaseDAO) GetTagByID(tagid string) (*Tag, error) {
44
+	var tags []Tag
45
+	err := m.db.Table("sys_tag").Where("tag_id=?", tagid).Find(&tags)
46
+	if err != nil {
47
+		return nil, err
48
+	}
49
+	if len(tags) > 0 {
50
+		return &tags[0], err
51
+	}
52
+	return nil, nil
53
+}
54
+
55
+// GetTagCaseByTagID 根据标签ID获取标签对应案场
56
+func (m *CaseDAO) GetTagCaseByTagID(tagid string) ([]model.SysTagCase, error) {
57
+	var tagcase []model.SysTagCase
58
+	err := m.db.Where("tag_id=?", tagid).Find(&tagcase)
59
+	return tagcase, err
60
+}

+ 5
- 0
models/constant.go Целия файл

@@ -17,3 +17,8 @@ const (
17 17
 	ACCMAP_WECHAT = "wechat"
18 18
 	ACCMAP_MINI   = "mini"
19 19
 )
20
+
21
+const (
22
+	IMAGETYPE_COVER  = "cover"
23
+	IMAGETYPE_DETAIL = "detail"
24
+)

+ 154
- 0
models/message/cmscase.go Целия файл

@@ -0,0 +1,154 @@
1
+package message
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/builder"
12
+)
13
+
14
+// CmsCaseInfo 项目专题
15
+type CmsCaseInfo struct {
16
+	model.TaCmsCase `xorm:"extends"`
17
+	CaseName        string
18
+}
19
+
20
+// GetCmsCaseList 获取项目专题列表
21
+func (m *MessageDAO) GetCmsCaseList(name, caseids string, page int, pageSize int) ([]CmsCaseInfo, error) {
22
+	var cases []CmsCaseInfo
23
+	sql := `select a.*,b.case_name from ta_cms_case a inner join sys_case b on a.case_id = b.case_id 
24
+	where a.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and a.name like '%` + name + `%' and a.status > ` + strconv.Itoa(models.STATUS_DEL) + `
25
+	and b.status > ` + strconv.Itoa(models.STATUS_DEL) + `
26
+	order by create_date desc limit ` + strconv.Itoa(page*pageSize) + `, ` + strconv.Itoa((page+1)*pageSize)
27
+
28
+	err := m.db.Sql(sql).Find(&cases)
29
+	return cases, err
30
+}
31
+
32
+// GetCmsCaseByOrg 获取列表
33
+func (m *MessageDAO) GetCmsCaseByOrg(orgid string) ([]model.TaCmsCase, error) {
34
+	var cases []model.TaCmsCase
35
+	err := m.db.Where("org_id=?", orgid).Find(&cases)
36
+	return cases, err
37
+}
38
+
39
+// GetCmsCaseListCount 获取项目专题Count
40
+func (m *MessageDAO) GetCmsCaseListCount(name, caseids string) (int, error) {
41
+	var cases []CmsCaseInfo
42
+	sql := `select a.*,b.case_name from ta_cms_case a inner join sys_case b on a.case_id = b.case_id 
43
+	where a.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and a.name like '%` + name + `%' 
44
+	and a.status > ` + strconv.Itoa(models.STATUS_DEL) + ` and b.status > ` + strconv.Itoa(models.STATUS_DEL)
45
+
46
+	err := m.db.Sql(sql).Find(&cases)
47
+	if err != nil {
48
+		return 0, err
49
+	}
50
+	return len(cases), nil
51
+}
52
+
53
+// CmsCase 项目详情
54
+type CmsCase struct {
55
+	model.TaCmsCase `xorm:"extends"`
56
+	Courses         []model.TaCourse
57
+	CmsCaseImgs     []model.TaCmsCaseImage
58
+}
59
+
60
+// GetCmsCaseByID 获取项目专题详情
61
+func (m *MessageDAO) GetCmsCaseByID(cmscaseid string) (*CmsCase, error) {
62
+	var cases []CmsCase
63
+	err := m.db.Table("ta_cms_case").Where("cms_case_id=?", cmscaseid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&cases)
64
+	if err != nil {
65
+		return nil, err
66
+	}
67
+	if len(cases) > 0 {
68
+		return &cases[0], nil
69
+	}
70
+	return nil, nil
71
+}
72
+
73
+// GetCoursesByCmsCase 根据项目专题ID获取课程信息
74
+func (m *MessageDAO) GetCoursesByCmsCase(cmscaseid string) ([]model.TaCourse, error) {
75
+	var course []model.TaCourse
76
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).In("course_id", builder.Select("course_id").From("ta_cms_case_course").Where(builder.Eq{"cms_case_id": cmscaseid})).Find(&course)
77
+	return course, err
78
+}
79
+
80
+// GetCmsCaseImgs 根据项目专题ID获取课程图片
81
+func (m *MessageDAO) GetCmsCaseImgs(cmscaseid string) ([]model.TaCmsCaseImage, error) {
82
+	var imgs []model.TaCmsCaseImage
83
+	err := m.db.Where("cms_case_id=?", cmscaseid).And("status=?", models.STATUS_NORMAL).Find(&imgs)
84
+	return imgs, err
85
+}
86
+
87
+// GetCourseByCaseID 根据案场ID获取所有的课程信息
88
+func (m *MessageDAO) GetCourseByCaseID(caseid string) ([]model.TaCourse, error) {
89
+	var course []model.TaCourse
90
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("case_id=?", caseid).Find(&course)
91
+	return course, err
92
+}
93
+
94
+// AddCmsCase 新增项目专题
95
+func (m *MessageDAO) AddCmsCase(cmscase model.TaCmsCase) (*model.TaCmsCase, error) {
96
+	cmscase.CreateDate = time.Now()
97
+	cmscase.CmsCaseId = utils.GetGUID()
98
+	_, err := m.db.Insert(cmscase)
99
+	return &cmscase, err
100
+}
101
+
102
+// UpdateCmsCase 修改项目专题
103
+func (m *MessageDAO) UpdateCmsCase(cmscase model.TaCmsCase) error {
104
+	var col = []string{
105
+		"name",
106
+		"title",
107
+		"detail_content",
108
+		"is_all_course",
109
+		"status",
110
+		"sort",
111
+	}
112
+	_, err := m.db.Cols(col...).Where("cms_case_id=?", cmscase.CmsCaseId).Update(cmscase)
113
+	return err
114
+}
115
+
116
+// DelCmsCase 删除项目专题
117
+func (m *MessageDAO) DelCmsCase(cmscaseid string) error {
118
+	var cmscase = model.TaCmsCase{}
119
+	cmscase.Status = models.STATUS_DEL
120
+	cmscase.CmsCaseId = cmscaseid
121
+	var cols = []string{
122
+		"status",
123
+	}
124
+	_, err := m.db.Cols(cols...).Where("cms_case_id=?", cmscase.CmsCaseId).Update(cmscase)
125
+	return err
126
+}
127
+
128
+// DelCmsCaseCourse 删除项目专题对应的课程
129
+func (m *MessageDAO) DelCmsCaseCourse(cmscaseid string) error {
130
+	sql := "delete from ta_cms_case_course where cms_case_id='" + cmscaseid + "'"
131
+	_, err := m.db.Exec(sql)
132
+	return err
133
+}
134
+
135
+// SaveCmsCaseCourse 保存项目对应的课程
136
+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)
138
+	_, err := m.db.Exec(sql)
139
+	return err
140
+}
141
+
142
+// DelCmsCaseImg 删除项目专题对应的图片
143
+func (m *MessageDAO) DelCmsCaseImg(cmscaseid string) error {
144
+	sql := "delete from ta_cms_case_image where cms_case_id='" + cmscaseid + "'"
145
+	_, err := m.db.Exec(sql)
146
+	return err
147
+}
148
+
149
+// SaveCmsCaseImg 保存项目专题对应的图片
150
+func (m *MessageDAO) SaveCmsCaseImg(img model.TaCmsCaseImage) error {
151
+	img.Status = models.STATUS_NORMAL
152
+	_, err := m.db.Insert(&img)
153
+	return err
154
+}

+ 81
- 0
models/message/image.go Целия файл

@@ -0,0 +1,81 @@
1
+package message
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"time"
8
+)
9
+
10
+// GetImgList 获取轮播图列表
11
+func (m *MessageDAO) GetImgList(orgid string, page int, pageSize int) ([]model.TaCmsImages, error) {
12
+	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
+	return imgs, err
15
+}
16
+
17
+// GetImgListCount 获取轮播图count
18
+func (m *MessageDAO) GetImgListCount(orgid string) (int, error) {
19
+	var imgs []model.TaCmsImages
20
+	err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).Find(&imgs)
21
+	if err != nil {
22
+		return 0, err
23
+	}
24
+	return len(imgs), nil
25
+}
26
+
27
+// GetImgByLocation 根据位置获取轮播图信息
28
+func (m *MessageDAO) GetImgByLocation(orgid, locationid string) ([]model.TaCmsImages, error) {
29
+	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
+	return imgs, err
32
+}
33
+
34
+// GetImgByID 根据ID获取轮播图信息
35
+func (m *MessageDAO) GetImgByID(imgid string) (*model.TaCmsImages, error) {
36
+	var imgs []model.TaCmsImages
37
+
38
+	err := m.db.Where("status=?", models.STATUS_NORMAL).And("image_id=?", imgid).Find(&imgs)
39
+	if err != nil {
40
+		return nil, err
41
+	}
42
+	if len(imgs) > 0 {
43
+		return &imgs[0], nil
44
+	}
45
+	return nil, nil
46
+}
47
+
48
+// AddCmsImg 保存轮播图
49
+func (m *MessageDAO) AddCmsImg(info model.TaCmsImages) (*model.TaCmsImages, error) {
50
+	info.ImageId = utils.GetGUID()
51
+	info.Status = models.STATUS_NORMAL
52
+	info.CreateDate = time.Now()
53
+	_, err := m.db.Insert(&info)
54
+	return &info, err
55
+}
56
+
57
+// UpdateCmsImg 修改
58
+func (m *MessageDAO) UpdateCmsImg(img model.TaCmsImages) error {
59
+	var cols = []string{
60
+		"image_url",
61
+		"forward_type",
62
+		"foward_url",
63
+		"foward_resource_id",
64
+		"sort",
65
+	}
66
+	_, err := m.db.Cols(cols...).Where("image_id=?", img.ImageId).Update(img)
67
+	return err
68
+}
69
+
70
+// DelCmsImg 删除
71
+func (m *MessageDAO) DelCmsImg(imgid string) error {
72
+	var info = model.TaCmsImages{
73
+		ImageId: imgid,
74
+		Status:  models.STATUS_DEL,
75
+	}
76
+	var cols = []string{
77
+		"status",
78
+	}
79
+	_, err := m.db.Cols(cols...).Where("image_id=?", info.ImageId).Update(info)
80
+	return err
81
+}

+ 81
- 0
models/message/message.go Целия файл

@@ -1,7 +1,10 @@
1 1
 package message
2 2
 
3 3
 import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
4 6
 	"spaceofcheng/services/utils"
7
+	"time"
5 8
 
6 9
 	"github.com/go-xorm/xorm"
7 10
 )
@@ -19,3 +22,81 @@ func NewMessageDAO(ctx *utils.Context) *MessageDAO {
19 22
 		db:  ctx.DB,
20 23
 	}
21 24
 }
25
+
26
+// GetCmsInfoList 获取消息列表
27
+func (m *MessageDAO) GetCmsInfoList(title, orgid string, page int, pageSize int) ([]model.TaCmsInfo, error) {
28
+	var cmsinfos []model.TaCmsInfo
29
+
30
+	dao := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid)
31
+	if title != "" {
32
+		dao.And("info_name like '%" + title + "%'")
33
+	}
34
+
35
+	err := dao.Limit(pageSize, page*pageSize).Desc("create_date").Find(&cmsinfos)
36
+	return cmsinfos, err
37
+}
38
+
39
+// GetCmsInfoListCount 消息列表
40
+func (m *MessageDAO) GetCmsInfoListCount(title, orgid string) (int, error) {
41
+	var cmsinfos []model.TaCmsInfo
42
+
43
+	dao := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid)
44
+	if title != "" {
45
+		dao.And("info_name like '%" + title + "%'")
46
+	}
47
+
48
+	err := dao.Find(&cmsinfos)
49
+	if err != nil {
50
+		return 0, err
51
+	}
52
+	return len(cmsinfos), nil
53
+}
54
+
55
+// GetCmsInfoByLocation 根据位置获取消息信息
56
+func (m *MessageDAO) GetCmsInfoByLocation(locationid, orgid string) ([]model.TaCmsInfo, error) {
57
+	var cmsinfos []model.TaCmsInfo
58
+
59
+	err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).And("location_id=?", locationid).Find(&cmsinfos)
60
+	return cmsinfos, err
61
+}
62
+
63
+// GetCmsInfoByID 获取单条消息记录
64
+func (m *MessageDAO) GetCmsInfoByID(id string) (*model.TaCmsInfo, error) {
65
+	var cmsinfos []model.TaCmsInfo
66
+	err := m.db.Where("status=?", models.STATUS_NORMAL).And("info_id=?", id).Find(&cmsinfos)
67
+	if err != nil {
68
+		return nil, err
69
+	}
70
+	return &cmsinfos[0], nil
71
+}
72
+
73
+// AddCmsInfo 新增消息记录
74
+func (m *MessageDAO) AddCmsInfo(cmsinfo model.TaCmsInfo) (*model.TaCmsInfo, error) {
75
+	cmsinfo.InfoId = utils.GetGUID()
76
+	cmsinfo.Status = models.STATUS_NORMAL
77
+	cmsinfo.CreateDate = time.Now()
78
+	_, err := m.db.Insert(&cmsinfo)
79
+	return &cmsinfo, err
80
+}
81
+
82
+// UpdateCmsInfo 修改
83
+func (m *MessageDAO) UpdateCmsInfo(cmsinfo model.TaCmsInfo) error {
84
+	var cols = []string{
85
+		"info_name",
86
+	}
87
+	_, err := m.db.Cols(cols...).Where("info_id=?", cmsinfo.InfoId).Update(cmsinfo)
88
+	return err
89
+}
90
+
91
+// DelCmsInfo 删除
92
+func (m *MessageDAO) DelCmsInfo(infoid string) error {
93
+	var info = model.TaCmsInfo{
94
+		InfoId: infoid,
95
+		Status: models.STATUS_DEL,
96
+	}
97
+	var cols = []string{
98
+		"status",
99
+	}
100
+	_, err := m.db.Cols(cols...).Where("info_id=?", info.InfoId).Update(info)
101
+	return err
102
+}

+ 134
- 0
models/message/news.go Целия файл

@@ -0,0 +1,134 @@
1
+package message
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/builder"
12
+)
13
+
14
+// CmsNewsInfo 咨询信息
15
+type CmsNewsInfo struct {
16
+	model.TaCmsNews `xorm:"extends"`
17
+	LocationNames   string
18
+	LocationIds     string
19
+}
20
+
21
+// GetNewsList 获取咨询列表
22
+func (m *MessageDAO) GetNewsList(locationid, orgid string, page int, pageSize int) ([]CmsNewsInfo, error) {
23
+	var news []CmsNewsInfo
24
+	sql := `select * from ta_cms_news new left join (
25
+		select b.news_id,GROUP_CONCAT(a.location_name) location_names,GROUP_CONCAT(a.location_id) location_ids 
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) +
27
+		` and b.org_id='` + orgid + `' group by b.news_id
28
+		) c on new.news_id = c.news_id and new.status>` + strconv.Itoa(models.STATUS_DEL) + ` and new.org_id='` + orgid + `'`
29
+
30
+	if locationid != "" {
31
+		sql += ` and new.news_id in (select news_id from ta_cms_location where location_id='` + locationid + `')`
32
+	}
33
+
34
+	sql = sql + " order by new.create_date desc limit " + strconv.Itoa(page*pageSize) + ", " + strconv.Itoa((page+1)*pageSize)
35
+
36
+	err := m.db.Sql(sql).Find(&news)
37
+	return news, err
38
+}
39
+
40
+// GetNewsListCount 获取咨询列表count
41
+func (m *MessageDAO) GetNewsListCount(locationid, orgid string) (int, error) {
42
+	var news []model.TaCmsNews
43
+	dao := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid)
44
+	if locationid != "" {
45
+		dao.In("news_id", builder.Select("news_id").From("ta_cms_location").Where(builder.Eq{"location_id": locationid}))
46
+	}
47
+	err := dao.Find(&news)
48
+	if err != nil {
49
+		return 0, nil
50
+	}
51
+	return len(news), nil
52
+}
53
+
54
+// GetNewsByLocation 根据位置获取咨询信息
55
+func (m *MessageDAO) GetNewsByLocation(locationid, orgid string) ([]model.TaCmsNews, error) {
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)
58
+	return news, err
59
+}
60
+
61
+// CmsNews 咨询详情
62
+type CmsNews struct {
63
+	model.TaCmsNews `xorm:"extends"`
64
+	NewsLocations   []model.TaCmsLocation
65
+}
66
+
67
+// GetNewsByID 获取咨询详情
68
+func (m *MessageDAO) GetNewsByID(newid string) (*CmsNews, error) {
69
+	var news []CmsNews
70
+	err := m.db.Where("news_id=?", newid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&news)
71
+	if err != nil {
72
+		return nil, err
73
+	}
74
+	if len(news) > 0 {
75
+		return &news[0], err
76
+	}
77
+	return nil, nil
78
+}
79
+
80
+// GetNewsLocationByID 根据咨询id获取咨询位置
81
+func (m *MessageDAO) GetNewsLocationByID(newsid string) ([]model.TaCmsLocation, error) {
82
+	var newslocation []model.TaCmsLocation
83
+	err := m.db.Where("news_id=?", newsid).Find(&newslocation)
84
+	return newslocation, err
85
+}
86
+
87
+// AddNews 新增咨询详细
88
+func (m *MessageDAO) AddNews(news model.TaCmsNews) (*model.TaCmsNews, error) {
89
+	news.NewsId = utils.GetGUID()
90
+	news.CreateDate = time.Now()
91
+	_, err := m.db.Insert(&news)
92
+	return &news, err
93
+}
94
+
95
+// DelNewsLocation 删除咨询与位置映射
96
+func (m *MessageDAO) DelNewsLocation(newsid string) error {
97
+	sql := "delete from ta_cms_location where news_id='" + newsid + "'"
98
+	_, err := m.db.Exec(sql)
99
+	return err
100
+}
101
+
102
+// SaveNewsLocation 保存咨询与位置映射
103
+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)
105
+	_, err := m.db.Exec(sql)
106
+	return err
107
+}
108
+
109
+// UpdateNews 编辑咨询详情
110
+func (m *MessageDAO) UpdateNews(news model.TaCmsNews) error {
111
+	var col = []string{
112
+		"image_url",
113
+		"forward_type",
114
+		"forward_url",
115
+		"forward_course_id",
116
+		"status",
117
+		"title",
118
+		"public_date",
119
+	}
120
+	_, err := m.db.Cols(col...).Where("news_id=?", news.NewsId).Update(news)
121
+	return err
122
+}
123
+
124
+// DelNews 删除咨询
125
+func (m *MessageDAO) DelNews(newsid string) error {
126
+	var news = model.TaCmsNews{}
127
+	news.Status = models.STATUS_DEL
128
+	news.NewsId = newsid
129
+	var cols = []string{
130
+		"status",
131
+	}
132
+	_, err := m.db.Cols(cols...).Where("user_id=?", news.NewsId).Update(news)
133
+	return err
134
+}

+ 1
- 0
models/model/ta_cms_case.go Целия файл

@@ -7,6 +7,7 @@ import (
7 7
 type TaCmsCase struct {
8 8
 	CmsCaseId     string    `xorm:"not null pk VARCHAR(64)"`
9 9
 	CaseId        string    `xorm:"VARCHAR(64)"`
10
+	Name          string    `xorm:"VARCHAR(128)"`
10 11
 	Title         string    `xorm:"VARCHAR(128)"`
11 12
 	DetailContent string    `xorm:"TEXT"`
12 13
 	IsAllCourse   int       `xorm:"comment('是否显示全部课程 0否1是') SMALLINT(6)"`

+ 2
- 3
models/model/ta_cms_case_course.go Целия файл

@@ -1,7 +1,6 @@
1 1
 package model
2 2
 
3 3
 type TaCmsCaseCourse struct {
4
-	CaseCourseId string `xorm:"not null pk VARCHAR(64)"`
5
-	CmsCaseId    string `xorm:"VARCHAR(64)"`
6
-	CourseId     string `xorm:"VARCHAR(64)"`
4
+	CmsCaseId string `xorm:"not null pk VARCHAR(64)"`
5
+	CourseId  string `xorm:"not null pk VARCHAR(64)"`
7 6
 }

+ 1
- 1
models/model/ta_cms_images.go Целия файл

@@ -16,5 +16,5 @@ type TaCmsImages struct {
16 16
 	CaseId           string    `xorm:"VARCHAR(64)"`
17 17
 	OrgId            string    `xorm:"VARCHAR(64)"`
18 18
 	CreateUser       string    `xorm:"VARCHAR(64)"`
19
-	CreateTime       time.Time `xorm:"DATETIME"`
19
+	CreateDate       time.Time `xorm:"DATETIME"`
20 20
 }

+ 2
- 4
models/model/ta_cms_location.go Целия файл

@@ -1,8 +1,6 @@
1 1
 package model
2 2
 
3 3
 type TaCmsLocation struct {
4
-	Cmsloactionid string `xorm:"not null pk VARCHAR(64)"`
5
-	LocationId    string `xorm:"VARCHAR(64)"`
6
-	NewsId        string `xorm:"VARCHAR(64)"`
7
-	Status        int    `xorm:"SMALLINT(6)"`
4
+	LocationId string `xorm:"VARCHAR(64)"`
5
+	NewsId     string `xorm:"VARCHAR(64)"`
8 6
 }

+ 1
- 1
models/model/ta_customer.go Целия файл

@@ -9,7 +9,7 @@ type TaCustomer struct {
9 9
 	OrgId         string    `xorm:"VARCHAR(64)"`
10 10
 	CustomerName  string    `xorm:"VARCHAR(50)"`
11 11
 	Name          string    `xorm:"VARCHAR(50)"`
12
-	Tel           string    `xorm:"VARCHAR(100)"`
12
+	Phone         string    `xorm:"VARCHAR(100)"`
13 13
 	Sex           int       `xorm:"SMALLINT(6)"`
14 14
 	Headimgurl    string    `xorm:"TEXT"`
15 15
 	RecommendId   string    `xorm:"VARCHAR(64)"`

+ 31
- 0
routers/common.go Целия файл

@@ -3,6 +3,7 @@ package routers
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5 5
 	"spaceofcheng/services/controllers/goods"
6
+	"spaceofcheng/services/controllers/message"
6 7
 	"spaceofcheng/services/controllers/user"
7 8
 
8 9
 	"github.com/astaxie/beego"
@@ -30,6 +31,36 @@ func getCommonRoutes() beego.LinkNamespace {
30 31
 		beego.NSRouter("/pwd/reset", &user.UserController{}, "put:ResetPassword"),
31 32
 		beego.NSRouter("/pwd/update", &user.UserController{}, "put:UpdatePassword"),
32 33
 
34
+		beego.NSRouter("/location", &message.MessageController{}, "get:GetLocations"),
35
+		beego.NSRouter("/location/:locationid", &message.MessageController{}, "get:GetLocationById"),
36
+		beego.NSRouter("/location", &message.MessageController{}, "post:SaveLocation"),
37
+		beego.NSRouter("/location", &message.MessageController{}, "put:SaveLocation"),
38
+		beego.NSRouter("/location/:locationid", &message.MessageController{}, "delete:DelLocation"),
39
+
40
+		beego.NSRouter("/cmsinfo", &message.MessageController{}, "get:GetCmsInfoList"),
41
+		beego.NSRouter("/cmsinfo/:infoid", &message.MessageController{}, "get:GetCmsInfoByID"),
42
+		beego.NSRouter("/cmsinfo", &message.MessageController{}, "post:SaveCmsInfo"),
43
+		beego.NSRouter("/cmsinfo", &message.MessageController{}, "put:SaveCmsInfo"),
44
+		beego.NSRouter("/cmsinfo/:infoid", &message.MessageController{}, "delete:DelCmsInfo"),
45
+
46
+		beego.NSRouter("/cmsimg", &message.MessageController{}, "get:GetImgList"),
47
+		beego.NSRouter("/cmsimg/:imgid", &message.MessageController{}, "get:GetImgByID"),
48
+		beego.NSRouter("/cmsimg", &message.MessageController{}, "post:SaveImage"),
49
+		beego.NSRouter("/cmsimg", &message.MessageController{}, "put:SaveImage"),
50
+		beego.NSRouter("/cmsimg/:imgid", &message.MessageController{}, "delete:DelImg"),
51
+
52
+		beego.NSRouter("/news", &message.MessageController{}, "get:GetNews"),
53
+		beego.NSRouter("/news/:newsid", &message.MessageController{}, "get:GetNewsByID"),
54
+		beego.NSRouter("/news", &message.MessageController{}, "post:SaveNews"),
55
+		beego.NSRouter("/news", &message.MessageController{}, "put:SaveNews"),
56
+		beego.NSRouter("/news/:newsid", &message.MessageController{}, "delete:DelNews"),
57
+
58
+		beego.NSRouter("/cmscase", &message.MessageController{}, "get:GetCmsCase"),
59
+		beego.NSRouter("/cmscase/:cmscaseid", &message.MessageController{}, "get:GetCmsCaseByID"),
60
+		beego.NSRouter("/cmscase", &message.MessageController{}, "post:SaveCmsCase"),
61
+		beego.NSRouter("/cmscase", &message.MessageController{}, "put:SaveCmsCase"),
62
+		beego.NSRouter("/cmscase/:cmscaseid", &message.MessageController{}, "delete:DelCmsCase"),
63
+
33 64
 		beego.NSRouter("/file", &controllers.BaseController{}, "post:FileUpload"),
34 65
 	)
35 66
 }

+ 17
- 0
routers/guest.go Целия файл

@@ -1 +1,18 @@
1 1
 package routers
2
+
3
+import (
4
+	"spaceofcheng/services/controllers/message"
5
+
6
+	"github.com/astaxie/beego"
7
+)
8
+
9
+func getGuestRoutes() beego.LinkNamespace {
10
+	prefix := beego.AppConfig.String("api::guest")
11
+
12
+	return beego.NSNamespace(prefix,
13
+		beego.NSRouter("/cmsinfo", &message.MessageController{}, "get:GetCmsInfoByLocation"),
14
+		beego.NSRouter("/cmsimg", &message.MessageController{}, "get:GetImgByLocation"),
15
+		beego.NSRouter("/cmsnews", &message.MessageController{}, "get:GetNewsByLocation"),
16
+		beego.NSRouter("/cmscase", &message.MessageController{}, "get:GetCmsCaseList"),
17
+	)
18
+}

+ 3
- 0
routers/router.go Целия файл

@@ -22,6 +22,9 @@ func init() {
22 22
 
23 23
 		// 通用需要鉴权路由
24 24
 		getCommonRoutes(),
25
+
26
+		// 不需要鉴权的路由
27
+		getGuestRoutes(),
25 28
 	)
26 29
 
27 30
 	beego.AddNamespace(ns)

+ 20
- 0
service/cases/cases.go Целия файл

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

+ 44
- 0
service/cases/tag.go Целия файл

@@ -0,0 +1,44 @@
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models/cases"
5
+	"spaceofcheng/services/service"
6
+)
7
+
8
+// GetTagList 获取tag列表
9
+func (s *CaseServ) GetTagList(caseids string, page, pageSize int) (map[string]interface{}, error) {
10
+	if pageSize == 0 {
11
+		pageSize = service.PAGENUM
12
+	}
13
+	tags, err := s.dao.GetTagList(caseids, page, pageSize)
14
+	if err != nil {
15
+		return nil, err
16
+	}
17
+	total, err := s.dao.GetTagCount(caseids)
18
+	if err != nil {
19
+		return nil, err
20
+	}
21
+
22
+	return map[string]interface{}{
23
+		"list":     tags,
24
+		"pagesize": pageSize,
25
+		"pagenum":  total,
26
+		"page":     page,
27
+	}, err
28
+}
29
+
30
+// GetTagByID 根据ID获取标签
31
+func (s *CaseServ) GetTagByID(tagid string) (*cases.Tag, error) {
32
+	tag, err := s.dao.GetTagByID(tagid)
33
+	if err != nil {
34
+		return nil, err
35
+	}
36
+	if tag != nil {
37
+		tagcases, err := s.dao.GetTagCaseByTagID(tagid)
38
+		if err != nil {
39
+			return nil, err
40
+		}
41
+		tag.TagCases = tagcases
42
+	}
43
+	return tag, err
44
+}

+ 127
- 0
service/message/cmscase.go Целия файл

@@ -0,0 +1,127 @@
1
+package message
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/message"
6
+	"spaceofcheng/services/models/model"
7
+	"spaceofcheng/services/service"
8
+	"strings"
9
+)
10
+
11
+// GetCmsCasesList 获取项目列表
12
+func (s *MessageServ) GetCmsCasesList(name, orgid string, page int, pageSize int) (map[string]interface{}, error) {
13
+	if pageSize == 0 {
14
+		pageSize = service.PAGENUM
15
+	}
16
+	infos, err := s.dao.GetCmsCaseList(name, orgid, page, pageSize)
17
+	if err != nil {
18
+		return nil, err
19
+	}
20
+	total, err := s.dao.GetCmsCaseListCount(name, orgid)
21
+	if err != nil {
22
+		return nil, err
23
+	}
24
+
25
+	return map[string]interface{}{
26
+		"list":     infos,
27
+		"pagesize": pageSize,
28
+		"pagenum":  total,
29
+		"page":     page,
30
+	}, err
31
+}
32
+
33
+// GetCmsCaseByOrg 获取项目列表
34
+func (s *MessageServ) GetCmsCaseByOrg(orgid string) ([]model.TaCmsCase, error) {
35
+	list, err := s.dao.GetCmsCaseByOrg(orgid)
36
+	return list, err
37
+}
38
+
39
+// GetCmsCasesByID 获取項目信息
40
+func (s *MessageServ) GetCmsCasesByID(cmscaseid string) (*message.CmsCase, error) {
41
+	var info = &message.CmsCase{}
42
+	var err error
43
+	info, err = s.dao.GetCmsCaseByID(cmscaseid)
44
+	if err != nil {
45
+		return nil, err
46
+	}
47
+	var course []model.TaCourse
48
+	if info.IsAllCourse == 1 {
49
+		course, err = s.dao.GetCourseByCaseID(info.CaseId)
50
+	} else {
51
+		course, err = s.dao.GetCoursesByCmsCase(info.CmsCaseId)
52
+	}
53
+	if err != nil {
54
+		return nil, err
55
+	}
56
+	info.Courses = course
57
+
58
+	imgs, err := s.dao.GetCmsCaseImgs(info.CmsCaseId)
59
+	if err != nil {
60
+		return nil, err
61
+	}
62
+	info.CmsCaseImgs = imgs
63
+	return info, nil
64
+}
65
+
66
+// SaveCmsCase 保存项目信息
67
+func (s *MessageServ) SaveCmsCase(cmscase model.TaCmsCase, courseids, imgs, detailimgs string) (*model.TaCmsCase, error) {
68
+	var newInfo *model.TaCmsCase
69
+	var err error
70
+	if cmscase.CmsCaseId == "" {
71
+		newInfo, err = s.dao.AddCmsCase(cmscase)
72
+	} else {
73
+		err = s.dao.UpdateCmsCase(cmscase)
74
+		newInfo = &cmscase
75
+	}
76
+	if err != nil {
77
+		return nil, err
78
+	}
79
+	err = s.dao.DelCmsCaseCourse(newInfo.CmsCaseId)
80
+	if err != nil {
81
+		return nil, err
82
+	}
83
+	if newInfo.IsAllCourse == 0 {
84
+		err = s.dao.SaveCmsCaseCourse(newInfo.CmsCaseId, courseids)
85
+		if err != nil {
86
+			return nil, err
87
+		}
88
+	}
89
+	err = s.dao.DelCmsCaseImg(newInfo.CmsCaseId)
90
+	if err != nil {
91
+		return nil, err
92
+	}
93
+
94
+	arrimg := strings.Split(imgs, ",")
95
+	for index, img := range arrimg {
96
+		CmsImg := model.TaCmsCaseImage{
97
+			ImageType:    models.IMAGETYPE_COVER,
98
+			Sort:         (index + 1),
99
+			CaseImageUrl: img,
100
+			CmsCaseId:    newInfo.CmsCaseId,
101
+		}
102
+		err = s.dao.SaveCmsCaseImg(CmsImg)
103
+		if err != nil {
104
+			return nil, err
105
+		}
106
+	}
107
+	arrdetailimg := strings.Split(detailimgs, ",")
108
+	for index, img := range arrdetailimg {
109
+		CmsImg := model.TaCmsCaseImage{
110
+			ImageType:    models.IMAGETYPE_DETAIL,
111
+			Sort:         (index + 1),
112
+			CaseImageUrl: img,
113
+			CmsCaseId:    newInfo.CmsCaseId,
114
+		}
115
+		err = s.dao.SaveCmsCaseImg(CmsImg)
116
+		if err != nil {
117
+			return nil, err
118
+		}
119
+	}
120
+	return newInfo, err
121
+}
122
+
123
+// DelCmsCase 刪除项目信息
124
+func (s *MessageServ) DelCmsCase(cmscaseid string) error {
125
+	err := s.dao.DelCmsCase(cmscaseid)
126
+	return err
127
+}

+ 56
- 0
service/message/image.go Целия файл

@@ -0,0 +1,56 @@
1
+package message
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/service"
6
+)
7
+
8
+// GetImgList 获取图片列表
9
+func (s *MessageServ) GetImgList(orgid string, page int, pageSize int) (map[string]interface{}, error) {
10
+	if pageSize == 0 {
11
+		pageSize = service.PAGENUM
12
+	}
13
+	infos, err := s.dao.GetImgList(orgid, page, pageSize)
14
+	if err != nil {
15
+		return nil, err
16
+	}
17
+	total, err := s.dao.GetImgListCount(orgid)
18
+	if err != nil {
19
+		return nil, err
20
+	}
21
+
22
+	return map[string]interface{}{
23
+		"list":     infos,
24
+		"pagesize": pageSize,
25
+		"pagenum":  total,
26
+		"page":     page,
27
+	}, err
28
+}
29
+
30
+// GetImgByLocation 根据位置获取图片
31
+func (s *MessageServ) GetImgByLocation(locationid, orgid string) ([]model.TaCmsImages, error) {
32
+	imgs, err := s.dao.GetImgByLocation(locationid, orgid)
33
+	return imgs, err
34
+}
35
+
36
+// GetImgByID 获取单条图片信息
37
+func (s *MessageServ) GetImgByID(imgid string) (*model.TaCmsImages, error) {
38
+	img, err := s.dao.GetImgByID(imgid)
39
+	return img, err
40
+}
41
+
42
+// SaveImg 保存轮播图信息
43
+func (s *MessageServ) SaveImg(imginfo model.TaCmsImages) (*model.TaCmsImages, error) {
44
+	if imginfo.ImageId == "" {
45
+		newinfo, err := s.dao.AddCmsImg(imginfo)
46
+		return newinfo, err
47
+	}
48
+	err := s.dao.UpdateCmsImg(imginfo)
49
+	return &imginfo, err
50
+}
51
+
52
+// DelImg 删除轮播图
53
+func (s *MessageServ) DelImg(imgid string) error {
54
+	err := s.dao.DelCmsImg(imgid)
55
+	return err
56
+}

+ 48
- 1
service/message/message.go Целия файл

@@ -2,6 +2,8 @@ package message
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/models/message"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service"
5 7
 	"spaceofcheng/services/utils"
6 8
 )
7 9
 
@@ -20,6 +22,51 @@ func NewMessageServ(ctx *utils.Context) *MessageServ {
20 22
 }
21 23
 
22 24
 // GetCmsInfoList 获取消息管理列表
23
-func (s *MessageServ) GetCmsInfoList() {
25
+func (s *MessageServ) GetCmsInfoList(title, orgid string, page int, pageSize int) (map[string]interface{}, error) {
26
+	if pageSize == 0 {
27
+		pageSize = service.PAGENUM
28
+	}
29
+	infos, err := s.dao.GetCmsInfoList(title, orgid, page, pageSize)
30
+	if err != nil {
31
+		return nil, err
32
+	}
33
+	total, err := s.dao.GetCmsInfoListCount(title, orgid)
34
+	if err != nil {
35
+		return nil, err
36
+	}
37
+
38
+	return map[string]interface{}{
39
+		"list":     infos,
40
+		"pagesize": pageSize,
41
+		"pagenum":  total,
42
+		"page":     page,
43
+	}, err
44
+}
45
+
46
+// GetCmsInfoByLocation 根据位置ID获取消息列表
47
+func (s *MessageServ) GetCmsInfoByLocation(locationid, orgid string) ([]model.TaCmsInfo, error) {
48
+	infos, err := s.dao.GetCmsInfoByLocation(locationid, orgid)
49
+	return infos, err
50
+}
51
+
52
+// GetCmsInfoByID 获取单条消息信息
53
+func (s *MessageServ) GetCmsInfoByID(id string) (*model.TaCmsInfo, error) {
54
+	info, err := s.dao.GetCmsInfoByID(id)
55
+	return info, err
56
+}
57
+
58
+// SaveCmsInfo 保存消息信息
59
+func (s *MessageServ) SaveCmsInfo(cmsinfo model.TaCmsInfo) (*model.TaCmsInfo, error) {
60
+	if cmsinfo.InfoId == "" {
61
+		newcmsinfo, err := s.dao.AddCmsInfo(cmsinfo)
62
+		return newcmsinfo, err
63
+	}
64
+	err := s.dao.UpdateCmsInfo(cmsinfo)
65
+	return &cmsinfo, err
66
+}
24 67
 
68
+// DelCmsInfo 删除消息信息
69
+func (s *MessageServ) DelCmsInfo(infoid string) error {
70
+	err := s.dao.DelCmsInfo(infoid)
71
+	return err
25 72
 }

+ 79
- 0
service/message/news.go Целия файл

@@ -0,0 +1,79 @@
1
+package message
2
+
3
+import (
4
+	"spaceofcheng/services/models/message"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service"
7
+)
8
+
9
+// GetNewsList 获取咨询列表
10
+func (s *MessageServ) GetNewsList(locationid, orgid string, page int, pageSize int) (map[string]interface{}, error) {
11
+	if pageSize == 0 {
12
+		pageSize = service.PAGENUM
13
+	}
14
+	infos, err := s.dao.GetNewsList(locationid, orgid, page, pageSize)
15
+	if err != nil {
16
+		return nil, err
17
+	}
18
+	total, err := s.dao.GetNewsListCount(locationid, orgid)
19
+	if err != nil {
20
+		return nil, err
21
+	}
22
+
23
+	return map[string]interface{}{
24
+		"list":     infos,
25
+		"pagesize": pageSize,
26
+		"pagenum":  total,
27
+		"page":     page,
28
+	}, err
29
+}
30
+
31
+// GetNewsByLocation 根据位置id获取咨询信息
32
+func (s *MessageServ) GetNewsByLocation(locationid, orgid string) ([]model.TaCmsNews, error) {
33
+	news, err := s.dao.GetNewsByLocation(locationid, orgid)
34
+	return news, err
35
+}
36
+
37
+// GetNewsByID 获取咨询详情
38
+func (s *MessageServ) GetNewsByID(newsid string) (*message.CmsNews, error) {
39
+	info, err := s.dao.GetNewsByID(newsid)
40
+	if err != nil {
41
+		return nil, err
42
+	}
43
+	newslocation, err := s.dao.GetNewsLocationByID(newsid)
44
+	if err != nil {
45
+		return nil, err
46
+	}
47
+	info.NewsLocations = newslocation
48
+	return info, nil
49
+}
50
+
51
+// SaveNews 保存咨询信息
52
+func (s *MessageServ) SaveNews(news model.TaCmsNews, locationids string) (*model.TaCmsNews, error) {
53
+	var newInfo *model.TaCmsNews
54
+	var err error
55
+	if news.NewsId == "" {
56
+		newInfo, err = s.dao.AddNews(news)
57
+	} else {
58
+		err = s.dao.UpdateNews(news)
59
+		newInfo = &news
60
+	}
61
+	if err != nil {
62
+		return nil, err
63
+	}
64
+	err = s.dao.DelNewsLocation(newInfo.NewsId)
65
+	if err != nil {
66
+		return nil, err
67
+	}
68
+	err = s.dao.SaveNewsLocation(newInfo.NewsId, locationids)
69
+	if err != nil {
70
+		return nil, err
71
+	}
72
+	return newInfo, err
73
+}
74
+
75
+// DelNews 刪除咨询信息
76
+func (s *MessageServ) DelNews(newsid string) error {
77
+	err := s.dao.DelNews(newsid)
78
+	return err
79
+}