久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

固定資產(chǎn)管理系統(tǒng)Java源碼解析:基于SSM框架的完整資產(chǎn)全生命周期實(shí)現(xiàn)

固定資產(chǎn)管理系統(tǒng)Java源碼解析:基于SSM框架的完整資產(chǎn)全生命周期實(shí)現(xiàn) 簡(jiǎn)介固定資產(chǎn)管理系統(tǒng)Java項(xiàng)目源碼以完整源代碼形式提供了一套基于Java技術(shù)開發(fā)的資產(chǎn)管理系統(tǒng)覆蓋固定資產(chǎn)的增、刪、改、查、采購(gòu)入庫(kù)、分配折舊、盤點(diǎn)報(bào)廢等生命周期管理功能并支持通過ODBC配置靈活切換SQL Server、MySQL、Oracle等數(shù)據(jù)庫(kù)具備良好的跨平臺(tái)與擴(kuò)展性適合Java Web開發(fā)者學(xué)習(xí)數(shù)據(jù)訪問層與業(yè)務(wù)邏輯設(shè)計(jì)也可作為企業(yè)資產(chǎn)管理系統(tǒng)的定制模板。壓縮包共606個(gè)文件、約8.73MB其中包含131個(gè)Java源文件、177個(gè)編譯后的class文件、59個(gè)JSP頁(yè)面以及42個(gè)jar依賴庫(kù)和多個(gè)tld、dtd、xml配置文件源碼與頁(yè)面分層清晰便于按模塊閱讀和二次開發(fā)。包內(nèi)附帶的“必看.pptx”介紹了系統(tǒng)架構(gòu)、功能模塊、數(shù)據(jù)庫(kù)表結(jié)構(gòu)及ODBC連接配置步驟可幫助快速理解運(yùn)行機(jī)制并上手實(shí)踐。已有1686人學(xué)習(xí)下載是從代碼層面掌握固定資產(chǎn)全流程管理、提升Java Web綜合開發(fā)能力的實(shí)用資源。1. 固定資產(chǎn)管理系統(tǒng)一個(gè) Java 項(xiàng)目源碼包解決的不只是臺(tái)賬問題如果你在找資產(chǎn)管理系統(tǒng)大概率是兩種處境之一公司 Excel 臺(tái)賬越記越亂資產(chǎn)標(biāo)簽貼了又丟年終盤點(diǎn)全靠人肉對(duì)賬或者你是個(gè)開發(fā)者想找一個(gè)完整的 Java 項(xiàng)目來改造卻總在「代碼太老跑不起來」和「功能太簡(jiǎn)單沒參考價(jià)值」之間來回橫跳。這個(gè)固定資產(chǎn)管理系統(tǒng)源碼包屬于后者里難得讓我愿意多看幾眼的它不只是一個(gè)能增刪改查的 CRUD 架子而是把資產(chǎn)從入庫(kù)、領(lǐng)用、歸還、調(diào)撥到盤點(diǎn)、報(bào)廢的完整生命周期都串了起來并且?guī)Я藱?quán)限控制和報(bào)表導(dǎo)出。適合兩類人一類是有 Java Web 基礎(chǔ)、想拿真實(shí)業(yè)務(wù)練手的學(xué)生或初級(jí)開發(fā)另一類是真想給內(nèi)部做個(gè)資產(chǎn)管理后臺(tái)、但不想從零開始的中小企業(yè)技術(shù)負(fù)責(zé)人。我拆過不少這類項(xiàng)目很多號(hào)稱「管理系統(tǒng)」的源碼其實(shí)只是把幾個(gè)頁(yè)面拼在一起點(diǎn)開一看業(yè)務(wù)邏輯薄得像層紙。這份源碼的厚度不太一樣資產(chǎn)編號(hào)生成規(guī)則、領(lǐng)用審批流程、盤點(diǎn)差異處理這些細(xì)節(jié)都有落地實(shí)現(xiàn)。接下來我會(huì)從架構(gòu)、核心代碼、踩坑記錄到二次開發(fā)把這份源碼從頭到尾捋一遍你可以邊看邊對(duì)照自己手頭的需求看看哪些模塊能直接拿來用。2. 技術(shù)選型與項(xiàng)目結(jié)構(gòu)一個(gè)典型 Java Web 工程的骨架長(zhǎng)什么樣2.1 后端技術(shù)棧為什么選 SSM 而不是 Spring Boot這個(gè)項(xiàng)目的后端是基于 SSM 框架搭建的也就是 Spring Spring MVC MyBatis 三件套的組合構(gòu)建工具用的是 Maven數(shù)據(jù)庫(kù)是 MySQL前端是 JSP JSTL 配合 AdminLTE 這套開源后臺(tái)模板??赡苣銜?huì)問現(xiàn)在新項(xiàng)目不都用 Spring Boot 了嗎為什么還要看 SSM我的判斷是這正是這份源碼的價(jià)值所在——它不像 Spring Boot 那樣把大量配置自動(dòng)隱藏了而是把數(shù)據(jù)源、事務(wù)、攔截器、MyBatis 映射這些底層細(xì)節(jié)都顯式地暴露在 XML 和配置類里。你拿到手之后能清楚地看到每一個(gè) Bean 是怎么裝配起來的MyBatis 的 Mapper 是怎么和 DAO 層關(guān)聯(lián)的這對(duì)于理解 Java Web 項(xiàng)目的運(yùn)行機(jī)制比直接用 Boot 更有效。另外從改造成本來看SSM 項(xiàng)目遷移到 Spring Boot 其實(shí)不復(fù)雜核心業(yè)務(wù)代碼基本不用動(dòng)只要把 Spring 和 MyBatis 的配置換成 Boot 的自動(dòng)配置再調(diào)整一下依賴就行。所以不要因?yàn)榧夹g(shù)棧不是最新的就把它劃走這套源碼的架構(gòu)思路是通用的你把它吃透了換個(gè)框架只是順手的事。2.2 目錄結(jié)構(gòu)從 controller 到 mapper 的完整分層解壓源碼包之后你會(huì)看到典型的 Maven 工程結(jié)構(gòu)。我建議你先不要急著去看代碼先把目錄捋一遍搞清楚每個(gè)包是干什么的這樣后面讀代碼的時(shí)候心里有數(shù)。src/main/java ├── com.company.asset │ ├── controller // 控制層接收請(qǐng)求、參數(shù)校驗(yàn)、返回視圖 │ │ ├── AssetController.java │ │ ├── CategoryController.java │ │ ├── DeptController.java │ │ ├── UserController.java │ │ ├── BorrowController.java │ │ ├── ScrapController.java │ │ ├── CheckController.java │ │ └── ReportController.java │ ├── service // 業(yè)務(wù)層事務(wù)邊界、業(yè)務(wù)規(guī)則 │ │ ├── AssetService.java │ │ ├── AssetServiceImpl.java │ │ ├── UserService.java │ │ └── ... │ ├── dao // 數(shù)據(jù)訪問層MyBatis mapper 接口 │ │ ├── AssetDao.java │ │ ├── CategoryDao.java │ │ ├── DepartmentDao.java │ │ ├── UserDao.java │ │ └── ... │ ├── entity // 實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫(kù)表 │ │ ├── Asset.java │ │ ├── Category.java │ │ ├── Department.java │ │ ├── User.java │ │ ├── Borrow.java │ │ └── ... │ ├── vo // 視圖對(duì)象承載組合查詢結(jié)果 │ │ ├── AssetQueryVO.java │ │ └── ReportVO.java │ ├── interceptor // 攔截器登錄校驗(yàn)、權(quán)限控制 │ │ └── AuthInterceptor.java │ ├── util // 工具類編號(hào)生成、Excel 導(dǎo)出 │ │ ├── AssetCodeGenerator.java │ │ └── ExcelUtil.java │ └── config // 配置類 │ └── SpringMVCConfig.java ├── resources │ ├── spring-context.xml │ ├── spring-mvc.xml │ ├── mybatis-config.xml │ ├── jdbc.properties │ └── mapper │ ├── AssetMapper.xml │ ├── CategoryMapper.xml │ └── ... └── webapp ├── WEB-INF │ ├── views │ │ ├── asset │ │ ├── borrow │ │ ├── check │ │ ├── report │ │ └── system │ └── web.xml └── static ├── adminlte ├── css ├── js └── images這個(gè)分層是教科書式的經(jīng)典結(jié)構(gòu)Controller 只負(fù)責(zé)接收參數(shù)和返回視圖業(yè)務(wù)邏輯全部收斂在 Service 層DAO 層只做數(shù)據(jù)讀寫。我當(dāng)時(shí)看代碼的時(shí)候特別注意了一下事務(wù)注解發(fā)現(xiàn)Transactional是放在 ServiceImpl 類上的這符合 Spring 官方推薦的做法——事務(wù)邊界應(yīng)該定義在業(yè)務(wù)邏輯層而不是控制層。多層結(jié)構(gòu)帶來的一個(gè)好處是如果你想把 JSP 換成 Vue 接口模式只需要改 Controller 層的返回邏輯把 ModelAndView 改成ResponseBody返回 JSONService 和 DAO 層可以完全復(fù)用。數(shù)據(jù)庫(kù)腳本在sql目錄下一共 8 張核心表t_asset資產(chǎn)主表、t_category分類表、t_department部門表、t_user用戶表、t_borrow領(lǐng)用/歸還記錄表、t_borrow_item領(lǐng)用明細(xì)表、t_check盤點(diǎn)記錄表、t_scrap報(bào)廢記錄表。表之間的關(guān)聯(lián)關(guān)系是資產(chǎn)屬于某個(gè)分類和某個(gè)部門領(lǐng)用記錄關(guān)聯(lián)資產(chǎn)和用戶盤點(diǎn)記錄關(guān)聯(lián)資產(chǎn)和盤點(diǎn)結(jié)果。字段設(shè)計(jì)的細(xì)節(jié)我在后面核心模塊里展開講。3. 核心模塊拆解資產(chǎn)從入庫(kù)到報(bào)廢的完整生命周期3.1 資產(chǎn)臺(tái)賬模塊編號(hào)自動(dòng)生成與組合查詢資產(chǎn)臺(tái)賬是系統(tǒng)的數(shù)據(jù)底座所有其他業(yè)務(wù)都圍繞著資產(chǎn)主表展開。先看資產(chǎn)實(shí)體類和它的 Mapper 實(shí)現(xiàn)重點(diǎn)理解兩個(gè)地方資產(chǎn)編號(hào)怎么生成、組合查詢?cè)趺雌?SQL。// Asset.java 實(shí)體類關(guān)鍵字段 public class Asset { private Integer id; // 主鍵 private String assetCode; // 資產(chǎn)編號(hào)如 ZC-2024-0001 private String assetName; // 資產(chǎn)名稱 private Integer categoryId; // 分類ID private Integer deptId; // 使用部門ID private String status; // 狀態(tài)在庫(kù)/領(lǐng)用/維修/報(bào)廢 private Date purchaseDate; // 購(gòu)置日期 private BigDecimal price; // 原值 private Integer userId; // 當(dāng)前保管人 private String remark; // 備注 // getter/setter 省略 }!-- AssetMapper.xml 組合查詢部分 -- select idqueryAssetList resultTypecom.company.asset.vo.AssetQueryVO SELECT a.*, c.name AS categoryName, d.name AS deptName, u.real_name AS userName FROM t_asset a LEFT JOIN t_category c ON a.category_id c.id LEFT JOIN t_department d ON a.dept_id d.id LEFT JOIN t_user u ON a.user_id u.id where if testassetName ! null and assetName ! AND a.asset_name LIKE CONCAT(%, #{assetName}, %) /if if testcategoryId ! null AND a.category_id #{categoryId} /if if testdeptId ! null AND a.dept_id #{deptId} /if if teststatus ! null and status ! AND a.status #{status} /if /where ORDER BY a.id DESC /select這個(gè)組合查詢是資產(chǎn)管理里最常見的需求。四個(gè)條件全部用if動(dòng)態(tài)拼接判斷條件是否為空再?zèng)Q定要不要拼進(jìn) SQL這樣前端傳什么條件就過濾什么條件不傳就是全量查詢。需要注意order by放在where外面排序不會(huì)因?yàn)閯?dòng)態(tài)條件受影響。這里的三表聯(lián)查返回的是AssetQueryVO就是為了在前端列表頁(yè)直接展示分類名、部門名和保管人姓名避免在 Java 代碼里做二次查詢。資產(chǎn)編號(hào)生成是另一個(gè)值得看的點(diǎn)。// AssetCodeGenerator.java public class AssetCodeGenerator { // 根據(jù)當(dāng)前日期當(dāng)天流水號(hào)生成編號(hào)例如 ZC-20241015-0001 public static String generate(String prefix, int seq) { SimpleDateFormat sdf new SimpleDateFormat(yyyyMMdd); return String.format(%s-%s-%04d, prefix, sdf.format(new Date()), seq); } }這段代碼邏輯很直觀傳入前綴資產(chǎn)用 ZC領(lǐng)用單用 LY拼上日期和四位數(shù)流水號(hào)。實(shí)際生產(chǎn)環(huán)境里可以在 Service 層先查詢當(dāng)天已有的最大編號(hào)再 1 傳給generate方法保證同一天內(nèi)編號(hào)遞增、跨天自動(dòng)歸零。如果系統(tǒng)要支持多公司或多倉(cāng)庫(kù)可以在前綴里再加一段機(jī)構(gòu)編碼改造成本很低。3.2 領(lǐng)用與歸還模塊狀態(tài)機(jī)的流轉(zhuǎn)設(shè)計(jì)資產(chǎn)領(lǐng)用是整個(gè)系統(tǒng)里業(yè)務(wù)邏輯最完整的流程。公司內(nèi)部的資產(chǎn)借用不是簡(jiǎn)單地改一下asset.status就完事了需要記錄領(lǐng)用人、領(lǐng)用時(shí)間、預(yù)計(jì)歸還時(shí)間歸還的時(shí)候還要校驗(yàn)資產(chǎn)狀態(tài)和保管人是否匹配。這個(gè)模塊我拆開看發(fā)現(xiàn)它內(nèi)部是一個(gè)典型的狀態(tài)機(jī)驅(qū)動(dòng)。// BorrowServiceImpl.java 歸還邏輯 Override Transactional public void returnAsset(Integer borrowItemId) { // 1. 查詢領(lǐng)用明細(xì)記錄 BorrowItem item borrowItemDao.findById(borrowItemId); if (item null) { throw new BusinessException(領(lǐng)用記錄不存在); } // 2. 判斷記錄狀態(tài)必須處于領(lǐng)用中才能歸還 if (!2.equals(item.getStatus())) { throw new BusinessException(當(dāng)前記錄狀態(tài)不可歸還); } // 3. 更新明細(xì)狀態(tài)為已歸還 item.setStatus(3); // 3已歸還 item.setReturnTime(new Date()); borrowItemDao.update(item); // 4. 更新資產(chǎn)主表狀態(tài)為在庫(kù) Asset asset assetDao.findById(item.getAssetId()); asset.setStatus(1); // 1在庫(kù) asset.setUserId(null); assetDao.update(asset); }這個(gè)方法的精妙之處在于狀態(tài)校驗(yàn)前置。它不是上來就改數(shù)據(jù)而是先做兩件關(guān)鍵的事查記錄是否存在、查記錄狀態(tài)是否允許歸還。這個(gè)「狀態(tài)不匹配就不執(zhí)行」的思路是這套代碼的典型風(fēng)格你要是在做二次開發(fā)最好也保持這個(gè)習(xí)慣不要在 Service 里跳過狀態(tài)判斷直接改庫(kù)不然盤點(diǎn)數(shù)據(jù)會(huì)亂到懷疑人生。領(lǐng)用的時(shí)候邏輯類似區(qū)別在于領(lǐng)用是「創(chuàng)建一條領(lǐng)用單 更新資產(chǎn)狀態(tài)」兩步操作得益于Transactional注解這兩步要么都成功要么都失敗不會(huì)出現(xiàn)領(lǐng)用單建了但資產(chǎn)狀態(tài)沒改的情況。狀態(tài)值設(shè)計(jì)上用了數(shù)字字符串1 在庫(kù)、2 領(lǐng)用中、3 維修、4 報(bào)廢這是老項(xiàng)目的常見做法優(yōu)點(diǎn)是好比較缺點(diǎn)是語(yǔ)義不夠清晰。你要是想改造可以把數(shù)字映射成枚舉類但要注意前端 JSP 里可能寫死了狀態(tài)值改的時(shí)候前后端要一起動(dòng)。3.3 盤點(diǎn)模塊差異記錄怎么處理固定資產(chǎn)年度盤點(diǎn)是最容易出幺蛾子的環(huán)節(jié)賬實(shí)不符是家常便飯。盤點(diǎn)模塊的處理邏輯是管理員發(fā)起盤點(diǎn)任務(wù)生成一張盤點(diǎn)單然后逐條勾選資產(chǎn)填寫實(shí)盤結(jié)果。如果實(shí)盤數(shù)量與賬面數(shù)量不一致系統(tǒng)自動(dòng)生成差異記錄并把差異原因記錄下來。// CheckServiceImpl.java 盤點(diǎn)差異處理 public CheckResult generateDiffReport(Integer checkId) { // 1. 查出該盤點(diǎn)單下所有明細(xì)與資產(chǎn)賬面狀態(tài) ListCheckItem items checkItemDao.findByCheckId(checkId); ListDiffItem diffList new ArrayList(); for (CheckItem item : items) { Asset asset assetDao.findById(item.getAssetId()); // 2. 對(duì)比賬面狀態(tài)與實(shí)盤狀態(tài) boolean statusDiff !asset.getStatus().equals(item.getStatus()); boolean deptDiff !asset.getDeptId().equals(item.getDeptId()); if (statusDiff || deptDiff) { DiffItem diff new DiffItem(); diff.setAssetId(item.getAssetId()); diff.setCheckId(checkId); diff.setBookStatus(asset.getStatus()); diff.setRealStatus(item.getStatus()); diff.setBookDept(asset.getDeptId()); diff.setRealDept(item.getDeptId()); diff.setHandleStatus(0); // 0待處理 1已處理 diffDao.insert(diff); } } // 3. 匯總差異結(jié)果 return buildCheckResult(checkId, diffList); }這段代碼的邏輯是把賬面數(shù)據(jù)和盤點(diǎn)數(shù)據(jù)逐一對(duì)比發(fā)現(xiàn)差異就生成一條待處理記錄等于把「發(fā)現(xiàn)什么問題」和「怎么處理問題」拆成了兩個(gè)階段。這樣設(shè)計(jì)的好處是盤點(diǎn)操作員只負(fù)責(zé)錄入實(shí)盤情況后續(xù)的差異原因分析和責(zé)任認(rèn)定由另一撥人去處理職責(zé)邊界清晰。我在實(shí)際項(xiàng)目里看到很多同類系統(tǒng)把這兩步揉在一起導(dǎo)致一個(gè)普通操作員就能直接改資產(chǎn)狀態(tài)容易留下數(shù)據(jù)安全隱患。3.4 報(bào)表導(dǎo)出ExcelUtil 里藏著什么工具系統(tǒng)提供了分類統(tǒng)計(jì)、部門資產(chǎn)明細(xì)、領(lǐng)用歸還記錄三類報(bào)表導(dǎo)出功能用的是一種輕量級(jí)方案用 Java 的 POI 庫(kù)直接操作 XSSFWorkbook 生成 Excel 文件通過HttpServletResponse以流的形式寫回瀏覽器。// ExcelUtil.java 導(dǎo)出核心方法 public static void export(ListString headers, ListListString data, HttpServletResponse response) { XSSFWorkbook workbook new XSSFWorkbook(); Sheet sheet workbook.createSheet(Sheet1); // 1. 寫表頭 Row headerRow sheet.createRow(0); for (int i 0; i headers.size(); i) { headerRow.createCell(i).setCellValue(headers.get(i)); } // 2. 寫數(shù)據(jù)行 for (int i 0; i data.size(); i) { Row row sheet.createRow(i 1); ListString rowData data.get(i); for (int j 0; j rowData.size(); j) { row.createCell(j).setCellValue(rowData.get(j)); } } // 3. 設(shè)置響應(yīng)頭并輸出 String fileName URLEncoder.encode(資產(chǎn)報(bào)表.xlsx, UTF-8); response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet); response.setHeader(Content-Disposition, attachment; filename fileName); workbook.write(response.getOutputStream()); workbook.close(); }這個(gè)工具類把導(dǎo)出的核心邏輯封裝成了一個(gè)靜態(tài)方法Controller 調(diào)用的時(shí)候只需要準(zhǔn)備表頭數(shù)組和二維數(shù)據(jù)列表不用關(guān)心 Excel 格式細(xì)節(jié)。需要注意兩點(diǎn)文件名用URLEncoder.encode處理避免中文文件名在部分瀏覽器里亂碼導(dǎo)出 Excel 對(duì)歷史數(shù)據(jù)量大的表比較吃內(nèi)存這是輕量方案的已知局限。如果資產(chǎn)量超過 10 萬(wàn)條導(dǎo)出時(shí)建議加個(gè)異步任務(wù) 下載鏈接這是后話了。4. 避坑指南跑這個(gè)項(xiàng)目最容易翻車的三個(gè)地方4.1 環(huán)境排查JDK 版本和 Tomcat 版本不匹配導(dǎo)致啟動(dòng)失敗現(xiàn)象在本地啟動(dòng) Tomcat控制臺(tái)直接報(bào)UnsupportedClassVersionError或者啟動(dòng)后頁(yè)面 404沒有報(bào)錯(cuò)信息但登錄頁(yè)就是出不來。原因源碼是在 JDK 8 環(huán)境下寫的。如果你的本機(jī)裝的是 JDK 11 或更高版本編譯階段可能沒問題因?yàn)?Maven 的編譯插件有版本兼容但 Tomcat 版本不夠新的話對(duì)舊 class 文件的加載處理會(huì)出現(xiàn)版本不兼容。另外如果源碼包里的web.xml聲明的 servlet 版本是 3.1 而你的 Tomcat 是 8.0 以下也會(huì)出現(xiàn)類似的啟動(dòng)異常。解決確認(rèn) JDK 是 8 并設(shè)置好JAVA_HOME環(huán)境變量Tomcat 用 8.5.x 版本這兩個(gè)版本組合是這套代碼最成熟的運(yùn)行環(huán)境。啟動(dòng)之前檢查pom.xml里maven-compiler-plugin的source和target是否都是 1.8如果不是改成 1.8 讓 Maven 重新編譯。如果你是 Mac 環(huán)境注意別同時(shí)存在多個(gè) JDK 版本導(dǎo)致命令行用的是 11 而 IDE 用的是 8這種環(huán)境錯(cuò)亂問題不好排查。4.2 數(shù)據(jù)庫(kù)初始化的坑SQL 腳本導(dǎo)入報(bào)錯(cuò)或中文亂碼現(xiàn)象導(dǎo)入init.sql腳本時(shí)提示字段長(zhǎng)度超限或者導(dǎo)入成功但頁(yè)面顯示的中文都是問號(hào)?。原因典型的字符集問題。數(shù)據(jù)庫(kù)連接串里沒設(shè)置characterEncodingUTF-8或者 MySQL 數(shù)據(jù)庫(kù)本身的字符集是 latin1導(dǎo)致中文數(shù)據(jù)存不進(jìn)去。字段長(zhǎng)度超限通常是 SQL 腳本里的 VARCHAR 長(zhǎng)度在導(dǎo)入時(shí)因?yàn)樽址瘬Q算被判定超限。解決建庫(kù)的時(shí)候指定字符集執(zhí)行 SQL 前先跑一句CREATE DATABASEassetDEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;這樣后面導(dǎo)入表結(jié)構(gòu)就沒問題。還要檢查jdbc.properties里的連接串確認(rèn)一定要帶上?useUnicodetruecharacterEncodingUTF-8注意 JMeter 或命令行直接導(dǎo)入腳本時(shí)也要用--default-character-setutf8參數(shù)。4.3 登錄攔截器的白名單遺漏導(dǎo)致沒有驗(yàn)證碼模塊現(xiàn)象輸入驗(yàn)證碼時(shí)發(fā)現(xiàn)沒有驗(yàn)證碼圖片或所有頁(yè)面請(qǐng)求都被攔截器攔住了登錄后跳轉(zhuǎn)正常但訪問靜態(tài)資源 404。原因這套系統(tǒng)的登錄模塊用的是用戶名 密碼的簡(jiǎn)單校驗(yàn)沒有接驗(yàn)證碼接口。攔截器只放行了/login和/logout兩個(gè)路徑靜態(tài)資源路徑比如 css、js、圖片放在/static/下沒加白名單導(dǎo)致頁(yè)面加載時(shí)樣式全丟。解決這個(gè)東西不能只靠代碼要把攔截器的白名單加完整。在AuthInterceptor的preHandle方法里把/static/**加入放行列表確保 AdminLTE 模板的樣式文件能正常加載。如果你確實(shí)要加驗(yàn)證碼功能可以用一個(gè)簡(jiǎn)單的做法在登錄 Controller 里返回一張圖片流同時(shí)把驗(yàn)證碼存到 Session然后在攔截器里比對(duì)。我一般會(huì)用 Servlet 原生 API 生成這種簡(jiǎn)單的圖形驗(yàn)證碼省得再引入一套復(fù)雜框架。5. 把項(xiàng)目跑起來從拿到源碼到看到登錄頁(yè)的完整操作過程5.1 準(zhǔn)備工作需要用到的軟件清單按照我實(shí)際驗(yàn)證過的環(huán)境來配穩(wěn)的。操作系統(tǒng) Windows 10/11 或 macOS 都可以需要安裝的軟件如下JDK 1.8確保java -version輸出版本里包含 1.8Maven 3.6 或 3.8用于依賴下載和打包Tomcat 8.5把 WTP/插件里的 Tomcat 關(guān)掉避免沖突MySQL 5.7 或 8.0用本機(jī)安裝即可IDEA 或 Eclipse推薦 IDEA社區(qū)版或旗艦版都行5.2 導(dǎo)入數(shù)據(jù)庫(kù)和初始化數(shù)據(jù)先把工程解壓到某個(gè)目錄別放在有中文和空格的路徑下防止各種莫名的構(gòu)建報(bào)錯(cuò)。然后找到源碼包里的sql文件夾打開 MySQL 命令行執(zhí)行mysql -u root -p init.sql默認(rèn)數(shù)據(jù)庫(kù)名是asset_db里面預(yù)制了幾條基礎(chǔ)數(shù)據(jù)系統(tǒng)管理員賬號(hào) admin普通操作員賬號(hào) user01各有一個(gè)默認(rèn)密碼。這部分?jǐn)?shù)據(jù)在t_user表的初始化 INSERT 里MD5 加密方式存儲(chǔ)。需要確認(rèn)密碼算法是什么你可以去UserServiceImpl里看密碼校驗(yàn)?zāi)嵌未a通常會(huì)用DigestUtils.md5Hex來做。如果連接串配置的數(shù)據(jù)庫(kù)名和你實(shí)際建的庫(kù)名不一致在頁(yè)面登錄時(shí)就會(huì)持續(xù)報(bào)數(shù)據(jù)庫(kù)連接超時(shí)。5.3 修改數(shù)據(jù)庫(kù)配置與啟動(dòng) Tomcat打開jdbc.properties文件按你的本地環(huán)境修改下列參數(shù)jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/asset_db?useUnicodetruecharacterEncodingUTF-8 jdbc.usernameroot jdbc.password你的數(shù)據(jù)庫(kù)密碼然后回到 IDEA打開 Maven 面板執(zhí)行clean package把工程打成 WAR 包。確定沒有編譯錯(cuò)誤之后把target/asset-management.war部署到 Tomcat 的 webapps 目錄或者如果你用 IDEA 啟動(dòng) Tomcat配置好 Application context 為/asset。啟動(dòng)完成后瀏覽器訪問http://localhost:8080/asset/login看到登錄頁(yè)就說明整套環(huán)境通了。輸入管理員賬號(hào)進(jìn)去之后建議按這個(gè)順序做一遍基礎(chǔ)操作驗(yàn)證系統(tǒng)是否正常先在「分類管理」里加一個(gè)分類再去「資產(chǎn)管理」里新增一條資產(chǎn)看看資產(chǎn)編號(hào)是否正確生成然后到「領(lǐng)用管理」里發(fā)起一條領(lǐng)用申請(qǐng)審批通過后去臺(tái)賬里確認(rèn)狀態(tài)已變?yōu)椤割I(lǐng)用中」最后做一次盤點(diǎn)把賬面狀態(tài)改一下看差異記錄是否生成。這套流程走下來你對(duì)代碼里狀態(tài)機(jī)的理解會(huì)比光看代碼強(qiáng)得多。6. 二次開發(fā)思路把 Excel 臺(tái)賬遷移成一套可用的內(nèi)部系統(tǒng)6.1 加一個(gè)「資產(chǎn)圖片」字段的完整流程很多公司有拍照留存資產(chǎn)實(shí)物的需求比如貴重設(shè)備在入庫(kù)時(shí)拍一張照片存到系統(tǒng)里這個(gè)需求在這個(gè)系統(tǒng)里改造起來可以直接照著四步走。第一步在t_asset表加字段ALTER TABLE t_asset ADD COLUMN asset_img VARCHAR(255) DEFAULT NULL COMMENT 資產(chǎn)圖片URL;。第二步在Asset.java加private String assetImg;屬性。第三步在AssetMapper.xml的resultMap和insert/update語(yǔ)句里加入字段映射同時(shí)新增ListAssetImg這種嵌套查詢也行但單個(gè) URL 字段直接加主表更好。第四步在新增資產(chǎn)的 JSP 頁(yè)面加input typefileController 里做文件上傳把文件保存到指定目錄并往庫(kù)里回填一個(gè)相對(duì)路徑 URL。文件上傳這里要注意一個(gè)點(diǎn)Tomcat 默認(rèn)上傳大小限制是 2MB如果你需要傳大圖在spring-mvc.xml里配一個(gè)MultipartResolver并把maxUploadSize調(diào)大到 10MB 或 20MB。我一般會(huì)把上傳目錄配置到項(xiàng)目外部比如D:/asset-upload/這樣重新部署不會(huì)丟圖片也可以接一個(gè) OSS 云存儲(chǔ)來替代本地目錄。6.2 給報(bào)表加一個(gè)「資產(chǎn)月折舊」統(tǒng)計(jì)維度如果你的使用場(chǎng)景涉及到財(cái)務(wù)對(duì)賬「資產(chǎn)折舊」幾乎是必改的功能。固定資產(chǎn)的原值、殘值率、折舊年限是一個(gè)經(jīng)典的財(cái)務(wù)計(jì)算三元組代碼實(shí)現(xiàn)不復(fù)雜難點(diǎn)在于把折舊計(jì)算做成可配置的。思路是給t_asset加depreciation_year折舊年限和residual_rate殘值率默認(rèn) 5%然后在報(bào)表模塊新增一個(gè)按月份求折舊額的方法。// 新增的計(jì)算邏輯 public BigDecimal calculateMonthlyDepreciation(Asset asset) { // 殘值 原值 * 殘值率 BigDecimal residualValue asset.getPrice().multiply(asset.getResidualRate()); // 月折舊額 (原值 - 殘值) / (折舊年限 * 12) BigDecimal depreciableBase asset.getPrice().subtract(residualValue); int totalMonths asset.getDepreciationYear() * 12; return depreciableBase.divide(BigDecimal.valueOf(totalMonths), 2, RoundingMode.HALF_UP); }這個(gè)方法的兩個(gè)隱藏細(xì)節(jié)值得注意第一BigDecimal的除法一定要指定小數(shù)位和舍入方式直接除整數(shù)會(huì)拋ArithmeticException這是財(cái)務(wù)計(jì)算里極容易出現(xiàn)的問題第二折舊計(jì)算的取整方式采用HALF_UP四舍五入但嚴(yán)格來說財(cái)務(wù)上更常用「按月分?jǐn)偂茨暾{(diào)整」的規(guī)則如果你負(fù)責(zé)的項(xiàng)目后續(xù)要對(duì)接財(cái)務(wù)系統(tǒng)這塊策略最好和財(cái)務(wù)確認(rèn)過再實(shí)現(xiàn)。報(bào)表 SQL 里可以用SUM按部門或分類對(duì)折舊額做聚合然后復(fù)用ExcelUtil導(dǎo)出這樣一次改造就能同時(shí)滿足頁(yè)面查看和線下歸檔兩個(gè)場(chǎng)景。6.3 技術(shù)債務(wù)整理JSP 升級(jí)成前后端分離如果你不只是想內(nèi)部用而是打算長(zhǎng)期在這個(gè)系統(tǒng)上繼續(xù)加功能我的建議是把前端遷到 Vue Element 這類成熟的后臺(tái)組件庫(kù)后端在現(xiàn)有 Controller 基礎(chǔ)上加一套返回 JSON 的 RESTful 接口。改造順序不要亂我的習(xí)慣是先把核心接口抽出來登錄獲取 Token、資產(chǎn)列表、新增資產(chǎn)、領(lǐng)用接口每個(gè)接口寫死返回統(tǒng)一的ResultT結(jié)構(gòu)體前端全部走 HTTP 調(diào)用等接口穩(wěn)定性有保證了再逐步把 JSP 頁(yè)面替換掉。不要想著一次性把所有頁(yè)面全切過來資產(chǎn)查詢這種高頻頁(yè)面先動(dòng)盤點(diǎn)這種低頻頁(yè)面可以留著慢慢改。老項(xiàng)目最大的風(fēng)險(xiǎn)其實(shí)不在技術(shù)本身而在你沒有完整跑通業(yè)務(wù)就動(dòng)手重構(gòu)結(jié)果改著改著發(fā)現(xiàn)某個(gè)隱藏的狀態(tài)邏輯沒考慮到。我說的經(jīng)驗(yàn)是不管多急著改造第一步永遠(yuǎn)是先把這個(gè)系統(tǒng)完完整整用一遍把代碼和操作路徑對(duì)起來你在心里畫一張流程圖資產(chǎn)狀態(tài)是怎么從 1 變成 2、再?gòu)?2 變成 3 的每一步在代碼里的入口和出口在哪里都標(biāo)注清楚再動(dòng)刀。從那以后我每次接手這類管理系統(tǒng)的源碼都強(qiáng)制自己先跑一遍完整業(yè)務(wù)流再做任何改造。希望這份拆解筆記能幫你把這套源碼跑明白也讓你在下一步寫自己的代碼時(shí)少踩幾個(gè)我踩過的坑。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97在线资源| 五月情色天| 夜夜国自区| 亚洲欧美999| 欧美日韩大黄片| 久久免费精品视频免一| 特级大荫道BBwBBwBBW| 久草精品一区| 久久激情婷婷| 欧美日韩操逼动图| 久久精精区一区二区一蜜桃一区二区| 18岁禁 茉莉成人久久| 九九九热精品| 国产综合日韩伦理| 操美女高潮抽搐白浆| 麻豆视频test| 蜜臀99久久精品| 日韩中文字幕视频| 欧美午夜精品久久久久久超碰| 欧美老妇女内射网址| 国产后入清纯| 日本 色 导航| 人妻天天爽夜夜爽精品2| 日本五区不卡| 久久久久久日韩| 26uuu国产| 96国产污污污丝袜| 97精品久久| 日本激情免费大片| 97色视频在线| 97 色综合| 先锋色眉乱伦资源| 99re9这里只有精品| 日本免费二区三区| 久久riav中文精品| 精产国品一区二三产品| 人人操人人肉久久精品| 精品毛片久久久精品毛片| 激情露脸爱| 男人的天堂va在线| 日本三级大片| 97超碰国产亚洲精品| 影音先锋日本一区二区| 久九干| 欧美午夜熟妇黑人精品91| 激情无码日韩| 中国黑人三级片网站上区| 东京热大香蕉| 六月天婷婷| 国产自偷| 最新啪啪视频| 男人成人黄色视频在线观看免费下载| 亚洲国产婷婷在线播放| 国产精品网站www| 亚洲欧美日韩偷拍色图| 九九久久九九久久| 97超碰超| 亚洲激情综合| 91制服丝袜| 亚洲最大网站av| 97精品综合久久网| 天天干天天燥| 噜噜噜亚洲精品| 国产av激情无码久久天堂| 97玖玖人妻| 啊啊啊无码| 久久伊人大香蕉| 精品在线78| 色综合网1| 91色伦| 自偷自拍的亚洲视频| 啊啊啊啊啊舒服| α√在线| 久久久精品视频欧州站| www成人啪啪18秘 免费| 死我十八禁| 国产 丝袜 欧美中文 另类| 伊人在线大香蕉视频久久| 中文字幕美女91| 青青草原综合久久大伊人精品| 人人搞人人插人人操| 欧美日韩国产传媒在线精品| 欧美色狠| 一区二区 日韩 欧美 国产 传媒| 亚洲精品国产无码高清| 久久精品电影| 五月天婷婷久久| 青青在线视频免费| 91女网站| 亚洲精品三区在线观看| 婷婷久草| 性爱综合网| 久久精品区| 99久久综合| 青青在线视频日韩欧美| 毛片17S| 国产成人精品必看| 老鸭窝黄色视频网站| 又粗又长又爽在线观看| 五月天人妻综合| 操逼网免费无码视频| 97在线/亚洲| 久久九色| 天天谢天天干| 91n免费处女| 操逼逼无码| 欧美日韩欧美| 欧美性战999| 国产美女自拍AV| 日韩97视频| www…国产操逼| 九九热re99re6在线精品| 久久五月综合| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 欧美三级偷拍| 熟妇女人妻呻吟久久AV| 国产精品网址| 99999亚洲另类| 伊人久久88国产女| 日韩簧片免费看| 久久一本大香蕉 | 69少妇一区二区| 60秒免费视频| 大香蕉操久久| 久久久久亚洲三级电影| 黄页网站成人免费| 又摸又舔在线观看网站| 亚洲熟女中文字幕在线| 囯产精品久久久久久久久久梁医生| 欧洲射精91| 精品国产一级久久| 欧美超碰在线| 亚洲鸥美色图| 日本久久久久久久久| 天天色天天干天天射| 精品国产乱码久久久久久久| 91在线色| 亚洲天堂区| 操逼国产免费| 日日摸天天爽夜夜欢| 大香网伊人久久综合网eew| 五月丁香社区婷婷日韩欧美精品影院 | 激情五月天婷婷| 日韩偷拍一区二区三区| 97日韩欧美亚洲| 久久欧洲| 久久久婷婷婷| 69精品久久久久中文字幕| 97国产精品视频| 日韩 欧美 国产 麻豆| 激情网五月天| 最新啪啪视频| 国产精品无码成人精品| 九热久| 高潮嗯啊性感美女久久久| 制服乱伦| 久久久久亚洲AV无码专区少妇| 99re99| 午夜毛片高清免费不卡| 性色一线| 五月丁香网站| 午夜无码精品免费看性色| 一起草三级AV电影在线观看 | 精品国产乱码久久久久久蜜臀| 大香蕉欧美日韩| 成人看片网站| 超碰国产在线| 久草网站免费在线观看| 国产女同视频在线播放| 国产二区三区免费视频| 好爽视频在线观看视频 | 亚洲精品成人激情在线| 久久亚洲AV无码专区国产精品| 天天综合-91入口| 日夜尻逼网| 麻豆伊人网| 91久青| 欧美性生活综合| 操逼操网| 又粗又长又爽在线观看| 国产久久免费精品视频| 高潮精品| 中文字幕乱亚洲美女精品一区| 久久噜噜噜精品国产亚洲综合| 91爱做| 91人妻丝袜无码| 人人人人人人少妇| 床上啊啊啊一区二区三区| 伊人色综合网电影| 亚洲成人网站在线观看| 青草视频在线看看看看看看看看看| 亚洲一区二区中文字幕| 久草免费在线一区二区| A片三级无码| 天美麻花大全视频| 九九色婷婷| 日韩欧美经典在线观看| 国产亚洲精品第一最新| 人人操人人狠狠操| 入口操逼网站| 美女刺激久久国产欧美| 美女人妻色网站| 色综合中文字幕不卡| 麻豆人妻精品一区二区| 草草影院在线视频| 中文字幕91综合| 青青爽| 天天操狠狠日夜夜干超碰撸com视频在线观看| 欧美人与性动交a美精品| 国产精品亚洲天堂网址| 久久精品店| 久久久久久AV无码免费网站| 亚洲最大的综合性av| 国产av又色又爽又黄| 岛国毛片在线观看免费| 中文字幕乱在线伦视频中文字幕乱码在线| 探花在线免费观看视频国产一区| 99久久久er直播网址| 8050无码八戒| 国产一区二区啪啪视频| 天天日日夜夜| 91在线综合网| 国产精品久久久999| 999 久久久| 日韩人妻精品| 蜜臀Av一区二区三区| 97精品免费视频网站| 夜草网站| 精品性爱一二三区| 九九色色| 爱爱动态试试看6 0秒| 97精品视频免费| 日本不卡一区二区三区| 99超碰碰| 国产精品嫩草影院午夜两性 | 欧美色网| 老熟女搡BBBB搡BBBB视频| 亚洲欧美综合区自拍另类| 黄色网址在线免费观看| 97亚洲国产影视| 中出789在线视频| 四虎884| 试看60秒 爽| 7777奇米影视久久| 第一高清av中文字幕| 亚洲性爱高潮影院| 亚洲综合校园春色| 99热这里只有精品18| 婷婷色色五月天福利| 欧美一级国产一级| 亚洲第一页色| 加勒比人妻综合| 日韩无码第3页| 日日日日做夜夜夜夜无码| caoni国产亚洲av| 亚洲色综合| 亚洲色欲一区二区三区| 丝袜美腿91| 天美传媒AV在线| 成年人三级黄色片视频| 自拍大香蕉乱插| 亚洲天堂另类小说男人| 久久综合久色欧美综合狠狠| 午夜精品久久99蜜桃的功能章节| 免费在线黄片视频| 欧美日日网| 97超碰人操| 免费视频97| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 夜夜综合| 国产精品福利视频| 人人看欧美性爱| 久久99黄色卞西瓜| 97视频在线视频| 国产日韩精品suv| 午夜无码精品免费看性色| 九九热视频在线观看| 蜜臀av中字字幕网站| 人人九九精| 超碰日韩人妻| 嗯嗯啊啊视频在线看| 日本免费一区二区不卡| 国产毛片毛片4p懂色| 综合色图区| 吉田爱美AV在线| 大香蕉淫人| 日韩卡一卡二卡三在线| 超硑97精品| 男人的天堂久久| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 91大神电影天堂| 日韩91网| 377p欧洲日本亚洲大胆| 亚洲 图片 欧美 色图| 91丝袜| 日韩成人精品视频自拍| 欧美暴力猛交| 百度百度日本操逼| 懂色AV一区二区三区| 十八禁一区二区无码观看| 亚洲欧洲av影音| 色五月亚洲| 国产精品伦理| 精品国产www久久| 超碰这里只有精品| 岛国A V在线免费看| 日韩丝袜人妻AV| 91久久国产精品| 久久久久亚洲Aⅴ无码| 欧亚不卡| 日韩人妻有码免费视频| 日本不卡三级网在线播放| 久久精品久久久久久久| 成片免费播放| 亚洲毛片久久| www.91色| 亚洲综合在线第一页| 国产精品一二三在线看| 色五月AV在线| 秋霞一集毛片观看| 日欧美色| 26uuu偷拍亚洲欧洲综合| 中文字幕一区二区三区人妻少妇在线| 丰满人妻被猛烈进入中| 亚洲熟妇丝袜在线观看| 91视频精品| 久久9久9久99久9久9| 尤物av网站免费在线播放| 色欧美天天| 天美传媒婬乱在| A久久| 神马麻豆福利院| 长长久久88视频| 亚洲色图日韩丝袜制服一区二区五月在线| 为用户提供免费看黄网址在线观看| 日韩久久超碰色| 翔田千里A片一区二区| 情色av电影| 超碰精品国产无码| 精国久久一区二区三区98| 日韩av性爱在线播放| 人人喜人人妻| 高清国产精品无码| 国产精品不卡一区二区三区| 日韩性爱再线视频| 人人澡人人澡人人| www色色com| 久久久久久久久999| 亚洲激情网一二三四区| 国产三级资源在线观看| 亭亭丁香激情| 激情五月天插| 不卡六六在线91| 色五月婷婷在线| 熟女人妻一区二区三区| 美女淫穴| 牛黄色久午久| 亚洲无992tv| 啊啊啊在线观看免费视频| 精品九九国产无码| 加勒比伊人影院| 色色五月丁香| 国产成人91一区二区三区| 久久精品老司| 亚洲中文字母在线播放| 曰韩中文人妻视频| 天美传媒av在线| 日本道久久综合色色| 亚洲男人天堂av| 久草色悠悠在线视频| 欧日a| 天天干夜夜操一区二区| 无码免费一区二区三区啪啪| 久久欲| 91美女高潮| 怡红院视频在线| 国产对白刺激视频| 78精品在线| 夜夜嗨AV蜜臀av| 懂色AV蜜臀无码精品APP| 玖玖久久久| 天天看高清麻豆| AAAAAAAAA黄片| 亚洲综合网91| 96久久久精品| 美女诱惑爱爱| 婷婷视频在线免费观看| 天美精品原创av片国产| 欧美中字不卡| 天天综合AV| 强奸乱伦αv片| 少妇综合| 亚洲精品蜜桃久久久| 日韩一级二级在线| 91热爆在线| 成人性爱视频在线看| 男人天堂新在线| 欧美一级专区免费大片| 97人肏| 亚洲欧美精品福利在线| 国产AV色黄看到爽| av中亚| 欧亚日韩三区| av情色影音| 久久综合五月天| 国产日逼视频| 粉嫩av平台| 国内毛片四区| 日韩人人精品| 日本久久综合| 天堂精品小草| 激情综合五| 中文字幕高清精品一区| 2020久久免费视频| 人爽不卡视频| 欧美丰满少妇交换91欧美精品| 97超碰热线| 天综合中文| 亚洲精品aa久久伊人| 亚洲h片在线免费观看| 激情五月天中文字幕色| 亚洲中文sv| 成年人免费观看网站| 人人爽夜夜操| 国产传媒美日韩av| 老女人爆菊| 日韩AV一区二区三区四四| 日韩欧美午夜视频在线| 无码天天操| 亚洲国产精品9999在线观看| 国产免费黄色一级大片| 国产强奸无码乱伦| 九九碰九九爱97超| 人妻久久一区二区三区 | 91看黄片| 激情综合网激情综合| 亚洲国产97| 91高潮| 夜夜夜爽www精品视频| 欧美97免费| 91网站18+| 人人操人人精品影片| 98超碰日本| 亚洲国产蜜臀系列在线观看| 麻豆天美在线喷水AV| 亚洲精品国产av天美传媒| 狠狠操一区二区| 久久9久9久99久9久9| 大香蕉伊人网WWWn0n| 一区二区三区精品黑丝白丝酒店对鸡 | 欧美色干| 亚洲毛片基地专区| 97香蕉网| 国产精品麻豆免费视频| 最新国产精品| 欧美五十路熟| 成人性爱视频在线看| 2018天天干在线视频| 亚洲无吗在线视频| 久久精品店| 国产男女无套视频免费观看| 日韩另类| 久悠悠av| 国产丰满少妇久久久精品影院| 99热aaa| 少妇内射www在线观看视频| 日韩美女,国产传媒,视频一区| 97超碰久| 九九九九免费视频| 亚洲情色 无码专区| 日韩成人人妻网站| 亚洲日韩美女丝袜美腿人妻视频| 欧美精品三级黄片| 欧美日韩操逼动图| 亚洲国产麻豆一区二区三区| 激情色播| 97超碰天天| 色娱乐色呦呦夜夜夜夜av| 99热 按摩 日韩| 97视频在线免费播放| 欧美亚洲韩国视频十五区| 国产91美女视频| 丝袜视频网国产90| 人人搞人人插人人操| 国产AV色黄看到爽| 久久鲁干| 91人妻视频在线| 黄色不卡视频| 欧美亚州综合网图片| 蜜臀一区二区三区在线| 人人操人人操人人操人人操人人操人人人11.CM | 欧美在线播放aaaa| 综合久草| 天操天操夜操夜月操月年年操操| 亚洲天堂一区| 色嗨嗨在线| 五月天伊人| 哈哈操电影AV| 国产丝袜高跟美女av免费观看| 999热日韩精品| 91网站18| 免费av大片| 97操97色| 欧美综合狠| 九九九九国产| 不卡啪啪视频| 天天流夜夜操| 亚洲性图91| 欧美天天综合网| 1人人看人人摸人人操| 日本高清久久| 亚洲色图欧美另类在线| 老女人综合| 国产女人操逼视频| AV色天香在线| 欧美综合中文| 性久久久| www.狠狠干.coom| 999九九九九国产动| 白丝一区| www.91色| 国桃视频产巨乳精品一区二区在线| 夜夜爽夜夜操| 日欧操屄视频| 五月婷婷六月色| 激情五月丁香五月| 日韩女模中文造逼| 久久午夜伦| 丝袜亚洲91| 久久久精品网| 奇米狠999| 国产福利夜| 怡春院久久| 黄在线| av在线人气| 999久久芭蕾| 成人乱人伦一区二区| 熟女突然公开看18禁影片| 久久久久久波多野吉衣高潮| 欧美加勒比| 综合自拍| 色网在线| 国产偷人伦激情在线观看| 91久久久久久久久18| 日韩电影天堂视频一区二区| 中文字幕三四区| 最新国产亚洲精品精品国产亚洲综合| 久久久婷婷| 黄骗免费网站| 婷婷亚洲综合| 国产欧美另类久久久精品课程| 超碰成人公开| 日本一区99| 91色狼| 日本超碰在线国产一区| 亚洲图片小说欧洲| 国产精品香蕉热久久新品| 加勒比综合九九99视频在线播放| 国产400孕妇孕交群| 五月天啪啪| 日韩精品人妻中文字幕不卡乱码| 亚乱色| 亚洲偷拍欧美激情| 精品人体无圣光凹凸| 亚洲色欲一区二区三区| 清纯唯美亚洲综合| 久久精品亚洲婷婷| 网友自拍第一页| 欧美色图天堂在线| 亚洲97在线观看| 婷婷中文字幕| 麻豆av一区二区| 婷婷五月天激情网| 青草一区二区| 国产后入精品| 蜜臀久久99精品久久久久| 91狼人| julia国产在线| 去干网最新版| av影院十区| 欧美激情综合| 久久春色| 99999久久久久9国产精品| 男女啪啪网站免费视频| 亚洲 中文 女同| 99久久精品国产系列| 日韩偷拍色图| 高清国产无码av| 色999偷自拍拍| 美女视频尤物网在线看| 九九九草| 另类专区在线观看| 蜜臀久久99精品久久久久久酒店 | 人人妻人人色| 国产成人自拍视频视频| 日日干夜夜操视频h| 亚洲春色欧美激情自拍| 久久 亚洲 日韩 人妻| 亚洲国产ⅴ高清在线观看| 都市激情人妻一区二区青青操视频| 欧美高清无码免费视频高清版| www.av家庭乱伦| 性欧美天天| 欧美成人四级在线播放| 国产AV人人夜夜澡人人爽麻豆| 操逼网站视频漫画国产| 亚欧成人一级片在线播放| 99青草| 夜夜操美女| 91色色综合| 亚洲综合色婷婷| 亚洲97综| 久噜噜| 婷婷性爱| 欧美日韩大香蕉| 精品一区二区三区四区外站| 婷婷色综合| 天天综合91| 一区二区不卡| 亚洲成a人在线观看久| 国色综合天| 欧美综合加勒比在线| 91人妻精华帖| 免费视频观看60秒| 欧美不卡在线美女| 国产成人无码啪| 久久久久女教师免费一区| 亚洲情色五月天 | 丁香五月社区| 精品国产一区二区三区香蕉欧美| 日韩欧美麻豆 | 91在线免费精品视频| 亚洲人久久久网| 99久久婷婷国产综合精品草原| WWW.操逼.COM| 亚洲一区二区中文字幕| 亚洲、日韩、综合、另类| 欧美经典一区二区三区| 91操熟女视频| 99热 按摩 日韩| 六月色婷婷| 国产精品视频自拍在线| 久久久青青草| 亚洲揄拍网| 99热| av天堂5| 日韩性爱啪啪视频| 亚洲玖玖爱| 日韩美女高潮喷水视频| 欧美综合站| 逼逼逼逼操操操操操操操操操午夜剧场 | 色婷婷久久| 中文字幕精品一区欧美| 国产精品久久久久久久久久久久久久吹| 嫩草影院永久在线制服丝袜| 蜜桃臀av在线观看| 国产第25页在线观看| 亚洲在线网站| 国产激情在线| 亚拍在线| 91处女视频在线观看| 五月婷婷六月丁香| 中文字幕aⅴ在线视频| 精品国模无码| 综合久久2017| 大香蕉日韩欧美| 久草精品国产蜜臀 | 久久久精品国产亚洲伊人| 五月天玖玖资源站| 国产又黄又爽又刺激久久久久久| 日本不卡五区| 69久久| Aa东京男人的天堂| 秋霞一区二区三区四区五区六区七区| 亚洲色图91欧美日韩| 亚洲精品aa久久伊人| 先锋色眉乱伦资源| 激情小说日韩无码| 淫荡网址| 欧美AB在线| av天堂加勒比| 欧美九一精品久久久熟妇| 亚洲囯产精品女人久久久| 超碰97护士| 男女啊啊啊啊啊| 五月天精品| 吊色| 2026国产精品视频| 韩国国产欧美情侣视频在线| 色九月综合| 国产乱婷婷精品二区三区| 1024久久高清视频| 中文字幕在线观看丝袜| 国产精品国产拍高清AV| 深夜激情无码| 久久久久国产精品喷潮免费观看臀| 在线观看成人性爱免费小视频| 久久 国产 无码| 超碰在线人妻中文字幕| 男女日B国产| 亚洲精品一二牛牛| 99久久亚洲精品无码毛片潘甜甜| 精品日韩人妻视频| 98人妻精品一区二区色欲| 大JI巴好深好爽又大又粗视频| 大香蕉欧美| 国产精品96| 97碰| 日本韩国国产精品一区| 免费无码婬片AAAA片直播色戒| 东北毛片| 综合伊人激情| 6080YYY午夜理论片在线观看| 天天爽夜夜爽夜夜爽精| 岛国毛片在线观看免费| 国产精品亚洲一级av第二区| 国产精品成人无码a v毛片| 精品中文字幕第一页| 国产AV激情无码久久无码| 免费观看国产不卡av| 人人摸人人叼| 九九热超碰| 中文字幕jul-617人妻熟女| 岛国片在线观看视频亚洲| 亚洲超碰在线| 爱射综合| 后入内射蜜桃臀| 色香在线| 久射吧| 啊啊在线| 国内外内射高清视频| a片在线播放| 乱伦图一区| 一区二区三区欧美激情| AA丁香综合激情| www久| 夜夜一区二区| 欧美狠狠弄| 嗯嗯啊啊的视频| 蜜臀网址在线| 精品熟女呻吟久久91| 性色av大全| 日本色色色视频| 国产伦乱91| 东北夫妻性偷拍| www.AV有限公司一区| 国产深喉| 欧美巨大性舒爽顶到了| 中国国产精品一区视频| 色婷婷基地| 欧美三级一级| 日韩视频小说在线观看| 91宗合网| 欧美激情性爱视频网站| 午夜福利视频在线一区| 加勒比在线视频| 9久精品视频在线观看| 成人青青草原伊人| 四虎国产精品永久在线囯在线 | 伊人青青草久久| 情色五月天就去干| 亚州综合色| 九九久久一区二区伦理| 亚洲天堂电影精品一区| 97久久久精品| 国产一区二区在线看| 1769一区| 亚洲日本韩国在线| 亚洲欧美日韩有码| 国产熟女高潮一区二区三区| 丝袜美腿亚洲| 亚洲黄色a级片| 天天摸天天插天天日| 四虎免费视频| 五月丁香黄色网| 九九人人操| 99热导航| 91丝袜美女国产| 久湿久久| 搡老女人老91妇女老熟女| 高清无码 国产精品| 亚洲精品97在线| 999久久芭蕾| 国产操逼视频在线观看| 五月婷婷丁香六月| 亚州日韩97| 日韩成人无码| **一级毛片国产| 91网站18在线| 91香蕉国产尤物视频| 亚洲最大AV网| 熟妇人妻一区二区三在线| 欧美日韩97| 果冻国产精品麻豆成人av| 天天影视射综合网| 超碰78| 日韩精品亚洲专区在线影视| 操b网站亚洲无码| 女人久久久| 久久久com| 久久骚| 亚洲人体视频在线观看| 久久久九97| 久久风骚城市人| 国产精品激情久久久久久久| 在线 亚洲 网爆 自拍| 高精欧美色| 国产成人自拍视频在线| 日韩无码AB| www.久久制服糖| 亚洲天天艹| 欧美亚洲特P| 亚洲超碰在线| 日本一级不卡一二区| 超清中文乱码字幕| 99这里只有精品| 日韩无码服务区| 久久久免费的精品| 宗合情欲网| 欧美组图日韩亚洲中文字幕| 日本精品一区三区| 风间由美日韩欧美久久| 一区二区三区激情在线观看| 尤物视频偷拍免费| 黄在线| 欧美体内射精| 入口操逼网站| 加勒比色综合| 黄色免费网页无码| 天美传媒精品一区二区三区| 欧美日韩激情无码专区| 九九国产热| 99国产在线 精品 视频| 91麻豆一二三区| 欧美性爱第一区| 精品亚洲俞拍视频一区| 久久国产免费激情视频| 国产熟妇一区二区| 岛国网址国产 | 欧美女同在线| 国产日韩欧美三级片| 超碰欧美97资源| 精品国产精品一区二区| 黄站在线免费观看| 五月婷婷AV| 色臀AV| 素人播放一区| 亚洲 欧美 精品专区 极品| 91欧美长吊| 999精品国产高清一区二区| 欧美A√综合网| 日韩精品 视频一区二区| 欧美日韩亚洲电影| 一区二区三区激情在线观看| 亚洲交性| 亚洲中文制服诱惑| 日韩精品资源专区二区| 蜜臀久久在线视频| 99在线无码精品秘 入口黑人| 男人成人黄色视频在线观看免费下载| 伊人黄色视频免费观看| 亚洲一区中文字幕| 啊啊啊啊一区| 秋霞Av理论一级在线| 91美女视频在线| 国产亚洲精品av一区| 九九这里只有精品| 亚洲麻豆精品二区三区| 久久草草亚洲蜜桃臀| 亚州色国| 天堂8在线新版官网| 好吊色综合| 人妻精品一区二区全免费| 日韩乱伦影音先锋| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 97久久资源| 天天干天天燥| 亚洲精品国产熟女久久久| 99这里有精品| 色哟哟 日韩精品| 日韩淫色网| 色色色色综合网| 99人妻碰碰碰久久久久禁片| 婷婷精品国产一区二区三区日韩| 91在线一起| 裸体美女国产免费久久久网站| 中文字幕精品探花视频| 91n免费处女| 99热精品在线观看| 少妇厨房愉情理伦片bd在线观看| 色阁阁AV综合网| 粉嫩av在线一区二区| 97欧美| 最新av在线| 少妇超碰在线| 天天谢天天干| 久久精品无码一区二区三区| 久久欧洲| 天天爽夜夜操| 日本一区二区三区午夜观看| h色99999| 天堂av2019| 伊人久久大香线蕉无码| 97在线免费看视频| 色综和网| 男人天堂2019亚洲| 久久无码成人| 日本久久女同性恋视频| 日韩欧美中文字| 久久极品一区二区| 午夜福利免费精品视频| 日日超碰亚洲| 欧美亚洲清纯| 欧亚第一综合网| 丝袜大香蕉| 欧美午夜视频免费观看| 91综合网站| 中文久久96| 亚洲骚女一区二区三区| 欧亚性爱啪啪| 亚洲巨爆乳一区二区三区四季网| 精品大全99999| 亚州精品丝袜-不卡成人免费| 婷婷久热| 东北丰满熟女国产一区| 亚洲美女av无码| 大香蕉一人| 好舒服视频| 嗯啊啊啊轻点视频 | 91在线限制级| 丁香激情五月| 国产精品视频一区二区三区八戒| 日韩欧美性吧婷婷乱伦大香蕉| 亚洲成人在线资源| 综合av影片| AV天天综合| 日韩成人大片在线观看| 欧美性爱日韩性爱| 九九AV| AV天堂因数| 蜜臀久久精品久久久久视频| 东北老女人的激情视频| 色综合美国| 超碰国产在线| 一级黄色牲爱A级片| 2019久久久久久久久福利| 又大又大又大又粗爽高潮观看| 精品国产99999| 欧美成人国产精品| 天天日天天屌天天操| 91在线限制级| 吻戏激情性巴克| 女人高潮抽搐喷水视频网站| 久久九九国产精品| 蜜乳AV.COM| heyZO天然素人无码AⅤ专区| 99久久无码| 精品人妻一区二区免费蜜桃视频| 亚洲欧美骚| 怡红院成人视频| 久久精品男人的天堂| 韩日巨乳美女免费视频在线观看| 97露脸精品丝袜| 97超碰天天爱天天爱| 中文字幕国产精品1区| 伊人久久88国产女| 欧美一级三级| av在线一区二区三区| 超97在线精品视频| 把腿张开老子CAO烂你| 国产精品视频麻豆入口| 国产网红精品| 欧美性生活免费网| 夜夜天天噜狠狠爱2021| 成人97人人超碰人人| 国内精品a| 一级岛国大片| 欧美精品日韩久久久九| 一区操逼| 在线播放一级无码视频| 亚洲图片色图欧美另类| 影音先锋视频在线| 伊人久久大香线蕉无码| 国产偷拍自拍在线视频| 最新日产中文在线麻豆| 国产热RE99久久6国产精品首| 亚洲最新a在线观看| 日本国产成人亚洲精品无码| 亚洲图片偷拍视频区| 91超级碰| www.激情| 国产精品经典一卡久久久| 97欧美精品综合| 日韩久久艹| 亚洲男人的天堂在线看| 亚洲熟妇综合久久久久久| 国产热av| 国内一级精品| 91欧美亚洲| 八戒午夜福利理论片| 蜜乳AV.COM| 日本色色色视频| 精品一区二区亚洲国产| A V少妇特黄三级| 中文字幕老熟妇黄色视频| 五月天伊人| 激情综合av| 超碰社区97| 欧美激情区| 午夜视频久久久久一区| 免费精品中文字幕| 国内毛片无码一级毛片| 开心五月激情网| 91精品人妻一区二区三区蜜桃臀| 黄呦呦在线| 9997se| 熟妇无码视频三区| 熟妇色99| 超清中文乱码字幕| 欧美一区二区一级岛国大片| 404操逼福利视频| 九久9精品| 少妇国产不卡| 99国产精品久久久在线播放| 天天综合网亚洲综合网| q2午夜理论片夜色av| 清纯唯美亚洲综合| 一类无码操逼视频| 人看人人摸人人操| 亚洲一区二区麻豆影院| 成人日韩中文字幕| 东北女人被操| 久久9免费视频| 丰满人妻区一区二区三| 人妻少妇被猛烈进入中| 日本黄 R色 成 人网站| 久久25| 国产精品久久久久久9999| 欧美AB在线| 国产欧美精选自拍一区| 婷婷五月成人| 青青草黑寡妇男人天堂| 色婷婷A V一二三四区麻豆综合| 国产精品国产精品国产| 国产高清精品一区二区三区毛片| 日本99热| 双插在线| 国产熟女一区二区| 天天懆天天日| 99这里有精品视频| 九九九影院| 亚洲天天综合| 日本Xx性爱| 极品粉嫩一区二区| 欧亚日韩三区| 亚洲激情视频| 亚洲古典另类欧美在线| 老女人爆菊| 五月天九九日国产精品一区二区三区| 最新日本中文字幕| 国产超碰人人操| 久久曰曰| 91久久青青草原精品| 综合免费无码中文| 99啪啪视频| 伊人在线大香蕉二。| 日韩欧美操逼xxx| 婷婷成人五月天| 九七毛片九九毛片| 高清国产无码av| 啊v视频在线观看| 强奸熟女一区二区三区| 清纯唯美亚洲综合| 久9视频| 午夜欧美J进J出白浆流出久久久| 欧美性夜| 91在线无码精品秘 软件| 97超碰色屌| 黑人娇小av在线播放| av片在线观看免费播放| 日韩精品三级片长长久久| 日日爱99| 久久久久人妻| 久久激情视频| 黄色av网站在线播放| 国产精品久久发布| 日韩内| 综合欧美日本三级| 女人的天堂大香蕉网| 亚洲激情片| 最新欧洲欧美日本激情网站| 日韩精品人妻中文字幕不卡乱码| 91精品微拍福利| 麻豆久久久久久久久丝袜 | 在线观看免费视频国产| 偷拍 精品 另类 四区| juliaann丝袜| 国产理论视频在线播放| 99xav| 黑人精品XXX一区一二区| 亚洲五月丁香花狠狠干一区二区三区 | 性色中出| 欧美综合天天| 欧美嫩性色| 夜夜高潮夜夜爽国产伦精品| 玖玖爱免费观看视频| 98福利在线视频| 国产精品毛片?v一区二区三区| 情色五月天久久久| 97超碰人人模人人拍人人| 久久这里都是精品| 超碰色综合| 裸体美女免费看网站青草| 久伊人网78| 亚洲精品国产精品乱码不99| 综合激情一一91| 日韩Va亚洲va欧美Ⅴa久久| 麻豆一区二区三区精品| 国产亚洲福利第一页丝袜| 欧美第一页性| 好吊色综合| 神马久久久久眼| 加勒比伊人| 2001天天操| 香蕉人欧美综合| 欧美日韩性感| 综合网天天| 翘臀vidoes| 97日韩欧美| 在线天堂999| 国产无码精品久久久久久| 欧美色图亚洲色图成人在在线| 五月天我淫我色av| 人人摸人人干| 色就色综合| 欧美激情久久久久| 一区三区啪啪| 99re欧美| 亚洲av夫妻操穴网| 中文AV制服乱伦| 亚洲。日韩。欧美| 国产男女边吃边摸视频网站| 动漫区日韩区欧美区| 欧美性生活免费网| 91九色丰满高潮| 人人操人人大香蕉| 亚洲一区中文字幕| 青青11操操操操操操操操| 狠狠操使劲操| 丝袜无码a片| 国产成人精品日本视频| 人人妻人人色一区二区三区| 激情文学网伊人| 熟妇女伦乱视频| 67194无码不卡| 国产精品美女在线一区| 中文在线视频| 狠狠色色| 国产JDAV无码视频在线观看| 中文字幕超碰CAO|