@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 17:03:03 浏览: 73
这段代码是一个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 会自动将其解析为视图的名称,并在视图解析器中查找对应的视图进行渲染。
在实际应用中,该方法通常会执行一些具体的业务逻辑,例如更新订单状态、发送邮件通知、生成支付凭证等。这些操作可以根据具体的需求来进行实现,以实现订单支付成功后的相关操作。
@GetMapping("/changeCartNum") @ResponseBody public Object changeItemCartNum(String cartid,String num){ Cart one = cartService.getCartById(cartid); one.setNum(num); cartService.updateCart(one); return ""; }解析该段代码
这段代码是一个使用Spring Framework的注解方式实现的控制器方法。该方法使用了@GetMapping注解,表示它会处理HTTP GET请求。同时,@ResponseBody注解表示该方法会将返回值直接写入HTTP响应体中,而不是将其解析为视图名称,这里返回的是一个空字符串。
该方法有两个String类型的参数,一个是cartid,一个是num,分别表示购物车ID和数量。方法内部首先通过cartService调用getCartById方法获取对应ID的购物车对象one,然后将one的num属性设置为传入的num值。最后,调用cartService的updateCart方法将one更新到数据库中。
总的来说,这段代码实现了一个修改购物车中某个商品数量的功能。
阅读全文