adjust triple

This commit is contained in:
yangduo 2024-12-12 18:08:25 +08:00
parent 3612e946bc
commit 74c74c73fe
9 changed files with 43 additions and 16 deletions

View File

@ -146,11 +146,15 @@ func (this *ActivityApi) RollDice(c *gin.Context) {
rspObj.GetOrCreateAward().AddItem(constant.VIRTUAL_ITEM_SCORE, score) rspObj.GetOrCreateAward().AddItem(constant.VIRTUAL_ITEM_SCORE, score)
} }
bageffect, taskupdate := service.Award.HandleAwards(user, rspObj.GetOrCreateAward()) bageffect, taskupdate, bufeffect := service.Award.HandleAwards(user, rspObj.GetOrCreateAward())
if bageffect { if bageffect {
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "bag") q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "bag")
} }
if bufeffect {
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "buff")
}
if fullgrid { if fullgrid {
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "fullgrid") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "fullgrid")
} }
@ -160,7 +164,7 @@ func (this *ActivityApi) RollDice(c *gin.Context) {
itemtype = constant.ITEM_TYPE_DICE itemtype = constant.ITEM_TYPE_DICE
} }
if service.Task.UpdateTaskProgress(s.GetAccountId(), int32(itemtype), 1, nil) || taskupdate { if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.TASK_COND_BACK_USE, int32(itemtype), 1, nil) || taskupdate {
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
} }
rspObj.GetOrCreateSideEffect().GetOrCreateUser().FromModel(user) rspObj.GetOrCreateSideEffect().GetOrCreateUser().FromModel(user)
@ -215,11 +219,15 @@ func (this *ActivityApi) Claim(c *gin.Context) {
rspObj.GetOrCreateAward().AddItem(item.ItemId, item.ItemNum) rspObj.GetOrCreateAward().AddItem(item.ItemId, item.ItemNum)
} }
bageffect, taskupdate := service.Award.HandleAwards(user, rspObj.GetOrCreateAward()) bageffect, taskupdate, bufeffect := service.Award.HandleAwards(user, rspObj.GetOrCreateAward())
if bageffect { if bageffect {
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "bag") q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "bag")
} }
if bufeffect {
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "buff")
}
if taskupdate { if taskupdate {
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "task") q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "task")
} }

View File

@ -82,7 +82,7 @@ func (this *BagApi) UseItem(c *gin.Context) {
bagItem.DecItemNum(1, int32(nowTime)) bagItem.DecItemNum(1, int32(nowTime))
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "buff") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "buff")
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "bag") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "bag")
if service.Task.UpdateTaskProgress(s.GetAccountId(), itemMeta.GetItemType(), reqJson.ItemNum, nil) { if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.TASK_COND_BACK_USE, itemMeta.GetItemType(), reqJson.ItemNum, nil) {
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
} }
c.JSON(200, rspObj) c.JSON(200, rspObj)

View File

@ -195,9 +195,14 @@ func (this *InAppShopApi) Callback(c *gin.Context) {
} }
} }
case constant.ITEM_TYPE_SCORE_DOUBLE_CARD: case constant.ITEM_TYPE_SCORE_DOUBLE_CARD:
service.Award.AddItem(orderModel.AccountId, itemcfg.GetId(), ordergoods.GetAmount(), nil) // service.Award.AddItem(orderModel.AccountId, itemcfg.GetId(), ordergoods.GetAmount(), nil)
for i := int32(0); i < ordergoods.GetAmount(); i++ {
service.Buff.Add(user.AccountId, itemcfg.GetBuffList())
}
service.Task.UpdateTaskProgress(user.AccountId, constant.TASK_COND_BACK_USE, itemcfg.GetItemType(), ordergoods.GetAmount(), nil)
} }
service.Task.UpdateTaskProgress(orderModel.AccountId, itemcfg.GetItemType(), ordergoods.GetAmount(), nil) service.Task.UpdateTaskProgress(orderModel.AccountId, constant.TASK_COND_BACK_BUY, itemcfg.GetItemType(), ordergoods.GetAmount(), nil)
user.UpdateUserFields() user.UpdateUserFields()
} }

View File

@ -148,7 +148,7 @@ func (this *MissionApi) ClaimTaskAward(c *gin.Context) {
if taskMeta.GetRewardType() == constant.TASK_AWARD_SCORE { if taskMeta.GetRewardType() == constant.TASK_AWARD_SCORE {
user.AddScore(taskMeta.GetReward()) user.AddScore(taskMeta.GetReward())
if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.ITEM_TYPE_SCORE, taskMeta.GetReward(), &tasks) { if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.TASK_COND_BACK_GAIN, constant.ITEM_TYPE_SCORE, taskMeta.GetReward(), &tasks) {
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
} }
rspObj.GetOrCreateAward().AddItem(constant.VIRTUAL_ITEM_SCORE, taskMeta.GetReward()) rspObj.GetOrCreateAward().AddItem(constant.VIRTUAL_ITEM_SCORE, taskMeta.GetReward())

View File

@ -97,7 +97,7 @@ func (this *ShopApi) Buy(c *gin.Context) {
rspObj.SideEffect.User = new(vo.User) rspObj.SideEffect.User = new(vo.User)
rspObj.SideEffect.User.FromModel(user) rspObj.SideEffect.User.FromModel(user)
rspObj.SideEffect.User.HourlyEarnings = service.Chip.GetHourEarning(user.AccountId) rspObj.SideEffect.User.HourlyEarnings = service.Chip.GetHourEarning(user.AccountId)
if service.Task.UpdateTaskProgress(s.GetAccountId(), itemMeta.GetItemType(), 1, nil) { if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.TASK_COND_BACK_BUY, itemMeta.GetItemType(), 1, nil) {
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
} }

View File

@ -54,7 +54,7 @@ func (this *UserApi) Login(c *gin.Context) {
f5.GetMsgQueue().FireEvent(constant.MSG_CREATE_USER, q5.Args{user}) f5.GetMsgQueue().FireEvent(constant.MSG_CREATE_USER, q5.Args{user})
service.Task.List(s.GetAccountId(), nil) service.Task.List(s.GetAccountId(), nil)
if user.Invited != "" { if user.Invited != "" {
service.Task.UpdateTaskProgress(user.Invited, 0, 1, nil) service.Task.UpdateTaskProgress(user.Invited, constant.TASK_COND_BACK_GAIN, 0, 1, nil)
invitor := new(model.User) invitor := new(model.User)
err, found := invitor.Find(user.Invited, nowTime) err, found := invitor.Find(user.Invited, nowTime)
if err == nil && found { if err == nil && found {
@ -79,7 +79,7 @@ func (this *UserApi) Login(c *gin.Context) {
earning := service.Chip.CalcScore(s.GetAccountId()) earning := service.Chip.CalcScore(s.GetAccountId())
if earning > 0 { if earning > 0 {
user.AddScore(earning) user.AddScore(earning)
if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.ITEM_TYPE_SCORE, earning, nil) { if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.TASK_COND_BACK_GAIN, constant.ITEM_TYPE_SCORE, earning, nil) {
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task") q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
} }
} }

View File

@ -54,14 +54,13 @@ func (this *award) AddItem(accountId string, itemId int32, itemNum int32, baseVo
} }
} }
func (aa *award) HandleAwards(user *model.User, totalaward *vo.Award) (bageffect bool, taskupdate bool) { func (aa *award) HandleAwards(user *model.User, totalaward *vo.Award) (bageffect bool, taskupdate bool, buffeffect bool) {
bageffect = false bageffect = false
for _, awarditem := range totalaward.Items { for _, awarditem := range totalaward.Items {
itemcfg := mt.Table.Item.GetById(int64(awarditem.ItemId)) itemcfg := mt.Table.Item.GetById(int64(awarditem.ItemId))
switch itemcfg.GetItemType() { switch itemcfg.GetItemType() {
case constant.ITEM_TYPE_SCORE: case constant.ITEM_TYPE_SCORE:
user.AddScore(awarditem.ItemNum) user.AddScore(awarditem.ItemNum)
taskupdate = Task.UpdateTaskProgress(user.AccountId, constant.ITEM_TYPE_SCORE, awarditem.ItemNum, nil)
case constant.ITEM_TYPE_DICE: case constant.ITEM_TYPE_DICE:
user.AddDice(awarditem.ItemNum) user.AddDice(awarditem.ItemNum)
case constant.ITEM_TYPE_SPEC_DICE: case constant.ITEM_TYPE_SPEC_DICE:
@ -81,14 +80,25 @@ func (aa *award) HandleAwards(user *model.User, totalaward *vo.Award) (bageffect
} }
} }
case constant.ITEM_TYPE_SCORE_DOUBLE_CARD: case constant.ITEM_TYPE_SCORE_DOUBLE_CARD:
fallthrough for i := int32(0); i < awarditem.ItemNum; i++ {
Buff.Add(user.AccountId, itemcfg.GetBuffList())
}
buffeffect = true
if !taskupdate {
taskupdate = Task.UpdateTaskProgress(user.AccountId, constant.TASK_COND_BACK_USE, constant.ITEM_TYPE_SCORE_DOUBLE_CARD, awarditem.ItemNum, nil)
}
case constant.ITEM_TYPE_SCORE_SMALL_GIFT_PACK: case constant.ITEM_TYPE_SCORE_SMALL_GIFT_PACK:
fallthrough fallthrough
case constant.ITEM_TYPE_SCORE_BIG_GIFT_PACK: case constant.ITEM_TYPE_SCORE_BIG_GIFT_PACK:
aa.AddItem(user.AccountId, awarditem.ItemId, awarditem.ItemNum, nil) aa.AddItem(user.AccountId, awarditem.ItemId, awarditem.ItemNum, nil)
bageffect = true bageffect = true
} }
if !taskupdate {
taskupdate = Task.UpdateTaskProgress(user.AccountId, constant.TASK_COND_BACK_GAIN, itemcfg.GetItemType(), awarditem.ItemNum, nil)
}
} }
return bageffect, taskupdate return bageffect, taskupdate, buffeffect
} }

View File

@ -97,7 +97,7 @@ func (this *chip) checkEarningLoop() {
if err == nil && found { if err == nil && found {
userearning := this.CalcScore(accountId) userearning := this.CalcScore(accountId)
user.AddScore(userearning) user.AddScore(userearning)
Task.UpdateTaskProgress(accountId, constant.ITEM_TYPE_SCORE, userearning, nil) Task.UpdateTaskProgress(accountId, constant.TASK_COND_BACK_GAIN, constant.ITEM_TYPE_SCORE, userearning, nil)
user.UpdateUserFields() user.UpdateUserFields()
} }
} else { } else {

View File

@ -129,7 +129,7 @@ func (this *task) List(accountId string, data *[]*vo.Mission) (errcode int32, ms
return 0, "" return 0, ""
} }
func (this *task) UpdateTaskProgress(accountId string, itemtypeid int32, amount int32, extasks *map[int32]*model.TaskItem) (taskupdate bool) { func (this *task) UpdateTaskProgress(accountId string, condition int32, itemtypeid int32, amount int32, extasks *map[int32]*model.TaskItem) (taskupdate bool) {
var tasks map[int32]*model.TaskItem var tasks map[int32]*model.TaskItem
var task *model.Task var task *model.Task
if extasks == nil { if extasks == nil {
@ -155,6 +155,10 @@ func (this *task) UpdateTaskProgress(accountId string, itemtypeid int32, amount
continue continue
} }
if taskMeta.GetCondition() != condition {
continue
}
if taskMeta.GetParam2() != itemtypeid { if taskMeta.GetParam2() != itemtypeid {
continue continue
} }