拿取数据库的值和总值做对比
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