作者 陈志颖

test:导入逻辑

@@ -71,3 +71,32 @@ func InsertSlice(index int, newstr []string, src []string) (ns []string) { @@ -71,3 +71,32 @@ func InsertSlice(index int, newstr []string, src []string) (ns []string) {
71 ns = append(ns, src[index:]...) 71 ns = append(ns, src[index:]...)
72 return 72 return
73 } 73 }
  74 +
  75 +//RankPeriodCheckTime 设置赛季时检查时间范围的合法性
  76 +//func RankPeriodCheckTime(rankTypeId int64, beginTime int64, endTime int64, idNot int64) bool {
  77 +// sql := `SELECT count(*) FROM rank_period
  78 +// WHERE rank_type_id = %d
  79 +// AND id <> %d
  80 +// AND
  81 +// (
  82 +// (UNIX_TIMESTAMP(begin_time) BETWEEN %d AND %d)
  83 +// OR
  84 +// (UNIX_TIMESTAMP(end_time) BETWEEN %d AND %d)
  85 +// OR
  86 +// (%d BETWEEN UNIX_TIMESTAMP(begin_time) AND UNIX_TIMESTAMP(end_time))
  87 +// OR
  88 +// (%d BETWEEN UNIX_TIMESTAMP(begin_time) AND UNIX_TIMESTAMP(end_time))
  89 +// )
  90 +// LIMIT 1 `
  91 +// sql = fmt.Sprintf(sql, rankTypeId, idNot, beginTime, endTime, beginTime, endTime, beginTime, endTime)
  92 +// var cnt int
  93 +// err := utils.ExecuteQueryOne(&cnt, sql)
  94 +// if err != nil {
  95 +// log.Error("SQL Execute err:%s", err)
  96 +// return false
  97 +// }
  98 +// if cnt > 0 {
  99 +// return false
  100 +// }
  101 +// return true
  102 +//}
@@ -10,6 +10,7 @@ import ( @@ -10,6 +10,7 @@ import (
10 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/suMoney/command" 10 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/suMoney/command"
11 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/suMoney/query" 11 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/suMoney/query"
12 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/suMoney/service" 12 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/suMoney/service"
  13 + utils_tool "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/infrastructure/utils"
13 "os" 14 "os"
14 "path" 15 "path"
15 "strconv" 16 "strconv"
@@ -427,6 +428,7 @@ func (controller *SuMoneyController) ImportExchangeList () { @@ -427,6 +428,7 @@ func (controller *SuMoneyController) ImportExchangeList () {
427 return 428 return
428 } 429 }
429 430
  431 + // 打开文件
430 xlsx, err := excelize.OpenReader(file) 432 xlsx, err := excelize.OpenReader(file)
431 if err != nil { 433 if err != nil {
432 fmt.Println(err) 434 fmt.Println(err)
@@ -436,8 +438,6 @@ func (controller *SuMoneyController) ImportExchangeList () { @@ -436,8 +438,6 @@ func (controller *SuMoneyController) ImportExchangeList () {
436 // 文件行数校验 438 // 文件行数校验
437 rows, _ := xlsx.GetRows("Sheet1") 439 rows, _ := xlsx.GetRows("Sheet1")
438 fmt.Print(len(rows), "\n") 440 fmt.Print(len(rows), "\n")
439 -  
440 - // 表格超行判断  
441 if len(rows) > 302 { 441 if len(rows) > 302 {
442 err := &application.ServiceError{ 442 err := &application.ServiceError{
443 Code: 500, 443 Code: 500,
@@ -461,48 +461,53 @@ func (controller *SuMoneyController) ImportExchangeList () { @@ -461,48 +461,53 @@ func (controller *SuMoneyController) ImportExchangeList () {
461 return 461 return
462 } 462 }
463 463
464 - // 空字段判断  
465 - //newstr := []string{"null"} 464 + // 单元格校验
  465 + newstr := []string{"null"}
466 //nullChar := []string{"单元格包含空字符"} 466 //nullChar := []string{"单元格包含空字符"}
  467 + nullLine := make([]interface{}, 0)
  468 + for i, row := range rows {
  469 + if i > 2 {
  470 + fmt.Print(len(row), "\n")
  471 +
  472 + // 头部、中间空
  473 + if len(row) == 3 {
  474 + for j, cell := range row {
  475 + fmt.Print(cell, "\n")
  476 + if cell == "" {
  477 + utils_tool.InsertSlice(j, newstr, row)
  478 + row = append(row, "单元格包含空字符")
  479 + nullLine = append(nullLine, row)
  480 + }
  481 + }
  482 + }
  483 +
  484 + // 尾空
  485 + if len(row) < 3 {
  486 + for j, cell := range row {
  487 + fmt.Print(cell, "\n")
  488 + if cell == "" {
  489 + utils_tool.InsertSlice(j, row, newstr)
  490 + row = append(row, "单元格包含空字符")
  491 + nullLine = append(nullLine, row)
  492 + }
  493 + }
  494 + }
  495 + }
  496 + }
467 497
468 - //nullLine := make([]interface{}, 0)  
469 - //for i, row := range rows {  
470 - // if i > 2 {  
471 - // if len(row) < 3 {  
472 - // r2, _ := strconv.ParseFloat(row[2], 64)  
473 - // if row[0] == "" {  
474 - // utils_tool.InsertSlice(0, row, newstr)  
475 - // } else if row[1] == "" {  
476 - // utils_tool.InsertSlice(1, row, newstr)  
477 - // } else if r2 == 0 {  
478 - // utils_tool.InsertSlice(2, row, newstr)  
479 - // }  
480 - //  
481 - // //for j, cell := range row {  
482 - // // if cell == "" {  
483 - // // utils_tool.InsertSlice(j, row, newstr)  
484 - // // }  
485 - // //}  
486 - // //utils_tool.InsertSlice(1, row, nullChar)  
487 - // row = append(row, "单元格包含空字符")  
488 - // nullLine = append(nullLine, row)  
489 - // }  
490 - // }  
491 - //}  
492 - //  
493 - //if len(nullLine) > 0 {  
494 - // ret = map[string]interface{}{  
495 - // "successCount": 0,  
496 - // "fail": map[string]interface{}{  
497 - // "tableHeader": tableHeader,  
498 - // "tableData": nullLine,  
499 - // },  
500 - // }  
501 - // response = utils.ResponseData(controller.Ctx, ret)  
502 - // controller.Data["json"] = response  
503 - // controller.ServeJSON()  
504 - // return  
505 - //} 498 + if len(nullLine) > 0 {
  499 + ret = map[string]interface{}{
  500 + "successCount": 0,
  501 + "fail": map[string]interface{}{
  502 + "tableHeader": tableHeader,
  503 + "tableData": nullLine,
  504 + },
  505 + }
  506 + response = utils.ResponseData(controller.Ctx, ret)
  507 + controller.Data["json"] = response
  508 + controller.ServeJSON()
  509 + return
  510 + }
506 511
507 // 新增失败记录 512 // 新增失败记录
508 failureDataList := make([]interface{}, 0) 513 failureDataList := make([]interface{}, 0)