diff --git a/app/admin/models/migu.go b/app/admin/models/migu.go index dca1ce4..418049c 100644 --- a/app/admin/models/migu.go +++ b/app/admin/models/migu.go @@ -38,7 +38,7 @@ const ( SKUCODE = "miguyouxizuanshihuiyuan-yy" ExportFile = "/www/server/images/export/" - MiGuExportUrl = "https://migu.admin.deovo.com/load/export/" + MiGuExportUrl = "https://migu.admin.2016js.com/load/export/" //MiGuExportUrl = "/Users/max/Documents/" // 本地环境 ) @@ -2316,3 +2316,85 @@ func CalculateDailySummaryFromRealtime(db *gorm.DB, startTime, endTime, channelC return results, nil } + +const SheetName = "25年4月明细" +const OutExcelName = "/Users/max/Documents/output_25_4.xlsx" + +func ProcessExcelAndUpdate() error { + if database.Db == nil { + log.Println("Database connection is nil") + fmt.Println("Database connection is nil") + return nil + } + + path := "/Users/max/Documents/test.xlsx" + f, err := excelize.OpenFile(path) + if err != nil { + return err + } + + rows, err := f.GetRows(SheetName) // 假设工作表为 Sheet1 + if err != nil { + return err + } + + for i, row := range rows { + // 跳过表头 + if i == 0 || len(row) < 2 { + continue + } + + //phoneNumber := row[1] // 第2列“受理号码” + + phoneNumber := row[2] // 第3列“订购号码” + + var order MgOrder + err := database.Db.Where("phone_number = ?", phoneNumber).First(&order).Error + if err != nil { + fmt.Printf("未找到手机号 %s 对应的记录\n", phoneNumber) + continue + } + + // 从第9列开始写入数据 + rowIndex := i + 1 + cellState := fmt.Sprintf("J%d", rowIndex) + cellCancel := fmt.Sprintf("K%d", rowIndex) + cellSubTime := fmt.Sprintf("L%d", rowIndex) + cellUnsubTime := fmt.Sprintf("M%d", rowIndex) + + // 状态中文 + var stateText string + switch order.State { + case 1: + stateText = "订阅成功" + case 2: + stateText = "已取消订阅" + default: + stateText = "未知" + } + + // 是否1小时退订中文 + cancelText := "否" + if order.IsOneHourCancel == 1 { + cancelText = "是" + } + + f.SetCellValue(SheetName, cellState, stateText) + f.SetCellValue(SheetName, cellCancel, cancelText) + + if order.SubscribeTime != nil { + f.SetCellValue(SheetName, cellSubTime, order.SubscribeTime.Format("2006-01-02 15:04:05")) + } else { + f.SetCellValue(SheetName, cellSubTime, "") + } + + if order.UnsubscribeTime != nil { + f.SetCellValue(SheetName, cellUnsubTime, order.UnsubscribeTime.Format("2006-01-02 15:04:05")) + } else { + f.SetCellValue(SheetName, cellUnsubTime, "") + } + } + + // 保存新文件 + return f.SaveAs(OutExcelName) +} diff --git a/cmd/api/server.go b/cmd/api/server.go index 38d4809..2d281d6 100644 --- a/cmd/api/server.go +++ b/cmd/api/server.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "github.com/go-admin-team/go-admin-core/sdk/runtime" + "github.com/jasonlvhit/gocron" "log" "net/http" "os" @@ -18,7 +19,6 @@ import ( "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/spf13/cobra" - "github.com/jasonlvhit/gocron" "go-admin/app/admin/models" "go-admin/app/admin/router" "go-admin/app/jobs" @@ -183,6 +183,12 @@ func run() error { // fmt.Println("err:", err) //} + //// 核对咪咕钻石会员退费数据 + //err := s.Every(1).Day().At("10:44").Do(models.ProcessExcelAndUpdate) + //if err != nil { + // fmt.Println("err:", err) + //} + <-s.Start() }()