胡轶钦 6 jaren geleden
bovenliggende
commit
65541ded68

+ 79
- 0
controllers/verify/verify.go Bestand weergeven

@@ -0,0 +1,79 @@
1
+package verify
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service/verify"
7
+)
8
+
9
+// CaseController 信息
10
+type VerifyController struct {
11
+	dao *verify.VerifyServ
12
+	controllers.BaseController
13
+}
14
+
15
+// Constructor 初始化 Controller
16
+// @Title Constructor
17
+// @Description 初始化 Controller, 系统自动调用
18
+func (c *VerifyController) Constructor() {
19
+	c.dao = verify.NewVerifyServ(c.Context)
20
+}
21
+func (c *VerifyController) GetCustomerCourseDetailListById() {
22
+	customerCourseId := c.GetString("customerCourseId")
23
+	caseid := c.GetString("caseid")
24
+	page, _ := c.GetInt("page")
25
+	pageSize, _ := c.GetInt("pagesize")
26
+	list, err := c.dao.GetCustomerCourseDetailById(customerCourseId, caseid, page, pageSize)
27
+	if err != nil {
28
+		c.ResponseError(err)
29
+	}
30
+	c.ResponseJSON(list)
31
+
32
+}
33
+
34
+func (c *VerifyController) GetCustomerCourseDetailListBytel() {
35
+	caseid := c.GetString("caseid")
36
+	tel := c.GetString("tel")
37
+	page, _ := c.GetInt("page")
38
+	pageSize, _ := c.GetInt("pagesize")
39
+	list, err := c.dao.GetCustomerCourseDetailByTel(tel, caseid, page, pageSize)
40
+	if err != nil {
41
+		c.ResponseError(err)
42
+	}
43
+	c.ResponseJSON(list)
44
+
45
+}
46
+
47
+func (c *VerifyController) VerifyCourse() {
48
+	customerCourseDetail := model.TaCustomerCourseDetail{}
49
+	sysUser := c.Context.Get("user").(model.SysUser)
50
+	userId := sysUser.UserId
51
+	if err := c.ParseForm(&customerCourseDetail); err != nil {
52
+		c.ResponseError(err)
53
+	}
54
+	customerCard, err := c.dao.GetCustomerCardByDetailId(customerCourseDetail.CustomerDetailId)
55
+	if err != nil {
56
+		c.ResponseError(err)
57
+	}
58
+	customerCourse, err := c.dao.GetCustomerCourseByDetailId(customerCourseDetail.CustomerDetailId)
59
+	if err != nil {
60
+		c.ResponseError(err)
61
+	}
62
+	if customerCard.VerifyStatus == "usable" {
63
+		customerCard.VerifyStatus = "used"
64
+		err := c.dao.UpdateCustomerCard(customerCard)
65
+		if err != nil {
66
+			c.ResponseError(err)
67
+		}
68
+	}
69
+	err = c.dao.UpdateCustomerCourse(customerCourse)
70
+	if err != nil {
71
+		c.ResponseError(err)
72
+	}
73
+	err = c.dao.UpdateCustomerCourseDetail(&customerCourseDetail, userId)
74
+	if err != nil {
75
+		c.ResponseError(err)
76
+	}
77
+	c.ResponseJSON("核销成功")
78
+
79
+}

+ 1
- 1
models/channel/channel.go Bestand weergeven

@@ -46,7 +46,7 @@ func (m *ChannelDAO) GetChannels(caseid string, page int, pageSize int) ([]Chann
46 46
 	from ta_channel a 
47 47
 	inner join sys_case b on a.case_id = b.case_id 
48 48
 	where a.case_id in('` + strings.Replace(caseid, ",", "','", -1) + `') and b.status> ` + strconv.Itoa(models.STATUS_DEL) + ` and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
49
-	sql += ` order by a.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(page*pageSize)
49
+	sql += ` order by a.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
50 50
 	err := m.db.Sql(sql).Find(&channels)
51 51
 	return channels, err
52 52
 }

+ 0
- 3
models/model/ta_customer_card.go Bestand weergeven

@@ -11,9 +11,6 @@ type TaCustomerCard struct {
11 11
 	CustomerId       string    `xorm:"VARCHAR(64)"`
12 12
 	StartDate        time.Time `xorm:"DATETIME"`
13 13
 	EndDate          time.Time `xorm:"DATETIME"`
14
-	CourseNum        int       `xorm:"INT(11)"`
15
-	JoinNum          int       `xorm:"INT(11)"`
16
-	CardState        string    `xorm:"VARCHAR(64)"`
17 14
 	Status           int       `xorm:"SMALLINT(6)"`
18 15
 	ReceiveDate      time.Time `xorm:"DATETIME"`
19 16
 	VerifyDate       time.Time `xorm:"DATETIME"`

+ 118
- 232
models/verify/verify.go Bestand weergeven

@@ -1,11 +1,9 @@
1 1
 package verify
2 2
 
3 3
 import (
4
-	"spaceofcheng/services/models"
5 4
 	"spaceofcheng/services/models/model"
6 5
 	"spaceofcheng/services/utils"
7 6
 	"strconv"
8
-	"time"
9 7
 
10 8
 	"github.com/go-xorm/xorm"
11 9
 )
@@ -24,267 +22,155 @@ func NewVerifyDAO(ctx *utils.Context) *VerifyDAO {
24 22
 	}
25 23
 }
26 24
 
27
-type verifyCourse struct {
28
-	targetId     string
29
-	caseId       string
30
-	caseName     string
31
-	locationName string
32
-	courseName   string
33
-	detailName   string
34
-	beginDate    time.Time
35
-	endDate      time.Time
36
-	courseType   string
25
+type MyCourse struct {
26
+	model.TaCustomerCourseDetail `xorm:"extends"`
27
+	caseName                     string
28
+	courseName                   string
29
+	detailName                   string
37 30
 }
38 31
 
39
-func (m *VerifyDAO) GetExperienceCardVerifyList(customerCardId string, page, pageSize int) ([]verifyCourse, error) {
40
-	var course []verifyCourse
32
+// GetCustomerCourseList 根据我的课程id获取我的课程详情
33
+func (m *VerifyDAO) GetCustomerCourseList(customerCourseId, caseid string, page int, pageSize int) ([]MyCourse, error) {
34
+	var courseList []MyCourse
41 35
 	sql := `SELECT
42
-	a.target_id,
43
-	g.case_name,
44
-	c.card_id,
45
-	f.location_name,
46
-	e.course_name,
47
-	d.detail_name,
48
-	d.begin_date,
49
-	d.end_date,
50
-	'card' as courseType 
36
+	a.*,
37
+	d.case_name,
38
+	b.course_name,	
39
+	c.detail_name
51 40
 FROM
52
-	ta_coupon_card_target a
53
-	INNER JOIN ta_coupon_card b ON a.card_id = b.card_id
54
-	INNER JOIN ta_customer_card c ON c.card_id = b.card_id
55
-	INNER JOIN ta_course_detail d ON d.detail_id = a.detail_id
56
-	INNER JOIN ta_course e ON d.course_id = e.course_id
57
-	INNER JOIN td_cms_image_location f ON e.location_id = f.location_id
58
-	INNER JOIN sys_case g ON g.case_id = c.case_id 
59
-WHERE
60
-	DATE_FORMAT( d.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW(), '%Y-%m-%d' )
61
-	AND c.customer_card_id = ` + customerCardId
62
-	sql = sql + " limit  " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(page*pageSize)
63
-	err := m.db.Sql(sql).Find(&course)
64
-	return course, err
41
+	ta_customer_course_detail a
42
+	INNER JOIN ta_customer_course b ON a.customer_course_id = b.customer_course_id
43
+	INNER JOIN ta_course_detail c ON c.detail_id = a.detail_id
44
+	INNER JOIN sys_case d ON d.case_id = a.case_id
45
+	WHERE DATE_FORMAT(a.start_date,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
46
+	AND a.customer_course_id = ` + customerCourseId + `
47
+	and b.case_id=` + caseid
48
+	sql = sql + " limit " + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
49
+	err := m.db.Sql(sql).Find(&courseList)
50
+	return courseList, err
65 51
 }
66 52
 
67
-func (m *VerifyDAO) GetExperienceCardVerifyListCount(customerCardId string) (int, error) {
68
-	var course []verifyCourse
53
+// GetCustomerCourseListCount 根据我的课程id获取我的课程详情数量
54
+func (m *VerifyDAO) GetCustomerCourseListCount(customerCourseId, caseid string) (int, error) {
55
+	var courseList []MyCourse
69 56
 	sql := `SELECT
70
-	a.target_id,
71
-	g.case_name,
72
-	c.card_id,
73
-	f.location_name,
74
-	e.course_name,
75
-	d.detail_name,
76
-	d.begin_date,
77
-	d.end_date,
78
-	'card' as courseType 
57
+	a.*,
58
+	d.case_name,
59
+	b.course_name,	
60
+	c.detail_name
79 61
 FROM
80
-	ta_coupon_card_target a
81
-	INNER JOIN ta_coupon_card b ON a.card_id = b.card_id
82
-	INNER JOIN ta_customer_card c ON c.card_id = b.card_id
83
-	INNER JOIN ta_course_detail d ON d.detail_id = a.detail_id
84
-	INNER JOIN ta_course e ON d.course_id = e.course_id
85
-	INNER JOIN td_cms_image_location f ON e.location_id = f.location_id
86
-	INNER JOIN sys_case g ON g.case_id = c.case_id 
87
-WHERE
88
-	DATE_FORMAT( d.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW(), '%Y-%m-%d' )
89
-	AND c.customer_card_id = ` + customerCardId
90
-	err := m.db.Sql(sql).Find(&course)
91
-	return len(course), err
62
+	ta_customer_course_detail a
63
+	INNER JOIN ta_customer_course b ON a.customer_course_id = b.customer_course_id
64
+	INNER JOIN ta_course_detail c ON c.detail_id = a.detail_id
65
+	INNER JOIN sys_case d ON d.case_id = a.case_id
66
+	WHERE DATE_FORMAT(a.start_date,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
67
+	AND a.customer_course_id = ` + customerCourseId + `
68
+	and b.case_id=` + caseid
69
+	err := m.db.Sql(sql).Find(&courseList)
70
+	return len(courseList), err
92 71
 }
93 72
 
94
-func (m *VerifyDAO) GetOrderCourseList(courseOrderId string, page, pageSize int) ([]verifyCourse, error) {
95
-	var course []verifyCourse
96
-	sql := `SELECT
97
-	a.orders_detail_id AS target_id,
98
-	b.case_id,
99
-	f.case_name,
100
-	e.location_name,
101
-	c.course_name,
102
-	d.detail_name,
103
-	a.begin_date,
104
-	a.end_date,
105
-	'order' as courseType
106
-FROM
107
-	ta_course_orders_detail a
108
-	INNER JOIN ta_course_orders b ON a.orders_id = b.orders_id
109
-	INNER JOIN ta_course c ON b.course_id = c.course_id
110
-	INNER JOIN ta_course_detail d ON a.course_detail_id = d.detail_id
111
-	INNER JOIN td_cms_image_location e ON e.location_id = c.location_id
112
-	INNER JOIN sys_case f ON b.case_id = f.case_id 
113
-WHERE
114
-	DATE_FORMAT( a.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW( ), '%Y-%m-%d' )
115
-	AND b.orders_id = ` + courseOrderId
116
-	sql = sql + " limit  " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(page*pageSize)
117
-	err := m.db.Sql(sql).Find(&course)
118
-	return course, err
119
-
120
-}
121
-
122
-func (m *VerifyDAO) GetOrderCourseListCount(courseOrderId string) (int, error) {
123
-	var course []verifyCourse
124
-	sql := `SELECT
125
-	a.orders_detail_id AS target_id,
126
-	b.case_id,
127
-	f.case_name,
128
-	e.location_name,
129
-	c.course_name,
130
-	d.detail_name,
131
-	a.begin_date,
132
-	a.end_date,
133
-	'order' as courseType
134
-FROM
135
-	ta_course_orders_detail a
136
-	INNER JOIN ta_course_orders b ON a.orders_id = b.orders_id
137
-	INNER JOIN ta_course c ON b.course_id = c.course_id
138
-	INNER JOIN ta_course_detail d ON a.course_detail_id = d.detail_id
139
-	INNER JOIN td_cms_image_location e ON e.location_id = c.location_id
140
-	INNER JOIN sys_case f ON b.case_id = f.case_id 
141
-WHERE
142
-	DATE_FORMAT( a.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW( ), '%Y-%m-%d' )
143
-	AND b.orders_id = ` + courseOrderId
144
-	err := m.db.Sql(sql).Find(&course)
145
-	return len(course), err
73
+// UpdateCustomerCourseDetail 更新我的课程详情
74
+func (m *VerifyDAO) UpdateCustomerCourseDetail(customerCourse *model.TaCustomerCourseDetail) error {
75
+	var cols = []string{
76
+		"verify_status",
77
+		"verify_date",
78
+		"verify_user",
79
+	}
80
+	_, err := m.db.Cols(cols...).Where("customer_detail_id=?", customerCourse.CustomerDetailId).Update(customerCourse)
81
+	return err
146 82
 }
147 83
 
148
-func (m *VerifyDAO) GetCourseListByTel(tel string, page, pageSize int) ([]verifyCourse, error) {
149
-	var course []verifyCourse
84
+// GetCustomerCourseListByTel 根据客户电话获取我的课程详情
85
+func (m *VerifyDAO) GetCustomerCourseListByTel(tel, caseid string, page, pageSize int) ([]MyCourse, error) {
86
+	var courseList []MyCourse
150 87
 	sql := `SELECT
151
-	a.target_id,
152
-	g.case_name,
153
-	c.card_id,
154
-	f.location_name,
155
-	e.course_name,
156
-	d.detail_name,
157
-	d.begin_date,
158
-	d.end_date,
159
-	'card' as courseType 
160
-FROM
161
-	ta_coupon_card_target a
162
-	INNER JOIN ta_coupon_card b ON a.card_id = b.card_id
163
-	INNER JOIN ta_customer_card c ON c.card_id = b.card_id
164
-	INNER JOIN ta_course_detail d ON d.detail_id = a.detail_id
165
-	INNER JOIN ta_course e ON d.course_id = e.course_id
166
-	INNER JOIN td_cms_image_location f ON e.location_id = f.location_id
167
-	INNER JOIN sys_case g ON g.case_id = c.case_id 
168
-	INNER JOIN ta_customer h ON c.customer_id = h.customer_id
169
-WHERE
170
-	DATE_FORMAT( d.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW(), '%Y-%m-%d' )
171
-	AND h.phone = ` + tel + `
172
-	union all
173
-	SELECT
174
-	a.orders_detail_id AS target_id,
175
-	b.case_id,
176
-	f.case_name,
177
-	e.location_name,
178
-	c.course_name,
179
-	d.detail_name,
180
-	a.begin_date,
181
-	a.end_date,
182
-	'order' as courseType
88
+	a.*,
89
+	d.case_name,
90
+	b.course_name,
91
+	c.detail_name
183 92
 FROM
184
-	ta_course_orders_detail a
185
-	INNER JOIN ta_course_orders b ON a.orders_id = b.orders_id
186
-	INNER JOIN ta_course c ON b.course_id = c.course_id
187
-	INNER JOIN ta_course_detail d ON a.course_detail_id = d.detail_id
188
-	INNER JOIN td_cms_image_location e ON e.location_id = c.location_id
189
-	INNER JOIN sys_case f ON b.case_id = f.case_id 
190
-	INNER JOIN ta_customer g ON b.customer_id = g.customer_id
191
-WHERE
192
-	DATE_FORMAT( a.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW( ), '%Y-%m-%d' )
193
-	AND g.phone = ` + tel
194
-	sql = sql + " limit  " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(page*pageSize)
195
-	err := m.db.Sql(sql).Find(&course)
196
-	return course, err
93
+	ta_customer_course_detail a
94
+	INNER JOIN ta_customer_course b ON a.customer_course_id = b.customer_course_id
95
+	INNER JOIN ta_course_detail c ON c.detail_id = a.detail_id
96
+	INNER JOIN sys_case d ON d.case_id = a.case_id
97
+	INNER JOIN ta_customer e ON b.customer_id = e.customer_id
98
+	WHERE DATE_FORMAT(a.start_date,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
99
+	AND e.phone = ` + tel + `
100
+	and b.case_id=` + caseid
101
+	sql = sql + " limit " + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
102
+	err := m.db.Sql(sql).Find(&courseList)
103
+	return courseList, err
197 104
 }
198 105
 
199
-func (m *VerifyDAO) GetCourseListByTelCount(tel string) (int, error) {
200
-	var course []verifyCourse
106
+// GetCustomerCourseListByTelCount 根据客户电话获取我的课程详情数量
107
+func (m *VerifyDAO) GetCustomerCourseListByTelCount(tel, caseid string) (int, error) {
108
+	var courseList []MyCourse
201 109
 	sql := `SELECT
202
-	a.target_id,
203
-	g.case_name,
204
-	c.card_id,
205
-	f.location_name,
206
-	e.course_name,
207
-	d.detail_name,
208
-	d.begin_date,
209
-	d.end_date,
210
-	'card' as courseType 
110
+	a.*,
111
+	d.case_name,
112
+	b.course_name,
113
+	c.detail_name
211 114
 FROM
212
-	ta_coupon_card_target a
213
-	INNER JOIN ta_coupon_card b ON a.card_id = b.card_id
214
-	INNER JOIN ta_customer_card c ON c.card_id = b.card_id
215
-	INNER JOIN ta_course_detail d ON d.detail_id = a.detail_id
216
-	INNER JOIN ta_course e ON d.course_id = e.course_id
217
-	INNER JOIN td_cms_image_location f ON e.location_id = f.location_id
218
-	INNER JOIN sys_case g ON g.case_id = c.case_id 
219
-	INNER JOIN ta_customer h ON c.customer_id = h.customer_id
220
-WHERE
221
-	DATE_FORMAT( d.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW(), '%Y-%m-%d' )
222
-	AND h.phone = ` + tel + `
223
-	union all
224
-	SELECT
225
-	a.orders_detail_id AS target_id,
226
-	b.case_id,
227
-	f.case_name,
228
-	e.location_name,
229
-	c.course_name,
230
-	d.detail_name,
231
-	a.begin_date,
232
-	a.end_date,
233
-	'order' as courseType
234
-FROM
235
-	ta_course_orders_detail a
236
-	INNER JOIN ta_course_orders b ON a.orders_id = b.orders_id
237
-	INNER JOIN ta_course c ON b.course_id = c.course_id
238
-	INNER JOIN ta_course_detail d ON a.course_detail_id = d.detail_id
239
-	INNER JOIN td_cms_image_location e ON e.location_id = c.location_id
240
-	INNER JOIN sys_case f ON b.case_id = f.case_id 
241
-	INNER JOIN ta_customer g ON b.customer_id = g.customer_id
242
-WHERE
243
-	DATE_FORMAT( a.begin_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW( ), '%Y-%m-%d' )
244
-	AND g.phone = ` + tel
245
-	err := m.db.Sql(sql).Find(&course)
246
-	return len(course), err
247
-}
248
-
249
-func (m *VerifyDAO) AddExperienceCardVerification(verify model.TaExperienceCardVerification) (*model.TaExperienceCardVerification, error) {
250
-	verify.ExperienceCardVerifyTime = time.Now()
251
-	verify.Status = models.STATUS_NORMAL
252
-	verify.ExperienceCardVerifyId = utils.GetGUID()
253
-	_, err := m.db.Insert(verify)
254
-	return &verify, err
255
-}
256
-
257
-func (m *VerifyDAO) updateExperienceCardTarget(verify model.TaCouponCardTarget) error {
258
-	var cols = []string{
259
-		"card_state",
260
-	}
261
-	_, err := m.db.Cols(cols...).Where("target_id=?", verify.TargetId).Update(verify)
262
-	return err
115
+	ta_customer_course_detail a
116
+	INNER JOIN ta_customer_course b ON a.customer_course_id = b.customer_course_id
117
+	INNER JOIN ta_course_detail c ON c.detail_id = a.detail_id
118
+	INNER JOIN sys_case d ON d.case_id = a.case_id
119
+	INNER JOIN ta_customer e ON b.customer_id = e.customer_id
120
+	WHERE DATE_FORMAT(a.start_date,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
121
+	AND e.phone = ` + tel + `
122
+	and b.case_id=` + caseid
123
+	err := m.db.Sql(sql).Find(&courseList)
124
+	return len(courseList), err
263 125
 }
264 126
 
265
-func (m *VerifyDAO) updateCustomerExperienceCard(verify model.TaCustomerCard) error {
127
+// UpdateCustomerCard 更新客户体验卡
128
+func (m *VerifyDAO) UpdateCustomerCard(customerCard *model.TaCustomerCard) error {
266 129
 	var cols = []string{
267
-		"card_state",
268
-		"join_num",
269 130
 		"verify_date",
131
+		"verify_status",
270 132
 	}
271
-	_, err := m.db.Cols(cols...).Where("customer_card_id=?", verify.CustomerCardId).Update(verify)
133
+	_, err := m.db.Cols(cols...).Where("customer_card_id=?", customerCard.CustomerCardId).Update(customerCard)
272 134
 	return err
273 135
 }
274 136
 
275
-func (m *VerifyDAO) updateCustomerOrderCourse(verify model.TaCourseOrders) error {
137
+// UpdateCustomerCourse 更新我的课程
138
+func (m *VerifyDAO) UpdateCustomerCourse(customerCourse *model.TaCustomerCourse) error {
276 139
 	var cols = []string{
277 140
 		"join_num",
141
+		"is_done",
278 142
 	}
279
-	_, err := m.db.Cols(cols...).Where("orders_id = ?", verify.OrdersId).Update(verify)
143
+	_, err := m.db.Cols(cols...).Where("customer_course_id=?", customerCourse.CustomerCourseId).Update(customerCourse)
280 144
 	return err
281 145
 }
282 146
 
283
-func (m *VerifyDAO) AddOrdersVerification(verify model.TaCourseVerifcation) (*model.TaCourseVerifcation, error) {
284
-	verify.CreateDate = time.Now()
285
-	verify.VerifcationId = utils.GetGUID()
286
-	verify.Status = models.STATUS_NORMAL
287
-	_, err := m.db.Insert(verify)
288
-	return &verify, err
147
+// GetCustomerCardByDetailId 根据我的课程详情ID查询用户体验卡
148
+func (m *VerifyDAO) GetCustomerCardByDetailId(detailId string) (*model.TaCustomerCard, error) {
149
+	var customerCard []model.TaCustomerCard
150
+	sql := `SELECT
151
+	a.* 
152
+FROM
153
+	ta_customer_card a
154
+	INNER JOIN ta_customer_course b ON a.customer_card_id = b.source_id 
155
+	
156
+	INNER JOIN ta_customer_course_detail c ON c.customer_course_id = b.customer_course_id
157
+WHERE  b.course_obtaim_type = 'card'
158
+and  c.customer_detail_id = ` + detailId
159
+	err := m.db.Sql(sql).Find(&customerCard)
160
+	return &customerCard[0], err
289 161
 
290 162
 }
163
+
164
+// GetCustomerCourseByDetailId 根据我的课程详情ID查询我的课程
165
+func (m *VerifyDAO) GetCustomerCourseByDetailId(detailId string) (*model.TaCustomerCourse, error) {
166
+	var customerCard []model.TaCustomerCourse
167
+	sql := `SELECT
168
+	a.* 
169
+FROM
170
+	ta_customer_course a
171
+	INNER JOIN ta_customer_course_detail b ON a.customer_course_id = b.customer_course_id 
172
+WHERE
173
+	b.customer_detail_id = ` + detailId
174
+	err := m.db.Sql(sql).Find(&customerCard)
175
+	return &customerCard[0], err
176
+}

+ 1
- 1
models/vipcard/vipcard.go Bestand weergeven

@@ -47,7 +47,7 @@ FROM
47 47
 WHERE
48 48
 	vcc.status > 0 ` + strconv.Itoa(models.STATUS_DEL) +
49 49
 		`AND sc.case_id IN('` + strings.Replace(caseid, ",", "','", -1) + `') `
50
-	sql = sql + " order by vc.create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(page*pageSize)
50
+	sql = sql + " order by vc.create_date desc limit " + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(pageSize)
51 51
 	err := m.db.Sql(sql).Find(&vipcards)
52 52
 	return vipcards, err
53 53
 }

+ 6
- 0
routers/common.go Bestand weergeven

@@ -10,6 +10,7 @@ import (
10 10
 	"spaceofcheng/services/controllers/message"
11 11
 	"spaceofcheng/services/controllers/system"
12 12
 	"spaceofcheng/services/controllers/user"
13
+	"spaceofcheng/services/controllers/verify"
13 14
 
14 15
 	"github.com/astaxie/beego"
15 16
 )
@@ -149,6 +150,11 @@ func getCommonRoutes() beego.LinkNamespace {
149 150
 		beego.NSRouter("/vipcard", &channel.ChannelController{}, "post:AddVipCard"),
150 151
 		beego.NSRouter("/vipcard/:vipCardChildCode", &channel.ChannelController{}, "put:userCharge"),
151 152
 
153
+		// courseVerify 核销课程
154
+		beego.NSRouter("/verify/:customerCourseId", &verify.VerifyController{}, "get:GetCustomerCourseDetailListById"),
155
+		beego.NSRouter("/verify/:tel", &verify.VerifyController{}, "get:GetCustomerCourseDetailListBytel"),
156
+		beego.NSRouter("/verify", &verify.VerifyController{}, "put:VerifyCourse"),
157
+
152 158
 		// role 角色
153 159
 		beego.NSRouter("/role", &system.RoleController{}, "get:GetRoleList"),
154 160
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "get:GetRoleByID"),

+ 140
- 0
service/verify/verify.go Bestand weergeven

@@ -0,0 +1,140 @@
1
+package verify
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/models/verify"
7
+	"spaceofcheng/services/service"
8
+	"spaceofcheng/services/utils"
9
+	"time"
10
+
11
+	"github.com/astaxie/beego"
12
+)
13
+
14
+// CaseServ 系统处理
15
+type VerifyServ struct {
16
+	ctx *utils.Context
17
+	dao *verify.VerifyDAO
18
+}
19
+
20
+// NewVerifyServ 初始化
21
+func NewVerifyServ(ctx *utils.Context) *VerifyServ {
22
+	return &VerifyServ{
23
+		ctx: ctx,
24
+		dao: verify.NewVerifyDAO(ctx),
25
+	}
26
+}
27
+
28
+// GetCustomerCourseDetailById 根据ID获取当日可核销课程
29
+func (s *VerifyServ) GetCustomerCourseDetailById(id, caseid string, page, pageSize int) (map[string]interface{}, error) {
30
+	if err := utils.NewAuthEngine(s.ctx).CheckCase(caseid); err != nil {
31
+		return nil, err
32
+	}
33
+	if pageSize == 0 {
34
+		pageSize = service.PAGENUM
35
+	}
36
+	if page == 0 {
37
+		page = 1
38
+	}
39
+	customerDetail, err := s.dao.GetCustomerCourseList(id, caseid, page, pageSize)
40
+	if err != nil {
41
+		beego.Error(err)
42
+		return nil, err
43
+	}
44
+	total, err := s.dao.GetCustomerCourseListCount(id, caseid)
45
+	if err != nil {
46
+		beego.Error(err)
47
+		return nil, err
48
+	}
49
+	return map[string]interface{}{
50
+		"list":     customerDetail,
51
+		"pagesize": pageSize,
52
+		"pagenum":  total,
53
+		"page":     page,
54
+	}, err
55
+}
56
+
57
+// GetCustomerCourseDetailByTel根据电话号码获取当日可核销课程
58
+func (s *VerifyServ) GetCustomerCourseDetailByTel(tel, caseid string, page, pageSize int) (map[string]interface{}, error) {
59
+	if err := utils.NewAuthEngine(s.ctx).CheckCase(caseid); err != nil {
60
+		return nil, err
61
+	}
62
+	if pageSize == 0 {
63
+		pageSize = service.PAGENUM
64
+	}
65
+	if page == 0 {
66
+		page = 1
67
+	}
68
+	customerDetail, err := s.dao.GetCustomerCourseListByTel(tel, caseid, page, pageSize)
69
+	if err != nil {
70
+		beego.Error(err)
71
+		return nil, err
72
+	}
73
+	total, err := s.dao.GetCustomerCourseListByTelCount(tel, caseid)
74
+	if err != nil {
75
+		beego.Error(err)
76
+		return nil, err
77
+	}
78
+	return map[string]interface{}{
79
+		"list":     customerDetail,
80
+		"pagesize": pageSize,
81
+		"pagenum":  total,
82
+		"page":     page,
83
+	}, err
84
+
85
+}
86
+
87
+// UpdateCustomerCourseDetail更新我的课程详情
88
+func (s *VerifyServ) UpdateCustomerCourseDetail(customerDetail *model.TaCustomerCourseDetail, userid string) error {
89
+	var err error
90
+	customerDetail.VerifyDate = time.Now()
91
+	customerDetail.VerifyUser = userid
92
+	if time.Now().After(customerDetail.EndDate) {
93
+		customerDetail.VerifyStatus = "late"
94
+	} else {
95
+		customerDetail.VerifyStatus = "used"
96
+	}
97
+	err = s.dao.UpdateCustomerCourseDetail(customerDetail)
98
+	return err
99
+}
100
+
101
+// UpdateCustomerCard 更新我的体验卡
102
+func (s *VerifyServ) UpdateCustomerCard(customerCard *model.TaCustomerCard) error {
103
+	var err error
104
+	customerCard.VerifyDate = time.Now()
105
+	err = s.dao.UpdateCustomerCard(customerCard)
106
+	return err
107
+
108
+}
109
+
110
+// UpdateCustomerCourse 更新我的课程
111
+func (s *VerifyServ) UpdateCustomerCourse(customerCourse *model.TaCustomerCourse) error {
112
+	var err error
113
+	customerCourse.JoinNum = customerCourse.JoinNum + 1
114
+	if customerCourse.JoinNum >= customerCourse.CourseNum {
115
+		customerCourse.IsDone = models.BOOL_TRUE
116
+	}
117
+	err = s.dao.UpdateCustomerCourse(customerCourse)
118
+	return err
119
+
120
+}
121
+
122
+// GetCustomerCardByDetailId 根据我的课程详情id获取体验卡
123
+func (s *VerifyServ) GetCustomerCardByDetailId(detailId string) (*model.TaCustomerCard, error) {
124
+	customerCard, err := s.dao.GetCustomerCardByDetailId(detailId)
125
+	if err != nil {
126
+		beego.Error(err)
127
+		return nil, err
128
+	}
129
+	return customerCard, err
130
+}
131
+
132
+// GetCustomerCourseByDetailId 根据我的课程详情id获取我的课程
133
+func (s *VerifyServ) GetCustomerCourseByDetailId(detailId string) (*model.TaCustomerCourse, error) {
134
+	customerCourse, err := s.dao.GetCustomerCourseByDetailId(detailId)
135
+	if err != nil {
136
+		beego.Error(err)
137
+		return nil, err
138
+	}
139
+	return customerCourse, err
140
+}