修改PC任务领取
This commit is contained in:
@ -8,7 +8,6 @@ import (
|
||||
"github.com/gogf/gf/v2/os/glog"
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/gogf/gf/v2/util/guid"
|
||||
"server/internal/consts"
|
||||
"server/internal/dao"
|
||||
"server/internal/model"
|
||||
@ -343,7 +342,7 @@ func (s *sTask) GetSelectorList(ctx context.Context, in *model.SelectorIn) (out
|
||||
return &data, nil
|
||||
}
|
||||
|
||||
// GetTask 完成任务
|
||||
// GetTask 领取任务
|
||||
func (s *sTask) GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.GetTaskOut, err error) {
|
||||
var storeId int
|
||||
if in.StoreId > 0 {
|
||||
@ -377,53 +376,56 @@ func (s *sTask) GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.Ge
|
||||
return nil, ecode.Fail.Sub("查询用户该任务记录失败")
|
||||
}
|
||||
|
||||
if userTask != nil {
|
||||
return nil, ecode.Fail.Sub("该任务记录已存在")
|
||||
}
|
||||
//if userTask != nil {
|
||||
// return nil, ecode.Fail.Sub("该任务记录已存在")
|
||||
//}
|
||||
|
||||
// TODO 流水号未知
|
||||
serialNumber, err := snowid.GetSnowClient().GenerateSerialNumber()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("生成流水号异常")
|
||||
}
|
||||
|
||||
if err = dao.UserTasks.Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {
|
||||
// 创建任务记录
|
||||
id, err := dao.UserTasks.Ctx(ctx).InsertAndGetId(do.UserTasks{
|
||||
UserId: in.UserId,
|
||||
TaskId: in.TaskId,
|
||||
StoreId: storeId,
|
||||
Status: 1,
|
||||
SerialNumber: serialNumber,
|
||||
TaskName: in.TaskName,
|
||||
GameId: in.GameId,
|
||||
TaskType: in.TaskType,
|
||||
})
|
||||
if userTask == nil {
|
||||
// TODO 流水号未知
|
||||
serialNumber, err := snowid.GetSnowClient().GenerateSerialNumber()
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("创建用户任务记录失败")
|
||||
return nil, ecode.Fail.Sub("生成流水号异常")
|
||||
}
|
||||
|
||||
// 查询该任务相关联的奖励, 创建对应奖励下发记录id
|
||||
array, err := dao.TaskRewards.Ctx(ctx).LeftJoin(dao.Rewards.Table(), "rewards.id = task_rewards.reward_id").Where(do.TaskRewards{TaskId: in.TaskId}).Fields(dao.TaskRewards.Columns().RewardId).Fields(dao.Rewards.Columns().Name).All()
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("获取任务关联奖励列表失败")
|
||||
}
|
||||
for _, v := range array {
|
||||
_, err = dao.UserTaskRewards.Ctx(ctx).Data(do.UserTaskRewards{
|
||||
UserTaskId: id,
|
||||
RewardId: v["reward_id"].Int64(),
|
||||
RewardName: v["name"].String(),
|
||||
Status: consts.RewardInitStatus,
|
||||
InnerOrderId: fmt.Sprintf("reward%s", guid.S()),
|
||||
}).Insert()
|
||||
if err = dao.UserTasks.Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {
|
||||
// 创建任务记录
|
||||
_, err = dao.UserTasks.Ctx(ctx).InsertAndGetId(do.UserTasks{
|
||||
UserId: in.UserId,
|
||||
TaskId: in.TaskId,
|
||||
StoreId: storeId,
|
||||
Status: 1,
|
||||
SerialNumber: serialNumber,
|
||||
TaskName: in.TaskName,
|
||||
GameId: in.GameId,
|
||||
TaskType: in.TaskType,
|
||||
})
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("创建用户任务奖励记录失败")
|
||||
return ecode.Fail.Sub("创建用户任务记录失败")
|
||||
}
|
||||
|
||||
// 查询该任务相关联的奖励, 创建对应奖励下发记录id
|
||||
//array, err := dao.TaskRewards.Ctx(ctx).LeftJoin(dao.Rewards.Table(), "rewards.id = task_rewards.reward_id").Where(do.TaskRewards{TaskId: in.TaskId}).Fields(dao.TaskRewards.Columns().RewardId).Fields(dao.Rewards.Columns().Name).All()
|
||||
//if err != nil {
|
||||
// return ecode.Fail.Sub("获取任务关联奖励列表失败")
|
||||
//}
|
||||
//for _, v := range array {
|
||||
// _, err = dao.UserTaskRewards.Ctx(ctx).Data(do.UserTaskRewards{
|
||||
// UserTaskId: id,
|
||||
// RewardId: v["reward_id"].Int64(),
|
||||
// RewardName: v["name"].String(),
|
||||
// Status: consts.RewardInitStatus,
|
||||
// InnerOrderId: fmt.Sprintf("reward%s", guid.S()),
|
||||
// }).Insert()
|
||||
// if err != nil {
|
||||
// return ecode.Fail.Sub("创建用户任务奖励记录失败")
|
||||
// }
|
||||
//}
|
||||
return
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &model.GetTaskOut{
|
||||
Success: true,
|
||||
}, nil
|
||||
@ -682,7 +684,7 @@ func (s *sTask) GetTaskList(ctx context.Context, in *model.GetTaskListV2In) (out
|
||||
return nil, ecode.Fail.Sub("获取任务奖励列表失败")
|
||||
}
|
||||
|
||||
if int(v.UserTimes) >= v.TargetTimes {
|
||||
if int(v.UserTimes) >= v.TargetTimes && v.Status == 1 {
|
||||
completedTime := gtime.Now()
|
||||
// 判断当前用户完成情况,已完成根据任务、用户,任务类型检查是否存在用户任务记录
|
||||
orm := dao.UserTasks.Ctx(ctx).Where(do.UserTasks{UserId: in.UserId, TaskId: v.TaskID})
|
||||
|
||||
Reference in New Issue
Block a user