浏览代码

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

wangfei 6 年前
父节点
当前提交
aa439170ff
共有 4 个文件被更改,包括 211 次插入11 次删除
  1. 114
    0
      controllers/gymcard/gymcard.go
  2. 18
    0
      models/gymcard/gymcard.go
  3. 1
    0
      models/model/ta_coupon_give_record.go
  4. 78
    11
      service/gymcard/gymcard.go

+ 114
- 0
controllers/gymcard/gymcard.go 查看文件

@@ -0,0 +1,114 @@
1
+package gymcard
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	gym "spaceofcheng/services/models/gymcard"
6
+	"spaceofcheng/services/models/model"
7
+	"spaceofcheng/services/service/gymcard"
8
+)
9
+
10
+// GymcardController 信息
11
+type GymcardController struct {
12
+	dao *gymcard.GymcardServ
13
+	controllers.BaseController
14
+}
15
+
16
+// Constructor 初始化 Controller
17
+// @Title Constructor
18
+// @Description 初始化 Controller, 系统自动调用
19
+func (c *GymcardController) Constructor() {
20
+	c.dao = gymcard.NewGymcardServ(c.Context)
21
+}
22
+
23
+// GetGymcardList 后台获取游泳健身卡列表
24
+func (c *GymcardController) GetGymcardList() {
25
+	caseIDs := c.GetString("caseid")
26
+	if caseIDs == "" {
27
+		cases := c.Context.Get("cases").([]model.SysUserCase)
28
+		caseIDs = c.GetCaseIDs(cases)
29
+	}
30
+	page, _ := c.GetInt("page")
31
+	pageSize, _ := c.GetInt("pagesize")
32
+	list, err := c.dao.GetGymcardList(caseIDs, page, pageSize)
33
+	if err != nil {
34
+		c.ResponseError(err)
35
+	}
36
+	c.ResponseJSON(list)
37
+}
38
+
39
+// GetGymcardListByCustomerId 根据客户id获取C端客户所有的健身卡
40
+func (c *GymcardController) GetGymcardListByCustomerId() {
41
+	page, _ := c.GetInt("page")
42
+	pageSize, _ := c.GetInt("pagesize")
43
+	list, err := c.dao.GetCustomerGymBycustomerId(page, pageSize)
44
+	if err != nil {
45
+		c.ResponseError(err)
46
+	}
47
+	c.ResponseJSON(list)
48
+}
49
+
50
+// GetGymcardDetailbyId 根据游泳健身卡ID获取游泳健身卡详情
51
+func (c *GymcardController) GetGymcardDetailbyId() {
52
+	id := c.GetString("gymcardId")
53
+	gymcard, err := c.dao.GetGymcardDetailById(id)
54
+	if err != nil {
55
+		c.ResponseError(err)
56
+	}
57
+	c.ResponseJSON(gymcard)
58
+}
59
+
60
+// GetCustomerGymDetailById 根据客户健身卡ID获取客户健身卡详情
61
+func (c *GymcardController) GetCustomerGymDetailById() {
62
+	id := c.GetString("customerGymId")
63
+	customerGym, err := c.dao.GetCustomerGymDetailById(id)
64
+	if err != nil {
65
+		c.ResponseError(err)
66
+	}
67
+	c.ResponseJSON(customerGym)
68
+}
69
+
70
+// GetCustomerGymByPhone 根据客户手机获取客户可用的游泳健身卡
71
+func (c *GymcardController) GetCustomerGymByPhone() {
72
+	phone := c.GetString("phone")
73
+	customerGym, err := c.dao.GetCustomerGymByPhone(phone)
74
+	if err != nil {
75
+		c.ResponseError(err)
76
+	}
77
+	c.ResponseJSON(customerGym)
78
+}
79
+
80
+// SaveGymcard 保存游泳健身卡
81
+func (c *GymcardController) SaveGymcard() {
82
+	gymCard := gym.Gymcard{}
83
+	if err := c.ParseForm(&gymCard); err != nil {
84
+		c.ResponseError(err)
85
+	}
86
+	newGymcard, err := c.dao.SaveGymcard(gymCard)
87
+	if err != nil {
88
+		c.ResponseError(err)
89
+	}
90
+	c.ResponseJSON(newGymcard)
91
+}
92
+
93
+// SendGymToCustomer 客户领卡
94
+func (c *GymcardController) SendGymToCustomer() {
95
+	gymcardId := c.GetString("gymcardId")
96
+	sysuserId := c.GetString("sysuserId")
97
+	customerGym, err := c.dao.SendGymCardToUser(gymcardId, sysuserId)
98
+	if err != nil {
99
+		c.ResponseError(err)
100
+	}
101
+	c.ResponseJSON(customerGym)
102
+}
103
+
104
+// VerifyCustomerGymcard 核销客户健身卡
105
+func (c *GymcardController) VerifyCustomerGymcard() {
106
+	cases := c.Context.Get("cases").([]model.SysUserCase)
107
+	caseids := c.GetCaseIDs(cases)
108
+	customerGymId := c.GetString("customerGymId")
109
+	err := c.dao.UpdateCustomerGym(customerGymId, caseids)
110
+	if err != nil {
111
+		c.ResponseError(err)
112
+	}
113
+	c.ResponseJSON("核销成功")
114
+}

+ 18
- 0
models/gymcard/gymcard.go 查看文件

@@ -180,6 +180,15 @@ func (m *GymcardDAO) DeleteCardShare(gymcardId string) error {
180 180
 	_, err := m.db.Cols(cols...).Where("gym_card_id = ?", cardShare.GymCardId).Update(cardShare)
181 181
 	return err
182 182
 }
183
+func (m *GymcardDAO) EditGymcard(gymcard *model.TaGymCard) error {
184
+	var cols = []string{
185
+		"sent_count",
186
+		"used_count",
187
+		"status",
188
+	}
189
+	_, err := m.db.Cols(cols...).Where("gym_card_id = ?", gymcard.GymCardId).Update(gymcard)
190
+	return err
191
+}
183 192
 
184 193
 // EditGymcardImg 修改健身卡图片
185 194
 func (m *GymcardDAO) EditGymcardImg(gymcardId, imgUrl string) error {
@@ -329,3 +338,12 @@ WHERE
329 338
 	err := m.db.Sql(sql).Find(&customerGym)
330 339
 	return customerGym[0], err
331 340
 }
341
+
342
+// AddGiveRecord 新增赠送记录
343
+func (m *GymcardDAO) AddGiveRecord(giveRecord *model.TaCouponGiveRecord) error {
344
+	giveRecord.CreateDate = time.Now()
345
+	giveRecord.RecId = utils.GetGUID()
346
+	giveRecord.GiftType = models.GIVE_GIFT_GYM
347
+	_, err := m.db.Insert(giveRecord)
348
+	return err
349
+}

+ 1
- 0
models/model/ta_coupon_give_record.go 查看文件

@@ -13,4 +13,5 @@ type TaCouponGiveRecord struct {
13 13
 	ToName     string    `xorm:"VARCHAR(255)"`
14 14
 	CreateDate time.Time `xorm:"DATETIME"`
15 15
 	Remark     string    `xorm:"VARCHAR(255)"`
16
+	CaseId     string    `xorm:"VARCHAR(64)"`
16 17
 }

+ 78
- 11
service/gymcard/gymcard.go 查看文件

@@ -3,6 +3,7 @@ package gymcard
3 3
 import (
4 4
 	"errors"
5 5
 	"spaceofcheng/services/models"
6
+	"spaceofcheng/services/models/customer"
6 7
 	"spaceofcheng/services/models/gymcard"
7 8
 	"spaceofcheng/services/models/model"
8 9
 	"spaceofcheng/services/service"
@@ -12,17 +13,21 @@ import (
12 13
 
13 14
 // GymcardServ 系统处理
14 15
 type GymcardServ struct {
15
-	ctx *utils.Context
16
-	dao *gymcard.GymcardDAO
16
+	ctx  *utils.Context
17
+	dao  *gymcard.GymcardDAO
18
+	cdao *customer.CustomerDAO
17 19
 }
18 20
 
19 21
 // NewGymcardServ 初始化
20 22
 func NewGymcardServ(ctx *utils.Context) *GymcardServ {
21 23
 	return &GymcardServ{
22
-		ctx: ctx,
23
-		dao: gymcard.NewGymcardDAO(ctx),
24
+		ctx:  ctx,
25
+		dao:  gymcard.NewGymcardDAO(ctx),
26
+		cdao: customer.NewCustomerDAO(ctx),
24 27
 	}
25 28
 }
29
+
30
+// GetGymcardList 根据案场id获取健身卡列表
26 31
 func (s *GymcardServ) GetGymcardList(caseid string, page, pageSize int) (map[string]interface{}, error) {
27 32
 	if pageSize == 0 {
28 33
 		pageSize = service.PAGENUM
@@ -44,16 +49,19 @@ func (s *GymcardServ) GetGymcardList(caseid string, page, pageSize int) (map[str
44 49
 		"page":     page,
45 50
 	}, nil
46 51
 }
47
-func (s *GymcardServ) GetCustomerGymBycustomerId(customerId string, page, pageSize int) (map[string]interface{}, error) {
52
+
53
+// GetCustomerGymBycustomerId 根据客户id获取客户所有健身卡列表
54
+func (s *GymcardServ) GetCustomerGymBycustomerId(page, pageSize int) (map[string]interface{}, error) {
55
+	customer := s.ctx.Get("customer").(model.TaCustomer)
48 56
 	if pageSize == 0 {
49 57
 		pageSize = service.PAGENUM
50 58
 	}
51
-	customerGym, err := s.dao.GetCustomerGymByCustomerId(customerId, page, pageSize)
59
+	customerGym, err := s.dao.GetCustomerGymByCustomerId(customer.CustomerId, page, pageSize)
52 60
 	if err != nil {
53 61
 		utils.LogError("获取健身卡列表失败:" + err.Error())
54 62
 		return nil, errors.New("获取健身卡列表失败")
55 63
 	}
56
-	total, err := s.dao.GetCustomerGymCountByCustomerId(customerId)
64
+	total, err := s.dao.GetCustomerGymCountByCustomerId(customer.CustomerId)
57 65
 	if err != nil {
58 66
 		utils.LogError("获取健身卡列表失败:" + err.Error())
59 67
 		return nil, errors.New("获取健身卡列表失败")
@@ -65,7 +73,19 @@ func (s *GymcardServ) GetCustomerGymBycustomerId(customerId string, page, pageSi
65 73
 		"page":     page,
66 74
 	}, nil
67 75
 }
68
-func (s *GymcardServ) GetGymcardDetailByIdZ(gymcardId string) (*gymcard.Gymcard, error) {
76
+
77
+// GetCustomerGymByPhone 根据用户手机号获取用户健身卡列表
78
+func (s *GymcardServ) GetCustomerGymByPhone(phone string) ([]gymcard.CustomerGym, error) {
79
+	customerGym, err := s.dao.GetCustomerGymByPhone(phone)
80
+	if err != nil {
81
+		utils.LogError("获取健身卡列表失败:" + err.Error())
82
+		return nil, errors.New("获取健身卡列表失败")
83
+	}
84
+	return customerGym, nil
85
+}
86
+
87
+// GetGymcardDetailById 根据id获取健身卡详情
88
+func (s *GymcardServ) GetGymcardDetailById(gymcardId string) (*gymcard.Gymcard, error) {
69 89
 	gymcard, err := s.dao.GetGymcardById(gymcardId)
70 90
 	if err != nil {
71 91
 		utils.LogError("获取健身卡详情失败" + err.Error())
@@ -74,6 +94,17 @@ func (s *GymcardServ) GetGymcardDetailByIdZ(gymcardId string) (*gymcard.Gymcard,
74 94
 	return gymcard, nil
75 95
 }
76 96
 
97
+// GetCustomerGymDetailById 根据id获取客户健身卡详情
98
+func (s *GymcardServ) GetCustomerGymDetailById(customerGymId string) (*gymcard.CustomerGym, error) {
99
+	customerGym, err := s.dao.GetCustomerGymById(customerGymId)
100
+	if err != nil {
101
+		utils.LogError("获取健身卡详情失败" + err.Error())
102
+		return nil, errors.New("获取健身卡详情失败")
103
+	}
104
+	return &customerGym, err
105
+}
106
+
107
+// SaveGymcard 保存游泳健身卡
77 108
 func (s *GymcardServ) SaveGymcard(newGym gymcard.Gymcard) (*gymcard.Gymcard, error) {
78 109
 	var newGymCard model.TaGymCard
79 110
 	var cardGym model.TaGymCard
@@ -95,28 +126,59 @@ func (s *GymcardServ) SaveGymcard(newGym gymcard.Gymcard) (*gymcard.Gymcard, err
95 126
 	return &newGym, nil
96 127
 }
97 128
 
98
-func (s *GymcardServ) SendGymCardToUser(customerId, gymcardId string) (*model.TaCustomerGym, error) {
129
+// SendGymCardToUser 给客户发卡
130
+func (s *GymcardServ) SendGymCardToUser(gymcardId, sysuserId string) (*model.TaCustomerGym, error) {
99 131
 	var customerGym *model.TaCustomerGym
132
+	customer := s.ctx.Get("customer").(model.TaCustomer)
133
+	var sysuser *model.SysUser
134
+	var sendRecord *model.TaCouponGiveRecord
100 135
 	gymCard, err := s.dao.GetGymcardById(gymcardId)
101 136
 	if err != nil {
102 137
 		utils.LogError("发送游泳健身卡给客户失败" + err.Error())
103 138
 		return nil, errors.New("发送游泳健身卡给客户失败")
104 139
 	}
105
-	customerGym, err = s.dao.SendGymcardToCustomer(&gymCard.TaGymCard, customerId)
140
+	gymCard.SentCount = gymCard.SentCount + 1
141
+	customerGym, err = s.dao.SendGymcardToCustomer(&gymCard.TaGymCard, customer.CustomerId)
106 142
 	if err != nil {
107 143
 		utils.LogError("发送游泳健身卡给客户失败" + err.Error())
108 144
 		return nil, errors.New("发送游泳健身卡给客户失败")
109 145
 	}
146
+	sysuser, err = s.cdao.GetUserByID(sysuserId)
147
+	if err != nil {
148
+		utils.LogError("记录发健身卡记录失败" + err.Error())
149
+		return nil, errors.New("记录发健身卡记录失败")
150
+	}
151
+	sendRecord.FromId = sysuser.UserId
152
+	sendRecord.FromName = sysuser.RealName
153
+	sendRecord.GiftId = gymCard.GymCardId
154
+	sendRecord.GiftName = gymCard.GymCardName
155
+	sendRecord.ToId = customer.CustomerId
156
+	sendRecord.ToName = customer.CustomerName
157
+	err = s.dao.AddGiveRecord(sendRecord)
158
+	if err != nil {
159
+		utils.LogError("记录发健身卡记录失败" + err.Error())
160
+		return nil, errors.New("记录发健身卡记录失败")
161
+	}
162
+	err = s.dao.EditGymcard(&gymCard.TaGymCard)
163
+	if err != nil {
164
+		utils.LogError("记录发健身卡记录失败" + err.Error())
165
+		return nil, errors.New("记录发健身卡记录失败")
166
+	}
110 167
 	return customerGym, nil
111 168
 }
112 169
 
113
-func (s *GymcardServ) UpdateCustomerGym(customerGymId string) error {
170
+// UpdateCustomerGym 核销游泳健身卡
171
+func (s *GymcardServ) UpdateCustomerGym(customerGymId, caseid string) error {
114 172
 	var gymCard *gymcard.Gymcard
115 173
 	customerGym, err := s.dao.GetCustomerGymById(customerGymId)
116 174
 	if err != nil {
117 175
 		utils.LogError("核销游泳健身卡失败" + err.Error())
118 176
 		return errors.New("核销游泳健身卡失败")
119 177
 	}
178
+	if caseid != customerGym.CaseId {
179
+		utils.LogError("核销游泳健身卡失败")
180
+		return errors.New("您的健身卡不在本案场")
181
+	}
120 182
 	gymCard, err = s.dao.GetGymcardById(customerGym.GymCardId)
121 183
 	if err != nil {
122 184
 		utils.LogError("核销游泳健身卡失败" + err.Error())
@@ -151,6 +213,11 @@ func (s *GymcardServ) UpdateCustomerGym(customerGymId string) error {
151 213
 		utils.LogError("核销游泳健身卡失败" + err.Error())
152 214
 		return errors.New("核销游泳健身卡失败")
153 215
 	}
216
+	err = s.dao.EditGymcard(&gymCard.TaGymCard)
217
+	if err != nil {
218
+		utils.LogError("核销游泳健身卡失败" + err.Error())
219
+		return errors.New("核销游泳健身卡失败")
220
+	}
154 221
 	err = s.dao.AddGymcardUsage(customerGym.TaCustomerGym)
155 222
 	return err
156 223