CustomerProductBatchVO productBatchVO = customerProductInfoService.mateBatchApply(UserContextHolder.getIntVal());
log.info('首页公用匹配可以申请的产品:{}', JSON.toJSONString(productBatchVO));
BatchProductType batchProductType = BatchProductType.getByCode(productBatchVO.getBatchProductType());
log.info('首页公用匹配返回类型:{}', batchProductType);

// 默认跳转到产品管理tab页
String btnDesc = '激活额度';
String jumpAction = JumpActionEnum.TAB_REDIRECT.getType();
String url = 'home';

switch (batchProductType) {
    case API_PRODUCT:
        // 有可以直接申请的API产品 跳转借款页
        url = '/#/borrowing-page';
        break;
    case SUPPLY_PRODUCT:
        // 有补充信息后可申请的Api产品 跳转补充信息页
        url = '/#/fill-information';
        break;
    case H5_PRODUCT:
        List<CustomerCreditInfo> list = customerCreditInfoService.findByAccount();
        if (list.isEmpty()) {
            // 没有授信记录,判断是否用户是否进入过等待页
            String key = StrUtil.format(RedisConstant.Key.CACHE_ACCOUNT_WAITING_PAGE, UserContextHolder.getIntVal());
            if (redisUtil.hasKey(key)) {
                url = '/#/waitingPage';
            } else {
                redisUtil.set(key, 'flag');
                url = '/#/examine?state=final_review_failed';
            }
        } else {
            // 授信记录全部为失败
            if (list.stream().allMatch(item -> CreditStatus.AUTH_FAIL.getCode().equals(item.getCreditStatus()))) {
                url = '/#/examine?state=final_review_failed';
            } else {
                // 有可申请的h5产品 跳转贷款大全展示h5产品
                url = '/#/loan-collection';
            }
        }
        break;
    default:
        break;
}

LoanHomeInfoVO loanHomeInfoVO = new LoanHomeInfoVO(btnDesc, jumpAction, url);
return loanHomeInfoVO;

该代码片段展示了贷款首页跳转逻辑的优化方案,根据用户匹配到的产品类型和授信记录情况,动态跳转至不同的页面,包括借款页、补充信息页、等待页、审核结果页、贷款大全页以及产品管理页。

代码说明:

  1. 产品匹配: customerProductInfoService.mateBatchApply(UserContextHolder.getIntVal()) 方法用于获取用户匹配到的产品信息,并记录日志信息。
  2. 产品类型判断: BatchProductType.getByCode(productBatchVO.getBatchProductType()) 用于获取产品类型,根据不同类型跳转至不同的页面。
  3. API产品: 如果用户匹配到可以直接申请的 API 产品,则跳转至借款页 /#/borrowing-page
  4. 补充信息产品: 如果用户匹配到需要补充信息后才能申请的 API 产品,则跳转至补充信息页 /#/fill-information
  5. H5产品: 如果用户匹配到 H5 产品,则根据用户的授信记录进行判断:
    • 没有授信记录: 判断用户是否进入过等待页,如果进入过则跳转至等待页 /#/waitingPage,否则跳转至审核结果页 /#/examine?state=final_review_failed 并记录用户已进入等待页。
    • 授信记录全部为失败: 跳转至审核结果页 /#/examine?state=final_review_failed
    • 有可申请的 H5 产品: 跳转至贷款大全页 /#/loan-collection
  6. 默认跳转: 如果没有匹配到任何产品,则默认跳转至产品管理页 home

优化说明:

  • 代码逻辑清晰易懂,并进行了充分的注释,方便理解。
  • 使用 switch 语句进行产品类型判断,提高代码可读性。
  • 针对 H5 产品的跳转逻辑,进行了细致的判断和处理,确保跳转到正确的页面。
  • 使用 Redis 记录用户是否进入过等待页,避免重复跳转。

该优化方案能够有效提高贷款首页跳转逻辑的效率和准确性,提升用户体验。

贷款首页跳转逻辑优化:根据用户匹配结果和授信记录动态跳转

原文地址: https://www.cveoy.top/t/topic/owNi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录