在做项目练习中遇到了需要计算总金额的需求,但金额这个字段正常情况下时不能出现在数据库中的表字段中只能通过计算得出然后返回到页面。计算金额首先需要将计算的数据查询在一个集合里,然后获取到这个集合数据的条数,因我计算的是酒菜套餐的金额,套餐的金额是根据套餐下的酒菜决定的,所以需要先查询出同一个套餐下套餐明细的数量。
在查询出套餐明细的数量后通过for循环的方法开始计算总金额,通过判断for循环中的i是否大于查询出的集合的条数然后获取到索引值为i的套餐明细的数据。
然通过查询出的套餐明细的数据中的酒菜外键查询查询酒菜的信息,并获取到酒菜的数量。
获取到酒菜的数量后声明两个变量来存放计算出来的金额。
因为酒菜的价格是通过配置的主料的单价乘以配置的数量在再加上辅料的理论金额计算的,所以需要查询出来的酒菜信息通过for循环查询该酒菜下的主料和辅料的价格。通过for循环先获取到索引值为A的酒菜的数据。
然后通过获取到的酒菜数据查询酒菜下的主料配置数量和主料的单价以及配置的辅料的理论金额。
然后获取到查询出的某一个酒菜下配置的原材料的数量,然在写一个for循环获取到某一条配置信息中的数据。
在获取到原材料配置的数量后,就可以开始计算酒菜的金额,将主料配置的数量、单价、以及辅料的理论金额转化为int类型然后开始计算。
这样就可以计算出每一个套餐下酒菜的金额,然后再将就算出的金额相加就可以得出每一个套餐的金额。然后再将得到的金额返回到页面。
需要注意FoodPrice 字段在数据库中是不存在的需要在创建的实体类中创建这个字段,在声明存放金额的变量是一定要在需要计算金额的数据的for循环中声明不要在计算金额的for外声明不然如果表格中存在多条数据就只有第一条是正确的,从第二条开始计算出的金额会等于上一次得到的金额加上本次计算出的金额,后面以此类推,越到后面金额会越大。如果是单表的计算金额 推荐在相应的页面中计算,尽量不要在控制器中写,在页面中计算单表的金额不需要写for循环,多表计算金额目前只会这样写,这种写法存在一定的问题,在for循环中再写for循环写多了会使请求的速度变慢。下面为效果图:通过计算出套餐下酒菜的价格和数量得出套餐价格。
学习日记总结(十三)计算多条数据的总金额
最新推荐文章于 2022-12-04 16:19:33 发布