| | |
| | | String[] split = endLonLat.split(","); |
| | | Double lng = Double.valueOf(split[0]); |
| | | Double lat = Double.valueOf(split[1]); |
| | | ResultUtil<Map<String, Double>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); |
| | | ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); |
| | | if(price.getCode() != 200){ |
| | | return price; |
| | | } |
| | | Integer i = this.selectCount(new EntityWrapper<OrderLogistics>().eq("userId", uid).eq("isDelete", 1)); |
| | | Map<String, Double> map = price.getData(); |
| | | Map<String, Object> map = price.getData(); |
| | | map.put("first", i.doubleValue()); |
| | | return price; |
| | | } |
| | |
| | | String[] split = endLonLat.split(","); |
| | | Double lng = Double.valueOf(split[0]); |
| | | Double lat = Double.valueOf(split[1]); |
| | | ResultUtil<Map<String, Double>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); |
| | | ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language); |
| | | if(price.getCode() == 200 && type == 5){ |
| | | Map<String, Double> data = price.getData(); |
| | | data.put("ordinary", data.get("ordinary") * number); |
| | | data.put("precious", data.get("precious") * number); |
| | | Map<String, Object> data = price.getData(); |
| | | Double ordinary = Double.valueOf(data.get("ordinary").toString()); |
| | | Double precious = Double.valueOf(data.get("precious").toString()); |
| | | Double discount = Double.valueOf(data.get("discount").toString()); |
| | | Double discountMoney = Double.valueOf(data.get("discountMoney").toString()); |
| | | Integer activityId = Integer.valueOf(data.get("activityId").toString()); |
| | | data.put("ordinary", ordinary * number); |
| | | data.put("precious", precious * number); |
| | | } |
| | | if(price.getCode() == 200){ |
| | | Map<String, Object> data = price.getData(); |
| | | Double ordinary = Double.valueOf(data.get("ordinary").toString()); |
| | | Double precious = Double.valueOf(data.get("precious").toString()); |
| | | Double discount = Double.valueOf(data.get("discount").toString()); |
| | | Double discountMoney = Double.valueOf(data.get("discountMoney").toString()); |
| | | Integer activityId = Integer.valueOf(data.get("activityId").toString()); |
| | | data.put("ordinary", ordinary - discountMoney); |
| | | data.put("precious", precious - discountMoney); |
| | | } |
| | | return price; |
| | | } |
| | |
| | | orderLogistics.setMileage(0D); |
| | | orderLogistics.setIsReassign(1); |
| | | orderLogistics.setReassignNotice(0); |
| | | ResultUtil<Map<String, Double>> price = this.getPrice1(type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language); |
| | | ResultUtil<Map<String, Object>> price = this.getPrice1(type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language); |
| | | if(price.getCode() != 200){ |
| | | return price; |
| | | } |
| | | Map<String, Double> data = price.getData(); |
| | | orderLogistics.setOrderMoney((cargoType == 1 ? data.get("ordinary") : data.get("precious")) + tipMoney); |
| | | orderLogistics.setTravelMoney(cargoType == 1 ? data.get("ordinary") : data.get("precious")); |
| | | Map<String, Object> data = price.getData(); |
| | | Double ordinary = Double.valueOf(data.get("ordinary").toString()); |
| | | Double precious = Double.valueOf(data.get("precious").toString()); |
| | | Double discount = Double.valueOf(data.get("discount").toString()); |
| | | Double discountMoney = Double.valueOf(data.get("discountMoney").toString()); |
| | | Integer activityId = Integer.valueOf(data.get("activityId").toString()); |
| | | orderLogistics.setOrderMoney((cargoType == 1 ? ordinary : precious) + tipMoney); |
| | | orderLogistics.setTravelMoney((cargoType == 1 ? ordinary : precious)); |
| | | if(type == 5){ |
| | | orderLogistics.setOrderMoney(((cargoType == 1 ? data.get("ordinary") : data.get("precious")) * cargoNumber) + tipMoney); |
| | | orderLogistics.setTravelMoney((cargoType == 1 ? data.get("ordinary") : data.get("precious")) * cargoNumber); |
| | | orderLogistics.setOrderMoney(((cargoType == 1 ? ordinary : precious) * cargoNumber) + tipMoney); |
| | | orderLogistics.setTravelMoney((cargoType == 1 ? ordinary : precious) * cargoNumber); |
| | | } |
| | | orderLogistics.setDiscount(discount); |
| | | orderLogistics.setDiscountMoney(discountMoney); |
| | | orderLogistics.setActivityId(activityId); |
| | | orderLogistics.setTipMoney(tipMoney); |
| | | orderLogistics.setState(7);//待支付 |
| | | orderLogistics.setInsertTime(new Date()); |
| | |
| | | |
| | | |
| | | |
| | | public ResultUtil<Map<String, Double>> getPrice1(Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{ |
| | | public ResultUtil<Map<String, Object>> getPrice1(Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{ |
| | | Company query = companyCityService.query1(startLon, startLat); |
| | | if(null == query){ |
| | | return ResultUtil.error(language == 1 ? "预约取货点暂无企业服务" : language == 2 ? |
| | |
| | | } |
| | | Double price1 = 0D; |
| | | Double price2 = 0D; |
| | | Double discount = null; |
| | | Double discountMoney = 0D; |
| | | Integer activityId = null; |
| | | if(type == 4){//同城 |
| | | Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon)); |
| | |
| | | price1 = jsonObject.getDouble("num1"); |
| | | price2 = jsonObject.getDouble("num2"); |
| | | } |
| | | Map<String, Double> map = new HashMap<>(); |
| | | |
| | | //计算折扣 |
| | | UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(query.getId()); |
| | | if(null != query2){ |
| | | activityId = query2.getId(); |
| | | discount = query2.getLogistics(); |
| | | if(null != discount){ |
| | | discountMoney = new BigDecimal(price1).multiply(new BigDecimal(discount / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | } |
| | | } |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("ordinary", price1);//普通 |
| | | map.put("precious", price2);//贵重 |
| | | map.put("discount", discount);//折扣 |
| | | map.put("discountMoney", discountMoney);//折扣金额 |
| | | map.put("activityId", activityId);//折扣活动id |
| | | return ResultUtil.success(map); |
| | | } |
| | | |
| | |
| | | orderMoney = orderMoney - userCouponRecord.getMoney(); |
| | | orderLogistics.setCouponMoney(userCouponRecord.getMoney()); |
| | | orderLogistics.setCouponId(couponId); |
| | | } |
| | | //折扣 |
| | | if(null != orderLogistics.getActivityId()){ |
| | | orderMoney = orderMoney - orderLogistics.getDiscount(); |
| | | } |
| | | orderMoney=new BigDecimal(orderMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | |
| | |
| | | orderLogisticsSpreadService.updateById(orderLogisticsSpread); |
| | | |
| | | //添加已收入明细 |
| | | Company company = companyService.selectById(orderLogistics.getCompanyId()); |
| | | Double speMoney = orderLogistics.getType() == 4 ? company.getSameLogisticsMoney() : company.getCrossLogisticsMoney(); |
| | | BigDecimal d = null; |
| | | BigDecimal c = null; |
| | | if(company.getIsSpeFixedOrProportional() == 2){//固定 |
| | | d = new BigDecimal(speMoney); |
| | | c = new BigDecimal(orderMoney).subtract(d); |
| | | } |
| | | if(company.getIsSpeFixedOrProportional() == 1){//比例 |
| | | d = new BigDecimal(orderMoney).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); |
| | | c = new BigDecimal(orderMoney).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); |
| | | } |
| | | |
| | | Income income = incomeService.selectOne(new EntityWrapper<Income>().eq("userType", 1).eq("objectId", orderLogistics.getCompanyId()).eq("type", 2).eq("incomeId", orderLogistics.getId()).eq("orderType", orderLogistics.getType())); |
| | | income.setMoney(income.getMoney() + d.doubleValue()); |
| | | incomeService.updateById(income); |
| | | income = incomeService.selectOne(new EntityWrapper<Income>().eq("userType", 2).eq("objectId", orderLogistics.getCompanyId()).eq("type", 2).eq("incomeId", orderLogistics.getId()).eq("orderType", orderLogistics.getType())); |
| | | income.setMoney(income.getMoney() + c.doubleValue()); |
| | | incomeService.updateById(income); |
| | | Driver driver = driverService.selectById(orderLogistics.getDriverId()); |
| | | driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverService.updateById(driver); |
| | | // Company company = companyService.selectById(orderLogistics.getCompanyId()); |
| | | // Double speMoney = orderLogistics.getType() == 4 ? company.getSameLogisticsMoney() : company.getCrossLogisticsMoney(); |
| | | // BigDecimal d = BigDecimal.ZERO; |
| | | // BigDecimal c = BigDecimal.ZERO; |
| | | // if(company.getIsSpeFixedOrProportional() == 2){//固定 |
| | | // d = new BigDecimal(speMoney); |
| | | // c = new BigDecimal(orderMoney).subtract(d); |
| | | // } |
| | | // if(company.getIsSpeFixedOrProportional() == 1){//比例 |
| | | // d = new BigDecimal(orderMoney).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); |
| | | // c = new BigDecimal(orderMoney).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); |
| | | // } |
| | | // |
| | | // Income income = incomeService.selectOne(new EntityWrapper<Income>().eq("userType", 1).eq("objectId", orderLogistics.getCompanyId()).eq("type", 2).eq("incomeId", orderLogistics.getId()).eq("orderType", orderLogistics.getType())); |
| | | // income.setMoney(income.getMoney() + d.doubleValue()); |
| | | // incomeService.updateById(income); |
| | | // income = incomeService.selectOne(new EntityWrapper<Income>().eq("userType", 2).eq("objectId", orderLogistics.getCompanyId()).eq("type", 2).eq("incomeId", orderLogistics.getId()).eq("orderType", orderLogistics.getType())); |
| | | // System.out.println("小件物流补差价income======"+income); |
| | | // income.setMoney(income.getMoney() + c.doubleValue()); |
| | | // incomeService.updateById(income); |
| | | // Driver driver = driverService.selectById(orderLogistics.getDriverId()); |
| | | // driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | // driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | // driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | // driverService.updateById(driver); |
| | | |
| | | // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 |
| | | new Thread(new Runnable() { |
| | |
| | | @Override |
| | | public List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception { |
| | | OrderLogistics orderLogistics = this.selectById(orderId); |
| | | List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderLogistics.getCompanyId(), 1, 4, orderLogistics.getOrderMoney(), pageNum, size); |
| | | List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderLogistics.getCompanyId(), 1, 0, orderLogistics.getOrderMoney(), pageNum, size); |
| | | List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderLogistics.getCompanyId(), 1, 4, orderLogistics.getPayMoney() , pageNum, size); |
| | | List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderLogistics.getCompanyId(), 1, 0, orderLogistics.getPayMoney(), pageNum, size); |
| | | list.addAll(list1); |
| | | return list; |
| | | } |