package org.taobao88.taobao.controllers; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.taobao88.taobao.enterprise.dao.CountryRegCityDAO; import org.taobao88.taobao.enterprise.dao.GoodsDAO; import org.taobao88.taobao.enterprise.dao.OrderDAO; import org.taobao88.taobao.enterprise.dao.PostServiceDAO; import org.taobao88.taobao.enterprise.dao.UserDAO; import org.taobao88.taobao.enterprise.entity.OrderT; import org.taobao88.taobao.enterprise.entity.PostService; import org.taobao88.taobao.enterprise.entity.UserT; import org.taobao88.taobao.enterprise.service.PriceService; @Controller @RequestMapping(value = "/price") public class PriceController { @Autowired private PriceService priceService; @Autowired private OrderDAO orderDAO; @Autowired private UserDAO userDAO; @Autowired private GoodsDAO goodsDAO; @Autowired private PostServiceDAO postServiceDAO; @Autowired private CountryRegCityDAO countryRegCityDAO; @RequestMapping(value = "adjustPrice", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody String addOrder(@RequestParam ("idOrder") int[] orderIds, @RequestParam ("price") int[] price, @RequestParam ("postServiceId") int postServiceId, @RequestParam ("countryId") int countryId, HttpServletRequest request) { PostService chosenService = null; PostService service = postServiceDAO.findById(postServiceId); if (service.getCountry().getIdCountry() == 1) { chosenService = service; } else { chosenService = postServiceDAO.findByNameAndCountry(service.getServiceName(), countryId); } if (chosenService == null) { return "{\"success\":false,\"error\":\"chosen_service_null\"}"; } else { List<OrderT> orders = new ArrayList<>(); for (int id : orderIds) { OrderT o = orderDAO.findOrderById(id); o.setGoods(goodsDAO.findEmployeeById(o.getIdGoods())); orders.add(o); } double priceWithoutDelivery = 0; for (double p : price) { priceWithoutDelivery += p; } int userId = (int) request.getSession().getAttribute("currentIdUser"); UserT user = userDAO.findUserById(userId); int priceWithDelivery = priceService.getDeliveryPrice(orders, user, priceWithoutDelivery, chosenService); return priceWithDelivery == 0 ? "{\"success\":false,\"error\":\"weight_limit\"}" : "{\"success\":true,\"message\":\"" + priceWithDelivery + "\"}"; } } }