yeawood_consts 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +38 -9
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,5 +1,11 @@
1
1
  const _ = require('lodash')
2
2
  const big = require('big.js')
3
+ const {
4
+ TENDER_CEE_ORDER_STATE_PREVIEWING,
5
+ TENDER_CEE_ORDER_STATE_PREVIEWED,
6
+ TENDER_CEE_ORDER_STATE_QUOTING,
7
+ TENDER_CEE_ORDER_STATE_QUOTED
8
+ } = require('yeawood_consts')
3
9
 
4
10
  exports.SERVICES = ['service_exams', 'service_trader', 'service_tender']
5
11
 
@@ -86,7 +92,7 @@ exports.TENDER_CEE_ORDER_SORT_CALCULATOR = (state, quotingAt, quotedAt, createdA
86
92
  let quotedAtString
87
93
  let createdAtString
88
94
 
89
- // 第一步:根据标的状态排序(降序)
95
+ // 第一步:根据标的状态排序(升序)
90
96
  // 投标开始(N2)> 预览结束(N1)> 预览开始(P0)投标结束(P3)
91
97
  switch (state) {
92
98
  case exports.TENDER_CEE_ORDER_STATE_PREVIEWED:
@@ -97,21 +103,21 @@ exports.TENDER_CEE_ORDER_SORT_CALCULATOR = (state, quotingAt, quotedAt, createdA
97
103
  stateString = sprintf('P%d', state)
98
104
  break
99
105
  }
100
- // 第二步:根据开始投标的时间排序(降序)
101
- // 未结束的标的,quoting_at为实际值,因此后开标的放前边,先开标的放后边
102
- // 已结束的标的,quoting_at为相同值,没有顺序可言,等于没排序,但因为是一个比较大的时间,因此更靠前
106
+ // 第二步:根据开始投标的时间排序(升序)
107
+ // 未结束的标的,quoting_at为实际值,因此先开标的放前面,后开标的放后面
108
+ // 已结束的标的,quoting_at为相同值,没有顺序可言,等于没排序,但因为是一个比较大的时间,因此更靠后
103
109
  if (state === exports.TENDER_CEE_ORDER_STATE_QUOTED) {
104
110
  quotingAtString = INFINITY
105
111
  } else {
106
112
  quotingAtString = sprintf('%13d', quotingAt)
107
113
  }
108
- // 第三步:根据结束投标的时间排序(降序)
109
- // 未结束的标的,quoted_at为负整数,因为是降序,即意味着越晚完结的标的越靠后
110
- // 已结束的标的,quoted_at为正整数,因为是降序,即意味着越晚完结的标的越靠后
114
+ // 第三步:根据结束投标的时间排序(升序)
115
+ // 未结束的标的,quoted_at为正整数,意味着越晚完结的标的越靠后
116
+ // 已结束的标的,quoted_at为负整数,同时作为INFINITY的被减数(为了实现降序),意味着越晚完结的标的越靠前
111
117
  if (state === exports.TENDER_CEE_ORDER_STATE_QUOTED) {
112
- quotedAtString = sprintf('P%13d', new big(INFINITY).minus(quotedAt).toString())
118
+ quotedAtString = sprintf('N%13d', new big(INFINITY).minus(quotedAt).toString())
113
119
  } else {
114
- quotedAtString = sprintf('N%13d', quotedAt)
120
+ quotedAtString = sprintf('P%13d', quotedAt)
115
121
  }
116
122
  // 第四步:
117
123
  // 如果标的的state、quoting_at和quoted_at均相同,则再加一个created_at
@@ -120,3 +126,26 @@ exports.TENDER_CEE_ORDER_SORT_CALCULATOR = (state, quotingAt, quotedAt, createdA
120
126
 
121
127
  return [stateString, quotingAtString, quotedAtString, createdAtString].join('-')
122
128
  }
129
+
130
+ exports.TENDER_CEE_ORDER_STATE_CALCULATOR = (
131
+ previewingAt,
132
+ previewedAt,
133
+ quotingAt,
134
+ quotedAt
135
+ ) => {
136
+ const now = new Date().getTime()
137
+
138
+ if (now < previewingAt) {
139
+ return TENDER_CEE_ORDER_STATE_PREVIEWING
140
+ } else if (now >= previewingAt && now < previewedAt) {
141
+ return TENDER_CEE_ORDER_STATE_PREVIEWING
142
+ } else if (now >= previewedAt && now < quotingAt) {
143
+ return TENDER_CEE_ORDER_STATE_PREVIEWED
144
+ } else if (now >= quotingAt && now < quotedAt) {
145
+ return TENDER_CEE_ORDER_STATE_QUOTING
146
+ } else if (now >= quotedAt) {
147
+ return TENDER_CEE_ORDER_STATE_QUOTED
148
+ } else {
149
+ return TENDER_CEE_ORDER_STATE_QUOTED
150
+ }
151
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yeawood_consts",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {},