From 4e11900438da0574510f94858d12bb4c9ddfa977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Thu, 4 Jul 2024 23:22:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E4=BD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrdersServiceImpl.java | 1454 ++++++++++------- .../impl/UserPackageDetailServiceImpl.java | 2 +- .../pay/controller/app/AliPayController.java | 312 ++-- .../pay/service/impl/WxServiceImpl.java | 300 ++-- .../resources/mapper/artificer/OrdersDao.xml | 12 +- 5 files changed, 1267 insertions(+), 813 deletions(-) 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 a34ed08..d4019ed 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 @@ -801,6 +801,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if ("是".equals(taxi)) { //计算技师应该收取的出租车费用 BigDecimal artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); + artificerTaxiMoney = artificerTaxiMoney.setScale(2, BigDecimal.ROUND_HALF_UP); //计算出租车扣款 BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); //赋值技师出租收款 @@ -1082,30 +1083,87 @@ public class OrdersServiceImpl extends ServiceImpl implements Orders ordersOld = new Orders(); ordersOld.setOrdersId(oldOrders.getOrdersId()); ordersOld.setStatus(11); + ordersOld.setArtificerId(orders.getArtificerId()); + ordersOld.setArtificerRate(orders.getArtificerRate()); + ordersOld.setArtificerTaxiMoney(BigDecimal.ZERO); + ordersOld.setPingTaxiMoney(BigDecimal.ZERO); + + BigDecimal projectBenefits = oldOrders.getMassageMoney(); + BigDecimal subtract = oldOrders.getPayMoney(); + //计算用户收益 + BigDecimal artificerPrice = subtract.multiply(artificer.getRate()); + artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_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); + artificerPrice = artificerPrice.multiply(rate); + artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + projectBenefits = projectBenefits.multiply(artificer.getRate()); + projectBenefits = projectBenefits.multiply(rate); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setProjectBenefits(projectBenefits); + }else{ + ordersOld.setValueStorageDeduction(BigDecimal.ZERO); + //计算技师项目提成金额 + projectBenefits = projectBenefits.multiply(artificer.getRate()); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setProjectBenefits(projectBenefits); + } + UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); - BigDecimal pingMoney = oldOrders.getPayMoney(); 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 = pingMoney.multiply(oneArtificerUser.getShopRate()); + ordersOld.setOneArtificerUserId(oneArtificerUser.getUserId()); + ordersOld.setOneArtificerUserName(oneArtificerUser.getUserName()); + oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } + ordersOld.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) { - shopMoney = pingMoney.multiply(consortia.getRate()); - orders.setConsortiaId(consortia.getConsortiaId()); - orders.setShopUserId(consortiaUser.getUserId()); - orders.setShopUserName(consortiaUser.getUserName()); + ordersOld.setConsortiaId(consortia.getConsortiaId()); + ordersOld.setShopUserId(consortiaUser.getUserId()); + ordersOld.setShopUserName(consortiaUser.getUserName()); + shopMoney = artificerPrice.multiply(consortia.getRate()); + shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } } } - orders.setShopMoney(shopMoney); - orders.setOneArtificerMoney(oneArtificerMoney); + ordersOld.setShopMoney(shopMoney); + artificerPrice = artificerPrice.subtract(oneArtificerMoney); + artificerPrice = artificerPrice.subtract(shopMoney); + ordersOld.setArtificerMoney(artificerPrice); + ordersOld.setSumArtificerMoney(artificerPrice); + + //平台扣款 + BigDecimal pingMoney = oldOrders.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) { + ordersOld.setOneUserId(oneUser.getUserId()); + ordersOld.setOneUserName(oneUser.getUserName()); + oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); + oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + ordersOld.setOneUserMoney(oneUserMoney); + pingMoney = pingMoney.subtract(oneUserMoney); + ordersOld.setPingMoney(pingMoney); + baseMapper.updateById(ordersOld);//原单暂变成挂单状态 return Result.success().put("data", orders); } @@ -1210,7 +1268,11 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal massagePrice = price.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)).add(price);//技师等级加成金额 massagePrice = massagePrice.multiply(orders.getVipRate()).divide(new BigDecimal(100));//会员优惠后金额 - massagePrice = massagePrice.subtract(oldOrders.getCouponMoney()); + BigDecimal couponMoney = oldOrders.getCouponMoney(); + if(couponMoney == null){ + couponMoney = BigDecimal.ZERO; + } + massagePrice = massagePrice.subtract(couponMoney); orders.setMassageMoney(massagePrice); BigDecimal chajia = orders.getMassageMoney().subtract(oldOrders.getMassageMoney()); @@ -1228,7 +1290,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setCreateTime(DateUtils.format(new Date())); orders.setIsSupplement(2); orders.setArtificerRate(artificer.getRate()); - orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); + orders.setSumMoney(orders.getPayMoney()); baseMapper.insert(orders); ordersMassageService.removeByOrdersId(orders.getOrdersId()); @@ -1863,7 +1925,10 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal massagePrice = price.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)).add(price);//技师等级加成金额 massagePrice = massagePrice.multiply(orders.getVipRate()).divide(new BigDecimal(100));//会员优惠后金额 - massagePrice = massagePrice.subtract(oldOrders.getCouponMoney()); + BigDecimal couponMoney = oldOrders.getCouponMoney(); + if(couponMoney != null){ + massagePrice = massagePrice.subtract(couponMoney); + } orders.setMassageMoney(massagePrice); //项目差价 @@ -1887,75 +1952,129 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal chajia = xmchajia.add(cxchajia); if (chajia.compareTo(BigDecimal.ZERO) == 0) { - BigDecimal pingMoney = oldOrders.getPayMoney(); + orders.setPayMoney(oldOrders.getPayMoney()); + BigDecimal artificerPrice = orders.getPayMoney().subtract(taxiMoney); + artificerPrice = artificerPrice.multiply(artificer.getRate()); + artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal projectBenefits = orders.getMassageMoney(); + if(orders.getPayWay().equals(5)){ + 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(artificer.getRate()); + projectBenefits = projectBenefits.multiply(rate); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setProjectBenefits(projectBenefits); + }else{ + orders.setValueStorageDeduction(BigDecimal.ZERO); + //计算技师项目提成金额 + projectBenefits = projectBenefits.multiply(artificer.getRate()); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setProjectBenefits(projectBenefits); + } + 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 = pingMoney.multiply(oneArtificerUser.getShopRate()); + 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) { - shopMoney = pingMoney.multiply(consortia.getRate()); 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); - orders.setOneArtificerMoney(oneArtificerMoney); - orders.setPayMoney(oldOrders.getPayMoney()); + artificerPrice = artificerPrice.subtract(oneArtificerMoney); + artificerPrice = artificerPrice.subtract(shopMoney); + 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); //总差价不变,则修改原单据 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 { //新增单据 orders.setPayMoney(chajia); orders.setTaxiMoney(cxchajia); - BigDecimal artificerPrice = new BigDecimal("0.00"); + BigDecimal artificerPrice = BigDecimal.ZERO; + BigDecimal artificerTaxiPrice = BigDecimal.ZERO; + BigDecimal valueStorageDeduction = BigDecimal.ZERO; //查询是否计算出租车扣费 String taxi = commonInfoService.findOne(394).getValue(); //计算技师出租车收益(按照技师表收益计算) if ("是".equals(taxi)) { //计算技师应该收取的出租车费用 - BigDecimal artificerTaxiMoney = cxchajia.multiply(artificer.getRate()); + artificerTaxiPrice = cxchajia.multiply(artificer.getRate()); + artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP); //计算出租车扣款 - BigDecimal pingTaxiMoney = cxchajia.subtract(artificerTaxiMoney); + BigDecimal pingTaxiMoney = cxchajia.subtract(artificerTaxiPrice); //赋值技师出租收款 - orders.setArtificerTaxiMoney(artificerTaxiMoney); + orders.setArtificerTaxiMoney(artificerTaxiPrice); //赋值出租车扣款 orders.setPingTaxiMoney(pingTaxiMoney); - //赋值技师收益 - artificerPrice = chajia.multiply(artificer.getRate()); +// //赋值技师收益 +// 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()); +// //用户收益加上通行费用 +// artificerPrice = artificerPrice.add(cxchajia); } //计算项目收益 //计算技师项目提成金额 - orders.setProjectBenefits(xmchajia.multiply(artificer.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP)); + artificerPrice = xmchajia.multiply(artificer.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setProjectBenefits(artificerPrice); + artificerPrice = artificerPrice.add(artificerTaxiPrice); orders.setArtificerMoney(artificerPrice); orders.setSumArtificerMoney(artificerPrice); orders.setOrdersNo(getGeneralOrder()); @@ -1988,32 +2107,104 @@ public class OrdersServiceImpl extends ServiceImpl implements } Orders ordersOld = new Orders(); - BigDecimal pingMoney = oldOrders.getPayMoney(); + ordersOld.setOrdersId(oldOrders.getOrdersId()); + ordersOld.setStatus(11); + ordersOld.setArtificerId(orders.getArtificerId()); + ordersOld.setArtificerRate(orders.getArtificerRate()); + ordersOld.setTechnicianRate(artificerVipRate); + //计算技师出租车收益(按照技师表收益计算) + if ("是".equals(taxi)) { + //计算技师应该收取的出租车费用 + BigDecimal artificerTaxiMoney = oldOrders.getTaxiMoney().multiply(artificer.getRate()); + artificerTaxiMoney = artificerTaxiMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + //计算出租车扣款 + BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); + //赋值技师出租收款 + ordersOld.setArtificerTaxiMoney(artificerTaxiMoney); + //赋值出租车扣款 + ordersOld.setPingTaxiMoney(pingTaxiMoney); + } else { + //平台不扣费 出租车收益全由技师收取 + ordersOld.setArtificerTaxiMoney(oldOrders.getTaxiMoney()); + //设置出租车扣款为0 + ordersOld.setPingTaxiMoney(BigDecimal.ZERO); + } + BigDecimal projectBenefits = oldOrders.getMassageMoney(); + //计算用户收益 + BigDecimal oldArtificerPrice = oldOrders.getPayMoney().subtract(oldOrders.getTaxiMoney()); + oldArtificerPrice = oldArtificerPrice.multiply(artificer.getRate()); + oldArtificerPrice = oldArtificerPrice.setScale(2, BigDecimal.ROUND_HALF_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); + oldArtificerPrice = oldArtificerPrice.multiply(rate); + oldArtificerPrice = oldArtificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + projectBenefits = projectBenefits.multiply(artificer.getRate()); + projectBenefits = projectBenefits.multiply(rate); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setProjectBenefits(projectBenefits); + }else{ + ordersOld.setValueStorageDeduction(BigDecimal.ZERO); + //计算技师项目提成金额 + projectBenefits = projectBenefits.multiply(artificer.getRate()); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setProjectBenefits(projectBenefits); + } + 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) { ordersOld.setOneArtificerUserId(oneArtificerUser.getUserId()); ordersOld.setOneArtificerUserName(oneArtificerUser.getUserName()); - oneArtificerMoney = pingMoney.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oldArtificerPrice.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } + ordersOld.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) { - shopMoney = pingMoney.multiply(consortia.getRate()); ordersOld.setConsortiaId(consortia.getConsortiaId()); ordersOld.setShopUserId(consortiaUser.getUserId()); ordersOld.setShopUserName(consortiaUser.getUserName()); + shopMoney = oldArtificerPrice.multiply(consortia.getRate()); + shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } } } ordersOld.setShopMoney(shopMoney); - ordersOld.setOneArtificerMoney(oneArtificerMoney); - ordersOld.setOrdersId(oldOrders.getOrdersId()); - ordersOld.setStatus(11); + oldArtificerPrice = oldArtificerPrice.subtract(oneArtificerMoney); + oldArtificerPrice = oldArtificerPrice.subtract(shopMoney); + ordersOld.setArtificerMoney(oldArtificerPrice); + ordersOld.setSumArtificerMoney(oldArtificerPrice); + + //平台扣款 + BigDecimal pingMoney = oldOrders.getPayMoney(); + pingMoney = pingMoney.subtract(oldArtificerPrice); + 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) { + ordersOld.setOneUserId(oneUser.getUserId()); + ordersOld.setOneUserName(oneUser.getUserName()); + oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); + oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); + } + ordersOld.setOneUserMoney(oneUserMoney); + pingMoney = pingMoney.subtract(oneUserMoney); + ordersOld.setPingMoney(pingMoney); + baseMapper.updateById(ordersOld);//原单暂变成挂单状态 return Result.success().put("data", orders); } @@ -2136,7 +2327,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if(massageRate.compareTo(BigDecimal.ZERO) == 0){ massageMoneyDeduction = massageDeduction; }else{ - massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()).multiply(massageRate); + 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()); @@ -2146,7 +2337,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(2, BigDecimal.ROUND_HALF_UP); } if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ taxiMoneyDeduction = orders.getTaxiMoney(); @@ -2160,7 +2351,6 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoney = BigDecimal.ZERO; } 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()); @@ -2217,11 +2407,10 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setBlRole(1); userMoneyDetailsService.save(userMoneyDetails); - if(orders.getSumArtificerMoney().compareTo(BigDecimal.ZERO) > 0){ - + BigDecimal sumMoney = rate.add(taxiMoneyDeduction);//总扣费 + if(sumMoney.compareTo(BigDecimal.ZERO) > 0){ //按照比例 将扣除的钱进行分佣 BigDecimal taxiMoney = taxiMoneyDeduction; - BigDecimal sumMoney = rate.add(taxiMoneyDeduction);//总扣费 Artificer artificer = artificerService.getById(orders.getArtificerId()); BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 BigDecimal pingTaxiMoney = BigDecimal.ZERO; @@ -2230,30 +2419,22 @@ 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); pingTaxiMoney = taxiMoney.subtract(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()); - oneUserMoney = rate.multiply(oneUser.getUserRate()); - } + 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()); - oneArtificerMoney = rate.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = artificerMoney.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } + orders.setOneArtificerMoney(oneArtificerMoney); BigDecimal shopMoney = BigDecimal.ZERO; if (artificerUser.getConsortiaId() != null) { @@ -2261,22 +2442,40 @@ public class OrdersServiceImpl extends ServiceImpl implements if (consortia != null && consortia.getUserId() != null) { UserEntity consortiaUser = userService.getById(consortia.getUserId()); if (consortiaUser != null) { - shopMoney = rate.multiply(consortia.getRate()); + orders.setConsortiaId(consortia.getConsortiaId()); + orders.setShopUserId(consortiaUser.getUserId()); + orders.setShopUserName(consortiaUser.getUserName()); + shopMoney = artificerMoney.multiply(consortia.getRate()); + shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } } } - rate = rate.subtract(artificerMoney); - rate = rate.subtract(oneUserMoney); - rate = rate.subtract(shopMoney); - rate = rate.subtract(oneArtificerMoney).setScale(2, BigDecimal.ROUND_DOWN); - orders.setShopMoney(shopMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setArtificerMoney(artificerMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setSumArtificerMoney(artificerMoney.add(artificerTaxiMoney).setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneUserMoney(oneUserMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneArtificerMoney(oneArtificerMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingMoney(rate.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setShopMoney(shopMoney); + artificerMoney = artificerMoney.subtract(oneArtificerMoney); + artificerMoney = artificerMoney.subtract(shopMoney); + artificerMoney = artificerMoney.add(artificerTaxiMoney); + orders.setArtificerMoney(artificerMoney); + 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; + 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); + //分账 userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); @@ -2289,31 +2488,16 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setMoney(orders.getSumArtificerMoney()); userMoneyDetails.setUserId(artificerUser.getUserId()); userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); - String value = commonInfoService.findOne(394).getValue(); - if ("是".equals(value)) { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } + if (orders.getShopUserId() != null) { + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); } else { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); } userMoneyDetails.setType(1); userMoneyDetails.setState(2); @@ -2323,80 +2507,79 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetailsService.save(userMoneyDetails); if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1 && orders.getOneUserMoney().compareTo(BigDecimal.ZERO) !=0) { - userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney3 = userMoneyService.selectUserMoneyByUserId(oneUser.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney3.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneUserMoney()); - userMoneyDetails.setUserId(oneUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setTitle("推广用户收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(5); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(1); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - - orders.setOneUserId(oneUser.getUserId()); - orders.setOneUserName(oneUser.getUserName()); + if(orders.getOneUserMoney().compareTo(BigDecimal.ZERO)>0){ + userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney3 = userMoneyService.selectUserMoneyByUserId(oneUser.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney3.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneUserMoney()); + userMoneyDetails.setUserId(oneUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setContent("推广用户收益:"+orders.getOneUserMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(5); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(1); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } - if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1 && orders.getOneArtificerMoney().compareTo(BigDecimal.ZERO)!=0) { - userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney4 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney4.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneArtificerMoney()); - userMoneyDetails.setUserId(oneArtificerUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setTitle("推广师傅收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(6); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(2); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - - orders.setOneArtificerUserId(oneArtificerUser.getUserId()); - orders.setOneArtificerUserName(oneArtificerUser.getUserName()); + if(orders.getOneArtificerMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney4 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney4.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneArtificerMoney()); + userMoneyDetails.setUserId(oneArtificerUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setContent("推广师傅收益:"+orders.getOneArtificerMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(6); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } if (orders.getShopUserId() != null && orders.getShopMoney().compareTo(BigDecimal.ZERO)!=0) { - userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney5 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney5.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getShopMoney()); - userMoneyDetails.setUserId(orders.getShopUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setTitle("商家收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(7); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(3); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); + if(orders.getShopMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney5 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney5.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getShopMoney()); + userMoneyDetails.setUserId(orders.getShopUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setContent("商家收益:"+orders.getShopMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(7); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(3); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } - List ordersList = baseMapper.selectList(new QueryWrapper().isNotNull("pay_way").eq("parent_id", orders.getOrdersId())); + //加钟退款全退 for (Orders orders1 : ordersList) { userMoneyDetails = new UserMoneyDetails(); if (orders1.getPayWay() == 1 || orders1.getPayWay() == 2 || orders1.getPayWay() == 3 || orders1.getPayWay() == 4) { @@ -2546,35 +2729,42 @@ public class OrdersServiceImpl extends ServiceImpl implements }else{ taxiMoneyDeduction = trafficDeduction; } - + if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ + taxiMoneyDeduction = orders.getTaxiMoney(); + } //退款金额 BigDecimal userMoney = orders.getTaxiMoney().subtract(taxiMoneyDeduction); - UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); if (orders.getPayWay() == 1 || orders.getPayWay() == 2 || orders.getPayWay() == 3 || orders.getPayWay() == 4) { - boolean refund = wxService.refund(orders.getOrdersNo(), orders.getTaxiMoney(), userMoney, orders.getPayWay()); - if (!refund) { - return Result.error("退款失败,请联系客服!"); + if(userMoney.compareTo(BigDecimal.ZERO) > 0) { + boolean refund = wxService.refund(orders.getOrdersNo(), orders.getTaxiMoney(), userMoney, orders.getPayWay()); + if (!refund) { + return Result.error("退款失败,请联系客服!"); + } } userMoneyDetails.setManipulateType(1); userMoneyDetails.setBlFlag(2); } 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"); - if (!"10000".equals(code1)) { - return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); + 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("退款失败!"); } - } else { - return Result.error("退款失败!"); } userMoneyDetails.setManipulateType(1); userMoneyDetails.setBlFlag(2); } else { - userMoneyService.updateMoney(1, orders.getUserId(), userMoney.doubleValue()); + if(userMoney.compareTo(BigDecimal.ZERO) > 0) { + userMoneyService.updateMoney(1, orders.getUserId(), userMoney.doubleValue()); + } //查询用户当前余额 UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); //插入余额 @@ -2595,11 +2785,10 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setBlRole(1); userMoneyDetailsService.save(userMoneyDetails); - if(orders.getSumArtificerMoney().compareTo(BigDecimal.ZERO)>0){ - + BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 + if(sumMoney.compareTo(BigDecimal.ZERO)>0){ //按照比例 将扣除的钱进行分佣 BigDecimal taxiMoney = taxiMoneyDeduction; - BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 Artificer artificer = artificerService.getById(orders.getArtificerId()); BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 BigDecimal pingTaxiMoney = BigDecimal.ZERO; @@ -2609,17 +2798,51 @@ public class OrdersServiceImpl extends ServiceImpl implements artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } - - orders.setShopMoney(BigDecimal.ZERO); - orders.setArtificerMoney(BigDecimal.ZERO); - orders.setSumArtificerMoney(sumMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneUserMoney(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); - orders.setPingMoney(BigDecimal.ZERO); - orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); + 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); + orders.setArtificerMoney(artificerTaxiMoney); + orders.setSumArtificerMoney(artificerTaxiMoney); + + //平台扣款 + 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); + userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); //查询用户当前余额 @@ -2631,10 +2854,17 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setMoney(orders.getSumArtificerMoney()); userMoneyDetails.setUserId(artificerUser.getUserId()); userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); + if (orders.getShopUserId() != null) { + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); + } else { + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); + } userMoneyDetails.setType(1); userMoneyDetails.setState(2); userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); @@ -2679,7 +2909,6 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setBlFlag(1); } - userMoneyDetails.setMoney(orders1.getPayMoney()); userMoneyDetails.setUserId(orders1.getUserId()); userMoneyDetails.setContent("订单号:" + orders1.getOrdersNo() + ",已原路退款!"); @@ -2720,7 +2949,6 @@ public class OrdersServiceImpl extends ServiceImpl implements UserEntity userEntity = userService.selectUserById(orders.getUserId()); List ordersMassageList = ordersMassageService.list(new QueryWrapper().eq("orders_id", orders.getOrdersId())); - UserPackageDetail userPackageDetail2 = userPackageDetailService.getById(ordersMassageList.get(0).getMassageId()); MassageType massageType = massageTypeService.getById(userPackageDetail2.getMassageTypeId()); @@ -2906,6 +3134,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } } if(isAuto == 1){ + //扣车费 Integer minutes = Integer.valueOf(commonInfoService.findOne(452).getValue()); String serveTime = orders.getServeTime(); Date serveTimeDate = DateUtils.stringToDate(serveTime,"yyyy-MM-dd HH:mm"); @@ -2925,18 +3154,47 @@ 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); pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } - UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); + orders.setArtificerTaxiMoney(artificerTaxiMoney); + orders.setPingTaxiMoney(pingTaxiMoney); - orders.setShopMoney(BigDecimal.ZERO); - orders.setArtificerMoney(BigDecimal.ZERO); - orders.setSumArtificerMoney(sumMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneUserMoney(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); + 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); - orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); @@ -3336,18 +3594,47 @@ 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); pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } - UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); + orders.setArtificerTaxiMoney(artificerTaxiMoney); + orders.setPingTaxiMoney(pingTaxiMoney); - orders.setShopMoney(BigDecimal.ZERO); - orders.setArtificerMoney(BigDecimal.ZERO); - orders.setSumArtificerMoney(sumMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneUserMoney(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); + 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); - orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); @@ -4216,7 +4503,107 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setPayWay(5); orders.setPayTime(simpleDateFormat.format(new Date())); + Artificer artificer = artificerService.getById(orders.getArtificerId()); + + 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 = BigDecimal.ZERO; + if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){ + 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); + //赋值技师收益 +// artificerPrice = orders.getPayMoney().multiply(artificer.getRate()).multiply(rate); + } 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); + BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setProjectBenefits(projectBenefits); + //用户收益不含交通费 + artificerPrice = artificerPrice.multiply(rate); + artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + + 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)){ + //用户收益加上通行费用 + 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; @@ -4224,93 +4611,12 @@ 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); } - - Artificer artificer = artificerService.getById(orders.getArtificerId()); - 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 = pingMoney.multiply(oneArtificerUser.getShopRate()); - } - - 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) { - shopMoney = pingMoney.multiply(consortia.getRate()); - orders.setConsortiaId(consortia.getConsortiaId()); - orders.setShopUserId(consortiaUser.getUserId()); - orders.setShopUserName(consortiaUser.getUserName()); - } - } - } - - 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){ - taxiMoney = BigDecimal.ZERO; - } - BigDecimal artificerPrice = BigDecimal.ZERO; - BigDecimal valueStorageDeduction = BigDecimal.ZERO; - //查询是否计算出租车扣费 - 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()).multiply(rate); - } else { - //平台不扣费 出租车收益全由技师收取 - orders.setArtificerTaxiMoney(orders.getTaxiMoney()); - //设置出租车扣款为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()); - //储值扣费 - valueStorageDeduction = artificerPrice.multiply(storageRate); - //用户收益加上通行费用 - if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){ - artificerPrice = artificerPrice.multiply(rate); - }else{ - artificerPrice = artificerPrice.multiply(rate).add(taxiMoney); - } - } - orders.setProjectBenefits(orders.getProjectBenefits().multiply(rate)); - orders.setArtificerMoney(artificerPrice); - orders.setSumArtificerMoney(orders.getArtificerMoney()); - orders.setValueStorageDeduction(valueStorageDeduction); - - pingMoney = pingMoney.subtract(orders.getArtificerMoney()); - pingMoney = pingMoney.subtract(oneUserMoney); - pingMoney = pingMoney.subtract(shopMoney); - pingMoney = pingMoney.subtract(oneArtificerMoney); - orders.setShopMoney(shopMoney); orders.setOneUserMoney(oneUserMoney); - orders.setOneArtificerMoney(oneArtificerMoney); + pingMoney = pingMoney.subtract(oneUserMoney); orders.setPingMoney(pingMoney); + baseMapper.updateById(orders); if (orders.getParentId() != null && orders.getParentId() != 0) { Orders orders1 = baseMapper.selectById(orders.getParentId()); @@ -4344,35 +4650,11 @@ public class OrdersServiceImpl extends ServiceImpl implements orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); - pingMoney = orders1.getSumMoney(); - oneUserMoney = BigDecimal.ZERO; - if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { - oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - } - oneArtificerMoney = BigDecimal.ZERO; - if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { - oneArtificerMoney = pingMoney.multiply(oneArtificerUser.getShopRate()); - } - 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) { - shopMoney = pingMoney.multiply(consortia.getRate()); + 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())); - } - } - } - - pingMoney = pingMoney.subtract(orders1.getSumArtificerMoney()); - pingMoney = pingMoney.subtract(oneUserMoney); - pingMoney = pingMoney.subtract(oneArtificerMoney); - pingMoney = pingMoney.subtract(shopMoney); - orders1.setShopMoney(shopMoney); - orders1.setOneUserMoney(oneUserMoney); - orders1.setOneArtificerMoney(oneArtificerMoney); - orders1.setPingMoney(pingMoney); if (orders1.getStatus().equals(6)) { String endTime = orders1.getEndTime(); Date date = DateUtils.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss"); @@ -4539,7 +4821,104 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setPayWay(5); orders.setPayTime(simpleDateFormat.format(new Date())); + Artificer artificer = artificerService.getById(orders.getArtificerId()); + + 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){ + 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); + //赋值技师收益 +// artificerPrice = orders.getPayMoney().multiply(artificer.getRate()).multiply(rate); + } 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); + BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate); + projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setProjectBenefits(projectBenefits); + //用户收益不含交通费 + artificerPrice = artificerPrice.multiply(rate); + artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); + + 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)){ + //用户收益加上通行费用 + 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; @@ -4547,79 +4926,12 @@ 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); } - Artificer artificer = artificerService.getById(orders.getArtificerId()); - 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 = pingMoney.multiply(oneArtificerUser.getShopRate()); - } - - 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) { - shopMoney = pingMoney.multiply(consortia.getRate()); - orders.setConsortiaId(consortia.getConsortiaId()); - orders.setShopUserId(consortiaUser.getUserId()); - orders.setShopUserName(consortiaUser.getUserName()); - } - } - } - - 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(); - BigDecimal artificerPrice = BigDecimal.ZERO; - BigDecimal valueStorageDeduction = BigDecimal.ZERO; - //查询是否计算出租车扣费 - 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()).multiply(rate); - } else { - //平台不扣费 出租车收益全由技师收取 - orders.setArtificerTaxiMoney(orders.getTaxiMoney()); - //设置出租车扣款为0 - orders.setPingTaxiMoney(BigDecimal.ZERO); - //用户支付减去通行费用 - BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney); - //计算用户收益 !计算前先减去通行费用再计算技师抽成 - artificerPrice = subtract.multiply(artificer.getRate()); - //储值扣费 - valueStorageDeduction = artificerPrice.multiply(storageRate); - //用户收益加上通行费用 - artificerPrice = artificerPrice.multiply(rate).add(taxiMoney); - } - orders.setProjectBenefits(orders.getProjectBenefits().multiply(rate)); - orders.setArtificerMoney(artificerPrice); - orders.setSumArtificerMoney(orders.getArtificerMoney()); - orders.setValueStorageDeduction(valueStorageDeduction); - - pingMoney = pingMoney.subtract(orders.getArtificerMoney()); - pingMoney = pingMoney.subtract(oneUserMoney); - pingMoney = pingMoney.subtract(shopMoney); - pingMoney = pingMoney.subtract(oneArtificerMoney); - orders.setShopMoney(shopMoney); orders.setOneUserMoney(oneUserMoney); - orders.setOneArtificerMoney(oneArtificerMoney); + pingMoney = pingMoney.subtract(oneUserMoney); orders.setPingMoney(pingMoney); + baseMapper.updateById(orders); if (orders.getParentId() != null && orders.getParentId() != 0) { Orders orders1 = baseMapper.selectById(orders.getParentId()); @@ -4652,33 +4964,12 @@ public class OrdersServiceImpl extends ServiceImpl implements } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); - pingMoney = orders1.getSumMoney(); - oneUserMoney = BigDecimal.ZERO; - if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { - oneUserMoney = pingMoney.multiply(oneUser.getUserRate()); - } - oneArtificerMoney = BigDecimal.ZERO; - if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { - oneArtificerMoney = pingMoney.multiply(oneArtificerUser.getShopRate()); - } - 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) { - shopMoney = pingMoney.multiply(consortia.getRate()); - } - } - } - pingMoney = pingMoney.subtract(orders1.getSumArtificerMoney()); - pingMoney = pingMoney.subtract(oneUserMoney); - pingMoney = pingMoney.subtract(oneArtificerMoney); - pingMoney = pingMoney.subtract(shopMoney); - orders1.setShopMoney(shopMoney); - orders1.setOneUserMoney(oneUserMoney); - orders1.setOneArtificerMoney(oneArtificerMoney); - orders1.setPingMoney(pingMoney); + + 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)) { String endTime = orders1.getEndTime(); Date date = DateUtils.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss"); @@ -4893,7 +5184,6 @@ public class OrdersServiceImpl extends ServiceImpl implements @Transactional @Override public Result accomplishOrders(Long ordersId, Integer type, String accomplishLongitude, String accomplishLatitude,String jsFwcn,String jsPjtag,String jsTsbz,String earlyFinishReason) { - reentrantReadWriteLock.writeLock().lock(); log.error("accomplishOrders:4881:"+accomplishLongitude); log.error("accomplishOrders:4881:"+accomplishLatitude); try { @@ -4968,31 +5258,16 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setMoney(orders.getSumArtificerMoney()); userMoneyDetails.setUserId(userEntity.getUserId()); userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); - String value = commonInfoService.findOne(394).getValue(); - if ("是".equals(value)) { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } + if (orders.getShopUserId() != null) { + userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + + ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); } else { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } + userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); } userMoneyDetails.setType(1); userMoneyDetails.setState(2); @@ -5010,73 +5285,75 @@ public class OrdersServiceImpl extends ServiceImpl implements UserEntity user = userService.selectUserById(orders.getUserId()); UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { - userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney11 = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney11.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneUserMoney()); - userMoneyDetails.setUserId(oneUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单完成!"); - userMoneyDetails.setTitle("推广用户收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(5); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(1); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - orders.setOneUserId(oneUser.getUserId()); - orders.setOneUserName(oneUser.getUserName()); + if(orders.getOneUserMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney11 = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney11.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneUserMoney()); + userMoneyDetails.setUserId(oneUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); + userMoneyDetails.setContent("推广用户收益:" + orders.getOneUserMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(5); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(1); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { - userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney12 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney12.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneArtificerMoney()); - userMoneyDetails.setUserId(oneArtificerUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单完成!"); - userMoneyDetails.setTitle("推广师傅收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(6); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(2); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - orders.setOneArtificerUserId(oneArtificerUser.getUserId()); - orders.setOneArtificerUserName(oneArtificerUser.getUserName()); + if(orders.getOneArtificerMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney12 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney12.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneArtificerMoney()); + userMoneyDetails.setUserId(oneArtificerUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); + userMoneyDetails.setContent("推广师傅收益:"+orders.getOneArtificerMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(6); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } if (orders.getShopUserId() != null) { - userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney9 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney9.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getShopMoney()); - userMoneyDetails.setUserId(orders.getShopUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单完成!"); - userMoneyDetails.setTitle("商家收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(7); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(3); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); + if(orders.getShopMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney9 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney9.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getShopMoney()); + userMoneyDetails.setUserId(orders.getShopUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); + userMoneyDetails.setContent("商家收益:"+orders.getShopMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(7); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(3); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } orders.setEndTimes(DateUtils.format(new Date())); orders.setJsFwcn(jsFwcn); @@ -5106,7 +5383,15 @@ public class OrdersServiceImpl extends ServiceImpl implements //消息推送 List msgList = new ArrayList<>(); msgList.add(orders.getOrdersNo()); - MassageType massageType = massageTypeService.getById(ordersMassageList.get(0).getMassageId()); + + MassageType massageType = null; + if(orders.getUserPackageDetailId() !=null){ + UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassageList.get(0).getMassageId()); + massageType = massageTypeService.getById(userPackageDetail.getMassageTypeId()); + }else{ + massageType = massageTypeService.getById(ordersMassageList.get(0).getMassageId()); + } + //超过十个字 则截取 String content = massageType.getTitle(); if (content.length() >= 15) { @@ -5175,14 +5460,11 @@ public class OrdersServiceImpl extends ServiceImpl implements oldOrders.setArtificerRate(orders.getArtificerRate()); accomplishOldOrders(oldOrders,type,jsFwcn,jsPjtag,jsTsbz); } - return Result.success(); } catch (Exception e) { e.printStackTrace(); log.error("完成订单异常:" + e.getMessage(), e); return Result.error("系统错误,请联系管理员"); - } finally { - reentrantReadWriteLock.writeLock().unlock(); } } @@ -5205,30 +5487,16 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setUserId(userEntity.getUserId()); userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); String value = commonInfoService.findOne(394).getValue(); - if ("是".equals(value)) { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } + if (orders.getShopUserId() != null) { + userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + + ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); } else { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } + userMoneyDetails.setContent("支付金额:" + orders.getSumMoney() + ",平台扣除:" + orders.getPingMoney() + + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); } userMoneyDetails.setType(1); userMoneyDetails.setState(2); @@ -5242,73 +5510,75 @@ public class OrdersServiceImpl extends ServiceImpl implements UserEntity user = userService.selectUserById(orders.getUserId()); UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { - userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney11 = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney11.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneUserMoney()); - userMoneyDetails.setUserId(oneUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单完成!"); - userMoneyDetails.setTitle("推广用户收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(5); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(1); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - orders.setOneUserId(oneUser.getUserId()); - orders.setOneUserName(oneUser.getUserName()); + if(orders.getOneUserMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney11 = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney11.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneUserMoney()); + userMoneyDetails.setUserId(oneUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); + userMoneyDetails.setContent("推广用户收益:"+orders.getOneUserMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(5); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(1); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { - userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney12 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney12.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneArtificerMoney()); - userMoneyDetails.setUserId(oneArtificerUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单完成!"); - userMoneyDetails.setTitle("推广师傅收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(6); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(2); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - orders.setOneArtificerUserId(oneArtificerUser.getUserId()); - orders.setOneArtificerUserName(oneArtificerUser.getUserName()); + if(orders.getOneArtificerMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney12 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney12.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneArtificerMoney()); + userMoneyDetails.setUserId(oneArtificerUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); + userMoneyDetails.setContent("推广师傅收益:"+orders.getOneArtificerMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(6); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } if (orders.getShopUserId() != null) { - userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney9 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney9.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getShopMoney()); - userMoneyDetails.setUserId(orders.getShopUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单完成!"); - userMoneyDetails.setTitle("商家收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(7); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(3); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); + if(orders.getShopMoney().compareTo(BigDecimal.ZERO)>0) { + userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney9 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney9.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getShopMoney()); + userMoneyDetails.setUserId(orders.getShopUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单完成!"); + userMoneyDetails.setContent("商家收益:"+orders.getShopMoney()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(7); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(3); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } } orders.setEndTimes(DateUtils.format(new Date())); orders.setJsFwcn(jsFwcn); diff --git a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java index 6c8f24d..710c0f9 100644 --- a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java +++ b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java @@ -73,6 +73,6 @@ public class UserPackageDetailServiceImpl extends ServiceImpl().eq("orders_id", orders1.getOrdersId())); @@ -349,8 +388,15 @@ public class AliPayController { calendar.add(Calendar.MINUTE,duration); 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"); @@ -377,7 +423,6 @@ public class AliPayController { userMoneyDetails.setBlFlag(2); userMoneyDetailsService.save(userMoneyDetails); - } else if (payDetails.getType() == 2) { //缴纳保证金 Double cashDeposit = payDetails.getMoney(); @@ -973,51 +1018,103 @@ public class AliPayController { } orders.setPayWay(6); orders.setPayTime(sdf.format(new Date())); - - BigDecimal pingMoney=orders.getPayMoney(); - 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()); - } + orders.setValueStorageDeduction(BigDecimal.ZERO); Artificer artificer = artificerService.getById(orders.getArtificerId()); + BigDecimal taxiMoney = BigDecimal.ZERO; + if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){ + taxiMoney = orders.getTaxiMoney(); + } + if(taxiMoney==null){ + taxiMoney = BigDecimal.ZERO; + } + BigDecimal artificerPrice = BigDecimal.ZERO; + BigDecimal artificerTaxiPrice = 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); + 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){ + BigDecimal oneArtificerMoney = BigDecimal.ZERO; + if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { orders.setOneArtificerUserId(oneArtificerUser.getUserId()); orders.setOneArtificerUserName(oneArtificerUser.getUserName()); - oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate()); - + oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } - - BigDecimal shopMoney=BigDecimal.ZERO; - if(artificerUser.getConsortiaId()!=null){ + orders.setOneArtificerMoney(oneArtificerMoney); + BigDecimal shopMoney = BigDecimal.ZERO; + if (artificerUser.getConsortiaId() != null) { Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId()); - if(consortia!=null && consortia.getUserId()!=null){ + if (consortia != null && consortia.getUserId() != null) { UserEntity consortiaUser = userService.getById(consortia.getUserId()); - if(consortiaUser!=null){ - shopMoney = pingMoney.multiply(consortia.getRate()); + 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); } } } - pingMoney=pingMoney.subtract(orders.getArtificerMoney()); - pingMoney=pingMoney.subtract(oneUserMoney); - pingMoney=pingMoney.subtract(oneArtificerMoney); - pingMoney=pingMoney.subtract(shopMoney); orders.setShopMoney(shopMoney); - orders.setOneUserMoney(oneUserMoney); - orders.setOneArtificerMoney(oneArtificerMoney); - orders.setPingMoney(pingMoney); - ordersService.updateById(orders); + artificerPrice = artificerPrice.subtract(oneArtificerMoney); + artificerPrice = artificerPrice.subtract(shopMoney); + if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){ + //用户收益加上通行费用 + 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){ String value1 = commonInfoService.findOne(395).getValue(); OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper().eq("orders_id", orders.getOrdersId())); @@ -1025,6 +1122,7 @@ public class AliPayController { Integer duration=massageType.getDuration(); Calendar calendar=Calendar.getInstance(); 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(); String value = commonInfoService.findOne(392).getValue(); @@ -1074,6 +1172,15 @@ public class AliPayController { }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())); @@ -1084,33 +1191,10 @@ public class AliPayController { orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); - pingMoney=orders1.getSumMoney(); - oneUserMoney=BigDecimal.ZERO; - if(oneUser!=null && oneUser.getIsAgency()!=null && oneUser.getIsAgency()==1){ - oneUserMoney=pingMoney.multiply(oneUser.getUserRate()); - } - oneArtificerMoney=BigDecimal.ZERO; - if(oneArtificerUser!=null && oneArtificerUser.getIsAgency()!=null && oneArtificerUser.getIsAgency()==1){ - oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate()); - } - 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){ - shopMoney=pingMoney.multiply(consortia.getRate()); - } - } - } - pingMoney=pingMoney.subtract(orders1.getSumArtificerMoney()); - pingMoney=pingMoney.subtract(oneUserMoney); - pingMoney=pingMoney.subtract(oneArtificerMoney); - pingMoney=pingMoney.subtract(shopMoney); - orders1.setShopMoney(shopMoney); - orders1.setOneUserMoney(oneUserMoney); - orders1.setOneArtificerMoney(oneArtificerMoney); - orders1.setPingMoney(pingMoney); + 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())); @@ -1125,8 +1209,15 @@ public class AliPayController { calendar.add(Calendar.MINUTE,duration); 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"); @@ -1153,7 +1244,6 @@ public class AliPayController { userMoneyDetails.setBlFlag(2); userMoneyDetailsService.save(userMoneyDetails); - } else if (payDetails.getType() == 2) { //缴纳保证金 Double cashDeposit = payDetails.getMoney(); diff --git a/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java b/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java index 4e0c51e..13f1182 100644 --- a/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java +++ b/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java @@ -652,46 +652,100 @@ public class WxServiceImpl implements WxService { } orders.setPayWay(payDetails.getClassify()); orders.setPayTime(sdf.format(new Date())); - - BigDecimal pingMoney=orders.getPayMoney(); - 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()); - } + orders.setValueStorageDeduction(BigDecimal.ZERO); Artificer artificer = artificerService.getById(orders.getArtificerId()); + BigDecimal taxiMoney = BigDecimal.ZERO; + if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){ + taxiMoney = orders.getTaxiMoney(); + } + if(taxiMoney==null){ + taxiMoney = BigDecimal.ZERO; + } + BigDecimal artificerPrice = BigDecimal.ZERO; + BigDecimal artificerTaxiPrice = 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); + 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){ + BigDecimal oneArtificerMoney = BigDecimal.ZERO; + if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { orders.setOneArtificerUserId(oneArtificerUser.getUserId()); orders.setOneArtificerUserName(oneArtificerUser.getUserName()); - oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } - BigDecimal shopMoney=BigDecimal.ZERO; - if(artificerUser.getConsortiaId()!=null){ + orders.setOneArtificerMoney(oneArtificerMoney); + BigDecimal shopMoney = BigDecimal.ZERO; + if (artificerUser.getConsortiaId() != null) { Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId()); - if(consortia!=null && consortia.getUserId()!=null){ + if (consortia != null && consortia.getUserId() != null) { UserEntity consortiaUser = userService.getById(consortia.getUserId()); - if(consortiaUser!=null){ - shopMoney = pingMoney.multiply(consortia.getRate()); + 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); } } } - pingMoney=pingMoney.subtract(orders.getArtificerMoney()); - pingMoney=pingMoney.subtract(oneUserMoney); - pingMoney=pingMoney.subtract(oneArtificerMoney); - pingMoney=pingMoney.subtract(shopMoney); orders.setShopMoney(shopMoney); + artificerPrice = artificerPrice.subtract(oneArtificerMoney); + artificerPrice = artificerPrice.subtract(shopMoney); + if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){ + //用户收益加上通行费用 + 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); - orders.setOneArtificerMoney(oneArtificerMoney); + pingMoney = pingMoney.subtract(oneUserMoney); orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -746,6 +800,15 @@ public class WxServiceImpl implements WxService { }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())); @@ -756,33 +819,10 @@ public class WxServiceImpl implements WxService { orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); - pingMoney=orders1.getSumMoney(); - oneUserMoney=BigDecimal.ZERO; - if(oneUser!=null && oneUser.getIsAgency()!=null && oneUser.getIsAgency()==1){ - oneUserMoney=pingMoney.multiply(oneUser.getUserRate()); - } - oneArtificerMoney=BigDecimal.ZERO; - if(oneArtificerUser!=null && oneArtificerUser.getIsAgency()!=null && oneArtificerUser.getIsAgency()==1){ - oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate()); - } - 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){ - shopMoney=pingMoney.multiply(consortia.getRate()); - } - } - } - pingMoney=pingMoney.subtract(orders1.getSumArtificerMoney()); - pingMoney=pingMoney.subtract(oneUserMoney); - pingMoney=pingMoney.subtract(oneArtificerMoney); - pingMoney=pingMoney.subtract(shopMoney); - orders1.setShopMoney(shopMoney); - orders1.setOneUserMoney(oneUserMoney); - orders1.setOneArtificerMoney(oneArtificerMoney); - orders1.setPingMoney(pingMoney); + 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())); @@ -797,9 +837,15 @@ public class WxServiceImpl implements WxService { calendar.add(Calendar.MINUTE,duration); 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"); @@ -1216,46 +1262,100 @@ public class WxServiceImpl implements WxService { } orders.setPayWay(payDetails.getClassify()); orders.setPayTime(sdf.format(new Date())); - - BigDecimal pingMoney=orders.getPayMoney(); - 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()); - } + orders.setValueStorageDeduction(BigDecimal.ZERO); Artificer artificer = artificerService.getById(orders.getArtificerId()); + BigDecimal taxiMoney = BigDecimal.ZERO; + if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){ + taxiMoney = orders.getTaxiMoney(); + } + if(taxiMoney==null){ + taxiMoney = BigDecimal.ZERO; + } + BigDecimal artificerPrice = BigDecimal.ZERO; + BigDecimal artificerTaxiPrice = 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); + 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){ + BigDecimal oneArtificerMoney = BigDecimal.ZERO; + if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { orders.setOneArtificerUserId(oneArtificerUser.getUserId()); orders.setOneArtificerUserName(oneArtificerUser.getUserName()); - oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate()); + oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } - BigDecimal shopMoney=BigDecimal.ZERO; - if(artificerUser.getConsortiaId()!=null){ + orders.setOneArtificerMoney(oneArtificerMoney); + BigDecimal shopMoney = BigDecimal.ZERO; + if (artificerUser.getConsortiaId() != null) { Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId()); - if(consortia!=null && consortia.getUserId()!=null){ + if (consortia != null && consortia.getUserId() != null) { UserEntity consortiaUser = userService.getById(consortia.getUserId()); - if(consortiaUser!=null){ - shopMoney = pingMoney.multiply(consortia.getRate()); + 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); } } } - pingMoney=pingMoney.subtract(orders.getArtificerMoney()); - pingMoney=pingMoney.subtract(oneUserMoney); - pingMoney=pingMoney.subtract(oneArtificerMoney); - pingMoney=pingMoney.subtract(shopMoney); orders.setShopMoney(shopMoney); + artificerPrice = artificerPrice.subtract(oneArtificerMoney); + artificerPrice = artificerPrice.subtract(shopMoney); + if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){ + //用户收益加上通行费用 + 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); - orders.setOneArtificerMoney(oneArtificerMoney); + pingMoney = pingMoney.subtract(oneUserMoney); orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -1310,6 +1410,15 @@ public class WxServiceImpl implements WxService { }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())); @@ -1320,33 +1429,10 @@ public class WxServiceImpl implements WxService { orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); - pingMoney=orders1.getSumMoney(); - oneUserMoney=BigDecimal.ZERO; - if(oneUser!=null && oneUser.getIsAgency()!=null && oneUser.getIsAgency()==1){ - oneUserMoney=pingMoney.multiply(oneUser.getUserRate()); - } - oneArtificerMoney=BigDecimal.ZERO; - if(oneArtificerUser!=null && oneArtificerUser.getIsAgency()!=null && oneArtificerUser.getIsAgency()==1){ - oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate()); - } - 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){ - shopMoney=pingMoney.multiply(consortia.getRate()); - } - } - } - pingMoney=pingMoney.subtract(orders1.getSumArtificerMoney()); - pingMoney=pingMoney.subtract(oneUserMoney); - pingMoney=pingMoney.subtract(oneArtificerMoney); - pingMoney=pingMoney.subtract(shopMoney); - orders1.setShopMoney(shopMoney); - orders1.setOneUserMoney(oneUserMoney); - orders1.setOneArtificerMoney(oneArtificerMoney); - orders1.setPingMoney(pingMoney); + 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())); @@ -1361,9 +1447,15 @@ public class WxServiceImpl implements WxService { calendar.add(Calendar.MINUTE,duration); 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"); diff --git a/src/main/resources/mapper/artificer/OrdersDao.xml b/src/main/resources/mapper/artificer/OrdersDao.xml index 932dbae..f05b558 100644 --- a/src/main/resources/mapper/artificer/OrdersDao.xml +++ b/src/main/resources/mapper/artificer/OrdersDao.xml @@ -663,12 +663,12 @@ and o.old_orders_id is not null and o.status != 11 - and date_format(o.serve_time,'%Y-%m-%d %H:%i') >= date_format(DATE_ADD(now(), INTERVAL -8 HOUR),'%Y-%m-%d %H:%i') - and date_format(o.serve_time,'%Y-%m-%d %H:%i') <= date_format(DATE_ADD(now(), INTERVAL 8 HOUR),'%Y-%m-%d %H:%i') + 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=2 + and o.status in (2,6,7,8,9) and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') @@ -715,10 +715,12 @@ where old_orders_id is not null ) - and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status in (2,3,5,6,7,8,9) + 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=2 + and o.status in (2,6,7,8,9) and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')