From eebdf7b80f2dcf1c409d18fd825c5f898c6b11b8 Mon Sep 17 00:00:00 2001 From: chenlin Date: Thu, 11 Sep 2025 09:42:22 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AF=BC=E5=87=BAexcel=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E8=B0=83=E6=95=B4=EF=BC=8C=E4=BB=8Emigu.admin.deovo.c?= =?UTF-8?q?om=E6=94=B9=E6=88=90migu.admin.2016js.com;=202=E3=80=81?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=A0=B8=E5=AF=B9=E5=92=AA=E5=92=95=E9=92=BB?= =?UTF-8?q?=E7=9F=B3=E4=BC=9A=E5=91=98=E9=80=80=E8=B4=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=88=E6=9A=82=E6=97=B6=E7=94=A8=E4=B8=8D=E4=B8=8A=EF=BC=89?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/migu.go | 84 +++++++++++++++++++++++++++++++++++++++- cmd/api/server.go | 8 +++- 2 files changed, 90 insertions(+), 2 deletions(-) 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() }()