From 64236e3179a94cfb836e40aa82e85d017865f53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Tue, 16 Jul 2024 09:36:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A4=90/=E6=AC=A1=E5=8D=A1/=E7=96=97?= =?UTF-8?q?=E7=A8=8B=20=20=E8=BD=A6=E8=B4=B9=20=E7=99=BD=E5=A4=A9=E5=85=8D?= =?UTF-8?q?=E8=B4=B9=20=E5=A4=9C=E9=97=B4=E6=94=B6=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/AppArtificerController.java | 7 + .../sqx/modules/artificer/dao/OrdersDao.java | 2 + .../artificer/service/OrdersService.java | 2 + .../service/impl/OrdersServiceImpl.java | 264 ++++++++++++--- .../bl/massage/entity/MassagePackage.java | 5 + .../modules/bl/order/entity/UserPackage.java | 5 + .../bl/order/entity/UserPackageDetail.java | 5 + .../impl/UserPackageOrderServiceImpl.java | 5 + .../pay/controller/app/AliPayController.java | 311 ++++++++++++++++-- .../pay/service/impl/WxServiceImpl.java | 303 +++++++++++++++-- .../travelconf/service/TravelConfService.java | 1 + .../service/impl/TravelConfServiceImpl.java | 9 + .../resources/mapper/artificer/OrdersDao.xml | 30 +- .../mapper/bl/massage/MassagePackageDao.xml | 3 + .../mapper/bl/order/UserPackageDao.xml | 14 +- .../mapper/bl/order/UserPackageDetailDao.xml | 11 +- 16 files changed, 870 insertions(+), 107 deletions(-) diff --git a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java index 4d87f43..5885547 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java @@ -196,6 +196,13 @@ public class AppArtificerController { return ordersService.removeOrders(ordersId); } + @Login + @PostMapping("/cancelOrdersMoney") + @ApiOperation("取消订单扣钱") + public Result cancelOrdersMoney(@RequestAttribute Long userId,Long ordersId){ + return ordersService.cancelOrdersMoney(userId,ordersId); + } + @Login @PostMapping("/deleteOrders") @ApiOperation("取消订单") diff --git a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java index e4f8a23..0f7c775 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java @@ -144,6 +144,8 @@ public interface OrdersDao extends BaseMapper { List getParentOrders(Long parentId); + List getNewOrdersByOld(Long ordersId); + BigDecimal selectSumRefund(Long artificerId, @Param("startTime") String startTime, @Param("endTime") String endTime); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/service/OrdersService.java b/src/main/java/com/sqx/modules/artificer/service/OrdersService.java index d10d2e3..d620d81 100644 --- a/src/main/java/com/sqx/modules/artificer/service/OrdersService.java +++ b/src/main/java/com/sqx/modules/artificer/service/OrdersService.java @@ -18,6 +18,8 @@ public interface OrdersService extends IService { Result updateOrders(Orders orders); + Result cancelOrdersMoney(Long userId,Long ordersId); + Result cancelOrders(Long userId,Long ordersId); Result cancelSupplementOrders(Long userId, Long ordersId, Integer isAuto, Integer type); 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 b7d5c86..96f465d 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 @@ -343,12 +343,14 @@ public class OrdersServiceImpl extends ServiceImpl implements } } //服务时间后锁单时间判断 - if (i > 0) { + if (i >= 0) { Calendar calendar = Calendar.getInstance(); calendar.setTime(parse); + String format = DateUtils.format(calendar.getTime(),"yyyy-MM-dd HH:mm"); + allTime.add(format); for (int j = 0; j < i; j++) { calendar.add(Calendar.MINUTE, minute); - String format = DateUtils.format(calendar.getTime(),"yyyy-MM-dd HH:mm"); + format = DateUtils.format(calendar.getTime(),"yyyy-MM-dd HH:mm"); allTime.add(format); date = format.substring(0, 10); time = format.substring(11, 16); @@ -997,8 +999,22 @@ public class OrdersServiceImpl extends ServiceImpl implements 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; + tripWay = 3; + 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) { + return Result.error("暂不支持当前地址,请更换其他地址!"); + } + taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); + orders.setTaxiMoney(taxiMoney); + orders.setKm(travelPriceVo.getKilometerNum()); + if (orders.getParentId() == null || orders.getParentId() == 0) { String serveTime = orders.getServeTime(); String date = serveTime.substring(0, 10); @@ -1017,14 +1033,6 @@ public class OrdersServiceImpl extends ServiceImpl implements 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()); // WSSsdrAddress wsSsdrAddress = AddressUtil.resolveAddress(orders.getAddress()); // Map result = selectTaxiMoney(orders.getArtificerId(), orders.getLatitude(), orders.getLongitude(), wsSsdrAddress.getCity()); @@ -1189,8 +1197,32 @@ public class OrdersServiceImpl extends ServiceImpl implements if (oldOrders.getStatus() == 4) { return Result.error("已取消的订单不可修改!"); } + int dbd = 0; + int sjd = 0; + int xgd = 0; + if(oldOrders.getStatus().equals(11)){ + List newOrders = baseMapper.getNewOrdersByOld(orders.getOrdersId()); + if(newOrders.size()>0){ + for(Orders newOrder : newOrders){ + if(newOrder.getStatus()==1 || newOrder.getStatus()==4) { + if (newOrder.getIsSupplement().equals(1)) { + dbd = 1; + break; + } + if (newOrder.getIsSupplement().equals(2)) { + sjd = 1; + break; + } + if (newOrder.getIsSupplement().equals(3) || newOrder.getIsSupplement().equals(4)) { + xgd = 1; + break; + } + } + } + } + } //待补单修改 - if (oldOrders.getStatus() == 10) { + if (oldOrders.getStatus() == 10 || dbd == 1) { //只能修改,技师和时间 (技师等级大于等于原单据等级) Long massageTypeId; if (orders.getOrdersMassageList() != null) { @@ -1253,7 +1285,16 @@ public class OrdersServiceImpl extends ServiceImpl implements if (travelPriceVo == null) { return Result.error("暂不支持当前地址,请更换其他地址!"); } - + //删除未支付,无用的升级新单据 + List newList = baseMapper.getNewOrdersByOld(oldOrders.getOrdersId()); + if(newList.size()>0){ + for(Orders newOrder : newList){ + if(newOrder.getStatus()==1 || newOrder.getStatus()==4){ + baseMapper.deleteById(newOrder.getOrdersId()); + ordersMassageService.removeByOrdersId(newOrder.getOrdersId()); + } + } + } BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP); orders.setTaxiMoney(taxiMoney); @@ -1390,7 +1431,7 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.success().put("data", orders); } //进行中项目升级 - if (oldOrders.getStatus() == 6) { + if (oldOrders.getStatus() == 6 || sjd == 1) { //升级项目操作,只能修改,项目(金额大于等于当前项目金额) if (StringUtils.isNotBlank(orders.getServeTime()) && !orders.getServeTime().equals(oldOrders.getServeTime())) { return Result.error("当前订单无法修改时间!"); @@ -1439,7 +1480,16 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.error("预约时间正忙,请更换其他时间!"); } } - + //删除未支付,无用的升级新单据 + List newList = baseMapper.getNewOrdersByOld(oldOrders.getOrdersId()); + if(newList.size()>0){ + for(Orders newOrder : newList){ + if(newOrder.getStatus()==1 || newOrder.getStatus()==4){ + baseMapper.deleteById(newOrder.getOrdersId()); + ordersMassageService.removeByOrdersId(newOrder.getOrdersId()); + } + } + } //使用原价计算差额 orders.setUserId(oldOrders.getUserId()); orders.setUserName(oldOrders.getUserName()); @@ -1929,7 +1979,7 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.success().put("data", orders); } } - if (oldOrders.getStatus() == 2 || oldOrders.getStatus() == 9) { + if (oldOrders.getStatus() == 2 || oldOrders.getStatus() == 9 || xgd == 1) { //只能修改,技师和时间 (技师等级大于等于原单据等级) //判断是否是可修改,状态2 9 boolean canUpdate = commonInfoService.isCheckEditOrder(DateUtils.stringToDate(oldOrders.getServeTime(), "yyyy-MM-dd HH:mm"), new Date()); @@ -2042,6 +2092,17 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.error("暂不支持当前地址,请更换其他地址!"); } + //删除未支付,无用的升级新单据 + List newList = baseMapper.getNewOrdersByOld(oldOrders.getOrdersId()); + if(newList.size()>0){ + for(Orders newOrder : newList){ + if(newOrder.getStatus()==1 || newOrder.getStatus()==4){ + baseMapper.deleteById(newOrder.getOrdersId()); + ordersMassageService.removeByOrdersId(newOrder.getOrdersId()); + } + } + } + BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP); BigDecimal oldTaxiMoney = oldOrders.getTaxiMoney(); @@ -2366,11 +2427,113 @@ public class OrdersServiceImpl extends ServiceImpl implements } return Result.error("此状态单据无法修改操作!"); }catch (Exception e){ + e.printStackTrace(); return Result.error(e.getMessage()); } } @Override + public Result cancelOrdersMoney(Long userId, Long ordersId) { + Orders orders = baseMapper.selectById(ordersId); + if (orders.getStatus() == 4) { + return Result.error("订单已经取消了!"); + } else if (orders.getStatus() == 3 || orders.getStatus() == 5) { + return Result.error("订单已经完成了,无法取消!"); + }else if (orders.getStatus() == 6) { + if(orders.getOldOrdersId() != null && orders.getOldOrdersId() != 0){ + return Result.error("项目升级之后,无法取消!"); + } + if(orders.getParentId() != null && orders.getParentId() != 0){ + return Result.error("项目加钟之后,无法取消!"); + } + } + //按时间扣款,获取扣款金额 + CommonInfo commonInfo = commonInfoService.isCheckChangeOrder(DateUtils.stringToDate(orders.getServeTime(),"yyyy-MM-dd HH:mm") ,new Date()); + CommonEnum commonEnum = CommonConfigUtil.getCommonEnumByKey(commonInfo.getType()); + String[] values = CommonConfigUtil.getArrayValue(commonInfo.getValue()); + BigDecimal massageDeduction = BigDecimal.ZERO; + BigDecimal trafficDeduction = BigDecimal.ZERO; + BigDecimal massageRate = BigDecimal.ZERO; + BigDecimal trafficRate = BigDecimal.ZERO; + if(CommonEnum.V3_ORDER_FORM_CANCEL_NOT_START_01 == commonEnum){ + //距离服务开始n分钟以上免费取消,全额退服务费和车费 + massageDeduction = BigDecimal.ZERO; + trafficDeduction = BigDecimal.ZERO; + massageRate = BigDecimal.ZERO; + trafficRate = BigDecimal.ZERO; + } + if(CommonEnum.V3_ORDER_FORM_CANCEL_NOT_START_02 == commonEnum){ + //距离服务开始前取消n-n分钟内,收取n元,扣服务费,全额退车费 + massageDeduction = new BigDecimal(values[2]); + trafficDeduction = BigDecimal.ZERO; + massageRate = BigDecimal.ZERO; + trafficRate = BigDecimal.ZERO; + } + if(CommonEnum.V3_ORDER_FORM_CANCEL_NOT_START_03 == commonEnum){ + //距离服务开始前取消少于n分钟内,收取n元,扣服务费,全额退车费 + massageDeduction = new BigDecimal(values[1]); + trafficDeduction = BigDecimal.ZERO; + massageRate = BigDecimal.ZERO; + trafficRate = BigDecimal.ZERO; + } + if(CommonEnum.V3_ORDER_FORM_CANCEL_START_01 == commonEnum){ + //服务开始n分钟内取消订单,扣项目费用n%,车费全扣n%,扣服务费和车费 + massageDeduction = BigDecimal.ZERO; + trafficDeduction = BigDecimal.ZERO; + massageRate = new BigDecimal(values[1]).divide(new BigDecimal(100)); + trafficRate = new BigDecimal(values[2]).divide(new BigDecimal(100)); + } + if(orders.getUserPackageDetailId() !=null){ + return cancelPackageOrdersMoney(userId,orders,trafficDeduction,trafficRate); + }else{ + return cancelMassageOrdersMoney(userId,orders,massageDeduction,trafficDeduction,massageRate,trafficRate); + } + } + + private Result cancelMassageOrdersMoney(Long userId, Orders orders, BigDecimal massageDeduction, BigDecimal trafficDeduction, BigDecimal massageRate, BigDecimal trafficRate) { + //项目扣款 + BigDecimal massageMoneyDeduction = BigDecimal.ZERO; + if(massageRate.compareTo(BigDecimal.ZERO) == 0){ + massageMoneyDeduction = massageDeduction; + }else{ + massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()).multiply(massageRate).setScale(2, BigDecimal.ROUND_HALF_UP); + } + if(orders.getPayMoney().subtract(orders.getTaxiMoney()).compareTo(massageDeduction) < 0){ + massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()); + } + //车费扣款 + BigDecimal taxiMoneyDeduction = BigDecimal.ZERO; + if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ + taxiMoneyDeduction = trafficDeduction; + }else{ + taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(2, BigDecimal.ROUND_HALF_UP); + } + if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ + taxiMoneyDeduction = orders.getTaxiMoney(); + } + //项目总扣款数 + BigDecimal sumMoney = massageMoneyDeduction.add(taxiMoneyDeduction);//总扣费 + + String remarks = "取消订单将扣除:"+sumMoney+"元的手续费,其中项目费将扣除:"+massageMoneyDeduction+"元,车费将扣除:"+taxiMoneyDeduction+"元!"; + return Result.success().put("data",remarks); + } + + private Result cancelPackageOrdersMoney(Long userId, Orders orders, BigDecimal trafficDeduction, BigDecimal trafficRate){ + //车费扣款 + BigDecimal taxiMoneyDeduction = BigDecimal.ZERO; + if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ + taxiMoneyDeduction = trafficDeduction; + }else{ + taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate); + } + if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ + taxiMoneyDeduction = orders.getTaxiMoney(); + } + String remarks = "取消订单将扣除:"+taxiMoneyDeduction+"元的手续费,其中车费将扣除:"+taxiMoneyDeduction+"元!"; + return Result.success().put("data",remarks); + } + + @Override @Transactional public Result cancelOrders(Long userId, Long ordersId) { Orders orders = baseMapper.selectById(ordersId); @@ -2572,6 +2735,8 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 BigDecimal pingTaxiMoney = BigDecimal.ZERO; BigDecimal artificerMoney = rate.multiply(artificer.getRate()); //技师获得扣款提成 + orders.setProjectBenefits(artificerMoney); + BigDecimal pingMoney = massageMoneyDeduction.subtract(artificerMoney);//平台获得项目扣款 String taxi = commonInfoService.findOne(394).getValue(); if ("是".equals(taxi)) { @@ -2615,11 +2780,6 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setSumArtificerMoney(artificerMoney); //平台扣款 - BigDecimal pingMoney = orders.getPayMoney(); - pingMoney = pingMoney.subtract(artificerMoney); - pingMoney = pingMoney.subtract(shopMoney); - pingMoney = pingMoney.subtract(oneArtificerMoney); - UserEntity user = userService.selectUserById(orders.getUserId()); UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); BigDecimal oneUserMoney = BigDecimal.ZERO; @@ -2631,6 +2791,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } orders.setOneUserMoney(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.setScale(2, BigDecimal.ROUND_HALF_UP); orders.setPingMoney(pingMoney); //分账 @@ -2810,6 +2971,16 @@ public class OrdersServiceImpl extends ServiceImpl implements artificerService.updateById(artificer2); messageService.saveBody(messageInfo); } + }else{ + orders.setProjectBenefits(BigDecimal.ZERO); + orders.setArtificerTaxiMoney(BigDecimal.ZERO); + orders.setPingTaxiMoney(BigDecimal.ZERO); + orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setShopMoney(BigDecimal.ZERO); + orders.setArtificerMoney(BigDecimal.ZERO); + orders.setSumArtificerMoney(BigDecimal.ZERO); + orders.setOneUserMoney(BigDecimal.ZERO); + orders.setPingMoney(BigDecimal.ZERO); } UserEntity userEntity = userService.selectUserById(orders.getUserId()); @@ -2866,7 +3037,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } baseMapper.updateById(ordersOld);//原单暂变成挂单状态 } - return Result.success(); } @@ -2886,9 +3056,9 @@ public class OrdersServiceImpl extends ServiceImpl implements //车费扣款 BigDecimal taxiMoneyDeduction = BigDecimal.ZERO; if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ - taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate); - }else{ taxiMoneyDeduction = trafficDeduction; + }else{ + taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate); } if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ taxiMoneyDeduction = orders.getTaxiMoney(); @@ -2948,6 +3118,14 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 if(sumMoney.compareTo(BigDecimal.ZERO)>0){ + orders.setProjectBenefits(BigDecimal.ZERO); + orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setShopMoney(BigDecimal.ZERO); + orders.setArtificerMoney(BigDecimal.ZERO); + orders.setSumArtificerMoney(BigDecimal.ZERO); + orders.setOneUserMoney(BigDecimal.ZERO); + orders.setPingMoney(BigDecimal.ZERO); + //按照比例 将扣除的钱进行分佣 BigDecimal taxiMoney = taxiMoneyDeduction; Artificer artificer = artificerService.getById(orders.getArtificerId()); @@ -2988,21 +3166,21 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setSumArtificerMoney(artificerTaxiMoney); //平台扣款 - BigDecimal pingMoney = orders.getPayMoney(); - pingMoney = pingMoney.subtract(artificerTaxiMoney); - pingMoney = pingMoney.subtract(shopMoney); - pingMoney = pingMoney.subtract(oneArtificerMoney); +// BigDecimal pingMoney = orders.getPayMoney(); +// pingMoney = pingMoney.subtract(artificerTaxiMoney); +// pingMoney = pingMoney.subtract(shopMoney); +// pingMoney = pingMoney.subtract(oneArtificerMoney); - 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); - pingMoney = pingMoney.subtract(oneUserMoney); - orders.setPingMoney(pingMoney); +// 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); +// pingMoney = pingMoney.subtract(oneUserMoney); +// orders.setPingMoney(pingMoney); userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); @@ -3103,6 +3281,16 @@ public class OrdersServiceImpl extends ServiceImpl implements artificerService.updateById(artificer2); messageService.saveBody(messageInfo); } + }else{ + orders.setProjectBenefits(BigDecimal.ZERO); + orders.setArtificerTaxiMoney(BigDecimal.ZERO); + orders.setPingTaxiMoney(BigDecimal.ZERO); + orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setShopMoney(BigDecimal.ZERO); + orders.setArtificerMoney(BigDecimal.ZERO); + orders.setSumArtificerMoney(BigDecimal.ZERO); + orders.setOneUserMoney(BigDecimal.ZERO); + orders.setPingMoney(BigDecimal.ZERO); } UserEntity userEntity = userService.selectUserById(orders.getUserId()); diff --git a/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java b/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java index b7645a9..58de91f 100644 --- a/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java +++ b/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java @@ -112,6 +112,11 @@ public class MassagePackage implements Serializable { */ private Long classifyId; + /** + * 等级 3新手 4专家 5资深 + */ + private Integer level; + /** * 类型名称 */ diff --git a/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java b/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java index 79279f0..19e60d5 100644 --- a/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java +++ b/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java @@ -125,6 +125,11 @@ public class UserPackage implements Serializable { */ private Integer status; + /** + * 等级 3新手 4专家 5资深 + */ + private Integer level; + /** * 次数 */ diff --git a/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java b/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java index 1fd7e93..a33dae9 100644 --- a/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java +++ b/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java @@ -128,6 +128,11 @@ public class UserPackageDetail implements Serializable { */ private String applyPeople; + /** + * 等级 3新手 4专家 5资深 + */ + private Integer level; + /** * 简介 */ diff --git a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java index 560e63a..0e0c801 100644 --- a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java +++ b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java @@ -36,6 +36,7 @@ import com.sqx.modules.coupon.service.CouponUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.SimpleDateFormat; @@ -279,6 +280,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl().eq("orders_id", orders.getOrdersId())); + UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId()); + UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId()); + UserPackageOrder userPackageOrder = userPackageOrderService.getById(userPackage.getOrdersId()); + Integer packagePayWay = userPackageOrder.getPayWay(); + 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 = BigDecimal.ZERO; + if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){ + taxiMoney = BigDecimal.ZERO; + }else{ + taxiMoney = orders.getTaxiMoney(); + } + if(taxiMoney==null){ + taxiMoney = BigDecimal.ZERO; + } + BigDecimal artificerPrice = BigDecimal.ZERO; + BigDecimal artificerTaxiPrice = BigDecimal.ZERO; + BigDecimal valueStorageDeduction = BigDecimal.ZERO; + //查询是否计算出租车扣费 + String taxi = commonInfoService.findOne(394).getValue(); + //计算技师出租车收益(按照技师表收益计算) + if ("是".equals(taxi)) { + //计算技师应该收取的出租车费用 + artificerTaxiPrice = taxiMoney.multiply(artificer.getRate()); + artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + //计算出租车扣款 + BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiPrice); + //赋值技师出租收款 + orders.setArtificerTaxiMoney(artificerTaxiPrice); + //赋值出租车扣款 + orders.setPingTaxiMoney(pingTaxiMoney); + } else { + //平台不扣费 出租车收益全由技师收取 + artificerTaxiPrice = taxiMoney; + orders.setArtificerTaxiMoney(taxiMoney); + //设置出租车扣款为0 + orders.setPingTaxiMoney(BigDecimal.ZERO); + } + BigDecimal subtract = BigDecimal.ZERO; + //用户支付减去通行费用 + if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){ + subtract = orders.getPayMoney(); + }else{ + subtract = orders.getPayMoney().subtract(taxiMoney); + } + //计算用户收益 !计算前先减去通行费用再计算技师抽成 + artificerPrice = subtract.multiply(artificer.getRate()); + artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + //储值扣费 + 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); + + orders.setProjectBenefits(artificerPrice); + + 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()); + oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + 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()); + shopMoney = artificerPrice.multiply(consortia.getRate()); + shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + } + } + orders.setShopMoney(shopMoney); + artificerPrice = artificerPrice.subtract(oneArtificerMoney); + artificerPrice = artificerPrice.subtract(shopMoney); + if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ + }else{ + //用户收益加上通行费用 + artificerPrice = artificerPrice.add(artificerTaxiPrice); + } + orders.setArtificerMoney(artificerPrice); + orders.setSumArtificerMoney(artificerPrice); + + //平台扣款 + BigDecimal pingMoney = orders.getPayMoney(); + pingMoney = pingMoney.subtract(artificerPrice); + pingMoney = pingMoney.subtract(shopMoney); + pingMoney = pingMoney.subtract(oneArtificerMoney); + + 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()); + oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); + oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + orders.setOneUserMoney(oneUserMoney); + pingMoney = pingMoney.subtract(oneUserMoney); + orders.setPingMoney(pingMoney); + + ordersService.updateById(orders); + + if(orders.getParentId()!=null && orders.getParentId()!=0){ + Calendar calendar=Calendar.getInstance(); + + Orders orders1 = ordersDao.selectById(orders.getParentId()); + if(orders1.getAddNum()==null){ + orders1.setAddNum(1); + }else{ + orders1.setAddNum(orders1.getAddNum()+1); + } + //获取加钟项目的时长 + if(orders1.getAddTime()!=null){ + orders1.setAddTime(orders1.getAddTime()+orders.getAddTime()); + }else{ + orders1.setAddTime(orders.getAddTime()); + } + boolean flag2 = false; + if (StringUtils.isNotBlank(orders1.getEndTime())) { + Calendar calendar2 = Calendar.getInstance(); + Date date = DateUtils.stringToDate(orders1.getEndTime(), "yyyy-MM-dd HH:mm:ss"); + calendar2.setTime(date); + calendar2.add(Calendar.MINUTE, orders.getAddTime()); + orders1.setEndTime(DateUtils.format(calendar2.getTime())); + flag2 = true; + } + if(orders1.getAddMoney()!=null){ + orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); + orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + }else{ + orders1.setAddMoney(orders.getPayMoney()); + orders1.setAddArtificerMoney(orders.getArtificerMoney()); + } + orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); + orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); + + orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); + orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); + orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); + + if(orders1.getStatus().equals(6)){ +// ordersMassage = ordersMassageService.getOne(new QueryWrapper().eq("orders_id", orders1.getOrdersId())); +// massageType = massageTypeService.getById(ordersMassage.getMassageId()); +// duration=massageType.getDuration(); + String endTime = orders1.getEndTime(); + Date date = DateUtils.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss"); + calendar=Calendar.getInstance(); + if(date.getTime()>System.currentTimeMillis()){ + calendar.setTime(date); + } + calendar.add(Calendar.MINUTE,orders.getDuration()); + orders1.setEndTime(endTime); + } + orders1.setAddPrice(orders.getPrice()); + orders1.setAddMassageTypeId(orders.getMassageTypeId()); + orders1.setAddEntryName(orders.getEntryName()); + ordersDao.updateById(orders1); + if (flag2) { + ordersDao.update(null, Wrappers.lambdaUpdate() + .set(Orders::getWarning, null) + .eq(Orders::getOrdersId, orders1.getOrdersId())); + } + }else{ + MessageInfo messageInfo=new MessageInfo(); + messageInfo.setState("16"); + messageInfo.setTitle("新订单通知"); + messageInfo.setUserId("0"); + messageInfo.setIsSee("0"); + messageService.saveBody(messageInfo); + //电话通知 add 2024-06-20 by caolei + messageService.sendNoticeByCall(artificer.getUserId()); + } + + ordersService.sendMsg(orders); + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); + userMoneyDetails.setManipulateType(1); + userMoneyDetails.setMoney(orders.getTaxiMoney()); + userMoneyDetails.setUserId(orders.getUserId()); + userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); + userMoneyDetails.setTitle("服务包下单"); + userMoneyDetails.setType(2); + userMoneyDetails.setState(2); + userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + userMoneyDetails.setBlRole(1); + userMoneyDetails.setBlFlag(2); + userMoneyDetailsService.save(userMoneyDetails); + + return Result.success(); } @Login @@ -1736,10 +1985,14 @@ public class AliPayController { UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); userMoneyDetails.setManipulateType(1); - userMoneyDetails.setMoney(orders.getPayMoney()); + if(orders.getUserPackageDetailId() != null){ + userMoneyDetails.setMoney(orders.getTaxiMoney()); + }else{ + userMoneyDetails.setMoney(orders.getPayMoney()); + } userMoneyDetails.setUserId(orders.getUserId()); userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); - userMoneyDetails.setTitle("支付服务包订单"); + userMoneyDetails.setTitle("支付订单"); userMoneyDetails.setType(2); userMoneyDetails.setState(2); userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); @@ -2046,6 +2299,7 @@ public class AliPayController { userPackage.setLabels(massagePackage.getLabels()); userPackage.setCity(massagePackage.getCity()); userPackage.setClassifyId(massagePackage.getClassifyId()); + userPackage.setLevel(massagePackage.getLevel()); userPackageService.insert(userPackage); Long mainId = userPackage.getId(); //拆分插入用户服务器项目详情 @@ -2057,6 +2311,7 @@ public class AliPayController { UserPackageDetail upd = userPackageDetailList.get(j); upd.setMainId(mainId); upd.setCreateTime(sdf.format(new Date())); + upd.setLevel(massagePackage.getLevel()); int serviceCount = upd.getServiceCount(); for(int k=0;k().eq("orders_id", orders.getOrdersId())); + UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId()); + UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId()); + UserPackageOrder userPackageOrder = userPackageOrderService.getById(userPackage.getOrdersId()); + Integer packagePayWay = userPackageOrder.getPayWay(); + 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 = BigDecimal.ZERO; + if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){ + taxiMoney = BigDecimal.ZERO; + }else{ + taxiMoney = orders.getTaxiMoney(); + } + if(taxiMoney==null){ + taxiMoney = BigDecimal.ZERO; + } + BigDecimal artificerPrice = BigDecimal.ZERO; + BigDecimal artificerTaxiPrice = BigDecimal.ZERO; + BigDecimal valueStorageDeduction = BigDecimal.ZERO; + //查询是否计算出租车扣费 + String taxi = commonInfoService.findOne(394).getValue(); + //计算技师出租车收益(按照技师表收益计算) + if ("是".equals(taxi)) { + //计算技师应该收取的出租车费用 + artificerTaxiPrice = taxiMoney.multiply(artificer.getRate()); + artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + //计算出租车扣款 + BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiPrice); + //赋值技师出租收款 + orders.setArtificerTaxiMoney(artificerTaxiPrice); + //赋值出租车扣款 + orders.setPingTaxiMoney(pingTaxiMoney); + } else { + //平台不扣费 出租车收益全由技师收取 + artificerTaxiPrice = taxiMoney; + orders.setArtificerTaxiMoney(taxiMoney); + //设置出租车扣款为0 + orders.setPingTaxiMoney(BigDecimal.ZERO); + } + BigDecimal subtract = BigDecimal.ZERO; + //用户支付减去通行费用 + if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){ + subtract = orders.getPayMoney(); + }else{ + subtract = orders.getPayMoney().subtract(taxiMoney); + } + //计算用户收益 !计算前先减去通行费用再计算技师抽成 + artificerPrice = subtract.multiply(artificer.getRate()); + artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + //储值扣费 + 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); + + orders.setProjectBenefits(artificerPrice); + + 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()); + oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + 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()); + shopMoney = artificerPrice.multiply(consortia.getRate()); + shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + } + } + orders.setShopMoney(shopMoney); + artificerPrice = artificerPrice.subtract(oneArtificerMoney); + artificerPrice = artificerPrice.subtract(shopMoney); + if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ + }else{ + //用户收益加上通行费用 + artificerPrice = artificerPrice.add(artificerTaxiPrice); + } + orders.setArtificerMoney(artificerPrice); + orders.setSumArtificerMoney(artificerPrice); + + //平台扣款 + BigDecimal pingMoney = orders.getPayMoney(); + pingMoney = pingMoney.subtract(artificerPrice); + pingMoney = pingMoney.subtract(shopMoney); + pingMoney = pingMoney.subtract(oneArtificerMoney); + + 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()); + oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); + oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + orders.setOneUserMoney(oneUserMoney); + pingMoney = pingMoney.subtract(oneUserMoney); + orders.setPingMoney(pingMoney); + + ordersService.updateById(orders); + + if(orders.getParentId()!=null && orders.getParentId()!=0){ + Calendar calendar=Calendar.getInstance(); + + Orders orders1 = ordersDao.selectById(orders.getParentId()); + if(orders1.getAddNum()==null){ + orders1.setAddNum(1); + }else{ + orders1.setAddNum(orders1.getAddNum()+1); + } + //获取加钟项目的时长 + if(orders1.getAddTime()!=null){ + orders1.setAddTime(orders1.getAddTime()+orders.getAddTime()); + }else{ + orders1.setAddTime(orders.getAddTime()); + } + boolean flag2 = false; + if (StringUtils.isNotBlank(orders1.getEndTime())) { + Calendar calendar2 = Calendar.getInstance(); + Date date = DateUtils.stringToDate(orders1.getEndTime(), "yyyy-MM-dd HH:mm:ss"); + calendar2.setTime(date); + calendar2.add(Calendar.MINUTE, orders.getAddTime()); + orders1.setEndTime(DateUtils.format(calendar2.getTime())); + flag2 = true; + } + if(orders1.getAddMoney()!=null){ + orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); + orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + }else{ + orders1.setAddMoney(orders.getPayMoney()); + orders1.setAddArtificerMoney(orders.getArtificerMoney()); + } + orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); + orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); + + orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); + orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); + orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); + + if(orders1.getStatus().equals(6)){ +// ordersMassage = ordersMassageService.getOne(new QueryWrapper().eq("orders_id", orders1.getOrdersId())); +// massageType = massageTypeService.getById(ordersMassage.getMassageId()); +// duration=massageType.getDuration(); + String endTime = orders1.getEndTime(); + Date date = DateUtils.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss"); + calendar=Calendar.getInstance(); + if(date.getTime()>System.currentTimeMillis()){ + calendar.setTime(date); + } + calendar.add(Calendar.MINUTE,orders.getDuration()); + orders1.setEndTime(endTime); + } + orders1.setAddPrice(orders.getPrice()); + orders1.setAddMassageTypeId(orders.getMassageTypeId()); + orders1.setAddEntryName(orders.getEntryName()); + ordersDao.updateById(orders1); + if (flag2) { + ordersDao.update(null, Wrappers.lambdaUpdate() + .set(Orders::getWarning, null) + .eq(Orders::getOrdersId, orders1.getOrdersId())); + } + }else{ + MessageInfo messageInfo=new MessageInfo(); + messageInfo.setState("16"); + messageInfo.setTitle("新订单通知"); + messageInfo.setUserId("0"); + messageInfo.setIsSee("0"); + messageService.saveBody(messageInfo); + //电话通知 add 2024-06-20 by caolei + messageService.sendNoticeByCall(artificer.getUserId()); + } + + ordersService.sendMsg(orders); + + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); + userMoneyDetails.setManipulateType(1); + userMoneyDetails.setMoney(orders.getTaxiMoney()); + userMoneyDetails.setUserId(orders.getUserId()); + userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); + userMoneyDetails.setTitle("服务包下单"); + userMoneyDetails.setType(2); + userMoneyDetails.setState(2); + userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + userMoneyDetails.setBlRole(1); + userMoneyDetails.setBlFlag(2); + userMoneyDetailsService.save(userMoneyDetails); + return Result.success(); } @@ -1326,10 +1567,14 @@ public class WxServiceImpl implements WxService { UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); userMoneyDetails.setManipulateType(1); - userMoneyDetails.setMoney(orders.getPayMoney()); + if(orders.getUserPackageDetailId() != null){ + userMoneyDetails.setMoney(orders.getTaxiMoney()); + }else{ + userMoneyDetails.setMoney(orders.getPayMoney()); + } userMoneyDetails.setUserId(orders.getUserId()); userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); - userMoneyDetails.setTitle("支付服务包订单"); + userMoneyDetails.setTitle("支付订单"); userMoneyDetails.setType(2); userMoneyDetails.setState(2); userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); @@ -1635,6 +1880,7 @@ public class WxServiceImpl implements WxService { userPackage.setLabels(massagePackage.getLabels()); userPackage.setCity(massagePackage.getCity()); userPackage.setClassifyId(massagePackage.getClassifyId()); + userPackage.setLevel(massagePackage.getLevel()); userPackageService.insert(userPackage); Long mainId = userPackage.getId(); //拆分插入用户服务器项目详情 @@ -1646,6 +1892,7 @@ public class WxServiceImpl implements WxService { UserPackageDetail upd = userPackageDetailList.get(j); upd.setMainId(mainId); upd.setCreateTime(sdf.format(new Date())); + upd.setLevel(massagePackage.getLevel()); int serviceCount = upd.getServiceCount(); for(int k=0;k { * @return */ TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime); + TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime, Integer tripWay); // TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude); /** diff --git a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java index ff75cfe..c55106b 100644 --- a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java +++ b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java @@ -221,6 +221,15 @@ public class TravelConfServiceImpl extends ServiceImpl and date_format(o.serve_time,'%Y-%m-%d %H:%i') >= date_format(DATE_ADD(now(), INTERVAL -12 HOUR),'%Y-%m-%d %H:%i') and date_format(o.serve_time,'%Y-%m-%d %H:%i') <= date_format(DATE_ADD(now(), INTERVAL 24 HOUR),'%Y-%m-%d %H:%i') - and o.status in (2,3,5,6,7,8,9) + and o.pay_time is not null + and o.status in (2,3,4,5,6,7,8,9) - and o.status in (2,6,7,8,9) + and o.status in (2,4,6,7,8,9) + and o.pay_time is not null and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') @@ -731,7 +733,8 @@ - and o.status in (2,3,5,6,7,8) + and o.status in (2,3,4,5,6,7,8) + and o.pay_time is not null and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') @@ -757,20 +760,22 @@ and o.orders_id not in ( select orders_id from orders where old_orders_id is not null - and status != 4 + and pay_time is not null ) and o.orders_id not in ( select old_orders_id from orders where old_orders_id is not null - and status != 4 + and pay_time is not null ) and date_format(o.serve_time,'%Y-%m-%d %H:%i') >= date_format(DATE_ADD(now(), INTERVAL -12 HOUR),'%Y-%m-%d %H:%i') and date_format(o.serve_time,'%Y-%m-%d %H:%i') <= date_format(DATE_ADD(now(), INTERVAL 24 HOUR),'%Y-%m-%d %H:%i') - and o.status in (2,3,5,6,7,8,9) + and o.status in (2,3,4,5,6,7,8,9) + and o.pay_time is not null - and o.status in (2,6,7,8,9) + and o.status in (2,4,6,7,8,9) + and o.pay_time is not null and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') @@ -788,7 +793,8 @@ - and o.status in (2,3,5,6,7,8) + and o.status in (2,3,4,5,6,7,8,9) + and o.pay_time is not null and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') @@ -1736,6 +1742,12 @@ where parent_id = #{parentId} + + @@ -117,7 +118,8 @@ parent_id, classify_id, apply_people, - jianjie + jianjie, + level )values( #{mainId}, #{packageDetailId}, @@ -139,7 +141,8 @@ #{parentId}, #{classifyId}, #{applyPeople}, - #{jianjie} + #{jianjie}, + #{level} ) @@ -167,6 +170,7 @@ a.classify_id, a.apply_people, a.jianjie, + a.level, m.sales from bl_user_package_detail a left join massage_type m on a.massage_type_id = m.massage_type_id where a.id = #{id} @@ -196,6 +200,7 @@ a.classify_id, a.apply_people, a.jianjie, + a.level, m.sales from bl_user_package_detail a left join massage_type m on a.massage_type_id = m.massage_type_id