99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數據時代【CDA干貨】用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數據把關的實戰(zhàn)指南
【CDA干貨】用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數據把關的實戰(zhàn)指南
2025-09-11
收藏

SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數據把關的實戰(zhàn)指南

在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗” 的核心紐帶 —— 例如訂單金額的計算規(guī)則、用戶等級的判定標準、庫存扣減的觸發(fā)條件等。但受系統(tǒng) Bug、數據異常、規(guī)則配置錯誤等影響,業(yè)務邏輯常出現 “設計與落地脫節(jié)” 的問題(如 VIP 用戶未享折扣、訂單運費計算錯誤)。此時,SQL 作為 “數據查詢與計算的通用工具”,能高效穿透海量數據,驗證業(yè)務邏輯是否精準執(zhí)行。本文將從實戰(zhàn)角度,拆解 SQL 驗證業(yè)務邏輯的全流程,提供可直接復用的方法與案例。

一、認知基礎:為什么需要用 SQL 驗證業(yè)務邏輯?

在討論具體方法前,需先明確 “業(yè)務邏輯驗證” 的核心定位 —— 它不是 “技術人員的額外工作”,而是 “業(yè)務與技術協同保障數據準確性” 的關鍵環(huán)節(jié),尤其在以下場景中不可或缺:

1. 業(yè)務邏輯的 “隱性風險” 需 SQL 穿透驗證

很多業(yè)務規(guī)則看似簡單,實則存在隱性依賴,人工檢查難以覆蓋:

  • 例 1:“VIP 用戶滿 200 減 50” 的規(guī)則,需同時滿足 “用戶等級 = VIP”“訂單實付金額≥200”“優(yōu)惠券類型 = 滿減券”“優(yōu)惠有效期內” 4 個條件,若僅抽查個別訂單,易遺漏 “用戶等級判定錯誤” 或 “優(yōu)惠券類型匹配偏差” 的問題;

  • 例 2:“庫存扣減” 規(guī)則要求 “訂單支付成功后才扣減庫存”,但系統(tǒng)可能因接口延遲,出現 “未支付訂單扣減庫存” 的異常,此時需通過 SQL 關聯 “訂單表” 與 “庫存變動表”,批量驗證扣減邏輯。

2. 數據量級決定 SQL 的 “效率優(yōu)勢”

當業(yè)務數據達到萬級、十萬級時,人工檢查(如 Excel 篩選)效率極低且易出錯:

  • 某電商平臺日均訂單量 10 萬 +,若需驗證 “訂單總金額 = 商品金額 + 運費 - 優(yōu)惠金額” 的計算邏輯,人工抽查 100 條訂單需 1 小時,而 SQL 通過聚合函數與條件判斷,可在 10 秒內完成全量驗證,并定位所有異常訂單。

3. 業(yè)務迭代中的 “規(guī)則一致性” 需 SQL 監(jiān)控

業(yè)務規(guī)則常隨活動、政策調整(如節(jié)假日運費減免、新用戶首單優(yōu)惠升級),需驗證 “新規(guī)則是否覆蓋所有目標數據”“舊規(guī)則是否已失效”:

  • 例:某平臺將 “新用戶首單優(yōu)惠” 從 “滿 50 減 10” 調整為 “滿 50 減 15”,需通過 SQL 確認 “調整后注冊的新用戶” 是否均享受 15 元優(yōu)惠,且 “調整前注冊的用戶” 未誤享新優(yōu)惠。

二、核心步驟:SQL 驗證業(yè)務邏輯的 “四步閉環(huán)”

SQL 驗證業(yè)務邏輯不是 “盲目寫查詢語句”,而是遵循 “目標明確→規(guī)則拆解→SQL 實現→結果分析” 的閉環(huán)流程,確保驗證精準且無遺漏。

1. 第一步:明確驗證目標 ——“驗證什么,驗證范圍是什么?”

首先需將模糊的業(yè)務需求轉化為 “可量化、可落地” 的驗證目標,核心要明確兩個維度:

  • 驗證對象:具體業(yè)務邏輯模塊(如訂單金額計算、用戶等級判定、庫存扣減、優(yōu)惠券使用);

  • 驗證范圍:數據時間范圍(如 “2024-10-01 至 2024-10-07 國慶活動期間”)、數據量級(如 “所有支付成功的訂單”“新注冊 30 天內的用戶”)、業(yè)務場景(如 “僅實物訂單,排除虛擬商品訂單”)。

示例

驗證目標:2024 年 10 月 1 日 - 10 月 7 日,某電商平臺 “實物類支付成功訂單” 中,“VIP 用戶滿 200 減 50” 的優(yōu)惠規(guī)則是否正確執(zhí)行。

2. 第二步:拆解業(yè)務規(guī)則 ——“將業(yè)務語言轉化為 SQL 可計算的條件”

這是驗證的核心環(huán)節(jié):需將自然語言描述的業(yè)務規(guī)則,拆解為 “字段關聯條件”“數值計算邏輯”“邊界限制” 三部分,確保無邏輯遺漏。

以 “VIP 用戶滿 200 減 50” 規(guī)則為例,拆解過程如下:

業(yè)務規(guī)則要素 具體描述 對應數據字段與條件
適用用戶群體 僅 VIP 用戶(用戶等級 = VIP) user_table.user_level = 'VIP'
適用訂單類型 實物類訂單(商品類目≠虛擬商品) order_table.goods_category != 'virtual'
優(yōu)惠觸發(fā)條件 訂單實付金額(商品金額 + 運費)≥200 元 (order_detail.goods_amount + order_table.freight) >= 200
優(yōu)惠金額限制 優(yōu)惠金額 = 50 元(不可疊加其他滿減券,且優(yōu)惠金額≤實付金額) coupon_table.coupon_type = 'full_reduction' AND coupon_table.discount = 50 AND order_table.discount_amount = 50
時間范圍 2024-10-01 至 2024-10-07,且訂單支付時間在優(yōu)惠有效期內 order_table.pay_time BETWEEN '2024-10-01 00:00:00' AND '2024-10-07 23:59:59' AND coupon_table.valid_end >= order_table.pay_time

關鍵原則:拆解時需追問 “是否有例外場景”—— 例如 “滿 200 減 50” 是否排除 “特價商品”?若有,需補充條件order_detail.is_special_price = 0。

3. 第三步:編寫 SQL 語句 ——“精準匹配拆解后的規(guī)則,定位異常數據”

根據規(guī)則拆解結果,編寫 SQL 時需注意 “多表關聯”“條件過濾”“異常標記” 三個核心點,確保既能驗證規(guī)則執(zhí)行情況,又能快速定位問題數據。

通用 SQL 結構(以訂單優(yōu)惠規(guī)則驗證為例):

-- 1. 關聯所需數據表(訂單表、用戶表、訂單明細表、優(yōu)惠券表)

SELECT

   -- 2. 保留關鍵字段,便于后續(xù)排查

   o.order_id,                -- 訂單ID(定位具體訂單)

   u.user_id,                 -- 用戶ID

   u.user_level,              -- 用戶等級(驗證是否為VIP)

   o.pay_time,                -- 支付時間(驗證時間范圍)

   (od.goods_amount + o.freight) AS total_before_discount,  -- 優(yōu)惠前金額(驗證是否≥200)

   o.discount_amount,         -- 實際優(yōu)惠金額(驗證是否=50)

   c.coupon_type,             -- 優(yōu)惠券類型(驗證是否為滿減券)

   c.discount AS coupon_discount,  -- 優(yōu)惠券面額(驗證是否=50)

   -- 3. 標記異常類型(用CASE WHEN區(qū)分不同異常原因)

   CASE

       WHEN u.user_level != 'VIP' THEN '異常1:非VIP用戶享受VIP優(yōu)惠'

       WHEN (od.goods_amount + o.freight) < 200 THEN '異常2:優(yōu)惠前金額不足200元卻享受優(yōu)惠'

       WHEN o.discount_amount != 50 THEN '異常3:實際優(yōu)惠金額≠50元'

       WHEN c.coupon_type != 'full_reduction' THEN '異常4:使用非滿減券享受滿減優(yōu)惠'

       ELSE '正常'

   END AS validation_result

FROM

   order_table o  -- 訂單主表

LEFT JOIN user_table u&#x20;

   ON o.user_id = u.user_id  -- 關聯用戶表,獲取用戶等級

LEFT JOIN order_detail od&#x20;

   ON o.order_id = od.order_id  -- 關聯訂單明細表,獲取商品金額

LEFT JOIN coupon_table c&#x20;

   ON o.coupon_id = c.coupon_id  -- 關聯優(yōu)惠券表,獲取優(yōu)惠券信息

WHERE

   -- 4. 限定驗證范圍(實物訂單、支付成功、時間范圍)

   o.order_status = 'paid'  -- 僅支付成功的訂單

   AND o.goods_category != 'virtual'  -- 實物類訂單

   AND o.pay_time BETWEEN '2024-10-01 00:00:00' AND '2024-10-07 23:59:59'

   -- 5. 篩選出可能存在異常的訂單(優(yōu)化性能,減少數據量)

   AND (

       u.user_level != 'VIP'

       OR (od.goods_amount + o.freight) < 200

       OR o.discount_amount != 50

       OR c.coupon_type != 'full_reduction'

   );

關鍵技巧:

  • 多表關聯時用 LEFT JOIN:避免因某張表無匹配數據(如無優(yōu)惠券的訂單)導致正常數據被過濾;

  • 用 CASE WHEN 標記異常類型:無需多次執(zhí)行 SQL,一次即可區(qū)分所有異常原因;

  • 保留原始字段:如order_id,后續(xù)可通過該 ID 在業(yè)務系統(tǒng)中查看訂單詳情,定位具體問題(如是否為人工調整的特殊訂單)。

4. 第四步:分析驗證結果 ——“從異常數據反推業(yè)務邏輯問題”

SQL 執(zhí)行后會輸出 “正常數據” 與 “異常數據”,分析時需分兩步:

  1. 統(tǒng)計異常比例:若異常訂單占比≤0.1%,可能是個別特殊場景(如人工補單);若占比≥5%,則需優(yōu)先排查系統(tǒng)規(guī)則配置錯誤;
  • 示例 SQL(統(tǒng)計異常比例):
SELECT

   validation_result,

   COUNT(order_id) AS order_count,  -- 各類型訂單數量

   ROUND(COUNT(order_id) / (SELECT COUNT(order_id) FROM order_table WHERE order_status = 'paid' AND pay_time BETWEEN '2024-10-01' AND '2024-10-07'), 4) AS ratio  -- 占比

FROM

   (上述驗證SQL的結果集) AS temp

GROUP BY

   validation_result;
  1. 排查異常原因:根據validation_result的異常類型,結合業(yè)務系統(tǒng)日志定位問題:
  • 若 “異常 1:非 VIP 用戶享受 VIP 優(yōu)惠” 較多,需檢查 “用戶等級判定接口” 是否故障;

  • 若 “異常 3:實際優(yōu)惠金額≠50 元”,需確認 “優(yōu)惠券面額配置” 是否正確(如是否誤將 50 元配置為 30 元)。

三、典型業(yè)務場景的 SQL 驗證實戰(zhàn)案例

不同業(yè)務場景的邏輯差異較大,以下選取 3 個高頻場景,提供完整的 “規(guī)則拆解→SQL 實現→結果分析” 流程,便于直接復用。

場景 1:訂單金額計算邏輯驗證(核心:數值一致性)

業(yè)務規(guī)則:

訂單總金額(order_total)= 商品金額總和(goods_amount)+ 運費(freight)- 優(yōu)惠金額(discount_amount)- 退款金額(refund_amount)(若有退款)。

SQL 驗證語句:

SELECT

   o.order_id,

   o.order_total,  -- 系統(tǒng)記錄的訂單總金額

   SUM(od.goods_amount) AS actual_goods_amount,  -- 實際商品金額總和

   o.freight,

   o.discount_amount,

   COALESCE(SUM(r.refund_amount), 0) AS actual_refund_amount,  -- 實際退款金額(無退款則為0)

   -- 計算理論應得總金額

   (SUM(od.goods_amount) + o.freight - o.discount_amount - COALESCE(SUM(r.refund_amount), 0)) AS theoretical_total,

   -- 標記異常(理論值與系統(tǒng)記錄值差異超過0.01元則為異常)

   CASE

       WHEN ABS(o.order_total - (SUM(od.goods_amount) + o.freight - o.discount_amount - COALESCE(SUM(r.refund_amount), 0))) > 0.01&#x20;

       THEN '異常:訂單總金額計算錯誤'

       ELSE '正常'

   END AS validation_result

FROM

   order_table o

LEFT JOIN order_detail od&#x20;

   ON o.order_id = od.order_id

LEFT JOIN refund_table r&#x20;

   ON o.order_id = r.order_id

WHERE

   o.order_status IN ('paid''refunded')  -- 支付成功或有退款的訂單

   AND o.create_time >= '2024-10-01'

GROUP BY

   o.order_id, o.order_total, o.freight, o.discount_amount;

結果分析:

  • 若 “異常” 訂單多為 “有退款” 的訂單,需檢查 “退款后總金額重新計算” 的邏輯是否未觸發(fā);

  • 若 “異?!?訂單金額差異均為 “分” 級(如 0.01 元),可能是浮點計算精度問題,需在 SQL 中用ROUND函數優(yōu)化(如ROUND(SUM(od.goods_amount), 2))。

場景 2:用戶等級判定邏輯驗證(核心:規(guī)則匹配度)

業(yè)務規(guī)則:

用戶等級根據 “近 12 個月累計消費金額” 判定:

  • 累計消費 < 1000 元:普通用戶(normal);

  • 1000 元≤累計消費 < 5000 元:銀卡用戶(silver);

  • 累計消費≥5000 元:金卡用戶(gold)。

SQL 驗證語句:

SELECT

   u.user_id,

   u.user_level,  -- 系統(tǒng)判定的用戶等級

   SUM(o.pay_amount) AS last_12m_consume,  -- 近12個月累計消費金額

   -- 計算理論應得等級

   CASE

       WHEN SUM(o.pay_amount) < 1000 THEN 'normal'

       WHEN SUM(o.pay_amount) BETWEEN 1000 AND 4999.99 THEN 'silver'

       WHEN SUM(o.pay_amount) >= 5000 THEN 'gold'

       ELSE '未知'

   END AS theoretical_level,

   -- 標記異常

   CASE

       WHEN u.user_level != CASE

           WHEN SUM(o.pay_amount) < 1000 THEN 'normal'

           WHEN SUM(o.pay_amount) BETWEEN 1000 AND 4999.99 THEN 'silver'

           WHEN SUM(o.pay_amount) >= 5000 THEN 'gold'

           ELSE '未知'

       END THEN '異常:用戶等級判定錯誤'

       ELSE '正常'

   END AS validation_result

FROM

   user_table u

LEFT JOIN order_table o&#x20;

   ON u.user_id = o.user_id&#x20;

   AND o.pay_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 12 MONTH) AND CURDATE()  -- 近12個月訂單

   AND o.order_status = 'paid'  -- 僅支付成功的訂單

GROUP BY

   u.user_id, u.user_level;

結果分析:

  • 若 “異?!?多為 “累計消費≥5000 卻為銀卡”,需檢查 “用戶等級更新任務” 是否定時執(zhí)行(如是否因任務未觸發(fā)導致等級未升級);

  • 若 “異常” 包含 “新注冊用戶(無消費)卻為銀卡”,需排查 “用戶等級初始配置” 是否有誤。

場景 3:庫存變動邏輯驗證(核心:時序與數值合理性)

業(yè)務規(guī)則:

  • 庫存扣減(stock_reduce):僅在 “訂單支付成功” 后觸發(fā),扣減數量 = 訂單商品購買數量;

  • 庫存增加(stock_add):僅在 “訂單取消” 或 “退款成功” 后觸發(fā),增加數量 = 原扣減數量。

SQL 驗證語句:

-- 第一步:計算每個商品的“理論庫存變動”(支付扣減-取消/退款增加)

WITH goods_stock_change AS (

   SELECT

       od.goods_id,

       -- 支付成功:扣減庫存(負號表示減少)

       SUM(CASE WHEN o.order_status = 'paid' THEN -od.buy_quantity ELSE 0 END) AS paid_reduce,

       -- 訂單取消/退款:增加庫存(正號表示增加)

       SUM(CASE WHEN o.order_status IN ('cancelled''refunded') THEN od.buy_quantity ELSE 0 END) AS cancel_refund_add,

       -- 理論凈變動=扣減-增加

       SUM(CASE WHEN o.order_status = 'paid' THEN -od.buy_quantit

                WHEN o.order_status IN ('cancelled''refunded') THEN od.buy_quantity&#x20;

                ELSE 0 END) AS theoretical_net_change

   FROM

       order_detail od

   LEFT JOIN order_table o&#x20;

       ON od.order_id = o.order_id

   WHERE

       o.create_time BETWEEN '2024-10-01' AND '2024-10-07'

   GROUP BY

       od.goods_id

),

-- 第二步:獲取系統(tǒng)記錄的“實際庫存變動”

system_stock_change AS (

   SELECT

       goods_id,

       SUM(CASE WHEN change_type = 'reduce' THEN -change_quantity

                WHEN change_type = 'add' THEN change_quantity&#x20;

                ELSE 0 END) AS actual_net_change

   FROM

       stock_change_log

   WHERE

       change_time BETWEEN '2024-10-01' AND '2024-10-07'

   GROUP BY

       goods_id

)

-- 第三步:對比理論與實際變動,標記異常

SELECT

   COALESCE(gsc.goods_id, ssc.goods_id) AS goods_id,

   gsc.theoretical_net_change,

   ssc.actual_net_change,

   CASE

       WHEN gsc.theoretical_net_change != ssc.actual_net_change THEN '異常:庫存變動不一致'

       ELSE '正常'

   END AS validation_result

FROM

   goods_stock_change gsc

FULL OUTER JOIN system_stock_change ssc&#x20;

   ON gsc.goods_id = ssc.goods_id

-- 篩選異常數據(優(yōu)化性能)

WHERE

   gsc.theoretical_net_change != ssc.actual_net_change

   OR gsc.goods_id IS NULL  -- 有系統(tǒng)庫存變動但無訂單數據(如手動調整庫存)

   OR ssc.goods_id IS NULL;  -- 有訂單數據但無系統(tǒng)庫存變動(如庫存扣減未觸發(fā))

結果分析:

  • 若 “異常:庫存變動不一致” 且actual_net_change > theoretical_net_change,可能存在 “重復增加庫存” 的問題(如同一訂單取消后多次觸發(fā)庫存增加);

  • 若 “有訂單數據但無系統(tǒng)庫存變動”,需檢查 “訂單狀態(tài)變更→庫存變動” 的接口是否故障。

四、SQL 驗證的自動化與最佳實踐

單次 SQL 驗證可解決即時問題,但業(yè)務邏輯需長期監(jiān)控,因此需建立 “自動化驗證機制”,并遵循以下最佳實踐:

1. 自動化驗證:從 “手動執(zhí)行” 到 “定時告警”

  • 工具選擇:用 Airflow、DataWorks 等調度工具,將驗證 SQL 設置為 “每日凌晨執(zhí)行”(避開業(yè)務高峰期);

  • 結果輸出:將驗證結果(尤其是異常數據)寫入 “業(yè)務邏輯異常表”,并同步生成 Excel 報告;

  • 異常告警:若異常訂單占比≥1%,通過企業(yè)微信、郵件自動告警,通知業(yè)務與技術負責人(如 “10 月 8 日訂單金額計算異常占比 2.3%,請排查”)。

2. 最佳實踐:避免 “驗證誤區(qū)”

  • 不直接操作生產庫:在測試環(huán)境或數據倉庫(如 Hive、ClickHouse)中執(zhí)行驗證 SQL,避免因復雜查詢影響生產系統(tǒng)性能;

  • 考慮 “特殊場景”:驗證時需包含 “邊界值”(如訂單金額 = 0、購買數量 = 1、退款金額 = 訂單總金額)與 “特殊業(yè)務”(如人工調整的訂單、企業(yè)采購訂單);

  • 結合業(yè)務上下文分析:部分 “異常數據” 可能是合理的(如 “VIP 用戶滿 200 減 50” 規(guī)則中,內部測試賬號享受優(yōu)惠),需在 SQL 中添加 “排除條件”(如u.user_id NOT IN ('test_001', 'test_002'))。

3. 技能延伸:復雜邏輯的 SQL 優(yōu)化

當數據量超 100 萬條時,需優(yōu)化 SQL 性能:

  • 減少 JOIN 表數量:僅關聯驗證必需的表(如驗證用戶等級時,無需關聯優(yōu)惠券表);

  • 索引加速:在order_id、user_id、pay_time等關聯 / 過濾字段上建立索引;

  • 分批次驗證:按時間分片(如按天驗證),避免一次性處理全量數據。

五、總結:SQL 是業(yè)務邏輯的 “最后一道防線”

業(yè)務邏輯的精準度直接影響用戶信任與企業(yè)收益 —— 一次訂單金額計算錯誤可能導致用戶投訴,一次庫存扣減異??赡芤l(fā)超賣風險。而 SQL 作為 “數據查詢與計算的通用工具”,能以 “高效、全量、可復用” 的方式,驗證業(yè)務邏輯是否落地精準。

掌握 SQL 驗證業(yè)務邏輯,不僅是技術人員的必備技能,更是業(yè)務人員 “掌控需求落地質量” 的工具 —— 通過將業(yè)務規(guī)則轉化為 SQL 條件,業(yè)務人員可自主驗證 “需求是否被正確實現”,減少 “技術黑盒” 帶來的溝通成本。最終,SQL 驗證將成為 “業(yè)務與技術協同” 的橋梁,讓業(yè)務邏輯從 “設計” 到 “落地” 的每一步都有數據把關。

推薦學習書籍 《CDA一級教材》適合CDA一級考生備考,也適合業(yè)務及數據分析崗位的從業(yè)者提升自我。完整電子版已上線CDA網校,累計已有10萬+在讀~ !

免費加入閱讀:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }