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

ARTICLE DETAIL

資訊詳情

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

SpringBoot+ECharts構(gòu)建CRM客戶管理系統(tǒng):從SSH遷移到報表可視化全復(fù)盤

SpringBoot+ECharts構(gòu)建CRM客戶管理系統(tǒng):從SSH遷移到報表可視化全復(fù)盤 接手過老式j(luò)spservlet項目的人應(yīng)該都有同感一個客戶關(guān)系管理系統(tǒng)看著不復(fù)雜真動起手來卻發(fā)現(xiàn)客戶、商機、跟進、審批、報表、權(quán)限這些模塊盤根錯節(jié)牽一發(fā)動全身。最近我剛好把一套用了好幾年的SSH老系統(tǒng)整體遷移到SpringBoot上順手用ECharts把銷售漏斗和業(yè)績報表重做了一遍技術(shù)棧就是標題里這套java springboot echarts freemarker layui maven mysql。整個過程從工程搭建到核心模塊落地再到打包部署排查踩了不少坑今天完整復(fù)盤一下給準備自研CRM或者接手SpringBoot項目的朋友一個可參考的藍本。整個項目不是簡單套個增刪改查框架而是要把銷售日常真正用起來。下面我按項目的實際推進順序來拆解從業(yè)務(wù)設(shè)計、技術(shù)選型到模塊實現(xiàn)、數(shù)據(jù)庫優(yōu)化再到部署排查每一塊都會講清楚為什么這么選、怎么做以及實踐里容易翻車的位置。1. CRM項目的業(yè)務(wù)拆解與技術(shù)選型邏輯1.1 業(yè)務(wù)需求拆解不要把CRM做成一個客戶列表很多團隊一提CRM第一反應(yīng)就是把客戶信息表格化做幾個頁面能增刪改查再導(dǎo)個Excel就算完事。這種系統(tǒng)上線以后大概率沒人用因為它只解決了“記錄”問題沒有解決“推進”問題。一個能給銷售帶來真實幫助的CRM至少要包含三條業(yè)務(wù)主線客戶資料沉淀客戶基本信息、所屬行業(yè)、客戶分級、來源渠道、下次跟進時間。重點不是字段多而是要讓銷售一打開客戶詳情就能判斷“這個人值不值得繼續(xù)投入精力”。商機階段推進從初步接觸到需求確認、方案報價、商務(wù)談判、贏單/輸單。每個階段要有狀態(tài)字段、預(yù)計成交金額、預(yù)計成交日期這樣銷售管理層才能從數(shù)據(jù)里看出哪些單子有風(fēng)險。跟進過程留痕誰在什么時候通過什么方式電話、拜訪、微信跟進過哪個客戶聊了什么下一步計劃是什么。這部分最容易被忽視但恰恰是后續(xù)復(fù)盤客戶流失原因的關(guān)鍵。除此之外老板關(guān)心的報表也不能省每個銷售的量、成交率、漏斗轉(zhuǎn)化率、月度回款趨勢這些數(shù)據(jù)如果全靠人工匯總Excel系統(tǒng)就失去了意義。我當(dāng)時設(shè)計的時候把業(yè)務(wù)模塊拆成了五張核心主表外加日志、部門、用戶表整體上采用一個“客戶-聯(lián)系人-商機-跟進”的一對多樹形結(jié)構(gòu)。數(shù)據(jù)模型理順之后后面的代碼才是水到渠成的事否則一邊寫代碼一邊改表結(jié)構(gòu)返工成本非常大。1.2 技術(shù)選型SpringBootFreeMarkerLayui這套老牌組合為什么還值得用技術(shù)選型上我仔細考慮過要不要上前后端分離最后放棄VueSpringBoot的組合選回了FreeMarkerLayui。原因很簡單團隊規(guī)模不大沒有專職前端銷售系統(tǒng)又強依賴服務(wù)端渲染的快速迭代能力。SpringBoot負責(zé)整體框架這一點沒有懸念它對Spring生態(tài)的整合幾乎零配置內(nèi)嵌Tomcat讓開發(fā)環(huán)境不用再單獨裝服務(wù)器。選FreeMarker而不是JSP核心是JSP在SpringBoot里支持得比較別扭特別是jar包部署時JSP的編譯和訪問總會出現(xiàn)莫名其妙的404而FreeMarker天然適合模板渲染語法干凈對Java對象直接訪問屬性前端同事配合起來阻力也小。Layui在這個項目里是作為后臺管理UI使用的。它基于jQuery組件成熟表格、表單、彈層、分頁都有現(xiàn)成封裝?,F(xiàn)在前端框架五花八門但企業(yè)后臺系統(tǒng)的場景下Layui這種“不需要node環(huán)境、不折騰構(gòu)建工具”的方案依然很能打一套JS文件引入即可用特別適合服務(wù)端渲染架構(gòu)。ECharts的定位是數(shù)據(jù)可視化。CRM里面最常見的圖表是漏斗圖商機階段轉(zhuǎn)化和折線圖業(yè)績趨勢ECharts對這類場景支持特別完善配置項直觀圖表交互細膩而且是完全本地化的開源項目沒有外網(wǎng)依賴。MySQL負責(zé)所有業(yè)務(wù)數(shù)據(jù)落地Maven負責(zé)依賴管理和構(gòu)建。這套組合最適合的是中小型企業(yè)內(nèi)部管理系統(tǒng)人力有限、上線周期短、不需要過度設(shè)計又能保證代碼結(jié)構(gòu)清晰、后續(xù)可維護。2. 工程初始化與SpringBoot核心配置2.1 Maven工程結(jié)構(gòu)設(shè)計與POM依賴管理項目剛?cè)胧值谝徊绞莿?chuàng)建Maven工程。這里我不建議一上來就搞微服務(wù)多模塊拆分CRM這種體量一個spring-boot-maven-plugin打出的可執(zhí)行jar包就能搞定所有功能多模塊只會增加維護成本。我在pom.xml里核心引入了這么幾個依賴這里直接貼一段簡化版parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.7.18/version relativePath/ /parent properties java.version1.8/java.version /properties dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-freemarker/artifactId /dependency dependency groupIdorg.mybatis.spring.boot/groupId artifactIdmybatis-spring-boot-starter/artifactId version2.3.1/version /dependency dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId scoperuntime/scope /dependency dependency groupIdcom.alibaba/groupId artifactIddruid-spring-boot-starter/artifactId version1.2.20/version /dependency dependency groupIdcom.github.pagehelper/groupId artifactIdpagehelper-spring-boot-starter/artifactId version1.4.7/version /dependency /dependencies幾個細節(jié)值得注意。第一是SpringBoot版本我特意選了2.7.x而不是3.x因為3.0開始強制JDK17而且很多舊版三方組件兼容性踩坑嚴重很多小團隊生產(chǎn)環(huán)境還在JDK8直接上3.x會異常痛苦。第二是mysql-connector-j這個新坐標老版本的com.mysql.cj.jdbc.Driver驅(qū)動名依然可用如果需要反編譯排查底層驅(qū)動行為新坐標對應(yīng)jar包結(jié)構(gòu)更清晰。第三是PageHelper分頁插件CRM列表頁的搜索分頁是剛需自己手寫limit計算工作量不大但容易疏忽total數(shù)用插件能把精力集中在業(yè)務(wù)SQL上。2.2 application.yml中的關(guān)鍵配置與連接參數(shù)SpringBoot的配置集中在application.yml里我用多環(huán)境配置管理默認開發(fā)環(huán)境、生產(chǎn)環(huán)境通過啟動參數(shù)切換。數(shù)據(jù)庫連接這塊配置直接決定了系統(tǒng)穩(wěn)定性重點看這幾項server: port: 8080 servlet: context-path: /crm spring: datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/crm_db?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue username: root password: yourpassword driver-class-name: com.mysql.cj.jdbc.Driver druid: initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 validation-query: SELECT 1 freemarker: template-loader-path: classpath:/templates suffix: .ftl cache: false charset: UTF-8 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.crm.entity configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl這里有幾個我踩過的大坑單獨說。數(shù)據(jù)庫URL里的useSSLfalse一定要加上否則高版本MySQL驅(qū)動默認開啟SSL握手碰到自簽名證書會直接報錯明明賬號密碼對卻連不上庫。serverTimezone務(wù)必指定我一開始漏了啟動報“The server time zone value”的錯加上Asia/Shanghai才消停。allowPublicKeyRetrievaltrue這個參數(shù)很多新項目會碰到特別是用MySQL 8.0以上配合caching_sha2_password認證方式時不加這個參數(shù)驅(qū)動會拒絕通過非SSL通道獲取公鑰啟動能過但第一次查詢連接就閃斷。FreeMarker的cache:false在開發(fā)調(diào)試階段必須關(guān)掉否則每次改模板都要重啟服務(wù)才能看到效果。生產(chǎn)環(huán)境記得改回true否則性能會受很大影響。MyBatis的駝峰映射也要打開數(shù)據(jù)庫字段是create_timeJava屬性是createTime映射規(guī)則打開后就不用寫一堆繁瑣的resultMap了。2.3 FreeMarker模板與Layui靜態(tài)資源的整合方式FreeMarker模板放在src/main/resources/templates下Layui的css、js文件放在src/main/resources/static下SpringBoot默認會把這些資源映射出去。一個容易踩的坑是如果把Layui的layui.js放在templates目錄下頁面訪問會404因為templates目錄默認不對外暴露靜態(tài)資源必須走static。我習(xí)慣把公共布局抽成獨立ftl片段比如header.ftl、sidebar.ftl、footer.ftl再用FreeMarker的include指令引入這樣每個功能頁面只需要關(guān)心自己的主體內(nèi)容#include common/header.ftl div classlayui-container #-- 主體內(nèi)容區(qū)域 -- /div #include common/footer.ftl變量渲染時有個細節(jié)如果后端傳值為nullFreeMarker默認會直接報錯而不是輸出空字符串。我用兩種方式處理一是在模板里給變量加默認值比如${customer.phone!-}二是在application中配置spring.freemarker.settings.classic_compatibletrue兼容空值輸出。不管哪種都不要讓一個null值把整個頁面拖崩。3. 核心業(yè)務(wù)模塊的設(shè)計與實現(xiàn)3.1 登錄認證、用戶權(quán)限與Session管理登錄認證這塊我選的是比較傳統(tǒng)的Session方案SessionId種在Cookie里攔截器統(tǒng)一校驗沒有引入JWT。原因很實際CRM的用戶量不大幾十到幾百人Session方案夠用且實現(xiàn)簡單JWT解決的是無狀態(tài)和跨域問題但會帶來會話失效不好控制、密鑰管理復(fù)雜的問題對內(nèi)部系統(tǒng)反而增加負擔(dān)。密碼存儲一定不能明文我用的方案是MD5加鹽鹽值固定一串隨機字符串注冊時加密入庫登錄時用同樣算法加密比對。MD5現(xiàn)在不是最安全的但對內(nèi)部系統(tǒng)足夠如果安全要求更高可以替換成BCrypt做法類似。攔截器實現(xiàn)思路是定義一個HandlerInterceptorpreHandle方法里檢查當(dāng)前請求的Session是否存在loginUser對象。沒有就跳轉(zhuǎn)到登錄頁。SpringBoot中注冊攔截器要繼承WebMvcConfigurer接口Configuration public class WebConfig implements WebMvcConfigurer { Autowired private LoginInterceptor loginInterceptor; Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(loginInterceptor) .addPathPatterns(/**) .excludePathPatterns(/login, /doLogin, /static/**, /favicon.ico); } }這里最關(guān)鍵的細節(jié)是白名單靜態(tài)資源路徑一定要排除否則頁面壓根加載不了CSS和JS。我在一開始就漏了static放行登錄頁丑得沒法看排查半天才發(fā)現(xiàn)是攔截器把layui文件全給攔住了。Session對象里我建議只放用戶ID、用戶名、部門ID、角色標識這些輕量信息千萬別把整個用戶對象塞進去用戶表字段一多Session會膨脹而且用戶資料更新后舊的Session數(shù)據(jù)不會自動同步容易造成權(quán)限判斷陳舊。3.2 客戶列表、分頁搜索與多條件查詢的實現(xiàn)套路客戶列表是CRM系統(tǒng)信息密度最高的頁面。我實現(xiàn)它時用PageHelper插件完成物理分頁配合動態(tài)SQL處理搜索條件。先看Controller層接口RequestMapping(/customer/list) public String list(RequestParam(defaultValue 1) Integer page, RequestParam(defaultValue 10) Integer limit, CustomerQuery query, Model model) { PageHelper.startPage(page, limit); ListCustomer list customerMapper.selectByCondition(query); PageInfoCustomer pageInfo new PageInfo(list); model.addAttribute(pageInfo, pageInfo); model.addAttribute(query, query); return customer/list; }關(guān)鍵點在Mapper的XML里條件是否生效要用if標簽動態(tài)拼接不能靠字符串硬拼SQL那是SQL注入的重災(zāi)區(qū)。例如按客戶名模糊搜索姓名可能為空就需要select idselectByCondition resultTypecom.example.crm.entity.Customer SELECT id, name, phone, industry, level, owner_id, next_contact_time FROM customer where if testkeyword ! null and keyword ! AND (name LIKE CONCAT(%, #{keyword}, %) OR phone LIKE CONCAT(%, #{keyword}, %)) /if if testownerId ! null AND owner_id #{ownerId} /if if testlevel ! null and level ! AND level #{level} /if /where ORDER BY create_time DESC /select分頁插件一個容易出問題的地方是PageHelper.startPage之后必須緊跟第一條查詢語句中間不能有其他MyBatis查詢和邏輯處理否則分頁會串到別的SQL上。我剛開始寫的時候在startPage和Mapper調(diào)用之間加了一個日志查詢結(jié)果列表頁每次都查出來全表數(shù)據(jù)還特別慢。多條件查詢頁面上我用了Layui的form組件搜索按鈕觸發(fā)table.reload把表單數(shù)據(jù)作為參數(shù)提交。后端返回的是HTML頁面就不用table.reload那套了直接讓form提交GET請求保持URL可讀可分享更適合服務(wù)端渲染的形態(tài)。3.3 商機階段流轉(zhuǎn)與跟進記錄的落地方案商機是銷售漏斗的數(shù)據(jù)基礎(chǔ)設(shè)計上它必須掛在客戶之下又有獨立的階段狀態(tài)。我在數(shù)據(jù)庫表里設(shè)計了幾個關(guān)鍵字段stage階段、amount預(yù)計金額、expect_deal_date預(yù)計成交日期、probability贏單概率。階段用數(shù)字編碼1到6分別對應(yīng)初次接觸、需求確認、方案報價、商務(wù)談判、贏單、輸單這個枚舉放在代碼里統(tǒng)一管理避免前后端各維護一份。頁面上的商機看板按階段分列展示每一列是一個Kanban卡片。實現(xiàn)上不需要特復(fù)雜的技術(shù)后端按階段分組查詢前端用Layui的柵格布局排開拖拽流轉(zhuǎn)我用的是前端form select切換階段提交后由后端更新stage和probability。狀態(tài)流轉(zhuǎn)這里一定要做校驗比如從“初次接觸”跳轉(zhuǎn)到“贏單”就不合理我加了一個簡單的階段順序校驗攔截器保證數(shù)據(jù)邏輯完整。跟進記錄做成時間線樣式與客戶詳情頁并列展示。每次跟進的類型、內(nèi)容、下次跟進時間、創(chuàng)建人都要記錄。代碼里就是一張follow_up表的多表插入關(guān)鍵點是插入后要更新customer表的next_contact_time字段否則銷售永遠不知道自己下一次該聯(lián)系誰。這個聯(lián)動我一開始沒做后續(xù)跑了一段時間數(shù)據(jù)后發(fā)現(xiàn)很多沒有下次跟進時間的客戶躺在列表里銷售根本想不起來還有這些待辦這就是典型的數(shù)據(jù)孤島問題。3.4 ECharts報表模塊從SQL聚合到前端可視化的完整鏈路報表模塊是這個系統(tǒng)里最出效果的部分。我做了三個核心圖表月度業(yè)績趨勢折線圖、銷售個人業(yè)績排行柱狀圖、商機階段漏斗圖。后端接口不做模板渲染而是返回JSON數(shù)據(jù)。比如漏斗圖接口按商機表里的stage分組統(tǒng)計數(shù)量SQL很簡單SELECT stage, COUNT(*) AS cnt FROM business_opportunity WHERE del_flag 0 GROUP BY stage ORDER BY stageController把查詢結(jié)果封裝成Map用ResponseBody注解直接吐JSON。前端頁面通過Ajax拿到數(shù)據(jù)后組裝成ECharts的series數(shù)據(jù)格式調(diào)用setOption渲染。這里有一個每次都會踩的坑ECharts實例如果已經(jīng)渲染過一次第二次setOption時舊數(shù)據(jù)不會自動清掉。我在漏斗圖上調(diào)了好久發(fā)現(xiàn)切換時間范圍后柱子高度對不上因為新舊數(shù)據(jù)疊加了。解決方法是每次請求前調(diào)用chart.clear()或者在setOption時設(shè)置notMerge參數(shù)為true。$.get(/report/funnel, function (resp) { var chart echarts.init(document.getElementById(funnelChart)); chart.clear(); chart.setOption({ series: [{ type: funnel, left: 10%, width: 80%, data: resp.data, label: { show: true, formatter: : {c} } }] }); });圖表容器div的寬高一定要顯式設(shè)置很多剛接觸ECharts的人把容器寫成百分比高度外層父div沒有高度最后渲染出來圖表是扁的。我在報表頁面里給每個圖表容器都設(shè)了固定高度實測500px左右比較合適。4. 數(shù)據(jù)庫表結(jié)構(gòu)與性能優(yōu)化實戰(zhàn)4.1 CRM核心表結(jié)構(gòu)設(shè)計思路數(shù)據(jù)庫設(shè)計是整個系統(tǒng)穩(wěn)定性的地基我把核心表結(jié)構(gòu)列出來可以作為一個自己動手建庫時的參考模板??蛻舯鞢REATE TABLE customer ( id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL COMMENT 客戶名稱, phone VARCHAR(20) COMMENT 聯(lián)系電話, industry VARCHAR(50) COMMENT 行業(yè), level TINYINT COMMENT 客戶等級 1-3, owner_id BIGINT COMMENT 負責(zé)人用戶ID, next_contact_time DATETIME COMMENT 下次跟進時間, del_flag TINYINT DEFAULT 0 COMMENT 刪除標記, create_time DATETIME, update_time DATETIME, KEY idx_owner (owner_id), KEY idx_next_contact (next_contact_time) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;商機表、跟進表在結(jié)構(gòu)上類似都會冗余一個customer_id外鍵和多一個del_flag邏輯刪除標記。用邏輯刪除而不是物理刪除對銷售數(shù)據(jù)尤其重要客戶雖然可能被標為無效但歷史數(shù)據(jù)還需要追溯分析真從庫里刪掉后續(xù)做統(tǒng)計就斷層了。所有表的主鍵用BIGINT自增字符集用utf8mb4而不是utf8原因是utf8在MySQL里最多3個字節(jié)存不了emoji和生僻字。銷售填客戶備注的時候可能帶個表情符號如果是utf8會直接報錯?;A(chǔ)的表結(jié)構(gòu)設(shè)計不想多說但這兩個坑我見到太多人踩過了。4.2 最容易出問題的SQL與索引優(yōu)化CRM系統(tǒng)的查詢模式相對固定優(yōu)化重點就在幾個高頻列表頁。我最常做的優(yōu)化是給外鍵和查詢條件字段建索引像customer表的owner_id、next_contact_time都加了索引。模糊搜索要特別注意。LIKE ‘%關(guān)鍵詞%’這種寫法會導(dǎo)致索引失效全表掃描??蛻袅繘]上十幾萬的時候問題不大但數(shù)據(jù)一旦膨脹一個不帶條件的列表查詢能把數(shù)據(jù)庫CPU打滿。折中的辦法是如果確實需要模糊搜索把范圍限定在20萬行以內(nèi)強制走索引更合理的方案是引入專門的全文索引但小項目我一般建議保持簡單先把高頻搜索條件做成下拉選擇減少模糊匹配的觸發(fā)頻率。另一個大坑是深分頁。銷售使用系統(tǒng)半年后客戶表可能幾十萬行翻到第1000頁時limit 9000,10會導(dǎo)致MySQL掃描前9000行后丟棄特別浪費I/O。我用它替換成基于最大主鍵的查詢方式SELECT * FROM customer WHERE id #{lastId} ORDER BY id ASC LIMIT 10這種“上一頁最后一條記錄的ID”游標分頁方式在數(shù)據(jù)量大時性能提升非常明顯頁面交互改成“加載更多”而不是跳頁。對CRM這種業(yè)務(wù)用戶真的需要看到很深的分頁嗎我實測下來幾乎沒人會翻到第100頁之后。所以游標分頁完全夠用還有利于前端做無限滾動。4.3 連接池配置、事務(wù)控制與數(shù)據(jù)一致性問題CRM業(yè)務(wù)里涉及多表聯(lián)動的場景很多比如新增跟進記錄的同時要更新客戶的下次跟進時間這兩條SQL必須在一個事務(wù)里否則就會出現(xiàn)“記錄了跟進但客戶的待辦時間沒變”這種不一致問題。SpringBoot里最簡單的方式就是給Service方法加Transactional注解默認遇到RuntimeException就回滾。我項目里統(tǒng)一定義了業(yè)務(wù)異常繼承RuntimeException這樣事務(wù)在業(yè)務(wù)校驗失敗時也能正確回滾。連接池這塊我用的Druid除了作為連接池它的監(jiān)控頁面還能看到慢SQL統(tǒng)計對排查性能問題極有幫助。在application.yml里配置好druid的stat filter和web-stat filter后瀏覽器訪問/druid/index.html就能看到每個SQL的執(zhí)行時間。我給客戶列表頁做優(yōu)化的時候就是靠監(jiān)控頁發(fā)現(xiàn)慢SQL才定位到索引缺失的問題。事務(wù)隔離級別我用了默認的REPEATABLE_READMySQL InnoDB引擎下基本沒問題。需要注意的一點是長事務(wù)要避免如果一個事務(wù)里做了大量查詢或者分批插入會持有持鎖時間過長并發(fā)一高就容易死鎖。我的習(xí)慣是事務(wù)只包裹必要的寫操作查詢邏輯放在事務(wù)方法外面完成。5. 打包部署與生產(chǎn)環(huán)境問題排查5.1 Maven多環(huán)境打包與可執(zhí)行jar部署開發(fā)完成之后就是構(gòu)建部署。SpringBoot項目用Maven打包非常簡單核心命令是mvn clean package -Dmaven.test.skiptrue如果需要指定生產(chǎn)環(huán)境配置使用profile參數(shù)mvn clean package -Dmaven.test.skiptrue -Pprod對應(yīng)pom.xml里配置多套profile每套profile指定不同的application-{env}.yml。我實際部署時沒用Docker直接在服務(wù)器上跑jar啟動命令是nohup java -jar crm-system.jar --spring.profiles.activeprod /data/logs/crm.log 21 這里有兩個容易忽略的點一是nohup一定要配合使用不然SSH斷開后進程就沒了二是日志重定向最好落到獨立文件方便出問題時用grep定位異常。生產(chǎn)環(huán)境我建議在啟動參數(shù)里增加-Xms和-Xmx把堆內(nèi)存上下限定成一樣避免JVM動態(tài)擴容引起性能波動比如-Xms512m -Xmx512mCRM這種中小系統(tǒng)給512M到1G完全夠了。5.2 從開發(fā)到上線的高頻報錯速查表我整理了這份項目里遇到的高頻問題列表按現(xiàn)象、原因、解決辦法三列對查報錯現(xiàn)象根本原因解決辦法MySQL連接時報SSL connection error高版本驅(qū)動默認開啟SSLURL后加useSSLfalsePublic Key Retrieval is not allowedMySQL8新認證機制URL上加allowPublicKeyRetrievaltrueUnknown time zone / 時區(qū)錯誤未指定serverTimezoneURL上加serverTimezoneAsia/ShanghaiFreeMarker模板訪問報錯或404模板路徑或文件后綴錯誤確認模板在templates目錄且后綴是.ftl頁面CSS/JS全部加載失敗攔截器攔截了靜態(tài)資源攔截器排除/static/**路徑Layui表格數(shù)據(jù)正常但分頁不工作PageHelper分頁被其他查詢污染startPage后緊跟目標查詢語句部署jar后中文亂碼Linux默認編碼不是UTF-8啟動參數(shù)加-Dfile.encodingUTF-8Druid監(jiān)控頁面無法打開未放行druid的Servlet配置web-stat-filter并開啟enabledMaven依賴下載極慢默認中央倉庫網(wǎng)絡(luò)不穩(wěn)定settings.xml配置阿里云鏡像表里這些坑有好幾個都是我實際踩過的。最典型的是部署到Linux中文亂碼本地開發(fā)Windows沒問題一上服務(wù)器全變問號。排查下來發(fā)現(xiàn)是Linux系統(tǒng)locale沒有設(shè)置UTF-8Java讀取文件默認用了系統(tǒng)編碼加上Dfile.encoding參數(shù)后解決。5.3 生產(chǎn)環(huán)境數(shù)據(jù)初始化與權(quán)限配置上線前有一件事一定要做數(shù)據(jù)初始化。我先在測試環(huán)境把系統(tǒng)跑通然后用mysqldump導(dǎo)出表結(jié)構(gòu)和基礎(chǔ)數(shù)據(jù)再導(dǎo)入生產(chǎn)庫。不要在生產(chǎn)庫手工執(zhí)行一遍建表腳本漏一個索引后面補起來相當(dāng)被動。權(quán)限初始化這塊管理員賬號、角色、部門數(shù)據(jù)我用一個init.sql腳本管理腳本里先判斷記錄是否存在再插入保證腳本可以重復(fù)執(zhí)行。生產(chǎn)環(huán)境的日志級別也要改開發(fā)環(huán)境MyBatis打印了所有SQL生產(chǎn)環(huán)境如果還開著會把磁盤寫爆。我把log-impl配置成org.apache.ibatis.logging.nologging.NoLoggingImplSpringBoot的日志級別設(shè)為INFO只保留業(yè)務(wù)關(guān)鍵日志。6. 項目實操心得與后續(xù)擴展方向6.1 復(fù)盤這次CRM改造里最值得說的幾個教訓(xùn)整個項目做完我復(fù)盤了一遍有幾個點值得單獨提醒。第一個是關(guān)于Session存儲。一開始我把用戶對象全部放進Session里面有位圖、頭像字段等冗長信息用戶在個人中心上傳新頭像后Session里的舊數(shù)據(jù)還留著展示還是舊頭像。后來把Session對象瘦身成ID和關(guān)鍵標識需要完整信息時再查庫問題解決。第二個是關(guān)于FreeMarker模板緩存。上線前我把cache改成了true結(jié)果有一次改了頁面上的一個錯別字重新部署后發(fā)現(xiàn)頁面沒變排查才想起來是模板緩存的問題。生產(chǎn)環(huán)境如果有模板變更要么重啟服務(wù)要么用腳本清空freemarker緩存目錄這個坑影響不大但很惱人。第三個是SQL注入。我在寫客戶搜索功能時曾經(jīng)圖省事直接用字符串拼接條件結(jié)果被測試同事傳入特殊字符搞崩了查詢。后來全部改成MyBatis的#{}預(yù)編譯參數(shù)這個教訓(xùn)我在代碼里貫徹得很徹底所有動態(tài)條件都走XML的if標簽配合#{}絕不拼字符串。第四個是ECharts圖表的舊數(shù)據(jù)覆蓋。前面已經(jīng)提過這個問題如果不在setOption時處理報表數(shù)據(jù)一刷新就顯示混亂。我后來做了一個公共封裝每次繪制圖表前都強制清空舊實例。6.2 CRM系統(tǒng)可以持續(xù)演進的幾個方向核心功能落地后我整理了目前沒做但值得擴展的方向給有同樣需求的朋友一個參考導(dǎo)出Excel銷售經(jīng)常要把客戶名單導(dǎo)出給領(lǐng)導(dǎo)看我用Apache POI解決了這個問題模板導(dǎo)出客戶列表、商機報表按照標題里提到的“java poi word能生成圖表嗎”這個思路擴展數(shù)據(jù)還可以導(dǎo)出為帶圖表的Word文檔。自動提醒每個銷售登錄后能看到今天需要跟進的客戶列表靠cron定時任務(wù)掃描next_contact_time把過期未跟進的客戶推送到首頁待辦。WebSocket消息通知客戶被分配、商機階段變化時給相關(guān)銷售實時推送消息比刷新頁面體驗好很多。數(shù)據(jù)大屏把ECharts的報表做成一整塊大屏頁面投到銷售辦公室電視上實時展示整體業(yè)績和漏斗轉(zhuǎn)化這對管理層的直觀沖擊力很強。多租戶隔離如果以后要給不同分公司獨立使用可以在所有業(yè)務(wù)表加一個org_id字段實現(xiàn)數(shù)據(jù)隔離而不用重新設(shè)計表結(jié)構(gòu)。我在實際使用這套系統(tǒng)的過程中最深的感受是技術(shù)的復(fù)雜度永遠是第二位的業(yè)務(wù)模型是不是貼合銷售真實工作流才是CRM能不能活下去的核心。SpringBoot、ECharts、MySQL這些都是隨手就能上手的工具難的是把“客戶、商機、跟進”這條鏈路理解透再把它們穩(wěn)妥地落到代碼和表結(jié)構(gòu)里。希望這篇復(fù)盤能幫你在自己的項目里少走幾條彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲AV色图| 九九九九九九精品| 天天爽爽爽爽| 欧美色图99| 少妇国产不卡| 日本在线不卡一二区| 精品九九九九九九| 日本高清一本二本免费不卡| 中文字幕 一区二区 亚洲无码| 日韩黄片影院| 2021国产成人精品久久| 综合少妇网| 乱码熟妇人妻久久久| 久久久男人的天堂| 久久久蜜桃一区二区三区| 天天视频黄| 尤物AV免费网站| 国内黄色精品| 久久超碰爱| 亚洲一区二区精品福利| 97精品熟女少妇一区| 少妇精品久久| 色一区二区三区综合| 激情四射婷婷四五月天| 黑丝内射一区二区三区| 国产AV无码AV| 日韩性爱再线视频| 综合在线导航一区| 中国女人内射6XXXXX| 很很操在线| 亚洲欧美洲综合| 久久九九热| 夜夜爽爽夜夜精品视频| 色网在线| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 超碰碰97| 天堂日本亚洲欧美| 九月AV| 91热| 亚洲人久久久久日| 91丝袜美女视频| 亚洲骚男同com| 日本黄色裸日本黄色裸体| 深夜啪啪啪视频免费| 一级久久性爱视频| www五月| 丰满人妻一区二区三区| 久热久| 激情久久久| 人人操人人叉人人插人人| 一本大道不卡一二三区| 日韩性爱播放| 亚洲色天堂日韩中| 亚洲精品一二三四区| 亚洲免费精品一区| 97在线青| 亚洲色天堂九9| 日韩中文字幕宗合在线| 草久在线| 性在久久久久久| 国产美女自拍AV| 亚洲密乳AV| PMv在线观看| 日韩成人高清一区二区| 操逼片中文| 成人午夜无码视频| 亚洲色欲一区二区三区| 久操 高清| 久久久久久中文版| 99re视频在线播放青草| 男人天堂电影院| 精品三级在线专区| 国产视频不卡在线观看| 98一区二区精品| 97色五月天完| 无码男人天堂| 国产久久天堂资源| 国产无马视频| 综合网久久| 99re99在线视频| 91欧美在线| 蜜乳AV.COM| 中文字幕精品资源在线| 欧美久久草熟女| 国产 日韩 欧美高清| 97干97色| 国产尤物AV尤物在线观看不卡| 欧美 亚洲 偷拍自拍| 中文字幕老熟妇黄色视频| 久久超碰、| 热热色综合网| 日韩午夜国产| 少妇69中文| 欧美少妇色综合| 九九热re99re6在线精品| 亚洲一区在线观看欧洲| 五十路三区在线| 日本东京热久久久电影| 韩国一级婬片A片AAAAA| 91新在线欧美| 欧美色图99| 欧美情色亚洲| 91色人| 国产青青美女玩逼视频| 97久久超碰| 日本123区操B视频| 天美传媒Av在线| 综合 亚洲 欧美| 国产精品嫩草影院免费| 欧美性综合| 91一区二区三区蜜桃| 久久精品国产72国产精品福利| 日韩欧美视频青青| 亚洲男人在线观看天堂| 日本三级大片| 国产搭汕a级片| 最新av中文字幕高清| www狠狠| 天天插夜夜爽| 99e久久国产精品| 日本天天色| 超碰97人人乐| 日韩不卡毛片Av免费高清| 日本 免费 一区二区三区 久久香蕉 | 久久AV无码1区2区3区| 视频在线97| 天堂中文日本在线观看| 久久精品国产97欧美精品亚洲 | 亚洲在线网站| 97视频7| 91色色网站| 99亚亚热| 偷拍精品一区二区三区| 九九久久一区二区三区| 国产精品亚洲无码| 成人久久久精品| 人妻一区视频| 99热一区二区三区四区| 日本在线伊人啪啪| 嗯嗯嗯嗯啊啊啊好紧好大| 99re欧美| 国产13区| 99精品欧美一区二区三区桃色| 午夜激情床戏激情| 久久五十路熟女人妻| 精品乱子一区二区三区99| 超碰97人人cao| 97超碰天天爱天天爱| 国产福利电影| 九九九国产精品| 屌逼传媒| 亚欧成人综合影院| 亚洲色图欧美色图综合| 婷婷人妻激情| 久99| 久久亚洲AV无码白度| 78p欧美| 久久黄色视频一区二区三区| 精品综合久久久久久97| 色五月第四色| 国产亚洲国产超碰| 一区二区中文| 亚洲精品97久久中文字幕| 天天爽天天爽| 欧美黄色大片在线观看 | 久操热| 亚洲超碰97| 人妻无码后入| 曰韩精品九九无码| AV老汉| 2024年最新色情网站在线观看| 久偷拍| 久久男女激情视频网站| 自拍偷拍第26| 久久69| 欧美日韩亚洲电影| 超碰日本97美女人妻人人玩人人爱| 日本十八禁免费看污网站| 暴力av在线| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 色蜜AV| 国产视频一区二区三区在线免费观看| 四季av一区二区凹凸精品小说 | 91在线页| 亚洲欧美日韩精品久| 亚洲av噜噜噜噜噜噜| 97视频免费在线| 亚洲天堂自拍| 日本精品一区三区| 丁香五月社区| 网页导航五月天免费一二三区| 在线视频 亚洲精品| 国产高潮AA片免费看| 亚洲美腿丝袜香蕉影视欧美成人| 99999精品成人| 日本欧美亚洲高清在线看| 91这里只有精品| 亚洲中字慕不卡| 国产无码高清操逼视频| 玖玖爱一区在线| 今日头条成人一区二区三区四虎精品| 9国产超碰| 内射卯月麻衣| 中文字幕狠狠玩| 精品综合久久久久久97| 8050无码八戒| 色综合一区二区三巨| 色综合av男人天堂| 国产精品爱欲| 日韩 欧美 国产 麻豆| 十八禁电影伊人网| 亚洲无限观看| 亚洲色色探花| 亚洲日韩青青草色月| 69久久| 精品美女久久久久| 色噜噜人妻av中文字幕| 麻豆国产尤物AV| 五月丁香啪啪啪| 亚洲男人天堂Av| 亚洲欧洲小说图片视频| 亚洲熟女国产综合另类| 国产极品999| 另类 综合 日韩 欧美 亚洲| 五月婷婷综合网| 少妇三p| 欧美综合第一页| 97超碰人人模人人拍人人| 亚洲āv网址在线观看| 亚洲系列第一页| 色色色色电影网| 亚洲男人的天堂V| 久草精品一区 | 亚州AV无码国产精品| 日韩欧美字幕亚洲一区二区| 中文字幕丝袜人妻| 欧美色图在线视频少妇| 亚洲色图美腿丝袜| 性影在线视频| 日本久久精品| av优播| 欧美洲精品一级| 一区二区视频在看| 日韩美女操b| 91xingse| 天美传媒AV在线播放| 少妇无码av专区线| 日韩影片中文字幕一区二区三区| 久久亚州大香蕉| 视频国产欧美在线播放| 欧美色婷婷| 国产精品一区二区麻豆| 精品少妇人妻av久久免费| 天天操女人| 中文字幕制服诱惑| 亚欧性爱在线无码| 久久久少妇诱惑精品视频| 黄片免费视频2019| 美女的肌被草喷水视频| 少妇综合| 日韩AV一区二区三区三州三州| 国产精品成人午夜福利| 啊啊啊久久| 亚洲天堂精品日韩电影| 另类图片五月天| 亚洲精品久久久久久久蜜桃臀| 舔舔啊| 五月情色天| 亚洲淫色网中文| 岛国在线一区二区三区| 在线国产探花| 亚洲影院小综合| 熟女自慰久久久| 欧美大香蕉卡久久| 亚洲中文人妻色| 麻豆国产成人精品| 日本九九久久99播| 亚洲无992tv| 中文字幕日产av人| 天天干天天燥| 91欧洲入口| 久久色情| 国产日逼视频| 中文精品少妇天堂| 91亚洲精品青草| 国产又黄又爽又刺激久久久久久| 亚洲少妇激情一区二区三区| AA丁香综合激情| 69少妇一区二区| 麻豆一区二区三区在线看 | 精品视频一区二区| 中文字幕在线免费观看2| 超碰天天操| 久久久穴999| 最新日本中文字幕| 日本一级特级毛片视频| 亚州性色| 日本人妻伦在线中文字幕| 爱爱动态试试看6 0秒| 精品少妇一区二区三区在线视频 | 操操操操网黑人| 国产不卡片| 国产野战露脸在线播放| 日韩黄色片子| 久久r精品| 国产精品suv一区| 日本综合色图| 久久九色| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 制度丝袜99| 91熟女网| 欧美综合色,www| 后入式福利| 久久精品综合| 啊啊在线| 欧美黑人熟妇精品91| 性色高清..……| 欧美春色| 精品一区二区三区18| 高清肉丝中文无码| 久久国产精品一级二级三级| 97干色天堂| 91久久国产精品| 色拍偷亚洲| 91亚洲图片| 春色91| 亚洲第一页色网| 色五月AV在线| 精品三级在线专区| 日韩熟女操逼| 夜夜 中文视频rt| 国产精品视频麻豆入口| 久久鲁夜| 97综合网| 亚洲成人网站在线观看| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 少妇3P性爱自拍| 亚洲国产精品9999在线观看| 久久毛卡| 日本曲间由美性生活片| 啊啊啊不要啊啊受不了了视频在线| 日韩啪啪啪视频| 一区e区三| 手机午夜电影神马久久| 日韩一级特黄av毛片| 天天影视网综合少妇| 校园春色中文字幕AV| 啊啊啊无码| 国产无套粉嫩白浆在| 欧洲乱码视频| 91中出| 无码黑人精品一区二区三区三| 96精品在线| 97在线欧| 日va操| 青苹果影院男人的天堂| 免費黃色視頻觀看一| 试看60秒 爽| 中文字幕1区2区| 九九av| 日本日逼高清| 日韩操呦呦影院在线观看| 蜜臀久久99精品久久久久久无删减 | 十八禁电影伊人网| 欧美日不卡| 亚洲se91| 九热视频| 国产91av在线播放| 久久久精品电影| 欧美性爽xyxOOOO| 色综合一区二区三区| 美骚妇av高清在线| 性在久久久久久| 人妻人妻天天碰| 91高清无码下载| 美女大乳久久久久久久女人18| 婷婷色香| A 在线网址| 日夜尻逼网| 五月香婷婷| 国产精品免费久久久久久久久久| 天天影视综合网欧美精品| 色97干| 大香蕉十区| 蜜臀在线免费观看在线免费观看| 91大神电影天堂| 国产精品白丝在线播放| 揉揉揉夜夜| 91丝袜在线观看| 欧美色婷婷| 手机看av网站在线看| 综合久久97| 中国小夫妻勾搭露脸淫荡对白| 人人操人人爽人人操人人| 国模无码一区二区三区在线| 欧美 亚洲 制服 精品| 九九九九AV| 日日摸日日碰夜夜爽视频| 色偷偷色偷偷欧美日韩| 九九九九精品视频| 欧美色蜜桃97| 免费男人的天堂| 91超级碰碰| 99re欧美| 国产二区三区粉嫩在线| 伦理片秋霞免费影院| 国产内射爽爽大片| 碰人碰碰人人开房人肉| 狠狠久久四虎| 色五月亚洲| 久久久久亚洲Aⅴ无码| 尤物网站91| 天天综合中文字幕 91| 国产又大又粗又长视频| 美女干逼2| 欧美成不卡网| 国产精品女同| 亚州再线| 色女99一级片在线观看| 蜜臀久久99精品久久久老,,| 99热官网| 伊人天堂在线| 欧美亚洲20p| 97超碰资源网| 久久精品中文| 亚洲丰满很很操| 亚洲 欧美 日本 国内 首页| 2010男人的天堂| 色色热| 情色av电影| 97在线精品观看视频| 欧美三级一级| 伊人aaa| 欧洲亚洲综合| 精人妻无码一区二区三区伊人直播| 日本肏逼视频在线观看| wwe 天天干.com| 亚洲 综合 欧美| 久久超碰98| 欧色综合| 欧美日日操| AV一二区| 在线观看AV片| 日本免费二区三区| 98色网| 久久久久ab| 国产精品区在线12p| 97人人操人人摸人人爱| 99热婷婷| 9久精品视频在线观看| 高清孕妇孕交 交孕妇| 我要色综合网| 综合五月婷婷| 亚洲凸凹超碰成人| 欧美精品久久96人妻无码| 乱伦Av网| 欧美色一二三| 狠狠色狠狠色狠狠五月| 91在线欧色| 欧美92| av资源在线播放天堂| 男人的天堂2000| 欧美性爱91| 中文字幕制服欧美久久一区| 久久久久久久久久9| 日韩另类| 97国产|免费| 丁香六月婷婷| 中日韩久久久免费看| 乱伦av国产| 另类欧美| 综合久久婷婷| 国产黑白丝在线| 性交一区二区在线播放| 色爱天堂| 亚洲激情深爱文学小说网站| 久久精品国产亚洲AV片多多| 欧美大的香蕉有线电视视频| 丁香五月婷婷啪啪| 99re这里只有精品3| 青青草日本无码| 超碰超碰欧美| 日韩av女优在线免费一区| 97在线日韩中文字幕| 国产亚洲色婷婷99精品91| 东京热99999| 日韩乱中文| 亚洲男人的天堂网| 日韩中文字幕人妻视频| 色男人色天堂东京热| 高清成年美女黄网站免费大全| 神马久久69| 国产特级毛片AAAAAA高潮流水 | 1024午夜激情男人的天堂| www.91人妻.com| 色色色色色色色色综合| 成人日本视频人妻在线| 狠狠爱夜夜| 丰满少妇人妻久久久久久| 日韩黄片影院| 日本孕妇孕交| 综合色色婷婷| 欧美偷拍区| 欧美色爱综合| 99丝袜福利在线播放| 免费少妇一区二区| 91色射| 日韩性爱电影一区| 一区黄二区黄| 人妻熟妇久草在线| 清纯唯美激情| 亚洲色综合| 超碰91在线| 一区二区三区美女超清| 男人午夜天堂| 久久精品高清无码一区| 日韩国产成人自拍视频| 超碰综合色| 神马久久久久久久久| 亚州综合AⅤ| 四虎影视精品| 91影视亚洲| 综合日韩激情另类图片| 色官网在线| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 一区二区精品更新提醒| 福利在线黄片| 一级特黄aaa大片在线观看成人一级片在线观看| 亚洲图片欧美另类综合免费视频大大香| 另类在线| 玖色AV| 丁香五月性| 熟女突然公开看18禁影片| 精品国产乱码| 色综合V| 99久久无码| 亚洲AV麻豆Aⅴ无码电影一| 欧美 亚洲 在线| 亚洲色人阁| 2017天天拍大香蕉| 91色香| 激情小说日韩无码| 26uuu国产亚洲综合| 色色色日本| 久久黄色视频一区二区三区| 欧美精品99久久久**| 久久性爱视频免费看| 青娱乐国产精品| 欧美美女视频| 亚洲人精品久久久| 青青青国产手线观看视频2| 天天干干天天干干| 人妻AV在线| 新版天堂中文资源8在线| 成 人 A V免费视频在线观看| 偷拍超碰| 成年无码动漫av片无尽在线| 国产25页| 一级日本牲交大片好爽在线看| 久久久久密臀一区二区| 国产乱码精品久久久久久| 天天内射| 91一区二匹| 日韩精品国产一区二区| 9久久精品| 97碰碰日本乱偷人妻中文的| 一本色道久久综合狠狠操| 大香蕉伊人网| 一区在线国产播放| 嗯嗯嗯不要不要免费视频| av橘色网站| 97爱b| 理论久久婷婷网8| 国产精品分类在线观看| 欧美 色 亚洲| 51一区二区三区| oumeizonghese,www| 日韩在线一区高清在线| 色综合91好| 99无码视频| 操淫穴亚洲五月丁香| 亚洲色色探花| 男女无套 免费网站| 中文字幕在线观看AV| 蜜桃av色偷偷av老熟女| 国产人妻久久精品一区二区三区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 97亚洲欧美日韩| 日韩国产十八禁| 久久中日麻豆| 久久久久深夜无码| 午夜欧美精品久久久| 大香交| 蜜臀AV一区二区三区| 亚洲狠狠入| 9美女超碰在线免费观看| 欧美一区二区| 97精品网| 澳门黄片一香蕉视频| 91丨九色丨国产丨人妻在线| 操日韩第| 思思热免费视频观看| 五月丁香在线| 丰满少妇人妻久久久久久| 夜夜高潮夜夜爽| 裸体美女久久久| 欧美丝袜美女电影一二三四区| 中文字幕91综合| 嗯嗯啊啊好大好爽| 欧美精品欧美精品系列| 久久精品国产久精国产| 99热这里都是精品| 国产强奸乱伦第1页| 免费看黄视频亚洲网站| 破苞ⅩXXX性无码动漫无码| www久| 亚洲操人| 亚洲熟妇丝袜在线观看| 亚洲色图伊人网| 亚州综合色| 欧美极品性爱天天射| 国产激情视频在线观看| 少妇天堂网络| 国产一进一出视频网站| 日韩午夜啪啪视频| 欧洲乱码一区二区| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 国产特级毛片AAAAAA高潮流水 | 蜜臀av在线播放一区二区三区| 日韩欧美被操黄免费观看| 婷婷10月天青娱乐| 能直接看AV的网站| 欧美日韩一干二干| 极品色综合| 欧美婷婷五月天| 久草男人天堂| 自怕偷自怕亚洲精品| 蜜臀久久一区二区| 欧美后入式| aⅴ日韩成人电影av在线免费看av大全 | 99精品无码| 久久久久亚洲AV无码专区少妇| 99热这里只有精品9| 欧美爱国产综合、| 亚洲欧洲综合成人av一区| 中文字幕二区日韩天堂| 麻豆成人影音在线| 久久九九99| 天天综合网亚洲综合网| 国产精品无码论坛| 日韩淫色网| 大香网站| 97精品网站| 日韩色| 97欧美久久久久久久| 天天操天天干一区二区 | 综合久久2017| 久久久爆乳翘臀一线天伦理视频| 午夜精品久久久久久久第一页按摩| 3D污黄视频在线观看| 91欧美巨乳| 亚欧日韩成人| 操淫穴亚洲五月丁香| 国产精品宅男免费| 四虎影视永久在线观看精品免费网站| 操死我了嗯嗯嗯| 大香蕉青青9| 日韩中文字幕国产| 婷婷15月天青娱乐| 99久国产精品午夜性色福利| 国厂麻豆77q4| 岛国大片在线观看网站入口| 九九av| 综合一区中亚洲国产成人综合精品 | 欧美A片中文字幕| 国产超碰国产97| 欧美高清18A片| 性色高清在线| 四虎国产精品永久地址入口| 日韩av电影网站| 丰满的三级少妇欧美久久久| 羞涩视频| 啊啊啊啊啊在线视频| 日本三级一区二区 在线| 欧美日韩国产色五月综合在线| 日本精品第一视频在'| 欧美亚洲综合高清在线| 伊人成人情色综合| 免费看日产一区二区三区| 97中文字幕一区| 中文字幕av色| 狼狼色丁香久久婷婷综合五月| 欧美高清91| 日本 成 人 小说 电影 一区二区| 精品国产Av无码久久久伦古装| 夜夜福利| 综合色图区| 北约熟女超碰| 伊人97| 伊人成人情色综合| 综合网色| 国产精品第一区第一页| 深夜激情| 欧洲射精91| 玖玖爱免费观看视频| 99精品在线| 日本成人免费一区二区三区| 久久9免费视频| 欧美最婬乱婬爆婬性视频 | 熟女突然公开看18禁影片| 国内亚洲高清无码| 日本不卡免费二区| 秋霞男人网| 欧美夜夜狠| 欧美日韩国产高清在线一二三区| 国产综合日韩伦理| 四虎免费在线播放| 97超碰天天爱天天爱| 丁香六月婷婷久久综合| av日韩国产一区二区| 翔田千里AV无码秘 三区| 欧美激色| 亚洲码和欧洲精品激情系列| 久久久久成人蜜桃精品| 成人性爱高清视频免费看| 免费看黄片现成| 97久久久久| 成人在线永久| 天天日天天搞天天干| 九九伊人网| 日韩激情无码影院| 天天久久久久久| 精品国产乱码久久久兰草影视| 99r九九| 欧美黄色片在线播放| 亚洲精品九九九| 少妇的嫩逼图片| 丁香婷婷色五月| 日韩AC| 欧美极度丰满熟妇hd| 酒色综合网| 欧美色网络| 欧美色蜜桃97| 亚洲丨在线| 中文字幕一二三av| 中韩中文字幕在线观看| 夜夜操夜夜高潮夜夜爽国产精品区| 天天色怡春院| 天天操天天日天天干| 色偷偷超碰亚洲| 亚州大图综合色图 | 亚洲欧洲国产综合av| 精品一区二区综合熟妇| 思思热er精品视频| 懂色AV蜜臀无码精品APP| 国产精品香蕉热久久新品| 在线观看黄色电话| 久热婷婷| 激情综合色| 天天综合亚在线| 女一区二区| 午夜毛片高清免费不卡| 五月天欧美色图| 精品人妻久久久久一区二区三区| 熟女91网站| 国产粉嫩蜜臀av一区二区三区| 久久在线观看免费视频| 三级色综合| 日本在线激情一区二区三区| 中文字幕在线播放2中文字幕在线观看2 | 99热这里只有精品9| 婷婷99狠狠| 人妻密肉在线观看| 久久精品99久久久久久| 东京热,男人的天堂| 尤物av网站免费在线播放| 思思热在线视频免费| av在线一区二区三区| 免费久久精品麻豆一区二区av| 色五月激情综合网| 国产农村妇女精品1区二区| 色眯眯av| 不卡二三区人妻少妇| 亚洲国产av中文字幕久久| 久久性爱大全| 欧美拳交在线播放| 中文字幕女同在线| 777超碰| 亚洲无无码αⅴ每日更新| 欧美做爰无码A片视频| 吉田爱美AV在线| 欧美爆操91| 色偷偷2020免费视频播放| 操一操摸一摸| 殴美在线AⅤ| 伊人色综合超碰| 97国产精品国| 熟妇女伦乱视频视频| 欧美福利视频啊啊啊啊| 午夜福利成人免费视频| 欧美中文字幕男人天堂久久精品| 精品久久艹| 曰韩中文人妻视频| 久久久久久久久成人av解说| 岛国小电影| 伊色久人大在线| 防屏蔽在线视频| 中文字幕诱惑制服人妻丝袜美丝袜美| 青青草国产欧美非洲黑人| 激情接吻视频久久久久久| 天天干一区二区| 夜夜嗨一区二区三区三州加勒比| 男女日B国产| 中文字幕老熟妇黄色视频| 欧美 综合 亚洲| 色色网91| 女人一区| 亚欧成人一级片在线播放| 国产CHASE男男GAYGA 毛多色婷婷| 熟女中出视频| 国产成人亚洲精品无| 久久久人妻| 蜜臀久久99精品久久久久电影| 911av网站免费观看| 蜜臀人妻少妇久久在线观看| 天天看天天日| 97超碰jingpin| 久久啊啊| 日韩精品区二区三区不卡| 色97欧美| 亚洲综合激情五月久久| 男人亚洲91首页在线| 久久久一区二区三区麻豆| 国产一级αv免费看片| 色阁阁AV综合网| 久久久精品中文字幕爱豆| 蜜臀精品1区2区| 激情婷婷综合久久| 日本不卡码黄色| 国产三级片在线观看| 艹我哪美一区无码| 国产高清成人免费视频| 国产中文字幕曰本毛片| 成人在线永久| 操逼操逼逼操操逼91 | 欧美激情久久久久| h无码动漫在线观看| 精品久久青青草| 欧美精品三级黄片| 国产精品乱码久久久久久久久久久久| 免费观看网黄| 97看操| 国产综合永久精品日韩鬼片| 后入式999| 岛国片在线观看视频亚洲| 欧美综合综合| 天天综合网一91网| 久久久无码精品人妻二区| 麻豆这里只有精品| 91综合中文字幕| 超碰碰97| 一级毛片久久久久久久女人18| 啊啊啊啊好疼视频| 久久婷婷精品| 亚洲欧美伦综合| 激情文学 国产一二三aV| 亚洲最大成人a毛毛片| 日夜尻逼网| 色婷久久| AV麻豆免费一区| 色拍偷亚洲| 亚洲成人久久美女| 国产一级内射高清视频 | 欧美九一精品久久久熟妇| 亚洲欧美精品福利在线| 精品黄色电影| av麻豆啪啪| 91精品无码人妻系列| 国产精品久久久| 国产欧美成人精品| 日韩性爱高清免费视频| 中文操逼字幕| 天天干夜夜肏| 熟女人妻久久中文字幕一二区| 2024黄色视频| 欧美精品欧美精品系列| 久久久工口| 操逼视频色| 精品一区二区三区四区女| 欧美gv在线观看| 97久久久精品| 三级三级三级a级全黄三| 久久机热| 亚洲午夜AV| 一个色导综合| 亚洲精品97久久中文字幕| 午夜精品99久久久久传媒| 99老司机精品视频在线观看| 日本欧美不卡| 久久精品日韩专区免费观看| 高清不卡国产| 亚洲欧美国产其他二区| 欧美A片中文字幕| 男人的天堂com| 青青草男人天堂| 91精品久久久久久综合五月天| 日韩一级性爱无码| 熟女少妇一区二区三区| 盗摄 精品 另类 一区| 欧美性爽xyxOOOO| 性感美女啊啊啊在线| 中文字幕一区 二区三四五 区日 日骚| 男人高清无码一区二区| 9国产超碰| 亚洲999综合| 亚洲色图国产另类| 成年人黄色视频免费| 又黄又硬又粗又长国产视频| 91夜夜蜜桃臀1区2区3区| 国产伦精品一区二区三区视频女| 国产亚州日韩欧美看片| 蜜桃视频成a人v在线| 中日韩免费看男女操逼大全| 天天综合中文字幕 91| 一二区在线观看视频| oumeizonghese,www| 亚洲综合性感在线| 久久9亚洲| 99热亚洲天堂| 久久久蜜桃一区二区三区| 激情婷婷五月天| 久久九色| 夜夜草网站| 日韩成人综合网| 久久婷婷五月天| www.狠狠| 色色色色综合网| 大香蕉人妻| 色九九九九久| 97香焦色区| 国产欧美伊人| 91在线视频免费中出| 中文久久一区| 美女91在线观看| 第45页一区二区| 污污污8888| 久久久久9999精品九九九| 欧美日动态视频| 色九九九综合| 五月婷婷青青草娱乐伊人| 91精品在线播放| 久久精品无码一区二区三区| 美女天天干| 日韩十八禁| 亚洲无码com| 人人摸.人人色| 黄色片一区二区三区四区五区| 久操com| 国产精品久久久久av| 亚洲天堂男人在线| 97视频在线免费看| 91天美传媒在线观看| 后入日本1234| 日日夜夜精品视频| www.av家庭乱伦| 久久九九视频九九视频| 欧美婷婷五月天| 欧美精品成人亚洲| 欧美丝袜激情| 亚洲怡春院| 超碰95| 久久精品欧美一区二区三区不卡| 亚欧无码在线| 天天日天天插| 97精品视频网站| 亚洲小说视频| 成人毛片免费| 无码高清专| 国产欧美美女免费观看视频| 日韩图区| 天天操天天干美女网址导航| 丁香色狠狠色综合久久小说| 国产亚洲精品av一区| 最新欧洲欧美日本激情网站| 偷拍超碰| 小电影欧美91| 啪啪啪精品| 激情网五月天| 小骚逼被操的爽不爽| 日日躁狠狠躁天天躁精品| JIZZJIZZ亚洲女人被躁| 能直接看AV的网站| 麻豆婷婷成人一二三| 日本 情色 1区2区3区| 亚洲天天综合| 欧美一区二区三区日韩| 青青久操| 日本加勒比无码专区| 国产精品视频一区二区三区八戒| 日日狠狠久久偷偷色综合免费| 亚洲视频二区| 91久久久亚洲| 天天做天天爽| 99国产在线绯色一区| 老熟女综合网| 伊人网综合在线视频| 91色噜噜狠狠| 国产丝袜啪啪| 亚一综合久久久久久久久久| 旡码电影特区| 亚洲高清综合网| 亚洲精品亚洲人成在线麻豆| 亚洲另类久操网| 夜夜性| 五月色网| 女人天堂网| 偷拍精品一区二区三区| 色色婷婷五月天| 国偷自 一区| 多毛小伙内射老太婆| 久偷拍| 97在线亚洲| 五月婷网站| www.操| 欧在线一二区| 午夜无码精品免费看性色| 99免费在线视频| 欧美婷婷久久| 国产精品福利资源在线尤物| 操狠狠| 亚洲男人电影天堂| 天天添天天干电影| 久久久无码精品人妻二区| 青青操狠狠撩| 九九九九九九免费视频| 黑人操一区二区| 嗯嗯,啊啊,国产精品| 91肉丝| 中文字幕少妇色| 亚洲一区操| 1204av韩国| 天天躁日日躁AAAAXXXX国产| 物尤视频一区二区| 大学生口爆吞精| 日韩一级二级三级免费看完整版国语版| 久久精品国产97欧美精品亚洲| 亚洲日韩国产欧美综合v| 久久久九| 丁香五月婷婷色| 激情一区二区| 天天爽爽爽爽| www.亚洲黄色| 97一区二区三区视频| AV无码久久久精品| 中国黄色特级精品一区二区三区片| 秋霞网—男女啪啪亚洲免费体验区 | 日韩成人精品视频自拍| 亚洲清纯唯美| 狠狠狠狠狠干| 综合情欲网| 欧美激情综合色综合啪啪五月| 欧州91高潮| 97视频620| 色欲日韩欧美在线一区| 欧美激情 亚洲色图| 中日无幕一二三四区| 中文字幕一区二区三区字幕| 九区国产| 天天精品| 日韩无码极品| 综合久久99亚洲人妻中文在线| 亚洲精品aa久久伊人| 婷婷激情四射| 欧美最婬乱婬爆婬性视频 | 欧美性爱超碰97| 国产有码一区| 久久鲁干| 国产精品精品系列在线观看| 日本精品免费一区二区三区四区| 日韩中文字幕人妻视频| 九九热精品视频六| 少妇与黑人高潮在线| 久久男女激情视频网站| 国产精品女aA片爽爽视频| 91熟女综合| 日本一级一级一级一级| 97资源视频| 欧美情色亚洲| 国产白丝在线| 综合激情婷婷| 日日干夜夜操视频h| 免费精品福利在线观看| 久久久久久久强迫| 99re在线视频这里只有精品| 蜜桃久久综合视频| 日韩av一级黄片| 13小男生GAY自慰脱裤子| 久久噜噜噜精品国产亚洲综合| 抽插无码高清一区| 蜜乳视频网站| 日韩精品 欧美激情| 91/欧美| 啪啪视频mP4| 国产综合永久精品日韩鬼片| 日韩av性爱在线播放| 外国免费性情大片| 欧美传媒一区| 97大色网| 久久五月综合| 国产精品视频白浆免费| 免费av在线播放二区| 青草精品视频-日本久久久久网站| 日韩亚洲97| 超碰国产情侣自拍网| 激情AV| 人妻99p| 精品国产人成在线| 极品销魂美女一区二区| 蜜桃久久一区| 亚洲精品国产熟女久久久| 热久日综合| 熟妇一区二区三区| 天天日日舔舔| AV 少妇 人妻 偷拍| 久久精品亚洲成a人天堂| 欧美国产欧美在线观看| 日韩黄片影院| 国产精品国产亚洲区艳妇糸列| 9118禁| 亚洲丝袜诱惑| 69精品| 91视频综合网| 亚州Av天美传媒| 狠色婷婷久久一区二区三区_| 美国久久一二三四| 四虎AV影视国产精品亚洲精品| 夜夜操91744565| 无码91| 久久精品国产72国产精品福利 | 997色在线| 高清不卡 中文 人妻| 日本熟妇色熟妇在线视频播放| 少妇同性| 蜜臀99999| av天天在线| 色婷婷久久综合超碰| 欧美超碰97| 91国产精品在线看| 亚洲一区二区麻豆影院| 99热成人| 你操综合| 亚洲熟女乱色| 精品国产一区二区三区久久久蜜臀 | 欧美一二三区四五区| 日韩国产十八禁| 97在线观看免费视频l| 亚洲欧美日韩国产丝袜自拍中文| 亚洲 综合 第一页| 99久在线精品99re8| 欧美色图另类图片|