複製失敗bug事件
今天的事件發生在後台設定
維運工程師回報
客戶的活動獎勵沒有收到
是否系統異常
活動的內容很簡單
只要客戶在指定期間內
(例如合約的前30天內)
上滿一定的課程
就可以獲得獎勵
活動的設定方式
是用後台的複製功能
改改參數後產生一份新的
照理說應該不會有錯
首先查看發放獎勵的Table
的確都沒有該活動的紀錄
所以排除是個人帳號問題
而是活動設定有誤
打開後台比對新舊活動
除了建立人員和獎勵內容以外
其餘設定全部一樣
真的是奇哉怪也
因為活動的獎勵條件是上課
所以打API去看了一下客戶上課次數
竟然是零次
一堂課都沒有上
原本以為是客戶在鬧我
但剛剛確認過資料
這個活動的確沒有人領到獎勵
所以再仔細看了一下API的回傳
這下才注意到
活動的起日和迄日一樣
區間為零
當然上課的次數也為零
這時我才想到
應該去查活動設定檔的Table
一查真的是發現新大陸
活動設定畫面一模一樣
DB的資料竟然不一樣
新的活動條件是-1
舊活動的條件是3
難道我剛剛中了幻術?
再回後台查看畫面
兩個活動的選項都是”Option”
也就是對應到資料庫的-1
但舊活動的設定明明是3
怎麼會這樣呢
打開專案看到Code
這下才恍然大悟
原因是專案內的cshtml
使用了 @Html.DropDownListFor
來產生html的select元素
但是DropDownListFor並沒有3這個選項
這時畫面就會render預設選項Option
對應的值是-1
所以複製時也是複製-1
大概像是下面這樣
估計是前人直接修改DB資料後
忘記回來修改後台
才會產生這麼離奇的Bug
加上3這個選項
調整DB資料
重跑一次排程就正常了
果然UI的Bug還是最難查了
下回預告
導入nginx之後
原本平穩的系統
開始出現503 Error
到底是誰在做怪
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Frank's Talk!