插入订单,增加师加成后的价格,技师加成金额,VIP减免价格字段,并将数值改成整数
This commit is contained in:
parent
64236e3179
commit
68ad7921f8
|
@ -717,24 +717,17 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
}
|
}
|
||||||
orders.setTechnicianRate(artificerVipRate);
|
orders.setTechnicianRate(artificerVipRate);
|
||||||
|
|
||||||
BigDecimal payMoney = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
List<OrdersMassage> ordersMassageList = orders.getOrdersMassageList();
|
List<OrdersMassage> ordersMassageList = orders.getOrdersMassageList();
|
||||||
MassageType massageType = massageTypeService.getById(ordersMassageList.get(0).getMassageId());
|
MassageType massageType = massageTypeService.getById(ordersMassageList.get(0).getMassageId());
|
||||||
|
|
||||||
BigDecimal price = BigDecimal.ZERO;
|
BigDecimal price = BigDecimal.ZERO;
|
||||||
String massageTypeName = "";
|
String massageTypeName = "";
|
||||||
BigDecimal artificerPrice = new BigDecimal("0.00");
|
BigDecimal artificerPrice = BigDecimal.ZERO;
|
||||||
|
|
||||||
for (OrdersMassage ordersMassage : ordersMassageList) {
|
for (OrdersMassage ordersMassage : ordersMassageList) {
|
||||||
orders.setDuration(massageType.getDuration());
|
orders.setDuration(massageType.getDuration());
|
||||||
orders.setMassageNum(ordersMassage.getNum());
|
orders.setMassageNum(ordersMassage.getNum());
|
||||||
price = massageType.getPrice().multiply(BigDecimal.valueOf(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) {
|
if (orders.getParentId() != null && orders.getParentId() != 0) {
|
||||||
orders.setAddTime(massageType.getDuration());
|
orders.setAddTime(massageType.getDuration());
|
||||||
|
@ -754,16 +747,37 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
}
|
}
|
||||||
orders.setMassageTypeId(massageType.getMassageTypeId());
|
orders.setMassageTypeId(massageType.getMassageTypeId());
|
||||||
}
|
}
|
||||||
|
massageTypeName = massageType.getTitle();
|
||||||
|
orders.setEntryName(massageTypeName);
|
||||||
|
orders.setMassagePrice(price);
|
||||||
//保存现价
|
//保存现价
|
||||||
orders.setPrice(price);
|
orders.setPrice(price);
|
||||||
orders.setEntryName(massageTypeName);
|
|
||||||
|
//技师加成金额
|
||||||
|
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);
|
||||||
|
|
||||||
//判断金额是否满足代金券金额最少消费额度
|
//判断金额是否满足代金券金额最少消费额度
|
||||||
if(orders.getMassagePrice().compareTo(couponMinMoney) < 0){
|
if(orders.getMassagePrice().compareTo(couponMinMoney) < 0){
|
||||||
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠券!");
|
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠券!");
|
||||||
}
|
}
|
||||||
|
|
||||||
orders.setMassageMoney(payMoney);
|
|
||||||
//减去代金券的金额
|
//减去代金券的金额
|
||||||
payMoney = payMoney.subtract(orders.getCouponMoney());
|
payMoney = payMoney.subtract(orders.getCouponMoney());
|
||||||
|
|
||||||
|
@ -789,24 +803,15 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
if(map.get("code").toString().equals("1")){
|
if(map.get("code").toString().equals("1")){
|
||||||
return Result.error("预约时间正忙,请更换其他时间!");
|
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(),orders.getServeTime());
|
||||||
// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
|
|
||||||
if (travelPriceVo == null) {
|
if (travelPriceVo == null) {
|
||||||
return Result.error("暂不支持当前地址,请更换其他地址!");
|
return Result.error("暂不支持当前地址,请更换其他地址!");
|
||||||
}
|
}
|
||||||
taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
|
taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
|
||||||
|
taxiMoney = taxiMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||||
orders.setTaxiMoney(taxiMoney);
|
orders.setTaxiMoney(taxiMoney);
|
||||||
orders.setKm(travelPriceVo.getKilometerNum());
|
orders.setKm(travelPriceVo.getKilometerNum());
|
||||||
|
|
||||||
// WSSsdrAddress wsSsdrAddress = AddressUtil.resolveAddress(orders.getAddress());
|
|
||||||
// Map<String, Object> 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 {
|
} else {
|
||||||
if ("是".equals(value1)) {
|
if ("是".equals(value1)) {
|
||||||
ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper<ArtificerTime>().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 "));
|
ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper<ArtificerTime>().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 "));
|
||||||
|
@ -818,49 +823,49 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//加上车费
|
//加上车费
|
||||||
|
BigDecimal subtract = payMoney;
|
||||||
payMoney = payMoney.add(taxiMoney);
|
payMoney = payMoney.add(taxiMoney);
|
||||||
payMoney = payMoney.setScale(2,BigDecimal.ROUND_HALF_UP);
|
payMoney = payMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||||
orders.setPayMoney(payMoney);
|
orders.setPayMoney(payMoney);
|
||||||
|
|
||||||
|
//计算用户收益 !计算前先减去通行费用再计算技师抽成
|
||||||
|
artificerPrice = subtract.multiply(artificer.getRate()).setScale(0,BigDecimal.ROUND_UP);
|
||||||
//查询是否计算出租车扣费
|
//查询是否计算出租车扣费
|
||||||
String taxi = commonInfoService.findOne(394).getValue();
|
String taxi = commonInfoService.findOne(394).getValue();
|
||||||
//计算技师出租车收益(按照技师表收益计算)
|
//计算技师出租车收益(按照技师表收益计算)
|
||||||
if ("是".equals(taxi)) {
|
if ("是".equals(taxi)) {
|
||||||
//计算技师应该收取的出租车费用
|
//计算技师应该收取的出租车费用
|
||||||
BigDecimal artificerTaxiMoney = taxiMoney.multiply(artificer.getRate());
|
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.setArtificerTaxiMoney(artificerTaxiMoney);
|
||||||
//赋值出租车扣款
|
//赋值出租车扣款
|
||||||
orders.setPingTaxiMoney(pingTaxiMoney);
|
orders.setPingTaxiMoney(pingTaxiMoney);
|
||||||
//赋值技师收益
|
//用户收益加上通行费用
|
||||||
artificerPrice = orders.getPayMoney().multiply(artificer.getRate());
|
artificerPrice = artificerPrice.add(artificerTaxiMoney);
|
||||||
} else {
|
} else {
|
||||||
//平台不扣费 出租车收益全由技师收取
|
//平台不扣费 出租车收益全由技师收取
|
||||||
orders.setArtificerTaxiMoney(orders.getTaxiMoney());
|
orders.setArtificerTaxiMoney(orders.getTaxiMoney());
|
||||||
//设置出租车扣款为0
|
//设置出租车扣款为0
|
||||||
orders.setPingTaxiMoney(BigDecimal.ZERO);
|
orders.setPingTaxiMoney(BigDecimal.ZERO);
|
||||||
//用户支付减去通行费用
|
|
||||||
BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney);
|
|
||||||
//计算用户收益 !计算前先减去通行费用再计算技师抽成
|
|
||||||
artificerPrice = subtract.multiply(artificer.getRate());
|
|
||||||
//用户收益加上通行费用
|
//用户收益加上通行费用
|
||||||
artificerPrice = artificerPrice.add(taxiMoney);
|
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.setArtificerMoney(artificerPrice);
|
||||||
orders.setSumArtificerMoney(orders.getArtificerMoney());
|
orders.setSumArtificerMoney(orders.getArtificerMoney());
|
||||||
|
|
||||||
|
// //计算项目收益
|
||||||
|
// BigDecimal massageMoney = orders.getMassageMoney();
|
||||||
|
// if(orders.getCouponMoney()!=null){
|
||||||
|
// massageMoney = massageMoney.subtract(orders.getCouponMoney());
|
||||||
|
// }
|
||||||
|
// //获取项目应支付金额
|
||||||
|
// BigDecimal projectBenefits = massageMoney;
|
||||||
|
BigDecimal projectBenefits = subtract;
|
||||||
|
//计算技师项目提成金额
|
||||||
|
orders.setProjectBenefits(projectBenefits.multiply(artificer.getRate()).setScale(0,BigDecimal.ROUND_UP));
|
||||||
|
|
||||||
orders.setOrdersNo(getGeneralOrder());
|
orders.setOrdersNo(getGeneralOrder());
|
||||||
orders.setStatus(1);
|
orders.setStatus(1);
|
||||||
|
|
||||||
|
@ -896,60 +901,6 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
ordersMassage.setOrdersId(orders.getOrdersId());
|
ordersMassage.setOrdersId(orders.getOrdersId());
|
||||||
ordersMassageService.save(ordersMassage);
|
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);
|
return Result.success().put("data", orders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue