亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

最近修改的幾個小bug

2019-11-14 16:39:05
字體:
來源:轉載
供稿:網友

      最近修改的幾個 bug,問題不大,查找起來卻幾番周折,匯總起來如下。

      1.詭異電話號碼

      客服郵件反饋,很多用戶服務熱線變成了“0371-45875487”。看到這問題的第一反映是可能因為程序某個地方有人不小心寫死了“0371-45875487”,因為服務熱線對應數據庫為一個字段ServiceTelephone,自然的把“0371-45875487”想象成了一個整體,在web解決方案中查找關鍵字“0371-45875487”,沒有結果,數據庫存儲過程查找一遍,也沒有結果,思路中斷了,就先把數據處理了下,原因待查。

      沒幾天,客服又反饋用戶服務熱線好多又變成了“0371-45875487”,再次超找問題,方式和上次一樣,只是搜索關鍵詞變成了“45875487”,沒想到很順利的定位到了問題。出現問題是在個人資料修改頁,截取部分代碼如下:

                   <tr>                        <td  align="right" valign="middle" bgcolor="#F9F9F9">                            服務熱線:</td>                        <td align="left" valign="middle">                            <input name="mendiantelephone1" type="text" id="mendiantelephone1" style="width: 30px;"                                value="0371" size="4" maxlength="5" runat="server" />                            -                            <input name="mendiantelephone2" type="text" id="mendiantelephone2" style="width: 50px;"                                value="45875487" maxlength="8" runat="server" /></td>                    </tr>
資料修改aspx代碼
                if (!string.IsNullOrEmpty(AgentInfo.MendianTelephone))                {                    mendiantelephone1.Value = AgentInfo.MendianTelephone.IndexOf("-") < 0 ? "" : AgentInfo.MendianTelephone.Substring(0, AgentInfo.MendianTelephone.IndexOf("-"));                    mendiantelephone2.Value = AgentInfo.MendianTelephone.IndexOf("-") < 0 ? AgentInfo.MendianTelephone : AgentInfo.MendianTelephone.Substring(AgentInfo.MendianTelephone.IndexOf("-") + 1);                }
資料修改aspx.cs代碼

      如果用戶原來沒有填寫服務熱線,在修改頁這兩個控件的值默認成了“0371”和“45875487”,用戶好不知情的情況下把自己的服務熱線修改錯了。問題修改也很容易,直接把默認值去掉即可。

      這問題告訴我們看似詭異的問題肯定也有其原因的,查找問題時可以縮小搜索關鍵詞。

      2.同名緩存帶來的問題

      問題描述:惠州房源信息,同一樓盤對應的區縣、商圈竟然出現了不同值,如小區三千俊林對應的區縣商圈出現了兩組“惠州 惠陽區”和“惠陽 淡水"。查找原因原來是用到了同名緩存造成的,代碼如下:

        /// <summary>        /// 根據newcode 獲取樓盤字典信息        /// </summary>        public DataTable GetBuildingDicByNewcode(CityBase citySite, long newcode, string PRojtype)        {            DataTable dt = new DataTable();            string oewname = "districtinfo_bus_around" + newcode.ToString() + "_" + projtype + "new";            string cachename = CacheType.housedic + "_" + oewname;            //先取數據緩存            if (this.MemCache.KeyExists(cachename))            {                dt = this.MemCache.Get<DataTable>(cachename);            }            else            {                dt = buildingErrorData.GetBuildingDicByNewcode(citySite, newcode, projtype);                this.MemCache.Set(cachename, dt, DateTime.Now.AddDays(1));            }            return dt;        }

      區縣商圈都是根據樓盤編號獲取的,而樓盤編號在全國都是唯一的,不會重復,這段代碼看似沒什么問題,那問題在哪呢?原來還有一個異地樓盤業務,就是深圳可以調用惠州的樓盤,調用的時候惠州就成了深圳的區縣了,相當于深圳和惠州同一樓盤的區縣商圈屬性不同。

      這問題出現是因為新業務的出現造成了老代碼出現問題,新做業務時方方面面得考慮周全才行。

      3.重復提交問題

      問題描述:在用戶進行放心房操作時,有個計數的字段,每設置一條計數字段+1,每取消一次計算字段-1,但這計數字段卻出現了負數的情況。查找問題,最終出現在了用戶重復提交上,而且從數據上看是有用戶發現了這一漏洞,惡意提交了數據。

        public bool CancelRealHouse(CityBase citySite, HouSEOptEntity optEntity, HouseType htype = HouseType.Sale)        {            //刷新房源并設置標簽            rowCount = houseDAO.UpdateRealHouseStatus(citySite, htype, optEntity.AgentId, optEntity.HouseIds, string.Empty, false);            //調整操作數,只有設置上了放心房標簽才會去調整            if (rowCount > 0)            {                this.houseBizMember.AgentPowerUsingBiz.HouseAction(citySite, htype, HouseAction.UnRealHouse, optEntity.AgentId, rowCount, rowCount, 0);            }        }        public int UpdateRealHouseStatus(CityBase citySite, HouseType houseType, int agentId, List<int> houseIds, string infoCode, bool isSet)        {            int retVal = 0;            int isRealHouse = isSet ? 1 : 0;            DBHelper db = DBHelper.GetDBHelper(BusinessType.AgentHouseWrite, citySite, agentId);            string tableName = GetTableName(citySite, houseType, true);            string refTableName = GetRefreshTableName(citySite, houseType);            string houseIdsStr = string.Join<int>(",", houseIds);            string sql = sql = string.Format("update {0} set isRealHouse = {1} where agentid={2} and status = 1 and isRealHouse != {1} and houseid in ({3});", tableName, isRealHouse, agentId, houseIdsStr);            retVal = db.ExecuteNonQuery(CommandType.Text, sql);            sql = string.Format("update s set s.registdate = getdate(),s.dtimestamp=getdate() from {0} s inner join {1} h with(nolock) on s.houseid = h.houseid where h.agentid={2} and h.[status]=1 and h.houseid in ({3})", refTableName, tableName, agentId, houseIdsStr);            retVal = db.ExecuteNonQuery(CommandType.Text, sql);            return retVal;        }

       問題出現在函數UpdateRealHouseStatus()上,這個函數執行了兩個操作,一個是更新是否放心房,其實這步驟是沒問題的,取消狀態時,如果原本就是取消狀態,這個返回的就是0,但問題出現在第二個操作上,重新給返回值賦值了,致使重復提交了返回值仍然為1,進而造成最終的計數有問題。

       這問題告訴我們在重要操作上,一定要做好重復提交的判斷。這問題發現的隱蔽性在于一個函數做了兩件事,也和函數功能單一化原則相悖,合理的函數代碼也有助于降低這種錯誤的概率。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品欧美视频| 免费av一区二区| 亚洲精品视频播放| 高潮白浆女日韩av免费看| 午夜精品久久久久久久白皮肤| 亚洲国模精品私拍| 国产精品男人爽免费视频1| 九九热在线精品视频| 欧美在线亚洲一区| 日韩欧美成人区| 亚洲香蕉成人av网站在线观看| 亚洲欧洲美洲在线综合| 美女福利视频一区| 亚洲精品一区二区三区婷婷月| 亚洲国产婷婷香蕉久久久久久| 色午夜这里只有精品| 热re99久久精品国产66热| 亚洲国产精品美女| 欧美国产精品va在线观看| 亚洲加勒比久久88色综合| 久久久免费观看视频| 插插插亚洲综合网| 成人天堂噜噜噜| 久久色在线播放| 91精品国产综合久久香蕉| 久久久久久久久久久成人| 国产精品成人一区| 欧美亚洲在线视频| 国产精品ⅴa在线观看h| 色yeye香蕉凹凸一区二区av| 亚洲自拍小视频免费观看| 69**夜色精品国产69乱| 疯狂做受xxxx欧美肥白少妇| 亚洲丝袜一区在线| 九九久久久久99精品| 97精品一区二区视频在线观看| 欧美国产日本在线| 欧美做受高潮1| 欧美日韩第一视频| 国产精品jizz在线观看麻豆| 热99在线视频| 成人h视频在线观看播放| 亚洲女同精品视频| 97在线精品视频| 欧洲s码亚洲m码精品一区| 国产日韩精品在线观看| 色综合伊人色综合网| 欧美在线精品免播放器视频| 亚洲第一色中文字幕| 黑人巨大精品欧美一区二区一视频| xxxxx成人.com| 日韩中文娱乐网| 91理论片午午论夜理片久久| 日韩在线观看免费高清| 欧美一级淫片丝袜脚交| 欧美极品少妇xxxxⅹ喷水| 91av视频在线免费观看| 激情久久av一区av二区av三区| 日本一区二区三区四区视频| 日韩精品在线私人| 成人国产精品免费视频| 欧美另类交人妖| 国产亚洲福利一区| 欧美激情视频免费观看| 亚洲人成五月天| 精品视频www| 久久久久久久亚洲精品| 亚洲xxxx18| 亚洲欧美自拍一区| 在线观看日韩欧美| 国产精品91在线观看| 亚州av一区二区| 欧美精品videofree1080p| 成人深夜直播免费观看| 国产精品永久免费视频| 国产婷婷成人久久av免费高清| 激情懂色av一区av二区av| 国产欧美中文字幕| 日韩精品在线观看一区| 欧美在线日韩在线| 91国产精品电影| 亚洲精品99久久久久| 欧美最猛性xxxxx(亚洲精品)| 国产视频久久久久久久| 欧美激情网友自拍| 国产色视频一区| 亚洲乱码av中文一区二区| 久久久精品日本| 国产精品无码专区在线观看| 国产精品亚洲网站| 亚洲精品免费一区二区三区| 欧美日韩另类视频| 日本乱人伦a精品| 日韩欧美福利视频| 国产亚洲a∨片在线观看| 色狠狠久久aa北条麻妃| 日韩电影网在线| 日韩高清中文字幕| 日韩精品在线观看一区二区| 精品久久久久久中文字幕| 色噜噜狠狠狠综合曰曰曰| 国产精品91在线观看| 精品一区精品二区| 欧美另类老女人| 亚洲色图激情小说| 中文字幕免费精品一区高清| 国产色综合天天综合网| 久久久久久999| 亚洲摸下面视频| 亚洲免费电影一区| 成人黄色免费在线观看| 一本色道久久综合狠狠躁篇的优点| 亚洲欧洲视频在线| 日日狠狠久久偷偷四色综合免费| 亚洲aⅴ日韩av电影在线观看| 午夜精品久久久久久久久久久久| 国产精品成人在线| 亚洲欧美日韩国产中文专区| 国产精品精品一区二区三区午夜版| 中文在线资源观看视频网站免费不卡| 91麻豆国产语对白在线观看| 国产精品高潮呻吟久久av无限| 自拍偷拍亚洲在线| 亚洲欧美日韩在线一区| 亚洲аv电影天堂网| 精品少妇一区二区30p| 伊人精品在线观看| 亚洲第一中文字幕在线观看| 成人激情在线播放| 日韩精品日韩在线观看| 亚洲老头老太hd| 精品一区二区三区四区在线| 这里精品视频免费| 国产精品极品尤物在线观看| 亚洲欧美日韩国产中文| 欧美成人激情视频免费观看| 亚洲欧美激情视频| 欧美午夜www高清视频| 欧美激情久久久久| 久久久久久久一区二区| 精品人伦一区二区三区蜜桃免费| 91av在线国产| 欧美日韩国产精品专区| 欧美尺度大的性做爰视频| 91天堂在线视频| 91福利视频网| 久久久久女教师免费一区| 欧美精品久久久久a| 欧美日韩一区二区三区在线免费观看| 成人免费网站在线| 成人黄色免费网站在线观看| 中文字幕精品一区久久久久| 98视频在线噜噜噜国产| 91在线观看免费| 成人日韩在线电影| 久久五月天色综合| 欧美日本在线视频中文字字幕| 国产精品视频内| 国产精品com| 精品日韩美女的视频高清| 国产欧美精品va在线观看| 欧美性猛交视频| 欧美午夜视频一区二区| 91色精品视频在线|