Mercurial > mercurial > hgweb_golang.cgi
comparison src/kaigo/Perori/perori.go @ 42:c58172a59534
bug fix.
author | pyon@macmini |
---|---|
date | Tue, 10 Mar 2020 21:12:29 +0900 |
parents | 34a474fb83c3 |
children | 77dd877929f5 |
comparison
equal
deleted
inserted
replaced
41:34a474fb83c3 | 42:c58172a59534 |
---|---|
18 ) | 18 ) |
19 | 19 |
20 var debug_log bool | 20 var debug_log bool |
21 | 21 |
22 // Constants | 22 // Constants |
23 const version = "0.2" | 23 const version = "0.3" |
24 const default_dbfile = "ikenshoirai.db" | 24 const default_dbfile = "ikenshoirai.db" |
25 const default_csvfile = "ikenshoirai.csv" | 25 const default_csvfile = "ikenshoirai.csv" |
26 | 26 |
27 const tpl = ` | 27 const tpl = ` |
28 <!DOCTYPE html> <html> | 28 <!DOCTYPE html> <html> |
203 var recentdata []Sinsei | 203 var recentdata []Sinsei |
204 prevhash := make(map[string]PrevSinsei) | 204 prevhash := make(map[string]PrevSinsei) |
205 hhscnt := make(map[string]int) | 205 hhscnt := make(map[string]int) |
206 for _, ss := range dbdata { | 206 for _, ss := range dbdata { |
207 ss.Humanize() | 207 ss.Humanize() |
208 if n := hhscnt[ss.Hhsno]; n == 1 { | 208 switch hhscnt[ss.Hhsno] { |
209 case 0: | |
210 recentdata = append(recentdata, ss) | |
211 hhscnt[ss.Hhsno]++; | |
212 case 1: | |
209 prevhash[ss.Hhsno] = PrevSinsei{ | 213 prevhash[ss.Hhsno] = PrevSinsei{ |
210 Biko: ss.Biko, | 214 Biko: ss.Biko, |
211 DrId: ss.DrId, | 215 DrId: ss.DrId, |
212 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")", | 216 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")", |
213 IraiYmd: ss.IraiYmd, | 217 IraiYmd: ss.IraiYmd, |
214 Ymd: ss.Ymd, | 218 Ymd: ss.Ymd, |
215 Kubun: ss.Kubun, | 219 Kubun: ss.Kubun, |
216 } | 220 } |
217 } else { | |
218 recentdata = append(recentdata, ss) | |
219 hhscnt[ss.Hhsno]++; | |
220 } | 221 } |
221 } | 222 } |
222 print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata))) // | 223 print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata))) // |
223 | 224 |
224 doctorhash := make(map[string]Doctor) | 225 doctorhash := make(map[string]Doctor) |
246 var doctors []Doctor | 247 var doctors []Doctor |
247 for _, dr := range doctorhash { | 248 for _, dr := range doctorhash { |
248 doctors = append(doctors, dr) | 249 doctors = append(doctors, dr) |
249 } | 250 } |
250 sort.Slice(doctors, func(i, j int) bool { | 251 sort.Slice(doctors, func(i, j int) bool { |
251 return doctors[i].Kana < doctors[j].Kana | 252 if doctors[i].Kana != doctors[j].Kana { |
253 return doctors[i].Kana < doctors[j].Kana | |
254 } | |
255 if doctors[i].Id != doctors[j].Id { | |
256 return doctors[i].Id < doctors[j].Id | |
257 } | |
258 return false | |
252 }) | 259 }) |
253 | 260 |
254 irai := struct { | 261 irai := struct { |
255 Ymd string | 262 Ymd string |
256 NHhs int | 263 NHhs int |
317 return sinsei, hhshash, err | 324 return sinsei, hhshash, err |
318 } | 325 } |
319 | 326 |
320 for _, record := range records { | 327 for _, record := range records { |
321 ss := csv2sinsei(record) | 328 ss := csv2sinsei(record) |
322 if ss.IraiYmd != date { | 329 if ss.IraiYmd == date { |
323 continue | 330 hhshash[ss.Hhsno] = true |
324 } | 331 } |
325 hhshash[ss.Hhsno] = true | 332 } |
326 sinsei = append(sinsei, ss) | 333 |
334 for _, record := range records { | |
335 ss := csv2sinsei(record) | |
336 if _, ok := hhshash[ss.Hhsno]; ok { | |
337 sinsei = append(sinsei, ss) | |
338 } | |
327 } | 339 } |
328 | 340 |
329 return sinsei, hhshash, nil | 341 return sinsei, hhshash, nil |
330 } | 342 } |
331 | 343 |