works on resolve_claims
This commit is contained in:
@@ -247,13 +247,7 @@ impl<'q> AsAdmin<'q> {
|
||||
///
|
||||
/// When a player gets an item, it's debt is increased by this item sell value
|
||||
pub fn resolve_claims(self) -> ActionResult<()> {
|
||||
// Fetch all claims, grouped by items.
|
||||
let loot = models::item::Loot::owned_by(0).load(self.0)?;
|
||||
let claims = schema::claims::table
|
||||
.load::<models::Claim>(self.0)?
|
||||
.grouped_by(&loot);
|
||||
// For each claimed item
|
||||
let data = loot.into_iter().zip(claims).collect::<Vec<_>>();
|
||||
let data = models::claim::Claims(self.0).grouped_by_loot()?;
|
||||
dbg!(&data);
|
||||
|
||||
for (loot, claims) in data {
|
||||
@@ -262,18 +256,12 @@ impl<'q> AsAdmin<'q> {
|
||||
let claim = claims.get(0).unwrap();
|
||||
let player_id = claim.player_id;
|
||||
self.0.transaction(|| {
|
||||
use schema::looted::dsl::*;
|
||||
diesel::update(looted.find(claim.loot_id))
|
||||
.set(owner_id.eq(player_id))
|
||||
loot.set_owner(claim.player_id)
|
||||
.execute(self.0)?;
|
||||
diesel::delete(schema::claims::table.find(claim.id))
|
||||
.execute(self.0)?;
|
||||
{
|
||||
use schema::players::dsl::*;
|
||||
diesel::update(players.find(player_id))
|
||||
.set(debt.eq(debt + (loot.base_price / 2)))
|
||||
.execute(self.0)
|
||||
}
|
||||
models::player::AsPlayer(self.0, player_id)
|
||||
.update_debt(loot.sell_value())?;
|
||||
models::claim::Claims(self.0).remove(player_id, claim.loot_id)?;
|
||||
Ok(())
|
||||
})?;
|
||||
},
|
||||
_ => (),
|
||||
|
||||
Reference in New Issue
Block a user