作者 陈志颖

fix:增加排行榜时间判断

@@ -7,7 +7,7 @@ import ( @@ -7,7 +7,7 @@ import (
7 ) 7 )
8 8
9 type CreateListIntervalCommand struct { 9 type CreateListIntervalCommand struct {
10 - CompanyId int64 `json:"companyId" valid:"Required"` // 公司id 10 + CompanyId int `json:"companyId" valid:"Required"` // 公司id
11 ListIntervalStartTime time.Time `json:"listIntervalStartTime"` // 排行榜开始时间 11 ListIntervalStartTime time.Time `json:"listIntervalStartTime"` // 排行榜开始时间
12 ListIntervalEndTime time.Time `json:"listIntervalEndTime"` // 排行榜结束时间 12 ListIntervalEndTime time.Time `json:"listIntervalEndTime"` // 排行榜结束时间
13 } 13 }
@@ -40,11 +40,42 @@ func (listIntervalService *ListIntervalService) CreateListInterval(createListInt @@ -40,11 +40,42 @@ func (listIntervalService *ListIntervalService) CreateListInterval(createListInt
40 } 40 }
41 41
42 // 获取当前最新排行榜时间 42 // 获取当前最新排行榜时间
  43 + listListIntervalQuery := &query.ListListIntervalQuery {
  44 + CompanyId: createListIntervalCommand.CompanyId,
  45 + Offset: 0,
  46 + Limit: 1,
  47 + }
43 48
  49 + // 获取上个年榜时间
  50 + _, listIntervals, err := listIntervalRepository.Find(tool_funs.SimpleStructToMap(listListIntervalQuery))
  51 + if err != nil {
  52 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  53 + }
44 54
45 - // 判断排行榜时间是否重叠 55 + // 判断年榜时间是否和上个年榜重叠
  56 + if len(listIntervals) > 0 {
  57 + if createListIntervalCommand.ListIntervalStartTime.Before(listIntervals[0].IntervalEndTime) {
  58 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "年榜开始时间必须大于上一个年榜结束时间")
  59 + } else {
  60 + // 创建排行榜时间命令
  61 + newListInterval := &domain.ListInterval {
  62 + CompanyId: createListIntervalCommand.CompanyId,
  63 + IntervalStartTime: createListIntervalCommand.ListIntervalStartTime,
  64 + IntervalEndTime: createListIntervalCommand.ListIntervalEndTime,
  65 + }
46 66
  67 + // 保存排行榜时间
  68 + listInterval, err := listIntervalRepository.Save(newListInterval)
  69 + if err != nil {
  70 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  71 + }
  72 + if err := transactionContext.CommitTransaction(); err != nil {
  73 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  74 + }
47 75
  76 + return listInterval, nil
  77 + }
  78 + } else {
48 // 创建排行榜时间命令 79 // 创建排行榜时间命令
49 newListInterval := &domain.ListInterval { 80 newListInterval := &domain.ListInterval {
50 CompanyId: createListIntervalCommand.CompanyId, 81 CompanyId: createListIntervalCommand.CompanyId,
@@ -53,9 +84,10 @@ func (listIntervalService *ListIntervalService) CreateListInterval(createListInt @@ -53,9 +84,10 @@ func (listIntervalService *ListIntervalService) CreateListInterval(createListInt
53 } 84 }
54 85
55 // 保存排行榜时间 86 // 保存排行榜时间
56 - if listInterval, err := listIntervalRepository.Save(newListInterval); err != nil { 87 + listInterval, err := listIntervalRepository.Save(newListInterval)
  88 + if err != nil {
57 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 89 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
58 - } else { 90 + }
59 if err := transactionContext.CommitTransaction(); err != nil { 91 if err := transactionContext.CommitTransaction(); err != nil {
60 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 92 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
61 } 93 }
@@ -7,7 +7,7 @@ import ( @@ -7,7 +7,7 @@ import (
7 // 排行榜时间 7 // 排行榜时间
8 type ListInterval struct { 8 type ListInterval struct {
9 ListIntervalId int `json:"listIntervalId"` // 排行榜时间id 9 ListIntervalId int `json:"listIntervalId"` // 排行榜时间id
10 - CompanyId int64 `json:"companyId"` // 公司id 10 + CompanyId int `json:"companyId"` // 公司id
11 IntervalStartTime time.Time `json:"intervalStartTime"` // 排行榜开始时间 11 IntervalStartTime time.Time `json:"intervalStartTime"` // 排行榜开始时间
12 IntervalEndTime time.Time `json:"intervalEndTime"` // 排行榜结束时间 12 IntervalEndTime time.Time `json:"intervalEndTime"` // 排行榜结束时间
13 } 13 }
@@ -7,5 +7,5 @@ type ListInterval struct { @@ -7,5 +7,5 @@ type ListInterval struct {
7 Id int // 排行榜周期id 7 Id int // 排行榜周期id
8 ListIntervalStartTime time.Time 8 ListIntervalStartTime time.Time
9 ListIntervalEndTime time.Time 9 ListIntervalEndTime time.Time
10 - CompanyId int64 10 + CompanyId int
11 } 11 }