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 21d4987..0762402 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Orders.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Orders.java @@ -472,8 +472,30 @@ public class Orders implements Serializable { private String startRemark; - - + /** + * 选择技师后,计算完技师加成后的价格 + */ + private BigDecimal priceMarkup; + /** + * 原技师加成后的价格 + */ + private BigDecimal oldPriceMarkup; + /** + * 技师加成金额 + */ + private BigDecimal technicianMoney; + /** + * 原技师加成金额 + */ + private BigDecimal oldTechnicianMoney; + /** + * VIP减免价格 + */ + private BigDecimal vipReductionMoney; + /** + * 原VIP减免价格 + */ + private BigDecimal oldVipReductionMoney; @TableField(exist = false) private List ordersMassageList; 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 ce720c1..f03d57d 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 @@ -724,11 +724,11 @@ public class OrdersServiceImpl extends ServiceImpl implements String massageTypeName = ""; BigDecimal artificerPrice = BigDecimal.ZERO; + orders.setDuration(massageType.getDuration()); for (OrdersMassage ordersMassage : ordersMassageList) { - orders.setDuration(massageType.getDuration()); orders.setMassageNum(ordersMassage.getNum()); price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); - + price = price.setScale(0,BigDecimal.ROUND_UP); if (orders.getParentId() != null && orders.getParentId() != 0) { orders.setAddTime(massageType.getDuration()); List parentList = baseMapper.getParentOrders(orders.getParentId()); @@ -783,7 +783,6 @@ public class OrdersServiceImpl extends ServiceImpl implements String value1 = commonInfoService.findOne(395).getValue(); Integer tripWay = orders.getTripWay(); - BigDecimal taxiMoney = BigDecimal.ZERO; if (orders.getParentId() == null || orders.getParentId() == 0) { String serveTime = orders.getServeTime(); @@ -873,7 +872,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setCreateTime(sdf.format(new Date())); //留存订单生成时的技师分成比例 orders.setArtificerRate(artificer.getRate()); - orders.setSumMoney(orders.getPayMoney().setScale(2,BigDecimal.ROUND_HALF_UP)); + orders.setSumMoney(orders.getPayMoney().setScale(0,BigDecimal.ROUND_UP)); //保存订单 baseMapper.insert(orders); @@ -905,7 +904,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } private Result insertPackageOrders(Orders orders) throws Exception{ - BigDecimal payMoney = BigDecimal.ZERO; List ordersMassageList = orders.getOrdersMassageList(); UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassageList.get(0).getMassageId()); orders.setUserPackageId(userPackageDetail.getMainId()); @@ -914,6 +912,8 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.error("此服务项目已经被使用,无法重复使用!"); } + orders.setVipRate(new BigDecimal(100)); + Artificer artificer = artificerService.getById(orders.getArtificerId()); orders.setTechnicianType(artificer.getTechnicianType()); BigDecimal artificerVipRate = BigDecimal.ZERO; @@ -926,31 +926,52 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal price = BigDecimal.ZERO; BigDecimal packagePrice = BigDecimal.ZERO; String massageTypeName = ""; - BigDecimal artificerPrice = new BigDecimal("0.00"); + BigDecimal artificerPrice = BigDecimal.ZERO; + orders.setDuration(userPackageDetail.getDuration()); for (OrdersMassage ordersMassage : ordersMassageList) { - orders.setDuration(userPackageDetail.getDuration()); orders.setMassageNum(ordersMassage.getNum()); - price = userPackageDetail.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); - packagePrice = userPackageDetail.getPackagePrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); - orders.setMassagePrice(packagePrice); - massageTypeName = userPackageDetail.getTitle(); - payMoney = packagePrice.add(payMoney); + price = userPackageDetail.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())).setScale(0,BigDecimal.ROUND_UP); + packagePrice = userPackageDetail.getPackagePrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())).setScale(0,BigDecimal.ROUND_UP); if (orders.getParentId() != null && orders.getParentId() != 0) { orders.setAddTime(userPackageDetail.getDuration()); + List parentList = baseMapper.getParentOrders(orders.getParentId()); + if(parentList.size()>0){ + for(Orders parentOrder : parentList){ + if(parentOrder.getStatus()==1 || parentOrder.getStatus()==4){ + baseMapper.deleteById(parentOrder.getOrdersId()); + ordersMassageService.removeByOrdersId(parentOrder.getOrdersId()); + } + } + } + parentList = baseMapper.getParentOrders(orders.getParentId()); + if(parentList.size()>0){ + return Result.error("当前订单已有加钟订单,无法继续加钟!"); + } } orders.setMassageTypeId(userPackageDetail.getMassageTypeId()); } + massageTypeName = userPackageDetail.getTitle(); + orders.setEntryName(massageTypeName); + orders.setMassagePrice(packagePrice); //保存现价 orders.setPrice(price); - orders.setEntryName(massageTypeName); + + //技师加成金额 + orders.setTechnicianMoney(BigDecimal.ZERO); + //技师加成后总额 + orders.setPriceMarkup(packagePrice); + //会员减免金额 + orders.setVipReductionMoney(BigDecimal.ZERO); + + BigDecimal payMoney = packagePrice; orders.setMassageMoney(payMoney); - orders.setVipRate(new BigDecimal(100)); String value1 = commonInfoService.findOne(395).getValue(); Integer tripWay = orders.getTripWay(); BigDecimal taxiMoney = BigDecimal.ZERO; + String isTravelFree = commonInfoService.findOne(460).getValue(); if(isTravelFree.equals("是")){ taxiMoney = BigDecimal.ZERO; @@ -958,8 +979,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setTripWay(3); } TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime(),tripWay); -// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); - if (travelPriceVo == null) { + if (travelPriceVo == null) { return Result.error("暂不支持当前地址,请更换其他地址!"); } taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); @@ -979,19 +999,10 @@ public class OrdersServiceImpl extends ServiceImpl implements if (artificerTime != null) { return Result.error("预约时间正忙,请更换其他时间!"); } - Map map = getTaskTime(userPackageDetail.getDuration(),serveTime,value1,tripWay,orders.getArtificerId()); if(map.get("code").toString().equals("1")){ return Result.error("预约时间正忙,请更换其他时间!"); } - -// WSSsdrAddress wsSsdrAddress = AddressUtil.resolveAddress(orders.getAddress()); -// Map result = selectTaxiMoney(orders.getArtificerId(), orders.getLatitude(), orders.getLongitude(), wsSsdrAddress.getCity()); -// if (result == null) { -// return Result.error("暂不支持当前地址,请更换其他地址!"); -// } -// taxiMoney = new BigDecimal(String.valueOf(result.get("taxiMoney"))); -// orders.setTaxiMoney(taxiMoney); } else { if ("是".equals(value1)) { ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 ")); @@ -1003,46 +1014,45 @@ public class OrdersServiceImpl extends ServiceImpl implements } } //加上车费 + BigDecimal subtract = payMoney; payMoney = payMoney.add(taxiMoney); - payMoney = payMoney.setScale(2,BigDecimal.ROUND_HALF_UP); + payMoney = payMoney.setScale(0,BigDecimal.ROUND_UP); orders.setPayMoney(payMoney); + //计算用户收益 !计算前先减去通行费用再计算技师抽成 + artificerPrice = subtract.multiply(artificer.getRate()).setScale(0,BigDecimal.ROUND_UP); //查询是否计算出租车扣费 String taxi = commonInfoService.findOne(394).getValue(); //计算技师出租车收益(按照技师表收益计算) if ("是".equals(taxi)) { //计算技师应该收取的出租车费用 - BigDecimal artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - artificerTaxiMoney = artificerTaxiMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()).setScale(0,BigDecimal.ROUND_UP); //计算出租车扣款 - BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); + BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney).setScale(0,BigDecimal.ROUND_UP); //赋值技师出租收款 orders.setArtificerTaxiMoney(artificerTaxiMoney); //赋值出租车扣款 orders.setPingTaxiMoney(pingTaxiMoney); - //赋值技师收益 - artificerPrice = orders.getPayMoney().multiply(artificer.getRate()); + //用户收益加上通行费用 + artificerPrice = artificerPrice.add(artificerTaxiMoney); } else { //平台不扣费 出租车收益全由技师收取 orders.setArtificerTaxiMoney(orders.getTaxiMoney()); //设置出租车扣款为0 orders.setPingTaxiMoney(BigDecimal.ZERO); - //用户支付减去通行费用 - BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney); - //计算用户收益 !计算前先减去通行费用再计算技师抽成 - artificerPrice = subtract.multiply(artificer.getRate()); //用户收益加上通行费用 artificerPrice = artificerPrice.add(taxiMoney); } + orders.setArtificerMoney(artificerPrice); + orders.setSumArtificerMoney(orders.getArtificerMoney()); //计算项目收益 //获取项目应支付金额 - BigDecimal projectBenefits = orders.getMassageMoney(); +// BigDecimal projectBenefits = orders.getMassageMoney(); + BigDecimal projectBenefits = subtract; //计算技师项目提成金额 - orders.setProjectBenefits(projectBenefits.multiply(artificer.getRate()).setScale(2,BigDecimal.ROUND_HALF_UP)); + orders.setProjectBenefits(projectBenefits.multiply(artificer.getRate()).setScale(0,BigDecimal.ROUND_UP)); - orders.setArtificerMoney(artificerPrice); - orders.setSumArtificerMoney(orders.getArtificerMoney()); orders.setOrdersNo(getGeneralOrder()); orders.setStatus(1); @@ -1050,7 +1060,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setCreateTime(sdf.format(new Date())); //留存订单生成时的技师分成比例 orders.setArtificerRate(artificer.getRate()); - orders.setSumMoney(orders.getPayMoney().setScale(2,BigDecimal.ROUND_HALF_UP)); + orders.setSumMoney(orders.getPayMoney().setScale(0,BigDecimal.ROUND_UP)); //保存订单 baseMapper.insert(orders); @@ -1074,59 +1084,6 @@ public class OrdersServiceImpl extends ServiceImpl implements ordersMassage.setOrdersId(orders.getOrdersId()); ordersMassageService.save(ordersMassage); } - //todo 改成支付时插入技师占用时间表 -// if (orders.getParentId() == null || orders.getParentId() == 0) { -// String serveTime = orders.getServeTime(); -// if (i > 0) { -// SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); -// Date parse = sdf1.parse(serveTime); -// Calendar calendar = Calendar.getInstance(); -// calendar.setTime(parse); -// //3.预约时间前及服务完成时间后问题 -// DateTime dateTime = DateUtil.offsetMinute(parse, -30); -// Calendar calendar1 = Calendar.getInstance(); -// calendar1.setTime(dateTime); -// String format1 = sdf1.format(calendar1.getTime()); -// String date1 = format1.substring(0, 10); -// String time1 = format1.substring(11, 16); -// ArtificerTime artificerTime1 = new ArtificerTime(); -// artificerTime1.setArtificerId(orders.getArtificerId()); -// artificerTime1.setArtificerDate(date1); -// artificerTime1.setArtificerTime(time1); -// artificerTime1.setClassify(1); -// artificerTime1.setOrdersId(orders.getOrdersId()); -// artificerTime1.setCreateTime(DateUtils.format(new Date())); -// artificerTimeService.save(artificerTime1); -// -// for (int j = 0; j < i; j++) { -// String format = sdf1.format(calendar.getTime()); -// String date = format.substring(0, 10); -// String time = format.substring(11, 16); -// ArtificerTime artificerTime = new ArtificerTime(); -// artificerTime.setArtificerId(orders.getArtificerId()); -// artificerTime.setArtificerDate(date); -// artificerTime.setArtificerTime(time); -// artificerTime.setClassify(1); -// artificerTime.setOrdersId(orders.getOrdersId()); -// artificerTime.setCreateTime(DateUtils.format(new Date())); -// artificerTimeService.save(artificerTime); -// calendar.add(Calendar.MINUTE, minute); -// } -// } - // todo 这块只是满足当时的需求注释的 (后续有变化需要改动!!!) -// else { -// String date = serveTime.substring(0, 10); -// String time = serveTime.substring(11, 16); -// ArtificerTime artificerTime = new ArtificerTime(); -// artificerTime.setArtificerId(orders.getArtificerId()); -// artificerTime.setArtificerDate(date); -// artificerTime.setArtificerTime(time); -// artificerTime.setClassify(1); -// artificerTime.setOrdersId(orders.getOrdersId()); -// artificerTime.setCreateTime(DateUtils.format(new Date())); -// artificerTimeService.save(artificerTime); -// } -// } return Result.success().put("data", orders); } @@ -1148,6 +1105,9 @@ public class OrdersServiceImpl extends ServiceImpl implements if (oldOrders.getStatus() == 4) { return Result.error("已取消的订单不可修改!"); } + if (oldOrders.getStatus() == 1) { + return Result.error("未支付的订单不可修改,请取消后重新下单!"); + } int dbd = 0; int sjd = 0; int xgd = 0; @@ -1232,7 +1192,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime()); -// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); if (travelPriceVo == null) { return Result.error("暂不支持当前地址,请更换其他地址!"); } @@ -1247,7 +1206,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } } BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); - taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP); + taxiMoney = taxiMoney.setScale(0,BigDecimal.ROUND_UP); orders.setTaxiMoney(taxiMoney); orders.setKm(travelPriceVo.getKilometerNum()); orders.setPayMoney(taxiMoney); @@ -1255,7 +1214,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setCreateTime(DateUtils.format(new Date())); // Artificer artificer = artificerService.getById(orders.getArtificerId()); orders.setArtificerRate(artificer.getRate()); - orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); + orders.setSumMoney(orders.getPayMoney().setScale(0, BigDecimal.ROUND_UP)); orders.setIsSupplement(1); orders.setProjectBenefits(BigDecimal.ZERO); orders.setVipRate(oldOrders.getVipRate()); @@ -1276,6 +1235,9 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOldMassagePrice(oldOrders.getMassagePrice()); orders.setOldMassageNum(oldOrders.getMassageNum()); orders.setOldMassageDuration(oldOrders.getDuration()); + orders.setOldPriceMarkup(oldOrders.getPriceMarkup()); + orders.setOldTechnicianMoney(oldOrders.getTechnicianMoney()); + orders.setOldVipReductionMoney(oldOrders.getVipReductionMoney()); Orders ordersOld = new Orders(); ordersOld.setOrdersId(oldOrders.getOrdersId()); @@ -1292,27 +1254,24 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal subtract = oldOrders.getPayMoney(); //计算用户收益 BigDecimal artificerPrice = subtract.multiply(artificer.getRate()); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); -// BigDecimal projectBenefits = massageMoney; -// projectBenefits = projectBenefits.multiply(artificer.getRate()); -// projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); + if(oldOrders.getPayWay().equals(5)){ BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue()); ordersOld.setWalletRate(rate); rate = rate.divide(new BigDecimal(100)); - BigDecimal storageRate = BigDecimal.ONE.subtract(rate); - BigDecimal valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额 - valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP); - ordersOld.setValueStorageDeduction(valueStorageDeduction); + + BigDecimal valueStorageDeduction = artificerPrice; + artificerPrice = artificerPrice.multiply(rate); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); -// projectBenefits = projectBenefits.multiply(rate); -// ordersOld.setProjectBenefits(projectBenefits); + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); + + valueStorageDeduction = valueStorageDeduction.subtract(artificerPrice); + ordersOld.setValueStorageDeduction(valueStorageDeduction); ordersOld.setProjectBenefits(artificerPrice); }else{ ordersOld.setValueStorageDeduction(BigDecimal.ZERO); //计算技师项目提成金额 -// ordersOld.setProjectBenefits(projectBenefits); ordersOld.setProjectBenefits(artificerPrice); } @@ -1323,7 +1282,7 @@ public class OrdersServiceImpl extends ServiceImpl implements ordersOld.setOneArtificerUserId(oneArtificerUser.getUserId()); ordersOld.setOneArtificerUserName(oneArtificerUser.getUserName()); oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); - oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneArtificerMoney = oneArtificerMoney.setScale(0, BigDecimal.ROUND_UP); } ordersOld.setOneArtificerMoney(oneArtificerMoney); BigDecimal shopMoney = BigDecimal.ZERO; @@ -1336,7 +1295,7 @@ public class OrdersServiceImpl extends ServiceImpl implements ordersOld.setShopUserId(consortiaUser.getUserId()); ordersOld.setShopUserName(consortiaUser.getUserName()); shopMoney = artificerPrice.multiply(consortia.getRate()); - shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + shopMoney = shopMoney.setScale(0, BigDecimal.ROUND_UP); } } } @@ -1359,7 +1318,7 @@ public class OrdersServiceImpl extends ServiceImpl implements ordersOld.setOneUserId(oneUser.getUserId()); ordersOld.setOneUserName(oneUser.getUserName()); oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_UP); } ordersOld.setOneUserMoney(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney); @@ -1400,20 +1359,22 @@ public class OrdersServiceImpl extends ServiceImpl implements List ordersMassageList = orders.getOrdersMassageList(); massageTypeId = ordersMassageList.get(0).getMassageId(); MassageType massageType = massageTypeService.getById(massageTypeId); - for (OrdersMassage ordersMassage : ordersMassageList) { - if(massageType.getDuration().compareTo(oldOrders.getDuration()) > 0){ - orders.setDuration(massageType.getDuration()); - timeDifference = massageType.getDuration()-oldOrders.getDuration(); - }else{ - orders.setDuration(oldOrders.getDuration()); - } - orders.setMassageNum(ordersMassage.getNum()); - price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); + orders.setDuration(massageType.getDuration()); + if(massageType.getDuration().compareTo(oldOrders.getDuration()) > 0){ + timeDifference = massageType.getDuration()-oldOrders.getDuration(); + }else{ + orders.setDuration(oldOrders.getDuration()); } + for (OrdersMassage ordersMassage : ordersMassageList) { + orders.setMassageNum(ordersMassage.getNum()); + price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())).setScale(0,BigDecimal.ROUND_UP); + } + orders.setMassagePrice(price); orders.setPrice(price); orders.setMassageTypeId(massageTypeId); orders.setEntryName(massageType.getTitle()); + //判断新price是否大于旧price if (orders.getPrice().compareTo(oldOrders.getPrice()) <= 0) { return Result.error("要升级的服务项目金额应大于原服务项目金额!"); @@ -1441,6 +1402,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } } } + //使用原价计算差额 orders.setUserId(oldOrders.getUserId()); orders.setUserName(oldOrders.getUserName()); @@ -1474,6 +1436,9 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOldMassageDuration(oldOrders.getDuration()); orders.setOldArtificerMoney(oldOrders.getArtificerMoney()); orders.setArtificerTaxiMoney(oldOrders.getArtificerTaxiMoney()); + orders.setOldPriceMarkup(oldOrders.getPriceMarkup()); + orders.setOldTechnicianMoney(oldOrders.getTechnicianMoney()); + orders.setOldVipReductionMoney(oldOrders.getVipReductionMoney()); if(oldOrders.getIsSupplement()!=null){ if(oldOrders.getIsSupplement().equals(1)){ BigDecimal projectBenefits = oldOrders.getProjectBenefits().add(oldOrders.getOldProjectBenefits()); @@ -1517,19 +1482,39 @@ public class OrdersServiceImpl extends ServiceImpl implements } orders.setTechnicianRate(artificerVipRate); + //技师加成金额 + 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 vipMoney = price.multiply(orders.getVipRate()).divide(new BigDecimal(100)); + vipMoney = vipMoney.setScale(0,BigDecimal.ROUND_UP); + BigDecimal vipReductionMoney = price.subtract(vipMoney); +// orders.setVipReductionMoney(vipReductionMoney); + BigDecimal chajia = orders.getMassagePrice().subtract(oldOrders.getMassagePrice()); - BigDecimal massagePrice = chajia.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)).add(chajia);//技师等级加成金额 - massagePrice = massagePrice.multiply(orders.getVipRate()).divide(new BigDecimal(100));//会员优惠后金额 - massagePrice = massagePrice.setScale(2, BigDecimal.ROUND_HALF_UP); - orders.setMassageMoney(massagePrice); + BigDecimal chajiaTechnicianMoney = chajia.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)); + chajiaTechnicianMoney = chajiaTechnicianMoney.setScale(0,BigDecimal.ROUND_UP); + orders.setTechnicianMoney(chajiaTechnicianMoney); -// chajia = chajia.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)).add(price);//技师等级加成金额 -// chajia = chajia.multiply(orders.getVipRate()).divide(new BigDecimal(100)); + BigDecimal chajiaVipMoney = chajia.multiply(orders.getVipRate()).divide(new BigDecimal(100)); + chajiaVipMoney = chajiaVipMoney.setScale(0,BigDecimal.ROUND_UP); + BigDecimal chajiaVipReductionMoney = chajia.subtract(chajiaVipMoney); + orders.setVipReductionMoney(chajiaVipReductionMoney); + + //项目价格 = 原金额+技师加成金额-会员减免金额 + BigDecimal massagePrice = chajia.add(chajiaTechnicianMoney).subtract(chajiaVipReductionMoney).setScale(0,BigDecimal.ROUND_UP); + orders.setMassageMoney(massagePrice); orders.setPayMoney(massagePrice);//差价 //计算技师项目提成金额 - BigDecimal artificerPrice = massagePrice.multiply(artificer.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal artificerPrice = massagePrice.multiply(artificer.getRate()).setScale(0, BigDecimal.ROUND_UP); orders.setProjectBenefits(artificerPrice); orders.setArtificerMoney(artificerPrice); orders.setSumArtificerMoney(artificerPrice); @@ -1554,382 +1539,6 @@ public class OrdersServiceImpl extends ServiceImpl implements baseMapper.updateById(ordersOld);//原单暂变成挂单状态 return Result.success().put("data", orders); } - //临时单修改 - if (oldOrders.getStatus() == 1) { - //未支付随便改,更新原单据 - Long massageTypeId; - if (orders.getOrdersMassageList() != null) { - List ordersMassageList = orders.getOrdersMassageList(); - massageTypeId = ordersMassageList.get(0).getMassageId(); - } else { - return Result.error("当前订单没有选择服务项目!"); - } - Date serveTimeDate = DateUtils.stringToDate(orders.getServeTime(), "yyyy-MM-dd HH:mm"); - if(serveTimeDate.getTime() < (new Date()).getTime()){ - return Result.error("服务时间不能晚于当前时间!"); - } - if (oldOrders.getUserPackageDetailId() != null) { - if (!massageTypeId.equals(oldOrders.getUserPackageDetailId()) ) { - return Result.error("当前套餐类订单无法修改项目,如需更改请取消单据重新下单!"); - } - UserPackageDetail userPackageDetail = userPackageDetailService.getById(massageTypeId); - - String value1 = commonInfoService.findOne(395).getValue(); - Integer tripWay = orders.getTripWay(); - - BigDecimal taxiMoney = BigDecimal.ZERO; - if (orders.getParentId() == null || orders.getParentId() == 0) { - String serveTime = orders.getServeTime(); - String date = serveTime.substring(0, 10); - String time = serveTime.substring(11, 16); - ArtificerTime artificerTime = artificerTimeService.getOne( - new QueryWrapper() - .eq("artificer_id", orders.getArtificerId()) - .eq("artificer_date", date) - .eq("artificer_time", time) - .last("limit 1")); - if (artificerTime != null) { - return Result.error("预约时间正忙,请更换其他时间!"); - } - - Map map = getTaskTime(userPackageDetail.getDuration(),serveTime,value1,tripWay,orders.getArtificerId()); - if(map.get("code").toString().equals("1")){ - return Result.error("预约时间正忙,请更换其他时间!"); - } - TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime()); -// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); - if (travelPriceVo == null) { - return Result.error("暂不支持当前地址,请更换其他地址!"); - } - taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); - orders.setTaxiMoney(taxiMoney); - orders.setKm(travelPriceVo.getKilometerNum()); - - } else { - if ("是".equals(value1)) { - ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 ")); - String serveTime = artificerTime.getArtificerDate() + " " + artificerTime.getArtificerTime(); - Map map = getAddTaskTime(userPackageDetail.getDuration(),serveTime,value1,orders.getArtificerId()); - if(map.get("code").toString().equals("1")){ - return Result.error("预约时间正忙,请更换其他时间!"); - } - } - } - BigDecimal massageMoney = oldOrders.getMassageMoney(); - if(oldOrders.getCouponMoney()!=null){ - massageMoney = massageMoney.subtract(oldOrders.getCouponMoney()); - } - //加上车费 - BigDecimal payMoney = massageMoney.add(taxiMoney); - payMoney = payMoney.setScale(2,BigDecimal.ROUND_HALF_UP); - orders.setPayMoney(payMoney); - BigDecimal artificerPrice = BigDecimal.ZERO; - Artificer artificer = artificerService.getById(orders.getArtificerId()); - //查询是否计算出租车扣费 - String taxi = commonInfoService.findOne(394).getValue(); - //计算技师出租车收益(按照技师表收益计算) - if ("是".equals(taxi)) { - //计算技师应该收取的出租车费用 - BigDecimal artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - //计算出租车扣款 - BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); - //赋值技师出租收款 - orders.setArtificerTaxiMoney(artificerTaxiMoney); - //赋值出租车扣款 - orders.setPingTaxiMoney(pingTaxiMoney); - //赋值技师收益 - artificerPrice = orders.getPayMoney().multiply(artificer.getRate()); - } else { - //平台不扣费 出租车收益全由技师收取 - orders.setArtificerTaxiMoney(orders.getTaxiMoney()); - //设置出租车扣款为0 - orders.setPingTaxiMoney(BigDecimal.ZERO); - //用户支付减去通行费用 - BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney); - //计算用户收益 !计算前先减去通行费用再计算技师抽成 - artificerPrice = subtract.multiply(artificer.getRate()); - //用户收益加上通行费用 - artificerPrice = artificerPrice.add(taxiMoney); - } - //计算项目收益 - //获取项目应支付金额 - BigDecimal projectBenefits = massageMoney; - //计算技师项目提成金额 - orders.setProjectBenefits(projectBenefits.multiply(artificer.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP)); - - orders.setArtificerMoney(artificerPrice); - orders.setSumArtificerMoney(orders.getArtificerMoney()); - orders.setOrdersNo(getGeneralOrder()); - orders.setStatus(1); - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - orders.setCreateTime(sdf.format(new Date())); - //留存订单生成时的技师分成比例 - orders.setArtificerRate(artificer.getRate()); - orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); - //修改订单 - baseMapper.updateById(orders); - - ordersMassageService.removeByOrdersId(orders.getOrdersId()); - List ordersMassageList = orders.getOrdersMassageList(); - for (OrdersMassage ordersMassage : ordersMassageList) { - ordersMassage.setOrdersId(orders.getOrdersId()); - ordersMassageService.save(ordersMassage); - } - - return Result.success().put("data", orders); - } else { - //修改一般订单 - MassageType massageType = massageTypeService.getById(massageTypeId); - orders.setMassageTypeId(massageType.getMassageTypeId()); - orders.setEntryName(massageType.getTitle()); - - //获取原优惠券 - List oldCouponList = Lists.newArrayList(); - String oldCouponId = oldOrders.getCouponId(); - if (StringUtils.isNotBlank(oldCouponId)) { - String[] oldCouponArr = oldCouponId.trim().split(","); - for (int i = 0; i < oldCouponArr.length; i++) { - if (oldCouponArr[i] != null && !oldCouponArr[i].equals("")) { - oldCouponList.add(oldCouponArr[i]); - } - } - } - - //判断新优惠券是否可用 - BigDecimal couponMinMoney = BigDecimal.ZERO;//所有代金券的使用额度总和 - //获取并判断代金券信息 - List CouponUserList = Lists.newArrayList(); - String couponIds = orders.getCouponId(); - if (StringUtils.isNotBlank(couponIds)) { - String[] couponArr = couponIds.trim().split(","); - BigDecimal couponMoney = new BigDecimal(0); - StringBuffer couponNameSb = new StringBuffer(); - for (int i = 0; i < couponArr.length; i++) { - if (couponArr[i] != null && !couponArr[i].equals("")) { - String couponIdStr = couponArr[i]; - Long couponId = Long.valueOf(couponIdStr); - CouponUser couponUser = couponUserService.getById(couponId); - boolean isGoon = true; - if (!couponUser.getStatus().equals(0)) { - isGoon = false;//被占用 - } - if (!isGoon) { - if (oldCouponList.size() > 0) { - if (oldCouponList.contains(couponIdStr)) { - isGoon = true;//被占用的新优惠券在原优惠券中存在则继续 - } - } - } - if (!isGoon) { - return Result.error("优惠券已被使用!"); - } - if (couponUser.getClassifyId() != 0) { - if (!orders.getClassifyId().equals(couponUser.getClassifyId())) { - return Result.error("优惠券不满足使用条件!"); - } - } - couponMinMoney = couponMinMoney.add(couponUser.getMinMoney()); - CouponUserList.add(couponUser); - BigDecimal money = couponUser.getMoney(); - couponMoney = couponMoney.add(money); - couponNameSb.append(couponUser.getCouponName()); - couponNameSb.append(","); - } - } - orders.setCouponName(couponNameSb.toString()); - orders.setCouponMoney(couponMoney); - } else { - orders.setCouponName(""); - orders.setCouponMoney(BigDecimal.ZERO); - } - //获取用户VIP的优惠信息 - BigDecimal vipRate = new BigDecimal(100); - UserVip userVip = userVipService.selectUserVipByUserId(orders.getUserId()); - if (userVip != null) { - if (userVip.getIsVip() == 1) { - //获取用户到期时间 - Date date = null; - try { - date = DateUtils.stringToDate(userVip.getEndTime(), DateUtils.DATE_TIME_PATTERN); - if (date.getTime() >= System.currentTimeMillis()) { - VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper().eq("vip_name_type", userVip.getVipNameType())); - if (vipDetails != null) { - vipRate = vipDetails.getRate(); - } - } - } catch (Exception e) { - e.getMessage(); - } - } - } - orders.setVipRate(vipRate); - Artificer artificer = artificerService.getById(orders.getArtificerId()); - orders.setTechnicianType(artificer.getTechnicianType()); - BigDecimal artificerVipRate = BigDecimal.ZERO; - VipDetails artificerVipDetails = vipDetailsDao.selectOne(new QueryWrapper().eq("vip_name_type", artificer.getTechnicianType())); - if (artificerVipDetails != null) { - artificerVipRate = artificerVipDetails.getRate(); - } - orders.setTechnicianRate(artificerVipRate); - - BigDecimal payMoney = BigDecimal.ZERO; - - List ordersMassageList = orders.getOrdersMassageList(); - - BigDecimal price = BigDecimal.ZERO; - String massageTypeName = ""; - BigDecimal artificerPrice = new BigDecimal("0.00"); - - for (OrdersMassage ordersMassage : ordersMassageList) { - orders.setDuration(massageType.getDuration()); - orders.setMassageNum(ordersMassage.getNum()); - price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); - orders.setMassagePrice(price); - BigDecimal massagePrice = price.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)).add(price);//技师等级加成金额 - massagePrice = massagePrice.multiply(orders.getVipRate()).divide(new BigDecimal(100));//会员优惠后金额 - massageTypeName = massageType.getTitle(); - payMoney = massagePrice.add(payMoney); - - if (orders.getParentId() != null && orders.getParentId() != 0) { - orders.setAddTime(massageType.getDuration()); - } - orders.setMassageTypeId(massageType.getMassageTypeId()); - } - //保存现价 - orders.setPrice(price); - orders.setEntryName(massageTypeName); - - //判断金额是否满足代金券金额最少消费额度 - if (orders.getMassagePrice().compareTo(couponMinMoney) < 0) { - return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠券!"); - } - - orders.setMassageMoney(payMoney); - //减去代金券的金额 - payMoney = payMoney.subtract(orders.getCouponMoney()); - - String value1 = commonInfoService.findOne(395).getValue(); - Integer tripWay = orders.getTripWay(); - - BigDecimal taxiMoney = BigDecimal.ZERO; - if (orders.getParentId() == null || orders.getParentId() == 0) { - String serveTime = orders.getServeTime(); - String date = serveTime.substring(0, 10); - String time = serveTime.substring(11, 16); - ArtificerTime artificerTime = artificerTimeService.getOne( - new QueryWrapper() - .eq("artificer_id", orders.getArtificerId()) - .eq("artificer_date", date) - .eq("artificer_time", time) - .last("limit 1")); - if (artificerTime != null) { - return Result.error("预约时间正忙,请更换其他时间!"); - } - - Map map = getTaskTime(massageType.getDuration(),serveTime,value1,tripWay,orders.getArtificerId()); - if(map.get("code").toString().equals("1")){ - return Result.error("预约时间正忙,请更换其他时间!"); - } - TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime()); -// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); - if (travelPriceVo == null) { - return Result.error("暂不支持当前地址,请更换其他地址!"); - } - taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); - orders.setTaxiMoney(taxiMoney); - orders.setKm(travelPriceVo.getKilometerNum()); - - } else { - if ("是".equals(value1)) { - ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 ")); - String serveTime = artificerTime.getArtificerDate() + " " + artificerTime.getArtificerTime(); - Map map = getAddTaskTime(massageType.getDuration(),serveTime,value1,orders.getArtificerId()); - if(map.get("code").toString().equals("1")){ - return Result.error("预约时间正忙,请更换其他时间!"); - } - } - } - //加上车费 - payMoney = payMoney.add(taxiMoney); - payMoney = payMoney.setScale(2,BigDecimal.ROUND_HALF_UP); - orders.setPayMoney(payMoney); - - //查询是否计算出租车扣费 - String taxi = commonInfoService.findOne(394).getValue(); - //计算技师出租车收益(按照技师表收益计算) - if ("是".equals(taxi)) { - //计算技师应该收取的出租车费用 - BigDecimal artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - //计算出租车扣款 - BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); - //赋值技师出租收款 - orders.setArtificerTaxiMoney(artificerTaxiMoney); - //赋值出租车扣款 - orders.setPingTaxiMoney(pingTaxiMoney); - //赋值技师收益 - artificerPrice = orders.getPayMoney().multiply(artificer.getRate()); - } else { - //平台不扣费 出租车收益全由技师收取 - orders.setArtificerTaxiMoney(orders.getTaxiMoney()); - //设置出租车扣款为0 - orders.setPingTaxiMoney(BigDecimal.ZERO); - //用户支付减去通行费用 - BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney); - //计算用户收益 !计算前先减去通行费用再计算技师抽成 - artificerPrice = subtract.multiply(artificer.getRate()); - //用户收益加上通行费用 - artificerPrice = artificerPrice.add(taxiMoney); - } - - //计算项目收益 - BigDecimal massageMoney = orders.getMassageMoney(); - if(orders.getCouponMoney()!=null){ - massageMoney = massageMoney.subtract(orders.getCouponMoney()); - } - //获取项目应支付金额 - BigDecimal projectBenefits = massageMoney; - //计算技师项目提成金额 - orders.setProjectBenefits(projectBenefits.multiply(artificer.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP)); - - orders.setArtificerMoney(artificerPrice); - orders.setSumArtificerMoney(orders.getArtificerMoney()); -// orders.setOrdersNo(getGeneralOrder()); - orders.setStatus(1); - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - orders.setCreateTime(sdf.format(new Date())); - //留存订单生成时的技师分成比例 - orders.setArtificerRate(artificer.getRate()); - orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); - //修改订单 - baseMapper.updateById(orders); - - ordersMassageService.removeByOrdersId(orders.getOrdersId()); - for (OrdersMassage ordersMassage : ordersMassageList) { - ordersMassage.setOrdersId(orders.getOrdersId()); - ordersMassageService.save(ordersMassage); - } - - //释放原优惠券 - if (oldCouponList.size() > 0) { - for (String couponIdStr : oldCouponList) { - CouponUser couponUser = new CouponUser(); - couponUser.setId(Long.valueOf(couponIdStr)); - couponUser.setStatus(0); - couponUserService.updateById(couponUser); - } - } - //占用新代金券 - if (CouponUserList.size() > 0) { - for (CouponUser couponUser : CouponUserList) { - couponUser.setStatus(1); - couponUserService.updateById(couponUser); - } - } - return Result.success().put("data", orders); - } - } if (oldOrders.getStatus() == 2 || oldOrders.getStatus() == 9 || xgd == 1) { //只能修改,技师和时间 (技师等级大于等于原单据等级) //判断是否是可修改,状态2 9 @@ -1947,20 +1556,24 @@ public class OrdersServiceImpl extends ServiceImpl implements MassageType massageType = null; if (orders.getOrdersMassageList() != null) { List ordersMassageList = orders.getOrdersMassageList(); - massageTypeId = ordersMassageList.get(0).getMassageId(); - massageType = massageTypeService.getById(massageTypeId); - for (OrdersMassage ordersMassage : ordersMassageList) { - orders.setDuration(massageType.getDuration()); - orders.setMassageNum(ordersMassage.getNum()); - price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); + if(orders.getUserPackageDetailId() != null) { + UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassageList.get(0).getMassageId()); + massageTypeId = userPackageDetail.getMassageTypeId(); + orders.setUserPackageId(userPackageDetail.getMainId()); + }else{ + massageTypeId = ordersMassageList.get(0).getMassageId(); } - orders.setMassagePrice(price); + + massageType = massageTypeService.getById(massageTypeId); orders.setMassageTypeId(massageTypeId); orders.setEntryName(massageType.getTitle()); - //判断新price是否大于旧price - if (price.compareTo(oldOrders.getPrice()) < 0) { - return Result.error("当前订单的服务项目金额不能小于原服务项目金额!"); + orders.setDuration(massageType.getDuration()); + + for (OrdersMassage ordersMassage : ordersMassageList) { + orders.setMassageNum(ordersMassage.getNum()); + price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())).setScale(0,BigDecimal.ROUND_UP); } + orders.setMassagePrice(price); orders.setPrice(price); } else { return Result.error("当前订单没有选择服务项目!"); @@ -1971,6 +1584,11 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.error("服务时间不能晚于当前时间!"); } + //判断新price是否大于旧price + if (price.compareTo(oldOrders.getPrice()) < 0) { + return Result.error("当前订单的服务项目金额不能小于原服务项目金额!"); + } + String value1 = commonInfoService.findOne(395).getValue(); Integer tripWay = orders.getTripWay(); @@ -1998,6 +1616,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if (artificer.getTechnicianType() < oldArtificer.getTechnicianType()) { return Result.error("当前订单技师等级不能低于原订单技师等级!"); } + orders.setArtificerId(artificer.getArtificerId()); orders.setTechnicianType(artificer.getTechnicianType()); orders.setArtificerRate(artificer.getRate()); @@ -2029,16 +1648,30 @@ public class OrdersServiceImpl extends ServiceImpl implements } orders.setVipRate(vipRate); - BigDecimal massagePrice = price.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)).add(price);//技师等级加成金额 - massagePrice = massagePrice.multiply(orders.getVipRate()).divide(new BigDecimal(100));//会员优惠后金额 - massagePrice = massagePrice.setScale(2,BigDecimal.ROUND_HALF_UP); - orders.setMassageMoney(massagePrice); + //技师加成金额 + 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 vipMoney = price.multiply(orders.getVipRate()).divide(new BigDecimal(100)); + vipMoney = vipMoney.setScale(0,BigDecimal.ROUND_UP); + BigDecimal vipReductionMoney = price.subtract(vipMoney); + orders.setVipReductionMoney(vipReductionMoney); + + //项目价格 = 原金额+技师加成金额-会员减免金额 + BigDecimal payMoney = price.add(technicianMoney).subtract(vipReductionMoney).setScale(0,BigDecimal.ROUND_UP); + orders.setMassageMoney(payMoney); //项目差价 BigDecimal xmchajia = orders.getMassageMoney().subtract(oldOrders.getMassageMoney()); TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime()); -// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); if (travelPriceVo == null) { return Result.error("暂不支持当前地址,请更换其他地址!"); } @@ -2055,7 +1688,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); - taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP); + taxiMoney = taxiMoney.setScale(0,BigDecimal.ROUND_UP); BigDecimal oldTaxiMoney = oldOrders.getTaxiMoney(); if (taxiMoney.compareTo(oldTaxiMoney) < 0) { taxiMoney = oldTaxiMoney; @@ -2071,32 +1704,21 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setPayMoney(oldOrders.getPayMoney()); BigDecimal artificerPrice = orders.getPayMoney().subtract(taxiMoney); artificerPrice = artificerPrice.multiply(artificer.getRate()); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); -// BigDecimal massageMoney = orders.getMassageMoney(); -// if(orders.getCouponMoney()!=null){ -// massageMoney = massageMoney.subtract(orders.getCouponMoney()); -// } -// BigDecimal projectBenefits = massageMoney; -// projectBenefits = projectBenefits.multiply(artificer.getRate()); -// projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); + if(oldOrders.getPayWay().equals(5)){ + BigDecimal valueStorageDeduction = artificerPrice; BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue()); orders.setWalletRate(rate); rate = rate.divide(new BigDecimal(100)); - BigDecimal storageRate = BigDecimal.ONE.subtract(rate); - BigDecimal valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额 - valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP); - orders.setValueStorageDeduction(valueStorageDeduction); artificerPrice = artificerPrice.multiply(rate); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); -// projectBenefits = projectBenefits.multiply(rate); -// projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); -// orders.setProjectBenefits(projectBenefits); + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); + valueStorageDeduction = valueStorageDeduction.subtract(artificerPrice); + orders.setValueStorageDeduction(valueStorageDeduction); orders.setProjectBenefits(artificerPrice); }else{ orders.setValueStorageDeduction(BigDecimal.ZERO); //计算技师项目提成金额 -// orders.setProjectBenefits(projectBenefits); orders.setProjectBenefits(artificerPrice); } @@ -2107,7 +1729,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneArtificerUserId(oneArtificerUser.getUserId()); orders.setOneArtificerUserName(oneArtificerUser.getUserName()); oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); - oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneArtificerMoney = oneArtificerMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneArtificerMoney(oneArtificerMoney); BigDecimal shopMoney = BigDecimal.ZERO; @@ -2120,7 +1742,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setShopUserId(consortiaUser.getUserId()); orders.setShopUserName(consortiaUser.getUserName()); shopMoney = artificerPrice.multiply(consortia.getRate()); - shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + shopMoney = shopMoney.setScale(0, BigDecimal.ROUND_UP); } } } @@ -2143,7 +1765,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneUserId(oneUser.getUserId()); orders.setOneUserName(oneUser.getUserName()); oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneUserMoney(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney); @@ -2179,42 +1801,35 @@ public class OrdersServiceImpl extends ServiceImpl implements } return Result.success().put("data", orders); } else { - //新增单据 + //新增单据xmchajia orders.setPayMoney(chajia); orders.setTaxiMoney(cxchajia); BigDecimal artificerPrice = BigDecimal.ZERO; BigDecimal artificerTaxiPrice = BigDecimal.ZERO; - BigDecimal valueStorageDeduction = BigDecimal.ZERO; //查询是否计算出租车扣费 String taxi = commonInfoService.findOne(394).getValue(); //计算技师出租车收益(按照技师表收益计算) if ("是".equals(taxi)) { //计算技师应该收取的出租车费用 artificerTaxiPrice = cxchajia.multiply(artificer.getRate()); - artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerTaxiPrice = artificerTaxiPrice.setScale(0, BigDecimal.ROUND_UP); //计算出租车扣款 BigDecimal pingTaxiMoney = cxchajia.subtract(artificerTaxiPrice); //赋值技师出租收款 orders.setArtificerTaxiMoney(artificerTaxiPrice); //赋值出租车扣款 orders.setPingTaxiMoney(pingTaxiMoney); -// //赋值技师收益 -// artificerPrice = chajia.multiply(artificer.getRate()); } else { //平台不扣费 出租车收益全由技师收取 artificerTaxiPrice = cxchajia; orders.setArtificerTaxiMoney(cxchajia); //设置出租车扣款为0 orders.setPingTaxiMoney(BigDecimal.ZERO); -// //计算用户收益 !计算前先减去通行费用再计算技师抽成 -// artificerPrice = xmchajia.multiply(artificer.getRate()); -// //用户收益加上通行费用 -// artificerPrice = artificerPrice.add(cxchajia); } //计算项目收益 //计算技师项目提成金额 - artificerPrice = xmchajia.multiply(artificer.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP); + artificerPrice = xmchajia.multiply(artificer.getRate()).setScale(0, BigDecimal.ROUND_UP); orders.setProjectBenefits(artificerPrice); artificerPrice = artificerPrice.add(artificerTaxiPrice); orders.setArtificerMoney(artificerPrice); @@ -2228,7 +1843,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setIsSupplement(4); } orders.setCreateTime(DateUtils.format(new Date())); - orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); + orders.setSumMoney(orders.getPayMoney().setScale(0, BigDecimal.ROUND_UP)); orders.setOldOrdersId(oldOrders.getOrdersId()); orders.setOldMassageMoney(oldOrders.getMassageMoney()); orders.setOldPayMoney(oldOrders.getPayMoney()); @@ -2239,6 +1854,9 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOldMassageDuration(oldOrders.getDuration()); orders.setCouponName(oldOrders.getCouponName()); orders.setCouponMoney(oldOrders.getCouponMoney()); + orders.setOldPriceMarkup(oldOrders.getPriceMarkup()); + orders.setOldTechnicianMoney(oldOrders.getTechnicianMoney()); + orders.setOldVipReductionMoney(oldOrders.getVipReductionMoney()); //保存订单 baseMapper.insert(orders); @@ -2279,7 +1897,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if ("是".equals(taxi)) { //计算技师应该收取的出租车费用 BigDecimal artificerTaxiMoney = oldOrders.getTaxiMoney().multiply(artificer.getRate()); - artificerTaxiMoney = artificerTaxiMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerTaxiMoney = artificerTaxiMoney.setScale(0, BigDecimal.ROUND_UP); //计算出租车扣款 BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); //赋值技师出租收款 @@ -2295,32 +1913,20 @@ public class OrdersServiceImpl extends ServiceImpl implements //计算用户收益 BigDecimal oldArtificerPrice = oldOrders.getPayMoney().subtract(oldOrders.getTaxiMoney()); oldArtificerPrice = oldArtificerPrice.multiply(artificer.getRate()); - oldArtificerPrice = oldArtificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); -// BigDecimal massageMoney = oldOrders.getMassageMoney(); -// if(oldOrders.getCouponMoney()!=null){ -// massageMoney = massageMoney.subtract(oldOrders.getCouponMoney()); -// } -// BigDecimal projectBenefits = massageMoney; -// projectBenefits = projectBenefits.multiply(artificer.getRate()); -// projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + oldArtificerPrice = oldArtificerPrice.setScale(0, BigDecimal.ROUND_UP); if(oldOrders.getPayWay().equals(5)){ BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue()); ordersOld.setWalletRate(rate); rate = rate.divide(new BigDecimal(100)); - BigDecimal storageRate = BigDecimal.ONE.subtract(rate); - BigDecimal oldValueStorageDeduction = oldArtificerPrice.multiply(storageRate);//技师提成中扣除金额 - oldValueStorageDeduction = oldValueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP); - ordersOld.setValueStorageDeduction(oldValueStorageDeduction); + BigDecimal oldValueStorageDeduction = oldArtificerPrice; oldArtificerPrice = oldArtificerPrice.multiply(rate); - oldArtificerPrice = oldArtificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); -// projectBenefits = projectBenefits.multiply(rate); -// projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); -// ordersOld.setProjectBenefits(projectBenefits); + oldArtificerPrice = oldArtificerPrice.setScale(0, BigDecimal.ROUND_UP); + oldValueStorageDeduction = oldValueStorageDeduction.subtract(oldArtificerPrice); + ordersOld.setValueStorageDeduction(oldValueStorageDeduction); ordersOld.setProjectBenefits(oldArtificerPrice); }else{ ordersOld.setValueStorageDeduction(BigDecimal.ZERO); //计算技师项目提成金额 -// ordersOld.setProjectBenefits(projectBenefits); ordersOld.setProjectBenefits(oldArtificerPrice); } @@ -2331,7 +1937,7 @@ public class OrdersServiceImpl extends ServiceImpl implements ordersOld.setOneArtificerUserId(oneArtificerUser.getUserId()); ordersOld.setOneArtificerUserName(oneArtificerUser.getUserName()); oneArtificerMoney = oldArtificerPrice.multiply(oneArtificerUser.getShopRate()); - oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneArtificerMoney = oneArtificerMoney.setScale(0, BigDecimal.ROUND_UP); } ordersOld.setOneArtificerMoney(oneArtificerMoney); BigDecimal shopMoney = BigDecimal.ZERO; @@ -2344,7 +1950,7 @@ public class OrdersServiceImpl extends ServiceImpl implements ordersOld.setShopUserId(consortiaUser.getUserId()); ordersOld.setShopUserName(consortiaUser.getUserName()); shopMoney = oldArtificerPrice.multiply(consortia.getRate()); - shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + shopMoney = shopMoney.setScale(0, BigDecimal.ROUND_UP); } } } @@ -2367,7 +1973,7 @@ public class OrdersServiceImpl extends ServiceImpl implements ordersOld.setOneUserId(oneUser.getUserId()); ordersOld.setOneUserName(oneUser.getUserName()); oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_UP); } ordersOld.setOneUserMoney(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney); @@ -2447,7 +2053,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if(massageRate.compareTo(BigDecimal.ZERO) == 0){ massageMoneyDeduction = massageDeduction; }else{ - massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()).multiply(massageRate).setScale(2, BigDecimal.ROUND_HALF_UP); + massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()).multiply(massageRate).setScale(0, BigDecimal.ROUND_UP); } if(orders.getPayMoney().subtract(orders.getTaxiMoney()).compareTo(massageDeduction) < 0){ massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()); @@ -2457,7 +2063,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ taxiMoneyDeduction = trafficDeduction; }else{ - taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(2, BigDecimal.ROUND_HALF_UP); + taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(0, BigDecimal.ROUND_UP); } if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ taxiMoneyDeduction = orders.getTaxiMoney(); @@ -2475,7 +2081,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ taxiMoneyDeduction = trafficDeduction; }else{ - taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate); + taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(0, BigDecimal.ROUND_UP); } if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ taxiMoneyDeduction = orders.getTaxiMoney(); @@ -2598,7 +2204,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if(massageRate.compareTo(BigDecimal.ZERO) == 0){ massageMoneyDeduction = massageDeduction; }else{ - massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()).multiply(massageRate).setScale(2, BigDecimal.ROUND_HALF_UP); + massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()).multiply(massageRate).setScale(0, BigDecimal.ROUND_UP); } if(orders.getPayMoney().subtract(orders.getTaxiMoney()).compareTo(massageDeduction) < 0){ massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()); @@ -2608,7 +2214,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ taxiMoneyDeduction = trafficDeduction; }else{ - taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(2, BigDecimal.ROUND_HALF_UP); + taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(0, BigDecimal.ROUND_UP); } if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ taxiMoneyDeduction = orders.getTaxiMoney(); @@ -2624,27 +2230,27 @@ public class OrdersServiceImpl extends ServiceImpl implements UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); if (orders.getPayWay() == 1 || orders.getPayWay() == 2 || orders.getPayWay() == 3 || orders.getPayWay() == 4) { if(userMoney.compareTo(BigDecimal.ZERO) > 0){ -// boolean refund = wxService.refund(orders.getOrdersNo(), orders.getPayMoney(), userMoney, orders.getPayWay()); -// if (!refund) { -// return Result.error("退款失败,请联系客服!"); -// } + boolean refund = wxService.refund(orders.getOrdersNo(), orders.getPayMoney(), userMoney, orders.getPayWay()); + if (!refund) { + return Result.error("退款失败,请联系客服!"); + } } userMoneyDetails.setManipulateType(1); userMoneyDetails.setBlFlag(2); } else if (orders.getPayWay() == 6) { if(userMoney.compareTo(BigDecimal.ZERO) > 0) { -// String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney); -// if (StringUtils.isNotBlank(data)) { -// log.error(data); -// JSONObject jsonObject = JSON.parseObject(data); -// JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); -// String code1 = alipay_trade_refund_response.getString("code"); -// if (!"10000".equals(code1)) { -// return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); -// } -// } else { -// return Result.error("退款失败!"); -// } + String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney); + if (StringUtils.isNotBlank(data)) { + log.error(data); + JSONObject jsonObject = JSON.parseObject(data); + JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); + String code1 = alipay_trade_refund_response.getString("code"); + if (!"10000".equals(code1)) { + return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); + } + } else { + return Result.error("退款失败!"); + } } userMoneyDetails.setManipulateType(1); userMoneyDetails.setBlFlag(2); @@ -2685,14 +2291,14 @@ public class OrdersServiceImpl extends ServiceImpl implements Artificer artificer = artificerService.getById(orders.getArtificerId()); BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 BigDecimal pingTaxiMoney = BigDecimal.ZERO; - BigDecimal artificerMoney = rate.multiply(artificer.getRate()); //技师获得扣款提成 + BigDecimal artificerMoney = rate.multiply(artificer.getRate()).setScale(0,BigDecimal.ROUND_UP); //技师获得扣款提成 orders.setProjectBenefits(artificerMoney); BigDecimal pingMoney = massageMoneyDeduction.subtract(artificerMoney);//平台获得项目扣款 String taxi = commonInfoService.findOne(394).getValue(); if ("是".equals(taxi)) { artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - artificerTaxiMoney = artificerTaxiMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerTaxiMoney = artificerTaxiMoney.setScale(0, BigDecimal.ROUND_UP); pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } orders.setArtificerTaxiMoney(artificerTaxiMoney); @@ -2705,7 +2311,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneArtificerUserId(oneArtificerUser.getUserId()); orders.setOneArtificerUserName(oneArtificerUser.getUserName()); oneArtificerMoney = artificerMoney.multiply(oneArtificerUser.getShopRate()); - oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneArtificerMoney = oneArtificerMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneArtificerMoney(oneArtificerMoney); @@ -2719,7 +2325,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setShopUserId(consortiaUser.getUserId()); orders.setShopUserName(consortiaUser.getUserName()); shopMoney = artificerMoney.multiply(consortia.getRate()); - shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + shopMoney = shopMoney.setScale(0, BigDecimal.ROUND_UP); } } } @@ -2738,11 +2344,11 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneUserId(oneUser.getUserId()); orders.setOneUserName(oneUser.getUserName()); oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneUserMoney(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney); - pingMoney = pingMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + pingMoney = pingMoney.setScale(0, BigDecimal.ROUND_UP); orders.setPingMoney(pingMoney); //分账 @@ -2861,7 +2467,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } else if (orders1.getPayWay() == 6) { String data = aliPayController.alipayRefund(orders1.getOrdersNo(), orders1.getPayMoney()); if (StringUtils.isNotBlank(data)) { - log.error(data); JSONObject jsonObject = JSON.parseObject(data); JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); String code1 = alipay_trade_refund_response.getString("code"); @@ -3009,7 +2614,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ taxiMoneyDeduction = trafficDeduction; }else{ - taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate); + taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(0,BigDecimal.ROUND_UP); } if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ taxiMoneyDeduction = orders.getTaxiMoney(); @@ -3085,7 +2690,7 @@ public class OrdersServiceImpl extends ServiceImpl implements String taxi = commonInfoService.findOne(394).getValue(); if ("是".equals(taxi)) { - artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); + artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()).setScale(0,BigDecimal.ROUND_UP); pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } orders.setArtificerTaxiMoney(artificerTaxiMoney); @@ -3175,7 +2780,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } else if (orders1.getPayWay() == 6) { String data = aliPayController.alipayRefund(orders1.getOrdersNo(), orders1.getPayMoney()); if (StringUtils.isNotBlank(data)) { - log.error(data); JSONObject jsonObject = JSON.parseObject(data); JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); String code1 = alipay_trade_refund_response.getString("code"); @@ -3457,48 +3061,16 @@ public class OrdersServiceImpl extends ServiceImpl implements String taxi = commonInfoService.findOne(394).getValue(); if ("是".equals(taxi)) { artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - artificerTaxiMoney = artificerTaxiMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerTaxiMoney = artificerTaxiMoney.setScale(0, BigDecimal.ROUND_UP); pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } orders.setArtificerTaxiMoney(artificerTaxiMoney); orders.setPingTaxiMoney(pingTaxiMoney); UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); -// UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); -// BigDecimal oneArtificerMoney = BigDecimal.ZERO; -// if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { -// orders.setOneArtificerUserId(oneArtificerUser.getUserId()); -// orders.setOneArtificerUserName(oneArtificerUser.getUserName()); -// } -// orders.setOneArtificerMoney(oneArtificerMoney); -// BigDecimal shopMoney = BigDecimal.ZERO; -// if (artificerUser.getConsortiaId() != null) { -// Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId()); -// if (consortia != null && consortia.getUserId() != null) { -// UserEntity consortiaUser = userService.getById(consortia.getUserId()); -// if (consortiaUser != null) { -// orders.setConsortiaId(consortia.getConsortiaId()); -// orders.setShopUserId(consortiaUser.getUserId()); -// orders.setShopUserName(consortiaUser.getUserName()); -// } -// } -// } -// orders.setShopMoney(shopMoney); -// artificerTaxiMoney = artificerTaxiMoney.subtract(oneArtificerMoney); -// artificerTaxiMoney = artificerTaxiMoney.subtract(shopMoney); orders.setArtificerMoney(artificerTaxiMoney); orders.setSumArtificerMoney(artificerTaxiMoney); -// UserEntity user = userService.selectUserById(orders.getUserId()); -// UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); -// BigDecimal oneUserMoney = BigDecimal.ZERO; -// if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { -// orders.setOneUserId(oneUser.getUserId()); -// orders.setOneUserName(oneUser.getUserName()); -// } -// orders.setOneUserMoney(oneUserMoney); -// orders.setPingMoney(BigDecimal.ZERO); - userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); //查询用户当前余额 @@ -3680,7 +3252,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } else if (orders.getPayWay() == 6) { String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney); if (StringUtils.isNotBlank(data)) { - log.error(data); JSONObject jsonObject = JSON.parseObject(data); JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); String code1 = alipay_trade_refund_response.getString("code"); @@ -3712,6 +3283,9 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setArtificerId(orders.getArtificerId()); userMoneyDetails.setBlRole(1); userMoneyDetailsService.save(userMoneyDetails); + orders.setArtificerMoney(BigDecimal.ZERO); + orders.setArtificerTaxiMoney(BigDecimal.ZERO); + orders.setProjectBenefits(BigDecimal.ZERO); orders.setStatus(4); baseMapper.updateById(orders); //删除技师占用时间表数据 @@ -3900,48 +3474,16 @@ public class OrdersServiceImpl extends ServiceImpl implements String taxi = commonInfoService.findOne(394).getValue(); if ("是".equals(taxi)) { artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - artificerTaxiMoney = artificerTaxiMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerTaxiMoney = artificerTaxiMoney.setScale(0, BigDecimal.ROUND_UP); pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } orders.setArtificerTaxiMoney(artificerTaxiMoney); orders.setPingTaxiMoney(pingTaxiMoney); UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); -// UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); -// BigDecimal oneArtificerMoney = BigDecimal.ZERO; -// if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { -// orders.setOneArtificerUserId(oneArtificerUser.getUserId()); -// orders.setOneArtificerUserName(oneArtificerUser.getUserName()); -// } -// orders.setOneArtificerMoney(oneArtificerMoney); -// BigDecimal shopMoney = BigDecimal.ZERO; -// if (artificerUser.getConsortiaId() != null) { -// Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId()); -// if (consortia != null && consortia.getUserId() != null) { -// UserEntity consortiaUser = userService.getById(consortia.getUserId()); -// if (consortiaUser != null) { -// orders.setConsortiaId(consortia.getConsortiaId()); -// orders.setShopUserId(consortiaUser.getUserId()); -// orders.setShopUserName(consortiaUser.getUserName()); -// } -// } -// } -// orders.setShopMoney(shopMoney); -// artificerTaxiMoney = artificerTaxiMoney.subtract(oneArtificerMoney); -// artificerTaxiMoney = artificerTaxiMoney.subtract(shopMoney); orders.setArtificerMoney(artificerTaxiMoney); orders.setSumArtificerMoney(artificerTaxiMoney); -// UserEntity user = userService.selectUserById(orders.getUserId()); -// UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); -// BigDecimal oneUserMoney = BigDecimal.ZERO; -// if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { -// orders.setOneUserId(oneUser.getUserId()); -// orders.setOneUserName(oneUser.getUserName()); -// } -// orders.setOneUserMoney(oneUserMoney); -// orders.setPingMoney(BigDecimal.ZERO); - userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); //查询用户当前余额 @@ -3983,7 +3525,6 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setSumArtificerMoney(artificerMoney); baseMapper.updateById(orders); } - } if(type == 2){ //退项目费 @@ -4872,40 +4413,25 @@ public class OrdersServiceImpl extends ServiceImpl implements } } SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -// if (type == 2) { -// //无用,暂系统不支持储蓄金 -// userMoneyArtificerService.updateMoney(2, orders.getUserId(), orders.getArtificerId(), orders.getPayMoney().doubleValue()); -// UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); -// userMoneyDetails.setClassify(8); -// userMoneyDetails.setMoney(orders.getPayMoney()); -// userMoneyDetails.setUserId(orders.getUserId()); -// userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); -// userMoneyDetails.setTitle("储蓄金支付订单"); -// userMoneyDetails.setType(2); -// userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); -// userMoneyDetails.setArtificerId(orders.getArtificerId()); -// userMoneyDetailsService.save(userMoneyDetails); -// orders.setUserArtificerMoney(1); -// } else { - userMoneyService.updateMoney(2, orders.getUserId(), orders.getPayMoney().doubleValue()); - UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getPayMoney()); - userMoneyDetails.setUserId(orders.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); - userMoneyDetails.setTitle("支付订单"); - userMoneyDetails.setType(2); - userMoneyDetails.setState(2); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(1); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); -// } + + userMoneyService.updateMoney(2, orders.getUserId(), orders.getPayMoney().doubleValue()); + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getPayMoney()); + userMoneyDetails.setUserId(orders.getUserId()); + userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); + userMoneyDetails.setTitle("支付订单"); + userMoneyDetails.setType(2); + userMoneyDetails.setState(2); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(1); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); if(orders.getIsSupplement() != null){ if(orders.getIsSupplement() == 2){ @@ -4930,7 +4456,7 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue()); orders.setWalletRate(rate); rate = rate.divide(new BigDecimal(100)); - BigDecimal storageRate = BigDecimal.ONE.subtract(rate); + //钱包支付技师提成 BigDecimal taxiMoney = orders.getTaxiMoney(); if(taxiMoney==null){ @@ -4945,7 +4471,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if ("是".equals(taxi)) { //计算技师应该收取的出租车费用 artificerTaxiPrice = taxiMoney.multiply(artificer.getRate()); - artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerTaxiPrice = artificerTaxiPrice.setScale(0, BigDecimal.ROUND_UP); //计算出租车扣款 BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiPrice); //赋值技师出租收款 @@ -4971,20 +4497,17 @@ public class OrdersServiceImpl extends ServiceImpl implements } //计算用户收益 !计算前先减去通行费用再计算技师抽成 artificerPrice = subtract.multiply(artificer.getRate()); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); - + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); //储值扣费 - valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额 - valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP); - orders.setValueStorageDeduction(valueStorageDeduction); + valueStorageDeduction = artificerPrice; //用户收益不含交通费 artificerPrice = artificerPrice.multiply(rate); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); + + valueStorageDeduction = valueStorageDeduction.subtract(artificerPrice); + orders.setValueStorageDeduction(valueStorageDeduction); -// BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate); -// projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); -// orders.setProjectBenefits(projectBenefits); orders.setProjectBenefits(artificerPrice); UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); @@ -4994,7 +4517,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneArtificerUserId(oneArtificerUser.getUserId()); orders.setOneArtificerUserName(oneArtificerUser.getUserName()); oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); - oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneArtificerMoney = oneArtificerMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneArtificerMoney(oneArtificerMoney); BigDecimal shopMoney = BigDecimal.ZERO; @@ -5007,7 +4530,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setShopUserId(consortiaUser.getUserId()); orders.setShopUserName(consortiaUser.getUserName()); shopMoney = artificerPrice.multiply(consortia.getRate()); - shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + shopMoney = shopMoney.setScale(0, BigDecimal.ROUND_UP); } } } @@ -5036,7 +4559,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneUserId(oneUser.getUserId()); orders.setOneUserName(oneUser.getUserName()); oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneUserMoney(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney); @@ -5263,21 +4786,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } } SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -// if (type == 2) { -// 无用,暂系统不支持储蓄金 -// userMoneyArtificerService.updateMoney(2, orders.getUserId(), orders.getArtificerId(), orders.getTaxiMoney().doubleValue()); -// UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); -// userMoneyDetails.setClassify(8); -// userMoneyDetails.setMoney(orders.getTaxiMoney()); -// userMoneyDetails.setUserId(orders.getUserId()); -// userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); -// userMoneyDetails.setTitle("储蓄金支付订单"); -// userMoneyDetails.setType(2); -// userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); -// userMoneyDetails.setArtificerId(orders.getArtificerId()); -// userMoneyDetailsService.save(userMoneyDetails); -// orders.setUserArtificerMoney(1); -// } else { + userMoneyService.updateMoney(2, orders.getUserId(), orders.getTaxiMoney().doubleValue()); UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); //查询用户当前余额 @@ -5296,7 +4805,6 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setBlRole(1); userMoneyDetails.setBlFlag(1); userMoneyDetailsService.save(userMoneyDetails); -// } if(orders.getIsSupplement() != null){ if(orders.getIsSupplement() == 2){ @@ -5326,10 +4834,9 @@ public class OrdersServiceImpl extends ServiceImpl implements if(packagePayWay.equals(5)){ rate = new BigDecimal(commonInfoService.findOne(449).getValue()); } - orders.setWalletRate(rate); rate = rate.divide(new BigDecimal(100)); - BigDecimal storageRate = BigDecimal.ONE.subtract(rate); + Artificer artificer = artificerService.getById(orders.getArtificerId()); //钱包支付技师提成 BigDecimal taxiMoney = orders.getTaxiMoney(); @@ -5345,7 +4852,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if ("是".equals(taxi)) { //计算技师应该收取的出租车费用 artificerTaxiPrice = taxiMoney.multiply(artificer.getRate()); - artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerTaxiPrice = artificerTaxiPrice.setScale(0, BigDecimal.ROUND_UP); //计算出租车扣款 BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiPrice); //赋值技师出租收款 @@ -5371,19 +4878,16 @@ public class OrdersServiceImpl extends ServiceImpl implements } //计算用户收益 !计算前先减去通行费用再计算技师抽成 artificerPrice = subtract.multiply(artificer.getRate()); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); //储值扣费 - valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额 - valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP); - orders.setValueStorageDeduction(valueStorageDeduction); + valueStorageDeduction = artificerPrice; //用户收益不含交通费 artificerPrice = artificerPrice.multiply(rate); - artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + artificerPrice = artificerPrice.setScale(0, BigDecimal.ROUND_UP); -// BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate); -// projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); -// orders.setProjectBenefits(projectBenefits); + valueStorageDeduction = valueStorageDeduction.subtract(artificerPrice); + orders.setValueStorageDeduction(valueStorageDeduction); orders.setProjectBenefits(artificerPrice); UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); @@ -5393,7 +4897,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneArtificerUserId(oneArtificerUser.getUserId()); orders.setOneArtificerUserName(oneArtificerUser.getUserName()); oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); - oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneArtificerMoney = oneArtificerMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneArtificerMoney(oneArtificerMoney); BigDecimal shopMoney = BigDecimal.ZERO; @@ -5406,13 +4910,14 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setShopUserId(consortiaUser.getUserId()); orders.setShopUserName(consortiaUser.getUserName()); shopMoney = artificerPrice.multiply(consortia.getRate()); - shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + shopMoney = shopMoney.setScale(0, BigDecimal.ROUND_UP); } } } orders.setShopMoney(shopMoney); artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(shopMoney); + if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ //用户收益加上通行费用 @@ -5434,7 +4939,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setOneUserId(oneUser.getUserId()); orders.setOneUserName(oneUser.getUserName()); oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_UP); } orders.setOneUserMoney(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney); @@ -5694,10 +5199,11 @@ public class OrdersServiceImpl extends ServiceImpl implements /** * 完成订单 * @param ordersId - * @param type - * @param jsFwcn - * @param jsPjtag - * @param jsTsbz + * @param type 1PC端 2移动端 + * @param jsFwcn 服务承诺 + * @param jsPjtag 顾客评价 + * @param jsTsbz 特殊情况备注 + * @param earlyFinishReason 提前完成原因 * @return */ @Transactional @@ -5720,12 +5226,29 @@ public class OrdersServiceImpl extends ServiceImpl implements if (!orders.getStatus().equals(6)) { return Result.error("请刷新页面后重试!"); } + //客户端提前完成 + if(earlyFinishReason!=null && !earlyFinishReason.equals("")){ + orders.setEarlyFinishReason(earlyFinishReason); + baseMapper.updateById(orders); + return Result.success("订单申请提前完成成功!"); + } + //客户端提前完成后,技师点击完成,获取提前完成原因,如果有原因,直接取完成,如果没原因判断当前时间是否大于预计结束时间 + String reasonStr = orders.getEarlyFinishReason(); + if(reasonStr!=null && !reasonStr.equals("")) { + }else{ + String endTimeStr = orders.getEndTime(); + Date endTime = DateUtils.stringToDate(endTimeStr,"yyyy-MM-dd HH:mm:ss"); + Date currentTime = new Date(); + if(endTime.getTime() implements orders.setJsFwcn(jsFwcn); orders.setJsPjtag(jsPjtag); orders.setJsTsbz(jsTsbz); - orders.setEarlyFinishReason(earlyFinishReason); //修改订单表类型 baseMapper.updateById(orders); @@ -6356,20 +5878,20 @@ public class OrdersServiceImpl extends ServiceImpl implements //计算评价比例 if (scoreCount != 0) { if (goodsScoreCount != null) { - goodsRate = BigDecimal.valueOf(goodsScoreCount).divide(BigDecimal.valueOf(scoreCount), 2, BigDecimal.ROUND_HALF_UP); + goodsRate = BigDecimal.valueOf(goodsScoreCount).divide(BigDecimal.valueOf(scoreCount), 0, BigDecimal.ROUND_UP); } if (loseScoreCount != null) { - loseRate = BigDecimal.valueOf(loseScoreCount).divide(BigDecimal.valueOf(scoreCount), 2, BigDecimal.ROUND_HALF_UP); + loseRate = BigDecimal.valueOf(loseScoreCount).divide(BigDecimal.valueOf(scoreCount), 0, BigDecimal.ROUND_UP); } } BigDecimal succeedRate = BigDecimal.ZERO; if (countOrderEnd != 0 && countOrder != 0) { - succeedRate = BigDecimal.valueOf(countOrderEnd + countOrderAppraise).divide(new BigDecimal(countOrder), 2, BigDecimal.ROUND_HALF_UP); + succeedRate = BigDecimal.valueOf(countOrderEnd + countOrderAppraise).divide(new BigDecimal(countOrder), 0, BigDecimal.ROUND_UP); } result.put("sumMoney", sumMoney); result.put("countOrderNum", countOrderNum); - result.put("countTakingByUserId", BigDecimal.valueOf(countTakingByUserId).setScale(2, BigDecimal.ROUND_HALF_DOWN)); + result.put("countTakingByUserId", BigDecimal.valueOf(countTakingByUserId).setScale(0, BigDecimal.ROUND_UP)); result.put("orderMoney", orderMoney); result.put("countOrder", countOrder); result.put("sumRefund", sumRefund); @@ -6829,27 +6351,6 @@ public class OrdersServiceImpl extends ServiceImpl implements if(StringUtil.isNotEmpty(period.getArtificerId())) { Result.error("系统异常,请联系管理员"); } -// QueryWrapper queryWrapper = new QueryWrapper(); -// queryWrapper.eq("artificer_id", period.getArtificerId()); -// if(StringUtil.isNotEmpty(period.getStartFundData().toString())){ -// queryWrapper.between("end_times", period.getStartFundData(), period.getEndFundData()); -// } -// //只查询已完成和待评价的订单 -// queryWrapper.in("status", Arrays.asList(5, 3)); -// queryWrapper.orderByDesc("end_times"); -// List orderList = baseMapper.selectList(queryWrapper); -// //计算项目收益 -// userMoneyArtificerDetails.setProjectBenefits(orderList.stream().map(e -> e.getProjectBenefits()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP)); -// //计算车费收益 -// userMoneyArtificerDetails.setVehicleFareAmount(orderList.stream().map(e -> e.getArtificerTaxiMoney()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP)); -// //暂时去掉 -//// //计算渠道扣款 -//// userMoneyArtificerDetails.setChannelDeduction(orderList.stream().map(e -> e.getChannelDeduction()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP)); -//// //计算储值扣款 -//// userMoneyArtificerDetails.setValueStorageDeduction(orderList.stream().map(e -> e.getValueStorageDeduction()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP)); -// //计算当期收益 项目收益 + 车费收益 (暂时去掉了 减去渠道扣款和储值扣款) -// BigDecimal all = new BigDecimal(String.valueOf(userMoneyArtificerDetails.getProjectBenefits().add(userMoneyArtificerDetails.getVehicleFareAmount()))).setScale(2, BigDecimal.ROUND_HALF_UP); -// userMoneyArtificerDetails.setTotalRevenue(all); //插入开始结束时间 UserMoneyArtificerDetails userMoneyArtificerDetails = new UserMoneyArtificerDetails(); userMoneyArtificerDetails.setStartFundData(period.getStartFundData()); @@ -6874,19 +6375,6 @@ public class OrdersServiceImpl extends ServiceImpl implements @Override public Result selectDividedIntoDetails(Integer page, Integer limit, Period period) { Page page1 = new Page(page, limit); -// QueryWrapper queryWrapper = new QueryWrapper(); -// queryWrapper.eq("artificer_id", period.getArtificerId()); -// if(StringUtil.isNotEmpty(period.getStartFundData().toString())){ -// queryWrapper.between("end_times", period.getStartFundData(), period.getEndFundData()); -// } -// //只查询已完成和待评价的订单 -// queryWrapper.in("status", Arrays.asList(5, 3)); -// //只查询根节点数据 -// queryWrapper.eq("parent_id", 0); -// queryWrapper.orderByDesc("end_times"); -// IPage page2 = baseMapper.selectPage(page1, queryWrapper); -// //分成明细添加到返回对象中 -// return Result.success().put("data", page2); String startFundData = DateUtils.format(period.getStartFundData()); String endFundData = DateUtils.format(period.getEndFundData()); return Result.success().put("data", baseMapper.selectDividedIntoDetails(page1,Long.valueOf(period.getArtificerId()),startFundData,endFundData,null)); @@ -6922,12 +6410,12 @@ public class OrdersServiceImpl extends ServiceImpl implements // treeNode.putExtra("revenueAmount",object.getArtificerTaxiMoney().add(object.getProjectBenefits()).subtract(object.getChannelDeduction().add(object.getValueStorageDeduction())));//收益金额 })); //项目金额 - BigDecimal Price = BigDecimal.valueOf(ordersList.stream().map(Orders->new BigDecimal(String.valueOf(Orders.getPrice()))).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + BigDecimal Price = BigDecimal.valueOf(ordersList.stream().map(Orders->new BigDecimal(String.valueOf(Orders.getPrice()))).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)).setScale(0, BigDecimal.ROUND_UP).doubleValue()); BigDecimal couponMoney = new BigDecimal(trees.get(0).get("couponMoney").toString()); //实际项目金额 trees.get(0).put("allPrice",Price.subtract(couponMoney)); //项目收益 - BigDecimal projectBenefits = BigDecimal.valueOf(ordersList.stream().map(Orders->new BigDecimal(String.valueOf(Orders.getProjectBenefits()))).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + BigDecimal projectBenefits = BigDecimal.valueOf(ordersList.stream().map(Orders->new BigDecimal(String.valueOf(Orders.getProjectBenefits()))).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)).setScale(0, BigDecimal.ROUND_UP).doubleValue()); //实际项目收益 trees.get(0).put("actualProjectBenefits",projectBenefits); BigDecimal artificerTaxiMoney = new BigDecimal(trees.get(0).get("artificerTaxiMoney").toString());