refactor: 优化代码结构和逻辑
This commit is contained in:
@@ -12,7 +12,12 @@ import (
|
||||
func (h Controller) CDK(data *user.C2S_GET_GIFT_COMPLETE, player *player.Player) (result *user.S2C_GET_GIFT_COMPLETE, err errorcode.ErrorCode) {
|
||||
result = &user.S2C_GET_GIFT_COMPLETE{}
|
||||
|
||||
r := service.NewCdkService().Get(data.PassText)
|
||||
cdkService := service.NewCdkService()
|
||||
rewardPetService := service.NewPetRewardService()
|
||||
itemRewardService := service.NewItemService()
|
||||
now := time.Now()
|
||||
|
||||
r := cdkService.Get(data.PassText)
|
||||
if r == nil {
|
||||
return nil, errorcode.ErrorCodes.ErrMolecularCodeNotExists
|
||||
}
|
||||
@@ -20,38 +25,36 @@ func (h Controller) CDK(data *user.C2S_GET_GIFT_COMPLETE, player *player.Player)
|
||||
return nil, errorcode.ErrorCodes.ErrMolecularCodeFrozen
|
||||
}
|
||||
|
||||
if r.ValidEndTime.Compare(time.Now()) == -1 {
|
||||
if r.ValidEndTime.Compare(now) == -1 {
|
||||
return nil, errorcode.ErrorCodes.ErrMolecularCodeExpired
|
||||
}
|
||||
if !player.Service.Cdk.CanGet(uint32(r.ID)) {
|
||||
return
|
||||
}
|
||||
if !service.NewCdkService().Set(data.PassText) {
|
||||
if !cdkService.Set(data.PassText) {
|
||||
return nil, errorcode.ErrorCodes.ErrMolecularCodeGiftsGone
|
||||
}
|
||||
|
||||
result.Flag = 1
|
||||
for _, v := range r.ElfRewardIds {
|
||||
pet := service.NewPetRewardService().Get(v)
|
||||
if pet != nil {
|
||||
peti := model.GenPetInfo(int(pet.MonID), int(pet.DV), int(pet.Nature), int(pet.Effect), int(pet.Lv), nil, 0)
|
||||
player.Service.Pet.PetAdd(peti, 0)
|
||||
result.PetGift = append(result.PetGift, user.PetGiftInfo{PetID: peti.ID, CacthTime: peti.CatchTime})
|
||||
for _, rewardID := range r.ElfRewardIds {
|
||||
pet := rewardPetService.Get(rewardID)
|
||||
if pet == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
petInfo := model.GenPetInfo(int(pet.MonID), int(pet.DV), int(pet.Nature), int(pet.Effect), int(pet.Lv), nil, 0)
|
||||
player.Service.Pet.PetAdd(petInfo, 0)
|
||||
result.PetGift = append(result.PetGift, user.PetGiftInfo{PetID: petInfo.ID, CacthTime: petInfo.CatchTime})
|
||||
}
|
||||
|
||||
for _, itemID := range r.ItemRewardIds {
|
||||
iteminfo := service.NewItemService().GetItemCount(itemID)
|
||||
player.ItemAdd(iteminfo.ItemId, iteminfo.ItemCnt)
|
||||
|
||||
result.GiftList = append(result.GiftList, user.GiftInfo{GiftID: iteminfo.ItemId, Count: iteminfo.ItemCnt})
|
||||
|
||||
for _, rewardID := range r.ItemRewardIds {
|
||||
itemInfo := itemRewardService.GetItemCount(rewardID)
|
||||
player.ItemAdd(itemInfo.ItemId, itemInfo.ItemCnt)
|
||||
result.GiftList = append(result.GiftList, user.GiftInfo{GiftID: itemInfo.ItemId, Count: itemInfo.ItemCnt})
|
||||
}
|
||||
if r.TitleRewardIds != 0 {
|
||||
player.Service.Title.Give(r.TitleRewardIds)
|
||||
result.Tile = r.TitleRewardIds
|
||||
|
||||
}
|
||||
player.Service.Cdk.Log(uint32(r.ID))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user