task
This commit is contained in:
parent
94e4b77ec3
commit
a709f7f513
@ -137,13 +137,23 @@ func (this *ActivityApi) RollDice(c *gin.Context) {
|
|||||||
|
|
||||||
rspObj.GetOrCreateAward().AddItem(constant.VIRTUAL_ITEM_SCORE, score)
|
rspObj.GetOrCreateAward().AddItem(constant.VIRTUAL_ITEM_SCORE, score)
|
||||||
|
|
||||||
if service.Award.HandleAwards(user, rspObj.GetOrCreateAward()) {
|
bageffect, taskupdate := service.Award.HandleAwards(user, rspObj.GetOrCreateAward())
|
||||||
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "bag")
|
if bageffect {
|
||||||
|
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "bag")
|
||||||
}
|
}
|
||||||
|
|
||||||
if fullgrid {
|
if fullgrid {
|
||||||
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "fullgrid")
|
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "fullgrid")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
itemtype := constant.ITEM_TYPE_SPEC_DICE
|
||||||
|
if reqJson.ForwardPoint == 0 {
|
||||||
|
itemtype = constant.ITEM_TYPE_DICE
|
||||||
|
}
|
||||||
|
|
||||||
|
if service.Task.UpdateTaskProgress(s.GetAccountId(), int32(itemtype), 1, nil) || taskupdate{
|
||||||
|
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
|
||||||
|
}
|
||||||
rspObj.GetOrCreateSideEffect().GetOrCreateUser().FromModel(user)
|
rspObj.GetOrCreateSideEffect().GetOrCreateUser().FromModel(user)
|
||||||
|
|
||||||
c.JSON(200, rspObj)
|
c.JSON(200, rspObj)
|
||||||
@ -194,9 +204,14 @@ func (this *ActivityApi) Claim(c *gin.Context) {
|
|||||||
rspObj.GetOrCreateAward().AddItem(item.ItemId, item.ItemNum)
|
rspObj.GetOrCreateAward().AddItem(item.ItemId, item.ItemNum)
|
||||||
}
|
}
|
||||||
|
|
||||||
if service.Award.HandleAwards(user, rspObj.GetOrCreateAward()) {
|
bageffect, taskupdate := service.Award.HandleAwards(user, rspObj.GetOrCreateAward())
|
||||||
|
if bageffect {
|
||||||
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "bag")
|
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "bag")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if taskupdate {
|
||||||
|
q5.AppendSlice(&rspObj.GetOrCreateSideEffect().Effects, "task")
|
||||||
|
}
|
||||||
rspObj.GetOrCreateSideEffect().GetOrCreateUser().FromModel(user)
|
rspObj.GetOrCreateSideEffect().GetOrCreateUser().FromModel(user)
|
||||||
|
|
||||||
c.JSON(200, rspObj)
|
c.JSON(200, rspObj)
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
package bag
|
package bag
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"q5"
|
|
||||||
"f5"
|
"f5"
|
||||||
"main/constant"
|
|
||||||
"main/common"
|
"main/common"
|
||||||
|
"main/constant"
|
||||||
"main/model"
|
"main/model"
|
||||||
"main/vo"
|
|
||||||
"main/service"
|
|
||||||
"main/mt"
|
"main/mt"
|
||||||
|
"main/service"
|
||||||
|
"main/vo"
|
||||||
|
"q5"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -81,5 +82,8 @@ 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) {
|
||||||
|
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
|
||||||
|
}
|
||||||
c.JSON(200, rspObj)
|
c.JSON(200, rspObj)
|
||||||
}
|
}
|
||||||
|
@ -197,4 +197,6 @@ 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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service.Task.UpdateTaskProgress(orderModel.AccountId, itemcfg.GetItemType(), ordergoods.GetAmount(), nil)
|
||||||
}
|
}
|
||||||
|
@ -146,6 +146,13 @@ func (this *MissionApi) ClaimTaskAward(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if taskMeta.GetRewardType() == constant.TASK_AWARD_SCORE {
|
||||||
|
user.AddScore(taskMeta.GetReward())
|
||||||
|
if service.Task.UpdateTaskProgress(s.GetAccountId(), constant.ITEM_TYPE_SCORE, taskMeta.GetReward(), &tasks) {
|
||||||
|
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
taskitem.Award = 1
|
taskitem.Award = 1
|
||||||
task.UpdateTasks(tasks)
|
task.UpdateTasks(tasks)
|
||||||
|
|
||||||
@ -155,10 +162,5 @@ func (this *MissionApi) ClaimTaskAward(c *gin.Context) {
|
|||||||
q5.AppendSlice(&rspObj.Data, missionVo)
|
q5.AppendSlice(&rspObj.Data, missionVo)
|
||||||
}
|
}
|
||||||
|
|
||||||
if taskMeta.GetRewardType() == constant.TASK_AWARD_SCORE {
|
|
||||||
user.AddScore(taskMeta.GetReward())
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
c.JSON(200, rspObj)
|
c.JSON(200, rspObj)
|
||||||
}
|
}
|
||||||
|
@ -97,5 +97,9 @@ 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) {
|
||||||
|
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
|
||||||
|
}
|
||||||
|
|
||||||
c.JSON(200, rspObj)
|
c.JSON(200, rspObj)
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,9 @@ 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) {
|
||||||
|
q5.AppendSlice(&rspObj.BaseVo.GetOrCreateSideEffect().Effects, "task")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,13 +53,14 @@ func (this *award) AddItem(accountId string, itemId int32, itemNum int32, baseVo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (aa *award) HandleAwards(user *model.User, totalaward *vo.Award) bool {
|
func (aa *award) HandleAwards(user *model.User, totalaward *vo.Award) (bageffect bool, taskupdate 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:
|
||||||
@ -88,5 +89,5 @@ func (aa *award) HandleAwards(user *model.User, totalaward *vo.Award) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return bageffect
|
return bageffect, taskupdate
|
||||||
}
|
}
|
||||||
|
@ -97,6 +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)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
deletelist[accountId] = 0
|
deletelist[accountId] = 0
|
||||||
|
@ -102,19 +102,22 @@ func (this *task) List(accountId string, data *[]*vo.Mission) (errcode int32, ms
|
|||||||
return 0, ""
|
return 0, ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *task) UpdateTaskProgress(accountId string, itemid int32, amount int32, data *[]*vo.Mission) (errcode int32, msg string) {
|
func (this *task) UpdateTaskProgress(accountId string, itemtypeid int32, amount int32, extasks *map[int32]*model.TaskItem) (taskupdate bool) {
|
||||||
|
var tasks map[int32]*model.TaskItem
|
||||||
|
var task *model.Task
|
||||||
|
if extasks == nil {
|
||||||
task := new(model.Task)
|
task := new(model.Task)
|
||||||
err, found := task.Find(accountId)
|
err, found := task.Find(accountId)
|
||||||
if err != nil || !found {
|
if err != nil || !found {
|
||||||
return 500, "server internal error"
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks := task.GetTaskItems()
|
tasks = task.GetTaskItems()
|
||||||
if tasks == nil {
|
if tasks == nil {
|
||||||
return 401, "bad request"
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
taskupdate := false
|
|
||||||
for _, taskitem := range tasks {
|
for _, taskitem := range tasks {
|
||||||
if taskitem.Award != 0 || taskitem.Current >= taskitem.Target {
|
if taskitem.Award != 0 || taskitem.Current >= taskitem.Target {
|
||||||
continue
|
continue
|
||||||
@ -125,7 +128,7 @@ func (this *task) UpdateTaskProgress(accountId string, itemid int32, amount int3
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if taskMeta.GetParam2() != itemid {
|
if taskMeta.GetParam2() != itemtypeid {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,15 +140,9 @@ func (this *task) UpdateTaskProgress(accountId string, itemid int32, amount int3
|
|||||||
taskupdate = true
|
taskupdate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if taskupdate {
|
if taskupdate && extasks == nil {
|
||||||
task.UpdateTasks(tasks)
|
task.UpdateTasks(tasks)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, taskitem := range tasks {
|
return taskupdate
|
||||||
missionVo := new(vo.Mission)
|
|
||||||
missionVo.FromModel(taskitem)
|
|
||||||
q5.AppendSlice(data, missionVo)
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0,""
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user