Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan PHP dan Vue untuk melaksanakan kaedah menebus mata ahli untuk hadiah selepas pembayaran

Menggunakan PHP dan Vue untuk melaksanakan kaedah menebus mata ahli untuk hadiah selepas pembayaran

PHPz
PHPzasal
2023-09-24 10:37:021585semak imbas

Menggunakan PHP dan Vue untuk melaksanakan kaedah menebus mata ahli untuk hadiah selepas pembayaran

Menggunakan PHP dan Vue untuk merealisasikan kaedah menebus mata ahli untuk hadiah selepas pembayaran

Dengan perkembangan pesat e-dagang, semakin banyak syarikat telah melancarkan sistem mata ahli untuk menarik dan mengekalkan pelanggan. Mata ahli boleh diperoleh melalui beli-belah, ulasan, aktiviti, dsb. Pelanggan boleh menggunakan mata untuk menebus hadiah, mengimbangi jumlah pesanan, dsb. Artikel ini akan memperkenalkan cara menggunakan PHP dan Vue untuk melaksanakan kaedah menebus mata ahli untuk hadiah selepas pembayaran, dan memberikan contoh kod khusus.

1. Persediaan

Sebelum kita mula, kita perlu menyediakan persekitaran dan alatan berikut:

  1. Pelayan PHP: Anda boleh menggunakan XAMPP, WAMP, dsb. untuk membina persekitaran pembangunan tempatan
  2. Vue.js: Anda boleh menggunakan npm untuk memasang Vue.js , anda juga boleh menggunakan vue-cli untuk membina projek Vue dengan cepat.

2. Reka bentuk pangkalan data

Kami perlu mereka bentuk jadual pangkalan data untuk menyimpan mata dan maklumat hadiah ahli. Berikut ialah reka bentuk jadual pangkalan data yang mudah:

  1. jadual ahli: menyimpan maklumat ahli, termasuk ID ahli, nama, mata dan medan lain
  2. jadual hadiah: menyimpan maklumat hadiah, termasuk ID hadiah, nama, mata yang diperlukan, dsb. Medan;
  3. jadual pesanan: menyimpan maklumat pesanan, termasuk ID pesanan, ID ahli, jumlah pembayaran dan medan lain
  4. jadual hadiah_pesanan: menyimpan maklumat yang berkaitan dengan pesanan dan hadiah, termasuk ID pesanan, ID hadiah dan medan lain.

3. Penulisan kod PHP

  1. Dapatkan mata ahli: Cipta fungsi PHP untuk menanyakan mata semasa ahli.
function getMemberPoints($memberId) {
    // 连接数据库
    $conn = new mysqli('localhost', 'username', 'password', 'dbname');
    if ($conn->connect_error) {
        die("数据库连接失败:" . $conn->connect_error);
    }

    // 查询会员积分
    $sql = "SELECT points FROM members WHERE member_id = $memberId";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        $points = $row["points"];
    } else {
        $points = 0;
    }

    // 关闭数据库连接
    $conn->close();

    return $points;
}
  1. Pertanyakan hadiah boleh tebus: Cipta fungsi PHP untuk menanyakan hadiah boleh tebus semasa ahli.
function getAvailableGifts($memberId) {
    // 连接数据库
    $conn = new mysqli('localhost', 'username', 'password', 'dbname');
    if ($conn->connect_error) {
        die("数据库连接失败:" . $conn->connect_error);
    }

    // 查询可兑换礼品
    $sql = "SELECT * FROM gifts WHERE points <= (SELECT points FROM members WHERE member_id = $memberId)";
    $result = $conn->query($sql);

    // 构造礼品数组
    $gifts = array();
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $gifts[] = $row;
        }
    }

    // 关闭数据库连接
    $conn->close();

    return $gifts;
}
  1. Tebus hadiah: Cipta fungsi PHP untuk mengendalikan permintaan ahli untuk menebus hadiah.
function exchangeGift($memberId, $giftId) {
    // 连接数据库
    $conn = new mysqli('localhost', 'username', 'password', 'dbname');
    if ($conn->connect_error) {
        die("数据库连接失败:" . $conn->connect_error);
    }

    // 查询礼品所需积分
    $sql = "SELECT points FROM gifts WHERE gift_id = $giftId";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        $requiredPoints = $row["points"];
    } else {
        die("礼品不存在");
    }

    // 查询会员当前积分
    $sql = "SELECT points FROM members WHERE member_id = $memberId";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        $memberPoints = $row["points"];
    } else {
        die("会员不存在");
    }

    // 检查会员积分是否足够
    if ($memberPoints < $requiredPoints) {
        die("积分不足,无法兑换该礼品");
    }

    // 扣除会员积分
    $updatedPoints = $memberPoints - $requiredPoints;
    $sql = "UPDATE members SET points = $updatedPoints WHERE member_id = $memberId";
    $conn->query($sql);

    // 关联订单和礼品
    // 生成订单ID,可以根据业务需求自行设计
    $orderId = generateOrderId();
    $sql = "INSERT INTO order_gifts (order_id, gift_id) VALUES ($orderId, $giftId)";
    $conn->query($sql);

    // 关闭数据库连接
    $conn->close();

    return $orderId;
}

4. Penulisan kod Vue

  1. Dapatkan mata ahli: Panggil fungsi getMemberPoints PHP dalam komponen Vue untuk mendapatkan mata semasa ahli.
<template>
  <div>
    <p>当前积分:{{ memberPoints }}</p>
    <button @click="getMemberPoints">刷新积分</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      memberPoints: 0
    }
  },
  methods: {
    getMemberPoints() {
      axios.get('api/getMemberPoints.php')
        .then(response => {
          this.memberPoints = response.data.points;
        })
        .catch(error => {
          console.error(error);
        });
    }
  },
  mounted() {
    this.getMemberPoints();
  }
}
</script>
  1. Pertanyaan hadiah boleh tebus: Hubungi fungsi getAvailableGifts PHP dalam komponen Vue untuk mendapatkan hadiah yang boleh ditebus oleh ahli pada masa ini.
<template>
  <div>
    <h2>可兑换礼品</h2>
    <ul>
      <li v-for="gift in availableGifts" :key="gift.gift_id">
        {{ gift.name }} (所需积分:{{ gift.points }})
        <button @click="exchangeGift(gift.gift_id)">兑换</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      availableGifts: []
    }
  },
  methods: {
    getAvailableGifts() {
      axios.get('api/getAvailableGifts.php')
        .then(response => {
          this.availableGifts = response.data;
        })
        .catch(error => {
          console.error(error);
        });
    },
    exchangeGift(giftId) {
      axios.post('api/exchangeGift.php', { gift_id: giftId })
        .then(response => {
          console.log("兑换成功,订单ID:" + response.data.order_id);
          // 刷新可兑换礼品列表
          this.getAvailableGifts();
        })
        .catch(error => {
          console.error(error);
        });
    }
  },
  mounted() {
    this.getAvailableGifts();
  }
}
</script>

Di atas adalah cara menggunakan PHP dan Vue untuk menebus mata ahli untuk hadiah selepas pembayaran. Melalui fungsi operasi pangkalan data PHP, mata ahli dan maklumat hadiah boleh dibaca dengan mudah daripada pangkalan data, dan mata ahli boleh diproses dengan sewajarnya. Komponen Vue memperoleh mata keahlian dan hadiah yang boleh ditebus dengan menghubungi antara muka PHP, dan memaparkan serta berinteraksi dengannya di bahagian hadapan. Dalam pembangunan sebenar, pengubahsuaian dan sambungan yang sesuai boleh dibuat mengikut keperluan perniagaan untuk menambah baik fungsi.

(Kod di atas hanyalah contoh dan perlu diselaraskan dan ditambah baik mengikut keadaan sebenar.)

Atas ialah kandungan terperinci Menggunakan PHP dan Vue untuk melaksanakan kaedah menebus mata ahli untuk hadiah selepas pembayaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn