| | |
| | | import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; |
| | | import org.springframework.http.converter.StringHttpMessageConverter; |
| | | import org.springframework.scheduling.annotation.EnableScheduling; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; |
| | | import org.springframework.transaction.annotation.EnableTransactionManagement; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | |
| | | logger.info("GunsApplication is success!"); |
| | | } |
| | | |
| | | @Bean |
| | | public ThreadPoolTaskScheduler taskScheduler() { |
| | | ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); |
| | | taskScheduler.setPoolSize(5); |
| | | taskScheduler.setThreadNamePrefix("scheduled-task-"); |
| | | return taskScheduler; |
| | | } |
| | | |
| | | |
| | | @Bean //SpringCloud内部服务质检使用服务名调用 |
| | | @LoadBalanced |
| | |
| | | LEFT JOIN ( |
| | | SELECT lineShiftDriverId, MIN(id) AS orderId |
| | | FROM t_order_cross_city |
| | | WHERE state != 10 |
| | | WHERE isDelete = 1 |
| | | AND state NOT IN (10, 12) |
| | | GROUP BY lineShiftDriverId |
| | | ) occ ON occ.lineShiftDriverId = lsd.id |
| | | WHERE lsd.driverId = #{driverId} |
| | | AND lsd.lineShiftId != -1 |
| | | AND NOT EXISTS ( |
| | | AND NOT ( |
| | | EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_has |
| | | WHERE occ_has.lineShiftDriverId = lsd.id |
| | | AND occ_has.isDelete = 1 |
| | | AND occ_has.state NOT IN (10, 12) |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_end |
| | | WHERE occ_end.lineShiftDriverId = lsd.id |
| | | AND occ_end.isDelete = 1 |
| | | AND occ_end.state = 9 |
| | | AND occ_end.state NOT IN (8, 9, 10, 12) |
| | | ) |
| | | ) |
| | | <if test="startDate != null and startDate != ''"> |
| | | AND lsd.day = #{startDate} |
| | |
| | | AND st.state = 1 |
| | | WHERE lsd.driverId = #{driverId} |
| | | AND lsd.lineShiftId = -1 |
| | | AND NOT EXISTS ( |
| | | AND NOT ( |
| | | EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_has |
| | | WHERE occ_has.lineShiftDriverId = lsd.id |
| | | AND occ_has.isDelete = 1 |
| | | AND occ_has.state NOT IN (10, 12) |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_end |
| | | WHERE occ_end.lineShiftDriverId = lsd.id |
| | | AND occ_end.isDelete = 1 |
| | | AND occ_end.state = 9 |
| | | AND occ_end.state NOT IN (8, 9, 10, 12) |
| | | ) |
| | | ) |
| | | <if test="startDate != null and startDate != ''"> |
| | | AND lsd.day = #{startDate} |
| | |
| | | FROM t_order_cross_city occ |
| | | WHERE occ.lineShiftDriverId = lsd.id |
| | | AND occ.isDelete = 1 |
| | | AND occ.state != 10 |
| | | AND occ.state NOT IN (10, 12) |
| | | ) |
| | | AND ( |
| | | (lsd.lineShiftId != -1 |
| | | (lsd.lineShiftId > 0 |
| | | AND ls.id IS NOT NULL |
| | | AND ls.state = 1 |
| | | AND STR_TO_DATE(CONCAT(DATE_FORMAT(lsd.day, '%Y-%m-%d'), ' ', ls.endTime), '%Y-%m-%d %H:%i') < NOW()) |
| | | OR |
| | | (lsd.lineShiftId = -1 |
| | | (lsd.lineShiftId <= -1 |
| | | AND st.id IS NOT NULL |
| | | AND st.state = 1 |
| | | AND STR_TO_DATE(CONCAT(DATE_FORMAT(lsd.day, '%Y-%m-%d'), ' ', st.startTime), '%Y-%m-%d %H:%i') < NOW()) |
| | |
| | | left join t_user b on (a.userId = b.id) |
| | | left join t_line_shift_driver c on (a.lineShiftDriverId = c.id) |
| | | left join t_line_shift d on (c.lineShiftId = d.id) |
| | | where a.orderNum = #{orderNum} and a.state in (2, 3, 4, 5, 6, 8, 9, 11) order by a.sort |
| | | where a.orderNum = #{orderNum} and a.state in (2, 3, 4, 5, 6, 8, 9, 11) order by a.sort desc |
| | | </select> |
| | | |
| | | |
| | |
| | | <select id="taskMidAxbUnBindSend" resultType="OrderCrossCity"> |
| | | select * from t_order_cross_city where (state in (8, 9) and telX != '' and telX is not null and (UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(endServiceTime)) > 1800) or (state = 10 and telX != '' and telX is not null) |
| | | </select> |
| | | </mapper> |
| | | </mapper> |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Integer autoCancelExpiredNoOrderShifts() throws Exception { |
| | | List<Integer> shiftIds = lineShiftDriverMapper.queryExpiredNoOrderShiftIds(); |
| | | System.out.println("自动清除无效车程数量 " + 0); |
| | | if (shiftIds == null || shiftIds.isEmpty()) { |
| | | return 0; |
| | | } |
| | |
| | | continue; |
| | | } |
| | | if (lineShiftDriver.getLineShiftId() != null |
| | | && lineShiftDriver.getLineShiftId() == -1 |
| | | && lineShiftDriver.getLineShiftId() <= -1 |
| | | && lineShiftDriver.getCustomerId() != null) { |
| | | DriverSelfTrip trip = driverSelfTripMapper.selectById(lineShiftDriver.getCustomerId()); |
| | | if (trip != null && trip.getState() != null && trip.getState() == 1) { |
| | |
| | | lineShiftDriverMapper.deleteById(shiftId); |
| | | cancelCount++; |
| | | } |
| | | System.out.println("自动清除无效车程数量 " + cancelCount); |
| | | return cancelCount; |
| | | } |
| | | } |
| | |
| | | * @throws Exception |
| | | */ |
| | | public synchronized String getOrderNum(Integer driverId, Integer lineShiftDriverId) throws Exception{ |
| | | List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryOrders(driverId, lineShiftDriverId, Arrays.asList(2, 3, 4, 7)); |
| | | List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryOrders(driverId, lineShiftDriverId, Arrays.asList(2, 3, 4, 5, 6, 7)); |
| | | if(orderCrossCities.size() > 0){ |
| | | return orderCrossCities.get(0).getOrderNum(); |
| | | } |
| | |
| | | return ResultUtil.success(response); |
| | | } else if (type == 3) { |
| | | order.setState(2); |
| | | order.setPayMoney(0.00); |
| | | order.setPayMoney(order.getOrderMoney()); |
| | | orderCrossCityMapper.updateById(order); |
| | | |
| | | |
| | |
| | | |
| | | /** |
| | | * 获取改派金额 |
| | | * @param openCityId |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | Double queryMoney(@Param("openCityId") Integer openCityId) throws Exception; |
| | | Double queryMoney(@Param("openCityId") Integer openCityId, @Param("companyId") Integer companyId) throws Exception; |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | <select id="queryMoney" resultType="double"> |
| | | select money from t_sys_reformist where openCityId = #{openCityId} |
| | | <select id="queryMoney" resultType="java.lang.Double"> |
| | | select money |
| | | from t_sys_reformist |
| | | where (openCityId = #{openCityId} |
| | | or companyId = #{companyId} |
| | | or openCityId = #{companyId}) |
| | | order by |
| | | case |
| | | when openCityId = #{openCityId} then 1 |
| | | when companyId = #{companyId} then 2 |
| | | else 3 |
| | | end |
| | | limit 1 |
| | | </select> |
| | | </mapper> |
| | | </mapper> |
| | |
| | | */ |
| | | @Override |
| | | public List<BaseWarpper> queryMyBusiness(Integer uid) throws Exception { |
| | | Driver driver = this.selectById(uid); |
| | | if (driver == null) { |
| | | return new ArrayList<>(); |
| | | } |
| | | Company company = null; |
| | | if (driver.getFranchiseeId() != null && driver.getFranchiseeId() > 0) { |
| | | company = companyMapper.selectById(driver.getFranchiseeId()); |
| | | } |
| | | if (company == null && driver.getCompanyId() != null && driver.getCompanyId() > 0) { |
| | | company = companyMapper.selectById(driver.getCompanyId()); |
| | | } |
| | | |
| | | List<DriverService> list = driverServiceMapper.queryMyBusiness(uid); |
| | | List<BaseWarpper> maps = new ArrayList<>(); |
| | | for (DriverService d : list){ |
| | | if(d.getType() == 6){ |
| | | continue; |
| | | } |
| | | if (!isBusinessOpen(company, d.getType())) { |
| | | continue; |
| | | } |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | |
| | | return maps; |
| | | } |
| | | |
| | | private boolean isBusinessOpen(Company company, Integer type) { |
| | | if (company == null || type == null) { |
| | | return true; |
| | | } |
| | | switch (type) { |
| | | case 1: |
| | | return company.getIsSpe() != null && company.getIsSpe() == 1; |
| | | case 2: |
| | | return company.getIsTaxi() != null && company.getIsTaxi() == 1; |
| | | case 3: |
| | | return company.getIsCross() != null && company.getIsCross() == 1; |
| | | case 4: |
| | | return company.getIsSameLogistics() != null && company.getIsSameLogistics() == 1; |
| | | case 5: |
| | | return company.getIsCrossLogistics() != null && company.getIsCrossLogistics() == 1; |
| | | case 6: |
| | | return company.getIsCharter() != null && company.getIsCharter() == 1; |
| | | default: |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取个人中心详情 |
| | |
| | | @Override |
| | | public Double queryReassignMoney(Integer orderId, Integer orderType) throws Exception { |
| | | Integer openCityId = null; |
| | | Integer companyId = null; |
| | | switch (orderType){ |
| | | case 1://专车 |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); |
| | | companyId = orderPrivateCar.getCompanyId(); |
| | | openCityId = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()).getId(); |
| | | break; |
| | | case 2://出租 |
| | | OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); |
| | | companyId = orderTaxi.getCompanyId(); |
| | | openCityId = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()).getId(); |
| | | break; |
| | | case 3://城际 |
| | | OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId); |
| | | companyId = orderCrossCity.getCompanyId(); |
| | | openCityId = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()).getId(); |
| | | break; |
| | | case 4://同城小件 |
| | | OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); |
| | | companyId = orderLogistics.getCompanyId(); |
| | | openCityId = openCityService.openCity1(orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString()).getId(); |
| | | break; |
| | | case 5://跨城小件 |
| | | OrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId); |
| | | companyId = orderLogistics1.getCompanyId(); |
| | | openCityId = openCityService.openCity1(orderLogistics1.getStartLon().toString(), orderLogistics1.getStartLat().toString()).getId(); |
| | | |
| | | break; |
| | | case 6: |
| | | break; |
| | | } |
| | | return sysReformistMapper.queryMoney(openCityId); |
| | | return sysReformistMapper.queryMoney(openCityId, companyId); |
| | | } |
| | | |
| | | |
| | |
| | | */ |
| | | @Scheduled(fixedRate = 1000 * 60) |
| | | public void taskMinute(){ |
| | | if(null != ip && "10.31.182.11".equals(ip)){ |
| | | if(null != ip){ |
| | | try { |
| | | //修改满足活动条件的数据(在线时长,订单量) |
| | | driverService.taskMinute(); |
| | |
| | | orderService.taskMidAxbUnBindSend(); |
| | | //修改过期的商家券 |
| | | userMerchantCouponService.updateExpired(); |
| | | //自动取消已超时且无订单的司机排班 |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 每隔一分钟自动取消已超时且无有效订单的跨城司机排班 |
| | | */ |
| | | @Scheduled(fixedRate = 1000 * 60) |
| | | public void autoCancelExpiredNoOrderShifts(){ |
| | | if(null != ip){ |
| | | try { |
| | | lineShiftDriverService.autoCancelExpiredNoOrderShifts(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | */ |
| | | @Scheduled(fixedRate = 1000 * 60 * 5) |
| | | public void taskFiveMinute(){ |
| | | if(null != ip && "10.31.182.11".equals(ip)){ |
| | | if(null != ip){ |
| | | try { |
| | | for (Integer id: driverIds){ |
| | | jgPushUtil.push(1, "您的预约订单出行时间就要到了,请尽快前往预约地点接乘客", "DRIVER" + id); |
| | |
| | | */ |
| | | @Scheduled(cron = "0 0 0 * * *") |
| | | public void taskDay() { |
| | | if(null != ip && "10.31.182.11".equals(ip)){ |
| | | if(null != ip){ |
| | | try { |
| | | //生成当天的司机活动 |
| | | driverService.addTodayActivity(); |
| | |
| | | @Autowired |
| | | private ITDriverServiceService tDriverServiceService; |
| | | |
| | | @Autowired |
| | | private ITCarService tCarService; |
| | | @Autowired |
| | | private ITCarService tCarService; |
| | | |
| | | @Autowired |
| | | private ITCarServiceService tCarServiceService; |
| | | |
| | | @Autowired |
| | | private ITCarServiceService tCarServiceService; |
| | | private ITOrderPrivateCarService orderPrivateCarService; |
| | | |
| | | @Autowired |
| | | private ITOrderTaxiService orderTaxiService; |
| | | |
| | | @Autowired |
| | | private ITOrderCrossCityService orderCrossCityService; |
| | | |
| | | @Value("${pushMinistryOfTransport}") |
| | | private boolean pushMinistryOfTransport; |
| | |
| | | if(ToolUtil.isEmpty(tCompany.getIdentifier())){ |
| | | return "统一社会信用代码不能为空"; |
| | | } |
| | | String commissionError = validateBusinessCommission(tCompany); |
| | | if (commissionError != null) { |
| | | return commissionError; |
| | | } |
| | | tCompany.setType(2); //2:分公司 |
| | | tCompany.setState(0); //0:正常 |
| | | tCompany.setFlag("1"); |
| | |
| | | name = name.replaceAll("& #40;", "("); |
| | | name = name.replaceAll("& #41;", ")"); |
| | | tCompany.setName(name); |
| | | String commissionError = validateBusinessCommission(tCompany); |
| | | if (commissionError != null) { |
| | | return commissionError; |
| | | } |
| | | User user = userService.selectById(userId); |
| | | if(null != user && ToolUtil.isNotEmpty(password)){ |
| | | user.setPassword(ShiroKit.md5(password, user.getSalt())); |
| | |
| | | // ========== 级联更新逻辑 ========== |
| | | TCompany oldCompany = tCompanyService.selectById(tCompany.getId()); |
| | | if (oldCompany != null && oldCompany.getType() == 2) { |
| | | String unfinishedOrderError = validateCancelledServiceUnfinishedOrders(oldCompany, tCompany, true); |
| | | if (unfinishedOrderError != null) { |
| | | return unfinishedOrderError; |
| | | } |
| | | // 1. 检测并级联更新经营业务 |
| | | cascadeUpdateBusinessScope(oldCompany, tCompany); |
| | | |
| | |
| | | name = name.replaceAll("& #40;", "("); |
| | | name = name.replaceAll("& #41;", ")"); |
| | | tCompany.setName(name); |
| | | String commissionError = validateBusinessCommission(tCompany); |
| | | if (commissionError != null) { |
| | | return commissionError; |
| | | } |
| | | TCompany oldCompany = tCompanyService.selectById(tCompany.getId()); |
| | | String unfinishedOrderError = validateCancelledServiceUnfinishedOrders(oldCompany, tCompany, false); |
| | | if (unfinishedOrderError != null) { |
| | | return unfinishedOrderError; |
| | | } |
| | | tCompany.setUpdateTime(new Date()); |
| | | // tCompany.setVersion(tCompany.getVersion() + 1); |
| | | tCompanyService.updateById(tCompany); |
| | |
| | | if(ToolUtil.isEmpty(tCompany.getIdentifier())){ |
| | | return "统一社会信用代码不能为空"; |
| | | } |
| | | String commissionError = validateBusinessCommission(tCompany); |
| | | if (commissionError != null) { |
| | | return commissionError; |
| | | } |
| | | tCompany.setType(3); //2:分公司 |
| | | if (ShiroKit.getUser().getRoleType() == 2) { |
| | | tCompany.setSuperiorId(ShiroKit.getUser().getObjectId()); |
| | |
| | | } |
| | | } |
| | | |
| | | private String validateBusinessCommission(TCompany company) { |
| | | if (Integer.valueOf(1).equals(company.getIsSpe()) && !hasCommissionSetting(company.getSpe())) { |
| | | return "请先设置快车司机抽成"; |
| | | } |
| | | if (Integer.valueOf(1).equals(company.getIsTaxi()) && !hasCommissionSetting(company.getTaxi())) { |
| | | return "请先设置出租车司机抽成"; |
| | | } |
| | | if (Integer.valueOf(1).equals(company.getIsCross()) && !hasCommissionSetting(company.getCross())) { |
| | | return "请先设置跨城出行司机抽成"; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private boolean hasCommissionSetting(String configText) { |
| | | if (SinataUtil.isEmpty(configText)) { |
| | | return false; |
| | | } |
| | | try { |
| | | JSONObject config = JSON.parseObject(configText); |
| | | JSONArray rules = config.getJSONArray("rules"); |
| | | if (hasCommissionRule(rules)) { |
| | | return true; |
| | | } |
| | | JSONArray timeRules = config.getJSONArray("time_rules"); |
| | | if (timeRules != null) { |
| | | for (int i = 0; i < timeRules.size(); i++) { |
| | | if (hasCommissionRule(timeRules.getJSONArray(i))) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private boolean hasCommissionRule(JSONArray rules) { |
| | | if (rules == null || rules.size() <= 0) { |
| | | return false; |
| | | } |
| | | for (int i = 0; i < rules.size(); i++) { |
| | | JSONObject rule = rules.getJSONObject(i); |
| | | if (rule != null && rule.containsKey("percent") && SinataUtil.isNotEmpty(rule.getString("percent"))) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private String validateCancelledServiceUnfinishedOrders(TCompany oldCompany, TCompany newCompany, boolean includeFranchisee) { |
| | | if (oldCompany == null || newCompany == null) { |
| | | return null; |
| | | } |
| | | List<Integer> cancelledTypes = getCancelledCoreServiceTypes(oldCompany, newCompany); |
| | | if (cancelledTypes.isEmpty()) { |
| | | return null; |
| | | } |
| | | List<Integer> driverIds = getCompanyDriverIds(oldCompany.getId(), includeFranchisee); |
| | | if (driverIds.isEmpty()) { |
| | | return null; |
| | | } |
| | | if (cancelledTypes.contains(1) && hasUnfinishedPrivateCarOrder(driverIds)) { |
| | | return "当前公司内司机存在快车未完成订单,无法变动"; |
| | | } |
| | | if (cancelledTypes.contains(2) && hasUnfinishedTaxiOrder(driverIds)) { |
| | | return "当前公司内司机存在出租车未完成订单,无法变动"; |
| | | } |
| | | if (cancelledTypes.contains(3) && hasUnfinishedCrossCityOrder(driverIds)) { |
| | | return "当前公司内司机存在跨城出行未完成订单,无法变动"; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private List<Integer> getCancelledCoreServiceTypes(TCompany oldCompany, TCompany newCompany) { |
| | | List<Integer> cancelledTypes = new ArrayList<>(); |
| | | if (isServiceCancelled(oldCompany.getIsSpe(), newCompany.getIsSpe())) { |
| | | cancelledTypes.add(1); |
| | | } |
| | | if (isServiceCancelled(oldCompany.getIsTaxi(), newCompany.getIsTaxi())) { |
| | | cancelledTypes.add(2); |
| | | } |
| | | if (isServiceCancelled(oldCompany.getIsCross(), newCompany.getIsCross())) { |
| | | cancelledTypes.add(3); |
| | | } |
| | | return cancelledTypes; |
| | | } |
| | | |
| | | private List<Integer> getCompanyDriverIds(Integer companyId, boolean includeFranchisee) { |
| | | List<Integer> driverIds = new ArrayList<>(); |
| | | List<TDriver> companyDrivers = tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("companyId", companyId)); |
| | | addDriverIds(driverIds, companyDrivers); |
| | | if (!includeFranchisee) { |
| | | List<TDriver> franchiseeDrivers = tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("franchiseeId", companyId)); |
| | | addDriverIds(driverIds, franchiseeDrivers); |
| | | } |
| | | if (includeFranchisee) { |
| | | List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("superiorId", companyId).eq("type", 3).ne("flag", "3")); |
| | | for (TCompany franchisee : franchiseeList) { |
| | | List<TDriver> franchiseeDrivers = tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("franchiseeId", franchisee.getId())); |
| | | addDriverIds(driverIds, franchiseeDrivers); |
| | | } |
| | | } |
| | | return driverIds; |
| | | } |
| | | |
| | | private void addDriverIds(List<Integer> driverIds, List<TDriver> drivers) { |
| | | if (drivers == null) { |
| | | return; |
| | | } |
| | | for (TDriver driver : drivers) { |
| | | if (driver != null && driver.getId() != null && !driverIds.contains(driver.getId())) { |
| | | driverIds.add(driver.getId()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private boolean hasUnfinishedPrivateCarOrder(List<Integer> driverIds) { |
| | | return orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>() |
| | | .eq("isDelete", 1) |
| | | .in("driverId", driverIds) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | |
| | | private boolean hasUnfinishedTaxiOrder(List<Integer> driverIds) { |
| | | return orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>() |
| | | .eq("isDelete", 1) |
| | | .in("driverId", driverIds) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | |
| | | private boolean hasUnfinishedCrossCityOrder(List<Integer> driverIds) { |
| | | return orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>() |
| | | .eq("isDelete", 1) |
| | | .in("driverId", driverIds) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | |
| | | /** |
| | | * 删除司机的经营业务记录 |
| | | * @param companyId 分公司ID(查询直属司机时使用) |
| | |
| | | private ITComplaintService tComplaintService; |
| | | |
| | | @Autowired |
| | | private ITOrderPrivateCarService orderPrivateCarService; |
| | | |
| | | @Autowired |
| | | private ITOrderTaxiService orderTaxiService; |
| | | |
| | | @Autowired |
| | | private ITOrderCrossCityService orderCrossCityService; |
| | | |
| | | @Autowired |
| | | private IUserService userService; |
| | | |
| | | @Autowired |
| | |
| | | obj.setUpdateTime(new Date()); |
| | | obj.setUpdateUser(ShiroKit.getUser().getId()); |
| | | obj.setPlaceOfEmployment(tDriver.getPlaceOfEmployment()); |
| | | List<Integer> newServiceTypes = parseDriverServiceTypes(serverBox); |
| | | String unfinishedOrderError = validateDriverCancelledServiceUnfinishedOrders(tDriver.getId(), newServiceTypes); |
| | | if (unfinishedOrderError != null) { |
| | | return unfinishedOrderError; |
| | | } |
| | | tDriverService.updateAllColumnById(obj); |
| | | |
| | | //删除业务 |
| | |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | private List<Integer> parseDriverServiceTypes(String serverBox) { |
| | | List<Integer> serviceTypes = new ArrayList<>(); |
| | | if (SinataUtil.isEmpty(serverBox)) { |
| | | return serviceTypes; |
| | | } |
| | | String[] serverArray = serverBox.split(","); |
| | | for (String serviceType : serverArray) { |
| | | if (SinataUtil.isNotEmpty(serviceType)) { |
| | | serviceTypes.add(Integer.valueOf(serviceType)); |
| | | } |
| | | } |
| | | return serviceTypes; |
| | | } |
| | | |
| | | private String validateDriverCancelledServiceUnfinishedOrders(Integer driverId, List<Integer> newServiceTypes) { |
| | | List<Integer> oldServiceTypes = getDriverServiceTypes(driverId); |
| | | if (oldServiceTypes.isEmpty()) { |
| | | return null; |
| | | } |
| | | if (oldServiceTypes.contains(1) && !newServiceTypes.contains(1) && hasUnfinishedPrivateCarOrder(driverId)) { |
| | | return "当前司机存在快车未完成订单,无法变动"; |
| | | } |
| | | if (oldServiceTypes.contains(2) && !newServiceTypes.contains(2) && hasUnfinishedTaxiOrder(driverId)) { |
| | | return "当前司机存在出租车未完成订单,无法变动"; |
| | | } |
| | | if (oldServiceTypes.contains(3) && !newServiceTypes.contains(3) && hasUnfinishedCrossCityOrder(driverId)) { |
| | | return "当前司机存在跨城出行未完成订单,无法变动"; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private List<Integer> getDriverServiceTypes(Integer driverId) { |
| | | List<Integer> serviceTypes = new ArrayList<>(); |
| | | List<TDriverService> serviceList = tDriverServiceService.selectList(new EntityWrapper<TDriverService>().eq("driverId", driverId)); |
| | | for (TDriverService service : serviceList) { |
| | | if (service != null && service.getType() != null && !serviceTypes.contains(service.getType())) { |
| | | serviceTypes.add(service.getType()); |
| | | } |
| | | } |
| | | return serviceTypes; |
| | | } |
| | | |
| | | private boolean hasUnfinishedPrivateCarOrder(Integer driverId) { |
| | | return orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>() |
| | | .eq("isDelete", 1) |
| | | .eq("driverId", driverId) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | |
| | | private boolean hasUnfinishedTaxiOrder(Integer driverId) { |
| | | return orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>() |
| | | .eq("isDelete", 1) |
| | | .eq("driverId", driverId) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | |
| | | private boolean hasUnfinishedCrossCityOrder(Integer driverId) { |
| | | return orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>() |
| | | .eq("isDelete", 1) |
| | | .eq("driverId", driverId) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | |
| | | /** |
| | | * 下载模板 |
| | | * @param request |
| | |
| | | Integer sjzp1, Integer sjzp2, Integer zuc1, Integer zuc2, Integer mc1, Integer mc2, |
| | | Integer czgrcl1, Integer czgrcl2, Integer mac1, Integer mac2, Integer sjzx1, Integer sjzx2, |
| | | Integer dck1, Integer dck2,Integer driverDays,Integer pushType) { |
| | | if (openCityId == null){ |
| | | openCityId = ShiroKit.getUser().getObjectId(); |
| | | } |
| | | Integer companyId = ShiroKit.getUser().getObjectId(); |
| | | boolean companySystemSet = openCityId == null; |
| | | //改派设置 |
| | | if("reassigningSet".equals(type)){ |
| | | TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("openCityId", openCityId)); |
| | | EntityWrapper<TSysReformist> wrapper = new EntityWrapper<>(); |
| | | if (companySystemSet) { |
| | | wrapper.eq("companyId", companyId); |
| | | } else { |
| | | wrapper.eq("openCityId", openCityId); |
| | | } |
| | | TSysReformist reformist = tSysReformistService.selectOne(wrapper); |
| | | if (SinataUtil.isNotEmpty(reformist)){ |
| | | reformist.setOpenCityId(openCityId); |
| | | if (companySystemSet) { |
| | | reformist.setCompanyId(companyId); |
| | | } else { |
| | | reformist.setOpenCityId(openCityId); |
| | | } |
| | | reformist.setMoney(one); |
| | | reformist.setIsSpecialCar(isSpecialCar); |
| | | reformist.setIsTaxiCar(isTaxiCar); |
| | | tSysReformistService.updateById(reformist); |
| | | }else { |
| | | reformist = new TSysReformist(); |
| | | reformist.setOpenCityId(openCityId); |
| | | if (companySystemSet) { |
| | | reformist.setCompanyId(companyId); |
| | | } else { |
| | | reformist.setOpenCityId(openCityId); |
| | | } |
| | | reformist.setMoney(one); |
| | | reformist.setIsSpecialCar(isSpecialCar); |
| | | reformist.setIsTaxiCar(isTaxiCar); |
| | | tSysReformistService.insert(reformist); |
| | | } |
| | | } |
| | | if (companySystemSet) { |
| | | openCityId = companyId; |
| | | } |
| | | if("driverPayDays".equals(type)){ |
| | | TDriverPayDays tDriverPayDays = driverPayDaysService.selectOne(new EntityWrapper<TDriverPayDays>().eq("openCityId", openCityId)); |
| | | if (SinataUtil.isNotEmpty(tDriverPayDays)){ |
| | |
| | | @ResponseBody |
| | | public ResultUtil add(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr, |
| | | @RequestParam String shuArr, @RequestParam(required = false) String destArr) { |
| | | if (!hasCommissionSetting(tLine.getOutSetting())) { |
| | | return ResultUtil.error("请设置司机抽成"); |
| | | } |
| | | JSONArray jsonArray1 = JSON.parseArray(shuArr); |
| | | int size1 = jsonArray1.size(); |
| | | for (int i = 0; i < size1; i++) { |
| | |
| | | String shiftTime = jsonObject.getString("shiftTime"); |
| | | if (SinataUtil.isNotEmpty(shiftTime)){ |
| | | String[] timeArray = shiftTime.split(" - "); |
| | | String startTime = timeArray[0].split(":")[0]; |
| | | String endTime = timeArray[1].split(":")[0]; |
| | | if(Integer.valueOf(startTime) >= Integer.valueOf(endTime)){ |
| | | String startTime = timeArray[0]; |
| | | String endTime = timeArray[1]; |
| | | if(startTime.compareTo(endTime) >= 0){ |
| | | return ResultUtil.error("班次结束时间不能小于开始时间"); |
| | | } |
| | | } |
| | |
| | | @ResponseBody |
| | | public ResultUtil update(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr, |
| | | @RequestParam String shuArr, @RequestParam(required = false) String destArr) { |
| | | if (!hasCommissionSetting(tLine.getOutSetting())) { |
| | | return ResultUtil.error("请设置司机抽成"); |
| | | } |
| | | JSONArray jsonArray1 = JSON.parseArray(shuArr); |
| | | int size1 = jsonArray1.size(); |
| | | for (int i = 0; i < size1; i++) { |
| | |
| | | String shiftTime = jsonObject.getString("shiftTime"); |
| | | if (SinataUtil.isNotEmpty(shiftTime)){ |
| | | String[] timeArray = shiftTime.split(" - "); |
| | | String startTime = timeArray[0].split(":")[0]; |
| | | String endTime = timeArray[1].split(":")[0]; |
| | | if(Integer.valueOf(startTime) >= Integer.valueOf(endTime)){ |
| | | String startTime = timeArray[0]; |
| | | String endTime = timeArray[1]; |
| | | if(startTime.compareTo(endTime) >= 0){ |
| | | return ResultUtil.error("班次结束时间不能小于开始时间"); |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 添加线路目的地配置 |
| | | */ |
| | | private boolean hasCommissionSetting(String outSetting) { |
| | | if (SinataUtil.isEmpty(outSetting)) { |
| | | return false; |
| | | } |
| | | try { |
| | | JSONObject config = JSON.parseObject(outSetting); |
| | | JSONArray rules = config.getJSONArray("rules"); |
| | | if (hasCommissionRule(rules)) { |
| | | return true; |
| | | } |
| | | JSONArray timeRules = config.getJSONArray("time_rules"); |
| | | if (timeRules != null) { |
| | | for (int i = 0; i < timeRules.size(); i++) { |
| | | JSONArray oneTimeRules = timeRules.getJSONArray(i); |
| | | if (hasCommissionRule(oneTimeRules)) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private boolean hasCommissionRule(JSONArray rules) { |
| | | if (rules == null || rules.size() <= 0) { |
| | | return false; |
| | | } |
| | | for (int i = 0; i < rules.size(); i++) { |
| | | JSONObject rule = rules.getJSONObject(i); |
| | | if (rule != null && rule.containsKey("percent") && SinataUtil.isNotEmpty(rule.getString("percent"))) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private ResultUtil addDestination(Integer lineId, String destArr) { |
| | | if (SinataUtil.isEmpty(destArr)) { |
| | | return ResultUtil.error("请至少设置一个目的地"); |
| | |
| | | return false; |
| | | } |
| | | |
| | | FranchiseeInfoDlg.hasSubmitError = function(data) { |
| | | if (typeof data === "string") { |
| | | if ("error" == data) { |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | } else { |
| | | Feng.error(data); |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | |
| | | return; |
| | | } |
| | | var checkbox1 = $('#checkbox1').prop('checked'); |
| | | var speConfig = $("#Spe").val(); |
| | | var speMoney = ""; |
| | | if (checkbox1) { |
| | | // var zc = $("input[name='zc']:checked").val(); |
| | | // if (1 == zc){ |
| | | // var zcPercent = $("#zcPercent").val(); |
| | | // if ("" == zcPercent){ |
| | | // Feng.info("快车比例抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcPercent)) { |
| | | // Feng.info("快车比例抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // }else if (2 == zc){ |
| | | // var zcMoney = $("#zcMoney").val(); |
| | | // if ("" == zcMoney){ |
| | | // Feng.info("快车固定金额抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcMoney)) { |
| | | // Feng.info("快车固定金额抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // } |
| | | speMoney = FranchiseeInfoDlg.getCommissionFromConfig(speConfig, "快车"); |
| | | if (speMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox2 = $('#checkbox2').prop('checked'); |
| | | var taxiConfig = $("#Taxi").val(); |
| | | var taxiMoney = ""; |
| | | if (checkbox2) { |
| | | var cz = $("input[name='cz']:checked").val(); |
| | | if (1 == cz){ |
| | | var czPercent = $("#czPercent").val(); |
| | | if ("" == czPercent){ |
| | | Feng.info("出租车比例抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czPercent)) { |
| | | Feng.info("出租车比例抽成格式不正确!"); |
| | | return; |
| | | } |
| | | }else if (2 == cz){ |
| | | var czMoney = $("#czMoney").val(); |
| | | if ("" == czMoney){ |
| | | Feng.info("出租车固定金额抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czMoney)) { |
| | | Feng.info("出租车固定金额抽成格式不正确!"); |
| | | return; |
| | | } |
| | | taxiMoney = FranchiseeInfoDlg.getCommissionFromConfig(taxiConfig, "出租车"); |
| | | if (taxiMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox3 = $('#checkbox3').prop('checked'); |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = ""; |
| | | if (checkbox3) { |
| | | crossMoney = FranchiseeInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox4 = $('#checkbox4').prop('checked'); |
| | | if (checkbox4) { |
| | | // var tcx = $("input[name='tcx']:checked").val(); |
| | |
| | | var isOpenDriverSelfTrip = $("input[name='isOpenDriverSelfTrip']:checked").val(); |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompany/addFranchisee", function(data){ |
| | | if ("error" == data){ |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | if (FranchiseeInfoDlg.hasSubmitError(data)){ |
| | | return; |
| | | } |
| | | if(200 == data.code){ |
| | |
| | | }); |
| | | ajax.set(FranchiseeInfoDlg.franchiseeInfoData); |
| | | if (checkbox1){ |
| | | var zc = $("input[name='zc']:checked").val(); |
| | | ajax.set("isSpeFixedOrProportional",zc); |
| | | if (1 == zc){ |
| | | ajax.set("speMoney",$("#zcPercent").val()); |
| | | }else if (2 == zc) { |
| | | ajax.set("speMoney",$("#zcMoney").val()); |
| | | } |
| | | ajax.set("isSpe",1); |
| | | ajax.set("Spe",speConfig); |
| | | ajax.set("speMoney",speMoney); |
| | | }else{ |
| | | ajax.set("isSpe",2); |
| | | ajax.set("Spe",""); |
| | | ajax.set("speMoney",""); |
| | | } |
| | | if (checkbox2){ |
| | | var cz = $("input[name='cz']:checked").val() |
| | | ajax.set("isTaxiFixedOrProportional",cz); |
| | | if (1 == cz){ |
| | | ajax.set("taxiMoney",$("#czPercent").val()); |
| | | }else if (2 == cz) { |
| | | ajax.set("taxiMoney",$("#czMoney").val()); |
| | | } |
| | | ajax.set("isTaxi",1); |
| | | ajax.set("Taxi",taxiConfig); |
| | | ajax.set("taxiMoney",taxiMoney); |
| | | }else{ |
| | | ajax.set("isTaxi",2); |
| | | ajax.set("Taxi",""); |
| | | ajax.set("taxiMoney",""); |
| | | } |
| | | if (checkbox3){ |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = FranchiseeInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | ajax.set("isCross",1); |
| | | ajax.set("Cross",crossConfig); |
| | | ajax.set("crossMoney",crossMoney); |
| | |
| | | return; |
| | | } |
| | | var checkbox1 = $('#checkbox1').prop('checked'); |
| | | var speConfig = $("#Spe").val(); |
| | | var speMoney = ""; |
| | | if (checkbox1) { |
| | | // var zc = $("input[name='zc']:checked").val(); |
| | | // if (1 == zc){ |
| | | // var zcPercent = $("#zcPercent").val(); |
| | | // if ("" == zcPercent){ |
| | | // Feng.info("快车比例抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcPercent)) { |
| | | // Feng.info("快车比例抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // }else if (2 == zc){ |
| | | // var zcMoney = $("#zcMoney").val(); |
| | | // if ("" == zcMoney){ |
| | | // Feng.info("快车固定金额抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcMoney)) { |
| | | // Feng.info("快车固定金额抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // } |
| | | speMoney = FranchiseeInfoDlg.getCommissionFromConfig(speConfig, "快车"); |
| | | if (speMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox2 = $('#checkbox2').prop('checked'); |
| | | var taxiConfig = $("#Taxi").val(); |
| | | var taxiMoney = ""; |
| | | if (checkbox2) { |
| | | var cz = $("input[name='cz']:checked").val(); |
| | | if (1 == cz){ |
| | | var czPercent = $("#czPercent").val(); |
| | | if ("" == czPercent){ |
| | | Feng.info("出租车比例抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czPercent)) { |
| | | Feng.info("出租车比例抽成格式不正确!"); |
| | | return; |
| | | } |
| | | }else if (2 == cz){ |
| | | var czMoney = $("#czMoney").val(); |
| | | if ("" == czMoney){ |
| | | Feng.info("出租车固定金额抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czMoney)) { |
| | | Feng.info("出租车固定金额抽成格式不正确!"); |
| | | return; |
| | | } |
| | | taxiMoney = FranchiseeInfoDlg.getCommissionFromConfig(taxiConfig, "出租车"); |
| | | if (taxiMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox3 = $('#checkbox3').prop('checked'); |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = ""; |
| | | if (checkbox3) { |
| | | crossMoney = FranchiseeInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox4 = $('#checkbox4').prop('checked'); |
| | | if (checkbox4) { |
| | | // var tcx = $("input[name='tcx']:checked").val(); |
| | |
| | | var isOpenDriverSelfTrip = $("input[name='isOpenDriverSelfTrip']:checked").val(); |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompany/updateFranchisee", function(data){ |
| | | if ("error" == data){ |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | if (FranchiseeInfoDlg.hasSubmitError(data)){ |
| | | return; |
| | | } |
| | | Feng.success("修改成功!"); |
| | |
| | | }); |
| | | ajax.set(FranchiseeInfoDlg.franchiseeInfoData); |
| | | if (checkbox1){ |
| | | var zc = $("input[name='zc']:checked").val(); |
| | | ajax.set("isSpeFixedOrProportional",zc); |
| | | if (1 == zc){ |
| | | ajax.set("speMoney",$("#zcPercent").val()); |
| | | }else if (2 == zc) { |
| | | ajax.set("speMoney",$("#zcMoney").val()); |
| | | } |
| | | ajax.set("isSpe",1); |
| | | ajax.set("Spe",speConfig); |
| | | ajax.set("speMoney",speMoney); |
| | | }else{ |
| | | ajax.set("isSpe",2); |
| | | ajax.set("Spe",""); |
| | | ajax.set("speMoney",""); |
| | | } |
| | | if (checkbox2){ |
| | | var cz = $("input[name='cz']:checked").val() |
| | | ajax.set("isTaxiFixedOrProportional",cz); |
| | | if (1 == cz){ |
| | | ajax.set("taxiMoney",$("#czPercent").val()); |
| | | }else if (2 == cz) { |
| | | ajax.set("taxiMoney",$("#czMoney").val()); |
| | | } |
| | | ajax.set("isTaxi",1); |
| | | ajax.set("Taxi",taxiConfig); |
| | | ajax.set("taxiMoney",taxiMoney); |
| | | }else{ |
| | | ajax.set("isTaxi",2); |
| | | ajax.set("Taxi",""); |
| | | ajax.set("taxiMoney",""); |
| | | } |
| | | if (checkbox3){ |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = FranchiseeInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | ajax.set("isCross",1); |
| | | ajax.set("Cross",crossConfig); |
| | | ajax.set("crossMoney",crossMoney); |
| | |
| | | return false; |
| | | } |
| | | |
| | | TCompanyInfoDlg.hasSubmitError = function(data) { |
| | | if (typeof data === "string") { |
| | | if ("error" == data) { |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | } else { |
| | | Feng.error(data); |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | |
| | | return; |
| | | } |
| | | var checkbox1 = $('#checkbox1').prop('checked'); |
| | | var speConfig = $("#Spe").val(); |
| | | var speMoney = ""; |
| | | if (checkbox1) { |
| | | // var zc = $("input[name='zc']:checked").val(); |
| | | // if (1 == zc){ |
| | | // var zcPercent = $("#zcPercent").val(); |
| | | // if ("" == zcPercent){ |
| | | // Feng.info("快车比例抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcPercent)) { |
| | | // Feng.info("快车比例抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // }else if (2 == zc){ |
| | | // var zcMoney = $("#zcMoney").val(); |
| | | // if ("" == zcMoney){ |
| | | // Feng.info("快车固定金额抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcMoney)) { |
| | | // Feng.info("快车固定金额抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // } |
| | | speMoney = TCompanyInfoDlg.getCommissionFromConfig(speConfig, "快车"); |
| | | if (speMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox2 = $('#checkbox2').prop('checked'); |
| | | var taxiConfig = $("#Taxi").val(); |
| | | var taxiMoney = ""; |
| | | if (checkbox2) { |
| | | var cz = $("input[name='cz']:checked").val(); |
| | | if (1 == cz){ |
| | | var czPercent = $("#czPercent").val(); |
| | | if ("" == czPercent){ |
| | | Feng.info("出租车比例抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czPercent)) { |
| | | Feng.info("出租车比例抽成格式不正确!"); |
| | | return; |
| | | } |
| | | }else if (2 == cz){ |
| | | var czMoney = $("#czMoney").val(); |
| | | if ("" == czMoney){ |
| | | Feng.info("出租车固定金额抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czMoney)) { |
| | | Feng.info("出租车固定金额抽成格式不正确!"); |
| | | return; |
| | | } |
| | | taxiMoney = TCompanyInfoDlg.getCommissionFromConfig(taxiConfig, "出租车"); |
| | | if (taxiMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox3 = $('#checkbox3').prop('checked'); |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = ""; |
| | | if (checkbox3) { |
| | | crossMoney = TCompanyInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox4 = $('#checkbox4').prop('checked'); |
| | | if (checkbox4) { |
| | | // var tcx = $("input[name='tcx']:checked").val(); |
| | |
| | | var isOpenDriverSelfTrip = $("input[name='isOpenDriverSelfTrip']:checked").val(); |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompany/add", function(data){ |
| | | if ("error" == data){ |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | if (TCompanyInfoDlg.hasSubmitError(data)){ |
| | | return; |
| | | } |
| | | if(200 == data.code){ |
| | |
| | | }); |
| | | ajax.set(TCompanyInfoDlg.tCompanyInfoData); |
| | | if (checkbox1){ |
| | | var zc = $("input[name='zc']:checked").val(); |
| | | ajax.set("isSpeFixedOrProportional",zc); |
| | | if (1 == zc){ |
| | | ajax.set("speMoney",$("#zcPercent").val()); |
| | | }else if (2 == zc) { |
| | | ajax.set("speMoney",$("#zcMoney").val()); |
| | | } |
| | | ajax.set("isSpe",1); |
| | | ajax.set("Spe",speConfig); |
| | | ajax.set("speMoney",speMoney); |
| | | }else{ |
| | | ajax.set("isSpe",2); |
| | | ajax.set("Spe",""); |
| | | ajax.set("speMoney",""); |
| | | } |
| | | if (checkbox2){ |
| | | var cz = $("input[name='cz']:checked").val() |
| | | ajax.set("isTaxiFixedOrProportional",cz); |
| | | if (1 == cz){ |
| | | ajax.set("taxiMoney",$("#czPercent").val()); |
| | | }else if (2 == cz) { |
| | | ajax.set("taxiMoney",$("#czMoney").val()); |
| | | } |
| | | ajax.set("isTaxi",1); |
| | | ajax.set("Taxi",taxiConfig); |
| | | ajax.set("taxiMoney",taxiMoney); |
| | | }else{ |
| | | ajax.set("isTaxi",2); |
| | | ajax.set("Taxi",""); |
| | | ajax.set("taxiMoney",""); |
| | | } |
| | | if (checkbox3){ |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = TCompanyInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | ajax.set("isCross",1); |
| | | ajax.set("Cross",crossConfig); |
| | | ajax.set("crossMoney",crossMoney); |
| | |
| | | return; |
| | | } |
| | | var checkbox1 = $('#checkbox1').prop('checked'); |
| | | var speConfig = $("#Spe").val(); |
| | | var speMoney = ""; |
| | | if (checkbox1) { |
| | | // var zc = $("input[name='zc']:checked").val(); |
| | | // if (1 == zc){ |
| | | // var zcPercent = $("#zcPercent").val(); |
| | | // if ("" == zcPercent){ |
| | | // Feng.info("快车比例抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcPercent)) { |
| | | // Feng.info("快车比例抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // }else if (2 == zc){ |
| | | // var zcMoney = $("#zcMoney").val(); |
| | | // if ("" == zcMoney){ |
| | | // Feng.info("快车固定金额抽成不能为空!"); |
| | | // return; |
| | | // }else if (!regDouble.test(zcMoney)) { |
| | | // Feng.info("快车固定金额抽成格式不正确!"); |
| | | // return; |
| | | // } |
| | | // } |
| | | speMoney = TCompanyInfoDlg.getCommissionFromConfig(speConfig, "快车"); |
| | | if (speMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox2 = $('#checkbox2').prop('checked'); |
| | | var taxiConfig = $("#Taxi").val(); |
| | | var taxiMoney = ""; |
| | | if (checkbox2) { |
| | | var cz = $("input[name='cz']:checked").val(); |
| | | if (1 == cz){ |
| | | var czPercent = $("#czPercent").val(); |
| | | if ("" == czPercent){ |
| | | Feng.info("出租车比例抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czPercent)) { |
| | | Feng.info("出租车比例抽成格式不正确!"); |
| | | return; |
| | | } |
| | | }else if (2 == cz){ |
| | | var czMoney = $("#czMoney").val(); |
| | | if ("" == czMoney){ |
| | | Feng.info("出租车固定金额抽成不能为空!"); |
| | | return; |
| | | }else if (!regDouble.test(czMoney)) { |
| | | Feng.info("出租车固定金额抽成格式不正确!"); |
| | | return; |
| | | } |
| | | taxiMoney = TCompanyInfoDlg.getCommissionFromConfig(taxiConfig, "出租车"); |
| | | if (taxiMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox3 = $('#checkbox3').prop('checked'); |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = ""; |
| | | if (checkbox3) { |
| | | crossMoney = TCompanyInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | } |
| | | var checkbox4 = $('#checkbox4').prop('checked'); |
| | | if (checkbox4) { |
| | | // var tcx = $("input[name='tcx']:checked").val(); |
| | |
| | | var isOpenDriverSelfTrip = $("input[name='isOpenDriverSelfTrip']:checked").val(); |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompany/update", function(data){ |
| | | if ("error" == data){ |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | if (TCompanyInfoDlg.hasSubmitError(data)){ |
| | | return; |
| | | } |
| | | Feng.success("修改成功!"); |
| | |
| | | }); |
| | | ajax.set(TCompanyInfoDlg.tCompanyInfoData); |
| | | if (checkbox1){ |
| | | var zc = $("input[name='zc']:checked").val(); |
| | | ajax.set("isSpeFixedOrProportional",zc); |
| | | if (1 == zc){ |
| | | ajax.set("speMoney",$("#zcPercent").val()); |
| | | }else if (2 == zc) { |
| | | ajax.set("speMoney",$("#zcMoney").val()); |
| | | } |
| | | ajax.set("isSpe",1); |
| | | ajax.set("Spe",speConfig); |
| | | ajax.set("speMoney",speMoney); |
| | | }else{ |
| | | ajax.set("isSpe",2); |
| | | ajax.set("Spe",""); |
| | | ajax.set("speMoney",""); |
| | | } |
| | | if (checkbox2){ |
| | | var cz = $("input[name='cz']:checked").val() |
| | | ajax.set("isTaxiFixedOrProportional",cz); |
| | | if (1 == cz){ |
| | | ajax.set("taxiMoney",$("#czPercent").val()); |
| | | }else if (2 == cz) { |
| | | ajax.set("taxiMoney",$("#czMoney").val()); |
| | | } |
| | | ajax.set("isTaxi",1); |
| | | ajax.set("Taxi",taxiConfig); |
| | | ajax.set("taxiMoney",taxiMoney); |
| | | }else{ |
| | | ajax.set("isTaxi",2); |
| | | ajax.set("Taxi",""); |
| | | ajax.set("taxiMoney",""); |
| | | } |
| | | if (checkbox3){ |
| | | var crossConfig = $("#Cross").val(); |
| | | var crossMoney = TCompanyInfoDlg.getCommissionFromConfig(crossConfig, "跨城出行"); |
| | | if (crossMoney === false) { |
| | | return; |
| | | } |
| | | ajax.set("isCross",1); |
| | | ajax.set("Cross",crossConfig); |
| | | ajax.set("crossMoney",crossMoney); |
| | |
| | | return $("#" + key).val(); |
| | | } |
| | | |
| | | YesDriverInfoDlg.hasSubmitError = function(data) { |
| | | if (typeof data === "string") { |
| | | if ("error" == data) { |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | } else { |
| | | Feng.error(data); |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | |
| | | } |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/add", function(data){ |
| | | if ("error" == data) { |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | if (YesDriverInfoDlg.hasSubmitError(data)) { |
| | | return; |
| | | } |
| | | if(200 == data.code){ |
| | |
| | | } |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/update", function(data){ |
| | | if ("error" == data) { |
| | | Feng.error("登录账户已存在,请重新输入"); |
| | | if (YesDriverInfoDlg.hasSubmitError(data)) { |
| | | return; |
| | | } |
| | | if(200 == data.code){ |
| | |
| | | .set('outSetting'); |
| | | } |
| | | |
| | | TLineInfoDlg.validateOutSetting = function () { |
| | | var outSetting = $("#outSetting").val(); |
| | | if (!outSetting) { |
| | | Feng.error("请设置司机抽成"); |
| | | return false; |
| | | } |
| | | try { |
| | | var config = JSON.parse(outSetting); |
| | | if (config.rules && config.rules.length > 0) { |
| | | for (var i = 0; i < config.rules.length; i++) { |
| | | if (config.rules[i].percent !== undefined && config.rules[i].percent !== "") { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | if (config.time_rules && config.time_rules.length > 0) { |
| | | for (var j = 0; j < config.time_rules.length; j++) { |
| | | var rules = config.time_rules[j]; |
| | | if (!rules || rules.length <= 0) { |
| | | continue; |
| | | } |
| | | for (var k = 0; k < rules.length; k++) { |
| | | if (rules[k].percent !== undefined && rules[k].percent !== "") { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (e) { |
| | | Feng.error("司机抽成配置格式不正确"); |
| | | return false; |
| | | } |
| | | Feng.error("请设置司机抽成"); |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 提交添加 |
| | | */ |
| | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | if(!TLineInfoDlg.validateOutSetting()){ |
| | | return ; |
| | | } |
| | | var startSiteId = $("#startSiteId").val(); |
| | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | if(!TLineInfoDlg.validateOutSetting()){ |
| | | return ; |
| | | } |
| | | |
| | | var startSiteId = $("#startSiteId").val(); |
| | | var endSiteId = $("#endSiteId").val(); |
| | |
| | | package com.stylefeng.guns.modular.specialTrain.server.impl; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | |
| | | |
| | | @Override |
| | | public ResultUtil payPrivateCarOrder(Integer payType, Integer orderId, Integer couponId, Integer type) throws Exception { |
| | | System.out.println("!!!" + payType + "!!!!" + orderId + "!!!" + couponId); |
| | | OrderPrivateCar orderPrivateCar = this.selectById(orderId); |
| | | if (orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9) { |
| | | return ResultUtil.error("订单已完成支付,不允许重复支付", ""); |
| | |
| | | if (Integer.valueOf(1).equals(orderPrivateCar.getPaymentMode()) && Integer.valueOf(4).equals(orderPrivateCar.getPrepayStage())) { |
| | | return ResultUtil.error("订单退款处理中,请等待退款完成", ""); |
| | | } |
| | | normalizePrivateCarPrepayFirstStageBeforePay(orderPrivateCar); |
| | | System.out.println("!!!" + orderPrivateCar + "!!!!"); |
| | | Integer uid = orderPrivateCar.getUserId(); |
| | | Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney()); |
| | | UserInfo userInfo = userInfoService.selectById(uid); |
| | |
| | | } |
| | | } |
| | | orderMoney = orderMoney < 0 ? 0 : orderMoney; |
| | | ResultUtil prepaySettleResult = settlePrivateCarPrepayIfNoSecondPay(orderPrivateCar, userInfo, orderMoney); |
| | | if (prepaySettleResult != null) { |
| | | return prepaySettleResult; |
| | | orderMoney = new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | boolean isPrepayFirstPayBeforeCreate = isPrivateCarPrepayFirstStage(orderPrivateCar); |
| | | if (!isPrepayFirstPayBeforeCreate) { |
| | | ResultUtil prepaySettleResult = settlePrivateCarPrepayIfNoSecondPay(orderPrivateCar, userInfo, orderMoney); |
| | | if (prepaySettleResult != null) { |
| | | return prepaySettleResult; |
| | | } |
| | | if (orderPrivateCar.getPrepayStage() == 3){ |
| | | orderMoney = orderMoney - orderPrivateCar.getEstimateAmount(); |
| | | } |
| | | } |
| | | orderMoney = getPrivateCarPrepayFinalPayAmount(orderPrivateCar, orderMoney); |
| | | orderMoney = orderMoney < 0 ? 0 : orderMoney; |
| | | orderMoney = new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | if (payType == 1) {//微信支付 |
| | | String outTradeNo = orderId + "_1_" + UUIDUtil.getRandomCode(5); |
| | | JSONObject response = cbyzxOrderPayHelper.createOrder(orderPrivateCar.getUserId(), userInfo.getAppletsOpenId(), outTradeNo, orderMoney); |
| | |
| | | |
| | | boolean isPrepayFirstStage = isPrivateCarPrepayFirstStage(orderPrivateCar); |
| | | boolean isPrepaySpreadStage = isPrivateCarPrepaySpreadStage(orderPrivateCar); |
| | | System.out.println("!!!" + isPrepayFirstStage + "!!!!" + isPrepaySpreadStage + "!!!" + orderPrivateCar); |
| | | if (isPrepayFirstStage) { |
| | | handlePrivateCarPrepayFirstPaid(orderPrivateCar, userInfo, orderMoney, 3); |
| | | return resultUtil; |
| | | } |
| | | if (Integer.valueOf(1).equals(orderPrivateCar.getPaymentMode()) && !isPrepaySpreadStage) { |
| | | return ResultUtil.error("预付阶段异常,请刷新后重试", ""); |
| | | } |
| | | |
| | | OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); |
| | |
| | | if (Integer.valueOf(1).equals(orderPrivateCar.getPaymentMode()) && Integer.valueOf(4).equals(orderPrivateCar.getPrepayStage())) { |
| | | return ResultUtil.error("订单退款处理中,请等待退款完成", new ArrayList<>()); |
| | | } |
| | | normalizePrivateCarPrepayFirstStageBeforePay(orderPrivateCar); |
| | | |
| | | Integer uid = orderPrivateCar.getUserId(); |
| | | Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney()); |
| | |
| | | orderMoney = v; |
| | | } |
| | | } |
| | | if (orderPrivateCar.getPrepayStage() == 3){ |
| | | orderMoney = orderMoney - orderPrivateCar.getEstimateAmount(); |
| | | } |
| | | orderMoney = new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | System.out.println("!!!" + orderMoney + "!!!!"); |
| | | orderMoney = orderMoney < 0 ? 0 : orderMoney; |
| | | ResultUtil prepaySettleResult = settlePrivateCarPrepayIfNoSecondPay(orderPrivateCar, userInfo, orderMoney); |
| | | if (prepaySettleResult != null) { |
| | | return prepaySettleResult; |
| | | boolean isPrepayFirstPayBeforeCreate = isPrivateCarPrepayFirstStage(orderPrivateCar); |
| | | if (!isPrepayFirstPayBeforeCreate) { |
| | | ResultUtil prepaySettleResult = settlePrivateCarPrepayIfNoSecondPay(orderPrivateCar, userInfo, orderMoney); |
| | | if (prepaySettleResult != null) { |
| | | return prepaySettleResult; |
| | | } |
| | | orderMoney = getPrivateCarPrepayFinalPayAmount(orderPrivateCar, orderMoney); |
| | | } |
| | | orderMoney = getPrivateCarPrepayFinalPayAmount(orderPrivateCar, orderMoney); |
| | | if (!isPrivateCarPrepaySpreadStage(orderPrivateCar)) { |
| | | if (!isPrepayFirstPayBeforeCreate && !isPrivateCarPrepaySpreadStage(orderPrivateCar)) { |
| | | orderPrivateCar.setPayMoney(orderMoney); |
| | | } |
| | | if (payType == 1) {//微信支付 |
| | |
| | | |
| | | boolean isPrepayFirstStage = isPrivateCarPrepayFirstStage(orderPrivateCar); |
| | | boolean isPrepaySpreadStage = isPrivateCarPrepaySpreadStage(orderPrivateCar); |
| | | System.out.println("!!!" + isPrepayFirstStage + "!!!!" + isPrepaySpreadStage + "!!!" + orderPrivateCar); |
| | | if (isPrepayFirstStage) { |
| | | handlePrivateCarPrepayFirstPaid(orderPrivateCar, userInfo, orderMoney, 3); |
| | | return resultUtil; |
| | | } |
| | | if (Integer.valueOf(1).equals(orderPrivateCar.getPaymentMode()) && !isPrepaySpreadStage) { |
| | | return ResultUtil.error("预付阶段异常,请刷新后重试"); |
| | | } |
| | | |
| | | OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); |
| | |
| | | && Integer.valueOf(1).equals(orderPrivateCar.getPrepayStage()); |
| | | } |
| | | |
| | | private void normalizePrivateCarPrepayFirstStageBeforePay(OrderPrivateCar orderPrivateCar) throws Exception { |
| | | if (orderPrivateCar == null || !Integer.valueOf(7).equals(orderPrivateCar.getState())) { |
| | | return; |
| | | } |
| | | if (Integer.valueOf(1).equals(orderPrivateCar.getPrepayStage()) |
| | | || Integer.valueOf(3).equals(orderPrivateCar.getPrepayStage()) |
| | | || Integer.valueOf(4).equals(orderPrivateCar.getPrepayStage()) |
| | | || Integer.valueOf(5).equals(orderPrivateCar.getPrepayStage())) { |
| | | return; |
| | | } |
| | | if (Integer.valueOf(1).equals(orderPrivateCar.getPaymentMode())) { |
| | | orderPrivateCar.setPrepayStage(1); |
| | | return; |
| | | } |
| | | PaymentRecord unpaidRecord = paymentRecordService.query(1, orderPrivateCar.getUserId(), 1, |
| | | orderPrivateCar.getId(), 1, null, 1); |
| | | if (unpaidRecord != null && orderPrivateCar.getEstimateAmount() != null && orderPrivateCar.getEstimateAmount() > 0) { |
| | | orderPrivateCar.setPaymentMode(1); |
| | | orderPrivateCar.setPrepayStage(1); |
| | | } |
| | | } |
| | | |
| | | private boolean isPrivateCarPrepaySpreadStage(OrderPrivateCar orderPrivateCar) { |
| | | return orderPrivateCar != null |
| | | && Integer.valueOf(1).equals(orderPrivateCar.getPaymentMode()) |
| | |
| | | Double displayAmount = getPrivateCarPrepayDisplayPayAmount(orderPrivateCar, finalAmount); |
| | | map.put("orderMoney", finalAmount); |
| | | map.put("payMoney", displayAmount); |
| | | if (orderPrivateCar.getPrepayStage() == 3) { |
| | | map.put("payMoney", new BigDecimal(finalAmount) |
| | | .subtract(new BigDecimal(orderPrivateCar.getEstimateAmount() != null ? orderPrivateCar.getEstimateAmount() : 0)) |
| | | .setScale(2, RoundingMode.HALF_UP)); |
| | | } |
| | | } |
| | | |
| | | private ResultUtil settlePrivateCarPrepayIfNoSecondPay(OrderPrivateCar orderPrivateCar, UserInfo userInfo, Double finalAmount) throws Exception { |
| | |
| | | if (prepaySettleResult != null) { |
| | | return prepaySettleResult; |
| | | } |
| | | orderMoney = getTaxiPrepayFinalPayAmount(orderTaxi, orderMoney); |
| | | // orderMoney = getTaxiPrepayFinalPayAmount(orderTaxi, orderMoney); |
| | | if (orderTaxi.getPrepayStage() == 3){ |
| | | orderMoney = orderMoney - orderTaxi.getEstimateAmount(); |
| | | } |
| | | orderMoney = orderMoney < 0 ? 0 : orderMoney; |
| | | orderMoney = new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | if (payType == 1) {//微信支付 |
| | | String outTradeNo = orderId + "_2_" + UUIDUtil.getRandomCode(5); |
| | | JSONObject response = cbyzxOrderPayHelper.createOrder(orderTaxi.getUserId(), userInfo.getAppletsOpenId(), outTradeNo, orderMoney); |
| | |
| | | orderTaxi.setActivityId(query2.getId()); |
| | | orderMoney = v; |
| | | } |
| | | } |
| | | if (orderTaxi.getPrepayStage() == 3){ |
| | | orderMoney = orderMoney - orderTaxi.getEstimateAmount(); |
| | | } |
| | | orderMoney = orderMoney < 0 ? 0 : orderMoney; |
| | | orderMoney = new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | |
| | | } |
| | | Double finalAmount = null != map.get("orderMoney") ? Double.valueOf(String.valueOf(map.get("orderMoney"))) : orderTaxi.getOrderMoney(); |
| | | Double displayAmount = getTaxiPrepayDisplayPayAmount(orderTaxi, finalAmount); |
| | | map.put("orderMoney", displayAmount); |
| | | map.put("orderMoney", finalAmount); |
| | | map.put("payMoney", displayAmount); |
| | | if (orderTaxi.getPrepayStage() == 3) { |
| | | map.put("payMoney", new BigDecimal(finalAmount) |
| | | .subtract(new BigDecimal(orderTaxi.getEstimateAmount() != null ? orderTaxi.getEstimateAmount() : 0)) |
| | | .setScale(2, RoundingMode.HALF_UP)); |
| | | } |
| | | } |
| | | |
| | | private ResultUtil settleTaxiPrepayIfNoSecondPay(OrderTaxi orderTaxi, UserInfo userInfo, Double finalAmount) throws Exception { |