一、共同点:
    1、controller 层

    1. 1.1 类上需要的注解
    2. @Api(value = "合同管理接口",tags = {"合同管理接口"}) //接口名称
    3. @RestController
    4. @RequestMapping("/contractInfo")
    5. 1.2 controller中的方法返回不能使用 E6Wrapper<Object> ,不能有Object作为泛型类型

    二、模块功能
    1、分页查询
    1.1 校验时间
    1.2 获取当前登录人信息

    1. AbstractUser currentUser = CurrentUserHolder.getCurrentUser();
    2. Integer corpId = currentUser.getCorpId();
    3. contractInfoPageVO.setCorpId(corpId);

    1.3 加入分页参数,并将分页查询的条件封装到map当中(从前端获取到的对象中的属性作为map中的键,属性对应获取到的值作为map中的值)

    1. PageParamNewVO<ContractInfoPageVO> pageParamNewVO = contractInfoPageVO.getPageParamNewVO();
    2. Map<String, Object> map = new HashMap<>(BaseConstant.MAP_INITIAL_CAPACITY);
    3. Pageable pageable = PageUtilNew.buildPageableMySQL(pageParamNewVO);
    4. // 加入分页参数
    5. BeanUtil.bean2map(pageable, map);
    6. BeanUtil.bean2map(contractInfoPageVO, map);

    1.4 查询先查询表中总记录数
    1.4.1 如果查到,则进行业务逻辑处理,在VO中进行封装,并进行响应
    a、如果需要缓存中的值,在缓存中获取值的方式如下

    1. 注意:集合对象是从表中拿到所有并封装成集合对象并进行传参------获取集合的方式使用流的方式
    2. contractInfoVOList.stream().map(ContractInfoVO::getOrgId).collect(Collectors.toSet());
    3. CacheOperationUtils.conversionCacheMap(CacheKeyPrefixEnum.CORP_USER_MAP, currentUser, 集合对象);

    1.4.2 如果有按钮,则进行按钮的设置,按钮所指如下:

    image.png