From 1987ca71b3effd0dcb7356ef28c89b8eae837d41 Mon Sep 17 00:00:00 2001 From: poka Date: Sun, 24 Nov 2019 03:48:51 +0100 Subject: [PATCH] Add piscine scanning. Deincrease quantity rather than status --- public/models/readRecords.php | 16 ++++++------ scripts/check_sold.sh | 48 +++++++++++++++++++++++++---------- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/public/models/readRecords.php b/public/models/readRecords.php index 74ca4ae..b5a5de5 100644 --- a/public/models/readRecords.php +++ b/public/models/readRecords.php @@ -19,11 +19,11 @@ $params["antenne_slug"] = $antenne_slug; $requete = "SELECT products.*, users.username, users.pubkey - FROM products - LEFT JOIN antennes - ON antennes.id = products.antenne_id - LEFT JOIN users - ON users.id = products.user_id + FROM products + LEFT JOIN antennes + ON antennes.id = products.antenne_id + LEFT JOIN users + ON users.id = products.user_id WHERE antennes.slug = :antenne_slug"; $stmt = $bdd->prepare($requete); $stmt2 = $bdd->prepare($requete); @@ -51,8 +51,8 @@ $number"; $prix = $row['prix']; $vendeur = $row['username']; - $status = $row['status']; - if ($status == "solde") { + $quantite = $row['quantite']; + if ($quantite == "0") { $produit = "[Vendu] "; } else { $produit = ""; @@ -66,7 +66,7 @@ $data .= ''; $data .= ''.$vendeur_format.''; $data .= ''.$cle_pub_format.''; - $data .= ''.$row['quantite'].''; + $data .= ''.$quantite.''; $data .= ''.$prix.''; if ($row['username'] == $nom_connecte ) { $data .= ''; diff --git a/scripts/check_sold.sh b/scripts/check_sold.sh index 7b743c8..d856203 100755 --- a/scripts/check_sold.sh +++ b/scripts/check_sold.sh @@ -1,31 +1,51 @@ #!/bin/bash +## TODO: Prendre en compte les transactions déjà appliqués + +start=`date +%s` +date=$(date +'%d-%m-%y à %H:%M') +echo "### $date ###" + +## Inistialisation DUNITER=$(grep g1_node ../config/config.php | awk '{ print $3}' | tr -d ';' | tr -d "'") TXBLOCKS=$(curl -s $DUNITER/blockchain/with/tx | jq '.result.blocks[]') -TXBLOCKS=$(echo "$TXBLOCKS" | tail -n 5 | tr '\n' ' ') +TXBLOCKS=$(echo "$TXBLOCKS" | tail -n 2 | tr '\n' ' ') keyword="\[Achat GMarche] : " +## Récupération des transactions avec commentaire GMarche for i in $TXBLOCKS; do result=$(curl -s $DUNITER/blockchain/block/$i | jq '.transactions[].comment' | grep -v '""' | tr -d '"') - - #result=$(echo "$result" | grep "$keyword") - [[ ! -z $result ]] && isSell+=$(echo -e "$result;") && echo "$result" - echo --- + result=$(echo "$result" | grep "$keyword") + [[ ! -z $result ]] && isSell+=$(echo -e "$result;") sleep 1 done -# isSell="[Achat GMarche] : testCesium" # Test hors sol -isSell=$(echo $isSell | sed "s/$keyword//g") +## Ajout des transactions en piscine pour les users GMarche -echo "$isSell est vendu" +req="SELECT pubkey FROM users;" +usersPubkeys=$(sudo mysql --database gmarche -e "$req" | grep .) -IFS=';'; ADDR=($isSell); unset IFS; -for i in "${ADDR[@]}"; do - req="UPDATE products SET status = 'solde' WHERE name = '$i';" - echo "$req" -# sudo mysql --database gmarche -e "$req" +for i in $usersPubkeys; do + isSell+=$(curl -s $DUNITER/tx/history/$i/pending | jq '. | select(.history.sending == [])' | jq '.history.pending[].comment' | tr -d '"') + #[ ! -z "$pendingTX" ] && echo "$pendingTX" done -sudo mysql --database gmarche -e "SELECT name,status FROM products;" +## Retrait de l'identifiant gmarche des commentaires +isSell=$(echo $isSell | sed "s/$keyword//g") +[[ ! -z $isSell ]] && echo "$isSell est vendu" + +## Retrait d'un quantité pour les articles vendu +IFS=';'; ADDR=($isSell); unset IFS; +for i in "${ADDR[@]}"; do + #req="UPDATE products SET status = 'solde' WHERE name = '$i';" + req="UPDATE products SET quantite = CASE WHEN quantite = 0 THEN quantite ELSE quantite - 1 END WHERE name = '$i';" + sudo mysql --database gmarche -e "$req" +done + +#sudo mysql --database gmarche -e "SELECT name,status FROM products;" + +end=`date +%s` +runtime=$((end-start)) +echo "Temps d'execution: ${runtime}s" exit 0