You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
4.1 KiB
161 lines
4.1 KiB
package v1 |
|
|
|
import ( |
|
"context" |
|
v1pb "go-common/app/admin/live/live-admin/api/http/v1" |
|
"go-common/app/admin/live/live-admin/conf" |
|
"go-common/app/admin/live/live-admin/dao" |
|
v0av "go-common/app/service/live/av/api/liverpc/v0" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
) |
|
|
|
// PayGoodsService struct |
|
type PayGoodsService struct { |
|
conf *conf.Config |
|
// optionally add other properties here, such as dao |
|
// dao *dao.Dao |
|
} |
|
|
|
//NewPayGoodsService init |
|
func NewPayGoodsService(c *conf.Config) (s *PayGoodsService) { |
|
s = &PayGoodsService{ |
|
conf: c, |
|
} |
|
return s |
|
} |
|
|
|
// Add implementation |
|
// * 生成一张付费直播票 |
|
func (s *PayGoodsService) Add(ctx context.Context, req *v1pb.PayGoodsAddReq) (resp *v1pb.PayGoodsAddResp, err error) { |
|
resp = &v1pb.PayGoodsAddResp{} |
|
log.Info("Add params:%v", req) |
|
r, err := dao.AvApi.V0PayGoods.Add(ctx, &v0av.PayGoodsAddReq{ |
|
Platform: req.Platform, |
|
Title: req.Title, |
|
Type: req.Type, |
|
Price: req.Price, |
|
StartTime: req.StartTime, |
|
EndTime: req.EndTime, |
|
IpLimit: req.IpLimit, |
|
}) |
|
if err != nil { |
|
log.Error("call av error,err:%v", err) |
|
return |
|
} |
|
if r.Code != 0 { |
|
log.Error("call av error,code:%v,msg:%v", r.Code, r.Msg) |
|
err = ecode.Error(ecode.Int(int(r.Code)), r.Msg) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// Update implementation |
|
// * 更新一张付费直播票 |
|
func (s *PayGoodsService) Update(ctx context.Context, req *v1pb.PayGoodsUpdateReq) (resp *v1pb.PayGoodsUpdateResp, err error) { |
|
resp = &v1pb.PayGoodsUpdateResp{} |
|
log.Info("Update params:%v", req) |
|
r, err := dao.AvApi.V0PayGoods.Update(ctx, &v0av.PayGoodsUpdateReq{ |
|
Id: req.Id, |
|
Platform: req.Platform, |
|
Title: req.Title, |
|
Type: req.Type, |
|
Price: req.Price, |
|
StartTime: req.StartTime, |
|
EndTime: req.EndTime, |
|
IpLimit: req.IpLimit, |
|
}) |
|
if err != nil { |
|
log.Error("call av error,err:%v", err) |
|
return |
|
} |
|
if r.Code != 0 { |
|
log.Error("call av error,code:%v,msg:%v", r.Code, r.Msg) |
|
err = ecode.Error(ecode.Int(int(r.Code)), r.Msg) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// GetList implementation |
|
// * 获取付费直播票列表 |
|
func (s *PayGoodsService) GetList(ctx context.Context, req *v1pb.PayGoodsGetListReq) (resp *v1pb.PayGoodsGetListResp, err error) { |
|
resp = &v1pb.PayGoodsGetListResp{} |
|
r, err := dao.AvApi.V0PayGoods.GetList(ctx, &v0av.PayGoodsGetListReq{ |
|
Id: req.Id, |
|
Platform: req.Platform, |
|
Title: req.Title, |
|
Type: req.Type, |
|
IpLimit: req.IpLimit, |
|
PageNum: req.PageNum, |
|
PageSize: req.PageSize, |
|
}) |
|
if err != nil { |
|
log.Error("call av error,err:%v", err) |
|
return |
|
} |
|
if r.Code != 0 { |
|
log.Error("call av error,code:%v,msg:%v", r.Code, r.Msg) |
|
err = ecode.Error(ecode.Int(int(r.Code)), r.Msg) |
|
return |
|
} |
|
data := r.Data |
|
resp.PageInfo = &v1pb.PayGoodsGetListResp_PageInfo{ |
|
TotalCount: data.PageInfo.TotalCount, |
|
PageNum: data.PageInfo.PageNum, |
|
} |
|
for _, v := range r.Data.GoodsInfo { |
|
tmp := &v1pb.PayGoodsGetListResp_GoodsInfo{ |
|
Id: v.Id, |
|
Title: v.Title, |
|
Platform: v.Platform, |
|
Type: v.Type, |
|
Price: v.Price, |
|
StartTime: v.StartTime, |
|
EndTime: v.EndTime, |
|
IpLimit: v.IpLimit, |
|
Status: v.Status, |
|
} |
|
resp.GoodsInfo = append(resp.GoodsInfo, tmp) |
|
} |
|
return |
|
} |
|
|
|
// Close implementation |
|
// * 关闭购票 |
|
func (s *PayGoodsService) Close(ctx context.Context, req *v1pb.PayGoodsCloseReq) (resp *v1pb.PayGoodsCloseResp, err error) { |
|
resp = &v1pb.PayGoodsCloseResp{} |
|
r, err := dao.AvApi.V0PayGoods.Close(ctx, &v0av.PayGoodsCloseReq{ |
|
Id: req.Id, |
|
}) |
|
if err != nil { |
|
log.Error("call av error,err:%v", err) |
|
return |
|
} |
|
if r.Code != 0 { |
|
log.Error("call av error,code:%v,msg:%v", r.Code, r.Msg) |
|
err = ecode.Error(ecode.Int(int(r.Code)), r.Msg) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// Open implementation |
|
// * 开启购票 |
|
func (s *PayGoodsService) Open(ctx context.Context, req *v1pb.PayGoodsOpenReq) (resp *v1pb.PayGoodsOpenResp, err error) { |
|
resp = &v1pb.PayGoodsOpenResp{} |
|
r, err := dao.AvApi.V0PayGoods.Open(ctx, &v0av.PayGoodsOpenReq{ |
|
Id: req.Id, |
|
}) |
|
if err != nil { |
|
log.Error("call av error,err:%v", err) |
|
return |
|
} |
|
if r.Code != 0 { |
|
log.Error("call av error,code:%v,msg:%v", r.Code, r.Msg) |
|
err = ecode.Error(ecode.Int(int(r.Code)), r.Msg) |
|
return |
|
} |
|
return |
|
}
|
|
|