Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan fungsi mesej peribadi dalam tapak dalam php

Bagaimana untuk melaksanakan fungsi mesej peribadi dalam tapak dalam php

藏色散人
藏色散人asal
2021-09-10 10:28:593233semak imbas

Cara melaksanakan fungsi mesej peribadi dalam laman web dalam PHP: 1. Baca badan permintaan permintaan POST 2. Panggil sub-modul untuk memasukkan mesej tapak yang dihantar ke seluruh tapak atau pengguna kumpulan yang dimiliki; 3. Dapatkan mesej tapak yang belum dibaca Kuantiti 4. Semak sama ada messageId milik pengguna semasa

Bagaimana untuk melaksanakan fungsi mesej peribadi dalam tapak dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Bagaimanakah php melaksanakan fungsi mesej peribadi dalam tapak?

Pelaksanaan PHP Idea dan Pelan Reka Bentuk Pemesejan Tapak

1 platform penyelenggaraan Apabila pengguna berkomunikasi, mereka lebih bergantung pada WeChat dan pemberitahuan e-mel Sebagai keseluruhan produk, platform operasi dan penyelenggaraan juga memerlukan perkhidmatan yang boleh menjalankan komunikasi dalaman - pemesejan dalam tapak.

Nada reka bentuk mesej di tapak

Nada reka bentuk mesej di tapak bergantung pada cara pengguna menggunakan mesej di tapak:

Pengguna tidak akan melekat pada halaman platform operasi dan penyelenggaraan, menunggu pemberitahuan mesej, menyemak kandungan mesej dan kemudian melompat ke halaman yang mereka mahu beroperasi.
Dengan kata lain, mesej di tapak bukanlah pintu masuk pertama dan sifat masa nyata mesej di tapak adalah tidak penting.
  1. Tidak seperti kebanyakan tapak rangkaian sosial (Facebook, Zhihu, Weibo, dll.), pengguna akan kekal di halaman utama tapak rangkaian sosial, sentiasa menyegarkan kandungan baharu dan menyemak kandungan baharu mesej (terutamanya Mesej peribadi peribadi, balasan orang lain, dsb. tidak bertujuan untuk menyemak mesej pemberitahuan sistem)
Pengguna akan memutuskan sama ada untuk memasuki operasi dan penyelenggaraan platform berdasarkan pemberitahuan e-mel.
  • Jika terdapat banyak e-mel, contohnya, terdapat beberapa pesanan kerja yang perlu diproses oleh pengguna pada masa yang sama, pengguna juga akan melaksanakan semua kerja pada halaman "My To Do" yang disediakan oleh platform pesanan kerja.
  • Jika e-mel tersalah padam dan tiada pautan e-mel untuk terus masuk ke modul yang akan dikendalikan
Kemudian anda boleh meminta Melalui pautan/nombor bil, pergi ke halaman yang ditetapkan
  1. atau cari terus dalam modul yang berkaitan
Perihalan di atas bermakna pengguna pada asasnya tidak menggunakan mesej di tapak, jadi dalam keadaan apakah mereka akan menggunakan mesej di tapak?

Jangan hantar e-mel, hanya hantar pemberitahuan mesej dalam tapak, seperti pemberitahuan seluruh tapak, operasi penyuntingan, operasi Ulasan, dll.
  • Apabila ia berkaitan dengan modul tertentu Apabila tiada rekod operasi terperinci, anda boleh menyemak masa berlakunya mesej di tapak
Pada masa ini terdapat hanya pemberitahuan mesej produk dan paparan mesej tidak dikelaskan dan diagregatkan Ia akan ditambahkan pada masa hadapan Apabila menghantar pemberitahuan seluruh tapak, sebutan, suka, ulasan dan jenis mesej dalam tapak yang lain, anda perlu mempertimbangkan pengagregatan mesej. mengikut jenis.

2 Perihalan keperluan

Mesej dalam tapak biasanya perlu menyelesaikan dua keperluan:
    <.>
  1. Mesej dalam tapak daripada pengguna kepada pengguna, daripada pentadbir kepada pengguna: iaitu, dihantar satu kepada satu
  • Pentadbir kepada berbilang pengguna, pengguna Mesej dalam tapak untuk kumpulan dan seluruh tapak: iaitu, menghantar satu-ke-banyak

  • (terdapat juga mesej dalam tapak daripada pengguna tentang produk , seperti maklum balas dan soalan tentang modul tertentu)

Keperluan semasa kami ialah:

1 Pentadbir menghantar mesej intra-tapak kepada berbilang pengguna

Tiada pengesahan ketulenan pengguna

Hadkan panjang tajuk dan panjang kandungan (masing-masing 45 bait dan 150 bait, sepadan dengan 15 dan 50 aksara Cina)

Hadkan panjang pinyin penerima (maks . 50 bait panjang)

[Pembelajaran yang disyorkan: "

Tutorial Video PHP

"]

2 Pengguna boleh melihat maklumat tapak mereka sendiri Klik " Semua penapis , baca, belum dibaca"

Dikelaskan mengikut sumber mesej: platform pesanan kerja, pengurusan sumber, pemasangan automatik, platform kerentanan, platform kerosakan. . .

3 Pengguna boleh memadam atau memadam secara berkumpulan mesej tapak

4 Pengguna boleh membaca, membaca kelompok dan menandakan semua mesej tapak sebagai dibaca

5 ikon mesej di bahagian atas halaman platform operasi dan penyelenggaraan

memaparkan bilangan mesej yang belum dibaca Jika melebihi 99, ia akan memaparkan 99

  • <.>Letakkan tetikus padanya dan akan terdapat kotak menu lungsur, menunjukkan 10 mesej terakhir yang belum dibaca (menunjukkan "masa", "sumber", "tajuk")

  • Terdapat dua butang di bahagian bawah kotak lungsur: "Lagi", Muatkan lebih banyak mesej yang belum dibaca "Lihat semua" untuk melompat ke halaman senarai mesej tapak (sebaik-baiknya buka tetingkap lain)

  • 6 halaman Pentadbir:

    Kemas kini pengguna
Padam mesej

Statistik

Tambah modul

Tambah jenis mesej tapak

Hantar mesej seluruh tapak

4 >Hantar mesej seluruh tapak

Baca kandungan permintaan permintaan POST

Panjang semak

    Masukkan ke dalam pangkalan data
  1. Kembali
  2. Dapatkan senarai mesej tapak

  3. Panggil sub-modul dan masukkan mesej tapak yang dihantar ke seluruh tapak atau kumpulan pengguna yang saya miliki

  4. Kembalikan data pangkalan data mengikut syarat pertanyaan

Dapatkan bilangan mesej tapak yang belum dibaca

  1. Panggil sub-modul dan masukkan mesej dalam tapak yang dihantar ke seluruh tapak atau kumpulan pengguna yang saya miliki

  2. Kembalikan kuantiti

Baca dalam kelompok

  1. Semak sama ada messageId milik pengguna semasa

  2. Tetapkan bacaan kepada 1 dalam jadual inbox_message dan ubah suai masa_kemas kini

Semua dibaca

update inbox_message set “read”=1, “update_time”=now where “receiver_name”=currentUser() and “read” = 0

Pemadaman kelompok

  1. Semak sama ada messageId milik pengguna semasa

  2. Tetapkan dipadamkan kepada 1 dalam jadual inbox_message, ubah suai kemas kini_masa

Padamkan semua

update inbox_message set “deleted”=1, “update_time”=now where “receiver_name”=currentUser() and “deleted” = 0

5 Reka bentuk pangkalan data

Jadual kandungan mesej dalam tapak

CREATE TABLE `inbox_message_text` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `title` varchar(128) NOT NULL DEFAULT &#39;&#39;,
  `content` longtext NOT NULL,
  `create_time` datetime NOT NULL,
  `update_time` datetime NOT NULL,
  `send_type` tinyint(4) NOT NULL DEFAULT &#39;0&#39;,
  `creator_name` varchar(255) NOT NULL DEFAULT &#39;&#39;,
  `deleted` tinyint(4) NOT NULL DEFAULT &#39;0&#39;,
  `module_id` bigint(20) NOT NULL,
  `link` varchar(255) NOT NULL DEFAULT &#39;&#39;,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Selain sumber mesej (nama_modul), mesej dalam tapak itu sendiri Terdapat juga perihalan dimensi yang dipanggil jenis mesej (jenis_mesej), seperti mesej keselamatan, mesej aktiviti, mesej perkhidmatan, dll. Dalam setiap kategori utama , ia boleh dibahagikan kepada subkategori, seperti aktiviti mesej-promosi

Sumber mesej dan jenis mesej boleh mempunyai hubungan ortogon, iaitu, platform pesanan kerja juga boleh mempunyai mesej aktif; sumber mesej juga boleh menjadi jenis jenis mesej, dipanggil "mesej produk"

Jadual penghantaran mesej tapak

CREATE TABLE `inbox_message` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `message_text_id` bigint(20) NOT NULL,
  `receiver_name` varchar(255) NOT NULL DEFAULT &#39;&#39;,
  `read` tinyint(4) NOT NULL DEFAULT &#39;0&#39;,
  `deleted` tinyint(4) NOT NULL DEFAULT &#39;0&#39;,
  `create_time` datetime NOT NULL,
  `update_time` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `inbox_message_receiver_name_deleted_read_id` (`receiver_name`,`deleted`,`read`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Jadual sumber mesej

CREATE TABLE `inbox_module` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `code` varchar(128) NOT NULL DEFAULT &#39;&#39;,
  `name` varchar(128) NOT NULL DEFAULT &#39;&#39;,
  `create_time` datetime NOT NULL,
  `update_time` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `code` (`code`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

6 reka bentuk API

Hantar mesej tapak: POST /v1/message

badan permintaan Jenis Kandungan: application/json

{
    "title": "工单审批",
    "content": "XXX提交了变更申请,请审批",
    "to": "sunzhongyuan,shenli,wangya",
    "module_name": "工单平台",
    "link": "xxx"
}

respon

{
    "code": 200,
    "data": 32,
    "msg": "OK"
}

Dapatkan senarai mesej tapak: GET /v1/ mesej User-Id: xxx

http://127.0.0.1:10085/v1/message?query=message_text_id.module_id.name:xxx&limit=1
{
    "code": 200,
    "data": {
        "data": [
            {
                "id": 1,
                "message_text": {
                    "id": 1,
                    "title": "title 2",
                    "content": "content 2",
                    "create_time": "2018-01-12 11:13:48",
                    "update_time": "2018-01-12 11:13:48",
                    "send_type": 1,
                    "creator_name": "sysadmin",
                    "deleted": 0,
                    "link": "xxx",
                    "Messages": null,
                    "module": {
                        "id": 4,
                        "code": "secure",
                        "name": "xxx",
                        "create_time": "2018-01-11 15:38:01",
                        "update_time": "2018-01-11 15:38:01",
                        "MessageTexts": null
                    }
                },
                "receiver_name": "xxx",
                "read": 0,
                "deleted": 0,
                "create_time": "2018-01-12 11:13:48",
                "update_time": "2018-01-12 11:13:48"
            }
        ],
        "total": 2
    },
    "msg": "OK"
}

Sudah Dibaca dan batch membaca mesej tapak: PUT /v1/read_messages/:messageIds

respon

{
    "code": 200,
    "data": "OK",
    "msg": "OK"
}

Semua baca PUT: / v1/read_all_messages

respons Sama seperti di atas

Padam dan padam secara kelompok mesej tapak: PUT /v1/delete_messages/:messageIds

balas Sama seperti di atas

Padam semua tapak mesej: PUT /v1/delete_all_messages

respons Sama seperti di atas

Dapatkan senarai sumber mesej: GET /v1/modul

balas

{
    "code": 200,
    "data": [
        {
            "id": 1,
            "code": "worksheet",
            "name": "工单平台",
            "create_time": "2018-01-11 15:21:38",
            "update_time": "2018-01-11 15:21:38",
            "MessageTexts": null
        },
        {
            "id": 2,
            "code": "cmdb",
            "name": "资源管理",
            "create_time": "2018-01-11 15:22:28",
            "update_time": "2018-01-11 15:22:28",
            "MessageTexts": null
        },
        ...
    ],
    "msg": "OK"
}

7. Nota Ujian

1 Menghantar mesej tapak

  • Antara muka tulen

  • Pengguna penerima dipisahkan dengan koma , keaslian tidak disahkan

  • Pengguna penerima telah pengesahan panjang, 50 bait

  • kandungan tajuk mempunyai pengesahan panjang, masing-masing adalah 45 dan 150 bait

  • nama_modul ialah senarai, anda mesti memilih satu dari sini

2 Antara muka lain boleh diakses melalui halaman hadapan Pengujian

8. Pengoptimuman

  • Senarai yang belum dibaca boleh dipaparkan dalam huruf tebal, manakala senarai yang dibaca boleh dipaparkan dalam fon biasa

  • Kategori mesej dan label dalam tapak. mereka dengan latitud berbeza untuk memudahkan penapisan, carian dan penyekatan

  • Pengguna boleh menetapkan mesej dalam tapak yang mereka dibenarkan untuk menerima sumber Mesej

  • Pentadbir boleh menambah, memadam, mengubah suai dan menyemak mesej seluruh tapak, kakitangan seluruh tapak dan atribut mesej seluruh tapak, seperti membatalkan mesej tapak supaya tiada sesiapa pun dapat melihatnya

    Pentadbir boleh mengira bilangan mesej yang dihantar dalam tapak, penggunaan setiap produk, bahagian mesej dibaca, masa mesej dibaca dan cara mesej dibaca (klik atau kelompok) Operasi), dsb.

9 Reka bentuk titik fungsi utama

Tingkah laku ikon di sudut kanan atas<.>

1 Klik ikon untuk memaparkan N mesej terbaharu yang belum dibaca

Tunjukkan kotak lungsur

  • Dapatkan N terkini dalam masa nyata Mesej belum dibaca

  • N boleh menjadi 5 hingga 10, nilai khusus bergantung pada had ketinggian kotak lungsur

  • Apabila mesej yang belum dibaca kurang daripada N , kotak lungsur turun boleh menyesuaikan diri dengan ketinggian

  • Jika tiada mesej yang belum dibaca, paparkan "Belum ada mesej baharu"

  • Hentikan pengambilan setiap 10 saat Antara muka kiraan mesej yang belum dibaca

  • 2 Dalam kotak lungsur, sumber mesej, masa (berbanding dengan masa semasa: 10 minit yang lalu), tajuk

Gelongsor ke bawah kotak lungsur untuk memaparkan lebih banyak mesej yang belum dibaca (hanya dapatkan id yang lebih kecil daripada id minimum dalam paparan senarai mesej, iaitu, jangan terima mesej baharu selepas mengklik ikon)

  • 3 Klik mesej dalam kotak lungsur

Kotak lungsur turun tidak hilang

  • Masih Hentikan antara muka untuk mendapatkan bilangan mesej yang belum dibaca setiap 10 saat

  • Kurangkan bilangan mesej yang belum dibaca sebanyak 1

  • Padamkan mesej semasa daripada senarai mesej yang belum dibaca (sepotong )

  • Paparan pop timbul kotak

  • 4 Kotak timbul memaparkan sumber, masa (masa mutlak), tajuk, kandungan

5 Tutup kotak timbul atau klik di luar:

Kotak pop timbul hilang

  • Kotak lungsur turun tidak hilang

  • Anda boleh terus mengklik pada mesej yang belum dibaca

  • 6 Klik kotak lungsur turun dan pinggir ikon sekali lagi

Kotak lungsur turun hilang

  • Kosongkan senarai mesej yang belum dibaca sedia ada

  • Pulihkan bilangan mesej yang belum dibaca yang diperolehi setiap 10 saat Antara Muka

  • 7 Klik ikon sekali lagi untuk kembali ke keadaan #1

Gelagat ikon Alibaba Cloud ialah:

  1. Bilangan mesej yang belum dibaca hanya akan diminta sekali apabila halaman dimuat semula dan tidak akan dimuat semula kerap selepas itu (sudah tentu ia juga mungkin Ini kerana selang masa penyegaran adalah agak panjang, tetapi saya tidak menemuinya; atau mungkin kaedah soket digunakan untuk mewujudkan pautan yang panjang)

  2. ikon tuding, iaitu kotak lungsur yang memaparkan mesej yang belum dibaca

  3. Klik ikon untuk memasuki halaman pengurusan mesej tapak Secara lalai ialah "Mesej Belum Dibaca"

4 Klik pada mesej yang belum dibaca dan buka Tab baharu untuk memaparkan butiran mesej (halaman butiran kekal). tidak berubah, iaitu, tiada mesej yang belum dibaca tolak satu, dan mesej yang diklik sahaja tidak dipadamkan daripada kotak lungsur

5 Maksimum 5 mesej boleh dipaparkan sebagai selagi halaman tidak dimuat semula, ia akan sentiasa menjadi 5 mesej ini

6 Tiada tatal untuk lebih banyak fungsi, hanya untuk melihat lebih banyak, klik untuk memasuki halaman pengurusan mesej tapak "

  • . Perbezaan antara mengklik ikon dan mengklik ikon ialah: mengklik ikon terus melompat ke halaman semasa ke halaman pengurusan mesej tapak. Mengklik "Lihat Lagi" akan mencipta Tab baharu

7 Terdapat butang "Pengurusan Penerimaan Mesej" tambahan Halaman semasa melompat ke halaman pengurusan mesej tapak, tetapi lalai ialah "Pengurusan Penerimaan Asas"

<.>

Sembunyikan bar kemajuan penyemak imbas

Antara muka untuk mendapatkan bilangan mesej yang belum dibaca setiap 10 saat akan mencetuskan penyemak imbas untuk memaparkan bar kemajuan, mengganggu perhatian pengguna, untuk menyembunyikan bar kemajuan ini.

Gelagat lain untuk menyegarkan halaman tidak akan terjejas.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi mesej peribadi dalam tapak dalam php. 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