胡轶钦 преди 6 години
родител
ревизия
285f413f23
променени са 5 файла, в които са добавени 65 реда и са изтрити 17 реда
  1. 5
    0
      models/constant.go
  2. 31
    11
      models/course/course.go
  3. 12
    0
      service/card/card.go
  4. 11
    0
      service/course/order.go
  5. 6
    6
      service/verify/verify.go

+ 5
- 0
models/constant.go Целия файл

@@ -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
+)

+ 31
- 11
models/course/course.go Целия файл

@@ -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"
@@ -524,6 +525,23 @@ func (m *CourseDAO) SaveCourseOfCustomer(course *model.TaCustomerCourse, details
524 525
 	return nil
525 526
 }
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
543
+}
544
+
527 545
 // CustomerCourse 客户课程信息
528 546
 type CustomerCourse struct {
529 547
 	model.TaCustomerCourse `xorm:"extends"`
@@ -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
 

+ 12
- 0
service/card/card.go Целия файл

@@ -566,6 +566,18 @@ func (s *CardServ) SaveCustomerCourseByCard(customerCard *model.TaCustomerCard)
566 566
 			SourceId:         customerCard.CustomerCardId,
567 567
 			IsDone:           models.BOOL_FALSE,
568 568
 		}
569
+		custQrcode := model.TaCustomerCourseQrcode{
570
+			CustomerCourseId: custCourse.CustomerCourseId,
571
+			QrcodeType:       models.QRCODE_TYPE_COURSE,
572
+			CreateDate:       time.Now(),
573
+			CustomerQrcode:   s.courseDao.GenerateQRCode(),
574
+			Status:           models.STATUS_NORMAL,
575
+		}
576
+		err = s.courseDao.SaveCustomerCourseQrcode(&custQrcode)
577
+		if err != nil {
578
+			utils.LogError("生成我的课程二维码失败:" + err.Error())
579
+			return errors.New("生成我的课程二维码失败")
580
+		}
569 581
 
570 582
 		custCourseDetails := make([]model.TaCustomerCourseDetail, 0)
571 583
 

+ 11
- 0
service/course/order.go Целия файл

@@ -343,6 +343,13 @@ func (s *CourseServ) SaveOrder(order *model.TaCourseOrders, course *course.Cours
343 343
 		SourceId:         order.OrdersId,
344 344
 		IsDone:           models.BOOL_FALSE,
345 345
 	}
346
+	custQRCode := model.TaCustomerCourseQrcode{
347
+		CustomerCourseId: custCourse.CustomerCourseId,
348
+		CustomerQrcode:   s.dao.GenerateQRCode(),
349
+		CreateDate:       time.Now(),
350
+		Status:           models.STATUS_NORMAL,
351
+		QrcodeType:       models.QRCODE_TYPE_COURSE,
352
+	}
346 353
 
347 354
 	details := make([]model.TaCourseOrdersDetail, 0)
348 355
 	custCourseDetails := make([]model.TaCustomerCourseDetail, 0)
@@ -381,6 +388,10 @@ func (s *CourseServ) SaveOrder(order *model.TaCourseOrders, course *course.Cours
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
 }

+ 6
- 6
service/verify/verify.go Целия файл

@@ -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())