@GetMapping ("/getLessPress") @ResponseBody public Object get(String ids,String nums){ String[] idArr = ids.split(","); String[] numArr = nums.split(","); Double price=0.00; Map<String,Double>map=new HashMap<>(); for (int i=0;i<idArr.length;i++){ String s = idArr[i]; String num = numArr[i]; Goods goods = goodsService.getGoodsById(s); String tprice = goods.getPrice(); Double c = new Double(tprice); double v = c * Integer.valueOf(num);//该商品的总金额 price+=v; String eventid = goods.getEventid(); if (StringUtils.isNotEmpty(eventid)){ if (!map.containsKey(eventid)){ map.put(eventid,v); }else { Double aDouble = map.get(eventid); map.put(eventid,aDouble+v); } } } final Double[] lessPrice = {0.00}; map.forEach((s, aDouble) -> { SaleEvent one = eventService.getById(s); Double total = one.getGeTotal(); if (aDouble>=total){ lessPrice[0] +=one.getLessPrice(); } }); double r=0.00; if (lessPrice[0]>0){ r = price - lessPrice[0];//折扣后的总金额 }else { return price; } r = Double.parseDouble(String.format("%.2f",r)); return r; }详细解析该段代码
时间: 2023-06-18 18:02:57 浏览: 65
这段代码是一个使用Spring MVC框架开发的RESTful API,其中使用了@GetMapping注解和@ResponseBody注解。该API的功能是根据传入的商品ID和数量计算出总金额,并根据促销活动计算出折扣后的总金额。
具体来说,该API接收两个参数ids和nums,分别是商品的ID和数量,其中商品ID和数量用逗号分隔。接着,将ids和nums分别通过split方法转换为字符串数组idArr和numArr。
接下来的代码是遍历idArr数组,取出每个商品的信息,包括价格、促销活动ID等。然后计算每个商品的总金额,并将其加入到price变量中。如果该商品有关联的促销活动,就将其加入到map变量中,其中key是促销活动ID,value是该活动中所有商品的总金额之和。
接着,遍历map变量,取出每个促销活动,并计算出该促销活动的总金额。如果该促销活动的总金额小于等于map中该促销活动对应的总金额之和,则将该促销活动的折扣金额加入到lessPrice变量中。
最后,根据lessPrice变量的值计算出折扣后的总金额,并将其返回。注意,该方法最终返回的是一个Object类型,需要在调用该API的地方进行类型转换。
相关问题
@GetMapping ("/getLessPress") @ResponseBody public Object get(String ids,String nums){ String[] idArr = ids.split(","); String[] numArr = nums.split(","); Double price=0.00; Map<String,Double>map=new HashMap<>(); for (int i=0;i<idArr.length;i++){ String s = idArr[i]; String num = numArr[i]; Goods goods = goodsService.getGoodsById(s); String tprice = goods.getPrice(); Double c = new Double(tprice); double v = c * Integer.valueOf(num);//该商品的总金额 price+=v; String eventid = goods.getEventid(); if (StringUtils.isNotEmpty(eventid)){ if (!map.containsKey(eventid)){ map.put(eventid,v); }else { Double aDouble = map.get(eventid); map.put(eventid,aDouble+v); } } } final Double[] lessPrice = {0.00}; map.forEach((s, aDouble) -> { SaleEvent one = eventService.getById(s); Double total = one.getGeTotal(); if (aDouble>=total){ lessPrice[0] +=one.getLessPrice(); } }); double r=0.00; if (lessPrice[0]>0){ r = price - lessPrice[0];//折扣后的总金额 }else { return price; } r = Double.parseDouble(String.format("%.2f",r)); return r; }解析该段代码
这段代码是一个Spring MVC框架中的控制器方法,使用@GetMapping注解来映射HTTP GET请求,请求路径为"/getLessPress"。@ResponseBody注解表示返回值会被序列化成JSON格式,并作为HTTP响应的body部分返回。该方法的参数为ids和nums,分别表示商品ID和数量,通过逗号分隔。首先将ids和nums转换为字符串数组,然后遍历数组中的每个商品,根据商品ID获取商品信息,计算该商品的总金额,并将该商品加入到一个Map中,Map的key为活动ID,value为该活动下所有商品的总金额。接下来遍历Map中的每个活动,如果该活动的总金额达到了活动的阈值,则计算该活动的折扣金额,并将折扣金额累加到lessPrice中。最后根据折扣金额计算出折扣后的总金额并返回。
@GetMapping("/ok") public String ok(){ return "/ok"; }
这是一个 Java 的控制器方法,用于处理 GET 请求方式的 "/ok" 请求。具体来说,该方法使用了 @GetMapping("/ok") 注解,表示它可以处理 GET 请求方式的 "/ok" 请求。
方法的处理逻辑非常简单,只是返回一个名为 "/ok" 的视图,用于展示订单支付成功的页面。因为该方法的返回值是一个字符串,所以 Spring MVC 会自动将其解析为视图的名称,并在视图解析器中查找对应的视图进行渲染。
在实际应用中,该方法通常会执行一些具体的业务逻辑,例如更新订单状态、发送邮件通知、生成支付凭证等。这些操作可以根据具体的需求来进行实现,以实现订单支付成功后的相关操作。
相关推荐
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)