package org.taobao88.taobao.controllers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.web.multipart.MultipartFile; import org.taobao88.taobao.beans.OrderBEAN; import org.taobao88.taobao.enterprise.entity.*; import org.taobao88.taobao.enterprise.service.*; import org.taobao88.taobao.mail.MailMail; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; /** * Created by User on 12.06.14. */ public class MainController { @Autowired private OrderService orderDAO; @Autowired private UserService userDAO; @Autowired private GoodsService goodsDAO; @Autowired private OrderStatusService orderStatusDAO; @Autowired private PackageService packageDAO; @Autowired private PackageStatusService packageStatusDAO; @Autowired private MailService mailService; @Autowired private RecomendationTypeService recomendationTypeService; protected final String IMAGES_PATH = System.getProperty("catalina.home") + "/webapps/images"; private final int WEIGHT_LIMIT = 20000; public Goods getObjectGoods(HttpServletRequest request) throws UnsupportedEncodingException { //HttpSession sesion = request.getSession(true); Goods good = new Goods(); System.out.println(request.getParameter("HREFGOODS")); good.setHrefGoods(request.getParameter("HREFGOODS")); if(request.getParameter("AMOUNTGOODS") != null) { good.setAmountGoods(Integer.parseInt(request.getParameter("AMOUNTGOODS"))); good.setWeightGoods(Double.parseDouble(request.getParameter("WEIGHTGOODS"))); good.setPriceGoods(getPriceOfOrder(Integer.parseInt(request.getParameter("AMOUNTGOODS")),Double.parseDouble(request.getParameter("PRICEGOODS")))); } good.setColorGoods(request.getParameter("COLORGOODS")); good.setSizeGoods(request.getParameter("SIZEGOODS")); good.setNameGoods(request.getParameter("NAMEGOODS")); good.setChinaGoods(request.getParameter("CHINAGOODS")); good.setPhotoGoods(request.getParameter("PHOTOGOODS")); good.setComplexGoods(request.getParameter("COMPLEXGOODS")); return good; } public Goods getObjectGoodsForUpdate(HttpServletRequest request,Goods good) throws UnsupportedEncodingException { good.setHrefGoods(request.getParameter("HREFGOODS")); good.setAmountGoods(Integer.parseInt(request.getParameter("AMOUNTGOODS"))); good.setWeightGoods(Double.parseDouble(request.getParameter("WEIGHTGOODS"))); good.setPriceGoods(getPriceOfOrder(Integer.parseInt(request.getParameter("AMOUNTGOODS")),Double.parseDouble(request.getParameter("PRICEGOODS")))); good.setColorGoods(request.getParameter("COLORGOODS")); good.setSizeGoods(request.getParameter("SIZEGOODS")); good.setNameGoods(request.getParameter("NAMEGOODS")); good.setChinaGoods(request.getParameter("CHINAGOODS")); good.setPhotoGoods(request.getParameter("PHOTOGOODS")); good.setComplexGoods(request.getParameter("COMPLEXGOODS")); return good; } private double getPriceOfOrder(int amount, double priceForOne){ double price = 0; price = (priceForOne*10)*1.1*0.19; price *= amount; price = new BigDecimal(price).setScale(2, RoundingMode.UP).doubleValue(); return price; } private int getFullPriceOfOrder(int idUser,double priceOrder,double weight, int amount){ double price = 0; UserT userT = userDAO.findUserById(idUser); if(Integer.parseInt(userT.getCountryUser()) == 248) { price = priceOrder + getValueForBelarus((weight / 1000) * amount); } if(Integer.parseInt(userT.getCountryUser()) == 3159) { price = priceOrder + getValueForRussia((weight / 1000) * amount); } if(Integer.parseInt(userT.getCountryUser()) == 9908) { price = priceOrder + getValueForUkraine((weight / 1000) * amount); } return new BigDecimal(price).setScale(0, RoundingMode.UP).intValue(); } public OrderT getObjectOrder(int idGoods,int idUser, int idOrderStatus, double price,double weight, int amount) throws UnsupportedEncodingException { //HttpSession sesion = request.getSession(true); OrderT orderT = null; Goods goods = goodsDAO.findEmployeeById(idGoods); if (goods != null) { orderT = orderDAO.findByGoods(goods); } if (orderT == null) { orderT = new OrderT(); } orderT.setApprove("false"); orderT.setIdGoods(idGoods); orderT.setIdUser(idUser); orderT.setFullPrice(getFullPriceOfOrder(idUser,price,weight,amount)); orderT.setIdOrderStatus(idOrderStatus); return orderT; } public List<OrderBEAN> getOrders(List<OrderT> orderTs, List<Goods> goodses, List<OrderStatus> ordersStatuses){ List<OrderBEAN> listOrderBEAN = new ArrayList<OrderBEAN>(); for(int i = 0; i < orderTs.size(); i++){ System.out.println("STAT - " + ordersStatuses.get(i)); OrderBEAN orderBEAN = new OrderBEAN(); orderBEAN.setFullPrice(orderTs.get(i).getFullPrice()); orderBEAN.setIdUser(orderTs.get(i).getIdUser()); orderBEAN.setIdGoods(orderTs.get(i).getIdGoods()); orderBEAN.setApprove(orderTs.get(i).getApprove()); orderBEAN.setAmountGoods(goodses.get(i).getAmountGoods()); orderBEAN.setHrefGoods(goodses.get(i).getHrefGoods()); orderBEAN.setIdOrder(orderTs.get(i).getIdOrder()); orderBEAN.setPriceGoods(goodses.get(i).getPriceGoods()); orderBEAN.setWeightGoods(goodses.get(i).getWeightGoods()); orderBEAN.setIdOrderStatus(orderTs.get(i).getIdOrderStatus()); orderBEAN.setPhotoGoods(goodses.get(i).getPhotoGoods()); orderBEAN.setNameGoods(goodses.get(i).getNameGoods()); orderBEAN.setChinaGoods(goodses.get(i).getChinaGoods()); orderBEAN.setSizeGoods(goodses.get(i).getSizeGoods()); orderBEAN.setColorGoods(goodses.get(i).getColorGoods()); orderBEAN.setComplexGoods(goodses.get(i).getComplexGoods()); orderBEAN.setApproveStatus(ordersStatuses.get(i).getApprove()); orderBEAN.setPayStatus(ordersStatuses.get(i).getPay()); orderBEAN.setDoneStatus(ordersStatuses.get(i).getDone()); orderBEAN.setReadyStatus(ordersStatuses.get(i).getReady()); orderBEAN.setRansomStatus(ordersStatuses.get(i).getRansom()); System.out.println("orderBEAN - " + orderBEAN); listOrderBEAN.add(orderBEAN); } return listOrderBEAN; } public OrderStatus getOrderStatus(){ OrderStatus orderStatus = new OrderStatus(); orderStatus.setApprove("false"); orderStatus.setDone("false"); orderStatus.setPay("false"); orderStatus.setRansom("false"); orderStatus.setReady("false"); return orderStatus; } public PackageStatus getPackageStatus(){ PackageStatus packageStatus = new PackageStatus(); packageStatus.setApprovePackage("false"); packageStatus.setEndPackage("false"); packageStatus.setPayPackage("false"); packageStatus.setRansomPackage("false"); packageStatus.setReadyPackage("false"); packageStatus.setImportPackage("false"); return packageStatus; } public PackageStatus checkOnReady(List<OrderT> orderTs, PackageStatus packageStatus){ ArrayList<OrderStatus> orderStatuses = new ArrayList<OrderStatus>(); for(int i=0;i<orderTs.size();i++){ OrderStatus orderStatus = orderStatusDAO.findStatusById(orderTs.get(i).getIdOrderStatus()); orderStatuses.add(orderStatus); } for(int i=0;i<orderStatuses.size();i++){ if(orderStatuses.get(i).getDone().equals("true")){ packageStatus.setImportPackage("true"); }else{ packageStatus.setImportPackage("false"); break; } } for(int i=0;i<orderStatuses.size();i++){ if(orderStatuses.get(i).getApprove().equals("true")){ packageStatus.setApprovePackage("true"); }else{ packageStatus.setApprovePackage("false"); break; } } for(int i=0;i<orderStatuses.size();i++){ if(orderStatuses.get(i).getPay().equals("true")){ packageStatus.setPayPackage("true"); }else{ packageStatus.setPayPackage("false"); break; } } for(int i=0;i<orderStatuses.size();i++){ if(orderStatuses.get(i).getRansom().equals("true")){ packageStatus.setRansomPackage("true"); }else{ packageStatus.setRansomPackage("false"); break; } } for(int i=0;i<orderStatuses.size();i++){ if(orderStatuses.get(i).getReady().equals("true")){ packageStatus.setReadyPackage("true"); }else{ packageStatus.setReadyPackage("false"); break; } } if(packageStatus.getReadyPackage() == "true") { PackageT packageT = packageDAO.findPackageById(orderTs.get(0).getPackageT().getIdPackage()); packageT.setApprove("true"); packageDAO.updatePackage(packageT); } return packageStatus; } public void sendMessage(UserT userT, PackageT packageT, int idPackage) { ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Mail.xml"); // MailMail m = (MailMail) context.getBean("mailMail"); //String sender="gosha.egor.513@gmail.com";//write here sender gmail id ResourceBundle getPath = ResourceBundle.getBundle("mail"); String from = getPath.getString("mailAdmin"); String to = getPath.getString("mailReceiver"); String html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n" + "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\" lang=\"ru\">\n" + "<head>\n" + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n" + "<title>Заголовок страницы</title>\n" + "</head><body><img src='http://cs5818.vk.me/g31878503/a_7e51a447.jpg'>" + "<p><h3>ORDER FROM "+userT.getNameUser()+"</h3></p><table rules='all'>\n" + " <tr><th>Number of package</th>\n" + " <td>"+idPackage+"</td></tr>\n" + " <tr><th>Gmail of user</th>\n" + " <td>"+userT.getGmail()+"</td></tr>\n" + " <tr><th>Full price of package</th>\n" + " <td>"+packageT.getFullPrice()+"</td></tr>\n" + " <tr><th>Date of order</th>\n" + " <td>"+packageT.getDatePackage()+"</td></tr>\n" + " <tr><th>Post service</th>\n" + " <td>"+packageT.getPostService().getServiceName()+"</td></tr>\n" + "</table></body></html>"; mailService.sendSimpleMessage(from,to,"PACKAGE № "+idPackage,html); } public void sendNewPassword(UserT userT) { String newPassword = genRandom(); ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Mail.xml"); MailMail m = (MailMail) context.getBean("mailMail"); //String sender="gosha.egor.513@gmail.com";//write here sender gmail id ResourceBundle getPath = ResourceBundle.getBundle("mail"); String from = getPath.getString("mailAdmin"); String html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n" + "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\" lang=\"ru\">\n" + "<head>\n" + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n" + "<title>Заголовок страницы</title>\n" + "</head><body><img src='http://cs5818.vk.me/g31878503/a_7e51a447.jpg'>" + "<p>Hi, user <h3 style='color: blue;'>"+userT.getNameUser()+"</h3>, your new password : '"+newPassword+"'</p></body></html>"; m.sendMail(from,userT.getGmail(),"Смена пароля",html); userT.setPassword(newPassword); userDAO.updateUser(userT); } private String genRandom() { String letters = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String newPassword = ""; for(int i=0;i<6;i++) { Random rand = new Random(); int randomNumber = rand.nextInt(letters.length()) + 1; newPassword += letters.charAt(randomNumber); } return newPassword; } public UserT getParamsUserSettings(HttpServletRequest request, UserT user) throws UnsupportedEncodingException { user.setNameUser(request.getParameter("NAME")); user.setGmail(request.getParameter("EMAIL")); user.setFullNameUser(request.getParameter("NAMEUSER")); user.setFemailUser(request.getParameter("FEMAIL")); user.setPatronymicUser(request.getParameter("PATRONYMIC")); // user.setIndexUser(222); // System.out.println(Integer.parseInt(request.getParameter("idCountry"))); user.setCountryUser(request.getParameter("idCountry")); user.setRegionUser(request.getParameter("idRegion")); user.setCityUser(request.getParameter("idCity")); user.setStreetUser(request.getParameter("STREET")); user.setHouseUser(request.getParameter("HOUSE")); user.setRoomUser(request.getParameter("ROOM")); return user; } public List<PackageT> allPackagesForOneRequest(List<OrderT> orderTList, double price) { List<PackageT> rez = new ArrayList<PackageT>(); List<Integer> rezInt = new ArrayList<Integer>(); double weightOfGoodsInOneOrder = 0; double pricePackage = 0; double fullWeight = 0; for(OrderT o : orderTList) { Goods goods = goodsDAO.findEmployeeById(o.getIdGoods()); fullWeight += goods.getWeightGoods() * goods.getAmountGoods(); } if(fullWeight > WEIGHT_LIMIT) { for(int i=0;i<orderTList.size();i++) { orderTList.get(i).setApprove("true"); Goods goods = goodsDAO.findEmployeeById(orderTList.get(i).getIdGoods()); if((1*goods.getWeightGoods()*goods.getAmountGoods()+weightOfGoodsInOneOrder) <= WEIGHT_LIMIT) { weightOfGoodsInOneOrder += goods.getWeightGoods()*goods.getAmountGoods(); rezInt.add(i); pricePackage+=orderTList.get(i).getFullPrice(); if(orderTList.size()-1 == i) { int idPackageStatus = packageStatusDAO.savePackageStatus(getPackageStatus()); PackageT packageT = new PackageT(); packageT.setApprove("false"); packageT.setIdPackageStatus(idPackageStatus); packageT.setFullPrice((int) price); packageT.setDatePackage(getCurrentDate()); packageT.setWeight(fullWeight); pricePackage = 0; int idPackage = packageDAO.addPackage(packageT); rez.add(packageDAO.findPackageById(idPackage)); sendMessage(userDAO.findUserById(orderTList.get(0).getIdUser()), packageT, idPackage); for(int j=0;j<rezInt.size();j++) { orderTList.get(rezInt.get(j)).setPackageT(packageDAO.findPackageById(idPackage)); orderDAO.updateOrder(orderTList.get(rezInt.get(j))); } break; } } else { int idPackageStatus = packageStatusDAO.savePackageStatus(getPackageStatus()); PackageT packageT = new PackageT(); packageT.setApprove("false"); packageT.setIdPackageStatus(idPackageStatus); packageT.setFullPrice((int) price); packageT.setDatePackage(getCurrentDate()); packageT.setWeight(fullWeight); pricePackage = 0; int idPackage = packageDAO.addPackage(packageT); rez.add(packageDAO.findPackageById(idPackage)); sendMessage(userDAO.findUserById(orderTList.get(0).getIdUser()), packageT, idPackage); for(int j=0;j<rezInt.size();j++) { orderTList.get(rezInt.get(j)).setPackageT(packageDAO.findPackageById(idPackage)); orderDAO.updateOrder(orderTList.get(rezInt.get(j))); } rezInt.clear(); weightOfGoodsInOneOrder = 0; i=i-1; } } } else { int idPackageStatus = packageStatusDAO.savePackageStatus(getPackageStatus()); PackageT packageT = new PackageT(); packageT.setApprove("false"); packageT.setIdPackageStatus(idPackageStatus); packageT.setWeight(fullWeight); int idPackage = packageDAO.addPackage(packageT); rez.add(packageDAO.findPackageById(idPackage)); for(int i=0;i<orderTList.size();i++) { orderTList.get(i).setApprove("true"); Goods goods = goodsDAO.findEmployeeById(orderTList.get(i).getIdGoods()); pricePackage+=orderTList.get(i).getFullPrice(); orderTList.get(i).setPackageT(packageDAO.findPackageById(idPackage)); orderDAO.updateOrder(orderTList.get(i)); } packageT.setFullPrice((int) price); packageT.setDatePackage(getCurrentDate()); sendMessage(userDAO.findUserById(orderTList.get(0).getIdUser()),packageT,idPackage); packageDAO.updatePackage(packageT); } return rez; } public List<OrderT> prepareOrdersFromGoods(Goods goods, UserT user) throws UnsupportedEncodingException { List<OrderT> orders = new ArrayList<OrderT>(); double weight = 0; int amount = 0; double realWeight = goods.getWeightGoods() * goods.getAmountGoods(); if (realWeight < WEIGHT_LIMIT) { int idOrderStatus = orderStatusDAO.saveStatus(getOrderStatus()); OrderT ordert = orderDAO.findByGoods(goods); if (ordert == null) { ordert = new OrderT(); ordert.setIdOrder(orderDAO.addOrder(getObjectOrder(goods.getIdGoods(), user.getIdUser(), idOrderStatus, goods.getPriceGoods(), goods.getWeightGoods(), goods.getAmountGoods()))); } orders.add(orderDAO.findOrderById(ordert.getIdOrder())); } else { for(int i = 1; i <= goods.getAmountGoods(); i++) { amount++; if((1 * goods.getWeightGoods() + weight) <= WEIGHT_LIMIT) { weight += goods.getWeightGoods(); if(goods.getAmountGoods() == i) { int idOrderStatus = orderStatusDAO.saveStatus(getOrderStatus()); int idNewOrder = orderDAO.addOrder(getObjectOrder(goods.getIdGoods(), user.getIdUser(), idOrderStatus, goods.getPriceGoods(), goods.getWeightGoods(), goods.getAmountGoods())); orders.add(orderDAO.findOrderById(idNewOrder)); break; } } else { amount--; if(amount == 0) { amount++; } int idOrderStatus = orderStatusDAO.saveStatus(getOrderStatus()); int idNewOrder = orderDAO.addOrder(getObjectOrder(goods.getAmountGoods(), user.getIdUser(), idOrderStatus, goods.getPriceGoods(), goods.getWeightGoods(), goods.getAmountGoods())); orders.add(orderDAO.findOrderById(idNewOrder)); weight = 0; amount = 0; i=i-1; } } } return orders; } public List<OrderT> allOrdersForOneRequest(int amountConst,Goods goods, int idUser) throws UnsupportedEncodingException { List<OrderT> rezOrders = new ArrayList<OrderT>(); double weight = 0; int amount = amountConst; double realWeight = goods.getWeightGoods() * amountConst; if (realWeight > WEIGHT_LIMIT) { for(int i = 1; i <= amountConst; i++) { amount++; if((1 * goods.getWeightGoods() + weight) <= WEIGHT_LIMIT) { weight += goods.getWeightGoods(); if(amountConst == i) { Goods goodsNew = goods; goodsNew.setAmountGoods(amount); int idGoods = 0; if (goodsNew.getIdGoods() != 0) { idGoods = goodsNew.getIdGoods(); goodsDAO.updateEmployee(goodsNew); } else { idGoods = goodsDAO.saveGoods(goodsNew); } int idOrderStatus = orderStatusDAO.saveStatus(getOrderStatus()); int idNewOrder = 0; OrderT order = orderDAO.findByGoods(goodsNew); if (order != null) { idNewOrder = order.getIdOrder(); orderDAO.updateOrder(getObjectOrder(idGoods,idUser,idOrderStatus,goodsNew.getPriceGoods(),goodsNew.getWeightGoods(),goodsNew.getAmountGoods())); } else { idNewOrder = orderDAO.addOrder(getObjectOrder(idGoods,idUser,idOrderStatus,goodsNew.getPriceGoods(),goodsNew.getWeightGoods(),goodsNew.getAmountGoods())); } rezOrders.add(orderDAO.findOrderById(idNewOrder)); break; } } else { amount--; if(amount == 0) { amount++; } Goods goodsNew = goods; goodsNew.setAmountGoods(amount); int idGoods = 0; if (goodsNew.getIdGoods() != 0) { idGoods = goodsNew.getIdGoods(); goodsDAO.updateEmployee(goodsNew); } else { idGoods = goodsDAO.saveGoods(goodsNew); } int idOrderStatus = orderStatusDAO.saveStatus(getOrderStatus()); int idNewOrder = 0; OrderT order = orderDAO.findByGoods(goodsNew); if (order != null) { idNewOrder = order.getIdOrder(); orderDAO.updateOrder(getObjectOrder(idGoods,idUser,idOrderStatus,goodsNew.getPriceGoods(),goodsNew.getWeightGoods(),goodsNew.getAmountGoods())); } else { idNewOrder = orderDAO.addOrder(getObjectOrder(idGoods,idUser,idOrderStatus,goodsNew.getPriceGoods(),goodsNew.getWeightGoods(),goodsNew.getAmountGoods())); } rezOrders.add(orderDAO.findOrderById(idNewOrder)); weight = 0; amount = 0; i=i-1; } } } else { Goods goodsNew = goods; goodsNew.setAmountGoods(amount); int idGoods = 0; if (goodsNew.getIdGoods() != 0) { idGoods = goodsNew.getIdGoods(); goodsDAO.updateEmployee(goodsNew); } else { idGoods = goodsDAO.saveGoods(goodsNew); } int idOrderStatus = orderStatusDAO.saveStatus(getOrderStatus()); int idNewOrder = 0; OrderT order = orderDAO.findByGoods(goodsNew); if (order != null) { idNewOrder = order.getIdOrder(); orderDAO.updateOrder(getObjectOrder(idGoods,idUser,idOrderStatus,goodsNew.getPriceGoods(),goodsNew.getWeightGoods(),goodsNew.getAmountGoods())); } else { idNewOrder = orderDAO.addOrder(getObjectOrder(idGoods,idUser,idOrderStatus,goodsNew.getPriceGoods(),goodsNew.getWeightGoods(),goodsNew.getAmountGoods())); } rezOrders.add(orderDAO.findOrderById(idNewOrder)); } return rezOrders; } private double getValueForBelarus(double weight){ double D = 0; double Weight = 0; if(weight < 1.0){ Weight = new BigDecimal(weight).setScale(1, RoundingMode.UP).doubleValue(); }else{ Weight = new BigDecimal(weight).setScale(0, RoundingMode.UP).doubleValue(); } Map<Double,Integer> belarus = new HashMap<Double,Integer>(); belarus.put(0.1,18); belarus.put(0.2,33); belarus.put(0.3,48); belarus.put(0.4,63); belarus.put(0.5,78); belarus.put(0.6,93); belarus.put(0.7,108); belarus.put(0.8,123); belarus.put(1.0,155); belarus.put(2.0,211); belarus.put(3.0,267); belarus.put(4.0,324); belarus.put(5.0,380); belarus.put(6.0,436); belarus.put(7.0,493); belarus.put(8.0,549); belarus.put(9.0,605); belarus.put(10.0,662); belarus.put(11.0,718); belarus.put(12.0,774); belarus.put(13.0,830); belarus.put(14.0,887); belarus.put(15.0,943); belarus.put(16.0,1003); belarus.put(17.0,1063); belarus.put(18.0,1123); belarus.put(19.0,1183); belarus.put(20.0,1243); for(Map.Entry<Double,Integer> entry : belarus.entrySet()){ Double key = entry.getKey(); if(key == Weight){ D = entry.getValue(); break; } } return D*0.19; } private double getValueForRussia(double weight){ double D = 0; double Weight = 0; if(weight < 1.0){ Weight = new BigDecimal(weight).setScale(1, RoundingMode.UP).doubleValue(); }else{ Weight = new BigDecimal(weight).setScale(0, RoundingMode.UP).doubleValue(); } Map<Double,Integer> belarus = new HashMap<Double,Integer>(); belarus.put(0.1,38); belarus.put(0.2,53); belarus.put(0.3,68); belarus.put(0.4,83); belarus.put(0.5,98); belarus.put(0.6,113); belarus.put(0.7,128); belarus.put(0.8,143); belarus.put(1.0,191); belarus.put(2.0,250); belarus.put(3.0,309); belarus.put(4.0,368); belarus.put(5.0,427); belarus.put(6.0,487); belarus.put(7.0,546); belarus.put(8.0,606); belarus.put(9.0,665); belarus.put(10.0,723); belarus.put(11.0,783); belarus.put(12.0,843); belarus.put(13.0,902); belarus.put(14.0,961); belarus.put(15.0,1021); belarus.put(16.0,1079); belarus.put(17.0,1139); belarus.put(18.0,1199); belarus.put(19.0,1258); belarus.put(20.0,1317); for(Map.Entry<Double,Integer> entry : belarus.entrySet()){ Double key = entry.getKey(); if(key == Weight){ D = entry.getValue(); break; } } return D*0.19; } private double getValueForUkraine(double weight){ double D = 0; double Weight = 0; if(weight < 1.0){ Weight = new BigDecimal(weight).setScale(1, RoundingMode.UP).doubleValue(); }else{ Weight = new BigDecimal(weight).setScale(0, RoundingMode.UP).doubleValue(); } Map<Double,Integer> belarus = new HashMap<Double,Integer>(); belarus.put(0.1,38); belarus.put(0.2,53); belarus.put(0.3,68); belarus.put(0.4,83); belarus.put(0.5,98); belarus.put(0.6,113); belarus.put(0.7,128); belarus.put(0.8,143); belarus.put(1.0,181); belarus.put(2.0,235); belarus.put(3.0,289); belarus.put(4.0,343); belarus.put(5.0,397); belarus.put(6.0,451); belarus.put(7.0,505); belarus.put(8.0,559); belarus.put(9.0,614); belarus.put(10.0,668); belarus.put(11.0,722); belarus.put(12.0,776); belarus.put(13.0,830); belarus.put(14.0,885); belarus.put(15.0,939); belarus.put(16.0,993); belarus.put(17.0,1047); belarus.put(18.0,1101); belarus.put(19.0,1155); belarus.put(20.0,1209); for(Map.Entry<Double,Integer> entry : belarus.entrySet()){ Double key = entry.getKey(); if(key == Weight){ D = entry.getValue(); break; } } return D*0.19; } public String getCurrentDate() { Date now = new Date(); DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy"); String time = formatter.format(now); return time; } public List<PackageT> getListForFirstPage (List<PackageT> packageTList,HttpServletRequest request) { HttpSession session = request.getSession(true); List<PackageT> rezList = new ArrayList<PackageT>(); List<Integer> countOfPages = new ArrayList<Integer>(); int size=0; if(session.getAttribute("sizeOfPages") == null) { session.setAttribute("sizeOfPages",1); } System.out.println(session.getAttribute("currentPage")); if(null == session.getAttribute("currentPage")) { session.setAttribute("currentPage", 1); } else { if(null == request.getParameter("currentPageFromPage")){ session.setAttribute("currentPage", 1); } else { session.setAttribute("currentPage",Integer.parseInt(request.getParameter("currentPageFromPage"))); } } if(packageTList.size() <= 10) { countOfPages.add(1); session.setAttribute("countOfPages",countOfPages); return packageTList; } else { if(packageTList.size()%10 == 0){ size=packageTList.size()/10; } else{ size = packageTList.size()/10+1; } session.setAttribute("sizeOfPages",size); for(int i=1;i<=size;i++) { countOfPages.add(i); } session.setAttribute("countOfPages",countOfPages); int currentPage = (int) session.getAttribute("currentPage"); if(currentPage == countOfPages.size()) { int start = ((int)session.getAttribute("currentPage") - 1)*10+1; for(int i = start; i<packageTList.size();i++) { rezList.add(packageTList.get(i)); } } else { int start = ((int)session.getAttribute("currentPage") - 1)*10; int end = (int)session.getAttribute("currentPage")*10; for(int i = start; i<end;i++) { rezList.add(packageTList.get(i)); } } } return rezList; } public List<OrderBEAN> getListForFirstPageOrder (List<OrderBEAN> packageTList,HttpServletRequest request) { HttpSession session = request.getSession(true); List<OrderBEAN> rezList = new ArrayList<OrderBEAN>(); List<Integer> countOfPages = new ArrayList<Integer>(); int size=0; if(session.getAttribute("sizeOfPages") == null) { session.setAttribute("sizeOfPages",1); } System.out.println(session.getAttribute("currentPage")); if(null == session.getAttribute("currentPage")) { session.setAttribute("currentPage", 1); } else { if(null == request.getParameter("currentPageFromPage")){ session.setAttribute("currentPage", 1); } else { session.setAttribute("currentPage",Integer.parseInt(request.getParameter("currentPageFromPage"))); } } if(packageTList.size() <= 10) { countOfPages.add(1); session.setAttribute("countOfPages",countOfPages); return packageTList; } else { if(packageTList.size()%10 == 0){ size=packageTList.size()/10; } else{ size = packageTList.size()/10+1; } session.setAttribute("sizeOfPages",size); for(int i=1;i<=size;i++) { countOfPages.add(i); } session.setAttribute("countOfPages",countOfPages); int currentPage = (int) session.getAttribute("currentPage"); if(currentPage == countOfPages.size()) { int start = ((int)session.getAttribute("currentPage") - 1)*10+1; for(int i = start; i<packageTList.size();i++) { rezList.add(packageTList.get(i)); } } else { int start = ((int)session.getAttribute("currentPage") - 1)*10; int end = (int)session.getAttribute("currentPage")*10; for(int i = start; i<end;i++) { rezList.add(packageTList.get(i)); } } } return rezList; } public void sendToAdmin(String subject, String message) { ResourceBundle getPath = ResourceBundle.getBundle("mail"); String from = getPath.getString("mailAdmin"); String to = getPath.getString("mailReceiver"); mailService.sendSimpleMessage(from, to, subject, message); } protected String saveUploadedFile(MultipartFile file) { try { byte[] bytes = file.getBytes(); File dir = new File(IMAGES_PATH); if (!dir.exists()) dir.mkdir(); File serverFile = null; String fileName = file.getOriginalFilename(); String[] nameAndExtension = fileName.split("\\."); String savedFile = UUID.randomUUID().toString() + (nameAndExtension.length > 1 ? "." + nameAndExtension[1] : ""); serverFile = new File(dir.getAbsolutePath() + "/" + savedFile); while(serverFile.exists()) { savedFile = UUID.randomUUID().toString() + (nameAndExtension.length > 1 ? nameAndExtension[1] : ""); serverFile = new File(dir.getAbsolutePath() + "/" + savedFile); } BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile)); stream.write(bytes); stream.close(); return savedFile; } catch (Exception e) { e.printStackTrace(); } return null; } protected void deleteImage(Images image) { File imgDir = new File(IMAGES_PATH); if (imgDir.exists()) { File img = new File(imgDir.getAbsolutePath() + "/" + image.getImageName()); if (img.exists()) { img.delete(); } } } protected String toJSArray(Object [] errors) { String jsArray = "["; for (int i = 0; i < errors.length; i++) { if (i == (errors.length - 1)) { jsArray += "'" + errors[i].toString() + "']"; } else { jsArray += "'" + errors[i].toString() + "',"; } } return jsArray; } protected void createRecomendation(MultipartFile file, Recomendation rec) { saveUploadedFile(file); } protected void createRecomendation(MultipartFile[] files, Recomendation rec) { Set<Images> images = new HashSet<Images>(); for (MultipartFile file : files) { if (file.getSize() > 0) { Images image = new Images(); image.setImageName(saveUploadedFile(file)); images.add(image); } } if (rec.getImages() == null) { rec.setImages(images); } else { rec.getImages().addAll(images); } } protected List<RecomendationType> getRecomendationTypeList() { List<RecomendationType> typesList = recomendationTypeService.getRecomendationTypesAsList(); Iterator<RecomendationType> iterator = typesList.iterator(); while (iterator.hasNext()) { RecomendationType type = iterator.next(); if (type.getTypeId() == 1 || type.getTypeId() == 4) { iterator.remove(); } } return typesList; } }