一、前言
??博主介紹:?全網(wǎng)粉絲10W+,CSDN特邀作者、博客專家、CSDN新星計劃導(dǎo)師、全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺優(yōu)質(zhì)作者、專注于Java、小程序技術(shù)領(lǐng)域和畢業(yè)項目實戰(zhàn)???
???? 精彩專欄 推薦訂閱????
2023-2024年最值得選的微信小程序畢業(yè)設(shè)計選題大全:100個熱門選題推薦?2023-2024年最值得選的Java畢業(yè)設(shè)計選題大全:500個熱門選題推薦?
Java精品實戰(zhàn)案例《500套》
微信小程序項目精品案例《500套》文章來源地址http://www.zghlxwxcb.cn/news/detail-718575.html
??文末獲取源碼+數(shù)據(jù)庫??
網(wǎng)上大部分的畢設(shè)套路如下:
-
在b站發(fā)畢設(shè)項目的演示視頻,讓你免費領(lǐng)取,你領(lǐng)取完發(fā)現(xiàn)代碼不全或者數(shù)據(jù)庫少表,根本跑不起來!如果要調(diào)試則收費300??真的是惡心至極有沒有!
-
某寶找人幫忙寫,簡單來說比第一種行為靠譜,但是很貴!說是可以免費修改其實修改基本排不上隊,一改就是一星期,想快點?加錢,200加急!??
三、開發(fā)環(huán)境與技術(shù)
3.1 MySQL數(shù)據(jù)庫
本課題研究研發(fā)的應(yīng)用程序在數(shù)據(jù)操作過程中是難以預(yù)測的,而且常常產(chǎn)生變化。沒有辦法直接從word里寫數(shù)據(jù),這不但不安全,并且難以實現(xiàn)應(yīng)用程序的功能。想要實現(xiàn)運用所需要的數(shù)據(jù)存放功能,就必定要選擇專業(yè)的數(shù)據(jù)庫存儲軟件。大部分,應(yīng)用程序達(dá)到的功能并不太繁雜,市場中所有關(guān)系數(shù)據(jù)庫手機軟件都能實現(xiàn)。參照自己的思維構(gòu)造及使用習(xí)慣性,MySQL能夠支持中小型系統(tǒng)軟件,不用Oracle、SQL Server 大中小型數(shù)據(jù)適用,適宜大家全面的數(shù)據(jù)庫,而非其他問題,由于真正意義上的系統(tǒng)在線,是數(shù)據(jù)庫網(wǎng)絡(luò)服務(wù)器,網(wǎng)站服務(wù)器。
3.2 Vue前端技術(shù)
在動態(tài)網(wǎng)站盛行之時,Java作為一種高級編程語言,當(dāng)然不會輕易放棄這一領(lǐng)域的生日蛋糕。Sun企業(yè)上線了Servlet做為導(dǎo)出動態(tài)網(wǎng)站的標(biāo)準(zhǔn)規(guī)范。因為當(dāng)時程序猿不是很喜歡,但一開始挑選很少。java語言在之后的好多個月里出現(xiàn),不顧及性能高效率,最少區(qū)別了寫網(wǎng)頁頁面所需要的動態(tài)性編碼塊和靜態(tài)代碼塊,大大提升了創(chuàng)作效率易讀性。因而,許多Java軟件工程師和入行的初級程序員都會選擇java語言當(dāng)作個人職業(yè)生涯發(fā)展前景。為保持Java語言在高級編程語言中的重要性,避免java再次搶占市場,Sun與Apache慈善基金會協(xié)作,開發(fā)了一種有關(guān)Java動態(tài)網(wǎng)站的技術(shù)規(guī)范,即vue技術(shù)性。vue在頁面寫作時吸取java語言中的所有優(yōu)勢,卻也靠著Java語言 EE龐大環(huán)境能通過Java組件完成很多作用。這種組件能夠直接引用到vue頁面,使vue更強大和完善。確保了Java科技的豎向可持續(xù)發(fā)展觀,最終在動態(tài)網(wǎng)站開發(fā)行業(yè)占有一席之地。別的java開發(fā)工作人員能夠快速轉(zhuǎn)移到vue開展開發(fā),不顧及一些特殊組件或功能性的開發(fā),自打動態(tài)性頁面的開發(fā)來說,徹底完成了java流程和vue流程的基本無成本費變換,vue技術(shù)性就是這樣發(fā)展趨勢起來。
3.3 Spring Boot框架
從取名上能夠得知這一框架設(shè)計初心:快速開啟Spring運用。因而,Spring。 實質(zhì)上,Boot應(yīng)用程序是一個根據(jù)Spring框架的應(yīng)用程序。這是Spring“協(xié)議書先于配置”理論的良好實踐物質(zhì)??梢詭椭_發(fā)者迅速、更有效地搭建根據(jù)Spring生態(tài)系統(tǒng)中的應(yīng)用程序。
Spring Boot實現(xiàn)自動配置、發(fā)展依靠、Actuator、命令行界面(CLI) 是Spring Boot最主要的四個核心特點,在其中CLI是Spring Boot的能選特點盡管功能齊全,卻也引入了一套非傳統(tǒng)的開發(fā)模型,因此本系列文章只注重別的三個特點。如標(biāo)題,本問題是本系列的第一部分,將為您開啟Spring Boot大門,關(guān)鍵為您進(jìn)一步分析啟動過程及全自動配置完成基本原理。把握這一部分主要內(nèi)容,了解一些Spring框架的基本知識,也會讓你游刃有余。
3.4 微信小程序
微信小程序是一種輕量級的應(yīng)用程序,可以在微信內(nèi)部直接運行,無需下載安裝,為用戶提供快速便捷的服務(wù)和功能體驗,涵蓋了各種領(lǐng)域的應(yīng)用,從社交、娛樂到商務(wù)和生活服務(wù),為開發(fā)者提供了一個強大的平臺,以低成本和高效率開發(fā)和發(fā)布小程序。
四、功能設(shè)計
4.1 主要功能描述
五、系統(tǒng)實現(xiàn)
5.1 前端界面實現(xiàn)
5.1.1 首頁
5.1.2 付費電影
付費電影會根據(jù)購買的電影類型來進(jìn)行協(xié)同過濾!
5.1.3 協(xié)同過濾算法的應(yīng)用
原始推薦如下:
集成協(xié)同過濾算法之后,電影的推薦會隨著用戶的喜歡程度進(jìn)行自動排序,排名靠前的為用戶點擊次數(shù)、點贊次數(shù)等行為來控制!
5.1.4 電影論壇
5.1.5 電影資訊
5.1.6 個人中心
用戶可以在此修改個人信息、頭像等信息。
5.1.7 登錄注冊
注冊界面如下:
5.2 后臺管理實現(xiàn)
5.2.1 登錄界面
5.2.2 用戶管理
5.2.3 管理員管理
5.2.4 免費電影管理
管理員在免費電影管理界面中查看免費電影種類信息,免費電影描述信息,新增免費電影信息等。
5.2.5 付費電影管理
管理員在付費電影管理界面中可以對界面中顯示,可以對付費電影信息的付費電影狀態(tài)進(jìn)行查看,可以添加新的付費電影信息等。
5.2.6 其他管理
六、數(shù)據(jù)庫設(shè)計參考
-- MySQL dump 10.13 Distrib 5.7.31, for Linux (x86_64)
--
-- Host: localhost Database: springbootm3ord
-- ------------------------------------------------------
-- Server version 5.7.31
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Current Database: `springbootm3ord`
--
/*!40000 DROP DATABASE IF EXISTS `springbootm3ord`*/;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `springbootm3ord` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
USE `springbootm3ord`;
--
-- Table structure for table `aboutus`
--
DROP TABLE IF EXISTS `aboutus`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aboutus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`title` varchar(200) NOT NULL COMMENT '標(biāo)題',
`subtitle` varchar(200) DEFAULT NULL COMMENT '副標(biāo)題',
`content` longtext NOT NULL COMMENT '內(nèi)容',
`picture1` longtext COMMENT '圖片1',
`picture2` longtext COMMENT '圖片2',
`picture3` longtext COMMENT '圖片3',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='關(guān)于我們';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `aboutus`
--
LOCK TABLES `aboutus` WRITE;
/*!40000 ALTER TABLE `aboutus` DISABLE KEYS */;
INSERT INTO `aboutus` VALUES (1,'2023-03-05 09:51:25','關(guān)于我們','ABOUT US','不管你想要怎樣的生活,你都要去努力爭取,不多嘗試一些事情怎么知道自己適合什么、不適合什么呢?\n你說你喜歡讀書,讓我給你列書單,你還問我哪里有那么多時間看書;你說自己夢想的職業(yè)是廣告文案,問我如何成為一個文案,應(yīng)該具備哪些素質(zhì);你說你計劃晨跑,但總是因為學(xué)習(xí)、工作辛苦或者身體不舒服第二天起不了床;你說你一直夢想一個人去長途旅行,但是沒錢,父母覺得危險。其實,我已經(jīng)厭倦了你這樣說說而已的把戲,我覺得就算我告訴你如何去做,你也不會照做,因為你根本什么都不做。','upload/aboutus_picture1.jpg','upload/aboutus_picture2.jpg','upload/aboutus_picture3.jpg');
/*!40000 ALTER TABLE `aboutus` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `config`
--
DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`name` varchar(100) NOT NULL COMMENT '配置參數(shù)名稱',
`value` varchar(100) DEFAULT NULL COMMENT '配置參數(shù)值',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `config`
--
LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg'),(2,'picture2','upload/picture2.jpg'),(3,'picture3','upload/picture3.jpg');
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `discussjiaoyuan`
--
DROP TABLE IF EXISTS `discussjiaoyuan`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `discussjiaoyuan` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`refid` bigint(20) NOT NULL COMMENT '關(guān)聯(lián)表id',
`userid` bigint(20) NOT NULL COMMENT '用戶id',
`avatarurl` longtext COMMENT '頭像',
`nickname` varchar(200) DEFAULT NULL COMMENT '用戶名',
`content` longtext NOT NULL COMMENT '評論內(nèi)容',
`reply` longtext COMMENT '回復(fù)內(nèi)容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教員評論表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `discussjiaoyuan`
--
LOCK TABLES `discussjiaoyuan` WRITE;
/*!40000 ALTER TABLE `discussjiaoyuan` DISABLE KEYS */;
/*!40000 ALTER TABLE `discussjiaoyuan` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `discusszhaopinxinxi`
--
DROP TABLE IF EXISTS `discusszhaopinxinxi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `discusszhaopinxinxi` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`refid` bigint(20) NOT NULL COMMENT '關(guān)聯(lián)表id',
`userid` bigint(20) NOT NULL COMMENT '用戶id',
`avatarurl` longtext COMMENT '頭像',
`nickname` varchar(200) DEFAULT NULL COMMENT '用戶名',
`content` longtext NOT NULL COMMENT '評論內(nèi)容',
`reply` longtext COMMENT '回復(fù)內(nèi)容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='招聘信息評論表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `discusszhaopinxinxi`
--
LOCK TABLES `discusszhaopinxinxi` WRITE;
/*!40000 ALTER TABLE `discusszhaopinxinxi` DISABLE KEYS */;
/*!40000 ALTER TABLE `discusszhaopinxinxi` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `jiajiaoshenqing`
--
DROP TABLE IF EXISTS `jiajiaoshenqing`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jiajiaoshenqing` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`shenqingbianhao` varchar(200) DEFAULT NULL COMMENT '申請編號',
`gonghao` varchar(200) DEFAULT NULL COMMENT '工號',
`jiaoshixingming` varchar(200) DEFAULT NULL COMMENT '教師姓名',
`shoukezhuanye` varchar(200) DEFAULT NULL COMMENT '授課專業(yè)',
`xueli` varchar(200) DEFAULT NULL COMMENT '學(xué)歷',
`jiajiaofeiyong` varchar(200) DEFAULT NULL COMMENT '家教費用',
`shenqingriqi` date DEFAULT NULL COMMENT '申請日期',
`shenqingneirong` longtext COMMENT '申請內(nèi)容',
`zhanghao` varchar(200) DEFAULT NULL COMMENT '賬號',
`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
`shoujihaoma` varchar(200) DEFAULT NULL COMMENT '手機號碼',
`sfsh` varchar(200) DEFAULT '待審核' COMMENT '是否審核',
`shhf` longtext COMMENT '審核回復(fù)',
PRIMARY KEY (`id`),
UNIQUE KEY `shenqingbianhao` (`shenqingbianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COMMENT='家教申請';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `jiajiaoshenqing`
--
LOCK TABLES `jiajiaoshenqing` WRITE;
/*!40000 ALTER TABLE `jiajiaoshenqing` DISABLE KEYS */;
INSERT INTO `jiajiaoshenqing` VALUES (51,'2023-03-05 09:51:24','1111111111','工號1','教師姓名1','授課專業(yè)1','學(xué)歷1','家教費用1','2023-03-05','申請內(nèi)容1','賬號1','姓名1','手機號碼1','是',''),(52,'2023-03-05 09:51:24','2222222222','工號2','教師姓名2','授課專業(yè)2','學(xué)歷2','家教費用2','2023-03-05','申請內(nèi)容2','賬號2','姓名2','手機號碼2','是',''),(53,'2023-03-05 09:51:24','3333333333','工號3','教師姓名3','授課專業(yè)3','學(xué)歷3','家教費用3','2023-03-05','申請內(nèi)容3','賬號3','姓名3','手機號碼3','是',''),(54,'2023-03-05 09:51:24','4444444444','工號4','教師姓名4','授課專業(yè)4','學(xué)歷4','家教費用4','2023-03-05','申請內(nèi)容4','賬號4','姓名4','手機號碼4','是',''),(55,'2023-03-05 09:51:24','5555555555','工號5','教師姓名5','授課專業(yè)5','學(xué)歷5','家教費用5','2023-03-05','申請內(nèi)容5','賬號5','姓名5','手機號碼5','是',''),(56,'2023-03-05 09:51:24','6666666666','工號6','教師姓名6','授課專業(yè)6','學(xué)歷6','家教費用6','2023-03-05','申請內(nèi)容6','賬號6','姓名6','手機號碼6','是',''),(57,'2023-03-05 09:51:24','7777777777','工號7','教師姓名7','授課專業(yè)7','學(xué)歷7','家教費用7','2023-03-05','申請內(nèi)容7','賬號7','姓名7','手機號碼7','是',''),(58,'2023-03-05 09:51:24','8888888888','工號8','教師姓名8','授課專業(yè)8','學(xué)歷8','家教費用8','2023-03-05','申請內(nèi)容8','賬號8','姓名8','手機號碼8','是','');
/*!40000 ALTER TABLE `jiajiaoshenqing` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `jiaoyuan`
--
DROP TABLE IF EXISTS `jiaoyuan`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jiaoyuan` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`gonghao` varchar(200) NOT NULL COMMENT '工號',
`mima` varchar(200) NOT NULL COMMENT '密碼',
`jiaoshixingming` varchar(200) NOT NULL COMMENT '教師姓名',
`xingbie` varchar(200) DEFAULT NULL COMMENT '性別',
`youxiang` varchar(200) DEFAULT NULL COMMENT '郵箱',
`lianxishouji` varchar(200) DEFAULT NULL COMMENT '聯(lián)系手機',
`shoukezhuanye` varchar(200) DEFAULT NULL COMMENT '授課專業(yè)',
`xueli` varchar(200) DEFAULT NULL COMMENT '學(xué)歷',
`touxiang` longtext COMMENT '頭像',
`jiajiaofeiyong` varchar(200) DEFAULT NULL COMMENT '家教費用',
`gerenjianjie` longtext COMMENT '個人簡介',
`rongyuxinxi` longtext COMMENT '榮譽信息',
PRIMARY KEY (`id`),
UNIQUE KEY `gonghao` (`gonghao`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='教員';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `jiaoyuanfankui`
--
DROP TABLE IF EXISTS `jiaoyuanfankui`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jiaoyuanfankui` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`fankuibianhao` varchar(200) DEFAULT NULL COMMENT '反饋編號',
`fankuibiaoti` varchar(200) NOT NULL COMMENT '反饋標(biāo)題',
`fankuineirong` longtext COMMENT '反饋內(nèi)容',
`fankuishijian` datetime DEFAULT NULL COMMENT '反饋時間',
`gonghao` varchar(200) DEFAULT NULL COMMENT '工號',
`jiaoshixingming` varchar(200) DEFAULT NULL COMMENT '教師姓名',
`shhf` longtext COMMENT '回復(fù)內(nèi)容',
PRIMARY KEY (`id`),
UNIQUE KEY `fankuibianhao` (`fankuibianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=119 DEFAULT CHARSET=utf8 COMMENT='教員反饋';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `jiaoyuanfankui`
--
LOCK TABLES `jiaoyuanfankui` WRITE;
/*!40000 ALTER TABLE `jiaoyuanfankui` DISABLE KEYS */;
INSERT INTO `jiaoyuanfankui` VALUES (111,'2023-03-05 09:51:25','1111111111','反饋標(biāo)題1','反饋內(nèi)容1','2023-03-05 17:51:25','工號1','教師姓名1',''),(112,'2023-03-05 09:51:25','2222222222','反饋標(biāo)題2','反饋內(nèi)容2','2023-03-05 17:51:25','工號2','教師姓名2',''),(113,'2023-03-05 09:51:25','3333333333','反饋標(biāo)題3','反饋內(nèi)容3','2023-03-05 17:51:25','工號3','教師姓名3',''),(114,'2023-03-05 09:51:25','4444444444','反饋標(biāo)題4','反饋內(nèi)容4','2023-03-05 17:51:25','工號4','教師姓名4',''),(115,'2023-03-05 09:51:25','5555555555','反饋標(biāo)題5','反饋內(nèi)容5','2023-03-05 17:51:25','工號5','教師姓名5',''),(116,'2023-03-05 09:51:25','6666666666','反饋標(biāo)題6','反饋內(nèi)容6','2023-03-05 17:51:25','工號6','教師姓名6',''),(117,'2023-03-05 09:51:25','7777777777','反饋標(biāo)題7','反饋內(nèi)容7','2023-03-05 17:51:25','工號7','教師姓名7',''),(118,'2023-03-05 09:51:25','8888888888','反饋標(biāo)題8','反饋內(nèi)容8','2023-03-05 17:51:25','工號8','教師姓名8','');
/*!40000 ALTER TABLE `jiaoyuanfankui` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `ketijiangjie`
--
DROP TABLE IF EXISTS `ketijiangjie`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `ketijiangjie` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`gonghao` varchar(200) DEFAULT NULL COMMENT '工號',
`jiaoshixingming` varchar(200) DEFAULT NULL COMMENT '教師姓名',
`xueli` varchar(200) DEFAULT NULL COMMENT '學(xué)歷',
`yuyueshijian` varchar(200) NOT NULL COMMENT '預(yù)約時間',
`ketimingcheng` varchar(200) DEFAULT NULL COMMENT '課題名稱',
`jiangjieshipin` longtext COMMENT '講解視頻',
`dizhi` varchar(200) DEFAULT NULL COMMENT '地址',
`zhanghao` varchar(200) DEFAULT NULL COMMENT '賬號',
`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
`shoujihaoma` varchar(200) DEFAULT NULL COMMENT '手機號碼',
`neirong` longtext COMMENT '內(nèi)容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='課題講解';
/*!40101 SET character_set_client = @saved_cs_client */;
七、代碼參考
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("賬號或密碼不正確");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
@Override
public String generateToken(Long userid,String username, String tableName, String role) {
TokenEntity tokenEntity = this.selectOne(new EntityWrapper<TokenEntity>().eq("userid", userid).eq("role", role));
String token = CommonUtil.getRandomString(32);
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.HOUR_OF_DAY, 1);
if(tokenEntity!=null) {
tokenEntity.setToken(token);
tokenEntity.setExpiratedtime(cal.getTime());
this.updateById(tokenEntity);
} else {
this.insert(new TokenEntity(userid,username, tableName, role, token, cal.getTime()));
}
return token;
}
/**
* 權(quán)限(Token)驗證
*/
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {
public static final String LOGIN_TOKEN_KEY = "Token";
@Autowired
private TokenService tokenService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//支持跨域請求
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
// 跨域時會首先發(fā)送一個OPTIONS請求,這里我們給OPTIONS請求直接返回正常狀態(tài)
if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {
response.setStatus(HttpStatus.OK.value());
return false;
}
IgnoreAuth annotation;
if (handler instanceof HandlerMethod) {
annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
} else {
return true;
}
//從header中獲取token
String token = request.getHeader(LOGIN_TOKEN_KEY);
/**
* 不需要驗證權(quán)限的方法直接放過
*/
if(annotation!=null) {
return true;
}
TokenEntity tokenEntity = null;
if(StringUtils.isNotBlank(token)) {
tokenEntity = tokenService.getTokenEntity(token);
}
if(tokenEntity != null) {
request.getSession().setAttribute("userId", tokenEntity.getUserid());
request.getSession().setAttribute("role", tokenEntity.getRole());
request.getSession().setAttribute("tableName", tokenEntity.getTablename());
request.getSession().setAttribute("username", tokenEntity.getUsername());
return true;
}
PrintWriter writer = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
try {
writer = response.getWriter();
writer.print(JSONObject.toJSONString(R.error(401, "請先登錄")));
} finally {
if(writer != null){
writer.close();
}
}
// throw new EIException("請先登錄", 401);
return false;
}
}
八、源碼獲取
文章下方名片聯(lián)系我即可~
大家點贊、收藏、關(guān)注、評論啦 、查看????獲取聯(lián)系方式????
精彩專欄推薦訂閱:在下方專欄????
Java精品實戰(zhàn)案例《500套》文章來源:http://www.zghlxwxcb.cn/news/detail-718575.html微信小程序項目精品案例《500套》
到了這里,關(guān)于基于協(xié)同過濾算法的電影推薦系統(tǒng)(亮點:智能推薦、協(xié)同過濾算法、在線支付、視頻觀看)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!