Browse Source

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

wangfei 6 years ago
parent
commit
5b6ba4b62e

+ 66
- 0
controllers/channel/channel.go View File

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

+ 97
- 0
models/channel/channel.go View File

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

+ 94
- 0
models/vipcard/vipcard.go View File

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

+ 7
- 0
routers/common.go View File

@@ -3,6 +3,7 @@ package routers
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5 5
 	"spaceofcheng/services/controllers/cases"
6
+	"spaceofcheng/services/controllers/channel"
6 7
 	"spaceofcheng/services/controllers/course"
7 8
 	"spaceofcheng/services/controllers/customer"
8 9
 	"spaceofcheng/services/controllers/goods"
@@ -125,6 +126,12 @@ func getCommonRoutes() beego.LinkNamespace {
125 126
 		beego.NSRouter("/case/table", &cases.CaseController{}, "put:SaveCaseTable"),
126 127
 		beego.NSRouter("/case/table/:tableid", &cases.CaseController{}, "delete:DelCaseTable"),
127 128
 
129
+		beego.NSRouter("/channel", &channel.ChannelController{}, "get:GetChannelList"),
130
+		beego.NSRouter("/channel/:channelId", &channel.ChannelController{}, "get:GetChannelById"),
131
+		beego.NSRouter("/channel", &channel.ChannelController{}, "post:SaveChannel"),
132
+		beego.NSRouter("/channel", &channel.ChannelController{}, "put:SaveChannel"),
133
+		beego.NSRouter("/channel/:channelId", &channel.ChannelController{}, "delete:DeleteChannel"),
134
+
128 135
 		// role 角色
129 136
 		beego.NSRouter("/role", &system.RoleController{}, "get:GetRoleList"),
130 137
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "get:GetRoleByID"),

+ 68
- 0
service/channel/channel.go View File

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

+ 20
- 0
service/vipcard/vipcard.go View File

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