国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Spring Boot藥店管理系統(tǒng)實(shí)戰(zhàn):進(jìn)銷存設(shè)計(jì)、數(shù)據(jù)庫與核心實(shí)現(xiàn)

Spring Boot藥店管理系統(tǒng)實(shí)戰(zhàn):進(jìn)銷存設(shè)計(jì)、數(shù)據(jù)庫與核心實(shí)現(xiàn) 簡介本資源是一套面向計(jì)算機(jī)專業(yè)本科生的課程設(shè)計(jì)與畢業(yè)設(shè)計(jì)實(shí)踐項(xiàng)目聚焦基于SpringBoot的Java Web藥店管理系統(tǒng)開發(fā)適用于Java后端初學(xué)者鞏固Web開發(fā)全流程能力。壓縮包共包含多個(gè)核心文件涵蓋可直接運(yùn)行的完整源碼、數(shù)據(jù)庫初始化腳本db.sql、開題報(bào)告與論文文檔LW、系統(tǒng)說明文檔等類型涉及Java工程代碼、SQL腳本、Word技術(shù)文檔及純文本操作指南整體大小為15.96MB。已有67人下載學(xué)習(xí)體現(xiàn)了其在教學(xué)實(shí)踐場景中的實(shí)用價(jià)值。讀者可獲得從需求分析、SpringBootMyBatis/Security技術(shù)選型、前后端交互實(shí)現(xiàn)到庫存管理、訂單處理、用戶權(quán)限控制等真實(shí)業(yè)務(wù)模塊的完整參考所有代碼經(jīng)驗(yàn)證可本地一鍵運(yùn)行配套文檔清晰說明環(huán)境配置與啟動(dòng)步驟極大降低上手門檻是理解企業(yè)級(jí)Java Web系統(tǒng)架構(gòu)與開發(fā)規(guī)范的優(yōu)質(zhì)入門范例。 這幾年幫人看課設(shè)畢設(shè)項(xiàng)目Spring Boot Java Web 方向的藥店管理系統(tǒng)幾乎是每個(gè)學(xué)期都會(huì)遇到的高頻題目。這個(gè)題一聽很普通但每個(gè)人拿到的需求差別其實(shí)很大有的只要求最基礎(chǔ)的增刪改查有的要求帶上完整的進(jìn)銷存、庫存預(yù)警、效期提醒還有的把會(huì)員積分、統(tǒng)計(jì)報(bào)表和 Excel 導(dǎo)出全部算進(jìn)去。我在這類項(xiàng)目上前前后后迭代過好幾版也踩了不少坑今天就把完整的設(shè)計(jì)思路、技術(shù)選型、數(shù)據(jù)庫表結(jié)構(gòu)、核心業(yè)務(wù)實(shí)現(xiàn)以及交付時(shí)源碼和 LW論文/設(shè)計(jì)文檔怎么組織一次性講清楚。如果你正在做這個(gè)題或者想深入理解一個(gè)進(jìn)銷存系統(tǒng)的完整鏈路這篇內(nèi)容可以直接拿來當(dāng)參考。1. 為什么選藥店管理系統(tǒng)從課題價(jià)值到答辯風(fēng)險(xiǎn)都替你算了一遍1.1 藥店管理系統(tǒng)到底在解決什么問題藥店日常經(jīng)營里最煩的不是賣藥而是庫存對(duì)不上。今天入庫了一批感冒藥前臺(tái)賣了幾盒有人在盤點(diǎn)時(shí)又發(fā)現(xiàn)幾盒過期了如果靠 Excel 登記很容易漏記、錯(cuò)記。藥品的效期、批次、供應(yīng)商批次對(duì)賬、會(huì)員積分全是細(xì)節(jié)。藥店管理系統(tǒng)本質(zhì)是一個(gè)進(jìn)銷存系統(tǒng)核心是管理藥品從“采購”到“入庫”到“銷售出庫”再到“庫存盤點(diǎn)”的完整生命周期。除此之外還牽扯到供應(yīng)商資料、會(huì)員檔案、價(jià)格管理、臨期藥品提醒和經(jīng)營數(shù)據(jù)統(tǒng)計(jì)。把這些業(yè)務(wù)搬到線上讓每一次入庫、銷售都有據(jù)可查庫存數(shù)量所有角色看到的是一致的這就是系統(tǒng)最基礎(chǔ)的價(jià)值。1.2 為什么這個(gè)題在課設(shè)畢設(shè)里性價(jià)比高一個(gè)適合做課設(shè)/畢設(shè)的題目要滿足三點(diǎn)需求清晰、技術(shù)復(fù)雜度適中、有足夠的擴(kuò)展空間。藥店管理系統(tǒng)恰好三點(diǎn)都占。第一需求清晰。進(jìn)銷存是管理信息系統(tǒng)里的經(jīng)典業(yè)務(wù)模型每個(gè)老師都能理解描述起來不需要太多額外背景。第二業(yè)務(wù)關(guān)系豐富。雖然體量不大但涉及用戶、藥品、供應(yīng)商、采購單、銷售單、庫存流水、會(huì)員等實(shí)體一對(duì)多、多對(duì)多關(guān)系都有數(shù)據(jù)庫設(shè)計(jì)部分可以有內(nèi)容。第三擴(kuò)展空間大。你可以在基礎(chǔ)功能上疊加近效期提醒、庫存預(yù)警、銷售趨勢分析、會(huì)員積分、導(dǎo)出報(bào)表甚至對(duì)接微信小程序隨便挑一個(gè)都能寫成亮點(diǎn)。這題比純論壇系統(tǒng)、純博客系統(tǒng)更容易體現(xiàn)工程化思維也是一個(gè)比較穩(wěn)妥的選擇。1.3 答辯老師最愛問的幾個(gè)問題要先想好這個(gè)題被問到的概率最高的三個(gè)問題提前準(zhǔn)備一下答辯基本不會(huì)冷場。第一個(gè)藥品效期是怎么管理的你的答案要點(diǎn)是藥品表里有 expiry_date 字段查詢時(shí)用 SQL 把當(dāng)前日期到到期日之間不足 90 天的記錄篩出來列表里用顏色標(biāo)記銷售時(shí)還可以做二次校驗(yàn)。第二個(gè)庫存和銷售數(shù)據(jù)的一致性怎么保證答案是事務(wù)。每次扣減庫存和生成銷售記錄放在同一個(gè)事務(wù)里任何一步失敗就整體回滾同時(shí)用庫存流水表記錄每次變動(dòng)隨時(shí)可以追溯。第三個(gè)為什么用 Spring Boot 而不是傳統(tǒng)的 SSH 或 SSM答案要點(diǎn)是 Spring Boot 基于 Spring Boot 生態(tài)內(nèi)嵌 Tomcat不需要額外部署外部容器配置簡化適合快速迭代而且已經(jīng)成為 Java Web 開發(fā)的主流選擇。把這三個(gè)問題答順了答辯老師就會(huì)覺得你確實(shí)做過項(xiàng)目而不只是把 PPT 背了一遍。2. 需求拆解先別急著寫代碼把角色和流程理清楚2.1 角色劃分不同人看到的界面和功能不一樣藥店管理系統(tǒng)不是一個(gè)所有人都能操作所有功能的系統(tǒng)。最常見的角色有三種。系統(tǒng)管理員負(fù)責(zé)系統(tǒng)基礎(chǔ)配置包括用戶管理、藥品字典維護(hù)、供應(yīng)商審核、數(shù)據(jù)統(tǒng)計(jì)和日志查看。店員的日常操作是前臺(tái)售藥、退藥、會(huì)員登記以及查看自己的銷售記錄。采購員負(fù)責(zé)供應(yīng)商管理、采購單創(chuàng)建和到貨入庫。如果系統(tǒng)做得再細(xì)一點(diǎn)還可以增加一個(gè)店長角色能看門店的經(jīng)營報(bào)表和利潤分析但不能修改基礎(chǔ)數(shù)據(jù)。角色的意義不只是菜單顯示不同更重要的是后端接口要有對(duì)應(yīng)的權(quán)限控制。比如店員界面不應(yīng)該出現(xiàn)進(jìn)貨價(jià)和利潤統(tǒng)計(jì)哪怕是接口被猜到也要能攔截下來否則做權(quán)限管理就沒有意義。2.2 功能模塊清單先畫清楚再開發(fā)在動(dòng)手寫代碼之前我會(huì)先列一張功能模塊表把每個(gè)模塊的功能點(diǎn)和說明寫清楚。這張表既可以指導(dǎo)開發(fā)后面寫 LW 文檔時(shí)也能直接復(fù)用。模塊功能點(diǎn)說明藥品管理藥品增刪改查、藥品分類、近效期篩選藥品編碼唯一名稱、規(guī)格、廠家、批準(zhǔn)文號(hào)必填庫存管理入庫、銷售出庫、盤點(diǎn)、庫存預(yù)警、流水查詢所有庫存變動(dòng)必須寫流水可追溯采購管理采購單登記、審核、到貨入庫一張采購單可以包含多個(gè)藥品銷售管理前臺(tái)售藥、銷售單查詢、退貨銷售時(shí)實(shí)時(shí)校驗(yàn)庫存和效期供應(yīng)商管理供應(yīng)商增刪改查包含聯(lián)系人、電話、地址、合作狀態(tài)會(huì)員管理會(huì)員發(fā)卡、積分管理、消費(fèi)記錄會(huì)員按手機(jī)號(hào)唯一標(biāo)識(shí)系統(tǒng)管理用戶管理、角色管理、操作日志管理員專用控制權(quán)限統(tǒng)計(jì)報(bào)表日/月銷售統(tǒng)計(jì)、低庫存、近效期、導(dǎo)出給店長和管理員看經(jīng)營數(shù)據(jù)2.3 核心業(yè)務(wù)流程采購入庫和前臺(tái)銷售是兩條主線整個(gè)系統(tǒng)最核心的兩條業(yè)務(wù)鏈路一條是“采購入庫”另一條是“前臺(tái)銷售”。采購入庫的流程是采購員選擇供應(yīng)商和藥品生成采購單藥品到貨后核對(duì)數(shù)量提交入庫系統(tǒng)自動(dòng)增加對(duì)應(yīng)藥品的庫存同時(shí)寫一條入庫類型的庫存流水記錄本次變動(dòng)前后數(shù)量。前臺(tái)銷售的流程是收銀員把顧客需要的藥品逐一加入銷售列表確認(rèn)數(shù)量后收款提交系統(tǒng)校驗(yàn)庫存和效期通過后扣減庫存、寫銷售流水、生成銷售主單和銷售明細(xì)單。如果顧客是會(huì)員還要同步累加積分。這兩條鏈路幾乎涵蓋了系統(tǒng)所有核心邏輯。代碼實(shí)現(xiàn)時(shí)先把這兩條流程跑通其他模塊基本都是在這兩條鏈路外圍做增刪改查。2.4 非功能性需求校驗(yàn)、權(quán)限和日志課設(shè)系統(tǒng)同學(xué)容易忽略非功能性需求但答辯加分往往靠這些點(diǎn)。后端入?yún)⒁鲂r?yàn)比如庫存數(shù)量不能為負(fù)數(shù)、銷售數(shù)量不能大于庫存、藥品編碼不能重復(fù)。普通店員不能訪問成本價(jià)和利潤相關(guān)接口這個(gè)必須做。藥品改價(jià)、盤庫存這類操作要記錄操作人和操作時(shí)間方便追溯。3. 技術(shù)選型Spring Boot Java Web 的方案怎么定才穩(wěn)3.1 為什么 Spring Boot 成了課設(shè)“標(biāo)準(zhǔn)答案”以前做 Java Web 課設(shè)最常寫的是 SSM 整合就是在 Spring Spring MVC MyBatis 的基礎(chǔ)上手動(dòng)配一堆 XML 文件。Spring 的 applicationContext.xml、Spring MVC 的 dispatcher-servlet.xml、MyBatis 的 mybatis-config.xml哪個(gè)配置寫錯(cuò)一點(diǎn)項(xiàng)目啟動(dòng)就會(huì)直接報(bào)錯(cuò)對(duì)新手極其不友好。Spring Boot 帶來的最大改變是“約定大于配置”。它不僅把 SSM 的整合過程自動(dòng)完成還內(nèi)嵌了 Tomcat開發(fā)時(shí)直接啟動(dòng) main 方法就能看到效果部署時(shí)一個(gè) java -jar 命令就能跑。課設(shè)演示的時(shí)候再也不用先裝 Tomcat、改 server.xml、把 war 包手動(dòng)拷進(jìn) webapps體驗(yàn)上的提升非常明顯。從技術(shù)本質(zhì)上說Spring Boot 仍然是 Java Web 技術(shù)棧底層還是 Spring MVC只不過把繁瑣的配置收進(jìn)去了。在論文里寫“基于 Spring Boot 的 Java Web 系統(tǒng)”完全站得住腳。3.2 ORM 選 MyBatis-Plus單表不用寫 SQL復(fù)雜查詢又留得住持久層框架推薦 MyBatis-Plus理由非常簡單單表的增刪改查可以直接繼承 BaseMapper自帶 selectById、insert、updateById 等方法連 SQL 都不用寫。分頁查詢有官方分頁插件邏輯刪除和字段自動(dòng)填充都能配置。更重要的是MyBatis-Plus 沒有把自定義 SQL 的能力封死。統(tǒng)計(jì)報(bào)表、庫存預(yù)警這類需要多表聯(lián)查的復(fù)雜 SQL仍然可以寫在 Mapper XML 里由自己控制。這一點(diǎn)對(duì)課設(shè)項(xiàng)目很關(guān)鍵因?yàn)楹芏喔邇r(jià)值的模塊恰好是那些手寫 SQL 的地方。3.3 前端方案Thymeleaf Bootstrap 優(yōu)先Vue 按需選擇前端有兩種主流方案。第一種是服務(wù)端渲染Spring Boot Thymeleaf Bootstrap。頁面由 Controller 直接返回Thymeleaf 模板負(fù)責(zé)渲染數(shù)據(jù)Bootstrap 負(fù)責(zé)樣式。優(yōu)點(diǎn)是工程結(jié)構(gòu)簡單不需要 Node.js 環(huán)境啟動(dòng)后端就能看到一個(gè)完整的管理后臺(tái)特別適合單人開發(fā)。缺點(diǎn)是頁面交互比較傳統(tǒng)要實(shí)現(xiàn)復(fù)雜的前端效果會(huì)比較吃力。第二種是前后端分離Spring Boot 提供 REST API前端用 Vue3 Element Plus 搭后臺(tái)。界面確實(shí)更現(xiàn)代但這意味著你要同時(shí)維護(hù)兩套工程還要處理跨域、Token 鑒權(quán)、構(gòu)建環(huán)境等問題。如果對(duì) Node 和 Vue 不熟答辯現(xiàn)場很容易被環(huán)境問題卡住。我的建議課設(shè)項(xiàng)目優(yōu)先選 Thymeleaf Bootstrap穩(wěn)定不翻車。如果你確實(shí)想讓系統(tǒng)看起來有亮點(diǎn)可以做一個(gè) Vue 管理頁作為擴(kuò)展但至少保證后端 API 能用 Postman 完整演示這樣即使前端出問題也有補(bǔ)救空間。3.4 環(huán)境版本搭配別為了新版犧牲穩(wěn)定性我見過很多項(xiàng)目用最新的 Spring Boot 3.x結(jié)果 JDK 版本不夠直接啟動(dòng)失敗最后又回退。給你一個(gè)我長期在用的穩(wěn)定組合組件推薦版本備注JDK1.8 或 11學(xué)校電腦兼容性最好不要用 17Spring Boot2.7.x功能穩(wěn)定資料多MyBatis-Plus3.5.x3.5 以后對(duì) Boot2 支持良好MySQL5.7 或 8.0兩者都可以8.0 注意驅(qū)動(dòng)差異Maven3.6配合 IDEA 使用IDEA2022.3社區(qū)版也夠用數(shù)據(jù)庫驅(qū)動(dòng)如果用的是 MySQL 8.0記得在連接串里加 serverTimezoneAsia/Shanghai否則很容易踩時(shí)區(qū)問題。3.5 再說一下“LW”和源碼壓縮包的事標(biāo)題里的 LW 在課設(shè)圈里一般指“論文”或“設(shè)計(jì)文檔”也就是除了源碼之外還要交付的文檔材料。一個(gè)完整的課程設(shè)計(jì)/畢業(yè)設(shè)計(jì)交付物通常包含源碼、數(shù)據(jù)庫腳本、LW 文檔、演示視頻壓縮包命名里帶上日期或者版本號(hào)。源碼可運(yùn)行是底線文檔規(guī)范是加分項(xiàng)兩個(gè)都不能忽視。4. 數(shù)據(jù)庫設(shè)計(jì)這幾張表是怎么一步步定下來的4.1 藥品表藥店系統(tǒng)的心臟藥品表是整個(gè)系統(tǒng)最重要的表字段需要認(rèn)真設(shè)計(jì)。我用的核心字段如下字段說明id主鍵自增drug_code藥品編碼唯一索引common_name通用名比如“阿莫西林膠囊”trade_name商品名比如“再林”specification規(guī)格比如“0.25g*24?!眜nit單位盒/瓶/袋manufacturer生產(chǎn)廠家approval_number批準(zhǔn)文號(hào)國藥準(zhǔn)字purchase_price進(jìn)貨價(jià)DECIMAL(10,2)sale_price零售價(jià)DECIMAL(10,2)stock_quantity當(dāng)前庫存數(shù)量stock_lower_limit庫存下限低于這個(gè)值預(yù)警stock_upper_limit庫存上限expiry_date有效期至category_id藥品分類deleted邏輯刪除標(biāo)記進(jìn)貨價(jià)和零售價(jià)必須分開字段因?yàn)檫@兩個(gè)價(jià)格的可見人群不同。進(jìn)貨價(jià)用于成本核算由管理員維護(hù)店員界面不展示。批準(zhǔn)文號(hào)字段在答辯時(shí)能體現(xiàn)你對(duì)藥品行業(yè)的理解千萬別丟掉。4.2 用戶、角色、供應(yīng)商表用戶表 userid、username、password、real_name、phone、role_id、status。密碼不能存明文用 BCrypt 加密。角色表 roleid、role_name、role_key、description。管理員角色 key 是 admin店員是 clerk采購員是 purchaser。用戶直接掛 role_id不需要把權(quán)限系統(tǒng)做太復(fù)雜但角色要存在數(shù)據(jù)庫里不能寫死在代碼里。供應(yīng)商表 supplierid、supplier_name、contact_person、phone、address、status、remark。采購入庫時(shí)必須關(guān)聯(lián)供應(yīng)商保證采購數(shù)據(jù)能夠?qū)~。4.3 采購主單和采購明細(xì)為什么要拆兩張表采購單設(shè)計(jì)成主單 明細(xì)兩張表這是課設(shè)里非常值得講的部分。采購主表 purchase_orderid、order_no、supplier_id、total_amount、status待入庫/已入庫/已取消、create_time、create_by。采購明細(xì)表 purchase_order_itemid、order_id、drug_id、quantity、purchase_price、subtotal。為什么不把采購信息全部塞到一張表里因?yàn)橐粡埐少弳慰赡馨?5 種甚至 20 種藥品如果都放在一行同一張單的藥品會(huì)被拆成多行數(shù)據(jù)里就會(huì)大量重復(fù)單號(hào)查詢單據(jù)時(shí)還要處理重復(fù)。主單管理訂單整體信息明細(xì)管理每個(gè)藥品的條目一次采購單生成多條明細(xì)邊界非常清晰。后續(xù)做供應(yīng)商對(duì)賬、進(jìn)貨總額統(tǒng)計(jì)都能直接通過 order_id 關(guān)聯(lián)查詢。4.4 銷售主單和銷售明細(xì)訂單模型的常見設(shè)計(jì)銷售表和采購表結(jié)構(gòu)類似。銷售主表 sale_orderid、order_no、member_id、total_amount、pay_type現(xiàn)金/微信/支付寶、status、create_time、create_by。銷售明細(xì)表 sale_order_itemid、order_id、drug_id、quantity、sale_price、subtotal。這里要注意的是 member_id 允許為空因?yàn)榉菚?huì)員顧客也可以買藥。如果做退貨業(yè)務(wù)可以在主單上加 status 字段區(qū)分正常和退貨退貨時(shí)重新生成一條負(fù)數(shù)的庫存流水表示庫存回補(bǔ)。4.5 庫存流水表整個(gè)系統(tǒng)的賬本庫存流水表 stock_record 是容易被忽略但很關(guān)鍵的一張表。字段包括id、drug_id、change_type1 入庫、2 銷售扣減、3 報(bào)損、4 盤點(diǎn)調(diào)整、change_quantity正數(shù)增加負(fù)數(shù)減少、before_quantity、after_quantity、biz_no關(guān)聯(lián)的采購單號(hào)或銷售單號(hào)、create_time、create_by。有了這張表你可以隨時(shí)回答“某盒藥到底什么時(shí)候進(jìn)的、什么時(shí)候賣的、賣給了哪筆單子”這些問題。沒有流水?dāng)?shù)據(jù)庫里只剩一個(gè)當(dāng)前庫存數(shù)字連對(duì)賬都做不了。這也是答辯時(shí)一個(gè)可靠的亮點(diǎn)拿出庫存流水的時(shí)候老師會(huì)覺得你不是在寫玩具。4.6 會(huì)員表和用戶表分開會(huì)員表 memberid、card_no、name、phone、points、create_time。會(huì)員是藥店面向消費(fèi)者的客戶檔案用戶表是操作系統(tǒng)的人兩個(gè)模型必須分開。會(huì)員等級(jí)和積分可以先用一個(gè)字段存點(diǎn)數(shù)后續(xù)要擴(kuò)展等級(jí)再加一個(gè) level 字段就行。4.7 表設(shè)計(jì)的一些取舍外鍵字段邏輯關(guān)聯(lián)保留但不要在大表之間強(qiáng)制建物理外鍵約束。課設(shè)階段測試數(shù)據(jù)非常頻繁物理外鍵容易導(dǎo)致刪除失敗、導(dǎo)入順序報(bào)錯(cuò)。邏輯外鍵的意思是在代碼和 SQL 中通過 JOIN 來保證關(guān)系由業(yè)務(wù)層控制完整性不依賴數(shù)據(jù)庫約束。金額字段一律用 DECIMAL(10,2)不要用 DOUBLE 或 FLOAT浮點(diǎn)數(shù)在計(jì)算金額時(shí)會(huì)有精度損失。所有業(yè)務(wù)表都加 deleted 字段實(shí)現(xiàn)邏輯刪除這是 MyBatis-Plus 的標(biāo)配也方便論文里寫“系統(tǒng)支持?jǐn)?shù)據(jù)恢復(fù)”。5. 從零搭建項(xiàng)目把 Spring Boot 項(xiàng)目骨架搭起來5.1 創(chuàng)建項(xiàng)目和引入依賴打開 IDEANew Project 選擇 Spring InitializrJava 版本選 8依賴先勾選 Spring Web、MySQL Driver、Validation、Thymeleaf。生成之后在 pom.xml 里手動(dòng)加 MyBatis-Plus 和 Lombok。pom.xml 核心依賴長這樣dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.3.1/version /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-thymeleaf/artifactId /dependency dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId scoperuntime/scope /dependency dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency5.2 application.yml 配置配置文件是最容易出錯(cuò)的位置尤其是數(shù)據(jù)庫連接串。server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/pharmacy?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: 123456 thymeleaf: cache: false mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true global-config: db-config: logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0這里要重點(diǎn)說一下 map-underscore-to-camel-case 的作用。數(shù)據(jù)庫字段一般是 create_time 下劃線風(fēng)格Java 實(shí)體類是 createTime 駝峰風(fēng)格這個(gè)配置打開之后 MyBatis 會(huì)自動(dòng)完成映射不用手寫 resultMap。邏輯刪除配置則保證調(diào)用 deleteById 時(shí)執(zhí)行的是 UPDATE deleted 1 而不是物理刪除。5.3 分包結(jié)構(gòu)一眼能看懂的工程我習(xí)慣用下面這個(gè)結(jié)構(gòu)com.example.pharmacy ├── config ├── controller ├── entity ├── mapper ├── service ├── service.impl ├── dto ├── vo └── commoncontroller 放接口入口service 放業(yè)務(wù)邏輯mapper 放數(shù)據(jù)庫訪問entity 放表映射實(shí)體common 放統(tǒng)一返回結(jié)果和異常處理。不要把業(yè)務(wù)邏輯堆在 controller 里否則 Service 層沒有內(nèi)容論文里寫“業(yè)務(wù)層設(shè)計(jì)”會(huì)非常虛。5.4 統(tǒng)一返回結(jié)果和全局異常處理前端頁面或者接口調(diào)用方如果每次接收的數(shù)據(jù)結(jié)構(gòu)都不一樣聯(lián)調(diào)就是災(zāi)難。定義一個(gè) Result 類全系統(tǒng)統(tǒng)一返回格式public class ResultT { private Integer code; private String message; private T data; public static T ResultT success(T data) { ResultT r new Result(); r.code 200; r.message ok; r.data data; return r; } public static T ResultT error(String message) { ResultT r new Result(); r.code 500; r.message message; return r; } }全局異常處理用 RestControllerAdvice 統(tǒng)一捕獲業(yè)務(wù)異常和未知異常避免把異常堆棧直接返回給前端。課設(shè)里的前端頁面如果直接暴露異常堆棧觀感很差而且有信息泄露風(fēng)險(xiǎn)。5.5 一個(gè)完整的藥品分頁查詢接口示例ControllerGetMapping(/drug/page) public ResultIPageDrug page(RequestParam(defaultValue 1) int page, RequestParam(defaultValue 10) int size, RequestParam(required false) String keyword) { return Result.success(drugService.pageQuery(page, size, keyword)); }Service 實(shí)現(xiàn)public IPageDrug pageQuery(int page, int size, String keyword) { PageDrug p new Page(page, size); LambdaQueryWrapperDrug wrapper Wrappers.lambdaQuery(); if (StringUtils.hasText(keyword)) { wrapper.like(Drug::getCommonName, keyword) .or().like(Drug::getTradeName, keyword); } return drugMapper.selectPage(p, wrapper); }這個(gè)接口同時(shí)支持分頁和關(guān)鍵字模糊搜索可以覆蓋藥品列表頁的全部需求。注意分頁插件需要在配置類里注冊(cè) MybatisPlusInterceptor加上 PaginationInnerInterceptor否則 selectPage 只能查出所有數(shù)據(jù)分頁不生效。6. 庫存與銷售課設(shè)里最值得寫進(jìn)論文的核心實(shí)現(xiàn)6.1 入庫操作為什么必須放在同一個(gè)事務(wù)里采購入庫涉及三步保存采購主單、更新藥品庫存、寫庫存流水。任何一個(gè)環(huán)節(jié)失敗都會(huì)造成庫存數(shù)據(jù)不一致。舉個(gè)例子如果保存采購單成功但更新庫存時(shí)報(bào)錯(cuò)數(shù)據(jù)庫里就會(huì)有一個(gè)“已入庫”狀態(tài)的采購單實(shí)際藥品數(shù)量卻沒有增加。再比如庫存已經(jīng)更新了但流水沒寫成將來對(duì)賬時(shí)完全說不清這個(gè)庫存是怎么來的。解決辦法是在 Service 方法上加 Transactional(rollbackFor Exception.class)讓三個(gè)操作要么全部成功要么全部回滾。事務(wù)是數(shù)據(jù)庫保證一致性的基礎(chǔ)也是答辯時(shí)必講的技術(shù)點(diǎn)。核心邏輯可以寫成這樣Transactional(rollbackFor Exception.class) public void purchaseStock(PurchaseOrder order, ListPurchaseOrderItem items) { purchaseOrderMapper.insert(order); for (PurchaseOrderItem item : items) { Drug drug drugMapper.selectById(item.getDrugId()); Integer before drug.getStockQuantity(); drug.setStockQuantity(before item.getQuantity()); drugMapper.updateById(drug); stockRecordMapper.insert(new StockRecord( item.getDrugId(), 1, item.getQuantity(), before, drug.getStockQuantity(), order.getOrderNo() )); } }6.2 銷售扣庫存并發(fā)情況下怎么避免超賣銷售最容易出的問題是并發(fā)扣庫存。如果兩個(gè)收銀員同時(shí)賣出同一盒藥庫存就剩 1 盒系統(tǒng)讀到兩個(gè)“庫存為 1”各自都執(zhí)行減 1最后庫存變成 -1實(shí)際卻賣出了 2 盒。解決思路是讓扣庫存的操作變成原子性的并且只有條件滿足時(shí)才執(zhí)行。比較常用的方式是樂觀鎖在 drug 表加一個(gè) version 字段扣庫存時(shí)使用帶條件的 updateUPDATE drug SET stock_quantity stock_quantity - #{quantity}, version version 1 WHERE id #{drugId} AND stock_quantity #{quantity} AND version #{version}如果 update 返回的影響行數(shù)為 0說明庫存不足或者版本號(hào)已變化業(yè)務(wù)層立刻拋出“庫存不足或操作沖突”提示收銀員刷新重試。這種方式在課設(shè)項(xiàng)目里已經(jīng)足夠可靠而且代碼量很小。6.3 庫存流水before 和 after 的妙用庫存流水的 before_quantity 和 after_quantity 字段初看是冗余的因?yàn)橥ㄟ^當(dāng)前庫存反推也能算出來。實(shí)際用起來會(huì)發(fā)現(xiàn)這對(duì)字段在數(shù)據(jù)核對(duì)時(shí)非常有用。比如某天盤點(diǎn)發(fā)現(xiàn)庫存少了 3 盒如果有流水可以按時(shí)間把每筆變動(dòng)列出來快速定位是哪筆操作出了問題。如果沒有流水就只能憑記憶找原因。把 before 和 after 帶上之后流水本身就是一條完整的審計(jì)鏈。寫入順序要注意先更新 drug 表的庫存再插入 stock_record流水里的 after_quantity 必須等于更新后的最新庫存。這兩個(gè)操作必須在同一個(gè)事務(wù)里否則會(huì)出現(xiàn)“流水寫了但庫存沒更新”的情況。6.4 近效期提醒用 SQL 把快過期藥品篩出來藥品效期是藥店業(yè)務(wù)里的剛需。查詢 90 天內(nèi)即將到期的藥品SELECT * FROM drug WHERE expiry_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 90 DAY) AND deleted 0 ORDER BY expiry_date ASC這條 SQL 可以直接用在藥品列表頁的“近效期”Tab 中。更完整一點(diǎn)的做法是在銷售時(shí)增加效期校驗(yàn)如果藥品距離到期日不足 30 天前端彈窗提示收銀員確認(rèn)后二次放行。6.5 庫存預(yù)警低于下限自動(dòng)提醒庫存預(yù)警的 SQL 非常簡單SELECT * FROM drug WHERE stock_quantity stock_lower_limit AND deleted 0但要在首頁把它做成一個(gè)統(tǒng)計(jì)數(shù)據(jù)卡片比如“缺貨藥品 6 種”“近效期藥品 3 種”“今日銷售額 12800 元”這樣管理員打開系統(tǒng)第一眼就能看到異常情況。這三個(gè)數(shù)字看起來簡單實(shí)際上要做三張統(tǒng)計(jì) SQL分別查銷售總額、低庫存數(shù)量和近效期數(shù)量。寫完這三個(gè)接口首頁的展示效果立刻不一樣。6.6 統(tǒng)計(jì)報(bào)表和導(dǎo)出 Excel日?qǐng)?bào)表統(tǒng)計(jì)按自然日分組SELECT DATE(create_time) AS day, SUM(total_amount) AS amount FROM sale_order WHERE status 1 GROUP BY DATE(create_time) ORDER BY day DESC報(bào)表展示用折線圖或者柱狀圖可以用一個(gè)輕量級(jí)的圖表庫 ECharts通過 Thymeleaf 模板把數(shù)據(jù)拼到 JS 變量里渲染。導(dǎo)出功能推薦引入 EasyExcel 依賴寫一個(gè)導(dǎo)出接口把報(bào)表數(shù)據(jù)轉(zhuǎn)為 Excel 文件響應(yīng)給前端下載。這個(gè)功能不復(fù)雜但演示效果非常好是課設(shè)項(xiàng)目里一個(gè)性價(jià)比很高的亮點(diǎn)。7. 排錯(cuò)實(shí)錄課設(shè)跑不起來的常見原因我已經(jīng)幫你踩過一遍7.1 數(shù)據(jù)庫連接失敗被時(shí)區(qū)問題卡住最常見的報(bào)錯(cuò)是“Communications link failure”或者時(shí)區(qū)相關(guān)的異常。原因是連接串里沒有配置 serverTimezoneMySQL 8.0 的驅(qū)動(dòng)要求明確指定時(shí)區(qū)。解決辦法就是加上 serverTimezoneAsia/Shanghai。還有一種情況是密碼錯(cuò)誤報(bào)“Access denied for user rootlocalhost”要把 application.yml 里密碼改成你自己本機(jī)的數(shù)據(jù)庫密碼不要直接照抄網(wǎng)上配置。7.2 控制臺(tái)中文亂碼中文亂碼一般是字符集不統(tǒng)一造成的。確認(rèn)三處設(shè)置數(shù)據(jù)庫連接串里帶上 characterEncodingutf8數(shù)據(jù)庫表結(jié)構(gòu)默認(rèn)字符集是 utf8mb4IDE 的 File Encoding 全部改成 UTF-8。如果是頁面亂碼還要確認(rèn)前端模板文件頭部有meta charsetUTF-8。7.3 前端提交日期參數(shù)報(bào) 400前臺(tái)頁面用表單提交一個(gè)日期字符串比如“2024-05-20 14:30”后端用 Date 類型接收時(shí)Spring MVC 默認(rèn)不認(rèn)識(shí)這個(gè)格式會(huì)直接返回 400。解決辦法是在實(shí)體類的日期字段上加上 DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss)。如果是通過 JSON 傳輸要改用 JsonFormat(pattern yyyy-MM-dd HH:mm:ss, timezone GMT8)。這兩個(gè)注解容易搞混我每次都會(huì)檢查一下。7.4 MyBatis-Plus 自動(dòng)填充不生效如果實(shí)體類里有 createTime 和 updateTime并且加了 TableField(fill FieldFill.INSERT)但插入數(shù)據(jù)后這兩個(gè)字段是 null原因是你沒有配置 MetaObjectHandler。自動(dòng)填充需要一個(gè)處理器在插入時(shí)自動(dòng) set 創(chuàng)建時(shí)間和修改時(shí)間。Component public class MyMetaObjectHandler implements MetaObjectHandler { Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject, createTime, LocalDateTime.class, LocalDateTime.now()); this.strictInsertFill(metaObject, updateTime, LocalDateTime.class, LocalDateTime.now()); } Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, updateTime, LocalDateTime.class, LocalDateTime.now()); } }配置了之后createTime 和 updateTime 就會(huì)自動(dòng)維護(hù)不需要每個(gè) Service 方法手動(dòng) set。7.5 靜態(tài)資源 404頁面樣式全丟了Spring Boot 的默認(rèn)靜態(tài)資源路徑是 classpath:/static/模板頁面放在 classpath:/templates/ 下。Thymeleaf 頁面里引用 CSS 時(shí)要用 th:href{/css/style.css}或者寫成 /css/style.css 絕對(duì)路徑不要用相對(duì)路徑否則從不同 URL 進(jìn)入頁面時(shí)路徑會(huì)亂掉。7.6 啟動(dòng)報(bào)端口占用啟動(dòng)時(shí)如果提示“Port 8080本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
骚熟女AV网| 国产一级特黄大片处女| 婷婷久久久| 大香蕉欧美国产日韩高潮| 91美女精品| 另类 日韩 熟女| 蜜臀99999| 污色区网站| 热九九精品| 天天草AV| 91成人在线免费视频| 精品乱子一区二区三区99| 中文字幕精品码亚洲| 日韩欧美综合激情| 日产成人久久| 日本五十路熟女一区二区| 精品v1区| 四虎影视欧美| 96精品在线| 国产青青综合伊人| 国产精品麻豆免费视频| 麻豆区99999| 日逼97| 日韩欧美俄罗斯A片| 久久只有精品一区二区三区| 久久av无码| 日本亚洲vr欧美不卡高清专区| 日日97| 欧美日韩操逼嗦吊| 久久久久96| 黄片www.| av天堂加勒比| 色丁香五月婷婷| 69久久| 91精品久久久久久77777| 人人摸人人舔一区二区| 国产92麻豆天美精品色欲5| 天美一二三在线观看Av| 天天看精品动漫视频一区| 99免费视频| 亚洲97超碰| AV天堂丝袜| 国产精品黑人一区二区三区| 91丝袜美腿片| 久久人人爽人人爽人人片Ⅴ| 丰满熟女一区二区三区在线播放| 老女人老91妇女老热女| 99精品无码| 99精品九九九九九九| 丁香五月电影| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 91在线国产后入风骚翘臀美女素人| 久久午夜鲁丝片| 色蜜AV| 91视频精品| 91草草草| 91一区二区| 亚洲精品自拍| 亚洲欧美综合网站| 久久国99999| 999国产精品999| 成人久久久| 超碰这里只有精品| 五月婷丁香| 在线天堂资源亚洲| 99re99视频在线免费观看| 国产 丝袜 欧美中文 另类| 国产日本一区二区三区蜜臀在线观看| 夜夜操夜夜爽夜夜高潮| 三级三久久线久久99久目本WW| 91亚洲电影| 国产亚洲色婷婷99精品91| 九九热在线精品视频| 久久熟女人| 变态综合色| 蜜桃视频精品一区二区三区| 中文字幕在线高清男人的天堂| 1240青青草一区二区三区视频天爱| 青青草久久一区网| www激情| 久久久精品中文字幕爱豆| 丝袜视频网国产90| 97在线青| 国产精品一级特黄aaa大片在线观看| 久久成人网站| 大香蕉在线免| 亚洲免费97免费| 日本熟妇一区二区三区| 国产亚洲精品美女久久久m| 亚洲天堂精品日韩电影| 蜜屁av| 97综合在线观看| 中文字幕aⅴ在线视频| 欧洲站一级二级三级h| 久久久久密| 四色永久成人网站| 自拍鲍鱼一区在线高清观看免费| 婷婷五月色| 青娱乐国产精品| 国产女人视频三四五区| 99无码| 亚洲天堂美臀在线| 日本一天色道久久久精品视频| av天天在线观看| 精品性爱无码在线播放| 久久精品国产亚洲AV成人直播| a级免费在线观看| 久久国产乱子伦精品免费女,网站| 校园春色 亚洲| 日韩一级二级三级免费看完整版国语版| 久久一区无码| 久久精品视频久久久| 国产亚州日韩欧美看片| 操逼免费视频无码国产| 久久青青草原免费视频| 免费国产电影一区二区| 国产精品久久久无码aV去| 日韩淫色网| 精品亚州18| 亚洲宅男天堂| 91一起操| 99色色网| 嗯嗯啊啊操死我| 极品丝袜无码| 99操| 国产熟女自拍| 一本久久久精品| 使劲用力艹少妇视频一区二区| 久久国产对白激情浪潮 | 天天躁日日躁AAAXX| 国产一区二区成人av在线播放| 啊啊啊爽爽| 中文字幕午夜精品久久久| 亚州日韩97| 欧美日韩美女精品久草一区二区三区| 3级毛片一二| 久久九精品| 91天天爱| 黑丝制服中文字幕| 日少妇视频| 亚洲色人| 青青操综合网| 嗯嗯嗯好爽| 久草新免费| 日本中文字幕一区| 国色综合天| 精品久| A片大香蕉在线| 韩国黄片aaaa| 无码国产精品午夜不卡(| 美国一区二区免费视频| 五月婷婷激情网| 人人操人人摸人| 开心五月婷婷| 精品一区二区三区四区外站| 天天干夜夜操一区二区| 欧美操人视频| 大香蕉啪啪啪| 天天日天天操VV| 国产欧美日产一区二区三区 - 国产欧美日 | 亚洲成人性爱网站在线播放| 婷婷五月av| 国语人妻精彩刺激| 劲爆欧美人妖三区91| 成人怡红院| 国产不良强奸视频免费看| 中日韩欧美精品无码AⅤ一区二区| 五月天激情四射| 天操天操夜操夜月操月年年操| 97精品综合久久网| 玖玖爱影院| 香蕉热人人精品| 久久综合九九| 欧美天天综合站| 人人操人人肉久久精品| 欧美日韩国产色图在线| 女人妻一区| 久久久久久少妇| 中文字幕丰满子伦无码专区在线视频最新 | 偷看洗澡一二三区美女| 亚洲自拍一区夜夜操| 九九热只有精品| 一级性爱视频免费观看| 久久99网站| 日韩人妻丝袜美腿中文| 91 综合网| 黄色免费网页无码| 亚洲宗合网| 国产偷人伦激情在线观看| 静品嫩模一区二区| 超碰99热中文字幕| 天天影视综合色| 亚洲一区操| 国产女人高潮视频| 人妻熟妇一区二区三区| 操逼逼中文字幕| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美色图天堂在线| 国产三级中文字幕粉嫩| 精品人妻1区| 亚州操操穴网| 一级毛片电影免费看| 亚洲精品久久久久久久蜜桃臀| 一区 欧美 日韩 麻豆| 91人人操| 九九热精品免费视频| 国产9熟妇视频网站| 逼逼逼逼操操操操操操操操操午夜剧场| 伊人影院在线理论播放 | 加勒比综合九九99视频在线播放| 国产乱伦性爱区| 欧美中字二区| 欧美性爱第一区| 狠狠色一区二区中文字幕| 天天激情综合站| 天天干天天日天天射黄色| 久久黄人人爽视频| 亚洲男人bt天堂| 九热中文字幕| 99国产天美| 91综合色| 美腿丝袜高跟网免费视频免费视频| 97在线免费观看| 九九毛片这里只有精品| 国产精品成人AV片免费看网站| 成人情色一区二区| 成年人网站在线免费观看| 后入内射蜜桃臀| 琪琪精品免费一区二区三区 | 97超碰9| 精品久久久av| 久久久久亚洲三级电影| 国产91丝袜在线播放蜜月| 国产精品呦一区二区三区| 少妇第一页| 亚洲无码?第一页| 九九久久国产精品怡红院| 国产AV色黄看到爽| 热久久无毒不卡| 另类天堂| 东京热视频网| 一二三四区操操Av| 日韩无码嘿咻黑热久| www.91人妻.com| 青草伊人久久| 精彩国产视频播放1区2区| 亚洲成人久久一区二区| 无码137片内射在线影院| 国产精品一级二级在线| 美女的肌被草喷水视频| 九九热精品| 97超碰磁| nuu12国产麻豆精品| 91 手机在线播放 绯色| 欧美日韩操逼动图| 火箭成精品视频884必出精品| 九九九九久久久| 亚洲精品国产日韩无码AV永久免| 欧美草草高清日韩视频| 亚洲素人网| 久久,精品一二三| 日韩乱伦影音先锋| 人妻献身系列第54部| 97综合激情| 免费成人在线熟妇网| 嗯嗯嗯好爽| 欧美成人一区二区三区在线播放| 日韩激情无码影院| 日韩欧美日韩| 天美91| 漂亮人妻被强中文字幕hd| 嗯嗯啊啊视频一区二区三区| 欧美美女在线高潮999| 亚洲综合婷婷| 日韩性爱播放| 亚洲av影院在线观看| 综合激情二| 热99这里有精品综合久久| 亚洲色图日韩丝袜制服一区二区五月在线| 婷婷久草| av久日| 日韩av色图综合| 在线女人91| 色婷婷基地| 日韩不卡毛片Av免费高清| 日韩无码操逼片| 在线a亚洲视频播放在线| 精品国产乱码久久久久久免费| 小骚逼被操的爽不爽| 日韩三级在线观看mp4| 国产日韩精品一区二区三区| 久操高青| 日日干夜夜操视频h| 久久熟女人| 亚洲国产欧美日韩人妻日中文| 色99在线| 久久一区无码| 蜜桃精品视频一区| 男人天堂 天天射| 九九九九九九九九九九精品视频| 秋霞福利网| 中文字幕在线2| 射丝袜大香蕉| 日日爽熟女| 四虎av在线| 国产又粗又长的视频| 加勒比少妇AV婷婷六月天超碰超碰| 东北老女人的激情视频| 青青欧美| 九九九国产| 久久久久久九九九| 国产精品第一区第一页| 激情抓乳插进去啪啪啪日韩| 无遮挡一级毛片视频免费的| 日韩一级特黄av毛片| 国产操逼逼网| 国产11页| 淫骚熟女一区二区三区| 哑洲在线| 欧美精品宗合| 久久亚洲欧美中文字幕国语| 亚洲激情在线| 色婷婷综合久久久久中文一区二区| 日韩精品人妻中文字幕久久久| 人妻在线大香蕉| 91九色丰满高潮| 鸥美中出| 日日碰狠狠添天天爽超| 久久熟女人| 97超碰久| 中文字幕在线免费观看 | 激情网色| 99成人| 97色涩| 超碰欧美97资源| 久久97超碰| 国产一区在线观看无码AV| 亚洲天堂无码| 特级大荫道BBwBBwBBW| 美日韩一二三区| 欧美色另类| 琪琪精品免费一区二区三区| 伊人综合色网| 国产中文字幕在线| 国产亚洲欧美每日在线| 成人欧美一区二区三区黑人一| 第四色亚洲色图| 欧美视频一区二区三区| 中文字幕一区二区三区四区在线视频| 国产吞精a级片激情电影| 久操99| 97网址97| 伊人网免费视频| 天天做日日爱夜夜爽| 99热亚洲天堂| 色综合一区二区三区| 1禁看欧美黄片免费看| 性爱动态120秒| 制服诱惑亚洲一区二区三区在线观看| 上特色A在线| 操逼片中文| 亚州乱码中文字幕综合久久久| 天堂精品一区| 凹凸久久人人| 欧美内射少妇| 日韩三级伊人| 五月婷婷丁香| 亚洲人综合19| 97五月天| 大鸡巴久久| 国产精品秘 福利姬在线观看| 中文字幕超碰CAO| 天天看精品动漫视频一区| 99热9| 亚洲精品蜜桃久久久| 少妇高潮对白在线观看| 中文字幕十五区| 黄色AV免费| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 欧美Ⅴ性爱| 精品免费一区二区三区在线亚洲人成| 超碰色大香蕉| 五月婷婷基地| 南澳成人一级片在线播放| 人人妻人人狠人人| 少妇熟女视频一二三区| 国产强上视频在线观看| 亚洲综合一| 亚洲小电影免费涩涩成人在线高清| 97亚洲一区| 欧美人黑A片无码免视费| 国产91美女高潮| 91天堂网| 人妻在线臀日韩| 免费精品国偷自产在线在线| 亚洲 中文 女同| 久久产精品一区二区三区电影| 天天91~综合入口| 日韩精品人妻一区二区| 欧美专利1区2区3区4区5区免费| 亚洲黑人在线| 中文字幕视频一区视频二区| 强奸乱伦免费网站| 91日日夜夜| 国产 v乱码一区二| 亚洲综合伊人无码久久| 亚洲色图久久成人| 日韩偷拍一区二区三区| 热久日综合| 手机在线观看不卡无码av| 久操视频在线| 激情第四色| 丰满人妻aA一区二区三区| 欧美亚洲影视| 在线国产一区二区av| 婷婷久久久精品| AA丁香综合激情| 亚洲天堂精品日韩电影| 97一区二区三区视频| 亚洲精品亚洲人成在线麻豆| 国产精品96| 日韩午夜国产| 岛国片在线观看视频亚洲| 麻豆精品.欧美精品.日韩精品.| 婷婷情色综合网| 国产在线激情视频| 天美麻豆一区二区三区| 欧美视频激情久久久久久| 性爱乱伦一区| 操一操摸一摸| 蜜桃午夜视频一区二区| 一个人在线看的黄色电影网站| 日韩精品免费高清视频在线| 人妻丝袜二区| 动漫av中文| 日韩精品99999| 岛国片在线视频网站| 亚洲欧美校园| 精品一区二区麻豆| 大香蕉啪啪啪| 郑州宾馆老熟女露脸啪啪| 殴美性天天| 手机久操欧美综合色码| 香蕉在线一区二区三区| 欧美精品久久久久久久久88| 日韩字幕一区| 九久精品| 91精品久久久久久| 91国产美女丝袜足交精品视频| 国产99 中文字幕日韩小视频| 思思热在线视频免费| av影院十区| 欧美精品三区| 五月天伊人| 深爱激情五月天| 日韩精品人妻一| 国产视频人人网| 欧美欧美少妇| 97 国产精品| 涩涩久久精品| 亚洲男人的天堂AV| 欧美三级一级| 婷婷久草一区二区三区| 不卡免费av在线播放| 久久久久久久伊人精品| 精品国产三级av韩国在线| 欧美日韩欧美| 欧美色图校园春色| 成人草草视频| 桑老女人九区| 蜜臀在线网站| 欧美精品亚洲精品日韩传电影| 日韩ab网| 日韩国产十八禁| 欧美色三级片91| 欧美操人| 久操大香蕉手机视频在线看 | 天天干天天燥| 国产一区自拍欧美日韩| 五月丁香六月综合缴清无码 | 男人的天堂VA| 亚洲高清色综合| 亚洲色图片区| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 长长久久88视频| 啪啪啪综合网| 国产精品交换一区二区| 懂色AV一区二区三区| 青青操青娱乐| 亚洲激情深爱文学小说网站| 黄色激情电影在线观看| 青青伊人久久| 婷婷在线视频| 一区二区精品日韩欧美在线观看| 青青草无码视频| 视频二区美腿丝袜制服人妻欧美| 免费视频在线观看啊啊啊啊啊| 久久性爱精品一区| 欧美手机在线综合| 舔人妻中文免费视频| 精品少妇高潮久久| 日本二三四区| 免费一二区| av网站免费线看| 搡老熟女免费视频| 操逼逼中文字幕| 久久精品国产亚洲AV无码电影| 欧美顶级黄片AAAAA在线免费看| 日韩中文字幕视频在线观看| 男人的天堂亚洲| 91在线限制级| 超碰在97| 美女啊啊啊啊啊| 99久久国产精品免费高潮| 精品无码一区二区三区色欲| 午夜AV人气不卡| 日本一级二级三级网站| 色婷五月天| 日韩av熟女一区二区三区成人| 啊啊啊不要啊啊受不了了视频在线| 91女优在线观看| 欧美色另类| 乱伦一二三区| 超碰人人在线| 美女高潮视频91| 日韩av情韩国爱禁区av一区二区| 高清视频一区| 日本一区视频在线观看| 激情五月丁香五月| 亚洲激情色片| 欧美综合网A| 亚洲h片在线免费观看| 欧美成人黄网色网站| 国产精品一区二区在钱播放| 青青伊人这里只有精品| 欧美亚洲中文| 国产黄色av大片网站| 爱爱动态120秒| 亚州高清av| 亚洲国产丝袜熟女av| 国产成人免费观看在线视频| AV天堂电影网| 97人人夜| 奇米狠999| 91美女在线精品视频| 欧美草草| 大香蕉免费3| 六月丁香五月婷婷| 国产乱青青草久久| 日韩欧美大力操| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 色情五月综合婷婷| 99久在线精品99re8a| 亚洲九九九九| 婷婷五月天成人网| 夜夜操夜夜高潮夜夜爽国产精品区| 久操精品| 9久综合网| 蜜桃午夜视频一区二区 | 激情五月综合开心五月| 中文字幕国产精品1区| 丝袜加勒比| av在线一区二区三区| 久久久久久久久九九久孕交| 亚洲色狠| 欧美黑人猛交春色影视大全| 天堂亚洲精品| 日本久久天堂| 日本亚欧爱爱| 久久99午夜精品一区人妻| 97欧美色资源| 精品中文字幕第一页| 高树玛利亚无码流出| 超碰九7| 五月丁香在线| 欧美 亚洲 第一页| 久久香蕉国产传媒一区剧情天美| 久久香蕉国产线看观看亚洲女人 | 日韩在线观看字幕精品| 久久久九九九九| 亚洲天堂一区二区久久| 美女裸体麻豆天美蜜桃91| www欧美91| 婷婷色婷婷| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 日韩精品9999| 国产三级片在线观看| 99色视频| 久久精品熟妇丰满人妻99| 啊啊啊啊嗯嗯嗯用力好爽| 欧美的精品的视频| 猛交交| 男人天堂2030| 色哟哟的毛片| 无遮挡又黄又刺激的视频| 欧美人妻精品| 先锋影音av先锋一区| 人人爱夜夜爱| 亚洲,日韩,欧美,成人播放 | 偷拍 精品另类 凸凹了四区| 久久久精选| 大奶啊啊好爽| 八戒午夜福利理论片| av操操不卡| 亚洲一曲日韩精品| 亚洲综合夜色| 国产美女自拍AV| 欧美日韩人妻少妇 一区二区三区| 性爱边摸边日免费AV| 一本一道久久综合久久| 久久丁香五月天| 天天澡天天爽日日AV| 中美日韩毛片| 思思热免费在线视频| 在线五区| 亚洲男人bt天堂| 男女做爰猛烈动高潮A片免费应用| 另类av天堂| 18禁网站在线播放| 骚女天天综合网| 亚洲精品一二三四区| 日韩精品碰碰| 天天操福利视频综合网站| 黄色大片一区二区密桃丝袜| 国产午夜福利专区综合| 操曰本熟女| 中文字幕五区| 亚洲国产奇米影视久久| 人妻精品一区二区三区| 91 国产丝袜在线放观看| 18禁止看精品中文字幕| 91天天爽| 激情图片亚洲色图| 久99热| 亚洲无码国产探花在线观看| 男人天堂最新手机版在线青青草| 懂色综合久久久| 最新日本中文字幕| 9精品久久久久| 色老汉色| 精品久久視頻在线| 日日超碰亚洲| 天天天堂影视日韩亚洲91| 性感女人网页在线观看视频| 日韩激情中文字幕有码| 成人自拍三级在线观看| 欧美 日韩第一性色| 黄色十八禁网站| 九九热超碰| 国产精品久久久久无码A√| 日本精品五区| 蜜臀va69| 97视频在线观看网站| 精品射1999| 精品一区二区啪啪啪| 很黄很色的视频在线观看| 后入式免费视频| 97久久天天综合色天天综合色电影| 无码99| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 精品无码久久久久久国产浪潮| 国产乱码久久久| 北野未奈加勒比av| 91成人在线| 欧美激情视频一区二区三区不卡| 色婷久久| 天天操天天干一区二区 | avav青青草久久夜| 超碰久久综合| 都市激情人妻一区二区青青操视频 | 大香蕉免费3| 天天拍夜夜| 91欧| 91中文字幕在线观看| 黑人干亚洲| 国产妇女精品视频青青草| 国产天天看| 免費人妻夜夜爽天天爽爽一区| 欧美日韩高潮喷水91| 天天天天天干夜夜夜夜夜操| 国内毛片国产专区二| 亚洲成a人在线观看久| 黄片视频,下载| 福利操逼| 亚洲精品无码成人久久久99| www.大香| 国产精品色片一区二区| 国产成人精品日本视频| 亚洲综合中文字幕有码| 国产欧美日本亚洲精品| 眼镜人妻101.com| 欧美性爱日韩高清| 天天色天天干天天爱| 欧美偷拍区| 日韩亚洲中文字幕在线| 黄片色区软件| 国模吧 一区二区三区| 日本在线视频导航| 67194国产| 欧美一区91大爱| 99re不伦| 成人五月天色网| 极品白嫩福利在线| 日韩 成人 有码| 免费网站观看www在线观| 加勒比av中文| 啊啊啊啊啊啊啊在线| 啊啊在线| 蜜臀久久久99久久久久 | 欧美少妇高潮视频| 老熟女91视频| 人人做天天爱| 日本熟妇人妻中出视频| 长长久久曰曰夜夜成人网| 人妻加勒比东京热| 国产美女口爆吞精| 久久久草草精品| 色欧洲| 欧美一级AAAAAAA| 欧美大香蕉专区网| 久久乐| 日韩熟女精品无码专区一区二区| 欧美在线视频播放| 五月天久久人妻| 俺去啦俺来也久久综合| 日韩欧美国产一区二区三区四区| 99热在线播放| 久久免费看高潮毛片韩国| 欧美色图在线视频少妇| 999精品女人| 国产美女销魂在线观看不卡| 亚州操逼网| 歐美一級亂黃99在綫精品| 久久久久9| 婷婷人妻激情| 成人AV超碰免费在线| 91精品啪在线观看国产城中村| 亚洲综合春色| 龙兴卡官方查询| 黑人娇小av在线播放| 香蕉久久AⅤ...| 亚洲一区深夜| 校园春色宗合网| 插入逼91| 免费在线观看AV无码网站| 啊啊啊97视频| 国产视频第二页| 啪啪资源网| 富二代亚洲精品99 | 乱伦av国产| 天天色综合图片| 操淫穴亚洲五月丁香| 国产午夜精品理论片一二三区区| 九九探花视频在线观看| 鸥美精品一区二区久久婷婷| 精产品久久| 一级久久性爱视频| 三上制服丝AV| 97精品久久| 欧美自拍偷拍免费观看| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲一欧洲中文字幕在线| 东京热男人的天堂网| 性欧美第一页| 久久中文字幕一区不卡| 超碰资源亚洲97| 青青草原av| 抽插无码高清一区| 亚洲精品一区二区免费在线观看| 手机午夜电影神马久久| 好吊妞转入那个网| 91热| 亚洲一区中文字幕一区| 懂色影视久久| 亚洲最新av无码成人精品区| 久久久熟妇熟女国产| 久久久一区二区三区麻豆| 日韩一性一交一A片俄罗斯| av天天在线| 免费中文综合精品| 激情文学欧美| 亚洲电影中字一区二区| 精品久久久久瑟瑟| 无码人妻精品酒店| 99久久这里只有精品| 色97干| 91久久精品蜜臀| 91 偷| 校园春色制服丝袜中文字亚洲| 久久国产精品视频| 久久曰曰| 又黄又硬又粗又长国产视频| 99热超碰| www亚洲欧美| ′ !γ}丶。。久久精品欧美一区二区三区| 亚洲成人AB| 亚洲激情综合| 69精品| 欧美性,色九九| 国产丝袜美女在线一区| 亚热日本熟女| 浪人综合网| 丝袜美腿91| 婷婷五月天丁香| 国产高清成人免费视频| 91人妻丝袜无码| 人妻中文字幕精品无码| 校园春色中文字幕AV| 日本亚洲熟女视频| 欧美亚洲丝袜人妻制服中文99| 69人妻人人揉人人躁人人精品| 国产日本一区二区三区蜜臀在线观看| 一区,二区,三区网站| 国产精品不卡一区二区三区av| 日韩精品怡红院| 国语对白在线播放视频| 婷婷10月天青娱乐| 91亚洲人电影| 在线观看无码三级少妇| 91碰碰| 后X久久| 人人做天天爱| 久久黄黄黄| 又大又黄国产| 亚洲色 国产 欧美 日韩| 老司机午夜福利视频一区二区| 色婷婷色99国产综合精品| 97精品全部| 97超碰色屌| 青娱乐国产盛宴视频| 91色欧美| 操死我了嗯嗯嗯| 欧美一级A片在线看视频性色| 国产午夜精品在线观看| 美女黑人91神马| 天天做天天爱天天高潮| 欧美中文字幕日韩在线| 婷婷性网| 欲色影视综合吧| 亚洲日韩精品在线播放| 久久天堂| 欧美啪啪天堂| 色婷婷综合久久久久中文一区二区 | 亚州色图欧美色图| 免費人妻夜夜爽天天爽爽一区| 国产一区在线免费播放| 操东北女人| 激情婷婷丁香网| 日本裸体久久色噜噜| 五月丁香综合激情| AV和黑人在线播放| 啊啊啊想要| 日韩欧美天堂| 天美传媒AV国产在线| 96AV精品| 97啪啪| 国产小黄片在线免费观看| 国产精品女aA片爽爽视频| 色哟哟av| 99国产精品免费| 精品免费一区二区三区在线亚洲人成| 国产亲戚伦亲在线| 国产一级高跟丝袜| 91天天综合网| 97亚洲色图| 色香伊人| 夜夜 中文视频rt| 色香阁在线| 成人婷婷丁香| 久热无码| 日韩,欧美,中文在线| 国产精品黄色三级av| 亚洲第一页第二页激情| 久操精品| 九九热精品视频六| 91视频女生| 亚洲精品不卡一二三区| 无码久| 九九九久千久久激情蜜桃在线看 | 亚洲国产婷婷在线播放| 亚洲 欧美 精品专区 极品| 天天综合网~91| 在线洲亚线| 精品丰满熟妇人妻一区| 一区二区三区色综合| 天美传媒AV国产在线| 精品国产网站| 亚洲图片欧美制度| 亚洲精品天天影视综合网 | 日韩国产欧美伦理在线| 91精品久久久| 日熟女| 日韩人妻一二三区视频| 久久精品 六十路 熟女 欧美| 偷拍 欧美 日韩| 福利视频合集| 国产无码三级视频在线观看| 人人操人人摸人人骑| 伊人加勒比| 久久亚洲AV无码白度| 亚洲国产综合图区中文字幕 | 激情文学欧美| 亚av顶级裸体一区二区三区四区五区| A男人的天堂| 新视频sss国产| 视频在线中文字幕| 狠狠干2020| 亚洲欧美骚| 91天天综合日韩欧美| 亚洲中文字幕在现观看| 日本一区二区不卡| 日韩精品字幕| 搡老女人老妇女AAA一VU麻豆 | 十八禁黄色| 麻豆精品一区二区三区四区免费观看| 无码一区免费在线不卡| 桃花色综合影院| 老司机射| 91狠狠综合久久久| 97操97色| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 中文字幕福利视频一区二区三区在线观看| 啊啊啊啊,啊啊好多水| 美女久久久久久久久久久| 精品少妇999| 久操com| 首页中文字幕中文字幕免费| 日韩一区二区精品视频| 日夜啪电影| 久久国产精品熟女人妻| 久久久久久91香蕉国产| 一本色道久久综合亚洲二区三区| 亚洲久久久| 久操91视频| 欧美麻豆成人同性GⅤ在线| 婷婷五月天色色| 绯色AV粉色AV蜜臀AV| 欧美日韩亚洲五月天婷婷| 国产日韩怡红院| 国产亚洲日韩欧| 亚洲av淫乱| 91老熟女逼| 成人在线午夜视频一区| 高清无码人妻久久久一区二区三区aⅴ| 九九无码| 免费A V在线| 日han少妇无码| 蜜区区视频79 | 久久在肏| 99re热有精品视频国产| www.夜夜| 日韩人妻精品中文字幕| 亚洲资源站| 粉嫩av在线一区二区| 久久人人妻| 中文字幕免费在线观看| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 丰满人妻一区| 久久久久久九九九九| 午夜理论片在线观看免费| 澳门成人网站久国产日韩| 久久久91福利姬| 日本三级A片网站com| 九九aV| 久久精品高清无码一区| 日本高清免费一本视频在线观看| 国产精品久久伊人| 欧美大片天天看| 欧美激情综合网| 曰韩无码777| 97综合在线观看| 日本黄色精品| 成人激情无码在线视频| 六月丁香啪啪啪| 久湿久久| 成人精品一区二区91毛片不卡| 久久e6只有精品| 精品人妻一区二区三区不卡断| 中文一区在线视频| 欧美曰韩国产精品| 91一区二区三区蜜桃| 翘臀vidoes| 一级AAA片一区二区三区| 天天日天天干天天整| 一区中文字幕二区日韩| www国产无码| 老鸭窝亚洲毛片| 日本三级精品| 国产成人+综合亚洲+天堂| 97bbn| 国产av又色又爽又黄| 最新av在线| 国产精品久久久久久亚洲色欲| 亚洲美女精品| 国产深夜福利| 少妇免费视频| 国产黄色剧情影片麻豆免费播放| 99∨VTV| 91成人无码| 亚洲国产日韩欧美熟妇在线| 亚洲国产97在线精品一区| 色999;丁香五月| AV天黑人| 婷婷久久五月| 精品久久久久成人码免| 欧美性生活综合| 中文字幕一区二区三区人妻不卡| 国产亚洲精品玖玖玖在线观看| 97爱啪| 亚洲第一无码播放立川理惠| 91狠狠狠| 天天日天天插| 欧美91变态| n1038 一二三区| 超碰97 线线 在现| 精品免费一区二区三区在线亚洲人成| 亚洲第一页第二页激情| 亚洲男人的天堂V| 91看黄片| 999熟女精品| 日韩性爱再线视频| 久久久久久加勒比| 99无码精品| 国产成人91一区二区三区| 影音先锋一区二区在线资源| 变态乱伦伪娘灌肠一区二区| 玖玖爱伊人玖玖爱| 天天操夜夜操| 好色综合| 330dv亚洲成年视频网| 91三级理论片播放器| 精品1区2区3区| 99热精品青草在线| 亚洲精品国产无码高清| 亚洲午夜蜜臀| 久久久艹艹艹| 人人妻人人爽 97人人看碰人免费公开视频 | 无码一区二区精品视频久久久春药 | 国产强奸AV在线| 亚洲精品一区二区免费在线观看| 三级日本一区二区三区| 美女91av| 夜夜爽77777| 亚洲性爱成人| 久久久久深夜无码| 99re3这里只有精品| 中文字幕精品一区二| 亚洲素人综合| 四虎AV无码| 淫荡少妇免费| 超碰人妻久久| 久久精品老司| 久久久久9999| 久久精品中文字幕观看| 久久久久久中文| 人妻密肉在线观看| 日本午夜福利影院| 久久久精品| 精品欧美日韩在线观看| 蜜臀精品1区2区| 人妻aa| 黄色香蕉视频网站一区| 国产中午字一暮区| 综合网欧| 天天日少妇逼AV| www.久久制服糖| 啊啊啊啊无码| 欧美精品在线观看| 久久久久久精品免费看A级| 97超碰香蕉| 91色综合色| 另类av天堂| 性爱动态120秒| 国产精品999zyz| 综合欧美亚洲| 九草九九九| 欧美日韩国产电影| 视频在线观看一二三区| 亚洲国产高清福利视频| 在线无码视频| 人妻色偷色噜| 欧美三级偷拍| 久久精品日韩专区免费观看| 99国产在线绯色一区| 色丁香久久| 99久久久久久久久| 精品对白久久不卡| 伊人欧美大香蕉视频| 欧美91久久久久| 操死我干死我| 高潮内射在线| 亚洲五月丁香花狠狠干一区二区三区| 国产精品无码久久久久2028| 日韩精品中文字幕人妻| 无码高清操逼网址| 欧美日韩性爱操大逼| 日韩三级伦理中文字幕| 色臀AV| 亚洲色婷婷综合久久久久中文| 天天舔九色婷婷| 久久蜜桃综合网| 99自拍B亚洲| 五月婷婷影院| 亚洲中文字幕97久久精品少妇| 色综合久| 美国aaaaa一级黄片| 粉嫩粉嫩一区性色AV片| 无码操逼网| 人妻偷拍一区二区三区| KK色在线影院| 91最新综合| www.成人无码| 秋霞曰韩R级| 欧美日韩系列| 超碰免费人人| 亚州,欧美在线| www.色婷婷色综合| 国产精品日日摸天天碰| 亚洲色欲天天人妻无码系列专区| 天天干夜夜肏| 成人网站 免费观看| 东北女人操逼| 天天综合网91入口| 99.色网| 欧美 中文字幕 一区| 粘花网06av视频| 97精品第3页| 97资源免费视频| wuyechaopeng| 清纯唯美第一页| 粉嫩av一区二区三区天美传媒| 中文字幕精品码亚洲| 电家庭影院午夜69久久夜色精品国产69乱| 亚洲人妻五月丁香婷婷| 久久六六| 99re热有精品视频国产| 日小BB小视频| 91精品人妻电影| 天天日天天舔| 天天添天天干电影| 国产精品欧美激在线| 夜夜操中文字幕| 欧美不卡在线美女| 亚洲天堂自拍| 亚洲精品1区| 人人妻人人色一区二区三区| 2017天天操天天日| 亚洲欧美另类小说| 亚洲欧美日韩免费观看| 欧美日本中字另类在线| 大香蕉九九| 亚殴在线| 操逼短片| 久久一区二区三区四区五区| 一二三四视频中文字幕在线看| 一级黄色性爱A级片| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 日韩欧美偷拍美女视频| 久9爱精品| 精品无码一区二区三区|