package containers import ( "joybuywork/internal/plugins/jsonm" "joybuywork/internal/repository/finder" "joybuywork/internal/service/provider/projectuser" "joybuywork/internal/service/provider/s2s" "joybuywork/internal/utils/logic" pb "joybuywork/proto/go_proto/w_project_user" ) type Point struct { logic.Logic Req *pb.PointReq Res *pb.PointRes } func (s *Point) Run() (err error) { return logic.Run(s) } func (s *Point) Data() (data jsonm.JsonM) { data, _ = jsonm.Marshal(s.Req) return } func (s *Point) Exec() (err error) { pu, err := s.pu() if err != nil { return } if s.Req.GetPointSource() == 0 { return s.app(pu) } return s.sys(pu) } func (s *Point) pu() (pu *projectuser.ProjectUser, err error) { project, err := finder.Project(s.Ctx, s.Req.GetProjectId()) if err != nil { err = s.BE().CacheError(err) return } pu, err = projectuser.NewProjectUser(s.Ctx, projectuser.WithInit(project.ID, s.Req.GetUserId())) if err != nil { return } return } func (s *Point) app(pu *projectuser.ProjectUser) (err error) { userInfo, err := s2s.NewUserInfo(s.Ctx, pu.GetProjectUser(), s.Req.GetUrlId()) if err != nil { return } info, err := userInfo.UserInfo(s.Req.GetLangMark()) if err != nil { return } s.Res.CoinNum = info.CoinNum return } func (s *Point) sys(pu *projectuser.ProjectUser) (err error) { coin, err := pu.GetCoin() if err != nil { return } s.Res.CoinNum = coin.Num return }