亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

社區(qū)商鋪管理系統(tǒng):Spring Boot+Vue+MySQL全棧實(shí)戰(zhàn)解析

社區(qū)商鋪管理系統(tǒng):Spring Boot+Vue+MySQL全棧實(shí)戰(zhàn)解析 社區(qū)商鋪管理系統(tǒng)這類畢設(shè)題目每年都能見(jiàn)到不少但真正做扎實(shí)的其實(shí)不多。我前后參與評(píng)審和帶過(guò)幾個(gè)類似的畢業(yè)設(shè)計(jì)項(xiàng)目這套“社區(qū)商鋪管理系統(tǒng)”算是比較典型的一套完整方案后端是Spring Boot前端是Vue加Element UI數(shù)據(jù)庫(kù)用的MySQL覆蓋商鋪檔案、租戶管理、合同臺(tái)賬、費(fèi)用收繳、報(bào)修跟蹤等核心模塊。不管你是正在做畢設(shè)需要參考還是想快速搭一套輕量級(jí)的商鋪管理后臺(tái)這篇文章會(huì)把設(shè)計(jì)思路、數(shù)據(jù)庫(kù)結(jié)構(gòu)、關(guān)鍵實(shí)現(xiàn)、部署步驟和答辯常見(jiàn)追問(wèn)一次講清楚。這系統(tǒng)解決的核心問(wèn)題很具體社區(qū)里幾十上百間商鋪如果只靠Excel表格管理租期、租金、水電費(fèi)動(dòng)不動(dòng)就對(duì)不上賬。把商鋪信息、租戶關(guān)系、合同狀態(tài)、費(fèi)用記錄全部落到一個(gè)系統(tǒng)里誰(shuí)在租、租到什么時(shí)候、欠了多少錢(qián)、哪間鋪?zhàn)涌罩蜷_(kāi)后臺(tái)一眼就能看清。對(duì)做畢設(shè)的同學(xué)來(lái)說(shuō)這類系統(tǒng)的業(yè)務(wù)邏輯不復(fù)雜但鏈條完整特別適合用來(lái)展示從需求分析到數(shù)據(jù)庫(kù)設(shè)計(jì)再到前后端編碼的完整能力。下面我按實(shí)際動(dòng)手做這個(gè)項(xiàng)目的思路來(lái)講不繞彎子。1. 項(xiàng)目定位與需求拆解1.1 這類系統(tǒng)到底在管什么先說(shuō)場(chǎng)景。社區(qū)商鋪的形態(tài)很多有小區(qū)底商、社區(qū)商業(yè)街、產(chǎn)業(yè)園區(qū)配套商業(yè)區(qū)少則十幾間多則上百間。管理方往往是物業(yè)公司或者社區(qū)運(yùn)營(yíng)方他們?nèi)粘R幚淼牟皇恰百u(mài)東西”而是“管鋪?zhàn)印蹦拈g鋪?zhàn)幼獬鋈チ?、租給了誰(shuí)、合同什么時(shí)候到期、這個(gè)月該收多少租金和水電費(fèi)、租戶提交的報(bào)修單處理到什么程度。這些信息如果散落在Excel和微信聊天記錄里時(shí)間一長(zhǎng)必定對(duì)不上賬尤其是同時(shí)存在“已退租未結(jié)清”“合同已到期但租戶還在用”這類特殊情況時(shí)純粹靠人腦記根本沒(méi)有可行性。所以這套系統(tǒng)的核心價(jià)值就是把商鋪全生命周期管起來(lái)從錄入一間鋪?zhàn)拥幕拘畔㈤_(kāi)始到找到租戶、簽合同收押金、每月自動(dòng)生成應(yīng)收賬單、收款登記、續(xù)租或退租結(jié)算整個(gè)鏈條每個(gè)環(huán)節(jié)都有對(duì)應(yīng)的數(shù)據(jù)記錄和狀態(tài)變更。對(duì)做畢設(shè)而言這個(gè)業(yè)務(wù)域特別合適因?yàn)樗恍枰獜?fù)雜算法但涉及多個(gè)實(shí)體的關(guān)聯(lián)、狀態(tài)的扭轉(zhuǎn)、統(tǒng)計(jì)報(bào)表的輸出能很好地體現(xiàn)一個(gè)開(kāi)發(fā)者對(duì)業(yè)務(wù)建模和工程化的理解。1.2 核心功能模塊與業(yè)務(wù)流程我拆解這個(gè)系統(tǒng)時(shí)習(xí)慣先畫(huà)業(yè)務(wù)流程圖再動(dòng)手寫(xiě)代碼。整體上分為六大模塊商鋪管理維護(hù)商鋪檔案包括鋪號(hào)、樓層、面積、租金單價(jià)、物業(yè)費(fèi)單價(jià)、當(dāng)前狀態(tài)空閑/已租/裝修中/停用。租戶管理管理租戶基本信息包括姓名、手機(jī)號(hào)、證件號(hào)、緊急聯(lián)系人支持按名稱或手機(jī)號(hào)快速檢索。合同管理商鋪與租戶之間簽約、續(xù)租、退租、到期提醒。合同里記錄租期、月租金、押金、遞增規(guī)則。收費(fèi)管理按合同生成月度賬單收費(fèi)類型涵蓋租金、物業(yè)費(fèi)、水費(fèi)、電費(fèi)、滯納金支持線下收款后登記核銷(xiāo)、逾期標(biāo)記。報(bào)修管理租戶發(fā)起報(bào)修管理員派單、回訪、完結(jié)記錄處理人、費(fèi)用。系統(tǒng)管理登錄認(rèn)證、用戶管理、角色權(quán)限、操作日志。業(yè)務(wù)流程的主線是“建檔→出租→收費(fèi)→結(jié)算”。一間新鋪?zhàn)酉扔晒芾韱T建檔狀態(tài)設(shè)為“空閑”找到租戶后簽訂合同合同一旦生效系統(tǒng)自動(dòng)把商鋪狀態(tài)改為“已租”同時(shí)根據(jù)合同起止日期生成首月的應(yīng)收賬單此后每月由定時(shí)任務(wù)或管理員手動(dòng)觸發(fā)生成當(dāng)月的租金加物業(yè)費(fèi)賬單租戶繳費(fèi)后做收款登記賬單狀態(tài)變?yōu)椤耙牙U”合同到期時(shí)如果續(xù)簽就延長(zhǎng)合同并調(diào)整租金如果不續(xù)簽辦理退租結(jié)算把押金抵扣未繳費(fèi)用后退還商鋪狀態(tài)改回“空閑”。這條鏈路把核心業(yè)務(wù)全部串起來(lái)了也是后面設(shè)計(jì)表結(jié)構(gòu)和接口的主線。1.3 選擇這個(gè)題目的優(yōu)勢(shì)與難點(diǎn)從畢設(shè)選題角度看“社區(qū)商鋪管理系統(tǒng)”的優(yōu)勢(shì)很明顯業(yè)務(wù)不冷門(mén)任何人一看題目就知道要做什么技術(shù)??梢赃x主流水準(zhǔn)前端Vue、后端Spring Boot、數(shù)據(jù)庫(kù)MySQL工作量大但完全可控演示效果好后臺(tái)界面上有表格、表單、圖表甚至可以做ECharts出租率趨勢(shì)圖答辯時(shí)能展示出很完整的項(xiàng)目成果。難度則集中在幾處一是合同與賬單的關(guān)聯(lián)邏輯尤其是跨月、跨年的賬單生成和費(fèi)用統(tǒng)計(jì)容易算錯(cuò)二是權(quán)限控制要做到不同角色看不到不同菜單而不是只在頁(yè)面里隱藏按鈕三是時(shí)間字段的處理容易踩時(shí)區(qū)坑后面我會(huì)單獨(dú)講。明確這三個(gè)難點(diǎn)之后開(kāi)發(fā)時(shí)就能有意識(shí)地避開(kāi)。2. 技術(shù)選型與架構(gòu)設(shè)計(jì)2.1 為什么選Spring Boot加Vue前后端分離畢業(yè)設(shè)計(jì)的主流技術(shù)方案我對(duì)比過(guò)幾類純Servlet加JSP的傳統(tǒng)模式、SSM配合JSP、Spring Boot加Thymeleaf服務(wù)端渲染、Spring Boot加Vue前后端分離。我的建議是直接用Spring Boot加Vue這套理由很實(shí)際。第一前后端分離讓代碼組織更清晰。后端只暴露REST接口前端只做頁(yè)面交互兩邊都能單獨(dú)調(diào)試、單獨(dú)部署。答辯時(shí)你能夠把前后端分開(kāi)展示講接口設(shè)計(jì)、講頁(yè)面組件每個(gè)部分都有自己的工作量不會(huì)被質(zhì)疑“是不是只有CRUD”。第二Spring Boot把配置簡(jiǎn)化了很多。內(nèi)嵌Tomcat不用單獨(dú)裝容器一個(gè)jar包就能跑起來(lái)數(shù)據(jù)庫(kù)連接池、MyBatis、校驗(yàn)框架通過(guò)starter引入即可省去大量XML配置。對(duì)一個(gè)半年周期內(nèi)還要寫(xiě)論文、畫(huà)圖、調(diào)格式的畢設(shè)來(lái)說(shuō)時(shí)間要花在業(yè)務(wù)上而不是環(huán)境折騰上。第三Vue的生態(tài)成熟Element UI的組件覆蓋了后臺(tái)管理系統(tǒng)需要的表單、表格、彈窗、分頁(yè)、菜單、面包屑套上就能出一套像樣的界面。對(duì)非設(shè)計(jì)出身的開(kāi)發(fā)者來(lái)說(shuō)這是性價(jià)比最高的選擇。當(dāng)然如果你對(duì)Java不熟備選方案是Python的Django/Flask搭配Vue或者Node.js的Express前后端同構(gòu)但考慮到答辯時(shí)老師普遍更認(rèn)可Java系列而且社區(qū)里能找到的參考源碼和文檔最多我還是推薦Spring Boot。2.2 整體架構(gòu)與請(qǐng)求鏈路系統(tǒng)整體采用標(biāo)準(zhǔn)的前后端分離架構(gòu)。前端是Vue加Vue Router加Vuex加Axios加Element UI使用Vite構(gòu)建后端是Spring Boot加MyBatis-Plus加MySQL接口遵循RESTful風(fēng)格開(kāi)發(fā)階段前端通過(guò)Vite代理轉(zhuǎn)發(fā)請(qǐng)求到后端的8080端口生產(chǎn)環(huán)境則把前后端分別部署。一條典型的請(qǐng)求鏈路是這樣用戶打開(kāi)登錄頁(yè)輸入賬號(hào)密碼前端調(diào)用/api/login接口后端認(rèn)證成功后返回一個(gè)Token前端把Token存到localStorageAxios攔截器里每次請(qǐng)求都帶上Authorization頭后端通過(guò)攔截器校驗(yàn)Token解析出當(dāng)前用戶和角色再到Service層做業(yè)務(wù)判斷Mapper層執(zhí)行SQL最終把結(jié)果以統(tǒng)一返回結(jié)構(gòu){ code, message, data }返回給前端。這個(gè)統(tǒng)一返回結(jié)構(gòu)很重要前端可以直接根據(jù)code判斷成功與失敗不需要在每一個(gè)請(qǐng)求里單獨(dú)處理異常。架構(gòu)上分層做得很清楚Controller層只做參數(shù)接收和結(jié)果封裝不寫(xiě)業(yè)務(wù)Service層寫(xiě)核心邏輯比如賬單生成、合同狀態(tài)流轉(zhuǎn)Mapper層只負(fù)責(zé)SQL與實(shí)體映射。這樣做的好處是答辯時(shí)老師問(wèn)“你的事務(wù)怎么控制的”你就能直接說(shuō)賬單生成是多表操作在Service上加Transactional保證合同狀態(tài)和賬單數(shù)據(jù)不會(huì)出現(xiàn)一半成功一半失敗。2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)思路與核心表結(jié)構(gòu)數(shù)據(jù)庫(kù)設(shè)計(jì)是整個(gè)項(xiàng)目的地基我把核心表結(jié)構(gòu)列出來(lái)并把設(shè)計(jì)原因講清楚。商鋪表shop字段類型說(shuō)明idbigint主鍵自增shop_novarchar(20)鋪號(hào)唯一索引shop_namevarchar(100)商鋪名稱floorvarchar(10)所在樓層areadecimal(10,2)建筑面積平方米rent_unit_pricedecimal(10,2)月租金單價(jià)元/平米property_fee_unit_pricedecimal(10,2)物業(yè)費(fèi)單價(jià)元/平米/月statustinyint狀態(tài)0空閑 1已租 2裝修中 3停用remarkvarchar(255)備注租戶表tenantid、tenant_name、phone、id_card、emergency_contact、emergency_phone、create_time。合同表contract設(shè)計(jì)時(shí)要注意冗余字段id、contract_no、shop_id、tenant_id、start_date、end_date、monthly_rent、monthly_property_fee、deposit、rent_increase_rate、status1生效 2已到期 3已解約、sign_date、remark。收費(fèi)記錄表charge_recordid、contract_id、charge_type1租金 2物業(yè)費(fèi) 3水費(fèi) 4電費(fèi) 5滯納金、amount、period賬期如2025-03、status0未繳 1已繳 2逾期、pay_date、pay_method、operator_id。報(bào)修表repair_record、公告表notice、用戶表sys_user、角色表sys_role、用戶角色關(guān)聯(lián)表sys_user_role、操作日志表sys_log。設(shè)計(jì)上的幾個(gè)關(guān)鍵點(diǎn)要單獨(dú)講外鍵關(guān)系和查詢效率。業(yè)務(wù)表之間有關(guān)聯(lián)比如合同表關(guān)聯(lián)shop_id和tenant_id但我在數(shù)據(jù)庫(kù)層面不建物理外鍵而是在代碼里保證引用關(guān)系。物理外鍵在刪數(shù)據(jù)時(shí)會(huì)帶來(lái)一堆約束麻煩線上系統(tǒng)也普遍不推薦用關(guān)鍵是索引要建對(duì)。對(duì)shop_id、tenant_id、contract_id這些關(guān)聯(lián)字段都要建普通索引否則數(shù)據(jù)量上來(lái)后聯(lián)表查詢會(huì)變慢。金額字段一律用decimal而不是float/double。Java后端用BigDecimal接收數(shù)據(jù)庫(kù)用decimal(10,2)。浮點(diǎn)數(shù)算金額0.1加0.2不等于0.3的問(wèn)題在答辯現(xiàn)場(chǎng)非常尷尬這一點(diǎn)一定要提前規(guī)避。時(shí)間字段用datetime所有表都帶上create_time和update_time。MyBatis-Plus的自動(dòng)填充功能可以讓插入和更新時(shí)自動(dòng)填這兩個(gè)字段省去手動(dòng)維護(hù)。賬期period字段為什么不直接用日期因?yàn)橘~單是按自然月生成的2025-03這個(gè)字段在統(tǒng)計(jì)月度收入時(shí)直接group by period就可以不需要再轉(zhuǎn)換日期格式。這個(gè)設(shè)計(jì)是業(yè)務(wù)驅(qū)動(dòng)出來(lái)的不是拍腦袋決定的。3. 核心模塊實(shí)現(xiàn)深度解析3.1 商鋪管理模塊狀態(tài)流轉(zhuǎn)是關(guān)鍵商鋪管理表面上是增刪改查核心是狀態(tài)流轉(zhuǎn)。一間商鋪可以從空閑變成已租、從已租變成裝修中、再重新變成空閑也可以被停用。我在后端定義一個(gè)枚舉ShopStatus在Service層做流轉(zhuǎn)校驗(yàn)只有“空閑”狀態(tài)的商鋪才能簽新合同變成“已租”“已租”狀態(tài)的商鋪不允許直接刪除只能走退租流程“停用”狀態(tài)的商鋪不參與出租率統(tǒng)計(jì)。這里有一個(gè)好用的技巧凡是需要和業(yè)務(wù)狀態(tài)打交道的修改操作都寫(xiě)專門(mén)的Service方法而不是讓前端直接調(diào)通用update接口傳一個(gè)status字段。比如簽約操作是createContract()里面做了三件事校驗(yàn)商鋪狀態(tài)、插入合同記錄、更新商鋪狀態(tài)為已租。這樣狀態(tài)流轉(zhuǎn)的邏輯只在服務(wù)端前端只能通過(guò)業(yè)務(wù)接口觸發(fā)避免了有人繞過(guò)校驗(yàn)直接改狀態(tài)的情況。代碼里用Transactional包住整個(gè)方法任何一個(gè)環(huán)節(jié)出錯(cuò)都回滾。核心方法大概長(zhǎng)這樣Transactional(rollbackFor Exception.class) public void signContract(SignContractRequest req) { Shop shop shopMapper.selectById(req.getShopId()); if (shop null || !ShopStatus.FREE.equals(shop.getStatus())) { throw new BusinessException(該商鋪當(dāng)前不可出租); } Contract contract new Contract(); contract.setShopId(req.getShopId()); contract.setTenantId(req.getTenantId()); contract.setStartDate(req.getStartDate()); contract.setEndDate(req.getEndDate()); contract.setMonthlyRent(req.getMonthlyRent()); contract.setDeposit(req.getDeposit()); contract.setStatus(ContractStatus.ACTIVE); contractMapper.insert(contract); shop.setStatus(ShopStatus.RENTED); shopMapper.updateById(shop); generateFirstMonthBill(contract.getId()); }3.2 合同管理模塊日期與關(guān)聯(lián)狀態(tài)的處理合同管理是這個(gè)項(xiàng)目里業(yè)務(wù)邏輯最重的部分我踩過(guò)不少坑。先說(shuō)簽約時(shí)租金怎么算。商鋪表里存的是“租金單價(jià)元/平米/月”但合同里存的是“月租金元”。簽約時(shí)要根據(jù)面積乘以單價(jià)算出來(lái)比如一間50平米的鋪?zhàn)訂蝺r(jià)80元/平月租金就是4000元。為什么合同里要冗余一個(gè)月的租金總價(jià)而不是每次現(xiàn)算因?yàn)閷?lái)可能單獨(dú)對(duì)某個(gè)合同調(diào)價(jià)比如商圈整體漲價(jià)后給老租戶打折如果只存單價(jià)歷史合同的金額會(huì)跟著變化財(cái)務(wù)核算就亂了。所以合同一旦生成月租金就以合同為準(zhǔn)商鋪的單價(jià)只作為新建合同的默認(rèn)值互不影響。日期處理也是重點(diǎn)。合同的start_date和end_date用Java的LocalDate來(lái)接收向前端返回時(shí)格式化成yyyy-MM-dd。計(jì)算租期內(nèi)到底要生成幾個(gè)月的賬單有一種常見(jiàn)做法是用ChronoUnit.MONTHS.between(start, end)再加1比如3月1日到5月31日是3個(gè)月。這里有個(gè)坑ChronoUnit計(jì)算的是兩個(gè)日期之間的完整月數(shù)如果合同是3月15日到5月14日算出來(lái)是2個(gè)月但實(shí)際按自然月算賬單可能是跨了3、4、5三個(gè)月的部分月份。所以我在生成賬單時(shí)不用這個(gè)API而是按月從合同開(kāi)始月份循環(huán)到結(jié)束月份每個(gè)月生成一條賬期記錄金額按整月收。雖然部分月份實(shí)際不是整月但社區(qū)商鋪的結(jié)算習(xí)慣通常都是按月整收這種約定俗成的規(guī)則在計(jì)費(fèi)邏輯里要先和需求方確認(rèn)清楚。合同到期提醒功能也建議做??梢悦刻炫芤粋€(gè)定時(shí)任務(wù)掃一遍狀態(tài)為生效、結(jié)束日期在30天內(nèi)的合同把記錄寫(xiě)入提醒列表讓管理員在首頁(yè)看到。這個(gè)功能不復(fù)雜但對(duì)“系統(tǒng)有沒(méi)有用”的感知提升很明顯。3.3 收費(fèi)管理模塊賬單生成與核銷(xiāo)收費(fèi)模塊是核心中的核心。我設(shè)計(jì)了一個(gè)計(jì)費(fèi)方法generateMonthlyBill(contractId, yearMonth)邏輯是查詢合同是否在指定月份處于生效狀態(tài)檢查該月份是否已經(jīng)生成過(guò)賬單有則跳過(guò)避免重復(fù)生成根據(jù)合同中的月租金和月物業(yè)費(fèi)生成兩條charge_record記錄一條charge_type等于1租金一條等于2物業(yè)費(fèi)如果有水電費(fèi)抄表記錄再生成對(duì)應(yīng)的水費(fèi)、電費(fèi)記錄。賬單生成時(shí)機(jī)有兩種做法一種是在合同生效時(shí)一次性生成整個(gè)租期的所有賬單另一種是每個(gè)月生成當(dāng)月的。我推薦后者因?yàn)楹贤赡苤型咀兏⑼俗饣蛘哒{(diào)價(jià)一次性生成一堆賬單后面要維護(hù)很麻煩。每個(gè)月由管理員點(diǎn)一下“生成本月賬單”或者配置一個(gè)定時(shí)任務(wù)每天跑一次檢查本月是否已生成就能覆蓋絕大多數(shù)場(chǎng)景。SQL里用唯一索引unique key uk_contract_period_type(contract_id, period, charge_type)來(lái)保證一筆費(fèi)用在一個(gè)賬期內(nèi)只能有一條記錄這是數(shù)據(jù)庫(kù)層面的兜底。收款核銷(xiāo)的流程是管理員看到某條賬單狀態(tài)未繳點(diǎn)擊“收款”彈出收款窗口記錄收款方式、實(shí)收金額允許部分減免并把減免原因?qū)懭雮渥?、收款時(shí)間然后更新賬單狀態(tài)為已繳。這里業(yè)務(wù)上有個(gè)處理要點(diǎn)拖欠繳費(fèi)時(shí)要不要自動(dòng)產(chǎn)生滯納金。社區(qū)商鋪通常按合同約定滯納金比例比如每日千分之三但計(jì)算起來(lái)比較復(fù)雜我的做法是在退租結(jié)算時(shí)統(tǒng)一計(jì)算未繳賬單的滯納金日常不自動(dòng)累加這樣既滿足業(yè)務(wù)預(yù)期又減少了定時(shí)計(jì)算的負(fù)擔(dān)。3.4 統(tǒng)計(jì)報(bào)表與可視化統(tǒng)計(jì)報(bào)表是答辯時(shí)的加分項(xiàng)我建議至少做三個(gè)視圖。出租率趨勢(shì)圖按月統(tǒng)計(jì)每個(gè)月的出租商鋪數(shù)除以總商鋪數(shù)前端用ECharts畫(huà)折線圖。SQL上可以從合同表里查出每個(gè)月份有效合同的數(shù)量也可以用商鋪表中status等于已租的數(shù)量除以總數(shù)。前一種能看歷史趨勢(shì)后一種只能看當(dāng)前快照答辯展示建議用前一種更有“數(shù)據(jù)感”。月度收入趨勢(shì)圖按實(shí)收月份統(tǒng)計(jì)charge_record里status等于已繳的賬單金額合計(jì)能看出收租高峰和低谷。這里注意統(tǒng)計(jì)口徑是“實(shí)收月份”而不是“賬期月份”因?yàn)榭赡艽嬖谘a(bǔ)繳以前月份款項(xiàng)的情況兩個(gè)口徑的差別在答辯時(shí)講清楚了老師會(huì)認(rèn)可你對(duì)統(tǒng)計(jì)口徑的敏感度。費(fèi)用類型占比餅圖統(tǒng)計(jì)一個(gè)時(shí)間段內(nèi)租金、物業(yè)費(fèi)、水電費(fèi)各自的總額和占比。這個(gè)圖最直觀非技術(shù)背景的人也能一眼看懂。做報(bào)表時(shí)SQL層建議直接寫(xiě)分組統(tǒng)計(jì)不要先把明細(xì)查出來(lái)然后在Java里for循環(huán)累加。雖然對(duì)數(shù)據(jù)量小的畢設(shè)來(lái)說(shuō)性能差別不大但寫(xiě)一手“用SQL完成聚合”的代碼在答辯時(shí)更顯得有工程素養(yǎng)。例如當(dāng)月收入統(tǒng)計(jì)select DATE_FORMAT(pay_date, %Y-%m) as month, sum(amount) as total_income from charge_record where status 1 and pay_date is not null group by DATE_FORMAT(pay_date, %Y-%m) order by month desc;4. 實(shí)操過(guò)程與部署實(shí)施4.1 從零初始化項(xiàng)目的環(huán)境準(zhǔn)備在開(kāi)始寫(xiě)代碼前先把環(huán)境準(zhǔn)備好我列一個(gè)清單JDK 1.8或11我用1.8兼容性最好Maven 3.6以上MySQL 5.7或8.0我用5.7如果8.0要注意驅(qū)動(dòng)和時(shí)區(qū)配置Node.js 14以上IDEA、Navicat或DBeaver數(shù)據(jù)庫(kù)初始化時(shí)建一個(gè)名為community_shop的庫(kù)字符集選utf8mb4。然后執(zhí)行建表腳本我習(xí)慣把所有建表語(yǔ)句放進(jìn)一個(gè)schema.sql里統(tǒng)一管理再插一批測(cè)試數(shù)據(jù)。測(cè)試數(shù)據(jù)很重要不只是為了演示效果更是為了讓自己在開(kāi)發(fā)階段就面對(duì)真實(shí)數(shù)據(jù)形態(tài)比如有的商鋪已經(jīng)出租多年、有的上個(gè)月剛退租、有些賬單逾期未繳這樣頁(yè)面上的圖表才不會(huì)顯得空洞。后端項(xiàng)目用Spring Initializr生成引入spring-boot-starter-web、mybatis-plus-boot-starter、mysql-connector-java、lombok、spring-boot-starter-validation、jjwt這些依賴。application.yml里配置數(shù)據(jù)源、MyBatis-Plus的mapper掃描、JWT密鑰和過(guò)期時(shí)間。注意數(shù)據(jù)庫(kù)連接URL里一定要帶serverTimezoneAsia/Shanghai否則連上庫(kù)以后時(shí)間字段會(huì)差8個(gè)小時(shí)這是個(gè)特別經(jīng)典的坑。配置示例spring: datasource: url: jdbc:mysql://localhost:3306/community_shop?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl jwt: secret: your-secret-key expire-hours: 244.2 核心接口與前后端聯(lián)調(diào)后端接口統(tǒng)一以/api開(kāi)頭通過(guò)JWT攔截器做認(rèn)證。登錄接口、查詢商鋪列表接口、生成賬單接口分別對(duì)應(yīng)不同的權(quán)限點(diǎn)。我把主要接口列出來(lái)商鋪相關(guān)GET /api/shop/page、POST /api/shop、PUT /api/shop、DELETE /api/shop/{id}、PUT /api/shop/{id}/status租戶相關(guān)GET /api/tenant/page、POST /api/tenant、PUT /api/tenant合同相關(guān)POST /api/contract/sign、GET /api/contract/page、PUT /api/contract/renew、PUT /api/contract/terminate收費(fèi)相關(guān)POST /api/charge/generateMonthly、GET /api/charge/page、POST /api/charge/pay/{id}統(tǒng)計(jì)相關(guān)GET /api/stats/rentRate、GET /api/stats/monthlyIncome、GET /api/stats/incomeType前后端聯(lián)調(diào)時(shí)的重點(diǎn)在Token傳遞。前端Axios的request攔截器里加Authorization頭response攔截器里對(duì)code等于401的統(tǒng)一跳轉(zhuǎn)登錄頁(yè)。一開(kāi)始最容易出的問(wèn)題是跨域開(kāi)發(fā)環(huán)境我是在Vite的配置里加了proxy把/api前綴的請(qǐng)求代理到http://localhost:8080這樣瀏覽器的請(qǐng)求是同源的就不需要后端額外開(kāi)放CORS。這個(gè)方法推薦優(yōu)先用比在Spring里配CrossOrigin更干凈也不會(huì)影響生產(chǎn)部署。另外“導(dǎo)出Excel”功能我強(qiáng)烈建議做進(jìn)去。社區(qū)商鋪管理方經(jīng)常要把賬單表發(fā)出去對(duì)賬一個(gè)導(dǎo)出按鈕能生成Excel文件在畢設(shè)里既是一個(gè)實(shí)用亮點(diǎn)又能在答辯時(shí)現(xiàn)場(chǎng)演示成本卻很低。做法是后端引入easypoi依賴把查出來(lái)的收費(fèi)記錄列表直接轉(zhuǎn)成Excel響應(yīng)給前端前端用window.open下載或者axios接收blob。這個(gè)功能屬于“投入小、產(chǎn)出高”的典型代表。4.3 本地運(yùn)行與打包上線的完整流程整個(gè)項(xiàng)目在本地跑起來(lái)只需要幾步啟動(dòng)MySQL執(zhí)行初始化腳本導(dǎo)入表結(jié)構(gòu)和測(cè)試數(shù)據(jù)修改application.yml里的數(shù)據(jù)庫(kù)賬號(hào)密碼在IDEA里啟動(dòng)Spring Boot后端看到Started日志說(shuō)明成功默認(rèn)端口8080在前端目錄執(zhí)行npm install安裝依賴再npm run devVite默認(rèn)5173端口會(huì)打開(kāi)登錄頁(yè)面用管理員賬號(hào)登錄進(jìn)入后逐個(gè)模塊點(diǎn)一遍確認(rèn)接口和數(shù)據(jù)都正常。如果要把項(xiàng)目打包部署到服務(wù)器后端執(zhí)行mvn package會(huì)生成一個(gè)可執(zhí)行的jar包把jar、MySQL、前端構(gòu)建產(chǎn)物放到同一臺(tái)服務(wù)器上前端執(zhí)行npm run build產(chǎn)物是一個(gè)dist目錄用Nginx做靜態(tài)托管并把/api路徑反向代理到Spring Boot的8080端口。Nginx配置里server_name、root、location /api的proxy_pass是關(guān)鍵。前端路由如果是history模式需要在Nginx里配置try_files否則刷新頁(yè)面就會(huì)404這個(gè)坑幾乎每個(gè)第一次部署前后端分離項(xiàng)目的人都會(huì)遇到一次。Nginx核心配置server { listen 80; server_name your-domain.com; root /opt/community-shop/dist; index index.html; location /api/ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location / { try_files $uri $uri/ /index.html; } }5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 高頻問(wèn)題速查表我在開(kāi)發(fā)和帶學(xué)生做類似項(xiàng)目時(shí)遇到最多的問(wèn)題基本集中在下面這些整理成一張速查表現(xiàn)象可能原因解決方案登錄頁(yè)驗(yàn)證碼不顯示或接口404后端沒(méi)啟動(dòng)或路徑不對(duì)檢查控制臺(tái)日志確認(rèn)端口和上下文路徑前端請(qǐng)求接口報(bào)CORS錯(cuò)誤未配置代理或未開(kāi)CORS用Vite proxy代理或后端配置跨域過(guò)濾器數(shù)據(jù)庫(kù)時(shí)間差8小時(shí)連接URL缺serverTimezone加上serverTimezoneAsia/Shanghai中文亂碼連接字符集不是utf8mb4連接URL加characterEncodingutf8庫(kù)表字符集統(tǒng)一npm install卡住依賴源太慢設(shè)置鏡像源加速賬單生成重復(fù)唯一索引沒(méi)建對(duì)contract_id、period、charge_type加唯一索引刷新頁(yè)面404前端history路由部署未配置Nginx加try_files規(guī)則導(dǎo)出Excel中文亂碼瀏覽器下載文件名編碼文件名URLEncode后放入Content-Disposition修改數(shù)據(jù)后列表不刷新前端緩存或查詢條件問(wèn)題檢查分頁(yè)參數(shù)和響應(yīng)數(shù)據(jù)清緩存調(diào)試5.2 答辯時(shí)如何把項(xiàng)目講清楚畢業(yè)設(shè)計(jì)的最后一道坎是答辯。很多同學(xué)代碼寫(xiě)完了但講的時(shí)候只能念PPT很吃虧。我給幾個(gè)建議一定要準(zhǔn)備一張“業(yè)務(wù)流程圖”或者“系統(tǒng)功能結(jié)構(gòu)圖”答辯時(shí)第一件事就是講清楚這個(gè)系統(tǒng)是給誰(shuí)用的、解決什么問(wèn)題然后順著“商鋪建檔→簽約→月度收費(fèi)→退租結(jié)算”這條主線講把每個(gè)環(huán)節(jié)對(duì)應(yīng)的頁(yè)面和接口指出來(lái)。時(shí)間控制在5分鐘內(nèi)重點(diǎn)是體現(xiàn)出你理解業(yè)務(wù)而不是只會(huì)敲代碼。準(zhǔn)備幾個(gè)“為什么”答案。老師必問(wèn)的問(wèn)題包括為什么選MySQL不選Oracle為什么金額用decimal為什么不用物理外鍵合同到期提醒是怎么做的權(quán)限控制怎么實(shí)現(xiàn)的這些問(wèn)題我在前面的內(nèi)容里都已經(jīng)把答案給了關(guān)鍵是要自己理解、用自己的話表達(dá)出來(lái)。還有一個(gè)小技巧答辯演示時(shí)準(zhǔn)備好一組完整的演示數(shù)據(jù)包括一間已經(jīng)出租一年多的商鋪、一間空鋪、幾條不同狀態(tài)的電費(fèi)賬單以及兩個(gè)不同權(quán)限的賬號(hào)。演示時(shí)先講普通操作再登錄管理員賬號(hào)演示權(quán)限差異最后打開(kāi)統(tǒng)計(jì)圖表頁(yè)面連續(xù)操作下來(lái)整套系統(tǒng)給人的印象就是完整、有深度的而不是只做了個(gè)登錄加兩個(gè)列表的“半成品”。5.3 實(shí)際開(kāi)發(fā)過(guò)程中我踩過(guò)的三個(gè)坑第一個(gè)坑是分頁(yè)插件導(dǎo)致的SQL異常。MyBatis-Plus的分頁(yè)查詢需要單獨(dú)配置一個(gè)分頁(yè)攔截器如果沒(méi)配置Page對(duì)象返回的total始終為0你以為是自己代碼寫(xiě)錯(cuò)了其實(shí)只是少裝了一個(gè)插件。第二個(gè)坑是Element UI的日期選擇器返回的格式問(wèn)題如果你把DatePicker的value-format不設(shè)成yyyy-MM-dd前端拿到的就是標(biāo)準(zhǔn)時(shí)間對(duì)象直接傳給后端會(huì)導(dǎo)致格式解析報(bào)錯(cuò)。第三個(gè)坑是權(quán)限框架的引入順序一旦引入攔截器后發(fā)現(xiàn)靜態(tài)資源和登錄接口都被攔截排查的思路是先看攔截器排除列表是否包含了登錄接口和靜態(tài)路徑這個(gè)順序問(wèn)題我在做項(xiàng)目時(shí)調(diào)試了整整一個(gè)下午。排查思路分享遇到問(wèn)題不要慌先看后端日志再看瀏覽器Network面板。后端日志定位是參數(shù)問(wèn)題、SQL問(wèn)題還是業(yè)務(wù)異常Network面板確認(rèn)請(qǐng)求有沒(méi)有發(fā)出去、響應(yīng)碼是多少、返回體是什么。90%的聯(lián)調(diào)問(wèn)題靠這兩個(gè)工具就能解決。6. 經(jīng)驗(yàn)總結(jié)與擴(kuò)展建議整套系統(tǒng)做下來(lái)我個(gè)人最大的體會(huì)是畢設(shè)項(xiàng)目的難不在“代碼量”而在“業(yè)務(wù)想清楚”。社區(qū)商鋪管理系統(tǒng)的每個(gè)模塊單看都不難但把它們連成一條完整的業(yè)務(wù)鏈讓數(shù)據(jù)在商鋪、租戶、合同、賬單之間保持一致這個(gè)過(guò)程才是真正的鍛煉。如果這個(gè)項(xiàng)目你想繼續(xù)擴(kuò)展方向其實(shí)很多??梢约右粋€(gè)租戶端小程序讓租戶在手機(jī)上查看賬單并在線繳費(fèi)、提交報(bào)修申請(qǐng)可以在收費(fèi)模塊里加入對(duì)接微信支付或支付寶的沙箱環(huán)境做成在線支付閉環(huán)也可以加入更細(xì)的權(quán)限粒度比如每個(gè)管理員只能管理自己負(fù)責(zé)的樓棟。想走數(shù)據(jù)分析方向的話還可以把出租率、回款率、空置率做成大屏看板展示效果會(huì)更有沖擊力。最后分享一個(gè)做畢設(shè)時(shí)很實(shí)用的小習(xí)慣每寫(xiě)完一個(gè)模塊就寫(xiě)一小段測(cè)試代碼或者用Postman把接口驗(yàn)證一遍并把驗(yàn)證記錄貼在項(xiàng)目的README里。這樣到寫(xiě)論文的時(shí)候“系統(tǒng)測(cè)試”這一章的內(nèi)容自然就有了不用最后幾天熬夜補(bǔ)材料。希望這篇文章能幫你少走一些彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产一级高清免费观看| 99国产精品| 狠狠五月天| 久久久久骚| 天天弄欧美| 天天草夜夜草高潮片| 亚洲黄色a级片| 天天弄欧美| 91成人18| 夜夜高潮夜夜爽高清视频一 | 99色色| 五月天伊人| 9久9久9久9久视频网站| 久久HD| 动漫av中文| 成人性交午夜免费片| 国产传媒一区二区三区| ?亚洲伊人伊成久久人综合网| 91neishe| 最新AV在线| av天堂5| 超硑97精品| 自拍亚洲综合| 91 亚洲 欧美 日韩 国产 综合| 91美女色视频亚洲| 国产特级毛片AAAAAA高潮流水| 欧美不卡在线美女| 久操国产在线| 久久人妻四季| 麻豆综合一区av| 色穴精品| 尤物视频一区| 超碰在线97国产| 日本一级真人黄色性爱视频| 国产乱弄免费在线视频。| 男插女青青影院| 激情综合五月| 婷婷爽人人婷婷爽视频| 久久性视频| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 久久精品国产亚洲5555| 日本久久网| 亚洲激情片| 国产丰满少妇久久久精品影院| 亚洲天天操| 岛国精品视频在线观看| 超碰97中文| 国产美女激情| 午夜爽爽爽在线观看永久入口姬片| 4141514逼喷水三级片| 欧美大波激情xxxx| 人妻少妇精品无码专区二区密桃| 国产这里只有精品| 国产精品无码久久久久2025| 蜜臀在线网站| 亚洲精品骚逼| 3P乱轮视频| 视频在线中文字幕| 成片免费观看视频大全| 劲爆欧美人妖三区91| 午夜超爽| 天天干18禁| 欧美日不卡| 男女一进一出视频久久| 熟女露脸激情自拍视频| www超碰| 91天天| 26uuu成人影片| 青青草玖玖爱| 久久日本熟妇熟色高清| 玖玖综合.com| 国产精品久久久三级无码| 色九九久九九| 激情文学 国产一二三aV| 九九热久久99精品re| 97亚洲在线| 亚洲影视高清第一页| 久久精品人体| 青青草天天亲夜夜操网| 国产熟女完整版中字| 97精品97| 精品国产久久乱码| 午夜精品久久久久久久99热影院| 亚洲日韩肥臀视频在线观看| 999在线电影香蕉| 丰满人妻大屁一区二区| www.大香| 国产伦乱91| 巨爆乳一区二区爆乳区| 久久久久亚洲三级电影| 亚洲影视第一页| WWW4虎| 飘花国产午夜精品不卡| 人人污日韩一区二区| 草久久久| 欧美激情综合| 国产精品秘 福利姬在线观看| 国产v片在线免费观看| 91综合站| CCYY草草影院地址入口| 青青草玖玖爱| 爱爱久久| 久久妇| 久久伊人青青草| 330Dv国产女人终合视频极品人与兽| 日韩另类色图| 亚州久久9| 少妇内射www在线观看视频| 欧美最婬乱婬爆婬性视频 | 91美女高潮| 9 9无尺码天堂网| 夜夜嗷嗷一区二区| 98精品国产乱码久久久久久| 亚洲综合九| 精品无码一二三四区| 偷拍亚洲高清图片| 大屁股国产在线视频| 欧美一品道| 久久久九| 亚洲一区二区 麻豆传媒| 东京热av男人的天堂| 东北老女人的激情视频| 超碰人妻中文在线| 蜜臀一二三区| 黄骗免费网站| 日韩一性一交一A片俄罗斯| 波多野结衣先锋影音| 日本三级R| 长长久久曰曰夜夜成人网| 国产熟女完整版中字| 亚洲砖码砖专无区2023| 淫荡少妇免费| 中文字幕在线播放2中文字幕在线观看2 | 日日夜夜国产综合| 久久久月天| 蜜臀99久| 亚洲一欧洲中文字幕在线 | 操逼不卡中文字幕| 色综合色| 欧美性爱网97| 久久区| 成年人三级黄色片视频| 丁香九月激情啪| 97视频观看| 丰满精品人妻少妇久久字幕| 上床啊啊啊| 青青草原成人| 黄片www视频免费| 天天狠操| 一道本久久棕合爱| 后入式999| 男人的天堂久久久| 韩国黄片aaaa| 91人妻超碰| 少好三P| 2021国产成人精品久久| 国产午夜精品在线观看| 欧美日本一区二区a人| 欧美日韩在线国产在线| 在线啊啊啊啊| 亚洲av噜噜噜噜噜噜| 日日操丁香五月天| 江都AV在线| 久久111| 欧美激情亚洲| 色婷婷一区二区三区久久午夜成人不| 人人爱人人乐人人操| 屁屁影院一区二区三区国产| 国产精品高潮久久AV| 丝袜美腿丝袜| 爱媛媛久久国产福利| 激情露脸爱| 久久久涩| 好吊色综合| 人妻精品一区二区在线| 国产视频小说| 亚洲 欧美 日韩 国产一区二区| 日本三级R| 国产AV天美| 亚洲伊人成综合成人网| 依人大香蕉| 韩国毛片一区二区三区| 亚洲男人综合| www.狠狠干.coom| 在线播放欧洲免费av| 性色生活片久久毛片婬片免费放女人一级毛片 | 制服诱惑亚洲一区二区三区在线观看| 天天躁日日躁AAAAXXXX国产 | 日本高清有码网址视频| 91欧美丨精品丨入口| 国内偷拍精品一区二区| 黄色一级视| 久久欧洲| 边做饭边操逼逼| av影片在线观看不卡| 久久激情五月| 97久久国产精品| aaaa黄片| 一起草视频在线| 国产91久久九九免费精品无码| 亚洲视频一二区| ,成人免费啪啪视频| 去干网最新版| 日韩天天综合| 婷婷色色五月| 中文乱码字幕观看| 天操老女人| 少妇人妻好深太紧了vr91| 91天天综合网,天天综合网| 夜草网站| 东北女人操比视频| 破苞ⅩXXX性无码动漫无码| 91天天美女| 91|九色|国产熟女| 青草一区二区| 亚洲 另类 丝袜 自拍 动漫| 亚洲精品影视老司机| 夜夜做夜夜爽精品视频| AV九九| 精品无码秘 人妻一区二区 | 五月丁香婷婷啪啪| 日韩亚洲欧美中文字幕| 久九9精品| 日本高清一区二区在线| 欧美姓爱综合网| 青青草视频爽一爽| 国产熟女免费观看久久| 亚洲全色网| 男女激情中文字幕| 久久精品性| 超碰97久| 淫淫总合网| 免费自拍三级综合| 大香蕉2017| 少妇 综合| 性爱综合一区二区| 九九热精品视频六| 一区二区三区激情在线观看| 国产成人五月天丁香花| 五月天综合网| 国产精品无码AV网站| 搡老女人老91二区| 中出后入| 18精品一区| 手机在线视频国内精品| 婷婷超| 日韩欧美麻豆| 欧美少妇色综合| 亚洲色图欧美| 亚洲黄色网址| 欧美中文字幕男人天堂久久精品| 久久综合亚洲色1080p| 香港日本韩国人妇99www.wccm20| 国产乱伦一二三区| 北约熟女超碰| 国产亚洲精品一区二区三区| 视频二区美腿制服人妻欧美| 九九亚洲精品| 116美女午夜| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 97超碰精品图片| 啊啊啊啊二区好大| 欧美 中文字幕 一区| 操逼操网| 成人性爱视频在线看| 超碰91在线| 国产精品69久久久久久久| 91欧美偷拍| 玖玖在线视频| www久久99| 人人射人人操人人摸| 97色伦97色伦国产欧美| 国产日韩久久| 欧美裸体美女日麻屄| 呻吟 欧美 日本 中出| 又黄又粗又硬又长又大| 99这里有精品| 91N欧美| aaa一级黄片| 五月天玖玖资源站| 乱伦图av| 欧美亚洲第一页| 强奸乱伦大香蕉| 搡老熟女免费视频 | 激情小说亚洲| 亚洲男人电影天堂| 色综合加勒比| 人妻少妇久久中文字幕一区二区 麻豆 | 91爱综合| 九月丁香婷婷| 蜜桃在线观看一区二区三区| 久久久9视频| 男人的天堂2018东京热啪啪啪| 五月丁香影院| 99欧美| 精品国产片亚洲一区| 粉嫩av在线一区二区| 岛国AB视频| 欧美专区日本专区| 操逼网站地址| 夜夜中出国产| 亚洲国产剧情少妇激情| 欲香欲色天天天综合和网| 九九夜精品九九在线| 91久久18禁| 欧美暴力猛交| 97久久国产亚洲精品超碰热| 国产sv美女内射| 久久超碰com| 97欧美综合| 亚洲色狠| 亚洲国产一区二区入口| 亚洲av淫乱| 可以免费观看的av| 黄色十八禁网站| 成人热久久精品| 美女丝袜激情小说| 亚洲在线91| 亚洲日韩av专区无码| 国产91会所女技师在线观看| 色一色综合网| 后入美女国产| 日韩不卡网操逼中文字幕日韩| 欧美色图在线视频少妇| 九九九九精品精| 日韩在线地址一| 国产三级多多影院2022国产AA一级毛片无码 | 伊人欧美大香蕉视频| 久久久青青草| 成人av福利在线观看| 久久夜黄色无码A级大片| 色色五月婷| 东京热一区二区三区四区五区六区| 欧美亚洲AN| 日本幼女18+| 久久大| 日韩亚洲中文字幕在线| 九九综合| a片亚洲一本通视频| 欧美精品庄| 亚洲自拍天堂| 91久久国产综合久久| 北条麻妃性愛视频| 青青久久艹| 在线国产福利网址导航| 有码人妻系列| 91老司机精品| 91动漫操逼视频| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 风间由美日韩欧美久久| 天天色,天天干,天天干| 热天堂一区二区| 青青青草原| 美日韩男女操屄视频| 日韩av在线播放不卡| 美日韩一卡二卡三卡免费人妻精品| 亚洲成人妻日韩在线| 中文字幕乱亚洲美女精品一区| 国产免费操逼| 激情四射五月天| 久久性爱视频免费看| 韩国一级做A片免费的| 亚洲成人精品久久久| 亚洲高清91| 九九综合久久| 久热这里| 国产福利影视| 精品国产乱码久久久影院| 中文字幕在线观看永久| 亚洲、日韩、综合、另类| 91老司机精品| 精品一区二区啪啪啪| 超碰在线日韩一区| 亚洲欧洲国产综合av| 久久久久久久久久久久久久久久9 亚洲成人妻日韩在线 | 亚州宗合另类| 亚洲天堂男| 91九九| 99re6在线视频播放免费精品| 欧美操逼熟女| 呻吟 欧美 日本 中出| 中文字幕亚洲永久精品| 久久少妇人妻| 操逼视频亚洲| 欧美激情一| 公司1区2区3区精产精| 天天干干天天干干| 久草男人天堂| 国产女人操逼视频| 国产中午字一暮区| 天天爱天天韩国日本牛牛牛牛| 东京热AV男人的天堂| 搡老熟女老女人老熟妇免费视频| 后入福利| 国产成人亚洲精品自产在线 | 日本高清一本二本免费不卡| 一级久久久久久久久久久| 亚欧美综合网。| 欧美视频一区二区在线| 美女天天干| 五月丁香| 伊人天天久久动态图| 91久久精品国产| a片自拍直播视频| 欧美大香蕉97| 操高情无码| 91中文字幕在线观看| 99热在线播放| 欧美成年人性爱视频免费观看| 在线啊啊啊啊| 欧美另类精品xxxx| 欲色综合| 78久久久| 天天弄天天操| 蜜乳AV.COM| 日韩 女同 综合| 色婷婷导航| 五月婷亚洲精品天堂| 亚洲一区二区中文字幕| 日韩猛交| 97色色国产视频| 美女写真| 青青草福利视频| 少妇人妻精品| 一区在线观看中文字幕| 97在线视频免费观看| 美女淫穴| 婷婷激情啪啪| 伦激情人妻另类人妻| 亚洲在钱| 国产suv精品一区二区四| 91香蕉视频在线观看免费| 超碰综合97在线| 天美传媒av 在线| 亚洲一级性爱视频免费看| 精品制服美女中文一区二区三区| 日韩乱码av| 加勒比在线观看一区二区| 五十路熟女在线不卡观看一区二区| 天天爽爽爽爽| 333kkkk·亚洲com久久| 亚洲欧美天堂| 久久9精品网站| 毛片久久| 999国产精品999久久久久久| 欧美性生活内射| 成人情色一区二区| Blackedraw视频一区二区| 91美女视频在线观看| 午夜无码熟妇丰满人妻| 亚洲一区二区三区麻豆传媒| 丁香五月激情综合| 欧美黑人精品一区二区| 久操操AV电影| 91搡老女人老妇女老熟女歌词翻译| 欧美色综合图片| 久久发布国产伦子伦精品| 亚洲 欧美 手机在线观看| 亚洲伊人久久综合97| 亚洲激情欧美色图| 加勒比AV天堂| 日韩少妇丰满亚洲| 亚洲熟妇丝袜在线观看| 狠狠干,狠狠操| 多乙久久久久久| 天天懆天天日| 久久这里只精品免费福利| 精品对白久久不卡| 亚洲清纯综合| 国产又长又大又粗的视频| 伊人久久青青草| 丁香五月婷婷基地| 午夜免费福利视频一区| 每日更新AV| 国产东北女人在线视频| 又粗又长又爽在线观看| 91丨九色丨国产丨人妻在线| 四虎国产精品永久在线囯在线| 精品对白久久不卡| 久久久久久九| 欧美中文字幕精品人妻| 麻豆天美一区二区| 欧美中文综合| 女色综合| 国产精品第一区第一页| 人人性爱视频免费| 亚洲无无码αⅴ每日更新| 呦呦一区| 韩日色费| 中文字幕交换人妻| 日本操BAV| 亚洲最大网站av| 亚洲一区二区三区欧美日韩| 综合网色| 水野优香在线观看| 顶级少妇BT天堂| 亚洲男人天堂网久久| 91麻豆天美传媒HD| 欧美久久久| 亚洲人人夜夜澡人人爽| 深夜激情| 97免费在线| 亚洲**2021在线观看| 国产成人无码a| 狠狠色狠狠色狠狠五月| 免费操逼视频下载| 欧美日韩丝袜 | 亚洲色欲天天人妻无码系列专区| 日本99视频| www老逼91| 精品然女一区二区| 一摸二插三插| 九九九久久久| 日本三级A片网站com| a天堂视频| 午夜丁香婷婷| 国产精品久久泡妞网站| 中文字幕一区二区韩| 国偷自 一区| 九久9热| 粉嫩不卡一区二区性爱| 夜夜嗨视频| 欧美色图99| 在线黄色污污网站| 亚洲精品丝袜| 99热| www超碰| 国产高清免费不卡av| 97国产人人| 极品美女嘿咻| 骚货 中文字幕 av| 韩日巨乳美女免费视频在线观看| 九色 人妻 大香蕉| 五月综合久久| 一区二区三区激情在线观看| 国产精品无码av嫩草| 精品综合久久久久久五月天| 欧美性爱一区二区三区| 国产后入清纯| 国产第11页| 日韩钢筋无码高清啾啾啾| julia高潮后不停追击中出| 91小视频| 播播亚洲小说亚洲| 国产人妖视频一区在线观看| 被男人吃奶很爽的毛片| 精品国产一区探花在线观看| 97视频在线播放| 超碰99在线| 91老妇女| www.人人摸在线视频| 亚洲日韩久久精品一区| 亚洲欧洲第二视频在线观看色图| 日本一区99| 国产熟女一区二区丰满| 亚洲色图欧美色图制服丝袜 | 超碰美国| 97亚洲中文| 91熟女丨老女人| 精品人妻一区二区三区不卡断 | 日本在线一二 | 夜夜天天噜狠狠爱2021| 国产中文大片资源中文字幕| 久久无码成人| 麻花传媒免费网站在线观看| 404操逼福利视频| 日本操逼视频导航| 91三级理论片播放器| 国产精品自在线发布| 国产美女mm131爽爽爽爽| 九色在线熟女国产黑人| 伊欧美综合视频| 精品少妇一区二区三区在线视频| 9色在线| 九九RE视频在线精品| 色婷婷综合网站| 五月天婷婷色| 干B视频伊人网| 操学生天天| 国产精品久久久久久久久久久久久久久久 | 99热亚洲天堂| 午夜精品久久久久久久99热影院| 91精品婷婷国产综合久久竹菊| 久久99精品九九久久久婷婷| 欧美草草| 国产97免费视频| 国产亚洲色停停久久99精品91| 激情五月综合开心五月| 强奸乱伦Av网| 五月综合久久| 亚洲日韩青青草色月| 91欧美性| 97视频免费播放| 狠狠色伊人亚洲综合网站色| 国产操逼逼网| 一区二区日韩欧美久久| 久久久久久久久久久久久久久乱码 | 操逼日批| 国产超碰人人操| 97天天爽| 久草精品视频| 熟妇熟女一区二区三区| 久久精品久久久久久久久| 性影在线视频| 亚洲色色色| 四虎AV影视国产精品亚洲精品| 99热日| 国产久久久| 国内毛片婷婷六月色| 91久久久久久| 亚洲大色堂| 91色欧美| 波多野结衣被操50分钟免费视频| 国产99 中文字幕日韩小视频| 欧美三级一级| 人妻少妇无码 | 中文字幕一区二区免费在线| 亚洲色五月| 蜜臀AV成人精品蜜臀| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 性爱网站一区二区| 丁香五月激情啪啪| 久久大陆| 黄片免费日韩| 色情五月丁香| 99re这里| 人人操人人爽人人操人人| 91干熟女| 和协影院中文字幕三区| 国产日本一区二区三区蜜臀在线观看| 成人美女av| 欧美综合第一| 少妇蹲下露出大唇5| 无码精品一区二区三区潘金莲| 91色艳| 新怡红院| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 欧美v日韩v亚洲v最新在线| 手机看片1025| 国产偷人妻精品一区二区在线| 97精| 日韩成人精品中文字幕| 亚洲在钱| 无套内射人妻在线播放| JULIA人妻风俗店中出电影| 久久久久女教师免费一区| 福利视频一区二区微拍| 91色图片| 偷拍偷窥与盗摄视频专区| 五月天激情小说| 另类老少妇| www.91理论| 国产美女口爆吞精| 国产美女口爆吞精视频| 熟女丰满人妻一区| 天天射日日干| 婷婷丁香六月| 精品一区二区三区蜜桃| 亚洲中文一区二区三区视频| 欧美91久久久久| 中文字幕丝袜国产第一页不卡| 久久九九一区二区三区成人| 亚洲av噜噜噜噜噜噜| 久久香蕉国产传媒一区剧情天美| 男人的天堂VA| 深爱激情五月天| 伊人九九| 日日日日日| 久九色| 青青11操操操操操操操操| 伊人麻豆传媒| 这里有精品| 加勒比海色香蕉婷婷| 麻豆久久久一区二区| 亚洲人妻精品一区二区| 夜夜肏2021| 91操熟女| 久久嫩草国产成人一区| 黑人精品XXX一区一二区| 国产婷婷一区| 久久精品国产99精品亚洲蜜...| 97色视频在线| www.91理论| 乱色老一区二区三区的观看方式 | 亚洲欧美成人网站AAA| 素人美腿视频网站| 亚洲啪啪视频免费| 久噜噜| 1禁看欧美黄片免费看| 久久久久极品| 91久久婷婷| 久久久96| 色狠人在线99| 国产51色综合久久免费| 青青青草原| 婷婷久久综合| 一级黄色性爱裸体视频| 欧美色图成人网一区二区 | 丁香五月综合| 91狠狠综合久久| 亚洲美女精品| 国产精品亚洲高清在线| AV天黑人| 精品久久久av| 丰满人妻一区二区三区四区| 视频在线97| 超碰日本97美女人妻人人玩人人爱| 美女被啪到深处抽搐视频| 9999亚洲电影| 国内毛片免费h片在线| 夜夜欢天天干| 嗯嗯啊好大| 偷看洗澡一二三区美女| 国内伊人久久久久久网站视频| 蜜臀99999| 九九综合久久| 亚洲天堂久久久久久粉红视频| 青青草乱入乱欲视频在线观看| 欧美精品自慰系列寂寞少妇| 久久久精品网站| 亚洲宗合网| 女优视频第10页| 国产传媒午夜理伦精品| 天美传媒精品久久视频| 欧美久久婷| 成人免费不卡在线视频| 国产高清亚洲日韩一区| 日本黄色XXX| 嗯嗯嗯嗯啊啊啊好紧好大| 亚一综合久久久久久久久久| 男人精品区| 加勒比伊人综合| 蜜臀久久久久久999| 18禁精品网站在线看| 久久尹人大香焦视| 少妇内射视频| 日本美女性生活久久久久久久 | 综合久久中文字幕综合日韩精品| 日韩免费a级毛片无码a∨| 玖玖爱伊人玖玖爱| 欧美日韩国第一区| 玖玖婷婷五月天| 熟女五十路一区二区三| 蜜臀久久99精品久久久久久无删减 | 男人的天堂va在线| 精品美女久久一二三| 91精品国产综合久久久蜜臀| 国产精品久久久久久久久AV大片| 最近2018中文字幕在线高清第一页| 欧美,日韩,中文,另类| 91亚洲影院综合| 2010男人的天堂| 女同性恋久久| 亚洲一区二区三区中文字幕| 在线日韩日本亚洲国产| 又黄又硬又粗又长国产视频| 精品乱码久久久久| 欧美永久激情一区二区| 床上啊啊啊一区二区三区| 黄片无码在线制服| 亚洲色系另类精品国产| 亚洲精品久久久久毛片A片拉屎 | 国产一区二区三区中文字幕| 亚洲最大无码中文字幕网站| 亚洲欧美在线观看免费| 欧美熟妇成人一区二区| 99久久99久久免费精品蜜臀| 欧美三级偷拍| 日本不卡免费二区| av东京热男人的天堂| 欧亚第一综合网| 91九久| 欧美后进式| 激情综合色| 亚洲精品成人激情在线| 在线综合色| 伊人网综合在线视频| 精品日韩中文在线| 1769国内精品视频| 日本高清免费一本视频在线观看| 无码人妻精品酒店| 青草综合| 在线97视频| 97干在线| 日韩无码一级黄色av片| 操国产高清| 亚洲综合999| 天天综合亚洲综合| 97精品免费| 亚洲欧美999| 91无码西班牙视频在线| av黄图片在线观看| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 亚洲影视综合| 亚洲国产精品成人久久蜜臀| 亚洲色图欧美一区二区不卡| 电家庭影院午夜69久久夜色精品国产69乱 | 久久久久免费看少妇A片特黄| 青草草免费网站av| 中国大陆国产高清AⅤ毛片| 日本免费一级AAA大片器 | 国产三级中文有码在线视频| 亚洲av影院在线观看| 国产精品自在自拍视频| 91人妻Pr| 久热免费视频| 在线啊啊啊啊| 天天做天天爱天天爽AV| 久久99精品国产| 欧美日韩97在线| 伊人欧美大香蕉视频| 久久久久久久| 99人妻碰碰碰久久久久禁片| 五十路六十路七十路熟婆| av天堂精品久久| 国人欧美精品一区二区| 大香蕉九九| 国产精品肉丝自拍| 男人天堂综合| 91痴汉| 日本不卡二区| 午夜无遮挡男女啪啪视频| 国产精品欧美日韩久久| 噜噜噜无码AV一级一级久久影院| 色丁香五月婷婷| 欧美亚洲丝袜美女电影| 成人黄页| 久热这里只有精品9| 人妻色偷色噜| 一区二区三区免费岛国片| 免费观看啪视频| 久久伊人在线五区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 啪啪性爱免费视频| 国产精品探花视频| 99少妇精品视频| 青青草字幕AV| 青草精品视频日本久久久久网站在线| 美日韩男女操屄视频| 亚洲乱码国产乱码精网站| 天天干天天拍| 日本淫穴在线| 成人怡红院| 国产网红精品| 91亚洲人电影| 久久妇| 日本一道在线播放高清| 51一区二区三区| 色色色色色色色色色色色色色色综合 | 中文字幕国产| 狠狠久久亚洲欧美专区| 青青草成人视频在线观看二区| 91色欧美| 操逼啊啊啊91| 久无码| 亚洲清纯综合| 18啪啪手机免费性爱| 久久女婷| 丰满人妻一区二区中文| 欧美黄页| 国模精品一区二区三区苹果色戒| 91日日| 欧美色乱| 国产精品青草综合久久| 国产女同性恋视频| 蜜臀99久久精品久久久懂爱| 亚洲制服欧美另类内射| 国产污视频麻豆传媒一区二区| 青草伊人网| 亚洲av综合色| 91色五月俺来也| 久操免费观看| 亚洲欧洲日韩国产自在线| 后入人妻一区| 欧美色图亚洲色| 无遮挡猛进视频免费无限观看| 成人熟女视频一区二区三区| 麻豆av一区二区| 日韩av在线免费网站| 亚洲美欧999| 九九九九九九视频免费| 久久亚洲av成人无码国产| 伊人操操| 激情小说日韩无码| 中文字幕二区日韩天堂| 少妇高潮一区二区三区在线| 高清成年美女黄网站免费大全| 男人的天堂2018.| 欧美91变态| 中文字幕 国产 精品| 成人精品视频| 福利操逼| 嗯嗯啊好大| 欧美自拍偷拍综合图片| 操我啊啊啊啊啊| 亚洲日韩天堂| 欧美色图天堂在线| 東南亚性呦成人伦理资源在线视频| 日本色色色视频| 白丝在线一区| 草草影院最新网址| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 亚洲国产成人精品999| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚州高清AV| 欧美日韩中文亚洲v在线综合| 中文一区在线日| 国产99精品一区二区三区免费| 夜夜狠狠躁日日躁色视频| 一级性爱视频免费观看 | 一区二区你上我| 欧美96精品在线| 久久天堂婷婷网| 大奶的诱惑| 翘臀vidoes| 91肉片| 亚洲综合在线高清| 欧美gv在线观看| 欧洲精品一区二区三区| 性爱视频啪啪啪啪| 欧美综合 站| 天天色综亚洲91污| 婷婷10月天青娱乐| 丁香婷婷色五月| 四虎精品一区二区| 免费看美国人人爽,人人操| 亚洲欧美综合| 久草精品国产蜜臀 | 久久九九国产精品| 超碰9 7女人| 激情五月婷婷| 中文字幕99999| 日韩精品高清资源在线| 亚洲国产av中文字幕久久| 美女诱惑在线一区| 激情接吻视频久久久久久| 老鸭窝成人| 国语人妻精彩刺激| 日韩熟女操逼| k频道色撸撸| 99日韩| 国产强奸乱伦第1页| 熟女自慰久久久| 蜜乳Av成人片网站| 97精品视频在线播放| 丰满人妻一区二区三区| 国产肏逼网站| 久久99草| 婷色五月| 影音先锋日本乱伦| 看看日B真人视频| 亚洲色图欧美色图另类图片| 性色中出| 蜜乳AV网址| 国产400孕妇孕交群| 一区 欧美 日韩 麻豆| 自拍偷拍 高清无码| 亚洲小说视频| 欧美 综合| 色牛牛AV| 草草电影院| 国产精品乱码久久久久久| 任你艹| 秋霞操逼片| 夜夜嗨一区二区三区三州加勒比| 亚洲麻豆精品二区三区| 亚洲图片婷婷五月天| 精品国产99999| 久久综合精品一区二区三区| 在线人人人人人人精品超| 久久69| 亚洲drav色图| 久久超碰爱| 2021久久国产综合精品青草| 久久这里只有精品9| 亚洲美女 晚间男人天堂 | 9久超碰| 欧美操逼熟女| 亚洲综合首页| 97天天插| 欧美美女在线高潮999| 国产又爽又黄| 国产日韩欧美操逼视频| 懂色Av一区二区三区| 91久久堂| 嗯啊免费视频| 久久精视频美日韩在线视频| 国产精品不卡av免费在线观看| 情色五月天就去干| 亚洲影院小综合| www.婷婷六月天| 一区二区三区 日韩欧美| 韩国一级做a久久久久| 嗯嗯嗯啊啊在线观看| 躁躁日曰躁2020| 久久男人的天堂国产| 综合自拍| 国产成人午夜视频网址| 97超碰站| 大香蕉中文201| 超碰精品人妻狠狠干| 亚洲综合性感在线| 九九色色| 久操大香蕉| 亚洲AV无码黄色强奸| 黑人精品一区二区在线播放| 久久久偷拍| 九九热午夜欧亚国产视频| 91成人在线| 午夜天天碰综合视频| 成人看片网站| 国内自拍 日韩激情 99| 免费一级黄色录像影片| 91福利网在线观看| 精品亚洲天堂| 97久久久久| 好湿好紧视频| 免看60秒涩涩视频| 超碰无码五月97| 中文字幕-区二区三区四区视频中国| 亚洲日韩肥臀视频在线观看| 狠狠色丁香| 亚洲成人综合在线| 久久一区二区三区入口| 亚洲va有码在线天堂| 日韩无码精品综合久久| 日韩国产精品人妻无码久久久| 天天干电影| 亚洲精品人体| 玖玖久久久| 欧美啪啪色吧在线| 亚洲欧美91| 日日夜夜骑| 欧美精品激情| 中文区中文字幕免费看| AV天堂因数| 超碰97COm中文| 青青青青青手机视频| 久午视频| 亚欧美色| 免费AV中文网在线观看| 国产精品午夜AV完会免费| 麻豆天美传媒毛片| 日韩亚洲欧美中文字幕| 国产精品ww久久| JIZZJIZZ亚洲女人被躁| 超碰在线人妻中文字幕| 色婷婷六月丁香七月婷婷| {男男暴菊gay无套网站| 亚洲国产精品成人综合| 国产日逼视频| 亚洲暴力强奸AV| 国产精品午夜高潮呻吟久久av| 国产人妻天天干精品| 欧美日韩第一页| 婷婷色色五月天| 91人妻人人妻| 99999精品成人| 97免费免费视频网| 天天综合网~91综合网| 黑人粗大V S日韩女优视频| 日韩乱码Av| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产精品女同| 熟女色图在线| 岛国不卡超碰护士AV在线播放| 女同性恋中文字幕| 97Ai亚洲| 人妻色偷色噜| 亚洲精品无码久久AV| 亚洲熟女中文字幕在线| 少妇二级| 夜夜国产一区| 久久亚洲日韩国产欧| 欧美宗合网| 香伊人在线| 日本性爱少妇| 嗯啊不要在线| 黑丝日韩av丝袜av| 欧美爱国产综合、| 超碰95| 九月丁香婷婷色| 亚洲超碰在线| 欧美 中文字幕 一区| 青青伊人久久| 淫淫综合网| 亚洲成aⅴ人片不卡无码| 久久久久成人亚洲国产| 九九九九九九九精品视频| 啊啊啊啊啊在线视频| 久久人妻一区二区三区高清| 亚洲天堂2020| 国产精品亚洲一级av第二区| 亚洲成人免费在线| 成人女人国产| 夜夜嗨一区二区三区三州加勒比| 操东北女人| 熟女字幕| 亚洲91av| 久久久久久久综合,国产| 色欲av国内精品久久久久久| 免费观看国产不卡av| 9 9精品一区二区三区| 国产白丝在线| 天天92av| 3P乱轮视频| 九九玖玖精品| 青青草影视蜜久久| 秋霞一级鲁丝片A片| 成人片在线播放| 久久久久亚洲一区女同性恋中文字幕| 精品无av| 女人被男人桶爽视频网站| 婷婷综合视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 女同女同恋久久级三级| 91白虎| 国产一进一出视频网站| 日本三级中国三级99人妇网站| 一本久久精品中文字| 91日韩| 亚洲国产一区二区三区四区国产| 75大香蕉| 射综合网| 探花精品视频| 97一本大道亚洲一区| 91亚州| www久久99| 嗯嗯嗯啊啊啊干死我吧| 精品免费视频国产一区| 伊人五月天| 97精品中文字幕| 高清国产无码av| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 国产又黄又粗的视频| 人妻加勒比东京热| 欧美精品系列| 91强热人妻| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 成人一道本免费视频| 久久久一区二区三区四曲免费听| 中文字幕无码不卡啪啪| 欧美日韩不卡a片| 大香蕉欧美伊| 日韩三级伊人| 久久久爆乳翘臀一线天伦理视频| 2020中文字幕在线| 在线观看成人性爱免费小视频| a男人的天堂| 久久久久亚洲| 女优免费一区二区永久| 91欧美情色| 日韩乱插| 亚洲精品蜜桃久久久| 成人美女av| 九九九九97| 少妇高潮对白在线观看| 久久久九九九九| 午夜视频好爽啊|