You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
3.6 KiB
Go

package controller
import (
"context"
"errors"
"fonchain-artshow/cmd/model"
"fonchain-artshow/cmd/service"
"fonchain-artshow/pb/artShow"
"fonchain-artshow/pkg/m"
)
type ArtShowProvider struct {
artShow.UnimplementedArtShowServer
}
func (p *ArtShowProvider) CreateShow(ctx context.Context, req *artShow.SaveShowReq) (res *artShow.SaveShowRes, err error) {
if req.ShowName == "" {
err = errors.New(m.ERROR_SHOW_NAME)
return nil, err
}
if req.ShowTime == "" {
err = errors.New(m.ERROR_TIME)
return nil, err
}
res = new(artShow.SaveShowRes)
err, showID := service.CreateArtShowWithArtworkPrice(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.ERROR_CREATE)
return res, err
}
res.Msg = m.CREATE_SUCCESS
res.ShowID = int64(showID)
return res, nil
}
func (p *ArtShowProvider) UpdateShow(ctx context.Context, req *artShow.SaveShowReq) (res *artShow.SaveShowRes, err error) {
if req.ID == 0 {
err = errors.New(m.ERROR_INVALID_ID)
return
}
res = new(artShow.SaveShowRes)
if req.IsShow == m.ARTSHOW_INSIDE {
showRel := new(model.ShowRel)
err, showRel = service.QueryShowRel(uint(req.ID))
if err != nil {
return res, err
}
if showRel.ID > 0 {
err = errors.New(m.ERROR_NOT_UPDATE_ISSHOW)
return
}
}
err, showID := service.UpdateArtShowWithArtworkPrice(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.UPDATE_FAILED)
return
}
res.Msg = m.UPDATE_SUCCESS
res.ShowID = int64(showID)
return
}
func (p *ArtShowProvider) DelShow(ctx context.Context, req *artShow.DelShowReq) (res *artShow.CommonRes, err error) {
if len(req.ShowID) < 1 {
err = errors.New(m.ERROR_INVALID_ID)
return
}
err = service.DelArtShow(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.ERROR_DELETE)
return
}
res.Msg = m.DELETE_SUCCESS
return
}
func (p *ArtShowProvider) ShowList(ctx context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) {
if req.Page == 0 {
req.Page = 1
}
if req.PageSize == 0 {
req.Page = 10
}
res = new(artShow.ShowListRes)
err, res = service.ArtShowList(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.ERROR_QUERY)
return
}
return
}
func (p *ArtShowProvider) ShowInfo(ctx context.Context, req *artShow.ShowDetailReq) (res *artShow.ShowArtworkDetailRes, err error) {
err, res = service.ShowInfo(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.ERROR_QUERY)
return
}
return
}
func (p *ArtShowProvider) ShowStatisticalInfo(ctx context.Context, req *artShow.ShowStatisticalInfoReq) (res *artShow.ShowStatisticalInfoRes, err error) {
res = new(artShow.ShowStatisticalInfoRes)
err, num := service.ShowStatisticalInfo(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.ERROR_Statistical_NUM)
return
}
res.Data = num
return
}
func (p *ArtShowProvider) ArtworkPrice(ctx context.Context, req *artShow.ArtworkPriceReq) (res *artShow.ArtworkPriceRes, err error) {
if req.ArtworkID == 0 {
err = errors.New(m.ERROR_INVALID_ID)
return
}
res = new(artShow.ArtworkPriceRes)
err, res = service.ArtworkPriceInfo(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.ERROR_QUERY)
return
}
return
}
func (p *ArtShowProvider) ShowListWithApply(ctx context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) {
if req.Page == 0 {
req.Page = 1
}
if req.PageSize == 0 {
req.Page = 10
}
if req.IsShow == 0 {
req.IsShow = 2
}
res = new(artShow.ShowListRes)
err, res = service.ArtShowListWithApply(req)
if err != nil {
res.Msg = err.Error()
err = errors.New(m.ERROR_QUERY)
return
}
return
}