wangfei 6 년 전
부모
커밋
4d9190e3ad

+ 52
- 0
controllers/message/cmscase.go 파일 보기

@@ -0,0 +1,52 @@
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
+// GetCmsCaseByID 获取明细
19
+func (c *MessageController) GetCmsCaseByID() {
20
+	cmscaseid := c.GetString(":cmscaseid")
21
+	cmscase, err := c.dao.GetCmsCasesByID(cmscaseid)
22
+	if err != nil {
23
+		c.ResponseError(err)
24
+	}
25
+	c.ResponseJSON(cmscase)
26
+}
27
+
28
+// SaveCmsCase 保存项目
29
+func (c *MessageController) SaveCmsCase() {
30
+	cmscase := model.TaCmsCase{}
31
+	if err := c.ParseForm(&cmscase); err != nil {
32
+		c.ResponseError(err)
33
+	}
34
+	courseids := c.GetString("courseids")
35
+	imgs := c.GetString("imgs")
36
+	detailimgs := c.GetString("detailimgs")
37
+	newInfo, err := c.dao.SaveCmsCase(cmscase, courseids, imgs, detailimgs)
38
+	if err != nil {
39
+		c.ResponseError(err)
40
+	}
41
+	c.ResponseJSON(newInfo)
42
+}
43
+
44
+// DelCmsCase 删除项目
45
+func (c *MessageController) DelCmsCase() {
46
+	cmscaseid := c.GetString(":cmscaseid")
47
+	err := c.dao.DelCmsCase(cmscaseid)
48
+	if err != nil {
49
+		c.ResponseError(err)
50
+	}
51
+	c.ResponseJSON("删除成功!")
52
+}

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

+ 5
- 0
models/constant.go 파일 보기

@@ -4,3 +4,8 @@ const (
4 4
 	STATUS_NORMAL = 1
5 5
 	STATUS_DEL    = -1
6 6
 )
7
+
8
+const (
9
+	IMAGETYPE_COVER  = "cover"
10
+	IMAGETYPE_DETAIL = "detail"
11
+)

+ 147
- 0
models/message/cmscase.go 파일 보기

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

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

+ 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)"`

+ 6
- 0
routers/common.go 파일 보기

@@ -49,6 +49,12 @@ func getCommonRoutes() beego.LinkNamespace {
49 49
 		beego.NSRouter("/cmsimg", &message.MessageController{}, "put:SaveImage"),
50 50
 		beego.NSRouter("/cmsimg/:imgid", &message.MessageController{}, "delete:DelImg"),
51 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
+
52 58
 		beego.NSRouter("/file", &controllers.BaseController{}, "post:FileUpload"),
53 59
 	)
54 60
 }

+ 1
- 0
routers/guest.go 파일 보기

@@ -12,5 +12,6 @@ func getGuestRoutes() beego.LinkNamespace {
12 12
 	return beego.NSNamespace(prefix,
13 13
 		beego.NSRouter("/cmsinfo", &message.MessageController{}, "get:GetCmsInfoByLocation"),
14 14
 		beego.NSRouter("/cmsimg", &message.MessageController{}, "get:GetImgByLocation"),
15
+		beego.NSRouter("/cmsnews", &message.MessageController{}, "get:GetNewsByLocation"),
15 16
 	)
16 17
 }

+ 121
- 0
service/message/cmscase.go 파일 보기

@@ -0,0 +1,121 @@
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
+// GetCmsCasesByID 获取項目信息
34
+func (s *MessageServ) GetCmsCasesByID(cmscaseid string) (*message.CmsCase, error) {
35
+	var info = &message.CmsCase{}
36
+	var err error
37
+	info, err = s.dao.GetCmsCaseByID(cmscaseid)
38
+	if err != nil {
39
+		return nil, err
40
+	}
41
+	var course []model.TaCourse
42
+	if info.IsAllCourse == 1 {
43
+		course, err = s.dao.GetCourseByCaseID(info.CaseId)
44
+	} else {
45
+		course, err = s.dao.GetCoursesByCmsCase(info.CmsCaseId)
46
+	}
47
+	if err != nil {
48
+		return nil, err
49
+	}
50
+	info.Courses = course
51
+
52
+	imgs, err := s.dao.GetCmsCaseImgs(info.CmsCaseId)
53
+	if err != nil {
54
+		return nil, err
55
+	}
56
+	info.CmsCaseImgs = imgs
57
+	return info, nil
58
+}
59
+
60
+// SaveCmsCase 保存项目信息
61
+func (s *MessageServ) SaveCmsCase(cmscase model.TaCmsCase, courseids, imgs, detailimgs string) (*model.TaCmsCase, error) {
62
+	var newInfo *model.TaCmsCase
63
+	var err error
64
+	if cmscase.CmsCaseId == "" {
65
+		newInfo, err = s.dao.AddCmsCase(cmscase)
66
+	} else {
67
+		err = s.dao.UpdateCmsCase(cmscase)
68
+		newInfo = &cmscase
69
+	}
70
+	if err != nil {
71
+		return nil, err
72
+	}
73
+	err = s.dao.DelCmsCaseCourse(newInfo.CmsCaseId)
74
+	if err != nil {
75
+		return nil, err
76
+	}
77
+	if newInfo.IsAllCourse == 0 {
78
+		err = s.dao.SaveCmsCaseCourse(newInfo.CmsCaseId, courseids)
79
+		if err != nil {
80
+			return nil, err
81
+		}
82
+	}
83
+	err = s.dao.DelCmsCaseImg(newInfo.CmsCaseId)
84
+	if err != nil {
85
+		return nil, err
86
+	}
87
+
88
+	arrimg := strings.Split(imgs, ",")
89
+	for index, img := range arrimg {
90
+		CmsImg := model.TaCmsCaseImage{
91
+			ImageType:    models.IMAGETYPE_COVER,
92
+			Sort:         (index + 1),
93
+			CaseImageUrl: img,
94
+			CmsCaseId:    newInfo.CmsCaseId,
95
+		}
96
+		err = s.dao.SaveCmsCaseImg(CmsImg)
97
+		if err != nil {
98
+			return nil, err
99
+		}
100
+	}
101
+	arrdetailimg := strings.Split(detailimgs, ",")
102
+	for index, img := range arrdetailimg {
103
+		CmsImg := model.TaCmsCaseImage{
104
+			ImageType:    models.IMAGETYPE_DETAIL,
105
+			Sort:         (index + 1),
106
+			CaseImageUrl: img,
107
+			CmsCaseId:    newInfo.CmsCaseId,
108
+		}
109
+		err = s.dao.SaveCmsCaseImg(CmsImg)
110
+		if err != nil {
111
+			return nil, err
112
+		}
113
+	}
114
+	return newInfo, err
115
+}
116
+
117
+// DelCmsCase 刪除项目信息
118
+func (s *MessageServ) DelCmsCase(cmscaseid string) error {
119
+	err := s.dao.DelCmsCase(cmscaseid)
120
+	return err
121
+}

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