196 lines
5.0 KiB
Go
196 lines
5.0 KiB
Go
package strategymanage
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/go-admin-team/go-admin-core/logger"
|
|
"github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
|
"go-admin/common/apis"
|
|
"time"
|
|
|
|
"go-admin/app/admin/models"
|
|
"net/http"
|
|
)
|
|
|
|
const QueryTimeFormat = "2006-01-02 15:04:05"
|
|
|
|
type StrategyDeployService struct {
|
|
apis.Api
|
|
}
|
|
|
|
func (e StrategyDeployService) StrategyList(c *gin.Context) {
|
|
fmt.Println("StrategyList")
|
|
err := e.MakeContext(c).MakeOrm().Errors
|
|
if err != nil {
|
|
fmt.Println("MakeContext err:", err)
|
|
e.Logger.Error(err)
|
|
return
|
|
}
|
|
|
|
req := &models.StrategyListReq{}
|
|
if c.ShouldBindJSON(req) != nil {
|
|
logger.Errorf("para err")
|
|
response.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
|
return
|
|
}
|
|
//resp, err := req.List()
|
|
//if err != nil {
|
|
// logger.Errorf("err:", err)
|
|
// response.Error(c, http.StatusInternalServerError, err, "查询失败")
|
|
// return
|
|
//}
|
|
resp := models.StrategyListResp{
|
|
PageNum: req.PageNum,
|
|
}
|
|
|
|
pageNum := req.PageNum - 1
|
|
if pageNum < 0 {
|
|
pageNum = 0
|
|
}
|
|
if req.PageSize == 0 {
|
|
req.PageSize = 10
|
|
}
|
|
resp.PageSize = req.PageSize
|
|
if e.Orm == nil {
|
|
fmt.Println("Orm is nil")
|
|
}
|
|
var count int64
|
|
qs := e.Orm.Model(&models.Strategy{})
|
|
err = qs.Count(&count).Error
|
|
if err != nil {
|
|
logger.Errorf("count err:", err)
|
|
response.Error(c, http.StatusInternalServerError, err, "查询失败")
|
|
return
|
|
}
|
|
|
|
var strategies []models.Strategy
|
|
err = qs.Order("id ").Offset(pageNum * req.PageSize).Limit(req.PageSize).Find(&strategies).Error
|
|
if err != nil {
|
|
logger.Errorf("strategies err:%#v", err)
|
|
response.Error(c, http.StatusInternalServerError, err, "查询失败")
|
|
return
|
|
}
|
|
|
|
resp.List = strategies
|
|
|
|
e.OK(resp, "")
|
|
}
|
|
|
|
func (e StrategyDeployService) StrategyCreate(c *gin.Context) {
|
|
err := e.MakeContext(c).MakeOrm().Errors
|
|
if err != nil {
|
|
e.Logger.Error(err)
|
|
return
|
|
}
|
|
req := &models.Strategy{}
|
|
if c.ShouldBindJSON(&req) != nil {
|
|
logger.Errorf("para err")
|
|
response.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
|
return
|
|
}
|
|
exist, err := models.QueryRecordExist(fmt.Sprintf("SELECT * FROM strategy WHERE domain='%s'", req.Domain), e.Orm)
|
|
if err != nil {
|
|
logger.Errorf("err:", err)
|
|
response.Error(c, http.StatusInternalServerError, err, "创建失败")
|
|
return
|
|
}
|
|
if exist {
|
|
logger.Info("域名已存在")
|
|
response.Error(c, http.StatusInternalServerError, err, "域名已存在")
|
|
return
|
|
}
|
|
//req.OperatingInterval = fmt.Sprintf("%s~%s", req.StartTime.Format(time.DateOnly), req.EndTime.Format(time.DateOnly))
|
|
|
|
err = e.Orm.Create(req).Error
|
|
if err != nil {
|
|
logger.Info("Create Strategy err:", err)
|
|
response.Error(c, http.StatusInternalServerError, err, "域名已存在")
|
|
return
|
|
}
|
|
|
|
e.OK(req, "")
|
|
}
|
|
|
|
func (e StrategyDeployService) StrategyDetail(c *gin.Context) {
|
|
fmt.Println("StrategyDetail")
|
|
err := e.MakeContext(c).MakeOrm().Errors
|
|
if err != nil {
|
|
fmt.Println("MakeContext err:", err)
|
|
e.Logger.Error(err)
|
|
return
|
|
}
|
|
|
|
req := &models.StrategyDetailReq{}
|
|
if c.ShouldBindJSON(req) != nil {
|
|
logger.Errorf("para err")
|
|
response.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
|
return
|
|
}
|
|
|
|
qs := e.Orm.Model(&models.Strategy{}).Where("domain = ?", req.Domain)
|
|
|
|
var strategies models.Strategy
|
|
err = qs.Find(&strategies).Error
|
|
if err != nil {
|
|
logger.Errorf("strategies err:%#v", err)
|
|
response.Error(c, http.StatusInternalServerError, err, "查询失败")
|
|
return
|
|
}
|
|
|
|
e.OK(strategies, "")
|
|
}
|
|
|
|
func (e StrategyDeployService) StrategyUpdate(c *gin.Context) {
|
|
fmt.Println("StrategyUpdate")
|
|
err := e.MakeContext(c).MakeOrm().Errors
|
|
if err != nil {
|
|
fmt.Println("MakeContext err:", err)
|
|
e.Logger.Error(err)
|
|
return
|
|
}
|
|
|
|
req := &models.StrategyUpdate{}
|
|
if c.ShouldBindJSON(req) != nil {
|
|
logger.Errorf("para err")
|
|
response.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
|
return
|
|
}
|
|
|
|
updateData := &models.Strategy{}
|
|
updateData.ID = req.ID
|
|
updateData.CreatedAt = req.CreatedAt
|
|
updateData.UpdatedAt = req.UpdatedAt
|
|
updateData.Name = req.Name
|
|
updateData.Domain = req.Domain
|
|
updateData.OperatingInterval = req.OperatingInterval
|
|
updateData.PageDepth = req.PageDepth
|
|
updateData.AdClickCount = req.AdClickCount
|
|
updateData.SearchBehavior = req.SearchBehavior
|
|
updateData.PageTime = req.PageTime
|
|
|
|
parseStartTime, err := time.Parse(QueryTimeFormat, req.StartTime)
|
|
if err != nil {
|
|
logger.Errorf("para err:StartTime")
|
|
response.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
|
return
|
|
}
|
|
updateData.StartTime = parseStartTime
|
|
|
|
parseEndTime, err := time.Parse(QueryTimeFormat, req.EndTime)
|
|
if err != nil {
|
|
logger.Errorf("para err:EndTime")
|
|
response.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
|
return
|
|
}
|
|
updateData.EndTime = parseEndTime
|
|
|
|
if err = e.Orm.Model(&models.Strategy{}).Where("id = ?", updateData.ID).Updates(&updateData).Error; err != nil {
|
|
logger.Errorf("strategies err:%#v", err)
|
|
response.Error(c, http.StatusInternalServerError, err, "更新失败")
|
|
return
|
|
}
|
|
|
|
e.OK(req, "")
|
|
}
|