最近做个项目维护时,客户要重新修改过滤的真条件,因为本来就是维护项目加上又增加新条件并且条件还存在些关系,开始做的时候真有点找不到北的感觉。
一开始用&&和||拼接了老长的一堆判断条件,那个条件长度看起来简直让人想吐,而且修改后测试bug的出现是一个接一个。
后来没办法直接直接删了重新写过,把条件一个一个分解找出其中存在的可能情况逐一处理,虽代码看起来比以前更多,但条理显得更加清晰。
附上判断是否满足指定条件方法中一部份代码,其过程就是一步一步分解判断条件。
if(autoBidding.isMustComJingzhi() && bidRequest.getBidRequestType() == Const.BIDREQUEST_TYPE_JINGZHI){
if(autoBidding.isMustJingZhiMonthLimit() && !autoBidding.isMustJingZhiDayLimit()){
if(bidRequest.getReturnType() != Const.RETURN_TYPE_MONTH_INTEREST_PRINCIPAL && bidRequest.getReturnType() != Const.RETURN_TYPE_MONTH_INTEREST){
return false;
}
if(bidRequest.getMonthes2Return() > autoBidding.getJingzhiMaxMonth2Return()
|| bidRequest.getMonthes2Return() < autoBidding.getJingzhiMinMonth2Return()
|| autoBidding.getJingzhiMaxMonth2Return() < autoBidding.getJingzhiMinMonth2Return()
|| bidRequest.getMonthes2Return() <= 0){
return false;
}
}else if(!autoBidding.isMustJingZhiMonthLimit() && autoBidding.isMustJingZhiDayLimit()){
if(bidRequest.getReturnType() != Const.RETURN_TYPE_DAY){
return false;
}
if(bidRequest.getMonthes2Return() > autoBidding.getJingzhiMaxDay2Return()
|| bidRequest.getMonthes2Return() < autoBidding.getJingzhiMinDay2Return()
|| autoBidding.getJingzhiMaxDay2Return() < autoBidding.getJingzhiMinDay2Return()
|| bidRequest.getMonthes2Return() <= 0){
return false;
}
}else if(autoBidding.isMustJingZhiMonthLimit() && autoBidding.isMustJingZhiDayLimit()){
if(autoBidding.isMustJingzhiRetunType()){
return false;
}
if(bidRequest.getReturnType() == Const.RETURN_TYPE_MONTH_INTEREST_PRINCIPAL || bidRequest.getReturnType() == Const.RETURN_TYPE_MONTH_INTEREST){
if(bidRequest.getMonthes2Return() > autoBidding.getJingzhiMaxMonth2Return()
|| bidRequest.getMonthes2Return() < autoBidding.getJingzhiMinMonth2Return()
|| autoBidding.getJingzhiMaxMonth2Return() < autoBidding.getJingzhiMinMonth2Return()
|| bidRequest.getMonthes2Return() <= 0){
return false;
}
}else if(bidRequest.getReturnType() == Const.RETURN_TYPE_DAY){
if(bidRequest.getMonthes2Return() > autoBidding.getJingzhiMaxDay2Return()
|| bidRequest.getMonthes2Return() < autoBidding.getJingzhiMinDay2Return()
|| autoBidding.getJingzhiMaxDay2Return() < autoBidding.getJingzhiMinDay2Return()
|| bidRequest.getMonthes2Return() <= 0){
return false;
}
}
}
}
分享到:
相关推荐
判断四个验证条件是否都满足,如满足则返回 `.T.` 表示身份证号码有效,否则返回 `.F.` 表示无效。 #### 结论 该 VFP 函数通过一系列逻辑判断和数学运算来验证身份证号码的有效性。它首先检查身份证号码的长度,...
可以设定条件判断,如检查选中的项数是否在预设范围内。 三、工具与插件 在HTML5中,已内建了一些基本的表单验证功能,如`required`属性、`pattern`属性等。但为了实现更复杂的验证逻辑,通常会使用JavaScript库或...
在IT领域,`check`通常指的是在编程或测试过程中用于验证条件是否满足的机制。这里提到的"check简单使用例题显示选择的物品"可能是针对某个特定编程语言或框架的一个练习,旨在帮助初学者理解如何使用`check`来检查...
在`IsValid`方法中,我们首先检查条件是否满足,然后才执行常规的验证逻辑。 接下来,我们可以将这个自定义验证特性应用到模型属性上,并传入一个判断条件: ```csharp public class MyModel { public int ...
本话题主要探讨如何使用C#编程语言来验证Excel导入模板是否符合预设的标准,包括文件名、工作表名和字段名称的验证。 首先,我们需要理解验证的目标。一个标准的Excel导入模板应具有明确的命名规则,例如文件名可能...
`assertEquals()`用于比较预期结果和实际结果,`assertTrue()`和`assertFalse()`则用于验证条件是否满足。还有更强大的断言如`assertArrayEquals()`、`assertNotSame()`等,可以满足各种复杂的比较需求。 除此之外...
虽然这个示例已经可以满足基本的密码验证需求,但还可以进行一些改进和完善: - **增强用户体验**:可以通过CSS为输入框添加边框颜色变化等效果,提高用户交互体验。 - **增加密码强度检测**:除了简单的匹配外,还...
编写`validateUsername`函数,检查用户名是否满足条件,如长度、特殊字符等。以下是一个简单的例子: ```javascript function validateUsername() { var username = $('#username').val(); if (username.length...
在执行CTS前置条件验证脚本时,通常会有一个详细的报告,指出哪些条件已经满足,哪些还需要改进。这个报告对于开发者和制造商来说至关重要,因为他们可以根据报告来调整和优化设备,以满足CTS测试的标准。 在实际...
- 验证重排后的九宫格是否满足所有条件,包括每行、每列和每个子区域的目标和值相等,以及是否包含1到9的所有数字。这一过程可以通过编写相应的算法来自动化完成,比如利用循环结构遍历每一个单元格,计算其所在行...
随着处理器架构变得越来越复杂,传统的验证方法已经不能满足日益增长的测试覆盖需求。因此,需要采用更为先进的验证策略来确保处理器设计的正确性和功能性。 2. 验证方法 - 自检直接测试:早期Hyperstone微处理器...
为了实现这些策略,可以编写JavaScript函数来检测密码是否满足条件,并通过动态修改密码强度指示器(如`vr_sd_999.gif`这样的图片)来实时反馈。同时,也可以引入第三方库,如zxcvbn,它能根据密码的复杂度给出评分...
一个有效的JSON字符串必须满足以下条件: 1. 数据是键值对,键和值之间用冒号分隔。 2. 键值对之间用逗号分隔。 3. 对象以大括号`{}`包围,数组以方括号`[]`包围。 4. 键必须是字符串,用双引号包围。 5. 值可以是...
首先做功能验证,验证是否满足要求;其次做软硬件性能验证;第三做系统级基准测试(自顶向下验证策略),抽取特定功能,编制测试向量/程序,定义对错条件,覆盖所有功能,形成基准测试程序(反复迭代),用于模拟...
4. 范围验证(CompareValidator):比较两个控件的值是否满足特定条件。 5. 正则表达式验证(RegularExpressionValidator):根据自定义正则表达式模式进行验证。 6. URL验证(UrlValidator):检查输入是否为有效...
ComboBox的验证可能涉及验证用户选择是否存在于提供的数据源中,或者检查选定项是否满足特定条件。 通过理解并运用以上知识点,开发者可以构建出健壮的WPF应用,提供友好且可靠的用户输入验证体验。`...
6. **约束随机化**:在UVM中,通过约束随机化可以生成满足特定条件的随机数据,这极大地增强了验证的全面性。 7. **回归测试**:每次修改设计或验证环境后,都需要进行回归测试,确保修改没有引入新的错误,并且...
11. **验证状态**:TextBox控件的IsValid属性可以反映当前控件的验证状态,便于在程序中判断是否满足验证条件。 综上所述,TextBox验证控件的核心在于为用户提供准确的数据输入约束,同时确保应用程序的稳定性和...
UPPAAL在形式化验证中的应用主要体现在对实时系统的模型进行严格分析,以检查是否满足预定义的规范。 2. **UPPAAL时间自动机**:UPPAAL的核心概念是时间自动机,这是一种扩展的有限状态机,能够处理时间和行为的...