6
6
"strings"
7
7
"time"
8
8
9
+ "github.com/sivaosorg/govm/builder"
10
+ "github.com/sivaosorg/govm/timex"
9
11
"github.com/sivaosorg/govm/utils"
10
12
)
11
13
@@ -149,6 +151,90 @@ func (i *IPageQuery) Json() string {
149
151
return utils .ToJson (i )
150
152
}
151
153
154
+ func NewDecision () * decision {
155
+ i := & decision {}
156
+ i .SetOn (time .Now ())
157
+ return i
158
+ }
159
+
160
+ func WithDecision (value bool ) * decision {
161
+ i := NewDecision ().SetEnabled (value ).SetOn (time .Now ())
162
+ return i
163
+ }
164
+
165
+ func (i * decision ) SetEnabled (value bool ) * decision {
166
+ i .IsEnabled = value
167
+ return i
168
+ }
169
+
170
+ func (i * decision ) SetValue (value interface {}) * decision {
171
+ i .Value = value
172
+ return i
173
+ }
174
+
175
+ func (i * decision ) SetOn (value time.Time ) * decision {
176
+ i .on = value
177
+ return i
178
+ }
179
+
180
+ func (i * decision ) On () time.Time {
181
+ return i .on
182
+ }
183
+
184
+ func (i * decision ) OnString () string {
185
+ return i .on .Format (timex .TimeFormat20060102150405 )
186
+ }
187
+
188
+ func (i * decision ) Json () string {
189
+ return utils .ToJson (i )
190
+ }
191
+
192
+ func NewModify () Modify {
193
+ m := make (Modify )
194
+ return m
195
+ }
196
+
197
+ func (m Modify ) Add (key string , value decision ) Modify {
198
+ m [key ] = value
199
+ return m
200
+ }
201
+
202
+ func (m Modify ) Addon (key string , value * decision ) Modify {
203
+ m [key ] = * value
204
+ return m
205
+ }
206
+
207
+ func (m Modify ) Remove (key string ) Modify {
208
+ delete (m , key )
209
+ return m
210
+ }
211
+
212
+ func (m Modify ) RemoveAny (keys ... string ) Modify {
213
+ for _ , v := range keys {
214
+ delete (m , v )
215
+ }
216
+ return m
217
+ }
218
+
219
+ func (m Modify ) Size () int {
220
+ return len (m )
221
+ }
222
+
223
+ func (m Modify ) Available () bool {
224
+ return m .Size () > 0
225
+ }
226
+
227
+ func (m Modify ) Transform () map [string ]interface {} {
228
+ values := builder .NewMapBuilder ()
229
+ for k , e := range m {
230
+ if ! e .IsEnabled {
231
+ continue
232
+ }
233
+ values .Add (k , e .Value )
234
+ }
235
+ return values .Build ()
236
+ }
237
+
152
238
func GetTotalPages (totalCount int , size int ) int {
153
239
d := float64 (totalCount ) / float64 (size )
154
240
return int (math .Ceil (d ))
@@ -157,3 +243,16 @@ func GetTotalPages(totalCount int, size int) int {
157
243
func GetHasMore (currentPage , totalCount , size int ) bool {
158
244
return currentPage < totalCount / size
159
245
}
246
+
247
+ func Transforms (ms ... Modify ) map [string ]interface {} {
248
+ values := builder .NewMapBuilder ()
249
+ for _ , m := range ms {
250
+ for k , e := range m {
251
+ if ! e .IsEnabled {
252
+ continue
253
+ }
254
+ values .Add (k , e .Value )
255
+ }
256
+ }
257
+ return values .Build ()
258
+ }
0 commit comments