2025-12-06 15:24:30 +08:00
|
|
|
package controller
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
|
2025-12-09 16:10:45 +08:00
|
|
|
"cid/model/dto"
|
|
|
|
|
"cid/service"
|
2025-12-06 15:24:30 +08:00
|
|
|
)
|
|
|
|
|
|
2025-12-08 16:56:38 +08:00
|
|
|
var Application = new(application)
|
2025-12-06 15:24:30 +08:00
|
|
|
|
|
|
|
|
type application struct{}
|
|
|
|
|
|
|
|
|
|
// CreateApplication 创建应用
|
|
|
|
|
func (c *application) CreateApplication(ctx context.Context, req *dto.CreateApplicationReq) (res *dto.CreateApplicationRes, err error) {
|
|
|
|
|
id, err := service.Application.CreateApplication(ctx, req)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.CreateApplicationRes{
|
|
|
|
|
ID: id,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// UpdateApplication 更新应用
|
|
|
|
|
func (c *application) UpdateApplication(ctx context.Context, req *dto.UpdateApplicationReq) (res *dto.UpdateApplicationRes, err error) {
|
|
|
|
|
affected, err := service.Application.UpdateApplication(ctx, req.ID, req)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.UpdateApplicationRes{
|
|
|
|
|
Success: affected > 0,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetApplication 获取应用信息
|
|
|
|
|
func (c *application) GetApplication(ctx context.Context, req *dto.GetApplicationReq) (res *dto.GetApplicationRes, err error) {
|
|
|
|
|
app, err := service.Application.GetApplicationByID(ctx, req.ID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.GetApplicationRes{
|
|
|
|
|
ID: app.Id,
|
|
|
|
|
TenantID: app.TenantId,
|
|
|
|
|
Name: app.Name,
|
|
|
|
|
Code: app.Code,
|
|
|
|
|
Description: app.Description,
|
|
|
|
|
Platform: app.Platform,
|
|
|
|
|
PackageName: app.PackageName,
|
|
|
|
|
AppStoreURL: app.AppStoreURL,
|
|
|
|
|
Categories: app.Categories,
|
|
|
|
|
Tags: app.Tags,
|
|
|
|
|
AdTypes: app.AdTypes,
|
|
|
|
|
Status: app.Status,
|
|
|
|
|
AppKey: app.AppKey,
|
|
|
|
|
CallbackURL: app.CallbackURL,
|
|
|
|
|
CreatedAt: app.CreatedAt.Unix(),
|
|
|
|
|
UpdatedAt: app.UpdatedAt.Unix(),
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ListApplications 获取应用列表
|
|
|
|
|
func (c *application) ListApplications(ctx context.Context, req *dto.ListApplicationsReq) (res *dto.ListApplicationsRes, err error) {
|
|
|
|
|
list, total, err := service.Application.GetApplicationsByTenant(ctx, req.TenantID, req.Platform, req.Status, req.Page, req.Size)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 转换为响应格式
|
|
|
|
|
appItems := make([]dto.ApplicationItem, len(list))
|
|
|
|
|
for i, app := range list {
|
|
|
|
|
appItems[i] = dto.ApplicationItem{
|
|
|
|
|
ID: app.Id,
|
|
|
|
|
Name: app.Name,
|
|
|
|
|
Code: app.Code,
|
|
|
|
|
Description: app.Description,
|
|
|
|
|
Platform: app.Platform,
|
|
|
|
|
PackageName: app.PackageName,
|
|
|
|
|
Categories: app.Categories,
|
|
|
|
|
Tags: app.Tags,
|
|
|
|
|
AdTypes: app.AdTypes,
|
|
|
|
|
Status: app.Status,
|
|
|
|
|
DailyRequests: app.DailyRequests,
|
|
|
|
|
MonthlyRequests: app.MonthlyRequests,
|
|
|
|
|
CreatedAt: app.CreatedAt.Unix(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.ListApplicationsRes{
|
|
|
|
|
List: appItems,
|
|
|
|
|
Total: total,
|
|
|
|
|
Page: req.Page,
|
|
|
|
|
Size: req.Size,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ResetAPIKeys 重置API密钥
|
|
|
|
|
func (c *application) ResetAPIKeys(ctx context.Context, req *dto.ResetAPIKeysReq) (res *dto.ResetAPIKeysRes, err error) {
|
|
|
|
|
appKey, appSecret, err := service.Application.ResetAPIKeys(ctx, req.ID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.ResetAPIKeysRes{
|
|
|
|
|
AppKey: appKey,
|
|
|
|
|
AppSecret: appSecret,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ValidateApplication 验证应用权限
|
|
|
|
|
func (c *application) ValidateApplication(ctx context.Context, req *dto.ValidateApplicationReq) (res *dto.ValidateApplicationRes, err error) {
|
|
|
|
|
app, err := service.Application.ValidateApplication(ctx, req.AppKey, req.AppSecret)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return &dto.ValidateApplicationRes{
|
|
|
|
|
Valid: false,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tentantName := ""
|
|
|
|
|
|
|
|
|
|
return &dto.ValidateApplicationRes{
|
|
|
|
|
Valid: true,
|
|
|
|
|
AppID: app.Id,
|
|
|
|
|
AppName: app.Name,
|
|
|
|
|
TenantID: app.TenantId,
|
|
|
|
|
TenantName: tentantName,
|
|
|
|
|
Platform: app.Platform,
|
|
|
|
|
AdTypes: app.AdTypes,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DeleteApplication 删除应用
|
|
|
|
|
func (c *application) DeleteApplication(ctx context.Context, req *dto.DeleteApplicationReq) (res *dto.DeleteApplicationRes, err error) {
|
|
|
|
|
affected, err := service.Application.DeleteApplication(ctx, req.ID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.DeleteApplicationRes{
|
|
|
|
|
Success: affected > 0,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|