特朗普头像任务

This commit is contained in:
lianghuanjie
2025-01-20 21:55:43 +08:00
parent 38bb283fa1
commit 9c742c50c3
18 changed files with 266 additions and 32 deletions

View File

@@ -33,7 +33,7 @@ func NewGetTaskRewardLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Get
}
}
func (l *GetTaskRewardLogic) GetTaskReward(req *types.TaskIdPath) (*types.GetTaskRewardResp, error) {
func (l *GetTaskRewardLogic) GetTaskReward(req *types.GetTaskRewardReq) (*types.GetTaskRewardResp, error) {
//uid := cast.ToStringMapInt(l.ctx.Value("data"))["id"]
uid := utils.GetUid(l.ctx)
task, err := l.svcCtx.TaskModel.FindOne(l.ctx, req.ID)
@@ -43,6 +43,22 @@ func (l *GetTaskRewardLogic) GetTaskReward(req *types.TaskIdPath) (*types.GetTas
}
return nil, errs.New(errs.ErrDatabaseOperate, err)
}
if task.Type == model.TASKTYPE_TRUMP_HEAD {
if req.RoleId == 0 {
return nil, errs.New(errs.ErrInvalidParam, "Must select role")
}
roleUid, err := l.svcCtx.RoleModel.FindRoleUserId(l.ctx, req.RoleId)
if err != nil {
if errors.Is(err, model.ErrNotFound) {
return nil, errs.New(errs.ErrRoleNotFound, "role not found")
}
return nil, errs.New(errs.ErrDatabaseOperate, err)
}
if roleUid != uint(uid) {
return nil, errs.New(errs.ErrRoleNotFound, "role not found")
}
}
var taskSeq int
if task.Type == model.TASKTYPE_DAILY_PAY || task.Type == model.TASKTYPE_AMBASSADOR_TASK {
taskSeq = cast.ToInt(time.Now().Format("20060102"))
@@ -62,6 +78,7 @@ func (l *GetTaskRewardLogic) GetTaskReward(req *types.TaskIdPath) (*types.GetTas
return nil, errs.New(errs.ErrTaskAlreadyReward, "task already reward")
}
assetType := consts.GetAssetType(task.RewardType)
// 修改状态,增加积分和记录都在事物中执行
err = l.svcCtx.DBConn.TransactCtx(l.ctx, func(ctx context.Context, session sqlx.Session) error {
// 修改状态
@@ -70,8 +87,9 @@ func (l *GetTaskRewardLogic) GetTaskReward(req *types.TaskIdPath) (*types.GetTas
if err != nil {
return err
}
// 给予用户奖励
err = l.svcCtx.AddUserAssetWithSession(l.ctx, session, uint(uid), consts.AssetType_Points, decimal.NewFromInt(int64(task.Points)), "完成任务:"+task.Title, uint64(task.Id), 0, true)
err = l.svcCtx.AddUserAssetWithSession(l.ctx, session, uint(uid), req.RoleId, assetType, task.PropertyId, decimal.NewFromInt(int64(task.Points)), "完成任务:"+task.Title, uint64(task.Id), 0, assetType == consts.AssetType_Points)
//err = l.svcCtx.TaskAssetModel.WithSession(session).AddPoint(l.ctx, uint(uid), decimal.NewFromInt(int64(task.Points)))
//if err != nil {
// return err