99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

Spring Boot實(shí)戰(zhàn):智慧養(yǎng)老院管理系統(tǒng)的架構(gòu)設(shè)計(jì)與權(quán)限控制

Spring Boot實(shí)戰(zhàn):智慧養(yǎng)老院管理系統(tǒng)的架構(gòu)設(shè)計(jì)與權(quán)限控制 從需求到落地我如何用Spring Boot搭起一套智慧養(yǎng)老院管理系統(tǒng)去年年初接手了一個(gè)養(yǎng)老院管理系統(tǒng)的開(kāi)發(fā)任務(wù)機(jī)構(gòu)那邊的情況比較典型三百多張床位護(hù)理人員幾十號(hào)人老人的健康檔案還停留在紙質(zhì)登記家屬想了解老人情況只能打電話問(wèn)前臺(tái)護(hù)理排班全靠Excel手動(dòng)排。領(lǐng)導(dǎo)說(shuō)要上一套“智慧養(yǎng)老”系統(tǒng)我一開(kāi)始以為是噱頭等真正把需求理完才發(fā)現(xiàn)這塊業(yè)務(wù)遠(yuǎn)比想象中復(fù)雜——它既要做傳統(tǒng)的人事、床位、費(fèi)用管理又要對(duì)接健康監(jiān)測(cè)設(shè)備和護(hù)理任務(wù)流轉(zhuǎn)還牽扯到家屬端的實(shí)時(shí)溝通。整套系統(tǒng)從立項(xiàng)到上線用了將近五個(gè)月最終的架構(gòu)是基于Spring Boot為后端核心搭建的把設(shè)備對(duì)接、任務(wù)調(diào)度、權(quán)限控制、消息推送這些能力全部揉進(jìn)了一個(gè)單體應(yīng)用中。這篇文章分享一下整套系統(tǒng)的設(shè)計(jì)思路和關(guān)鍵實(shí)現(xiàn)細(xì)節(jié)。如果你正準(zhǔn)備做類(lèi)似的SpringBoot畢設(shè)項(xiàng)目或者公司打算給養(yǎng)老機(jī)構(gòu)做信息化改造應(yīng)該能從中看到一條比較務(wù)實(shí)的落地路線——包括數(shù)據(jù)庫(kù)建模、定時(shí)任務(wù)設(shè)計(jì)、多角色權(quán)限控制以及我在實(shí)際開(kāi)發(fā)里踩過(guò)的那些坑。1. 項(xiàng)目背景與需求盤(pán)點(diǎn)養(yǎng)老院管理系統(tǒng)到底管什么動(dòng)工之前我花了整整一周蹲在養(yǎng)老院里觀察他們的日常運(yùn)轉(zhuǎn)。這個(gè)過(guò)程非常重要因?yàn)轲B(yǎng)老管理系統(tǒng)和普通的業(yè)務(wù)系統(tǒng)有個(gè)顯著區(qū)別它的核心數(shù)據(jù)是“人”而且是需要持續(xù)照護(hù)的老年人系統(tǒng)一旦出錯(cuò)直接影響的是線下護(hù)理安全。所以需求分析階段不能只坐在辦公室看調(diào)研表必須搞清楚每個(gè)角色每天到底在做什么。1.1 傳統(tǒng)養(yǎng)老院管理的三大痛點(diǎn)第一個(gè)痛點(diǎn)是老人健康信息碎片化。血壓、血糖、服藥記錄、體檢報(bào)告散落在紙質(zhì)檔案和護(hù)士的隨身本子上醫(yī)生巡診時(shí)要逐頁(yè)翻找同一個(gè)數(shù)據(jù)可能被重復(fù)登記好幾次。第二個(gè)痛點(diǎn)是護(hù)理任務(wù)沒(méi)有閉環(huán)。排班表排完就完事了護(hù)工是否按時(shí)執(zhí)行了翻身、喂藥、體征測(cè)量這些任務(wù)管理層完全不知道萬(wàn)一老人出現(xiàn)異常事后連責(zé)任追溯都做不了。第三個(gè)痛點(diǎn)是家屬溝通成本極高。家屬詢(xún)問(wèn)老人情況工作人員要現(xiàn)去查、現(xiàn)場(chǎng)問(wèn)回復(fù)不及時(shí)不說(shuō)還容易因?yàn)樾畔⒉灰恢庐a(chǎn)生矛盾。1.2 系統(tǒng)邊界與角色梳理針對(duì)這三個(gè)痛點(diǎn)我們把系統(tǒng)劃分成六大核心模塊老人檔案管理、健康監(jiān)測(cè)與預(yù)警、護(hù)理任務(wù)管理、床位與入住管理、費(fèi)用與物資管理、家屬端消息服務(wù)。角色方面一開(kāi)始只規(guī)劃了管理員、護(hù)士、護(hù)工、醫(yī)生四種后來(lái)機(jī)構(gòu)提出家屬也需要登錄查看老人健康數(shù)據(jù)又追加了家屬角色最終權(quán)限模型變成了五種角色外加系統(tǒng)超級(jí)管理員。這里有一個(gè)容易被忽視的需求不同角色對(duì)數(shù)據(jù)的可見(jiàn)范圍完全不同。比如護(hù)工只能看到自己負(fù)責(zé)樓層的老人列表醫(yī)生能看到全院的健康數(shù)據(jù)但不能操作費(fèi)用模塊家屬只能看到綁定老人的部分信息。這種數(shù)據(jù)權(quán)限的控制決定了后端的查詢(xún)邏輯不能只靠簡(jiǎn)單的用戶角色判斷必須設(shè)計(jì)一套可配置的數(shù)據(jù)范圍機(jī)制這個(gè)后面專(zhuān)門(mén)講。2. 技術(shù)選型的現(xiàn)實(shí)理由為什么還是用Spring Boot打底說(shuō)實(shí)話在2025年這個(gè)時(shí)間點(diǎn)談技術(shù)選型可選項(xiàng)太多了微服務(wù)、云原生、Serverless……但對(duì)這樣一個(gè)業(yè)務(wù)復(fù)雜、團(tuán)隊(duì)規(guī)模不大、交付周期緊張的養(yǎng)老管理系統(tǒng)來(lái)說(shuō)Spring Boot仍然是最穩(wěn)妥的打底方案。原因很直接生態(tài)成熟、招人容易、坑都有前人填過(guò)而且單體應(yīng)用在數(shù)據(jù)事務(wù)一致性上比微服務(wù)簡(jiǎn)單得多。2.1 分層架構(gòu)與目錄結(jié)構(gòu)我采用的是經(jīng)典的四層結(jié)構(gòu)Controller層接收請(qǐng)求、Service層處理業(yè)務(wù)、Mapper層操作數(shù)據(jù)庫(kù)、Entity層映射實(shí)體。目錄結(jié)構(gòu)上我習(xí)慣按業(yè)務(wù)模塊分包而不是按技術(shù)層次分包這樣后期維護(hù)時(shí)找代碼非??臁om.eldercare.system ├── controller # 接口層只做參數(shù)接收和結(jié)果封裝 ├── service # 業(yè)務(wù)邏輯層事務(wù)控制都在這一層 ├── mapper # MyBatis接口配合XML文件 ├── entity # 數(shù)據(jù)庫(kù)實(shí)體對(duì)象 ├── dto # 前端交互的數(shù)據(jù)傳輸對(duì)象 ├── config # 各類(lèi)配置類(lèi)比如MyBatis、Redis、攔截器配置 ├── common # 統(tǒng)一返回結(jié)果、異常處理、工具類(lèi) ├── task # 定時(shí)任務(wù)類(lèi)集中放的地方 └── aspect # AOP切面日志記錄和權(quán)限校驗(yàn)這種分包方式的優(yōu)勢(shì)是當(dāng)你接到一個(gè)新需求比如“給家屬端增加健康周報(bào)功能”你只需要順著業(yè)務(wù)模塊找到對(duì)應(yīng)的controller、service、mapper文件改動(dòng)的范圍非常明確不會(huì)出現(xiàn)改一個(gè)功能要翻十幾個(gè)目錄的情況。2.2 關(guān)鍵依賴(lài)和版本選擇版本選擇上我吃過(guò)一次虧這里直接說(shuō)結(jié)論Spring Boot 2.7.x 配 JDK 8 是最穩(wěn)的組合尤其是對(duì)生產(chǎn)環(huán)境已有的老系統(tǒng)而言。如果你是新項(xiàng)目且團(tuán)隊(duì)愿意用 JDK 17那直接上 Spring Boot 3.x 也沒(méi)問(wèn)題但要注意 MyBatis、PageHelper 這些第三方庫(kù)是否有對(duì)應(yīng)的適配版本。parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.7.18/version relativePath/ /parent依賴(lài)清單里我額外加了這幾個(gè)MyBatis-Plus做單表CRUD和分頁(yè)、Redis做緩存和驗(yàn)證碼存儲(chǔ)、Spring Security做認(rèn)證授權(quán)、Hutool工具庫(kù)處理日期和字符串、Fastjson2做JSON序列化、WebSocket用于給家屬端推送實(shí)時(shí)消息。還有一個(gè)容易被忽略的依賴(lài)是spring-boot-starter-validation參數(shù)校驗(yàn)如果不引入這個(gè)接口層會(huì)堆滿手工判斷邏輯代碼會(huì)很難看。2.3 初始化配置里被忽略的細(xì)節(jié)Spring Boot的自動(dòng)裝配原理很多人都能背出來(lái)但實(shí)際配置時(shí)有個(gè)小細(xì)節(jié)容易掉坑多環(huán)境配置文件的拆分。我用的是application.yml加application-dev.yml、application-prod.yml的組合通過(guò)啟動(dòng)參數(shù)--spring.profiles.activeprod切換環(huán)境。同時(shí)要注意數(shù)據(jù)庫(kù)密碼、第三方密鑰這些絕不能直接寫(xiě)在配置文件中我這邊是結(jié)合了環(huán)境變量注入和Jasypt加密生產(chǎn)環(huán)境配置文件里看到的是一串密文密鑰本身放在部署服務(wù)器的環(huán)境變量里。spring: datasource: url: jdbc:mysql://${DB_HOST}:${DB_PORT}/eldercare?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: ${DB_USERNAME} password: ${DB_PASSWORD}還有一個(gè)小坑提醒一下Spring Boot 2.7.x 之后跨域配置推薦直接實(shí)現(xiàn)WebMvcConfigurer的addCorsMappings方法而不是用CrossOrigin注解到處標(biāo)。前端的Vue項(xiàng)目打包后如果要和Spring Boot放在同一個(gè)服務(wù)里跑要注意靜態(tài)資源路徑和接口路徑不能沖突我習(xí)慣把接口統(tǒng)一掛/api前綴前端打包產(chǎn)物放到static目錄下。3. 核心表結(jié)構(gòu)設(shè)計(jì)與建模思路數(shù)據(jù)庫(kù)設(shè)計(jì)階段我反復(fù)修改了四版才定稿。核心原因在于養(yǎng)老系統(tǒng)的數(shù)據(jù)關(guān)系比一般的管理系統(tǒng)要復(fù)雜得多——同一個(gè)老人既關(guān)聯(lián)著健康檔案、入住記錄、床位信息又關(guān)聯(lián)著護(hù)理評(píng)估、繳費(fèi)流水和家屬綁定如果一開(kāi)始表結(jié)構(gòu)設(shè)計(jì)得不夠合理后期寫(xiě)SQL的時(shí)候會(huì)非常難受。3.1 老人檔案與健康數(shù)據(jù)的關(guān)系設(shè)計(jì)老人基礎(chǔ)檔案我單獨(dú)建了一張elder表字段包括姓名、身份證號(hào)、家屬聯(lián)系方式、緊急聯(lián)系人、既往病史、過(guò)敏藥物、入住日期等。這里有個(gè)容易犯的錯(cuò)誤把健康指標(biāo)直接作為字段加到elder表里。比如有人會(huì)設(shè)計(jì)成elder表里加blood_pressure、blood_sugar兩個(gè)字段表面上看省事實(shí)際上完全違背了業(yè)務(wù)邏輯——血壓血糖是持續(xù)產(chǎn)生的時(shí)間序列數(shù)據(jù)每個(gè)老人一天可能測(cè)量多次正確做法是單獨(dú)建一張health_record表每次測(cè)量生成一條記錄。CREATE TABLE health_record ( id bigint NOT NULL AUTO_INCREMENT, elder_id bigint NOT NULL COMMENT 老人ID, type varchar(20) NOT NULL COMMENT 指標(biāo)類(lèi)型blood_pressure/blood_sugar/heart_rate等, value varchar(50) NOT NULL COMMENT 測(cè)量值, unit varchar(20) DEFAULT NULL COMMENT 單位, measured_at datetime NOT NULL COMMENT 測(cè)量時(shí)間, created_by bigint DEFAULT NULL COMMENT 記錄人設(shè)備采集則為設(shè)備ID, PRIMARY KEY (id), KEY idx_elder_time (elder_id, measured_at) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;3.2 床位、護(hù)理任務(wù)與排班的表關(guān)系床位管理看起來(lái)簡(jiǎn)單實(shí)際上牽扯到入住流程的完整性。我的設(shè)計(jì)是bed表記錄床位號(hào)和所在房間、樓層check_in_record表記錄每一次入住和退住的周期elder表通過(guò)一個(gè)current_bed_id字段指向當(dāng)前床位。這樣設(shè)計(jì)的理由是一旦發(fā)生換床或者暫時(shí)外出住院current_bed_id可以隨時(shí)更新而歷史的入住記錄保留在check_in_record里方便統(tǒng)計(jì)入住率和床位周轉(zhuǎn)。護(hù)理任務(wù)這塊我建了四張表care_task定義任務(wù)模板比如“每?jī)尚r(shí)翻身”“每日早晚測(cè)量血壓”care_plan記錄每個(gè)老人的個(gè)性化計(jì)劃care_assignment是具體到某一天某個(gè)班次的任務(wù)分配care_execution記錄執(zhí)行結(jié)果。這種設(shè)計(jì)把“做什么”“誰(shuí)來(lái)做”“做沒(méi)做”三層信息完全拆開(kāi)當(dāng)我需要生成月報(bào)統(tǒng)計(jì)“本月翻身任務(wù)完成率”時(shí)只需要關(guān)聯(lián)care_assignment和care_execution兩張表按狀態(tài)字段聚合即可。4. 關(guān)鍵功能模塊的落地與踩坑記錄框架搭好之后真正的工作量在業(yè)務(wù)模塊的細(xì)節(jié)實(shí)現(xiàn)上。這一節(jié)挑三個(gè)最有代表性的功能來(lái)拆解每個(gè)功能背后都有值得一提的設(shè)計(jì)決策和實(shí)際問(wèn)題。4.1 健康監(jiān)測(cè)設(shè)備的對(duì)接Modbus協(xié)議與WebSocket推送這家養(yǎng)老院采購(gòu)了一批智能床墊和手腕式血壓計(jì)設(shè)備數(shù)據(jù)通過(guò)一個(gè)本地網(wǎng)關(guān)以Modbus協(xié)議上傳。一開(kāi)始我打算自己解析Modbus報(bào)文后來(lái)發(fā)現(xiàn)網(wǎng)關(guān)廠商提供了基于MQTT的數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)于是走了一條更簡(jiǎn)單務(wù)實(shí)的路——Spring Boot充當(dāng)MQTT客戶端訂閱設(shè)備數(shù)據(jù)。Configuration public class MqttConfig { Bean public MqttConnectOptions mqttConnectOptions() { MqttConnectOptions options new MqttConnectOptions(); options.setServerURIs(new String[]{tcp://192.168.1.100:1883}); options.setCleanSession(true); options.setConnectionTimeout(10); options.setKeepAliveInterval(30); return options; } }訂閱到數(shù)據(jù)后在消息處理方法里做單位轉(zhuǎn)換和數(shù)據(jù)格式化然后寫(xiě)入health_record表。同時(shí)觸發(fā)異常閾值判斷——比如高壓超過(guò)180或者心率低于50立即調(diào)用預(yù)警服務(wù)推送站內(nèi)消息給值班護(hù)士、短信通知護(hù)士長(zhǎng)、并且通過(guò)WebSocket實(shí)時(shí)推送到大屏監(jiān)控端。這里要重點(diǎn)提醒設(shè)備數(shù)據(jù)的并發(fā)寫(xiě)入量雖然不大但很密集每臺(tái)床墊每30秒一條數(shù)據(jù)五十臺(tái)設(shè)備同時(shí)上報(bào)就是每秒近兩條寫(xiě)入。雖然MySQL完全扛得住但如果是項(xiàng)目初期建議先加上Redis緩存最近一次測(cè)量值讀操作優(yōu)先從緩存取減少數(shù)據(jù)庫(kù)壓力。4.2 護(hù)理任務(wù)排班的定時(shí)任務(wù)實(shí)現(xiàn)護(hù)理排班是整個(gè)系統(tǒng)里邏輯最繞的模塊。需求是這樣的系統(tǒng)根據(jù)護(hù)理等級(jí)自動(dòng)生成每日任務(wù)比如一級(jí)護(hù)理的老人每天需要6次血壓測(cè)量、4次翻身、3次喂藥提醒二級(jí)護(hù)理則減少頻次。同時(shí)要支持護(hù)士長(zhǎng)手動(dòng)調(diào)整某個(gè)老人的任務(wù)計(jì)劃。實(shí)現(xiàn)這個(gè)功能我用的是Spring Boot內(nèi)置的Scheduled定時(shí)任務(wù)每天早上5點(diǎn)執(zhí)行一次任務(wù)生成邏輯為當(dāng)天排班的每個(gè)護(hù)工生成任務(wù)清單。Scheduled(cron 0 0 5 * * ?) public void generateDailyCareTasks() { ListCarePlan plans carePlanService.listValidPlans(); for (CarePlan plan : plans) { ListCareAssignment assignments buildAssignments(plan); careAssignmentService.saveBatch(assignments); } log.info(Daily care tasks generated, total: {}, plans.size()); }實(shí)際運(yùn)營(yíng)過(guò)程中發(fā)現(xiàn)純定時(shí)生成滿足不了需求有臨時(shí)入住的老人、有臨時(shí)取消的任務(wù)護(hù)工在APP端點(diǎn)了“確認(rèn)執(zhí)行”后如果超時(shí)未完成系統(tǒng)要自動(dòng)升級(jí)提醒。這些都需要在任務(wù)任務(wù)調(diào)度之外增加觸發(fā)機(jī)制。我最終的做法是定時(shí)任務(wù)負(fù)責(zé)生成“計(jì)劃內(nèi)任務(wù)”而所有“臨時(shí)任務(wù)”通過(guò)消息隊(duì)列Async異步寫(xiě)入保證高峰期不會(huì)因?yàn)榫€程阻塞影響主流程。另外Spring Boot的Scheduled默認(rèn)是單線程執(zhí)行的如果你的系統(tǒng)里有多個(gè)定時(shí)任務(wù)務(wù)必在啟動(dòng)類(lèi)上加EnableScheduling的同時(shí)配置線程池否則多個(gè)任務(wù)會(huì)互相排隊(duì)等待。4.3 家屬端查看與消息通知家屬端我采用的是Spring Boot Vue分離開(kāi)發(fā)后端只提供RESTful API。這里重點(diǎn)說(shuō)消息通知的設(shè)計(jì)。需求要求老人的健康數(shù)據(jù)出現(xiàn)異常、每月賬單生成、護(hù)理計(jì)劃變更時(shí)家屬都能收到通知。我最初用的是短信但短信費(fèi)太高一條一毛多一個(gè)月幾千條下來(lái)成本不低。后來(lái)接入了微信公眾號(hào)模板消息家屬關(guān)注公眾號(hào)并綁定老人之后后端通過(guò)調(diào)用微信接口推送模板消息成本為零。public void sendWechatTemplate(String openId, String templateId, MapString, String data) { String accessToken wechatService.getAccessToken(); JSONObject body new JSONObject(); body.put(touser, openId); body.put(template_id, templateId); body.put(data, data); // 通過(guò)RestTemplate調(diào)用微信推送接口 }如果只是做畢設(shè)項(xiàng)目沒(méi)有真正的微信公眾號(hào)資質(zhì)也可以退一步用spring-boot-starter-mail的JavaMail發(fā)送郵件通知或者直接做站內(nèi)信加WebSocket實(shí)時(shí)提示效果一樣能演示完整。5. 多角色權(quán)限體系的安全落地權(quán)限體系是我花了最多時(shí)間調(diào)試的部分不是因?yàn)榧夹g(shù)復(fù)雜而是因?yàn)轲B(yǎng)老機(jī)構(gòu)的角色權(quán)限維度和常規(guī)企業(yè)系統(tǒng)不一樣——一個(gè)護(hù)士長(zhǎng)可能既要跨科室查看數(shù)據(jù)又要被限制不能修改某些關(guān)鍵字段醫(yī)生可以看到生命體征趨勢(shì)但不能操作繳費(fèi)護(hù)工只能看到自己負(fù)責(zé)的老人。這種“看得見(jiàn)但動(dòng)不了”的邊界細(xì)分必須用RBAC再加數(shù)據(jù)權(quán)限過(guò)濾才能實(shí)現(xiàn)。5.1 基于RBAC的菜單與數(shù)據(jù)權(quán)限設(shè)計(jì)用戶表、角色表、菜單表、用戶角色關(guān)聯(lián)表、角色菜單關(guān)聯(lián)表這里不展開(kāi)說(shuō)明。關(guān)鍵在于數(shù)據(jù)權(quán)限的過(guò)濾方案MyBatis-Plus提供了DataPermissionInterceptor數(shù)據(jù)權(quán)限插件可以在SQL執(zhí)行前自動(dòng)拼接數(shù)據(jù)范圍條件。例如護(hù)工登錄后查詢(xún)?nèi)蝿?wù)列表時(shí)攔截器自動(dòng)追加WHERE care_assignment.nurse_id 當(dāng)前用戶ID而護(hù)士長(zhǎng)登錄時(shí)追加的就是WHERE care_assignment.floor_id IN (護(hù)士長(zhǎng)管轄樓層)。這種方案的好處是業(yè)務(wù)代碼里完全不用寫(xiě)權(quán)限判斷邏輯Service層只寫(xiě)正常的業(yè)務(wù)查詢(xún)權(quán)限規(guī)則集中在攔截器里配置。要是你沒(méi)有用MyBatis-Plus也可以在Service層手動(dòng)拼接查詢(xún)條件但代碼會(huì)冗余很多。另外一個(gè)很實(shí)用的技巧所有需要做數(shù)據(jù)權(quán)限的Mapper方法第一參數(shù)都傳一個(gè)DataScope對(duì)象作為過(guò)濾條件載體這樣既保持兼容又能手動(dòng)覆蓋默認(rèn)規(guī)則。5.2 登錄認(rèn)證、接口鑒權(quán)與操作日志認(rèn)證這塊我選的是JWT Redis的組合。登錄成功后生成JWT返回前端同時(shí)把token存在Redis中設(shè)置過(guò)期時(shí)間12小時(shí)。每次請(qǐng)求通過(guò)攔截器校驗(yàn)token是否有效同時(shí)校驗(yàn)該用戶是否還有操作權(quán)限。這里有個(gè)細(xì)節(jié)JWT本身是無(wú)狀態(tài)的一旦簽發(fā)沒(méi)法主動(dòng)失效所以必須依賴(lài)Redis里的狀態(tài)做二次校驗(yàn)。我踩過(guò)的坑是最開(kāi)始只校驗(yàn)JWT簽名導(dǎo)致修改密碼后舊token依然能訪問(wèn)接口后來(lái)加上Redis校驗(yàn)才解決。操作日志用AOP切面實(shí)現(xiàn)是最省力的。定義一個(gè)Log注解標(biāo)注在需要記錄的方法上切面里獲取方法參數(shù)、執(zhí)行結(jié)果、當(dāng)前用戶ID、IP地址、操作耗時(shí)異步寫(xiě)入日志表。對(duì)養(yǎng)老系統(tǒng)來(lái)說(shuō)操作日志不只是審計(jì)需要還承擔(dān)著責(zé)任追溯的作用——假如老人出現(xiàn)跌倒事件家屬質(zhì)疑護(hù)理不到位系統(tǒng)里能夠查清楚誰(shuí)在什么時(shí)間給老人做了哪些護(hù)理操作。Aspect Component public class LogAspect { Around(annotation(operLog)) public Object around(ProceedingJoinPoint point, OperLog operLog) throws Throwable { long start System.currentTimeMillis(); Object result point.proceed(); long cost System.currentTimeMillis() - start; // 異步保存日志 loggerService.asyncSave(buildLog(point, operLog, result, cost)); return result; } }6. 部署與性能優(yōu)化的實(shí)戰(zhàn)清單系統(tǒng)開(kāi)發(fā)完成之后部署和性能優(yōu)化階段又耗了兩周。這里分享幾個(gè)我實(shí)際遇到并解決的問(wèn)題如果你想快速把項(xiàng)目跑起來(lái)這些經(jīng)驗(yàn)?zāi)軒湍闵僮卟簧購(gòu)澛贰?.1 查詢(xún)性能優(yōu)化分頁(yè)、索引、慢SQL最核心的高頻查詢(xún)是“老人列表頁(yè)”需要關(guān)聯(lián)床位信息、護(hù)理等級(jí)、當(dāng)前狀態(tài)還要支持按姓名、樓層、狀態(tài)篩選。數(shù)據(jù)量幾百條的時(shí)候沒(méi)感覺(jué)等業(yè)務(wù)跑了兩個(gè)月、健康記錄表到了幾十萬(wàn)行之后列表查詢(xún)明顯變慢。排查下來(lái)發(fā)現(xiàn)慢的主要原因有兩個(gè)一是多表關(guān)聯(lián)時(shí)沒(méi)有走索引二是health_record表的數(shù)據(jù)量增長(zhǎng)導(dǎo)致聯(lián)表掃描時(shí)間變長(zhǎng)。解決方案很簡(jiǎn)單給elder表的name、current_bed_id字段加了索引給health_record表的elder_id和measured_at建了聯(lián)合索引。同時(shí)把所有列表查詢(xún)改成了分頁(yè)查詢(xún)統(tǒng)一使用MyBatis-Plus的Page對(duì)象避免一次查出全表數(shù)據(jù)。這里建議從項(xiàng)目初期就養(yǎng)成習(xí)慣任何列表接口一律分頁(yè)不要圖省事返回全量數(shù)據(jù)。慢SQL日志一定要在開(kāi)發(fā)階段就開(kāi)啟MyBatis的mybatis.configuration.log-impl設(shè)為StdOutImpl可以在控制臺(tái)打印完整SQL配合druid連接池的監(jiān)控頁(yè)面基本能定位90%的慢查詢(xún)問(wèn)題。6.2 打包部署時(shí)的常見(jiàn)坑打包部署我經(jīng)歷了兩個(gè)坑值得一提。第一個(gè)是前端Vue項(xiàng)目打包后放進(jìn)Spring Boot的static目錄刷新頁(yè)面就直接404。原因是Vue的路由是history模式一旦直接訪問(wèn)/elder/list這個(gè)前端路由后端的DispatcherServlet會(huì)嘗試尋找對(duì)應(yīng)的Controller找不到就返回404。解決辦法是在Spring Boot里加一個(gè)ErrorPageRegistrar把前端路由的404請(qǐng)求統(tǒng)一轉(zhuǎn)發(fā)到index.html。第二個(gè)坑是打包產(chǎn)物太大jar包超過(guò)150MB每次上傳服務(wù)器都特別慢。分析后發(fā)現(xiàn)一半的體積來(lái)自靜態(tài)資源和第三方依賴(lài)。我在pom.xml里配置了Spring Boot Maven Plugin的excludes把前端靜態(tài)資源單獨(dú)放在服務(wù)器上用Nginx托管后端jar包瘦身到60MB左右。實(shí)際上生產(chǎn)環(huán)境建議前后端完全分離部署Spring Boot進(jìn)程不處理靜態(tài)資源讓Nginx統(tǒng)一抗并發(fā)這是最省事的架構(gòu)。6.3 容器化部署的額外建議如果你想把系統(tǒng)用Docker部署Dockerfile建議用多階段構(gòu)建第一個(gè)階段用maven:3.8-jdk-8執(zhí)行打包第二個(gè)階段用openjdk:8-jre-alpine作為運(yùn)行環(huán)境只復(fù)制jar包進(jìn)去。這樣構(gòu)建出來(lái)的鏡像體積可以從1GB以上降到200MB以?xún)?nèi)。FROM maven:3.8-jdk-8 AS build WORKDIR /app COPY pom.xml . COPY src ./src RUN mvn package -DskipTests FROM openjdk:8-jre-alpine WORKDIR /app COPY --frombuild /app/target/eldercare-system.jar . EXPOSE 8080 ENTRYPOINT [java, -jar, eldercare-system.jar, --spring.profiles.activeprod]數(shù)據(jù)庫(kù)如果用Docker跑MySQL一定要把數(shù)據(jù)目錄掛載到宿主機(jī)否則容器一刪數(shù)據(jù)全丟。我在測(cè)試環(huán)境犯過(guò)這個(gè)錯(cuò)誤重新導(dǎo)入數(shù)據(jù)浪費(fèi)了半天。生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù)建議直接部署在宿主機(jī)上不跑容器運(yùn)維起來(lái)更省心。實(shí)際開(kāi)發(fā)中還有一個(gè)和功能無(wú)關(guān)但很影響體驗(yàn)的事日志規(guī)范。這套系統(tǒng)我統(tǒng)一用logback作為日志框架輸出格式里包含時(shí)間、線程名、級(jí)別、Logger名稱(chēng)、消息體。同時(shí)在application.yml里配置了按天滾動(dòng)的日志策略保留最近三十天日志歸檔文件壓縮后存到專(zhuān)門(mén)目錄。當(dāng)線上出現(xiàn)問(wèn)題需要排查時(shí)直接grep關(guān)鍵詞定位錯(cuò)誤效率比翻控制臺(tái)高得多?;剡^(guò)頭來(lái)看這個(gè)項(xiàng)目技術(shù)上并沒(méi)有用到什么炫酷的新框架核心能力全部建立在Spring Boot這個(gè)穩(wěn)定基座之上。但真正的價(jià)值在于對(duì)業(yè)務(wù)的理解——怎么把老人的健康數(shù)據(jù)流、護(hù)理任務(wù)流、家屬溝通流串起來(lái)讓系統(tǒng)不再只是一個(gè)記錄工具而能真正減少一線護(hù)理人員的工作負(fù)擔(dān)、降低管理風(fēng)險(xiǎn)。如果你也在做類(lèi)似的系統(tǒng)開(kāi)發(fā)建議多花時(shí)間在業(yè)務(wù)調(diào)研和表結(jié)構(gòu)設(shè)計(jì)上這兩個(gè)環(huán)節(jié)做扎實(shí)了后面的代碼開(kāi)發(fā)反而是一路順暢的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久五月视频| 日日夜夜狠狠操| 日本精品人妻无码77777| www色五月天| 久久婷婷东京热大香樵| WWW.国产| av九九| 91婷婷丁香五月天免费视频网站| 大香婷婷| 青青久久五月| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 亚洲九九视频| 五月色亭丁香| 五月久久婷婷| 国产综合81p| 色五月天电影| 另类视在线| 伊人丁香五月| 超碰免费人妻| 一级片操逼视频| 野战毛片三一3| 色婷婷性爱网| 96精品成人无码A片观看金桔| 99精品视频网| 日日夜夜久| 超碰大香蕉网| 婷婷综合97| 亚洲午夜成人av电影网| 日本人妻伦在线中文字幕| 久久综合婷婷五月| 26UUU精品一区二区| 五月丁香 啪啪啪| 国产成人在线精品| 中文字幕综合色| 九九综合伊人| 婷婷五月丁香色综合| 丁香六月婷婷激情综合| 欧美99视频| 思思热99er| 色婷婷综合网| 91超级碰碰| 女人被男人吃奶到高潮| 激情五月婷婷| 亚洲碰碰碰| 国产亚洲色婷婷久久99精品91| 中文字幕人妻一区二区| 色婷婷成人做爰A片免费看网站| 五月婷婷AV| 四色AVwww| 丁香五月深爱五月婷婷| 色婷婷五月天天天做| 五月婷婷久久久| 色色网91| 91视频免费后入强操| 亚洲中文字幕在线观看| 五月天社区婷婷| 久久婷婷五月综合| 国产精品18久久久| 狠狠色噜噜狠狠狠888了| 色~性~乱~伦~噜| 性爱激情小说AV五月丁香花| 伊人久久大香线蕉av最新| 九月婷婷综合在线| 一本色道久久88加勒比—| 丁香色影院| 狠狠狠狠狠干| 五月天丁香| 久草热在线视频| 亚洲女婷婷五月基地综合久久久| 99色看这里只有精品| 超碰人人干| 91免费看片| 久久婷婷激情四射五月天| 色吧网综合| 97操资源婷婷| 99精品久久久久久久| 婷五月天| 91热99| 啪啪婷婷五月天激情| 秋霞AV淫| 久久五月天大美女| 激情五月综合网最新| 欧美激情凹凸丁香网| 五月天激情婷婷丁香| 丁香五月欧美色综合| 狠狠干青青草| 任你日视频| 99日韩| 色五月综合网| 婷婷五月激情欧美| 丁香六月婷婷| 国产特黄色精品一区二区三区精品无广告| 99热国产婷婷| 99视频久久免费视频| 激情图片婷婷| 五月综合六月丁| 狠狠干总合| 色五月激情综合| 丁香六月亭亭久久综合| 91日韩在线| 天天操夜夜操| 二级黄色毛片| 色狠狠综合网| 婷婷色五月开心五月| 色婷婷综合网站| 狠狠综合网| 免费在线观看AV网站| 91精品久| 色VA| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 日韩无码AV电影网站| 色色色色色色色五月| 99视频在线看| 超碰在线人妻| 天天日日夜夜爽。| 色情五月综合婷婷| 99热伊人综合| 天天综合激情| 69色婷婷| 婷婷中文字幕网站| 伊人网啪啪| 在线播放中文字幕| 亚洲视频伍月婷婷| 熟妇无码乱子成人精品| 九九干视频| 色色综合日韩| 啪啪激情综合| 特黄三级又爽又粗又大| 五月开心六月婷婷在线播放网站| 日本狠狠干| 超碰av在线| 综合 蜜月 婷婷| 少妇丁香婷婷 | 99热99美国在线观看| 97丁香花五月天激情小说| 丁香五月婷婷骚视屏| AV在线资源| 六月婷婷亚洲| 五月激情啪啪| 丁香大香蕉| 99这里只有精品视频免费| 六月狠狠综合| 成 人片 黄 色 大 片| 五月天婷婷色色首页| 人人亚洲| 九九热在线99| 丁香六月婷婷色播| 无月播播激情在线观看视频| 亚洲精品又粗又大又爽A片| 99偷拍视频在线日本| 热久久77777| 噜一噜在线| 青草视频在线播放| 激情五月综合免费| 欧美久久婷婷| 色私五月婷婷| 99九九视频精彩在线| 97一区二区| 久久五月丁香婷婷| 久久久久久欧美精品se一二三四| 九九大香视频| 婷婷五月色综合| 婷婷福利影院| 人人人舔人人人操人人人摸人人人97| 婷婷五月色播天| 婷丁五月| 国产亚洲精品AAAAAAA片| 婷婷丁香花五月天| 五月丁香六月婷婷欧美综合| 久久99日本精品视频免费观看| 色五月丁香激情视频| 精品久热| 色色综合成人网| 精品99在线| 婷婷狠狠爱| 亚洲色色色色| 日韩99无码| 五月天激情网图片 - 百度| 99视频在线观看网址| 色情婷婷五月天| www.久久爱.c n| 五月开心激情| 五月丁香少妇| 97在线/亚洲| 九九99热久久精品66中文字幕| 婷婷色成人| 天天草女人| 超级碰碰碰97免费| 久久性视频| 色九月婷婷综合| 91色色色18| 久久丝袜婷婷| 五月激情站| 99,色| 五月婷婷天| 日本超碰在线| 国产免费AV网站| 97干欧美| 丰满老熟妇BBBBB搡BBB| 丁香五月在线观看完整版| 日本精品人妻无码77777| 99热在线免费观看精品| 五月四色激情| av网站中文| 日本wwww在线| 天天日天天干天天天| 91主播在线| 五月综合无码| 91viP在线看| 亭亭玉月丁香| 九九精品在线网| 性爱111111| 五月天色导航| 日本免费91| 97婷婷狠狠| 欧美激情中文字幕| 五月天婷婷激情| 香蕉中文在线| 婷婷综合爱| 碰碰碰97国产| 在线色色| 婷婷五月激情六月丁香| 日韩久久日| 亚洲、欧美、国产另类笫二区| 91婷婷搞| 激情婷婷五月色| 婷婷色色色| 日本女人久久| 东北婷婷五月天| 五月刺激丁香月综合| 99精品小视频| 秋霞三级影视资源| 欧美性久| 久久人人添人人爽添人人片αV | 色5在线| 99燥99日| 人妻中文在线| 这里只有精品免费视频在线观看| 另类激情五月| 丁香五月天日韩无码| 五月丁香婷草| 三十路磁力链接| 久久婷婷草| 五月天成人小说| 国产永久一二一起草| 中文激情网| 人妻精品久久久久久| 91激情五月开心| 99亚洲精品| 婷婷成人综合五月| 99色干| 99久久99综合| 99无码视频| 五月天激情视频网站| 亭亭色网| 9久热在线精品| 五月婷婷免费视频| 99精品综合| 五月丁香色情| 婷婷五月天激情综合| www99xxxx五月丁| VA色婷婷| 激情五月,色播五月| 翔田千里 50岁 无码| 五月天激情亚洲| 六月色婷婷欧美| 1995年关宝慧版蜘蛛女| 日本色频| 开心五月综合激情网| 在线免费视频caop| 国产精品A成V人在线播放| 色久综合| 思思re99视频在线观看| 午夜婷婷五月天在线| 伊人久久婷婷| 激情五月婷| 影音先锋一区二区资源站 | 91干| 五月丁香激情四射| 丁香激情网| 欧美综合五月丁香五月天| 色噜噜综合网| 激情久久肏屄视频| 97极品在线| 五月J香蕉婷婷| 99操碰| 九九久久五月天| 99成人在线观看| 99成人小视频| 丁香五月婷婷激情中文| 综合激情五月丁香9999久久精| 九九狠狠干| 人人操9| 五月天久久久| 五月丁香婷婷中文| 亚洲成人免费电影| 五月丁香好婷婷A片网| 丁香五月六月婷婷殴美综合| 久久一热| 久久婷婷综合五月天| site:feetmall.com| 中文字幕,综合,91| 日本道久久91| 久久婷婷五月激情综合| 铁牛TV人妻| 玖玖婷婷免费| 久久婷婷五月综合色天| 色五月大香蕉婷婷| 色99热| 色综合99色| 99精品丰满| 嘿嘿视频免费看9| 99re资源在线视频导航| 97成人在线视频精品| 久久丁香网| 北条麻妃伊人 | 色色色五月| 极品五月天| AA片在线观看视频在线播放| 亚洲三A| 嫩草极品| 五月婷婷亚洲色图| 久草性爱| 五月花成人网| 热热久久99| 99re这里只有精品国产99| 小泽玛利亚视频一区二区| 成人在线视频一区| 密乳Va| 99九九综合久久九九| 激情五月天色网站| 全国最新疫情| 99热传媒| 精品视频网| av操B网站| 五月天成人综合| 亚洲天天操| 中字幕视频在线永久在线观看免费| 国产做爰视频免费播放| 午夜激情久久| 少妇高潮一区二区三区99欧美| 丁香五月婷婷激情小说| 热的国产,热的综合,热的有码| 五月丁香 久久久| 天天色天天干天天插| 激情综合色五月丁香六月亚洲| 九九这里都是精品| 五月婷在线| 久久婷婷五月综合色欧美| 99热九九九九| 一起草av| 美国色五月天婷婷资源站| 亚洲XX日本| 激情五月婷婷色| 激情六月综合| 99视频| 9热在线| 日本97在线| 国产精品成人AV在线| 亭亭丁香久久五月| 亚洲色五月天在线| 91se在线观看| 9色91视频| 99操免费视频| 午夜理论片最新午夜理论剧| 亚洲VA口| 久久婷婷综合五月| 五月激情婷婷综合| 婷婷五月色综合| 亚洲美女高潮久久久久久69| 又大又粗九一在线| 91久久99久久91熟女精品| 狠狠狠狠狠草| 色播五月丁香| 91人人操.COM| 五月婷婷色五月| 大香线蕉伊人| 日韩免费视频| 开心五月婷婷激情| 九九性爱网| 婷婷五月天激情四射| 青青草五月天| 99综合99| www.99色| 九色91美女| 丁香五月,激情五月,深爱五月| 久婷久婷| 午夜福利8055| 免費亭亭成人| 九九碰九九爱97超碰| 一起草AV入口| 欧美天天五月丁香免费观看| 熟女激情五月天| 99性爱视频| 夜夜资源站| 欧美色爱五月天| 色情综合网| 另类亚洲电影| 狠色色狠网| 成人无码髙潮喷水A片| 九九碰九九爱97超| 久久久噜噜噜久久人妻| AV在线二十六页| 欧美成人无码一区二区三区| 久久久久久五月天| 日本99热| 婷婷中文在线| 激情深爱五月天| 日本少妇裸体做爰高潮片| 日韩av在线免费观看| 色婷婷久久综合丁香五月| 婷婷在线播放| 婷婷深爱五月天在线| 婷婷五月丁香六月| 黄色aaaaa| 日韩99精品| 色五月婷婷7777| 色人五月婷婷| 少妇搡BBBB搡BBB搡毛茸茸| site:901-07.com| 色婷婷香蕉| 日本三级99人妇网站| http://www.lingjunshare.com/| 色婷婷基地 | 人人人人人人人人人草| 99国产精品白浆在线观看免费 | 色婷婷基地| 丁香五月天大香蕉啪啪| 色色色国产| 亚洲传媒在线观看| 五月丁香亚洲婷婷| 国产精品色婷婷久久久精品| 亚洲旡码| 久久婷婷色色| 97色色色| 那里有AV网址| 欧美肉大捧一进一出免费视频| 亚洲另类在线观看| 国产人妻人伦精品一区二区| 99re思思热这里| 欧美电影在线观看| 99九九精品| 狠狠操狠狠色| 亚洲国产精品VA在线看黑人| 久久性爱网| 婷婷五月六月丁香综合| 四色五月视频| 亚洲色五月婷婷| 色九月综合| 婷婷丁香五月天激情| 丁香五月婷婷激情四射| 91日本在线观看| 激情五月天之六月婷婷| 国产免费av网站| 五月婷婷激情四季| 日韩一级片| 久久五月丁香综合17C| 综合色色五月| 婷婷五月天激情AV影院| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 欧洲激情五月天婷婷| 欧美内射AAAAAAXXXXX| 色婷婷六月天在线| AV在线大香蕉| 日韩av一区二区在线/日产精品久久久 | 久久这里有精品| 97视频91| 99热 日韩| 色天堂在线| 久热这里只有精品性色AV| 日韩一本操| 婷婷激情小说网| 丁香五月六月综合激情| 亚洲超级碰| www.com五月天| 免费视频在线观看的网站| 99re最新地址| 亚洲视频a| 狠狠色丁香乆乆| 五月婷婷免费看| 99ri在线| 丁香影院五月综合| 亚洲激情网| 日本色婷婷综合| 久久婷婷午夜| 久激情网| 人人爱人人摸人人澡| 伊人干综合| 六月婷婷综合网2| 丁香婷婷六月天| 激情综合网亚洲色图| 久久久久婷 | 天天操人人干| 婷婷六月丁香综合| 九九99热| 97午夜一区二区| 五月丁香婷草| 96五月丁香熟女| 99久re热视频精品98| eeuus五月婷| 中文字幕av亚洲| 国产精品天天狠天天看| 婷婷五月天AV在线| 5月婷婷激情网| 国产中文亚洲欧美日韩性交| www.99热精品99.com| 99热色精品| 色五月开心五月激情五月| 少妇人妻偷人精品无码视频新浪| 少妇综合网| 女性自慰系列第五页| 91大神在线免费看视频全集男男一起操| 丁香六月婷婷色XXXXX| 婷婷成人在线| 久久这里只有精彩| 超碰91人人操| www.综合久久.com| 色婷婷亚洲综合天堂| 激情综合五| 亚洲啪啪啪啪| 婷婷六月天天| 色狠狠色综合| 五月婷婷免费在线观看| 色日本综合| 丁香五月婷婷五月基地| 五月婷婷啪啪啪啪| 久久五月婷婷丁香| 婷婷婷婷色| 超碰人人在线| 亚洲旡码| 五月综合丁香婷婷| 97sese婷婷| 不卡的AV网站| 丁香五月天在线| 丁香婷婷五月色成人网站| 中文字幕成人| 亚洲综合色色| 日本在线噜噜| 丁香五月婷婷天激情| 国产精品色色666| 草综合网| 99国产小视频2013| 婷婷综合在线播放| 综合网网欲色| 我去色色网五雨天| 久久女人九九| 日韩无码人妻一区二区| 亚洲AV成人无码电影| 99久久久精品| 超碰激情五月| 超碰av天堂| 色色色色色色综合| 国精产品一区二区三区| 永久AⅤ1| www.婷婷五月天.com| 第五色婷婷| www.minyis.com【JT】实力收量可预付QQ2101460746 | 丁香五月AV| 天天天天做夜夜夜夜做| 婷婷久久亚洲| 欧美啪啪9| 亚韩在线视频| 五月丁香综合网| 日日干日日| 大香蕉伊人久久| 五月天色不卡| 97操操| 中文字幕无码人妻少妇免费视频 | 国产又爽又猛又粗的视频A片| 99精品偷自拍| 综合网精品99| 五月天婷婷色综合| 日韩美一级毛卡片| 婷婷五月天精品| 中文资源在线a | 97碰碰视频在线观看| 色婷婷另类| 狠狠爱婷婷| 影音先锋毛片网站| bbwcuckold精品熟妇| 亚洲婷婷婷| 欧美爆乳一区二区三区| 超碰色色综合| av色色国产| 日日夜夜婷婷| 开心五月婷婷| 色色色1网址| 99久久久久久www| 亚洲视99| 开心激情网在线| AV在线大香蕉| 激情婷婷狠狠干综合| 玖玖综合玖玖| 色婷五月婷婷| 欧美人妻一区二区| 色色色综合网| 中文人妻AV久久人妻18| 丁香五月天婷婷91| 婷婷九月激情| www五月婷婷| 97超碰欧美中文字幕| 99婷婷| 这里只有精彩视| 久激情网| 丰满少妇猛烈A片免费看观看| 婷婷五月色花丁香社区| 天天人人综合| 五月天激情.com| 另类激情五月天| 婷婷综合五月| 99激情视频| 美女被肏网站在线看| 日韩成人AV在线播放| 五月天成人在线视频丁香| 日韩AAAAA| www.五月婷婷久久.com| 99惹 精品在线| 香蕉婷婷| 色综合天天综合成人网| 日本欧美成人片AAAA| 免费人人操| 婷婷五月永远18免费久久久| 午夜五月天| 五月丁香久久| 玖玖在线视| 五月天婷婷高清无码| 欧美大道不卡| 久久久久久久久月丁| 色播综合| 色九九九九| 最近中文字幕2019视频1| 91热网址| 天天插AV丝袜中| 噼里啪啦在线观看免费完整版视频| 五月婷婷成人| 天天视频亚洲| 四川BBB搡BBB搡多人乱亂| 玖玖九九超碰| 成人欧美一区二区三区在线观看| 久热亚洲| www.色五月| 婷婷成人网五月天| VA色婷婷| 亚洲色激情| 久久久久久久合一狠狠做深爱| 中文字幕无码人妻少妇免费视频| 色婷婷色99国产综合精品| 久久激情综合| 色婷五月天综合网| 色婷婷伊人激情在线观看| 百度4399有码精品V在线观看| 婷婷免费成人视频| 五月丁香婷婷综合网| 91成人看片| 丁香婷婷视频在线| 色色色1网址| 五月天激情网页| 丁香五月花| 九九色色网| 成人免费va| 丁香五月 性爱| 丁香五月天啪啪激情综合网| 91精品久久久久久久久久| 色婷婷成人丁香| 婷婷狠狠操| 综合激情站| ww久久| 97人人做| 天天肏夜夜肏| 久久香蕉网| 五月婷久久久| 亚洲狠狠干| 一起操 91N.com| 99热99热在线| 日韩一级网站| 大香蕉婷婷丁香天堂AV| 91丨九色丨国产打屁股| 久久激情网| 色五月婷婷av| 日日操日日撸| 午夜丁香丁香婷婷| 久久怡红院| 九九热黄色| 日韩无码色色| 国产va在线视频| 91紱請| anquye五月| 97色色色色色| 狠狠干总合| 亚洲六月综合激情久久下卡| 综合婷婷六月| 日日影院 | 天天色天天爱天天舔| 人人干人人看| 丁香五月网络网络| 婷婷综合中文字幕| 色五月婷婷很很操| 极品九九九九九九| 91精品久久久久久久| 天天激情综合| 久久曰9| 开心五月网 | 99热这里只有精品最新网址| 中字幕视频在线永久在线观看免费| 九九一综合精品| 亚洲成人电影在线免费观看| 操人久久| 精品一区二区三区四区五区六区介绍| 亚洲黄网AV| 婷婷天天日婷婷| 91视频综合网| 五月婷久久| 久久99免费视频| 五月天丁香啪啪啪啪| 日良久久| 99精品在线下载| 亚洲人妻电影| 国产乱子轮XXX农村| 中文字幕色色| 成人做爰A片免费看网站找不到了| 天天日夜夜| 女人天堂 AV| 久久色婷婷| 日韩在线观看网址| 第五色婷婷| 久久婷婷色色| 国产日韩欧美性生活| 91丁香婷婷综合久久欧美| 99九九视频精彩在线| av在线观看网站| 久久98| 五月婷婷av| 色色亚洲无码| 91九色视频在线观看| 亚洲无码99| 久热这里只精品| 国产99久久久国产精品免费看| 久久五月天激情| 日韩久久视频| 国产精产国品一二三在观看| 五月天激情久久| 99热在线免费观看精品| 疯狂做受XXXX高潮A片动画| 天天橾夜夜爽| 婷婷狠狠操| 亚洲精品久久久久久久久久吃药| 这里只有国产精品在线| 玖玖在线| 少妇AB又爽又紧无码网站| 激情网五月天| 欧美精品熟女一区二区| 99无码视频| yiqicaoav| 中文字幕无码人妻少妇免费视频 | 亚洲va日| 久久婷婷五月综合色天| 综合99视频| 99色最新在线视频网站| 色久婷婷网| 丁香九月激情| 成人短视频免费观看| 狠狠干综合| 五月天综合在线观看视频| 色色五月天婷婷| 天天干天天曰天天射| 伊人香大香蕉视频| 激情久久久| 99玖玖在线视频| www、色色色| 婷婷五月天com| 爱之国产色情综合| 色婷婷五月综合在线| 日本久碰| 开心激情站| 婷婷六月色播| 亚洲182在线观看| 日本三级大片| 91婷色| 五月天综合在线观看| 99er日韩| 日本三级韩三级99久久| 丁香99| 五月色丁香| 久久婷婷激情视频| 日本视频99| 99热全是精品| 狠狠草网| 五月丁香六月综合图| 亚洲综合激情五月久久| 狼人狠狠操| 色玖玖综合| 五月丁香婷婷导航视频| 播五月丁香三月婷婷| 丁香六月成人| 天天干狠狠| 开心激情播播五月天| 欧美综合激情五月天| 天天日婷婷| 五月丁香六月婷| 在线超碰91| 99综合视频| 激情五月,婷婷五月,丁香五月| 久久只这里有精品| 狠狠肏综合网| 婷婷五月丁香色情| 五月婷婷丁香色吧网| 色婷婷狠狠干芒果TV| 色噜噜狠狠插综合| 五月丁香六月婷婷色情| 色色五月天丁香| 丁香色色网| 激情六月丁香| jiZZdr| 国产亚洲精品久久久久久牛牛| 人妻丰满精品一区二区A片| 五月婷婷色欲| 日韩av手机在线观看| 97激情五月天| 夜夜骑福利资源| 亚洲免费婷婷| 久久人人九九| 久热大香蕉| 可以免费观看的AV| 亚洲第一精品成人999久久精品| 99re在线观看视频| α久久| 激情五月,婷婷五月,丁香五月| 欧美人妻一区二区| 久久东京热婷婷五月| 亚洲精品婷婷| 婷婷丁香熟女| 综合99久久天天综合| 综合色播| 婷婷五月天伦理| 国产成人+亚洲+欧洲| 男人的天堂五月丁香| 97干在线播放| 色播五月网| 99久久婷婷国产综合精品草原| 色色国产| 亚洲操操| 色和综合网| 99热欧美偷拍| 99精品久久久| 五月激情丁香五月| 久久五月天综合视频网站| 日韩婷婷五月天| 噜噜狠狠色| 天天操婷婷| 影音先锋AV资源男人站| 亚洲综合在线播放| 桃色激情婷婷伊人网| 五月丁香六月婷婷网| 亚州性爱99| 99综合激情久久精品久久| 丁香五月婷婷亚洲色图| 色色综合网站| 九九久久高清| 99热这里只有精品在线免费| 九九热视频精品| 亚洲综合激情五月久久| 艹色18p| 天天爽夜夜爽夜夜爽精品| RenRenSe在线视频网站| 成人永久免费视频在线观看| 激情小说婷婷| 丁香五夜激情四射夜夜夜| 无码se| 久久人人人人妻| 久久人人九| 超碰AV在线| 超碰人人妻| 五月丁香操婷逼| 色婷婷五月天天天干天天操天天爽 | 涩涩涩五月天| 99欧美三级视频| 九九热再线九九视频免费在线观看| 五月丁香人人婷婷在线观看| 玖玖婷婷五月天| 六月丁香婷婷综合影院| 第四色婷婷最爱| 成人视屏在线观看| 色五月,com| 99色精品视频| 欧美在线97| 色九九一二| 很很干在线视频| 丁香午夜天| 五月天国产| 99热这里只有精彩| 欧美婷婷九月| www99热| 99热99美国在线观看| 免费碰碰视频久| 五月天合网| 丁香五月另类色婷婷麻豆| 91丨九色丨东北熟女| 综合超碰熟| 丁香五月网在线观看| 婷婷五月在线观看| AV在线大香蕉| 99热99极品观看| 99re免费视频| 六月丁香婷婷五月| 激情www| 1024在线一区| 夜夜天天久久婷婷| 天天爽天天操| 这里只有精品在线视频精品| 99福利导航| 在线观看亚洲AV| 婷婷五月av| 色色色色色色色五月| 五月丁香婷中文| 国产古装妇女野外A片| 伊人大香五月天| 99在线资源| 五月丁香在线观看99| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 国产又色又爽又黄又免费| 亚洲美女婷婷五月天| 草综合14| 色色色色综合网| 99re思思热在线视频| 人人操99| 欧洲精品爱爱| 丁香六月狠狠干| 亚洲成人AV在线播放| 99视频网址| 玖玖热99| 99热在线播放| 另类激情码| 激情五月色婷婷| 婷婷激情性爱| 国产超碰在线| 激情综合五月婷| 日韩操人| 日本女天天爽| 色情综合网| 丁香影院五月综合| 亚洲激情五月| 99爱99操| 深爱五月激情| 日韩一66精品| 东京热五月婷婷| 色六月视频| 婷婷婷婷婷婷婷婷婷婷丁香| 丁香色综合| 亚洲色综合色网| 激情五月天 婷婷| 五月婷婷丁香综合,亚洲天堂| 性色99| 丁香婷婷老熟女综合网| 五月天久久综合婷婷丁香| 激情九九九九| 9久国产精品| Av狠狠色丁香婷| http:色情日本com| 第2色五月婷| 狠狠婷婷色| www开心激情网| 91九色无码内射| www.99热视频| 色九月婷婷综合| 色五月综合| 79色色色色| 欧美大香蕉视频| 久久激情视频| 思思热精品在线观看| 《久久综合九色综合97婷婷| 日本一毛片| 国产永久一二一起草| 久久久全国免费视频| 久草狼人| 成人婷婷色五月天| 9l视频自拍九色9l黑人| 五月丁香综合激情网| www色婷婷久久综合久色 | 九九爱看亚洲| 亚洲久久日| 五月婷色| 色导航色婷婷五月天在线观看| 99热这里只有精品1025| 熟妇人妻中文字幕无码老熟妇| 六月丁香激情网| 色色色欧美| 狠狠操狠狠爱| 欧美成人精品一区二区| 影音先锋色婷婷| 日韩乱轮AV| 日韩av在线免费观看| 久热一本| 大香蕉久久视频久久视频| 婷婷久久精品| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | ri电影在线| 五月婷婷国产| 精品无码久久久久久久久| 99热久| 久久国产性爱A V| 久xxxx| 欧美搡BBBBB摔BBBBB| 五月天婷婷乱论小说| 激情无码五月天| 丁香综合日产精品久久| 五月婷婷六月丁香在线视频| 桃色Av色哟哟| 五月天开心色色网| 开心深爱激情网| 欧州色色| 色视五月天婷婷| 99日本黄站| 色爱爱综合网| 丁香五月综合| 婷婷射丁香| 开心五月激情婷婷| 操B五月天| 丁香五月天婷婷大香蕉| EEUSS鲁片一区二区三区| 五月天色婷婷成人| 五月丁香激情综合| 99色.com| 97色精品视频| 五月婷婷激情网| 97资源碰碰| 亚洲va在线∨a天堂va欧美va| 婷婷5月天激情综合| 日本黄色精品| 成人在线观看精品| 99热精品在线| 亚洲第一黄网| 99视频| 丁香美女主播视频在线观看 | 久婷视频| www.色多多婷| 五月丁香激情综合| 桃色五月天| 丁香五月综合在线| 激情图片亚洲| 五月婷婷色影院| 久激情| 99精品久| 丁香婷婷激情网站| 欧亚成人A片一区二区| 五月丁香香蕉| 蜜桃婷婷丁香| 秋霞簧片| 国内婷婷丁香社区在线播放| 99视频精品| 色v综合网| 成人资源在线| 91好好热日本在线| 久xxxx| 視频福利乱色| 97色 五月天丁香| 三年高清大片免费观看国语| 亚洲成人网在线观看| 国产日韩欧美性爱| 天天干天天爽| 亚洲激情婷婷| 色婷婷精品| 五月激情久久| 九月婷婷丁香| 午夜不卡成人一区二区| 狠狠色激情在线| 99高级会所久久| 五月婷婷播| 六月婷婷无码观看| 五月天六月天| yazhou seshipin| 久久久er热| 成人欧美一区二区三区在线观看| 色婷婷狠| 99er日韩| 第四色色六月色综合| 天天舔夜夜操www com| 麻豆科斗777| site:picc-up.com| 色色五月婷婷| 青青草a在线| 六月婷婷色五月| 天堂AV三级| 亚洲色婷婷色| 天天艹夜夜爽| 婷婷亚洲五月色综合| A网在线欧洲| 天天日天天爱天天噪| 5月婷婷6月六月丁香| 色老久久| 丁香婷婷色色| 99在线观看| 99热这里是精品| 777精品久无码人妻蜜桃| 人人色人人弄人人操| 爱iii做iiii日日| 婷婷综合激情| AV网站免费在线| 色婷婷五月在线| jiZZdr| 99久久国产宗和精品1上映| 日本激情综合| 久九九热| 色五月首页| www,欧美干干干干干干| 国产精品五月天婷婷| 久久丁香久久| 色色丁香婷婷综合| 狠狠综合网| 9九九久久精品无码专区| 91亚洲免费片| 色色婷婷五月天| 六月丁香婷啪射| 噜噜久| 黄色一级影片| 欧美日韩中文国产一区发布| 99热九九在线| 九九热这里只有精品首页| 婷婷色成人| 久久538| 久久久久久久91| 久操婷婷| 婷婷干五月综合在线播放| 九九精品综合| 激情人妻蜜夜系列区| 91大神操美女| 亚洲综合色丁香五月天| 黄色成人网站在线播放| 日韩乱轮AV| 9人人操人人看| 国产熟女日日骚五月丁香爱| 人人操AV| 超级碰 久久9| 亚洲国产婷婷色五月| 丁香色五月婷婷| 亚洲热视频| 婷婷五月综合免费在线| 亚洲中文字幕AV| 六月狠狠综合| 涩五月婷婷| 国产av天天插天天操天天爽| 六月丁香大香蕉| 丁香六月天婷婷在线| 九九九九九九九热| 国产 亚洲 在线| 99碰碰。| 婷婷丁香社区网| 夜夜干天天干| 天天做天天爱天天高潮| 亚洲在线成人| 五月天婷婷在线啪啪视频| 丁香五月色网| 秋霞少妇AV网站| 久久草大香蕉| 亚洲五月天综合| 天天草天天摸| 中文幕无线码中文字蜜桃| 超碰成人av| www.六月丁香看AV| 天天色天天| 九月久久婷婷| 久久人人人人妻| 综合网亚洲| 91热视频色网站| 这里只有精品9| 婷婷五月天熟妇| 成人VAV视频在线观看| 五月色丁香综合| 五月天成人免费视频| 中文字幕无线久必| 97五月天婷婷综合激情网| 五月丁香婷中文字幕| 婷婷六月激情| 国产精品色婷婷久久久精品| 激情婷婷五月天在线观看| 九九热99熟女| 欧美十二区| 久久老码第一| 亚洲色色色| 九九色黄色| 婷婷激情欧美| 婷婷久久五月天| www.色99| 久久黄A片| 色色色婷婷五月| 丁香婷婷性久久| 精品国产va久久久| 天天色天天操天天射| www.av视频xx999.com| 91se在线观看| 先锋男人91资源| 色婷婷综合网站| 97亚洲视频在线| 婷婷成人综合免费视频| 婷婷五月天开心网| 丁香五月伊人| 综合网五月天123| 国产精品第一国产精品| 天天舔天天摸天天射| 欧美日综合| 色香久久| 激情色情五月天| 日韩五月丁香| 91啪啪啪啪| 九九精品免费| 色九月婷婷丁香| 日良久久| 欧日韩成人| 狠狠操狠狠操| 99精品在线| 中文字幕黄色片| 国产 亚洲 在线| 丁香婷婷久久| JAPANRCEP老熟妇乱子伦视频| 色噜噜狠狠色综合AV兰草影视| 伊人五月综合网| 国产亚洲99| 久久国产一区二区三区| 五月婷婷丁香五月婷婷| 亚洲精品九九| 激情五月婷婷开心网| 丁香五月婷婷亚洲色图| 99ri在线视频| 99小视频在线| 色婷婷五月天| 久热精品视频| 超碰不卡在线| 丁香九月激情| 亚洲视频丁香网va| 久久综合55| 亚洲天堂大香蕉| 超碰91av| 天天插天天插| 337午夜福利| 日本人人干| 色色五月婷| 激情五月天开心网丁香无码| 百度一下国产精品A| 激情五月丁香六月综合AVXXXX| 九九婷婷综合| 青青青在线视频国产| 黄色AAAAA| 天天肏夜夜肏| 俺去也婷婷| 婷婷久久综合久色| AV在线免费网站| 亚洲国产精品VA在线看黑人| 欧美狠狠地| 五月丁香成人| 香蕉久久国产AV一区二区| 婷香五月激情视频| 91偷拍视频| 射婷婷中文字幕| 色五月婷婷大香蕉| 久er7久热| 色五月美女| 久久99久久99精品免视看婷婷| 极品人妻videosss人妻| 日韩在线成人电影| 这里只有精品2| www.99热. com这里只有精品| 五月激情婷婷综合| 欧美性生交XXXXX无码小说| 婷婷五月天色| 人人玩人人橾| 欧美婷婷丁香五月| 日本乱子人伦在线视频|