2021-11-08接口小记

需求:增加人物政治倾向,需要给前端传人物每个派别的百分比,和人物是什么派别

要求:把这些放在一个接口的返回值里

分析过程:

先想出返回值应该是怎么样的,一个json串,如下:

{
    "code": 200,
    "success": true,
    "data": {
        "tendency": "亲近派",
        "percentage": {
            "随机派": 0.5,
            "亲近派": 0.5,
            "强硬派": 0.0
        }
    },
    "msg": "操作成功"
}

1. 先返回值该怎么存放,一开始想过放在对象中,集合中,map中,还是放在一个vo中合适

2.一层一层的写,先写controller层,确定传参和返回值

写service层

写serviceimpl层,这里面写逻辑

①怎么查到条数,怎么算出百分比,怎么根据最大的百分比取到派别。

②计算百分比,保留两位小数,一开始使用的是:

public String txfloat(int a,int b) {
	DecimalFormat df=new DecimalFormat("0.00");//设置保留位数
	return df.format((float)a/b);
}

③这种方法最后得出来的结果是String类型,一开始是没有发现问题的,主要把存放百分比的map类型也改成String即可,但是由于之后需要排序,并且根据value取key就发现了问题,因为String是字符串,所以1.00这种还是会表示成1.00,但是转换成float类型后,1.00就变为1.0,根据value取key就取不出来,所以为了实现能根据value取key,直接让计算出来的百分比是float类型的保留两位小数,方法如下:

float f1 =  (float) (Math.round((float)num1/sum * 100)) / 100;

 数组里面的值和存入的百分比是同一个,能根据value取key。

④这个逻辑里面需要根据value取key,所以查到了双向map----BiMap

3.写完后没注意的问题:

情况没有想全,没有数据,两种或者三种派别相等怎么办,查询语句忘记加上从未删除的里面查。

依次解决了问题,添加了判断,相等的取第一种,修改查询语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值