复杂业务逻辑问题记录

复杂业务逻辑


在项目中碰到的业务需求,有的确实很合理,可是逻辑上却也十分的复杂.数据库

这里记录一下,让我困惑的问题.但愿随着技术和经验的增加可以解决下列的问题.服务器

随机抽取N我的而且符合条件:

示例条件:数据结构

  • 随机抽取 5 我的
  • 这些人须要知足 男女最少各2人 最多各不超过4人
  • 专业知足农学至少1人
  • 职称为高级工程师至少1人

思路

  • 数据库中能够经过 IN() OR IN() 来减小数据量
  • 后台查询能够先随机,在按顺序来取合理的数据

难点

  • 小于等于(最多不超过,已解决)
  • 能够经过一个Map<String,Integer>来存贮记录,超过了就pass这一条数据

大于等于(最少不低于,未解决).net

方法一:

  • 先进行条件判断,若是存在大于等于的条件优先
  • 判断是否知足小于等于的条件,是则存入List中

方法二:

  • 利用反证法,将大于等于的其它数据的个数设为0
  • 可是,不可以计算区间条件 例如 男>=3 男<=5

一些比较经典的业务逻辑案例

1、客户需求:用列表展现一些数据,数据结构有选择框(有Y/N两种状态)、编辑框(能够输入内容),
一、经过按钮控制页面选择框的显示blog

二、输入框多行显示事件

三、列表某一行多是 标题+选择框,也有可能只是输入框图片

四、点击肯定按钮提交最终处理结果(选择框状态对应的数据,输入框中的数据)it

分析:
一、列表显示能够采起ListView/RecycleViewclass

二、列表item显示的内容能够采起View.GONE/VIEWABLE的方式展现后台

三、数据处理:从服务端请求的数据会有个tag,用来区分item显示checkbox仍是edittext,首先用一个集合存放全部的数据,咱们能够建立两个集合(checkBoxEntityList 装选择框对应的entity的集合  editTextEntityList 装编辑框对应的entity的聚合)来装分别装相应的数据,而后在Adapter中处理checkbox的点击事件,将选择框对应的数据存起来用checkBoxEntityList存起来,

四、最后提交的时候讲两个集合从新合并,转换为String类型,一块儿传递给服务器

添加一些图片用来讲明下:
数据结构:

注:"maintainitemtypeid"该字段用来区分checkbox仍是edittext
提交数据到服务器,须要给服务器传递的参数:


————————————————
原文连接:https://blog.csdn.net/qq_34120430/article/details/85100659

原文连接:https://blog.csdn.net/yuan15800904094/article/details/52871804