拿取数据库的值和总值做对比

1.数据库的值如

 

 逻辑写法

    @Override
    public String findUserLevelName(int score) {
        List<ListBean> items = this.findSelectItemByTypeId("4028b181415432b90141545c8ea60004",null);
        String objname="";
        int i=0;
        for (ListBean item : items) {
            String[] split = item.getObjdesc().split("-");
            String name =item.getObjname();
            if(score<=Integer.valueOf(split[1])){//如果我的积分小于等于objdesc
                objname=name;
                break;
            }else if(score>Integer.valueOf(split[1]) && i==items.size()-1){
                objname=name;
            }
            i++;
        }
        return objname;
    }

 

只是对比值可以用下面的写法

库数据

 

 思路:1.查询出全部等级数据,2.用获取数和每一条的数对比然后返回等级(或者获取等级再根据等级获取对应的数)

  @Override
public String getExperienceLevel(int score) {
//List<ListBean> items = this.findSelectItemByTypeId("4028b181415432b90141545c8ea60004",null);
String sql=" select s.id,l.labelname num, s.objdesc,s.DSPORDER from selectitem s inner join label l on l.id=s.objname where s.typeid='4028a6815aa713ad015aa71e74ed0011'";
List<ListBean> items = dataService.getBeanList(ListBean.class, sql);
String objname="";
for (ListBean item : items) {
// String[] split = item.getObjdesc().split("-");
String name=item.getObjdesc();
int itemNum =item.getNum();
if(score>=itemNum){//如果我的积分小于等于objdesc
objname=name;
}
}
return objname=="" ? "等级1" : objname;
}

 方法二:用倒序并获取一条数据

 select * from (select s.id,s.objdesc,s.dsporder,l.labelname from selectitem s inner join label l on l.id=s.objname where s.typeid='4028a6815aa713ad015aa71e74ed0011' and l.labelname <= 24 order by TO_NUMBER(l.labelname) desc)t where ROWNUM<=1

 

posted @ 2021-11-29 16:47  java璀璨小菜鸟  阅读(98)  评论(0)    收藏  举报