Bläddra i källkod

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

zjxpcyc 6 år sedan
förälder
incheckning
3cf8a915db

+ 70
- 0
log/common.log Visa fil

@@ -190,3 +190,73 @@
190 190
 2018/09/25 10:52:58 [E] 用户没有设置默认案场
191 191
 2018/09/25 10:53:02 [E] 用户没有设置默认案场
192 192
 2018/09/25 11:03:32 [E] 用户没有设置默认案场
193
+2018/09/25 14:50:11 [E] 用户没有设置默认案场
194
+2018/09/25 14:50:11 [E] 用户没有设置默认案场
195
+2018/09/25 14:50:35 [E] 用户没有设置默认案场
196
+2018/09/25 14:50:35 [E] 用户没有设置默认案场
197
+2018/09/25 14:53:32 [E] 用户没有设置默认案场
198
+2018/09/25 14:53:35 [E] 用户没有设置默认案场
199
+2018/09/25 14:54:20 [E] 用户没有设置默认案场
200
+2018/09/25 14:54:20 [E] 用户没有设置默认案场
201
+2018/09/25 14:57:27 [E] 用户没有设置默认案场
202
+2018/09/25 14:57:27 [E] 用户没有设置默认案场
203
+2018/09/25 14:57:40 [E] 用户没有设置默认案场
204
+2018/09/25 14:57:40 [E] 用户没有设置默认案场
205
+2018/09/25 14:57:57 [E] 用户没有设置默认案场
206
+2018/09/25 14:57:57 [E] 用户没有设置默认案场
207
+2018/09/25 14:58:01 [E] 用户没有设置默认案场
208
+2018/09/25 14:58:01 [E] 用户没有设置默认案场
209
+2018/09/25 14:58:01 [E] 用户没有设置默认案场
210
+2018/09/25 14:58:04 [E] 用户没有设置默认案场
211
+2018/09/25 14:58:04 [E] 用户没有设置默认案场
212
+2018/09/25 14:58:04 [E] 用户没有设置默认案场
213
+2018/09/25 14:58:05 [E] 用户没有设置默认案场
214
+2018/09/25 14:58:09 [E] 用户没有设置默认案场
215
+2018/09/25 14:58:09 [E] 用户没有设置默认案场
216
+2018/09/25 14:58:09 [E] 用户没有设置默认案场
217
+2018/09/25 14:59:59 [E] 用户没有设置默认案场
218
+2018/09/25 14:59:59 [E] 用户没有设置默认案场
219
+2018/09/25 14:59:59 [E] 用户没有设置默认案场
220
+2018/09/25 14:59:59 [E] 用户没有设置默认案场
221
+2018/09/25 15:00:14 [E] 用户没有设置默认案场
222
+2018/09/25 15:00:14 [E] 用户没有设置默认案场
223
+2018/09/25 15:00:14 [E] 用户没有设置默认案场
224
+2018/09/25 15:00:14 [E] 用户没有设置默认案场
225
+2018/09/25 15:00:38 [E] 用户没有设置默认案场
226
+2018/09/25 15:00:38 [E] 用户没有设置默认案场
227
+2018/09/25 15:00:38 [E] 用户没有设置默认案场
228
+2018/09/25 15:00:38 [E] 用户没有设置默认案场
229
+2018/09/25 15:00:57 [E] 用户没有设置默认案场
230
+2018/09/25 15:00:57 [E] 用户没有设置默认案场
231
+2018/09/25 15:00:58 [E] 用户没有设置默认案场
232
+2018/09/25 15:00:58 [E] 用户没有设置默认案场
233
+2018/09/25 15:00:59 [E] 用户没有设置默认案场
234
+2018/09/25 15:01:03 [E] 用户没有设置默认案场
235
+2018/09/25 15:01:04 [E] 用户没有设置默认案场
236
+2018/09/25 15:01:10 [E] 用户没有设置默认案场
237
+2018/09/25 15:01:10 [E] 用户没有设置默认案场
238
+2018/09/25 15:01:14 [E] 用户没有设置默认案场
239
+2018/09/25 15:01:14 [E] 用户没有设置默认案场
240
+2018/09/25 15:01:23 [E] 用户没有设置默认案场
241
+2018/09/25 15:01:25 [E] 用户没有设置默认案场
242
+2018/09/25 15:01:25 [E] 用户没有设置默认案场
243
+2018/09/25 15:01:25 [E] 用户没有设置默认案场
244
+2018/09/25 15:01:25 [E] 用户没有设置默认案场
245
+2018/09/25 15:01:30 [E] 用户没有设置默认案场
246
+2018/09/25 15:01:30 [E] 用户没有设置默认案场
247
+2018/09/25 15:01:31 [E] 用户没有设置默认案场
248
+2018/09/25 15:01:34 [E] 用户没有设置默认案场
249
+2018/09/25 15:02:05 [E] 用户没有设置默认案场
250
+2018/09/25 15:02:05 [E] 用户没有设置默认案场
251
+2018/09/25 15:02:06 [E] 用户没有设置默认案场
252
+2018/09/25 15:02:06 [E] 用户没有设置默认案场
253
+2018/09/25 15:02:08 [E] 用户没有设置默认案场
254
+2018/09/25 15:02:10 [E] 用户没有设置默认案场
255
+2018/09/25 15:02:11 [E] 用户没有设置默认案场
256
+2018/09/25 15:02:40 [E] 用户没有设置默认案场
257
+2018/09/25 15:02:45 [E] 用户没有设置默认案场
258
+2018/09/25 15:02:46 [E] 用户没有设置默认案场
259
+2018/09/25 15:04:13 [E] 用户没有设置默认案场
260
+2018/09/25 15:04:14 [E] 用户没有设置默认案场
261
+2018/09/25 15:04:50 [E] 用户没有设置默认案场
262
+2018/09/25 15:05:22 [E] 用户没有设置默认案场

+ 5
- 0
models/constant.go Visa fil

@@ -166,3 +166,8 @@ const (
166 166
 	RECEIVEING_TYPE_SALES   = "sales"
167 167
 	RECEIVEING_TYPE_CHANNEL = "channel"
168 168
 )
169
+
170
+// 二维码类型
171
+const (
172
+	QRCODE_TYPE_COURSE = "course"
173
+)

+ 37
- 17
models/course/course.go Visa fil

@@ -2,6 +2,7 @@ package course
2 2
 
3 3
 import (
4 4
 	"errors"
5
+	"math/rand"
5 6
 	"spaceofcheng/services/models"
6 7
 	"spaceofcheng/services/models/model"
7 8
 	"spaceofcheng/services/utils"
@@ -489,9 +490,9 @@ func (m *CourseDAO) GetCourseOfCustomer(custID, courseID string) (*model.TaCusto
489 490
 }
490 491
 
491 492
 // SaveCourseOfCustomer 保存我的课程
492
-func (m *CourseDAO) SaveCourseOfCustomer(course *model.TaCustomerCourse, details []model.TaCustomerCourseDetail) error {
493
+func (m *CourseDAO) SaveCourseOfCustomer(course *model.TaCustomerCourse, details []model.TaCustomerCourseDetail) (string, error) {
493 494
 	if course == nil || details == nil || len(details) == 0 {
494
-		return errors.New("没有有效的我的课程信息")
495
+		return "", errors.New("没有有效的我的课程信息")
495 496
 	}
496 497
 
497 498
 	course.CustomerCourseId = guid.NewGUIDString()
@@ -509,19 +510,36 @@ func (m *CourseDAO) SaveCourseOfCustomer(course *model.TaCustomerCourse, details
509 510
 	}
510 511
 
511 512
 	if _, err := m.db.Insert(&details); err != nil {
512
-		return err
513
+		return "", err
513 514
 	}
514 515
 
515 516
 	if _, err := m.db.Insert(course); err != nil {
516
-		return err
517
+		return "", err
517 518
 	}
518 519
 
519 520
 	// 课程参与人数+1
520 521
 	sql := `update ta_course set signup_num=signup_num+1 where course_id='` + course.CourseId + `'`
521 522
 	if _, err := m.db.Exec(sql); err != nil {
522
-		return err
523
+		return "", err
523 524
 	}
524
-	return nil
525
+	return course.CustomerCourseId, nil
526
+}
527
+
528
+func (m *CourseDAO) SaveCustomerCourseQrcode(qrcode *model.TaCustomerCourseQrcode) error {
529
+	_, err := m.db.Insert(qrcode)
530
+	return err
531
+}
532
+
533
+func (m *CourseDAO) GenerateQRCode() string {
534
+	var temp1 int = rand.Intn(9)*87 + 11
535
+	var temp2 int = rand.Intn(9)*89 + 13
536
+	nano := time.Now().UnixNano()
537
+	var nanostr string = strconv.FormatInt(nano, 10)
538
+	var temp3 string = nanostr[11:]
539
+	var temp4 string = "6"
540
+	var temp5 int = rand.Intn(9)*7 + 17
541
+	var code string = "66" + strconv.Itoa(temp1) + temp4 + strconv.Itoa(temp2) + temp3 + strconv.Itoa(temp5)
542
+	return code
525 543
 }
526 544
 
527 545
 // CustomerCourse 客户课程信息
@@ -583,18 +601,20 @@ func (m *CourseDAO) GetCustomerCourseDetail(customerCourseID string) ([]model.Ta
583 601
 func (m *CourseDAO) GetCustomerCourseByID(id string) (*CustomerCourse, error) {
584 602
 	var courses []CustomerCourse
585 603
 	sql := `SELECT
586
-		a.*, a.customer_course_id AS qr_code_string,
587
-		b.orders_no,
588
-		c.course_img,
589
-		d.case_address,
590
-		d.case_name,
591
-		c.begin_date,
592
-		c.end_date,
593
-		c.remark
594
-	FROM
595
-		ta_customer_course a
604
+	a.*,
605
+	e.customer_qrcode AS qr_code_string,
606
+	b.orders_no,
607
+	c.course_img,
608
+	d.case_address,
609
+	d.case_name,
610
+	c.begin_date,
611
+	c.end_date,
612
+	c.remark 
613
+FROM
614
+	ta_customer_course a
596 615
 	INNER JOIN ta_course c ON a.course_id = c.course_id
597
-	INNER JOIN sys_case d on a.case_id = d.case_id
616
+	INNER JOIN sys_case d ON a.case_id = d.case_id
617
+	INNER JOIN ta_customer_course_qrcode e ON a.customer_course_id = e.customer_course_id
598 618
 	LEFT JOIN ta_course_orders b ON a.source_id = b.orders_id
599 619
 	 where a.status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.customer_course_id='` + id + `'`
600 620
 

+ 14
- 1
models/system/user.go Visa fil

@@ -143,8 +143,21 @@ func (m *UserDAO) GetUserRole(userid string) ([]model.SysRole, error) {
143 143
 
144 144
 // GetUserMenu 获取用户菜单
145 145
 func (m *UserDAO) GetUserMenu(userid string) ([]model.SysMenu, error) {
146
+	type Menus struct {
147
+		MenuIds string
148
+	}
149
+	var menu = Menus{}
150
+	sql := `select group_concat(menu_id) as menu_ids from sys_user_menu where user_id = ?`
151
+	m.db.Sql(sql, userid).Get(&menu)
146 152
 	var userMenu []model.SysMenu
147
-	err := m.db.In("menu_id", builder.Select("menu_id").From("sys_user_menu").Where(builder.Eq{"user_id": userid}).And(builder.Gt{"status": models.STATUS_DEL})).Asc("order_no").Find(&userMenu)
153
+	var err error
154
+	if menu.MenuIds != "" {
155
+		sql = `select * from sys_menu where menu_id in ('` + strings.Replace(menu.MenuIds, ",", "','", -1) + `')
156
+		UNION
157
+		select * from sys_menu where menu_id in (select father_id from sys_menu where menu_id in ('` + strings.Replace(menu.MenuIds, ",", "','", -1) + `'))
158
+		`
159
+		err = m.db.Sql(sql).Find(&userMenu)
160
+	}
148 161
 	return userMenu, err
149 162
 }
150 163
 

+ 1
- 1
routers/wechat.go Visa fil

@@ -1,7 +1,6 @@
1 1
 package routers
2 2
 
3 3
 import (
4
-	"cdkj-check/controllers/luckdraw"
5 4
 	"spaceofcheng/services/controllers/bodycheck"
6 5
 	"spaceofcheng/services/controllers/card"
7 6
 	"spaceofcheng/services/controllers/cases"
@@ -10,6 +9,7 @@ import (
10 9
 	"spaceofcheng/services/controllers/customer"
11 10
 	"spaceofcheng/services/controllers/goods"
12 11
 	"spaceofcheng/services/controllers/gymcard"
12
+	"spaceofcheng/services/controllers/luckdraw"
13 13
 	"spaceofcheng/services/controllers/user"
14 14
 
15 15
 	"github.com/astaxie/beego"

+ 14
- 1
service/card/card.go Visa fil

@@ -581,10 +581,23 @@ func (s *CardServ) SaveCustomerCourseByCard(customerCard *model.TaCustomerCard)
581 581
 			custCourseDetails = append(custCourseDetails, d2)
582 582
 		}
583 583
 
584
-		if err := s.courseDao.SaveCourseOfCustomer(&custCourse, custCourseDetails); err != nil {
584
+		customerCourseId, err := s.courseDao.SaveCourseOfCustomer(&custCourse, custCourseDetails)
585
+		if err != nil {
585 586
 			utils.LogError("插入我的课程失败: " + err.Error())
586 587
 			return errors.New("写入我的课程失败")
587 588
 		}
589
+		custQrcode := model.TaCustomerCourseQrcode{
590
+			CustomerCourseId: customerCourseId,
591
+			QrcodeType:       models.QRCODE_TYPE_COURSE,
592
+			CreateDate:       time.Now(),
593
+			CustomerQrcode:   s.courseDao.GenerateQRCode(),
594
+			Status:           models.STATUS_NORMAL,
595
+		}
596
+		err = s.courseDao.SaveCustomerCourseQrcode(&custQrcode)
597
+		if err != nil {
598
+			utils.LogError("生成我的课程二维码失败:" + err.Error())
599
+			return errors.New("生成我的课程二维码失败")
600
+		}
588 601
 	}
589 602
 	return nil
590 603
 }

+ 13
- 2
service/course/order.go Visa fil

@@ -371,16 +371,27 @@ func (s *CourseServ) SaveOrder(order *model.TaCourseOrders, course *course.Cours
371 371
 		}
372 372
 		custCourseDetails = append(custCourseDetails, d2)
373 373
 	}
374
-
375
-	if err := s.dao.SaveCourseOfCustomer(&custCourse, custCourseDetails); err != nil {
374
+	customerCourseId, err := s.dao.SaveCourseOfCustomer(&custCourse, custCourseDetails)
375
+	if err != nil {
376 376
 		utils.LogError("插入我的课程失败: " + err.Error())
377 377
 		return errors.New("写入我的课程失败")
378 378
 	}
379
+	custQRCode := model.TaCustomerCourseQrcode{
380
+		CustomerCourseId: customerCourseId,
381
+		CustomerQrcode:   s.dao.GenerateQRCode(),
382
+		CreateDate:       time.Now(),
383
+		Status:           models.STATUS_NORMAL,
384
+		QrcodeType:       models.QRCODE_TYPE_COURSE,
385
+	}
379 386
 
380 387
 	if err := s.dao.SaveCourseOrderDetail(details); err != nil {
381 388
 		utils.LogError("插入课程订单详情: " + err.Error())
382 389
 		return errors.New("写入课程订单详情失败")
383 390
 	}
391
+	if err := s.dao.SaveCustomerCourseQrcode(&custQRCode); err != nil {
392
+		utils.LogError("插入我的课程二维码失败: " + err.Error())
393
+		return errors.New("写入我的课程二维码失败")
394
+	}
384 395
 
385 396
 	return nil
386 397
 }

+ 0
- 3
service/customer/customer.go Visa fil

@@ -14,8 +14,6 @@ import (
14 14
 	"spaceofcheng/services/utils"
15 15
 	"strconv"
16 16
 	"time"
17
-
18
-	"github.com/astaxie/beego"
19 17
 )
20 18
 
21 19
 // CustomerServ 系统处理
@@ -132,7 +130,6 @@ func (s *CustomerServ) BindWechatUser(userMap *model.TaUserMapping, phone string
132 130
 
133 131
 		// 更新用户手机号码信息及userid信息
134 132
 		customer, err := s.dao.GetCustWithWXByOpenID(wxInfo.OpenID)
135
-		beego.Error(customer)
136 133
 		newCust := model.TaCustomer{
137 134
 			CustomerId: customer.CustomerId,
138 135
 			Phone:      user.Phone,

+ 6
- 6
service/verify/verify.go Visa fil

@@ -28,7 +28,7 @@ func NewVerifyServ(ctx *utils.Context) *VerifyServ {
28 28
 }
29 29
 
30 30
 // GetCustomerCourseDetailById 根据ID获取当日可核销课程
31
-func (s *VerifyServ) GetCustomerCourseDetailById(id, caseids string, page, pageSize int) (map[string]interface{}, error) {
31
+func (s *VerifyServ) GetCustomerCourseDetailById(qrcode, caseids string, page, pageSize int) (map[string]interface{}, error) {
32 32
 	// if err := utils.NewAuthEngine(s.ctx).CheckCase(caseid); err != nil {
33 33
 	// 	return nil, err
34 34
 	// }
@@ -38,11 +38,11 @@ func (s *VerifyServ) GetCustomerCourseDetailById(id, caseids string, page, pageS
38 38
 	if page == 0 {
39 39
 		page = 1
40 40
 	}
41
-	// id, err := s.dao.GetCustomerCourseIdByQrcode(qrcode)
42
-	// if err != nil {
43
-	// 	utils.LogError("获取列表失败: " + err.Error())
44
-	// 	return nil, errors.New("获取列表失败")
45
-	// }
41
+	id, err := s.dao.GetCustomerCourseIdByQrcode(qrcode)
42
+	if err != nil {
43
+		utils.LogError("获取列表失败: " + err.Error())
44
+		return nil, errors.New("获取列表失败")
45
+	}
46 46
 	customerDetail, err := s.dao.GetCustomerCourseList(id, caseids, page, pageSize)
47 47
 	if err != nil {
48 48
 		utils.LogError("获取列表失败: " + err.Error())