import { MongoBaseService } from "cgserver"; import { MongoBaseModel } from "cgserver"; import _ from "underscore"; import { GItemCfg, ItemItem } from "../Config/ItemConfig"; export enum EBagItemState { None, Using,//使用中 Used//使用完毕 } export class BagItemItem { //实例id user_id+"_"+item.id+"_"+random id="" item_id:number=-1 state=EBagItemState.None /** * 数量 */ count:number=1 create_time=-1 } export class BagModel extends MongoBaseModel { user_id:number=-1 items:Array=null } export let GBagSer:BagService=null export class BagService extends MongoBaseService { async getByUserId(user_id:number) { let bag:BagModel = await this.get(null,{user_id:user_id}) if(!bag) { return [] } let items = bag.items return items||[] } async getItem(where) { let one = await this.get(null,where) if(!one||!one.items||one.items.length==0) { return null } return one.items[0] } async removeItem(user_id:number,id:string,count=1) { let item = await this.getItem({user_id:user_id,"items.$.id":id}) item.count-=count if(item.count>0) { await this.updateOne({$inc:{"items.$.count":-1}},{user_id:user_id,"items.id":id}) } else { await this.updateOne({user_id:user_id},{$pull:{"items":{"id":id}}}) } } async addItems(user_id:number,items:Array) { for(let i=0;i