博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
取配置需求实现思路
阅读量:5862 次
发布时间:2019-06-19

本文共 1929 字,大约阅读时间需要 6 分钟。

文章目录


2.你的想法是不是这样的:

先判断村儿,再判断渠道,再判断用户类型,然后得到配置。

我按照这个思路画流程图,成功给自己画出了个闭环…

其实还有一种思路,很简单:将所有配置读取到内存中,然后filter按条件筛选,最终选出来符合条件的配置。

/**     *      * @param channel  用户渠道     * @param village   村     * @param isPay   11 付费 21 未付费     */    public StrategyConfig getConfig(String channel, String village, Integer isPay){
List
list = strategyDao.selectAll(); if (CollectionUtils.isEmpty(list)){
return new StrategyConfig(); } List
filterList = list.stream().filter(StrategyConfig -> ((StringUtils.isEmpty(StrategyConfig.getIncludeVillage()) && StringUtils.isEmpty(StrategyConfig.getExcludeVillage())) || (StringUtils.isNotEmpty(StrategyConfig.getIncludeVillage)) && StrategyConfig.getIncludeVillage().toUpperCase().contains(village)) || (StringUtils.isNotEmpty(StrategyConfig.getExcludeVillage()) && !StrategyConfig.getExcludeVillage().toUpperCase().contains(village))) && ((StringUtils.isEmpty(StrategyConfig.getIncludeChannel()) && StringUtils.isEmpty(StrategyConfig.getExcludeChannel())) || (StringUtils.isNotEmpty(StrategyConfig.getIncludeChannel()) && StrategyConfig.getIncludeChannel().toUpperCase().contains(channel)) || (StringUtils.isNotEmpty(StrategyConfig.getExcludeChannel()) && !StrategyConfig.getExcludeChannel().toUpperCase().contains(channel))) && (StrategyConfig.getMalePayType()!=null && (StrategyConfig.getMalePayType().equals(isPay) || StrategyConfig.getMalePayType().equals(ALL))) ).collect(Collectors.toList()); if (CollectionUtils.isEmpty(filterList)){
return new StrategyConfig(); } if (filterList.size() == 1){
return filterList.get(0); } }

转载地址:http://zvgjx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
我的友情链接
查看>>
【MYSQL死锁问题】Deadlock found when trying to get lock;
查看>>
NFS搭建
查看>>
【Egret】原生打包调用系统震动功能
查看>>
部署自己的gitlab服务器
查看>>
iptables/netfilter全攻略详解
查看>>
移动端多端适配
查看>>
uefi与GPT
查看>>
设计模式-原型模式
查看>>
SSH框架与MVC架构之间的关系
查看>>
javascript基本数据类型
查看>>
我的友情链接
查看>>
Python中直接在MySQL执行SQL命令
查看>>
nagios安装详细过程
查看>>
流量 内存 进程 端口
查看>>
iOS程序崩溃 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan 40]'
查看>>
Android Ap 开发 设计模式第二篇:适配器模式
查看>>
linux 双网卡绑定
查看>>
bond的七种模式
查看>>