From c815dd365ec5a17a96d68a86dba1529b5a88041d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Wed, 7 Aug 2024 22:00:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=94=80=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqx/modules/artificer/entity/Orders.java | 28 +- .../service/impl/OrdersServiceImpl.java | 1195 +++++++++++++++-- .../fxy/controller/app/AppFxyController.java | 4 +- .../pay/controller/app/AliPayController.java | 467 ++++++- .../pay/service/impl/WxServiceImpl.java | 466 ++++++- 5 files changed, 1974 insertions(+), 186 deletions(-) diff --git a/src/main/java/com/sqx/modules/artificer/entity/Orders.java b/src/main/java/com/sqx/modules/artificer/entity/Orders.java index bc7d167..33d92cc 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Orders.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Orders.java @@ -608,10 +608,6 @@ public class Orders implements Serializable { @TableField(exist = false) private String zxsc; - /** - * 经纪人分佣 - */ - private BigDecimal jjrMoney; /** * 经纪人ID */ @@ -621,9 +617,13 @@ public class Orders implements Serializable { */ private String jjrUserName; /** - * 一级分销员分佣 + * 经纪人分佣 */ - private BigDecimal fxyOneMoney; + private BigDecimal jjrMoney; + /** + * 经纪人分佣技师承担金额 + */ + private BigDecimal jjrArtificerDeductMoney; /** * 一级分销员ID */ @@ -633,9 +633,13 @@ public class Orders implements Serializable { */ private String fxyOneUserName; /** - * 二级分销员分佣 + * 一级分销员分佣 */ - private BigDecimal fxyTwoMoney; + private BigDecimal fxyOneMoney; + /** + * 一级分销员分佣技师承担金额 + */ + private BigDecimal fxyOneArtificerDeductMoney; /** * 二级分销员ID */ @@ -644,6 +648,14 @@ public class Orders implements Serializable { * 二级分销员姓名 */ private String fxyTwoUserName; + /** + * 二级分销员分佣 + */ + private BigDecimal fxyTwoMoney; + /** + * 二级分销员分佣技师承担金额 + */ + private BigDecimal fxyTwoArtificerDeductMoney; public Orders() {} } 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 2d105f8..28493bb 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 @@ -32,6 +32,8 @@ import com.sqx.modules.artificer.entity.*; import com.sqx.modules.artificer.service.*; import com.sqx.modules.bl.commission.fxy.entity.FxyApply; import com.sqx.modules.bl.commission.fxy.entity.FxyConfig; +import com.sqx.modules.bl.commission.fxy.service.FxyApplyService; +import com.sqx.modules.bl.commission.fxy.service.FxyConfigService; import com.sqx.modules.bl.order.entity.UserPackage; import com.sqx.modules.bl.order.entity.UserPackageOrder; import com.sqx.modules.bl.order.service.UserPackageOrderService; @@ -156,12 +158,14 @@ public class OrdersServiceImpl extends ServiceImpl implements private MaterialArtificerMapper materialArtificerMapper; @Autowired private MaterialMapper materialMapper; - @Autowired public CommonInfoDao commonInfoDao; - @Autowired private TravelConfService travelConfService; + @Autowired + private FxyApplyService fxyApplyService; + @Autowired + private FxyConfigService fxyConfigService; private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true); @@ -1325,12 +1329,12 @@ public class OrdersServiceImpl extends ServiceImpl implements UserEntity jjrUser = userService.queryByInvitationCode(artificerUser.getBlJjrCode()); BigDecimal jjrMoney = BigDecimal.ZERO; if (jjrUser != null) { - orders.setJjrUserId(jjrUser.getUserId()); - orders.setJjrUserName(jjrUser.getUserName()); + ordersOld.setJjrUserId(jjrUser.getUserId()); + ordersOld.setJjrUserName(jjrUser.getUserName()); jjrMoney = jjrMoney.multiply(jjrUser.getBlJjrRate()); jjrMoney = jjrMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } - orders.setJjrMoney(jjrMoney); + ordersOld.setJjrMoney(jjrMoney); BigDecimal shopMoney = BigDecimal.ZERO; if (artificerUser.getConsortiaId() != null) { Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId()); @@ -1346,20 +1350,136 @@ public class OrdersServiceImpl extends ServiceImpl implements } } ordersOld.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// } +// ordersOld.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + ordersOld.setFxyOneUserId(fxyOneUser.getUserId()); + ordersOld.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + ordersOld.setFxyTwoUserId(fxyTwoUser.getUserId()); + ordersOld.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + ordersOld.setFxyTwoMoney(BigDecimal.ZERO); + ordersOld.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + ordersOld.setFxyOneMoney(BigDecimal.ZERO); + ordersOld.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + ordersOld.setFxyTwoMoney(BigDecimal.ZERO); + ordersOld.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - ordersOld.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(ordersOld.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(ordersOld.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 ordersOld.setArtificerMoney(artificerPrice); ordersOld.setSumArtificerMoney(artificerPrice); @@ -1369,7 +1489,9 @@ public class OrdersServiceImpl extends ServiceImpl implements pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(ordersOld.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(ordersOld.getFxyTwoMoney());//减掉二级分销商分佣 ordersOld.setPingMoney(pingMoney); baseMapper.updateById(ordersOld);//原单暂变成挂单状态 @@ -1790,8 +1912,8 @@ public class OrdersServiceImpl extends ServiceImpl implements if (chajia.compareTo(BigDecimal.ZERO) == 0) { orders.setPayMoney(oldOrders.getPayMoney()); - BigDecimal artificerPrice = orders.getPayMoney().subtract(taxiMoney); - artificerPrice = artificerPrice.multiply(artificer.getRate()); + BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney); + BigDecimal artificerPrice = subtract.multiply(artificer.getRate()); artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP); if(oldOrders.getPayWay().equals(5)){ @@ -1816,7 +1938,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if (jjrUser != null) { orders.setJjrUserId(jjrUser.getUserId()); orders.setJjrUserName(jjrUser.getUserName()); - jjrMoney = jjrMoney.multiply(jjrUser.getBlJjrRate()); + jjrMoney = artificerPrice.multiply(jjrUser.getBlJjrRate()); jjrMoney = jjrMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } orders.setJjrMoney(jjrMoney); @@ -1835,20 +1957,136 @@ public class OrdersServiceImpl extends ServiceImpl implements } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 orders.setArtificerMoney(artificerPrice); orders.setSumArtificerMoney(artificerPrice); @@ -1858,7 +2096,9 @@ public class OrdersServiceImpl extends ServiceImpl implements pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); orders.setStatus(9); //总差价不变,则修改原单据 @@ -1921,6 +2161,7 @@ public class OrdersServiceImpl extends ServiceImpl implements //计算项目收益 //计算技师项目提成金额 + BigDecimal subtract = xmchajia; artificerPrice = xmchajia.multiply(artificer.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP); orders.setProjectBenefits(artificerPrice); artificerPrice = artificerPrice.add(artificerTaxiPrice); @@ -2047,20 +2288,136 @@ public class OrdersServiceImpl extends ServiceImpl implements } } ordersOld.setShopMoney(shopMoney); - 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 = oldArtificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// 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 = oldArtificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// } +// ordersOld.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + ordersOld.setFxyOneUserId(fxyOneUser.getUserId()); + ordersOld.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + ordersOld.setFxyTwoUserId(fxyTwoUser.getUserId()); + ordersOld.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + ordersOld.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + ordersOld.setFxyTwoMoney(BigDecimal.ZERO); + ordersOld.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + ordersOld.setFxyOneMoney(BigDecimal.ZERO); + ordersOld.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + ordersOld.setFxyTwoMoney(BigDecimal.ZERO); + ordersOld.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - ordersOld.setOneUserMoney(oneUserMoney); + // oldArtificerPrice = oldArtificerPrice.subtract(oneArtificerMoney); oldArtificerPrice = oldArtificerPrice.subtract(jjrMoney); oldArtificerPrice = oldArtificerPrice.subtract(shopMoney); - oldArtificerPrice = oldArtificerPrice.subtract(oneUserMoney); +// oldArtificerPrice = oldArtificerPrice.subtract(oneUserMoney); + oldArtificerPrice = oldArtificerPrice.subtract(ordersOld.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + oldArtificerPrice = oldArtificerPrice.subtract(ordersOld.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 ordersOld.setArtificerMoney(oldArtificerPrice); ordersOld.setSumArtificerMoney(oldArtificerPrice); @@ -2070,7 +2427,9 @@ public class OrdersServiceImpl extends ServiceImpl implements pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(oldOrders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(oldOrders.getFxyTwoMoney());//减掉二级分销商分佣 ordersOld.setPingMoney(pingMoney); baseMapper.updateById(ordersOld);//原单暂变成挂单状态 return Result.success().put("data", orders); @@ -2403,6 +2762,7 @@ public class OrdersServiceImpl extends ServiceImpl implements Artificer artificer = artificerService.getById(orders.getArtificerId()); BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 BigDecimal pingTaxiMoney = BigDecimal.ZERO; + BigDecimal subtract = rate; BigDecimal artificerMoney = rate.multiply(artificer.getRate()).setScale(2,BigDecimal.ROUND_HALF_UP); //技师获得扣款提成 orders.setProjectBenefits(artificerMoney); BigDecimal pingMoney = massageMoneyDeduction.subtract(artificerMoney);//平台获得项目扣款 @@ -2441,20 +2801,136 @@ public class OrdersServiceImpl extends ServiceImpl implements } } orders.setShopMoney(shopMoney); - 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 = artificerMoney.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// 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 = artificerMoney.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerMoney; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerMoney = artificerMoney.subtract(oneArtificerMoney); artificerMoney = artificerMoney.subtract(jjrMoney); artificerMoney = artificerMoney.subtract(shopMoney); - artificerMoney = artificerMoney.subtract(oneUserMoney); +// artificerMoney = artificerMoney.subtract(oneUserMoney); + artificerMoney = artificerMoney.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerMoney = artificerMoney.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 artificerMoney = artificerMoney.add(artificerTaxiMoney); orders.setArtificerMoney(artificerMoney); @@ -2465,7 +2941,9 @@ public class OrdersServiceImpl extends ServiceImpl implements // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); pingMoney = pingMoney.subtract(shopMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 pingMoney = pingMoney.setScale(2, BigDecimal.ROUND_HALF_UP); orders.setPingMoney(pingMoney); @@ -2481,14 +2959,15 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setMoney(orders.getSumArtificerMoney()); userMoneyDetails.setUserId(artificerUser.getUserId()); userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + BigDecimal fxyArtificerDeductMoney = orders.getFxyOneArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney()); if (orders.getShopUserId() != null) { userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",分销员扣除:" + orders.getOneUserMoney() + ",经纪人扣除:" + orders.getJjrMoney() + + ",商家扣除:" + orders.getShopMoney() + ",分销员扣除:" + fxyArtificerDeductMoney + ",经纪人扣除:" + orders.getJjrMoney() + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + ",到账总金额:" + orders.getSumArtificerMoney()); } else { userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",分销员扣除:" + orders.getOneUserMoney() + ",经纪人扣除:" + orders.getJjrMoney() + + ",分销员扣除:" + fxyArtificerDeductMoney + ",经纪人扣除:" + orders.getJjrMoney() + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + ",到账总金额:" + orders.getSumArtificerMoney()); } @@ -2499,20 +2978,43 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setBlFlag(1); userMoneyDetailsService.save(userMoneyDetails); - if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1 && orders.getOneUserMoney().compareTo(BigDecimal.ZERO) !=0) { - if(orders.getOneUserMoney().compareTo(BigDecimal.ZERO)>0){ - userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); + if (orders.getFxyOneUserId() != null) { + if(orders.getFxyOneMoney().compareTo(BigDecimal.ZERO)>0){ + userMoneyService.updateMoney(1, orders.getFxyOneUserId(), orders.getFxyOneMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); //查询用户当前余额 - UserMoney userNowMoney3 = userMoneyService.selectUserMoneyByUserId(oneUser.getUserId()); + UserMoney userNowMoney3 = userMoneyService.selectUserMoneyByUserId(orders.getFxyOneUserId()); //插入余额 userMoneyDetails.setBalance(userNowMoney3.getMoney()); //插入操作类型为已操作用户余额 userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneUserMoney()); - userMoneyDetails.setUserId(oneUser.getUserId()); + userMoneyDetails.setMoney(orders.getFxyOneMoney()); + userMoneyDetails.setUserId(orders.getFxyOneUserId()); userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setContent("分销员收益:"+orders.getOneUserMoney()); + userMoneyDetails.setContent("一级分销员收益:"+orders.getFxyOneUserName()); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(5); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } + } + + if (orders.getFxyTwoUserId() != null) { + if(orders.getFxyTwoMoney().compareTo(BigDecimal.ZERO)>0){ + userMoneyService.updateMoney(1, orders.getFxyTwoUserId(), orders.getFxyTwoMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney3 = userMoneyService.selectUserMoneyByUserId(orders.getFxyTwoUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney3.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getFxyTwoMoney()); + userMoneyDetails.setUserId(orders.getFxyTwoUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setContent("二级分销员收益:"+orders.getFxyTwoUserName()); userMoneyDetails.setType(1); userMoneyDetails.setState(2); userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); @@ -2646,11 +3148,16 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setProjectBenefits(BigDecimal.ZERO); orders.setArtificerTaxiMoney(BigDecimal.ZERO); orders.setPingTaxiMoney(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); +// orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setJjrMoney(BigDecimal.ZERO); orders.setShopMoney(BigDecimal.ZERO); orders.setArtificerMoney(BigDecimal.ZERO); orders.setSumArtificerMoney(BigDecimal.ZERO); - orders.setOneUserMoney(BigDecimal.ZERO); +// orders.setOneUserMoney(BigDecimal.ZERO); + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); orders.setPingMoney(BigDecimal.ZERO); orders.setJjrMoney(BigDecimal.ZERO); } @@ -2791,11 +3298,16 @@ public class OrdersServiceImpl extends ServiceImpl implements BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 if(sumMoney.compareTo(BigDecimal.ZERO)>0){ orders.setProjectBenefits(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); +// orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setJjrMoney(BigDecimal.ZERO); orders.setShopMoney(BigDecimal.ZERO); orders.setArtificerMoney(BigDecimal.ZERO); orders.setSumArtificerMoney(BigDecimal.ZERO); - orders.setOneUserMoney(BigDecimal.ZERO); +// orders.setOneUserMoney(BigDecimal.ZERO); + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); orders.setPingMoney(BigDecimal.ZERO); orders.setJjrMoney(BigDecimal.ZERO); @@ -2819,9 +3331,8 @@ public class OrdersServiceImpl extends ServiceImpl implements if (jjrUser != null) { orders.setJjrUserId(jjrUser.getUserId()); orders.setJjrUserName(jjrUser.getUserName()); - jjrMoney = jjrMoney.multiply(jjrUser.getBlJjrRate()); - jjrMoney = jjrMoney.setScale(2, BigDecimal.ROUND_HALF_UP); } + orders.setJjrMoney(jjrMoney); BigDecimal shopMoney = BigDecimal.ZERO; if (artificerUser.getConsortiaId() != null) { @@ -2836,6 +3347,79 @@ public class OrdersServiceImpl extends ServiceImpl implements } } orders.setShopMoney(shopMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + orders.setArtificerMoney(artificerTaxiMoney); orders.setSumArtificerMoney(artificerTaxiMoney); @@ -2867,14 +3451,15 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setMoney(orders.getSumArtificerMoney()); userMoneyDetails.setUserId(artificerUser.getUserId()); userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + BigDecimal fxyArtificerDeductMoney = orders.getFxyOneArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney()); if (orders.getShopUserId() != null) { userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",分销员扣除:" + orders.getOneUserMoney() + ",经纪人扣除:" + orders.getJjrMoney() + + ",商家扣除:" + orders.getShopMoney() + ",分销员扣除:" + fxyArtificerDeductMoney + ",经纪人扣除:" + orders.getJjrMoney() + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + ",到账总金额:" + orders.getSumArtificerMoney()); } else { userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",分销员扣除:" + orders.getOneUserMoney() + ",经纪人扣除:" + orders.getJjrMoney() + + ",分销员扣除:" + fxyArtificerDeductMoney + ",经纪人扣除:" + orders.getJjrMoney() + ",车费:" + orders.getTaxiMoney() + ",平台扣除车费:" + orders.getPingTaxiMoney() + ",到账车费:" + orders.getArtificerTaxiMoney() + ",到账总金额:" + orders.getSumArtificerMoney()); } @@ -2958,11 +3543,16 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setProjectBenefits(BigDecimal.ZERO); orders.setArtificerTaxiMoney(BigDecimal.ZERO); orders.setPingTaxiMoney(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); +// orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setJjrMoney(BigDecimal.ZERO); orders.setShopMoney(BigDecimal.ZERO); orders.setArtificerMoney(BigDecimal.ZERO); orders.setSumArtificerMoney(BigDecimal.ZERO); - orders.setOneUserMoney(BigDecimal.ZERO); +// orders.setOneUserMoney(BigDecimal.ZERO); + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); orders.setPingMoney(BigDecimal.ZERO); orders.setJjrMoney(BigDecimal.ZERO); } @@ -3958,15 +4548,22 @@ public class OrdersServiceImpl extends ServiceImpl implements } } + orders.setProjectBenefits(BigDecimal.ZERO); + orders.setArtificerTaxiMoney(BigDecimal.ZERO); + orders.setPingTaxiMoney(BigDecimal.ZERO); +// orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setJjrMoney(BigDecimal.ZERO); orders.setShopMoney(BigDecimal.ZERO); orders.setArtificerMoney(BigDecimal.ZERO); orders.setSumArtificerMoney(BigDecimal.ZERO); - orders.setOneUserMoney(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); +// orders.setOneUserMoney(BigDecimal.ZERO); + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); orders.setPingMoney(BigDecimal.ZERO); - orders.setArtificerTaxiMoney(BigDecimal.ZERO); - orders.setPingTaxiMoney(BigDecimal.ZERO); orders.setJjrMoney(BigDecimal.ZERO); + orders.setStatus(4); baseMapper.updateById(orders); //删除技师占用时间表数据 @@ -4667,20 +5264,136 @@ public class OrdersServiceImpl extends ServiceImpl implements } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ @@ -4696,7 +5409,9 @@ public class OrdersServiceImpl extends ServiceImpl implements // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); pingMoney = pingMoney.subtract(shopMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); if(orders.getIsSupplement() != null){ @@ -4752,7 +5467,11 @@ public class OrdersServiceImpl extends ServiceImpl implements // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if (orders1.getStatus().equals(6)) { @@ -5056,20 +5775,137 @@ public class OrdersServiceImpl extends ServiceImpl implements } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 + if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ @@ -5085,7 +5921,9 @@ public class OrdersServiceImpl extends ServiceImpl implements pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); if(orders.getIsSupplement() != null){ @@ -5124,10 +5962,16 @@ public class OrdersServiceImpl extends ServiceImpl implements orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); } else { orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); @@ -5135,7 +5979,11 @@ public class OrdersServiceImpl extends ServiceImpl implements // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if (orders1.getStatus().equals(6)) { @@ -6687,10 +7535,151 @@ public class OrdersServiceImpl extends ServiceImpl implements fc.setFxmLimit(2); fc.setFxmLimitDays(100); -// FxyApply fa = new FxyApply(); -// fa.setUserId(); -// fa.setStatus(); -// fa.setApproveTime(); + FxyApply faOne = new FxyApply(); + faOne.setUserId(630L); + faOne.setStatus(1); + faOne.setApproveTime("2024-08-06 20:04:47"); + + UserEntity fxyOneUser = new UserEntity(); + fxyOneUser.setUserId(630L); + fxyOneUser.setUserName("技师甲"); + fxyOneUser.setBlIsFxy(1); + fxyOneUser.setBlFxyLevel(1); + + FxyApply faTwo = new FxyApply(); + faTwo.setUserId(1L); + faTwo.setStatus(1); + faTwo.setApproveTime("2024-08-06 17:58:09"); + + UserEntity fxyTwoUser = new UserEntity(); + fxyTwoUser.setUserId(1L); + fxyTwoUser.setUserName("官方"); + fxyTwoUser.setBlIsFxy(1); + fxyTwoUser.setBlFxyLevel(2); + + Orders orders = new Orders(); + + BigDecimal subtract = new BigDecimal(200);//项目金额 + BigDecimal artificerPrice = new BigDecimal(150);//技师金额 + +// FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ +// UserEntity user = userService.selectUserById(orders.getUserId()); +// UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); +// FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal rate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + rate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + rate = mostRate; + } + }else{ + rate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + rate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(rate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ +// UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); +// FxyApply faTwo = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + rate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + rate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + rate = mostRate; + } + } else { + rate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + rate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(rate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney()).subtract(orders.getFxyTwoArtificerDeductMoney()); + + System.out.println(orders.getFxyOneMoney()); + System.out.println(orders.getFxyTwoMoney()); + System.out.println(orders.getFxyOneArtificerDeductMoney()); + System.out.println(orders.getFxyTwoArtificerDeductMoney()); + System.out.println(artificerPrice); } diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/controller/app/AppFxyController.java b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/app/AppFxyController.java index 261f6fa..febdf39 100644 --- a/src/main/java/com/sqx/modules/bl/commission/fxy/controller/app/AppFxyController.java +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/app/AppFxyController.java @@ -24,10 +24,10 @@ public class AppFxyController { private FxyApplyService service; @Autowired - private FxyDataService dataService; + private FxyConfigService configService; @Autowired - private FxyConfigService configService; + private FxyDataService dataService; @PostMapping("/fxyConfig") @ApiOperation("获取分销员配置") diff --git a/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java b/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java index c97538f..3673d7c 100644 --- a/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java +++ b/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java @@ -29,7 +29,9 @@ import com.sqx.modules.artificer.dao.UserRechargeDao; import com.sqx.modules.artificer.entity.*; import com.sqx.modules.artificer.service.*; import com.sqx.modules.bl.commission.fxy.entity.FxyApply; +import com.sqx.modules.bl.commission.fxy.entity.FxyConfig; import com.sqx.modules.bl.commission.fxy.service.FxyApplyService; +import com.sqx.modules.bl.commission.fxy.service.FxyConfigService; import com.sqx.modules.bl.massage.entity.MassagePackage; import com.sqx.modules.bl.massage.service.MassagePackageService; import com.sqx.modules.bl.order.dao.UserPackageOrderDao; @@ -153,10 +155,11 @@ public class AliPayController { private BlSadJobService blSadJobService; @Autowired private FxyApplyService fxyApplyService; + @Autowired + private FxyConfigService fxyConfigService; private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - /** * 获取总花费时间 * @param duration 服务时长 @@ -672,20 +675,136 @@ public class AliPayController { } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ //用户收益加上通行费用 @@ -700,7 +819,9 @@ public class AliPayController { pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -774,9 +895,17 @@ public class AliPayController { if(orders1.getAddMoney()!=null){ orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); }else{ orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); + orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); @@ -784,7 +913,11 @@ public class AliPayController { // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if(orders1.getStatus().equals(6)){ @@ -1620,20 +1753,136 @@ public class AliPayController { } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ //用户收益加上通行费用 @@ -1648,7 +1897,9 @@ public class AliPayController { pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -1680,9 +1931,17 @@ public class AliPayController { if(orders1.getAddMoney()!=null){ orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); }else{ orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); + orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); @@ -1690,7 +1949,11 @@ public class AliPayController { // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if(orders1.getStatus().equals(6)){ @@ -2055,20 +2318,136 @@ public class AliPayController { } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ //用户收益加上通行费用 @@ -2083,7 +2462,9 @@ public class AliPayController { pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -2157,9 +2538,17 @@ public class AliPayController { if(orders1.getAddMoney()!=null){ orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); }else{ orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); + orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); @@ -2167,7 +2556,11 @@ public class AliPayController { // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if(orders1.getStatus().equals(6)){ 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 4d479b9..6a301e2 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 @@ -19,7 +19,9 @@ import com.sqx.modules.artificer.dao.UserRechargeDao; import com.sqx.modules.artificer.entity.*; import com.sqx.modules.artificer.service.*; import com.sqx.modules.bl.commission.fxy.entity.FxyApply; +import com.sqx.modules.bl.commission.fxy.entity.FxyConfig; import com.sqx.modules.bl.commission.fxy.service.FxyApplyService; +import com.sqx.modules.bl.commission.fxy.service.FxyConfigService; import com.sqx.modules.bl.massage.entity.MassagePackage; import com.sqx.modules.bl.massage.service.MassagePackageService; import com.sqx.modules.bl.order.dao.UserPackageOrderDao; @@ -145,6 +147,8 @@ public class WxServiceImpl implements WxService { private BlSadJobService blSadJobService; @Autowired private FxyApplyService fxyApplyService; + @Autowired + private FxyConfigService fxyConfigService; private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -915,20 +919,136 @@ public class WxServiceImpl implements WxService { } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ //用户收益加上通行费用 @@ -943,7 +1063,9 @@ public class WxServiceImpl implements WxService { pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -975,9 +1097,17 @@ public class WxServiceImpl implements WxService { if(orders1.getAddMoney()!=null){ orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); }else{ orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); + orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); @@ -985,7 +1115,11 @@ public class WxServiceImpl implements WxService { // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if(orders1.getStatus().equals(6)){ @@ -1551,20 +1685,136 @@ public class WxServiceImpl implements WxService { } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ //用户收益加上通行费用 @@ -1579,7 +1829,9 @@ public class WxServiceImpl implements WxService { pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -1647,9 +1899,17 @@ public class WxServiceImpl implements WxService { if(orders1.getAddMoney()!=null){ orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); }else{ orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); + orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); @@ -1657,7 +1917,11 @@ public class WxServiceImpl implements WxService { // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if(orders1.getStatus().equals(6)){ @@ -2406,20 +2670,136 @@ public class WxServiceImpl implements WxService { } } orders.setShopMoney(shopMoney); - 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 = artificerPrice.multiply(oneUser.getUserRate()); - oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// 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 = artificerPrice.multiply(oneUser.getUserRate()); +// oneUserMoney = oneUserMoney.setScale(0, BigDecimal.ROUND_HALF_UP); +// } +// orders.setOneUserMoney(oneUserMoney); + + //分销商分佣 + FxyConfig fc = fxyConfigService.getOne(new QueryWrapper()); + if(fc.getIsOpen().equals(1)){ + UserEntity user = userService.selectUserById(orders.getUserId()); + UserEntity fxyOneUser = userService.queryByInvitationCode(user.getBlFxyCode()); + FxyApply faOne = fxyApplyService.findByUserId(fxyOneUser.getUserId()); + if(faOne.getStatus().equals(1)){ + if(fxyOneUser!=null && fxyOneUser.getBlIsFxy() !=null && fxyOneUser.getBlIsFxy() ==1){ + boolean isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faOne.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy){ + orders.setFxyOneUserId(fxyOneUser.getUserId()); + orders.setFxyOneUserName(fxyOneUser.getUserName()); + BigDecimal fxyMoney = BigDecimal.ZERO; + if(fc.getType().equals(1)){ + fxyMoney = artificerPrice; + } + if(fc.getType().equals(2)){ + fxyMoney = subtract; + } + BigDecimal artificerRate = fc.getArtificerRate(); + BigDecimal mostRate = fc.getMostRate(); + BigDecimal oneRate = fc.getOneRate(); + BigDecimal oneRecommendRate = fc.getOneRecommendRate(); + BigDecimal fxyRate = BigDecimal.ZERO; + if(oneRate == null || oneRate.compareTo(BigDecimal.ZERO) == 0){ + fxyRate = oneRecommendRate; + if(oneRecommendRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + }else{ + fxyRate = oneRate; + if(oneRate.compareTo(mostRate)> 0){ + fxyRate = mostRate; + } + } + BigDecimal fxyOneMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneMoney(fxyOneMoney); + BigDecimal fxyOneArtificerDeductMoney = fxyOneMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); + orders.setFxyOneArtificerDeductMoney(fxyOneArtificerDeductMoney); + if(fxyOneUser.getBlFxyLevel().equals(1)){ + UserEntity fxyTwoUser = userService.queryByInvitationCode(fxyOneUser.getBlFxyCode()); + FxyApply faTwo = fxyApplyService.findByUserId(fxyTwoUser.getUserId()); + if(faTwo.getStatus().equals(1)){ + if(fxyTwoUser!=null && fxyTwoUser.getBlIsFxy() !=null && fxyTwoUser.getBlIsFxy() ==1){ + isCanFxyFy = false; + if(fc.getFxmLimit().equals(2)){ + int fxmLimitDays = fc.getFxmLimitDays(); + String approveTime = faTwo.getApproveTime(); + Date approveDate = DateUtils.stringToDate(approveTime,DateUtils.DATE_TIME_PATTERN); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(approveDate); + calendar.add(Calendar.DAY_OF_MONTH, fxmLimitDays); + approveDate = calendar.getTime(); + Date current = new Date(); + if(approveDate.getTime() > current.getTime()){ + isCanFxyFy = true; + } + }else{ + isCanFxyFy = true; + } + if(isCanFxyFy) { + orders.setFxyTwoUserId(fxyTwoUser.getUserId()); + orders.setFxyTwoUserName(fxyTwoUser.getUserName()); + BigDecimal twoRate = fc.getTwoRate(); + BigDecimal twoRecommendRate = fc.getTwoRecommendRate(); + fxyRate = BigDecimal.ZERO; + if (twoRate == null || twoRate.compareTo(BigDecimal.ZERO) == 0) { + fxyRate = twoRecommendRate; + if (twoRecommendRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } else { + fxyRate = twoRate; + if (twoRate.compareTo(mostRate) > 0) { + fxyRate = mostRate; + } + } + BigDecimal fxyTwoMoney = fxyMoney.multiply(fxyRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoMoney(fxyTwoMoney); + BigDecimal fxyTwoArtificerDeductMoney = fxyTwoMoney.multiply(artificerRate).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); + orders.setFxyTwoArtificerDeductMoney(fxyTwoArtificerDeductMoney); + } + } + } + }else{ + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); + } + } + } + } + }else{ + orders.setFxyOneMoney(BigDecimal.ZERO); + orders.setFxyOneArtificerDeductMoney(BigDecimal.ZERO); + orders.setFxyTwoMoney(BigDecimal.ZERO); + orders.setFxyTwoArtificerDeductMoney(BigDecimal.ZERO); } - orders.setOneUserMoney(oneUserMoney); + // artificerPrice = artificerPrice.subtract(oneArtificerMoney); artificerPrice = artificerPrice.subtract(jjrMoney); artificerPrice = artificerPrice.subtract(shopMoney); - artificerPrice = artificerPrice.subtract(oneUserMoney); +// artificerPrice = artificerPrice.subtract(oneUserMoney); + artificerPrice = artificerPrice.subtract(orders.getFxyOneArtificerDeductMoney());//减掉一级分销商分佣技师承担 + artificerPrice = artificerPrice.subtract(orders.getFxyTwoArtificerDeductMoney());//减掉二级分销商分佣技师承担 if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){ }else{ //用户收益加上通行费用 @@ -2434,7 +2814,9 @@ public class WxServiceImpl implements WxService { pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney); pingMoney = pingMoney.subtract(jjrMoney); - pingMoney = pingMoney.subtract(oneUserMoney); +// pingMoney = pingMoney.subtract(oneUserMoney); + pingMoney = pingMoney.subtract(orders.getFxyOneMoney());//减掉一级分销商分佣 + pingMoney = pingMoney.subtract(orders.getFxyTwoMoney());//减掉二级分销商分佣 orders.setPingMoney(pingMoney); ordersService.updateById(orders); @@ -2502,9 +2884,17 @@ public class WxServiceImpl implements WxService { if(orders1.getAddMoney()!=null){ orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney())); orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney())); + orders1.setAddProjectBenefits(orders1.getProjectBenefits().add(orders.getProjectBenefits())); + orders1.setAddPriceMarkup(orders1.getAddPriceMarkup().add(orders.getPriceMarkup())); + orders1.setAddTechnicianMoney(orders1.getAddTechnicianMoney().add(orders.getTechnicianMoney())); + orders1.setAddVipReductionMoney(orders1.getAddVipReductionMoney().add(orders.getVipReductionMoney())); }else{ orders1.setAddMoney(orders.getPayMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney()); + orders1.setAddProjectBenefits(orders.getProjectBenefits()); + orders1.setAddPriceMarkup(orders.getPriceMarkup()); + orders1.setAddTechnicianMoney(orders.getTechnicianMoney()); + orders1.setAddVipReductionMoney(orders.getVipReductionMoney()); } orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney())); @@ -2512,7 +2902,11 @@ public class WxServiceImpl implements WxService { // orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney())); orders1.setJjrMoney(orders1.getJjrMoney().add(orders.getJjrMoney())); orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney())); - orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); +// orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney())); + orders1.setFxyOneMoney(orders1.getFxyOneMoney().add(orders.getFxyOneMoney())); + orders1.setFxyTwoMoney(orders1.getFxyTwoMoney().add(orders.getFxyTwoMoney())); + orders1.setFxyOneArtificerDeductMoney(orders1.getFxyOneArtificerDeductMoney().add(orders.getFxyOneArtificerDeductMoney())); + orders1.setFxyTwoArtificerDeductMoney(orders1.getFxyTwoArtificerDeductMoney().add(orders.getFxyTwoArtificerDeductMoney())); orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney())); if(orders1.getStatus().equals(6)){