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 |
