@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-19 14:07:24 浏览: 95
这是一个Java Spring Boot的控制器方法,使用了@GetMapping和@ResponseBody注解。
该方法接受两个参数ids和nums,分别是商品ID和商品数量,使用逗号分隔。
接着,该方法对每个商品进行处理,计算出每个商品的总金额,并将其加入到总金额price中,同时将每个商品对应的活动ID加入到map中,如果该活动ID已经存在于map中,则将该商品的总金额加入到map中对应的value中。
接下来,遍历map,对于每个活动ID,获取其对应的SaleEvent对象,计算出该活动所需的总金额total,如果该商品的总金额大于等于total,则将该活动的折扣价格lessPrice加入到总折扣价格lessPrice[0]中。
最后,如果总折扣价格大于0,则将总金额减去总折扣价格得到折扣后的总金额r,否则直接返回总金额price。最后将折扣后的总金额以Object类型的形式返回。
相关问题
@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更新到数据库中。
总的来说,这段代码实现了一个修改购物车中某个商品数量的功能。
@GetMapping("/{url}") public String redirect(@PathVariable("url") String url){ return url; } @GetMapping("favicon.ico") @ResponseBody void returnNoFavicon() { }
这是一个使用Spring Boot框架编写的Java类,其中包含两个@GetMapping注解的方法。第一个方法使用了@PathVariable注解,表示接收一个路径变量,其中路径变量的名称为"url",并将其作为字符串类型的参数传入方法中。该方法的返回值为一个字符串类型的变量,其值为传入的路径变量值。第二个方法使用@GetMapping和@ResponseBody注解,表示该方法返回一个响应体,并且该方法的访问路径为"/favicon.ico"。该方法没有任何输入参数或返回值,其主要作用是为了防止浏览器在请求网页时自动请求网站的favicon.ico图标,从而减少不必要的网络流量。
阅读全文