<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      真實業務環境-需求分析思路(一)

      智聯-我的待辦頁面增加查詢字段

      寫本篇文章的目的是記錄一下我真實業務下的第一個需求,其次是分享我的實現思路和優化過程。文章的目的是幫助自己和其他開發人員在面對新需求時,更加系統地思考和執行,從而避免由于缺乏全局視角而帶來的潛在問題。

      舉個例子:

      數據流向:明確前端需要展示的數據及其來源。后端需要提供哪些接口?數據如何傳遞?
      接口設計:如何設計 API 接口,以確保前端能方便地獲取數據,同時保證數據的完整性和安全性?
      交互邏輯:用戶操作后的交互效果是什么?如何處理用戶的異常操作?

      注意:本篇文章的需求實現并不難,如果是學代碼技術不建議看

      需求分析

      (智聯)我的待辦 ---> 查詢條件新增創建人省份
      image-20240717110303118

      思路:

      (1) 在前端添加一個輸入下拉框,這個下拉框中的數據和省份內容一致就可以(數據的獲取可復用)

      • 在點擊查詢時,需要根據創建人省份去查詢我需要處理的工單(待辦工單)
      • 修改后端list接口的查詢條件

      (2) 工單不同狀態的數量統計需要修改

      • 在進行數量統計時,也要對創建人省份字段進行判斷
      • 修改queryCount接口的查詢條件

      (3) 重置按鈕

      • 在我們點擊重置時,新添加的這個字段需要置為null
      • 修改前端數據

      具體實現

      添加前端按鈕

      如果對項目不熟悉,可以通過系統中的菜單管理定位到前端組件路徑 workOrderSl/toDoOrder/index,然后根據該路徑找到代碼中的 index 組件。

      看下圖:
      image-20240718110907803

      el-row 表示行
      el-col 表示列
      el-form-item 一個表單項
      el-select 表示這里是一個可選的輸入框 v-model 綁定對象中的數據
      el-option 表示el-select中的選項 里面使用v-for表示循環

      創建人省份、省份等都是一列,即。 這里可以思考一下,創建人省份和省份中的數據是一致的,都是省份地市數據,所以這里我們可以復用省份的代碼邏輯。
      image-20240718100132534

      不同狀態的工單數量統計

      image-20240718105249736

      在queryPro中存在queryCount方法

      在這個方法中有四個狀態下的數量的統計,但是請求的都是后端的同一個接口

      image-20240718105452629

      在formData請求屬性中添加新的字段屬性createPro

      在后端這個數量統計的接口上需要加上creatorPro字段的判斷,如下:
      image-20240718110106970

      查詢按鈕

      和上面的接口實現一樣,在原有的基礎上擴充一個字段,只需要在后端sql的 where 后面加一個條件

      image-20240718110106970

      重置按鈕

      image-20240718110359558

      當我們點擊重置按鈕時就會觸發resetFormData方法將 所有的屬性 置為null ,所以這里需要添加新的字段,否則重置對新的字段沒有作用

      隨后調用queryPro()重新查詢數據

      resetFormData() {
        this.formData = {
          creatorPro: null
        }
        this.queryPro()
      }
      

      后臺-工單受理組人員姓名的模糊查詢

      記錄該需求是因為在該需求在測試時發現了代碼bug,并且該bug很有意思

      本文用于學習實際項目bug的排查思路,順帶學一點PageHelper知識!!!

      需求分析

      將姓名字段的精準查詢優化為模糊查詢

      • 在后端SQL查詢條件where處將姓名字段的判斷變成模糊查詢 --- 入門級別

      image-20240718143938409

      代碼Bug分析

      原始代碼產生分頁相關的bug

      • 如果有比較好的排查問題的思路,可以很快的找到問題 ---- 中簡單級別

      問題展示

      在無條件的情況下查詢出所有的添加成員,共8000多條

      image-20240718165926983

      查詢 "運維001" 無數據回顯(優化模糊查詢前后均存在這個bug)

      這個在知道時分頁的原因之后,發現只有第一頁的數據可以查找到,后面的所有的數據均無法找到

      image-20240718144141353

      問題排查

      思路:

      后端查詢時,根據name查詢的邏輯有問題?

      • 這里部分數據可以查詢到的就說明name查詢邏輯沒有問題
      • 這里我去分析了后端的代碼發現是沒有問題的,所以問題不是在這里

      剛開始并不清楚只有第一頁能查到,所以就想到為什么只有一部分數據不可以查詢,難道是因為某些 用戶對象數據 是無法被查到的?

      這個仔細一想就不可能。

      • 因為當時認為只有一部分數據不可以查詢,所以我就想可能是數據的問題?
      • 然后在debug的時候看到sql在查詢的時候有一個 not in ("id","id","id") 然后就印證了自己的這個想法
      • 但是后續添加一個人員后發現這個id多了一個正是添加的那個人的id,發現這里的這個ids是 已添加人員(剛熟悉這個項目,業務不熟悉,然后前后端項目中又沒有excludeids的注釋),所以并不是數據的問題,所以問題不在這里
      • image-20240718180106519

      初始思路就是這樣的,但是在debug的過程中發現問題都不是這些。

      debug發現數據獲取都是沒有問題的

      image-20240718190056428

      這里查詢到一個數據,說明后端是存在這個數據

      image-20240718190513631

      但是這里沒有查到數據

      image-20240718190610976

      說明問題肯定是出在這里!!!

      然后我去控制臺看了sql代碼

      SELECT p.id, p.province, p.city, p.employee_code, p.employee_name, p.org_id, (SELECT INSERT(p.employee_phone, 4, 4, '****')) AS employee_phone, p.type, p.state, p.isValid, p.creator_id, p.creator, p.create_time, p.update_time FROM employee_pro_10096 p WHERE 1 = 1 AND p.employee_name LIKE concat('%', '運維01', '%') LIMIT 10, 10;
      

      拉到navicat中運行,發現確實沒有任何數據

      image-20240719110927568

      發現limit 參數起始數據直接從第10條開始查詢?

      如果查詢的數據沒有10條,那查詢的結果集就會為空

      所以這里的分頁的參數計算肯定是有問題的

      image-20240719111300224

      這里的計算是有問題的!!!

      比如:當我們在前端界面第二頁進行查詢 "運維01" ,那么傳到后端的pageNo = 2 ,那么這里計算的startRow = (2 - 1) * 10 這樣就導致了問題。

      image-20240719111327700

      然后補齊思路

      image-20240719141919069

      繼續測試:

      這里劉的模糊查詢出來有280條數據

      然后我這里去30頁查詢,出現了bug

      image-20240719143629510

      image-20240719143810557

      debug解決:

      這里發現我們的startRow成功設置,但是我們的pageNo并沒有成功設置(記得前端接收pageNo)

      所以將if判斷從里面移出來,同時也避免了其他代碼復用這個類時造成意外的沖突!!!

      image-20240719144206375

      image-20240719143350970

      修改代碼如下:

      image-20240719150709318

      繼續測試:

      發現忘記思考一個點,就是當我們的當前頁數和itemCount相同時

      比如說當前頁為29頁,if條件就會變成 (29-1)*10 > 280

      • 所以修改判斷條件為 >=

      最后測試:

      站在用戶的角度去思考!!!

      我們去搜索某個名字的時候,不需要 當前頁在第幾頁就把數據顯示到第幾頁,而是默認第一頁就可以了(這個你可以試試,作為用戶正常的邏輯思維是這樣的)

      所以當(pageNo * pageSize) > itemCount 直接將頁碼置為1,防止出現最開始討論的問題

      image-20240719161612590

      到這里需求及bug就完成了。

      這里因為項目耦合性太強了,所以這里沒法使用PageHelper。這里建議學一下pageHelper的原理,看看和這個項目中的邏輯的差別,學習一下。

      posted @ 2024-07-23 22:57  Liberty碼農志  閱讀(225)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品三区二区一区一| 亚洲成在人线AV品善网好看| 野花社区在线观看视频| 国产福利酱国产一区二区| 日韩国产精品无码一区二区三区| 亚洲最大日韩精品一区| 人妻系列中文字幕精品| 免费午夜无码片在线观看影院| 四虎成人精品在永久免费| 国产成人精品一区二区秒拍1o| 性男女做视频观看网站| 国产午夜鲁丝片av无码| 亚洲熟女精品一区二区| 国产精品普通话国语对白露脸 | 在线天堂中文新版www| 99久久婷婷国产综合精品| 天堂网在线.www天堂在线资源| 99久久99久久精品国产片| 人妻少妇88久久中文字幕| 久久精品国产福利一区二区 | 在线a亚洲老鸭窝天堂| 蜜桃臀av在线一区二区| 99久久精品久久久久久婷婷| 日日猛噜噜狠狠扒开双腿小说| 国产精品色内内在线播放| 伊人久久大香线蕉av五月天| 精品国产午夜理论片不卡| 亚洲av无码之国产精品网址蜜芽 | 国产在线精品中文字幕| 丁香五月婷激情综合第九色| 国产日女人视频在线观看| 国产裸体美女视频全黄| 日韩中文字幕综合第二页| 国产精品中文字幕综合| 久播影院无码中文字幕| 久热这里只有精品6| 自偷自拍亚洲综合精品| 亚洲AV午夜成人无码电影| 日韩精品一区二区蜜臀av| 日韩有码中文字幕国产| 少妇上班人妻精品偷人|