package service import ( containers "joybuywork/internal/service/containers/projectuser" "joybuywork/internal/service/provider/projectuser" pb "joybuywork/proto/go_proto/w_project_user" ) type WProjectUser struct { Service } // Point 积分 func (s *WProjectUser) Point(req *pb.PointReq, res *pb.PointRes) (err error) { defer s.checkErr() *res = pb.PointRes{} container := new(containers.Point) { container.Init(s.ctx) container.Req = req container.Res = res } return container.Run() } // EarnCoin 获取积分 func (s *WProjectUser) EarnCoin(req *pb.EarnCoinReq, res *pb.EarnCoinRes) (err error) { defer s.checkErr() project, err := s.ProjectErrNil(req.GetProjectId()) if err != nil { return } pu, err := projectuser.NewProjectUser(s.ctx, projectuser.WithInit(project.ID, req.GetUserId())) if err != nil { return } var earns []*projectuser.EarnCoinParam for _, earn := range req.GetEarns() { earns = append(earns, &projectuser.EarnCoinParam{ CoinNum: earn.GetCoinNum(), IsExpired: int8(earn.GetIsExpired()), ExpiredAt: earn.GetExpiredAt(), Source: earn.GetSource(), SourceID: earn.GetSourceId(), SourceData: earn.GetSourceData(), Operate: earn.GetOperate(), }) } err = pu.EarnCoin(earns...) if err != nil { return } *res = pb.EarnCoinRes{} return }