diff --git a/src/main/java/com/sqx/modules/artificer/entity/Orders.java b/src/main/java/com/sqx/modules/artificer/entity/Orders.java index 0762402..6551b3a 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Orders.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Orders.java @@ -189,6 +189,18 @@ public class Orders implements Serializable { * 加钟金额 */ private BigDecimal addMoney; + /** + * 加钟技师加成后的价格 + */ + private BigDecimal addPriceMarkup; + /** + * 加钟技师加成金额 + */ + private BigDecimal addTechnicianMoney; + /** + * 加钟会员减免金额 + */ + private BigDecimal addVipReductionMoney; /** * 加钟项目收益 diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java index 06b5ae8..f4fc3bc 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java @@ -993,7 +993,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setTripWay(3); } TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime(),tripWay); - if (travelPriceVo == null) { + if (travelPriceVo == null) { return Result.error("暂不支持当前地址,请更换其他地址!"); } taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); @@ -1241,6 +1241,10 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setTechnicianRate(oldOrders.getTechnicianRate()); orders.setDuration(oldOrders.getDuration()); + orders.setTechnicianMoney(oldOrders.getTechnicianMoney()); + orders.setPriceMarkup(oldOrders.getPriceMarkup()); + orders.setVipReductionMoney(oldOrders.getVipReductionMoney()); + orders.setOldOrdersId(oldOrders.getOrdersId()); orders.setOldMassageMoney(oldOrders.getMassageMoney()); orders.setOldPayMoney(oldOrders.getPayMoney()); @@ -1517,9 +1521,11 @@ public class OrdersServiceImpl extends ServiceImpl implements chajiaTechnicianMoney = chajiaTechnicianMoney.setScale(0,BigDecimal.ROUND_UP); orders.setTechnicianMoney(chajiaTechnicianMoney); - BigDecimal chajiaVipMoney = chajiaTechnicianMoney.multiply(orders.getVipRate()).divide(new BigDecimal(100)); + BigDecimal chajiaPriceMarkup = chajiaTechnicianMoney.add(chajia); + + BigDecimal chajiaVipMoney = chajiaPriceMarkup.multiply(orders.getVipRate()).divide(new BigDecimal(100)); chajiaVipMoney = chajiaVipMoney.setScale(0,BigDecimal.ROUND_UP); - BigDecimal chajiaVipReductionMoney = chajiaTechnicianMoney.subtract(chajiaVipMoney); + BigDecimal chajiaVipReductionMoney = chajiaPriceMarkup.subtract(chajiaVipMoney); orders.setVipReductionMoney(chajiaVipReductionMoney); //项目价格 = 会员金额 @@ -1605,6 +1611,15 @@ public class OrdersServiceImpl extends ServiceImpl implements String value1 = commonInfoService.findOne(395).getValue(); Integer tripWay = orders.getTripWay(); + BigDecimal taxiMoney = BigDecimal.ZERO; + if(orders.getUserPackageDetailId() != null) { + String isTravelFree = commonInfoService.findOne(460).getValue(); + if(isTravelFree.equals("是")){ + taxiMoney = BigDecimal.ZERO; + tripWay = 3; + orders.setTripWay(3); + } + } String serveTime = orders.getServeTime(); String date = serveTime.substring(0, 10); @@ -1662,34 +1677,49 @@ public class OrdersServiceImpl extends ServiceImpl implements } orders.setVipRate(vipRate); - //技师加成金额 - BigDecimal technicianMoney = price.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)); - technicianMoney = technicianMoney.setScale(0,BigDecimal.ROUND_UP); - orders.setTechnicianMoney(technicianMoney); + if(orders.getUserPackageDetailId() != null) { + //技师加成金额 + orders.setTechnicianMoney(BigDecimal.ZERO); + //技师加成后总额 + orders.setPriceMarkup(price); + //会员优惠后金额,及会员减免金额 + orders.setVipReductionMoney(BigDecimal.ZERO); + //项目价格 = 会员金额 + orders.setMassageMoney(price); + }else{ + //技师加成金额 + BigDecimal technicianMoney = price.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)); + technicianMoney = technicianMoney.setScale(0,BigDecimal.ROUND_UP); + orders.setTechnicianMoney(technicianMoney); - //技师加成后总额 - BigDecimal priceMarkup = technicianMoney.add(price); - priceMarkup = priceMarkup.setScale(0,BigDecimal.ROUND_UP); - orders.setPriceMarkup(priceMarkup); + //技师加成后总额 + BigDecimal priceMarkup = technicianMoney.add(price); + priceMarkup = priceMarkup.setScale(0,BigDecimal.ROUND_UP); + orders.setPriceMarkup(priceMarkup); - //会员优惠后金额,及会员减免金额 - BigDecimal vipMoney = priceMarkup.multiply(orders.getVipRate()).divide(new BigDecimal(100)); - vipMoney = vipMoney.setScale(0,BigDecimal.ROUND_UP); - BigDecimal vipReductionMoney = priceMarkup.subtract(vipMoney); - orders.setVipReductionMoney(vipReductionMoney); + //会员优惠后金额,及会员减免金额 + BigDecimal vipMoney = priceMarkup.multiply(orders.getVipRate()).divide(new BigDecimal(100)); + vipMoney = vipMoney.setScale(0,BigDecimal.ROUND_UP); + BigDecimal vipReductionMoney = priceMarkup.subtract(vipMoney); + orders.setVipReductionMoney(vipReductionMoney); + + //项目价格 = 会员金额 + BigDecimal payMoney = vipMoney; + orders.setMassageMoney(payMoney); + } - //项目价格 = 会员金额 - BigDecimal payMoney = vipMoney; - orders.setMassageMoney(payMoney); //项目差价 BigDecimal xmchajia = orders.getMassageMoney().subtract(oldOrders.getMassageMoney()); - - TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime()); + TravelPriceVo travelPriceVo = null; + if(orders.getUserPackageDetailId() != null) { + travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime(),tripWay); + }else{ + travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime()); + } if (travelPriceVo == null) { return Result.error("暂不支持当前地址,请更换其他地址!"); } - //删除未支付,无用的升级新单据 List newList = baseMapper.getNewOrdersByOld(oldOrders.getOrdersId()); if(newList.size()>0){ @@ -1700,8 +1730,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } } } - - BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); + taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); taxiMoney = taxiMoney.setScale(0,BigDecimal.ROUND_UP); BigDecimal oldTaxiMoney = oldOrders.getTaxiMoney(); if (taxiMoney.compareTo(oldTaxiMoney) < 0) { @@ -2008,7 +2037,10 @@ public class OrdersServiceImpl extends ServiceImpl implements Orders orders = baseMapper.selectById(ordersId); if (orders.getStatus() == 4) { return Result.error("订单已经取消了!"); - } else if (orders.getStatus() == 3 || orders.getStatus() == 5) { + }else if (orders.getStatus() == 1) { + String remarks = "取消订单将扣除:0元的手续费!"; + return Result.success().put("data",remarks); + }else if (orders.getStatus() == 3 || orders.getStatus() == 5) { return Result.error("订单已经完成了,无法取消!"); }else if (orders.getStatus() == 6) { if(orders.getOldOrdersId() != null && orders.getOldOrdersId() != 0){ @@ -4630,10 +4662,16 @@ public class OrdersServiceImpl extends ServiceImpl implements orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); } else { orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); diff --git a/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java b/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java index 3be252d..d79722e 100644 --- a/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java +++ b/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java @@ -132,6 +132,17 @@ public class FileUploadUtils //file.transferTo(desc); IoUtil.close(out); String pathFileName = getPathFileName(baseDir, fileName); + + String extension = getExtension(file); + String[] imgExtension = {"bmp", "gif", "jpg", "jpeg", "png"}; + boolean isImg = false; + for (String str : imgExtension) + { + if (str.equalsIgnoreCase(extension)) + { + isImg = true; + } + } // try { // File input = new File(baseDir+"/"+fileName); // BufferedImage image = ImageIO.read(input); @@ -151,21 +162,24 @@ public class FileUploadUtils // } catch (Exception e) { // System.out.println("压缩失败:" + e.getMessage()); // } - try { - Date date = new Date(); - SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss"); - Random random = new Random(); - int randomNumber = random.nextInt(900000) + 100000; // 生成一个介于100000到999999之间的随机数 - String outfilename = fileName.substring(0,fileName.lastIndexOf("/"))+"/"+sdf.format(date)+randomNumber+fileName.substring(fileName.lastIndexOf("."),fileName.length()); + //如果是图片则压缩 + if(isImg){ + try { + Date date = new Date(); + SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss"); + Random random = new Random(); + int randomNumber = random.nextInt(900000) + 100000; // 生成一个介于100000到999999之间的随机数 + String outfilename = fileName.substring(0,fileName.lastIndexOf("/"))+"/"+sdf.format(date)+randomNumber+fileName.substring(fileName.lastIndexOf("."),fileName.length()); - File inputFile = new File(baseDir + File.separator + fileName); - File outputFile = new File(baseDir + File.separator + outfilename); // 输出图片文件 - String retImgName = "/file/uploadPath/"+outfilename; - float quality = 0.45f; // 压缩质量,范围0.0到1.0 - compressImage(inputFile, outputFile, quality); - pathFileName = retImgName; - } catch (IOException e) { - e.printStackTrace(); + File inputFile = new File(baseDir + File.separator + fileName); + File outputFile = new File(baseDir + File.separator + outfilename); // 输出图片文件 + String retImgName = "/file/uploadPath/"+outfilename; + float quality = 0.45f; // 压缩质量,范围0.0到1.0 + compressImage(inputFile, outputFile, quality); + pathFileName = retImgName; + } catch (IOException e) { + e.printStackTrace(); + } } return pathFileName; } diff --git a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java index 5ec2129..aaae5e5 100644 --- a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java +++ b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java @@ -206,7 +206,7 @@ public class TravelConfServiceImpl extends ServiceImpl免费公里数:公里数-免费公里数<起步公里数时,车费=夜间出行费+起步价 + if(kilometers.compareTo(startKilometers)<0){ + travelPrice = nightTravelExpenses.add(startingPrice); + }else{ + //公里数>免费公里数:公里数-免费公里数>起步公里数时,车费=夜间出行费+起步价+(公里数-免费公里数-起步公里数)*每公里价格 + travelPrice = nightTravelExpenses.add(startingPrice).add(kilometers.subtract(startKilometers).multiply(pricePerKilometer)); + } + } travelPrice = travelPrice.setScale(0,BigDecimal.ROUND_UP); vo.setTravelPrice(travelPrice.toString()); } return vo; - } }