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.
76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
package service
|
|
|
|
import (
|
|
"joybuywork/internal/consts/ckey"
|
|
"joybuywork/internal/repository/cache"
|
|
"joybuywork/internal/service/containers"
|
|
"joybuywork/internal/utils/logic"
|
|
pb "joybuywork/proto/go_proto/w_coin"
|
|
)
|
|
|
|
type WCoin struct {
|
|
Service
|
|
}
|
|
|
|
// Save 积分配置保存
|
|
func (s *WCoin) Save(req *pb.SaveReq, res *pb.SaveRes) (err error) {
|
|
defer s.checkErr()
|
|
|
|
*res = pb.SaveRes{}
|
|
container := new(containers.CoinSave)
|
|
{
|
|
container.Init(s.ctx, logic.WithTran(), logic.WithOnce(ckey.ProjectCoinCreateOnce(req.GetProjectHashId())))
|
|
container.Req = req
|
|
container.Res = res
|
|
}
|
|
|
|
return container.Run()
|
|
}
|
|
|
|
// Show 积分配置展示
|
|
func (s *WCoin) Show(req *pb.ShowReq, res *pb.ShowRes) (err error) {
|
|
defer s.checkErr()
|
|
|
|
project, err := s.ProjectErrNil(req.GetProjectHashId(), req.GetProjectId())
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
coin, err := cache.NewTCoin(s.ctx).FindByProjectId(project.ID)
|
|
if err != nil {
|
|
err = s.BE().CacheError(err)
|
|
return
|
|
}
|
|
|
|
if coin == nil {
|
|
return
|
|
}
|
|
|
|
m := s.GetDao().TCoinLang
|
|
langs, err := m.WithContext(s.ctx).Where(m.TCoinID.Eq(coin.ID)).Find()
|
|
if err != nil {
|
|
err = s.BE().MysqlError(err)
|
|
return
|
|
}
|
|
|
|
var list = make([]*pb.ShowRes_Lang, 0, len(langs))
|
|
for _, l := range langs {
|
|
list = append(list, &pb.ShowRes_Lang{
|
|
LangMark: l.LangMark,
|
|
Title: l.Title,
|
|
ImgUrl: l.ImgURL,
|
|
Rule: l.Rule,
|
|
IsDefault: int32(l.IsDefault),
|
|
})
|
|
}
|
|
|
|
*res = pb.ShowRes{
|
|
Title: coin.Title,
|
|
OpenPush: int32(coin.OpenPush),
|
|
ExpSelect: coin.GetExpSelect(),
|
|
Langs: list,
|
|
}
|
|
|
|
return
|
|
}
|