- 实现账号增删改查接口和逻辑 - 支持账号状态更新及状态历史记录功能 - 提供账号列表、历史和统计信息查询API - 实现账号轮询机制,支持按使用时间轮询获取账号 - 增加账号登录流程及批量登录功能,集成接码平台和平台API - 管理账号订单容量,支持容量检查与账号登录触发 - 提供账号池状态统计接口 - 账号历史记录查询支持多种变更类型文本展示 - 密码等敏感信息采用脱敏展示 - 完善日志记录和错误处理机制,保证业务稳定运行
97 lines
3.0 KiB
Go
97 lines
3.0 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"kami/internal/controller/camel_oil"
|
|
"kami/internal/controller/card_info_apple"
|
|
"kami/internal/controller/card_info_c_trip"
|
|
"kami/internal/controller/card_info_jd"
|
|
"kami/internal/controller/card_info_original_jd"
|
|
"kami/internal/controller/card_info_t_mall_game"
|
|
"kami/internal/controller/card_info_walmart"
|
|
"kami/internal/controller/jd_cookie"
|
|
monitorCtrl "kami/internal/controller/monitor"
|
|
"kami/internal/controller/order"
|
|
"kami/internal/controller/restriction"
|
|
"kami/internal/controller/sysUser"
|
|
"kami/internal/controller/sys_payment"
|
|
"kami/internal/controller/sys_user_login"
|
|
"kami/internal/controller/sys_user_login_log"
|
|
"kami/internal/controller/user_center"
|
|
"kami/utility/cron"
|
|
"kami/utility/monitor"
|
|
"kami/utility/pool"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/net/ghttp"
|
|
"github.com/gogf/gf/v2/os/gcmd"
|
|
"github.com/gogf/gf/v2/os/gcron"
|
|
"github.com/gogf/gf/v2/os/glog"
|
|
|
|
"kami/internal/controller/channel"
|
|
"kami/internal/controller/merchant"
|
|
"kami/internal/controller/road"
|
|
"kami/internal/controller/road_pool"
|
|
"kami/internal/controller/validation"
|
|
"kami/internal/middleware"
|
|
)
|
|
|
|
var Main = gcmd.Command{
|
|
Name: "main",
|
|
Usage: "main",
|
|
Brief: "start http server",
|
|
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
|
|
s := g.Server()
|
|
s.Group("/api", func(group *ghttp.RouterGroup) {
|
|
group.Middleware(ghttp.MiddlewareCORS, ghttp.MiddlewareHandlerResponse,
|
|
middleware.ErrorHandler, ghttp.MiddlewareGzip, ghttp.MiddlewareNeverDoneCtx)
|
|
group.Bind(validation.NewV1()) // 验证码接口
|
|
group.Bind(sys_user_login.NewV1())
|
|
group.Bind(monitorCtrl.NewV1())
|
|
group.Middleware(middleware.LoginOrIframeAuth)
|
|
group.Bind(channel.NewV2())
|
|
group.Bind(merchant.NewV1())
|
|
group.Bind(road.NewV1())
|
|
group.Bind(road_pool.NewV1())
|
|
group.Bind(order.NewV1())
|
|
group.Bind(sysUser.NewV1())
|
|
// group.Bind(fund.NewV1())
|
|
// group.Bind(channel.NewV1())
|
|
// group.Bind(authority.NewV1())
|
|
group.Bind(sys_payment.NewV1())
|
|
group.Bind(user_center.NewV1())
|
|
group.Bind(card_info_apple.NewV1())
|
|
group.Bind(card_info_t_mall_game.NewV1())
|
|
group.Bind(card_info_jd.NewV1())
|
|
group.Bind(restriction.NewV1())
|
|
group.Bind(card_info_walmart.NewV1())
|
|
group.Bind(card_info_original_jd.NewV1())
|
|
group.Bind(card_info_c_trip.NewV1())
|
|
group.Bind(jd_cookie.NewV1())
|
|
group.Bind(sys_user_login_log.New())
|
|
group.Bind(camel_oil.NewV1()) // 骆驼加油订单处理模块
|
|
})
|
|
monitor.Register(ctx) // 注册监控任务
|
|
cron.Register(ctx) // 注册轮询任务
|
|
quit := make(chan os.Signal, 1)
|
|
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
|
s.Run()
|
|
GracefulDown(ctx, quit)
|
|
return nil
|
|
},
|
|
}
|
|
|
|
func GracefulDown(ctx context.Context, quit chan os.Signal) {
|
|
sig := <-quit
|
|
glog.Printf(ctx, "Signal received: %s, stopping cron", sig)
|
|
glog.Print(ctx, "Waiting for all cron jobs to complete...")
|
|
//关闭轮询任务
|
|
gcron.StopGracefully()
|
|
glog.Print(ctx, "All cron jobs completed")
|
|
// 关闭线程池
|
|
pool.GracefulDown()
|
|
}
|