com.snow.auto_monitor/app/http/controllers/product/product.go

175 lines
3.3 KiB
Go
Raw Normal View History

2024-07-12 18:11:21 +08:00
package product
import (
"time"
"com.snow.auto_monitor/app/constants/errorcode"
common "com.snow.auto_monitor/app/http/controllers"
proEnt "com.snow.auto_monitor/app/http/entities/product"
proMod "com.snow.auto_monitor/app/models/product"
proServ "com.snow.auto_monitor/app/services/product"
"github.com/gin-gonic/gin"
)
func GetById(c *gin.Context) {
request := new(proEnt.GetListByIdReq)
err := common.GenRequest(c, request)
if err != nil {
common.Error(c, errorcode.ParamError)
return
}
res, err := proServ.GetById(request.Id)
if err != nil {
common.Error500(c)
return
}
var response *proEnt.GetListByIdResp = nil
if res != nil {
response = &proEnt.GetListByIdResp{
2024-07-17 17:04:25 +08:00
Id: res.Id,
Name: res.Name,
Price: res.Price,
ProductUrl: res.ProductUrl,
Status: res.Status,
CreatedAt: res.CreatedAt.Format(time.RFC3339),
2024-07-12 18:11:21 +08:00
}
}
common.Success(c, response)
}
func Search(c *gin.Context) {
request := new(proEnt.SearcgReq)
err := common.GenRequest(c, request)
if err != nil {
common.Error(c, errorcode.ParamError)
return
}
start, end := "", ""
if len(request.CreatedAt) > 1 {
start = request.CreatedAt[0]
end = request.CreatedAt[1]
}
res, err := proServ.Search(
request.Id,
request.Name,
start,
end,
request.PageSize,
request.PageNum,
)
if err != nil {
common.Error500(c)
return
}
var response []*proEnt.SearchResp = nil
if len(res) > 0 {
for _, item := range res {
response = append(response, &proEnt.SearchResp{
2024-07-17 17:04:25 +08:00
Id: item.Id,
Name: item.Name,
Price: item.Price,
ProductUrl: item.ProductUrl,
Status: item.Status,
CreatedAt: item.CreatedAt.Format(time.RFC3339),
2024-07-12 18:11:21 +08:00
})
}
}
total, err := proServ.CountAll(
request.Id,
request.Name,
start,
end,
)
if err != nil {
common.Error500(c)
return
}
common.SuccessWithList(c, response, total)
}
func Create(c *gin.Context) {
request := new(proEnt.CreateReq)
err := common.GenRequest(c, request)
if err != nil {
common.Error(c, errorcode.ParamError)
return
}
product := &proMod.Product{
2024-07-17 17:04:25 +08:00
Name: request.Name,
Price: request.Price,
ProductUrl: request.ProductUrl,
Status: 1, //1.上架 2.下架
2024-07-12 18:11:21 +08:00
}
affected, err := proServ.Create(product)
if err != nil && affected > 0 {
common.Error500(c)
return
}
response := &proEnt.CreateResp{
Id: product.Id,
}
common.Success(c, response)
}
func Update(c *gin.Context) {
request := new(proEnt.UpdateReq)
err := common.GenRequest(c, request)
if err != nil {
common.Error(c, errorcode.ParamError)
return
}
product := &proMod.Product{
2024-07-17 17:04:25 +08:00
Id: request.Id,
Name: request.Name,
ProductUrl: request.ProductUrl,
Price: request.Price,
2024-07-12 18:11:21 +08:00
}
affected, err := proServ.Update(product)
if err != nil && affected > 0 {
common.Error500(c)
return
}
response := &proEnt.UpdateResp{
Id: product.Id,
}
common.Success(c, response)
}
func Delete(c *gin.Context) {
request := new(proEnt.DeleteReq)
err := common.GenRequest(c, request)
if err != nil {
common.Error(c, errorcode.ParamError)
return
}
affected, err := proServ.Delete(request.Id)
if err != nil && affected > 0 {
common.Error500(c)
return
}
response := &proEnt.DeleteResp{
Id: request.Id,
}
common.Success(c, response)
}