diff --git a/modules/user/api_sellres.go b/modules/user/api_sellres.go index 8c76d4a86..ce9ad1ee5 100644 --- a/modules/user/api_sellres.go +++ b/modules/user/api_sellres.go @@ -16,30 +16,23 @@ func (this *apiComp) SellItemCheck(session comm.IUserSession, req *pb.UserSellRe //分解道具 func (this *apiComp) SellItem(session comm.IUserSession, req *pb.UserSellResReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( - item []*pb.UserAtno // 出售的道具 - equip []*pb.UserAtno // 出售的装备 - sale []*pb.UserAssets + equip []string // 出售的装备 + sale []*pb.UserAssets + mapitem map[string]int32 ) + mapitem = map[string]int32{} if code = this.SellItemCheck(session, req); code != pb.ErrorCode_Success { return } for _, v := range req.Atno { if v.A == "item" { - item = append(item, v) + mapitem[v.O] += v.N } else if v.A == "equi" { - equip = append(equip, v) + equip = append(equip, v.O) } } - if len(item) > 0 { - - } - if len(equip) > 0 { - var id []string - for _, v := range equip { - id = append(id, v.O) - } - if code, d := this.module.ModuleEquipment.SellEquipments(session, id); code != pb.ErrorCode_Success { - //sale = append(sale, d...) + if len(mapitem) > 0 { + if c, d := this.module.ModuleItems.SellItem(session, mapitem); c != pb.ErrorCode_Success { for _, v := range d { sale = append(sale, &pb.UserAssets{ A: v.A, @@ -47,6 +40,23 @@ func (this *apiComp) SellItem(session comm.IUserSession, req *pb.UserSellResReq) N: v.N, }) } + } else { + code = c + return + } + } + if len(equip) > 0 { + if c, d := this.module.ModuleEquipment.SellEquipments(session, equip); c != pb.ErrorCode_Success { + for _, v := range d { + sale = append(sale, &pb.UserAssets{ + A: v.A, + T: v.T, + N: v.N, + }) + } + } else { + code = c + return } }