From d02ea504ec952cdc920be3f7ddb6b79dccd24f56 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期日, 30 七月 2023 05:03:09 +0800 Subject: [PATCH] 添加企业流水记录 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 94 ++++++++++++++++++++++++++++++----------------- 1 files changed, 60 insertions(+), 34 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java index 60e3ef1..34b1756 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java @@ -114,6 +114,9 @@ @Autowired private IOrderPositionService orderPositionService; + @Autowired + private ICompanyFundFlowService companyFundFlowService; + @Value("${callbackPath}") private String callbackPath;//支付回调网关地址 @@ -247,14 +250,14 @@ * @param city 查询天气的城市 * @return */ - public Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city){ + public Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city) { order = getOrderInitialPrice(order); SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 5)); - if(null == systemConfig){ - if(type == 1){//预估金额 + if (null == systemConfig) { + if (type == 1) {//预估金额 order.setEstimatedPrice(0D); } - if(type == 2){//订单金额 + if (type == 2) {//订单金额 order.setOrderMoney(0D); } return order; @@ -294,19 +297,19 @@ e.set(Calendar.MINUTE, Integer.valueOf(split1[1])); e.set(Calendar.SECOND, 0); - if(hour1 > hour2){ - if(s.getTimeInMillis() > date.getTime()){ + if (hour1 > hour2) { + if (s.getTimeInMillis() > date.getTime()) { s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) - 1); - }else{ + } else { e.set(Calendar.DAY_OF_YEAR, e.get(Calendar.DAY_OF_YEAR) + 1); } } - if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){ - if(num3.compareTo(distance) >= 0){//起步里程内 + if (date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()) { + if (num3.compareTo(distance) >= 0) {//起步里程内 order.setStartDistance(distance);//起步里程 order.setStartPrice(num4);//起步价 - }else{ + } else { Double distance1 = distance;//原始里程 order.setStartDistance(num3);//起步里程 order.setStartPrice(num4);//起步价 @@ -318,7 +321,7 @@ order.setOverDrivePrice(multiply.doubleValue());//超出起步里程费 //计算长途费(超出长途起始公里,费用开始按照长途规则计算。) - if(distance.compareTo(num7) > 0){ + if (distance.compareTo(num7) > 0) { order.setStartDistance(0D);//起步里程 order.setStartPrice(0D);//起步价 order.setOverDriveDistance(0D);//超出起步里程 @@ -328,7 +331,7 @@ order.setLongDistancePrice(num9);//长途费 } //计算长途里程超出的部分 - if(distance.compareTo(num8) > 0){ + if (distance.compareTo(num8) > 0) { order.setOverLongDistance(new BigDecimal(distance1 - num8).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//超出长途里程 BigDecimal divide1 = new BigDecimal(distance - num8).divide(new BigDecimal(num10), 2, BigDecimal.ROUND_HALF_EVEN); @@ -352,7 +355,7 @@ Double num9 = extraCost.getDouble("num9");//恶劣天气最高收取金额 //等待费用 - if(waitTime.compareTo(num1 * 60) >= 0){ + if (waitTime.compareTo(num1 * 60) >= 0) { order.setWaitTime(num1 * 60);//等待时长 order.setWaitTimePrice(num2);//等待费用 @@ -364,15 +367,15 @@ //恶劣天气 systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 8)); - if(null != systemConfig) { + if (null != systemConfig) { JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent()); Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价 - if(1 == num11){ + if (1 == num11) { boolean badWeather = WeatherUtil.isBadWeather(city); - if(badWeather){ + if (badWeather) { order.setBadWeatherDistance(num5);//恶劣天气公里 order.setBadWeatherPrice(num6);//恶劣天气费 - if(distance.compareTo(num7) > 0){ + if (distance.compareTo(num7) > 0) { BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num7)); BigDecimal multiply = subtract.multiply(new BigDecimal(num8)); order.setOverBadWeatherDistance(subtract.doubleValue());//恶劣天气超出公里 @@ -380,36 +383,39 @@ } double add = new BigDecimal(order.getOverBadWeatherPrice()).add(new BigDecimal(order.getBadWeatherPrice())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); - if(num9.compareTo(add) < 0){//超出最高金额(重新调整金额) - if(num9.compareTo(num6) < 0){//如果恶劣天气费大于最高金额 + if (num9.compareTo(add) < 0) {//超出最高金额(重新调整金额) + if (num9.compareTo(num6) < 0) {//如果恶劣天气费大于最高金额 order.setBadWeatherPrice(num9);//恶劣天气费 order.setOverBadWeatherPrice(0D);//恶劣天气超出公里费 - }else{ + } else { BigDecimal subtract = new BigDecimal(num9).subtract(new BigDecimal(add)); order.setOverBadWeatherPrice(subtract.doubleValue());//恶劣天气超出公里费 } + } } } - } - //计算折扣 - if(null != order.getUserId()){ + //计算折扣 + if (null != order.getUserId()) { - } + } - //计算总金额 - BigDecimal bigDecimal = new BigDecimal(order.getStartPrice() + order.getOverDrivePrice() + order.getLongDistancePrice() + order.getOverLongDistancePrice() + - order.getWaitTimePrice() + order.getOutWaitTimePrice() + order.getBadWeatherPrice() + order.getOverBadWeatherPrice() - order.getDiscountAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN); + //计算总金额 + BigDecimal bigDecimal = new BigDecimal(order.getStartPrice() + order.getOverDrivePrice() + order.getLongDistancePrice() + order.getOverLongDistancePrice() + + order.getWaitTimePrice() + order.getOutWaitTimePrice() + order.getBadWeatherPrice() + order.getOverBadWeatherPrice() - order.getDiscountAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN); - if(type == 1){//预估价 - order.setEstimatedPrice(bigDecimal.doubleValue()); - } - if(type == 2){//订单金额 - order.setOrderMoney(bigDecimal.doubleValue()); + if (type == 1) {//预估价 + order.setEstimatedPrice(bigDecimal.doubleValue()); + } + if (type == 2) {//订单金额 + order.setOrderMoney(bigDecimal.doubleValue()); + } + return order; } return order; } + /** @@ -1147,7 +1153,7 @@ * @throws Exception */ @Override - public ResultUtil transferOrder(Integer uid, Long orderId, String cause) throws Exception { + public ResultUtil transferOrder(Integer uid, Long orderId, String cause, String phone) throws Exception { // 7.13改动 OrderTransfer orderTransfer = new OrderTransfer(); Order order = this.selectById(orderId); @@ -1190,7 +1196,7 @@ new Thread(new Runnable() { @Override public void run() { - pushOrder(finalOrder); + pushOrder(finalOrder.getId()); } }).start(); } @@ -1421,6 +1427,8 @@ accountChangeDetailService.insert(accountChangeDetail); //补贴中分账 + Double balance = revenueService.queryCompanyBalance();//平台账户余额 + Double discountedPrice = order.getDiscountedPrice(); List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); for (RechargeRecord rechargeRecord : rechargeRecords) { @@ -1445,6 +1453,14 @@ } } } + + CompanyFundFlow companyFundFlow = new CompanyFundFlow(); + companyFundFlow.setType(5); + companyFundFlow.setObjectType(1); + companyFundFlow.setBalance(new BigDecimal(balance)); + companyFundFlow.setMoney(new BigDecimal(order.getDiscountedPrice())); + companyFundFlow.setCreateTime(new Date()); + companyFundFlowService.insert(companyFundFlow); } } this.updateById(order); @@ -1963,6 +1979,7 @@ } //处理代理商抽佣 if(num3 > 0){ + Double balance = revenueService.queryAgentBalance(driver.getAgentId()); Revenue revenue = new Revenue(); revenue.setType(1); revenue.setUserType(3); @@ -1994,6 +2011,15 @@ } } } + + CompanyFundFlow companyFundFlow = new CompanyFundFlow(); + companyFundFlow.setType(3); + companyFundFlow.setObjectType(2); + companyFundFlow.setObjectId(driver.getAgentId()); + companyFundFlow.setBalance(new BigDecimal(balance)); + companyFundFlow.setMoney(new BigDecimal(num3)); + companyFundFlow.setCreateTime(new Date()); + companyFundFlowService.insert(companyFundFlow); } } } -- Gitblit v1.7.1