package service import ( "blazing/common/data" "blazing/common/utils" "blazing/cool" "blazing/modules/config/model" "github.com/gogf/gf/v2/util/grand" ) type ItemService struct { *cool.Service } // 实现物品数量的获取 func (s *ItemService) GetItem(id uint32) *model.ItemGift { var item *model.ItemGift dbm_notenable(s.Model).Where("id", id).Scan(&item) return item } func (s *ItemService) GetItemCount(id uint32) data.ItemInfo { var item model.ItemGift var res data.ItemInfo dbm_notenable(s.Model).Where("id", id).Scan(&item) if item.ItemID == 0 { return res } res.ItemId = item.ItemID res.ItemCnt = item.ItemMinCount if item.ItemMaxCount != 0 { res.ItemCnt = int64(grand.N(int(item.ItemMinCount), int(item.ItemMaxCount))) } return res } func (s *ItemService) GetEgg(count int64) []data.ItemInfo { var item []model.ItemGift dbm_notenable(s.Model).Where("is_egg", 1).Scan(&item) rr := utils.RandomSlice(item, int(count)) var res = make([]data.ItemInfo, len(rr)) for _, v := range rr { if v.ItemMaxCount != 0 { v.ItemMinCount = int64(grand.N(int(v.ItemMinCount), int(v.ItemMaxCount))) res = append(res, data.ItemInfo{ItemId: v.ItemID, ItemCnt: v.ItemMinCount}) } } return res } func NewItemService() *ItemService { return &ItemService{ &cool.Service{ Model: model.NewItemGift(), ListQueryOp: &cool.QueryOp{ FieldEQ: []string{"is_egg", "is_light"}, }, PageQueryOp: &cool.QueryOp{ KeyWordField: []string{"remark"}, FieldEQ: []string{"is_egg"}, }, }, } }