| | |
| | | @Bean |
| | | public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) { |
| | | CookieRememberMeManager manager = new CookieRememberMeManager(); |
| | | manager.setCipherKey(Base64.decode("Z3VucwAAAAAAAAAAAAAAAA==")); |
| | | manager.setCipherKey(Base64.decode("1IuXNg73B4lqGJsB")); |
| | | manager.setCookie(rememberMeCookie); |
| | | return manager; |
| | | } |
| | |
| | | try { |
| | | Map<String, Object> map = orderService.queryOrderInfo(language, orderId, orderType); |
| | | //更新小号绑定关系 |
| | | orderService.RebindMidAxbBindSend(orderId, orderType); |
| | | // orderService.RebindMidAxbBindSend(orderId, orderType); |
| | | |
| | | pushUtil.pushOrderReassign(Integer.valueOf(String.valueOf(map.get("driverId"))), 2,Integer.valueOf(String.valueOf(map.get("orderId"))), orderType, ""); |
| | | |
| | |
| | | orderCrossCity.setTrackId(track); |
| | | |
| | | //调用移动的小号接口 |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()); |
| | | Region region = regionMapper.query(geocode.get("districtCode")); |
| | | Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | if(String.valueOf(map.get("code")).equals("200")){ |
| | | orderCrossCity.setTelX(map.get("telX")); |
| | | orderCrossCity.setBindId(map.get("bindId")); |
| | | } |
| | | // Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()); |
| | | // Region region = regionMapper.query(geocode.get("districtCode")); |
| | | // Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | // if(String.valueOf(map.get("code")).equals("200")){ |
| | | // orderCrossCity.setTelX(map.get("telX")); |
| | | // orderCrossCity.setBindId(map.get("bindId")); |
| | | // } |
| | | if(orderCrossCityWarpper.getTravelMode() == 2){//包车 |
| | | orderCrossCity.setSeatNumber(lineShiftDriver.getLaveSeatNumber()); |
| | | orderCrossCity.setPeopleNumber(lineShiftDriver.getLaveSeat()); |
| | |
| | | Driver driver = driverService.selectById(uid); |
| | | orderLogistics.setDriverId(uid); |
| | | orderLogistics.setCarId(driver.getCarId()); |
| | | orderLogistics.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderLogistics.setCompanyId(driver.getCompanyId()); |
| | | orderLogistics.setState(2); |
| | | orderLogistics.setSnatchOrderTime(new Date()); |
| | | if(!StringUtils.hasLength(orderLogistics.getTripId())){ |
| | |
| | | tripStatus = "ENROUTE_TO_DROPOFF"; |
| | | break; |
| | | case 6://结束服务 |
| | | if(null == lon || null == lat){ |
| | | return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides"); |
| | | } |
| | | orderLogistics.setGetoffLon(lon); |
| | | orderLogistics.setGetoffLat(lat); |
| | | orderLogistics.setGetoffAddress(address); |
| | |
| | | Driver driver = driverService.selectById(uid); |
| | | orderLogistics.setDriverId(uid); |
| | | orderLogistics.setCarId(driver.getCarId()); |
| | | orderLogistics.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderLogistics.setCompanyId(driver.getCompanyId()); |
| | | orderLogistics.setState(2); |
| | | Date date = new Date(); |
| | | orderLogistics.setSnatchOrderTime(date); |
| | |
| | | if(orderLogistics.getArriveTime()==null){ |
| | | orderLogistics.setArriveTime(orderLogistics.getStartServiceTime()); |
| | | } |
| | | |
| | | //使用原始里程计算费用 |
| | | orderLogistics = this.setMoney(orderLogistics, 0D, 0D);//计算费用 |
| | | Double mileage = orderLogistics.getMileage(); |
| | | Double orderMoney1 = orderLogistics.getOrderMoney(); |
| | | //使用预估里程计算费用 |
| | | Double startLat = orderLogistics.getStartLat(); |
| | | Double startLon = orderLogistics.getStartLon(); |
| | | Double getoffLon = orderLogistics.getGetoffLon(); |
| | | Double getoffLat = orderLogistics.getGetoffLat(); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(startLat, startLon, getoffLat, getoffLon, orderLogistics.getTripId()); |
| | | orderLogistics.setMileage(distancematrix.getDistance().doubleValue()); |
| | | orderLogistics = this.setMoney(orderLogistics, 0D, 0D); |
| | | Double orderMoney2 = orderLogistics.getOrderMoney(); |
| | | //如果原始金额小于预估金额,且比例小于95%,则使用预估金额 |
| | | if(orderMoney1.compareTo(orderMoney2) >= 0 || orderMoney1 / orderMoney2 >= 0.95){ |
| | | //原始金额大于预估金额或者比例大于0.95,则使用原始里程重新计算费用 |
| | | orderLogistics.setMileage(mileage); |
| | | orderLogistics = this.setMoney(orderLogistics, 0D, 0D);//计算费用 |
| | | } |
| | | |
| | | orderLogistics.setPayManner(type); |
| | | orderLogistics.setParkMoney(null == parkingFee ? 0D : parkingFee); |
| | | orderLogistics.setRoadTollMoney(null == crossingFee ? 0D : crossingFee); |
| | |
| | | orderLogistics.setState(7); |
| | | } |
| | | |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindId(),orderLogistics.getTelX()); |
| | | if(String.valueOf(map.get("code")).equals("200")){ |
| | | orderLogistics.setTelX(""); |
| | | orderLogistics.setBindId(""); |
| | | } |
| | | // Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindId(),orderLogistics.getTelX()); |
| | | // if(String.valueOf(map.get("code")).equals("200")){ |
| | | // orderLogistics.setTelX(""); |
| | | // orderLogistics.setBindId(""); |
| | | // } |
| | | this.updateById(orderLogistics); |
| | | //修改行程数据 |
| | | Car car = carService.selectById(orderLogistics.getCarId()); |
| | |
| | | Driver driver = driverService.selectById(uid); |
| | | orderPrivateCar.setDriverId(uid); |
| | | orderPrivateCar.setCarId(driver.getCarId()); |
| | | orderPrivateCar.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderPrivateCar.setCompanyId(driver.getCompanyId()); |
| | | orderPrivateCar.setState(2); |
| | | orderPrivateCar.setSnatchOrderTime(new Date()); |
| | | if(!StringUtils.hasLength(orderPrivateCar.getTripId())){ |
| | |
| | | } |
| | | break; |
| | | case 6://结束服务(专车可以返回继续服务)不修改状态 |
| | | if(null == lon || null == lat){ |
| | | return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides"); |
| | | } |
| | | orderPrivateCar.setState(6); |
| | | orderPrivateCar.setGetoffLon(lon); |
| | | orderPrivateCar.setGetoffLat(lat); |
| | |
| | | orderPrivateCar.setArriveTime(orderPrivateCar.getStartServiceTime()); |
| | | } |
| | | |
| | | //使用原始里程计算费用 |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | Double mileage = orderPrivateCar.getMileage(); |
| | | Double orderMoney1 = orderPrivateCar.getOrderMoney(); |
| | | //使用预估里程计算费用 |
| | | Double startLat = orderPrivateCar.getStartLat(); |
| | | Double startLon = orderPrivateCar.getStartLon(); |
| | | Double getoffLon = orderPrivateCar.getGetoffLon(); |
| | | Double getoffLat = orderPrivateCar.getGetoffLat(); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(startLat, startLon, getoffLat, getoffLon, orderPrivateCar.getTripId()); |
| | | orderPrivateCar.setMileage(distancematrix.getDistance().doubleValue()); |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D); |
| | | Double orderMoney2 = orderPrivateCar.getOrderMoney(); |
| | | //如果原始金额小于预估金额,且比例小于95%,则使用预估金额 |
| | | if(orderMoney1.compareTo(orderMoney2) >= 0 || orderMoney1 / orderMoney2 >= 0.95){ |
| | | //原始金额大于预估金额或者比例大于0.95,则使用原始里程重新计算费用 |
| | | orderPrivateCar.setMileage(mileage); |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | } |
| | | |
| | | orderPrivateCar.setPayManner(type); |
| | | orderPrivateCar.setParkMoney(null == parkingFee ? 0D : parkingFee); |
| | | orderPrivateCar.setRoadTollMoney(null == crossingFee ? 0D : crossingFee); |
| | |
| | | where a.state = 1 |
| | | <choose> |
| | | <when test="companyId != 1"> |
| | | and a.companyId = #{companyId} or a.franchiseeId = #{companyId} |
| | | and a.companyId = #{companyId} |
| | | </when> |
| | | <otherwise> |
| | | and a.isPlatCar = 1 |
| | |
| | | pushOrder as pushOrder |
| | | from t_dispatch where state != 3 |
| | | <if test="null != companyId"> |
| | | and if(franchiseeId is null or franchiseeId = 0, companyId = #{companyId}, franchiseeId = #{companyId}) |
| | | and companyId = #{companyId} |
| | | </if> |
| | | <if test="null != pushOrder"> |
| | | and pushOrder = #{pushOrder} |
| | |
| | | a.networkCarlssueImg as networkCarlssueImg, |
| | | a.placeOfEmployment as placeOfEmployment, |
| | | (select id from t_city where chineseName = a.placeOfPractice or englishName = a.placeOfPractice or frenchName = a.placeOfPractice)placeOfPracticeId, |
| | | (select `name` from t_company where 1 = 1 and if(a.companyId is null or a.companyId = 0, id = 1, if(a.franchiseeId is null or a.franchiseeId = 0, id = a.companyId, id = a.franchiseeId))) as company, |
| | | (select `name` from t_company where 1 = 1 and if(a.companyId is null or a.companyId = 0, id = 1, id = a.companyId)) as company, |
| | | b.carLicensePlate as licensePlate, |
| | | b.carColor as carColor, |
| | | b.vehicleId, |
| | |
| | | from t_driver where flag != 3 and authState = 2 |
| | | <choose> |
| | | <when test="companyId == 1"> |
| | | and (companyId = 1 or companyId is null or companyId = 0) and (franchiseeId = 0 or franchiseeId is null) |
| | | and (companyId = 1 or companyId is null or companyId = 0) |
| | | </when> |
| | | <otherwise> |
| | | and companyId = #{companyId} or franchiseeId = #{companyId} |
| | | and companyId = #{companyId} |
| | | </otherwise> |
| | | </choose> |
| | | </select> |
| | |
| | | <if test="null != companyId"> |
| | | <choose> |
| | | <when test="companyId != 1"> |
| | | and companyId = #{companyId} or franchiseeId = #{companyId} |
| | | and companyId = #{companyId} |
| | | </when> |
| | | <otherwise> |
| | | and companyId is null or companyId = 0 or companyId = 1 or franchiseeId is null or franchiseeId = 0 |
| | | and companyId is null or companyId = 0 or companyId = 1 |
| | | </otherwise> |
| | | </choose> |
| | | |
| | |
| | | @Override |
| | | public boolean idle(Integer id) throws Exception { |
| | | Car car = this.selectById(id); |
| | | List<Map<String, Object>> list = carMapper.queryIdleData(car.getFranchiseeId() != null && car.getFranchiseeId() != 0 ? car.getFranchiseeId() : ( |
| | | car.getCompanyId() != null && car.getCompanyId() != 0 ? car.getCompanyId() : 1)); |
| | | List<Map<String, Object>> list = carMapper.queryIdleData(car.getCompanyId()); |
| | | for(Map<String, Object> map : list){ |
| | | Integer carId = Integer.valueOf(String.valueOf(map.get("id"))); |
| | | if(carId.compareTo(id) == 0){ |
| | |
| | | } |
| | | Driver driver = driverService.selectById(uid); |
| | | car.setCompanyId(driver.getCompanyId()); |
| | | car.setFranchiseeId(driver.getFranchiseeId()); |
| | | car.setInsertTime(new Date()); |
| | | car.setState(1); |
| | | car.setAuthState(1); |
| | | car.setAddType(1); |
| | | car.setDriverId(uid); |
| | | car.setAddObjectId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | Company company = companyMapper.selectById(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | car.setAddObjectId(driver.getCompanyId()); |
| | | Company company = companyMapper.selectById(driver.getCompanyId()); |
| | | car.setIsPlatCar(company.getType() == 1 ? 1 : 2); |
| | | this.insertOrUpdate(car); |
| | | //判断司机是否已经关联车辆,未关联车辆默认关联当前车辆 |
| | |
| | | driverActivityHistory.setCompletionTime(new Date()); |
| | | driverActivityHistoryMapper.updateById(driverActivityHistory); |
| | | } |
| | | driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverMapper.updateById(driver); |
| | | |
| | | if(list.size() > 0 && ToolUtil.isNotEmpty(driver.getEmail())){ |
| | | Driver finalDriver = driver; |
| | | BigDecimal finalBigDecimal = bigDecimal; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | String path = templatePath + "driver/index.html"; |
| | | Document document = Jsoup.parse(new File(path), "UTF-8"); |
| | | if(1 == language){ |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("french").remove(); |
| | | document.getElementById("user").remove(); |
| | | document.getElementById("settle").remove(); |
| | | document.getElementById("pass").remove(); |
| | | document.getElementById("email").remove(); |
| | | document.getElementById("bill").remove(); |
| | | document.getElementById("reward").remove(); |
| | | document.getElementById("rewardToday").remove(); |
| | | document.getElementById("driverAudit").remove(); |
| | | document.getElementById("carAudit").remove(); |
| | | |
| | | document.getElementsByTag("title").get(0).text("司机奖励通知"); |
| | | Element invite_user = document.getElementById("invite_user"); |
| | | invite_user.text("您好 " + finalDriver.getFirstName() + "" + finalDriver.getLastName() + ","); |
| | | Element invite_content = document.getElementById("invite_content"); |
| | | invite_content.text("您已成功邀请一位司机注册I-GO,获得奖励GHS " + finalBigDecimal.doubleValue() + ",请查收"); |
| | | } |
| | | if(2 == language){ |
| | | document.getElementById("chinese").remove(); |
| | | document.getElementById("french").remove(); |
| | | document.getElementById("user1").remove(); |
| | | document.getElementById("settle1").remove(); |
| | | document.getElementById("pass1").remove(); |
| | | document.getElementById("email1").remove(); |
| | | document.getElementById("bill1").remove(); |
| | | document.getElementById("reward1").remove(); |
| | | document.getElementById("rewardToday1").remove(); |
| | | document.getElementById("driverAudit1").remove(); |
| | | document.getElementById("carAudit1").remove(); |
| | | |
| | | document.getElementsByTag("title").get(0).text("Reward-driver notice"); |
| | | Element invite1_user = document.getElementById("invite1_user"); |
| | | invite1_user.text("Hello " + finalDriver.getFirstName() + "" + finalDriver.getLastName() + ","); |
| | | Element invite1_content = document.getElementById("invite1_content"); |
| | | invite1_content.text("You have succeeded to invite a driver to register with I-GO, so you received a GHS " + finalBigDecimal.doubleValue() + " bonus, please check your balance."); |
| | | } |
| | | if(3 == language){ |
| | | document.getElementById("chinese").remove(); |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("user2").remove(); |
| | | document.getElementById("settle2").remove(); |
| | | document.getElementById("pass2").remove(); |
| | | document.getElementById("email2").remove(); |
| | | document.getElementById("bill2").remove(); |
| | | document.getElementById("reward2").remove(); |
| | | document.getElementById("rewardToday2").remove(); |
| | | document.getElementById("driverAudit2").remove(); |
| | | document.getElementById("carAudit2").remove(); |
| | | |
| | | document.getElementsByTag("title").get(0).text("Avis de chauffeur de récompense"); |
| | | Element invite2_user = document.getElementById("invite2_user"); |
| | | invite2_user.text("Bonjour " + finalDriver.getFirstName() + " " + finalDriver.getLastName() + ","); |
| | | Element invite2_content = document.getElementById("invite2_content"); |
| | | invite2_content.text("Vous avez invité avec succès un conducteur à s’inscrire à i-go pour recevoir une récompense GHS " + finalBigDecimal.doubleValue() + ". Veuillez vérifier"); |
| | | } |
| | | EmailUtil.send(finalDriver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document.html()); |
| | | String randomString = ToolUtil.getRandomString(10); |
| | | //开始生成pdf收据和html收据 |
| | | File file = new File("/home/igotechgh/nginx/html/files/html/"); |
| | | if(!file.exists()){ |
| | | file.mkdirs(); |
| | | } |
| | | file = new File("/home/igotechgh/nginx/html/files/html/invitation_" + randomString + ".html"); |
| | | if(!file.exists()){ |
| | | file.createNewFile(); |
| | | } |
| | | FileWriter fileWriter = new FileWriter(file); |
| | | fileWriter.write(document.html()); |
| | | fileWriter.flush(); |
| | | fileWriter.close(); |
| | | if(bigDecimal.compareTo(BigDecimal.ZERO) > 0){ |
| | | driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverMapper.updateById(driver); |
| | | |
| | | String link ="https://igo.i-go.group/files/html/invitation_" + randomString + ".html"; |
| | | TEmail tEmail = new TEmail(); |
| | | tEmail.setLink(link); |
| | | tEmail.setUserId(finalDriver.getId()); |
| | | tEmail.setType(2); |
| | | tEmail.setName(language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense"); |
| | | tEmail.setCreateTime(new Date()); |
| | | int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1; |
| | | String week = EmailUtil.getWeek(language, i); |
| | | tEmail.setWeek(week); |
| | | boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); |
| | | if(am){ |
| | | tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); |
| | | }else { |
| | | tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); |
| | | if(ToolUtil.isNotEmpty(driver.getEmail())){ |
| | | Driver finalDriver = driver; |
| | | BigDecimal finalBigDecimal = bigDecimal; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | String path = templatePath + "driver/index.html"; |
| | | Document document = Jsoup.parse(new File(path), "UTF-8"); |
| | | if(1 == language){ |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("french").remove(); |
| | | document.getElementById("user").remove(); |
| | | document.getElementById("settle").remove(); |
| | | document.getElementById("pass").remove(); |
| | | document.getElementById("email").remove(); |
| | | document.getElementById("bill").remove(); |
| | | document.getElementById("reward").remove(); |
| | | document.getElementById("rewardToday").remove(); |
| | | document.getElementById("driverAudit").remove(); |
| | | document.getElementById("carAudit").remove(); |
| | | |
| | | document.getElementsByTag("title").get(0).text("司机奖励通知"); |
| | | Element invite_user = document.getElementById("invite_user"); |
| | | invite_user.text("您好 " + finalDriver.getFirstName() + "" + finalDriver.getLastName() + ","); |
| | | Element invite_content = document.getElementById("invite_content"); |
| | | invite_content.text("您已成功邀请一位司机注册I-GO,获得奖励GHS " + finalBigDecimal.doubleValue() + ",请查收"); |
| | | } |
| | | if(2 == language){ |
| | | document.getElementById("chinese").remove(); |
| | | document.getElementById("french").remove(); |
| | | document.getElementById("user1").remove(); |
| | | document.getElementById("settle1").remove(); |
| | | document.getElementById("pass1").remove(); |
| | | document.getElementById("email1").remove(); |
| | | document.getElementById("bill1").remove(); |
| | | document.getElementById("reward1").remove(); |
| | | document.getElementById("rewardToday1").remove(); |
| | | document.getElementById("driverAudit1").remove(); |
| | | document.getElementById("carAudit1").remove(); |
| | | |
| | | document.getElementsByTag("title").get(0).text("Reward-driver notice"); |
| | | Element invite1_user = document.getElementById("invite1_user"); |
| | | invite1_user.text("Hello " + finalDriver.getFirstName() + "" + finalDriver.getLastName() + ","); |
| | | Element invite1_content = document.getElementById("invite1_content"); |
| | | invite1_content.text("You have succeeded to invite a driver to register with I-GO, so you received a GHS " + finalBigDecimal.doubleValue() + " bonus, please check your balance."); |
| | | } |
| | | if(3 == language){ |
| | | document.getElementById("chinese").remove(); |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("user2").remove(); |
| | | document.getElementById("settle2").remove(); |
| | | document.getElementById("pass2").remove(); |
| | | document.getElementById("email2").remove(); |
| | | document.getElementById("bill2").remove(); |
| | | document.getElementById("reward2").remove(); |
| | | document.getElementById("rewardToday2").remove(); |
| | | document.getElementById("driverAudit2").remove(); |
| | | document.getElementById("carAudit2").remove(); |
| | | |
| | | document.getElementsByTag("title").get(0).text("Avis de chauffeur de récompense"); |
| | | Element invite2_user = document.getElementById("invite2_user"); |
| | | invite2_user.text("Bonjour " + finalDriver.getFirstName() + " " + finalDriver.getLastName() + ","); |
| | | Element invite2_content = document.getElementById("invite2_content"); |
| | | invite2_content.text("Vous avez invité avec succès un conducteur à s’inscrire à i-go pour recevoir une récompense GHS " + finalBigDecimal.doubleValue() + ". Veuillez vérifier"); |
| | | } |
| | | EmailUtil.send(finalDriver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document.html()); |
| | | String randomString = ToolUtil.getRandomString(10); |
| | | //开始生成pdf收据和html收据 |
| | | File file = new File("/home/igotechgh/nginx/html/files/html/"); |
| | | if(!file.exists()){ |
| | | file.mkdirs(); |
| | | } |
| | | file = new File("/home/igotechgh/nginx/html/files/html/invitation_" + randomString + ".html"); |
| | | if(!file.exists()){ |
| | | file.createNewFile(); |
| | | } |
| | | FileWriter fileWriter = new FileWriter(file); |
| | | fileWriter.write(document.html()); |
| | | fileWriter.flush(); |
| | | fileWriter.close(); |
| | | |
| | | String link ="https://igo.i-go.group/files/html/invitation_" + randomString + ".html"; |
| | | TEmail tEmail = new TEmail(); |
| | | tEmail.setLink(link); |
| | | tEmail.setUserId(finalDriver.getId()); |
| | | tEmail.setType(2); |
| | | tEmail.setName(language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense"); |
| | | tEmail.setCreateTime(new Date()); |
| | | int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1; |
| | | String week = EmailUtil.getWeek(language, i); |
| | | tEmail.setWeek(week); |
| | | boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); |
| | | if(am){ |
| | | tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); |
| | | }else { |
| | | tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); |
| | | } |
| | | emailService.insert(tEmail); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | emailService.insert(tEmail); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }).start(); |
| | | }).start(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | if(type == 1){//用户分享 |
| | | UserInfo userInfo = userInfoMapper.selectById(uid); |
| | |
| | | return ResultUtil.error(language == 1 ? "选择从业地暂未开通业务" : language == 2 ? "Not yet to commence business at the workplace selected." : "N’a pas encore commencé ses activités sur le lieu de travail sélectionné."); |
| | | } |
| | | if(null != query){ |
| | | switch (query.getType()){ |
| | | case 1://平台 |
| | | driver.setCompanyId(query.getId()); |
| | | break; |
| | | case 2://分公司 |
| | | driver.setCompanyId(query.getId()); |
| | | break; |
| | | case 3://加盟商 |
| | | driver.setCompanyId(query.getSuperiorId()); |
| | | driver.setFranchiseeId(query.getId()); |
| | | break; |
| | | } |
| | | driver.setCompanyId(query.getId()); |
| | | } |
| | | driver.setHeadImgUrl(registeredWarpper.getHeadImgUrl()); |
| | | driver.setIdCardImgUrl1(registeredWarpper.getIdCardImgUrl1()); |
| | |
| | | @Override |
| | | public Map<String, Object> queryPhone(Integer uid) throws Exception { |
| | | Driver driver = this.selectById(uid); |
| | | Company company = companyMapper.selectById(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | Company company = companyMapper.selectById(driver.getCompanyId()); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if(company.getType() == 3){//加盟商 |
| | | Phone phone = phoneMapper.queryInfo(company.getId(), 2); |
| | |
| | | */ |
| | | @Override |
| | | public void taskMidAxbUnBindSend() throws Exception { |
| | | List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend(); |
| | | for(OrderTaxi orderTaxi : list){ |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); |
| | | if(!String.valueOf(map.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map.get("msg"))); |
| | | } |
| | | orderTaxi.setTelX(""); |
| | | orderTaxi.setBindId(""); |
| | | } |
| | | if(list.size() > 0){ |
| | | orderTaxiService.updateBatchById(list); |
| | | } |
| | | |
| | | List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend(); |
| | | for(OrderPrivateCar orderPrivateCar : list1){ |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | if(!String.valueOf(map.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map.get("msg"))); |
| | | } |
| | | orderPrivateCar.setTelX(""); |
| | | orderPrivateCar.setBindId(""); |
| | | } |
| | | if(list1.size() > 0){ |
| | | orderPrivateCarService.updateBatchById(list1); |
| | | } |
| | | // List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend(); |
| | | // for(OrderTaxi orderTaxi : list){ |
| | | // Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); |
| | | // if(!String.valueOf(map.get("code")).equals("200")){ |
| | | // System.err.println(String.valueOf(map.get("msg"))); |
| | | // } |
| | | // orderTaxi.setTelX(""); |
| | | // orderTaxi.setBindId(""); |
| | | // } |
| | | // if(list.size() > 0){ |
| | | // orderTaxiService.updateBatchById(list); |
| | | // } |
| | | // |
| | | // List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend(); |
| | | // for(OrderPrivateCar orderPrivateCar : list1){ |
| | | // Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | // if(!String.valueOf(map.get("code")).equals("200")){ |
| | | // System.err.println(String.valueOf(map.get("msg"))); |
| | | // } |
| | | // orderPrivateCar.setTelX(""); |
| | | // orderPrivateCar.setBindId(""); |
| | | // } |
| | | // if(list1.size() > 0){ |
| | | // orderPrivateCarService.updateBatchById(list1); |
| | | // } |
| | | } |
| | | |
| | | |
| | |
| | | case 1: |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); |
| | | if(ToolUtil.isNotEmpty(orderPrivateCar.getBindId())){ |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | if(!String.valueOf(map1.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map1.get("msg"))); |
| | | } |
| | | // Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | // if(!String.valueOf(map1.get("code")).equals("200")){ |
| | | // System.err.println(String.valueOf(map1.get("msg"))); |
| | | // } |
| | | //调用移动的小号接口 |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); |
| | | Region region = regionMapper.query(geocode.get("districtCode")); |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | if(String.valueOf(map.get("code")).equals("200")){ |
| | | orderPrivateCar.setTelX(map.get("telX")); |
| | | orderPrivateCar.setBindId(map.get("bindId")); |
| | | } |
| | | // Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); |
| | | // Region region = regionMapper.query(geocode.get("districtCode")); |
| | | // Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | // Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | // if(String.valueOf(map.get("code")).equals("200")){ |
| | | // orderPrivateCar.setTelX(map.get("telX")); |
| | | // orderPrivateCar.setBindId(map.get("bindId")); |
| | | // } |
| | | orderPrivateCarService.updateById(orderPrivateCar); |
| | | } |
| | | break; |
| | | case 2: |
| | | OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); |
| | | if(ToolUtil.isNotEmpty(orderTaxi.getBindId())){ |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); |
| | | if(!String.valueOf(map1.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map1.get("msg"))); |
| | | } |
| | | // Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); |
| | | // if(!String.valueOf(map1.get("code")).equals("200")){ |
| | | // System.err.println(String.valueOf(map1.get("msg"))); |
| | | // } |
| | | //调用移动的小号接口 |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); |
| | | Region region = regionMapper.query(geocode.get("districtCode")); |
| | | Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | if(String.valueOf(map.get("code")).equals("200")){ |
| | | orderTaxi.setTelX(map.get("telX")); |
| | | orderTaxi.setBindId(map.get("bindId")); |
| | | } |
| | | // Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); |
| | | // Region region = regionMapper.query(geocode.get("districtCode")); |
| | | // Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | // Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | // if(String.valueOf(map.get("code")).equals("200")){ |
| | | // orderTaxi.setTelX(map.get("telX")); |
| | | // orderTaxi.setBindId(map.get("bindId")); |
| | | // } |
| | | orderTaxiService.updateById(orderTaxi); |
| | | } |
| | | break; |
| | | case 3: |
| | | OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId); |
| | | if(ToolUtil.isNotEmpty(orderCrossCity.getBindId())){ |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX()); |
| | | if(!String.valueOf(map1.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map1.get("msg"))); |
| | | } |
| | | // Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX()); |
| | | // if(!String.valueOf(map1.get("code")).equals("200")){ |
| | | // System.err.println(String.valueOf(map1.get("msg"))); |
| | | // } |
| | | //调用移动的小号接口 |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()); |
| | | Region region = regionMapper.query(geocode.get("districtCode")); |
| | | Driver driver = driverService.selectById(orderCrossCity.getDriverId()); |
| | | Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | if(String.valueOf(map.get("code")).equals("200")){ |
| | | orderCrossCity.setTelX(map.get("telX")); |
| | | orderCrossCity.setBindId(map.get("bindId")); |
| | | } |
| | | // Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()); |
| | | // Region region = regionMapper.query(geocode.get("districtCode")); |
| | | // Driver driver = driverService.selectById(orderCrossCity.getDriverId()); |
| | | // Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | // if(String.valueOf(map.get("code")).equals("200")){ |
| | | // orderCrossCity.setTelX(map.get("telX")); |
| | | // orderCrossCity.setBindId(map.get("bindId")); |
| | | // } |
| | | orderCrossCityService.updateById(orderCrossCity); |
| | | } |
| | | break; |
| | |
| | | |
| | | orderPrivateCar.setDriverId(driver1.getId()); |
| | | orderPrivateCar.setCarId(driver1.getCarId()); |
| | | orderPrivateCar.setCompanyId(driver1.getFranchiseeId() != null && driver1.getFranchiseeId() != 0 ? driver1.getFranchiseeId() : ( |
| | | driver1.getCompanyId() != null && driver1.getCompanyId() != 0 ? driver1.getCompanyId() : 1)); |
| | | orderPrivateCar.setCompanyId(driver1.getCompanyId()); |
| | | orderPrivateCar.setSnatchOrderTime(new Date()); |
| | | orderPrivateCar.setState(orderPrivateCar.getOldState()); |
| | | orderPrivateCar.setOldState(null); |
| | |
| | | |
| | | orderLogistics.setDriverId(driver1.getId()); |
| | | orderLogistics.setCarId(driver1.getCarId()); |
| | | orderLogistics.setCompanyId(driver1.getFranchiseeId() != null && driver1.getFranchiseeId() != 0 ? driver1.getFranchiseeId() : ( |
| | | driver1.getCompanyId() != null && driver1.getCompanyId() != 0 ? driver1.getCompanyId() : 1)); |
| | | orderLogistics.setCompanyId(driver1.getCompanyId()); |
| | | orderLogistics.setState(orderLogistics.getOldState()); |
| | | orderLogistics.setOldState(null); |
| | | orderLogistics.setSnatchOrderTime(new Date()); |
| | |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("orderId", reassign.getOrderId().toString()); |
| | | map.put("orderType", reassign.getOrderType().toString()); |
| | | List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1); |
| | | List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getCompanyId(), 1); |
| | | for(Dispatch dispatch : dispatches){ |
| | | jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId()); |
| | | } |
| | |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("orderId", reassign.getOrderId().toString()); |
| | | map.put("orderType", reassign.getOrderType().toString()); |
| | | List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1); |
| | | List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getCompanyId(), 1); |
| | | for(Dispatch dispatch : dispatches){ |
| | | jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId()); |
| | | } |
| | |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("orderId", reassign.getOrderId().toString()); |
| | | map.put("orderType", reassign.getOrderType().toString()); |
| | | List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1); |
| | | List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getCompanyId(), 1); |
| | | for(Dispatch dispatch : dispatches){ |
| | | jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId()); |
| | | } |
| | |
| | | gmailssl(props); |
| | | |
| | | final String displayName = "I-GO";//昵称 |
| | | final String username = "i-gotech@i-go.group";// gmail 邮箱 |
| | | final String password = "wpwfkrlvridoayyh";// Google应用专用密码 |
| | | final String username = "noreply@i-go.group";// gmail 邮箱 |
| | | final String password = "fggipafjlcqxjmef";// Google应用专用密码 |
| | | Session session = Session.getInstance(props, |
| | | new Authenticator() { |
| | | protected PasswordAuthentication getPasswordAuthentication() { |
| | |
| | | driverService.taskMinute(); |
| | | //处于预约单 |
| | | orderService.reservationOrder(); |
| | | //处理结束订单后30分钟解绑小号功能 |
| | | orderService.taskMidAxbUnBindSend(); |
| | | // //处理结束订单后30分钟解绑小号功能 |
| | | // orderService.taskMidAxbUnBindSend(); |
| | | //处理司机连续不接单的情况 |
| | | driverOnlineService.deductionDuration1(); |
| | | //处理google订单状态 |
| | |
| | | Driver driver = driverService.selectById(uid); |
| | | orderTaxi.setDriverId(uid); |
| | | orderTaxi.setCarId(driver.getCarId()); |
| | | orderTaxi.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderTaxi.setCompanyId(driver.getCompanyId()); |
| | | orderTaxi.setState(2); |
| | | orderTaxi.setSnatchOrderTime(new Date()); |
| | | |
| | |
| | | orderTaxi.setTrackId(track); |
| | | |
| | | //调用移动的小号接口 |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); |
| | | Region region = regionMapper.query(geocode.get("districtCode")); |
| | | Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | if(String.valueOf(map.get("code")).equals("200")){ |
| | | orderTaxi.setTelX(map.get("telX")); |
| | | orderTaxi.setBindId(map.get("bindId")); |
| | | } |
| | | // Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); |
| | | // Region region = regionMapper.query(geocode.get("districtCode")); |
| | | // Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); |
| | | // if(String.valueOf(map.get("code")).equals("200")){ |
| | | // orderTaxi.setTelX(map.get("telX")); |
| | | // orderTaxi.setBindId(map.get("bindId")); |
| | | // } |
| | | |
| | | this.updateById(orderTaxi); |
| | | |
| | |
| | | Driver driver = driverService.selectById(uid); |
| | | orderTaxi.setDriverId(uid); |
| | | orderTaxi.setCarId(driver.getCarId()); |
| | | orderTaxi.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderTaxi.setCompanyId(driver.getCompanyId()); |
| | | orderTaxi.setState(2); |
| | | Date date = new Date(); |
| | | orderTaxi.setSnatchOrderTime(date); |
| | |
| | | multipart: |
| | | max-request-size: 100MB |
| | | max-file-size: 100MB |
| | | file-size-threshold: 100MB |
| | | redis: |
| | | database: 0 |
| | | host: 127.0.0.1 |
| | |
| | | |
| | | spring: |
| | | mail: |
| | | host: smtp.gmail.com # 配置 smtp 服务器地址 |
| | | port: 465 # smtp 服务器的端口 |
| | | username: i-gotech@i-go.group # 配置邮箱用户名(你的邮箱地址) |
| | | password: mhizkqkhuknbitps # 配置申请到的授权码(刚让复制的授权码) |
| | | default-encoding: UTF-8 # 配置邮件编码 |
| | | properties: |
| | | mail: |
| | | smtp: |
| | | socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂 |
| | | debug: true |
| | | from: i-gotech@i-go.group # 发送方邮件,配在yml中可方便更改 |
| | | template-path: /home/igotechgh/nginx/html/mailbox/ |
| | | |
| | | --- |
| | |
| | | } |
| | | |
| | | /** |
| | | * 项目自定义的Realm |
| | | */ |
| | | @Bean |
| | | public ShiroDbRealm shiroDbRealm() { |
| | | return new ShiroDbRealm(); |
| | | } |
| | | |
| | | /** |
| | | * spring session管理器(多机环境) |
| | | */ |
| | | @Bean |
| | |
| | | } |
| | | |
| | | /** |
| | | * 项目自定义的Realm |
| | | */ |
| | | @Bean |
| | | public ShiroDbRealm shiroDbRealm() { |
| | | return new ShiroDbRealm(); |
| | | } |
| | | |
| | | /** |
| | | * rememberMe管理器, cipherKey生成见{@code Base64Test.java} |
| | | */ |
| | | @Bean |
| | | public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) { |
| | | CookieRememberMeManager manager = new CookieRememberMeManager(); |
| | | manager.setCipherKey(Base64.decode("Z3VucwAAAAAAAAAAAAAAAA==")); |
| | | manager.setCipherKey(Base64.decode("1IuXNg73B4lqGJsB")); |
| | | manager.setCookie(rememberMeCookie); |
| | | return manager; |
| | | } |
| | |
| | | private ITUserService appUserService; |
| | | @Autowired |
| | | private IOrderCancelService orderCancelService; |
| | | |
| | | @Autowired |
| | | private ITCompanyService companyService; |
| | | |
| | | public static void main(String[] args) { |
| | | // 获取今天的日期 |
| | |
| | | */ |
| | | @RequestMapping("/commission") |
| | | public String index( Model model) { |
| | | List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().eq("state", 0).ne("flag", 3)); |
| | | model.addAttribute("company", tCompanies); |
| | | return PREFIX + "commission.html"; |
| | | } |
| | | |
| | |
| | | */ |
| | | @RequestMapping(value = "/commission/getCount") |
| | | @ResponseBody |
| | | public Object getCount(Integer time,String insertTime,Integer state) { |
| | | public Object getCount(Integer time,String insertTime,Integer state, Integer company) { |
| | | if (time == null){ |
| | | time =1; |
| | | } |
| | |
| | | if (tOrderPrivateCar==null){ |
| | | continue; |
| | | } |
| | | |
| | | if(null != company && !company.equals(tOrderPrivateCar.getCompanyId())){ |
| | | continue; |
| | | } |
| | | platformVO.setMoney(new BigDecimal(income.getMoney())); |
| | | if (tOrderPrivateCar.getState()!=10 && tOrderPrivateCar.getPayType() == null){ |
| | | continue; |
| | |
| | | if (tOrderLogistics==null){ |
| | | continue; |
| | | } |
| | | |
| | | if(null != company && !company.equals(tOrderLogistics.getCompanyId())){ |
| | | continue; |
| | | } |
| | | platformVO.setMoney(new BigDecimal(income.getMoney())); |
| | | |
| | | if (tOrderLogistics.getState()!=10 && tOrderLogistics.getPayType() == null){ |
| | |
| | | TOrderPrivateCar tOrderPrivateCar = orderPrivateCarMap.get(settlementDetail.getOrderId()); |
| | | |
| | | if (tOrderPrivateCar==null){ |
| | | continue; |
| | | } |
| | | if(null != company && !company.equals(tOrderPrivateCar.getCompanyId())){ |
| | | continue; |
| | | } |
| | | platformVO.setCode(tOrderPrivateCar.getOrderNum()); |
| | |
| | | TOrderLogistics tOrderLogistics = orderLogisticsRecordMap.get(settlementDetail.getOrderId()); |
| | | |
| | | if (tOrderLogistics==null){ |
| | | continue; |
| | | } |
| | | if(null != company && !company.equals(tOrderLogistics.getCompanyId())){ |
| | | continue; |
| | | } |
| | | String string1 = settlementDetail.getPrice().toString(); |
| | |
| | | */ |
| | | @RequestMapping(value = "/commission/list") |
| | | @ResponseBody |
| | | public Object list(Integer time,String insertTime,Integer state) { |
| | | public Object list(Integer time,String insertTime,Integer state, Integer company) { |
| | | |
| | | if (time == null){ |
| | | time =1; |
| | |
| | | if (tOrderPrivateCar==null){ |
| | | continue; |
| | | } |
| | | if(null != company && !company.equals(tOrderPrivateCar.getCompanyId())){ |
| | | continue; |
| | | } |
| | | platformVO.setCode(tOrderPrivateCar.getOrderNum()); |
| | | TDriver tDriver = driverMap.get(tOrderPrivateCar.getDriverId()); |
| | | if (tDriver != null){ |
| | |
| | | TOrderLogistics tOrderLogistics = orderLogisticsRecordMap.get(income.getIncomeId()); |
| | | |
| | | if (tOrderLogistics==null){ |
| | | continue; |
| | | } |
| | | if(null != company && !company.equals(tOrderLogistics.getCompanyId())){ |
| | | continue; |
| | | } |
| | | platformVO.setCode(tOrderLogistics.getOrderNum()); |
| | |
| | | if (tOrderPrivateCar==null){ |
| | | continue; |
| | | } |
| | | |
| | | if(null != company && !company.equals(tOrderPrivateCar.getCompanyId())){ |
| | | continue; |
| | | } |
| | | platformVO.setCode(tOrderPrivateCar.getOrderNum()); |
| | | TDriver tDriver = driverMap.get(tOrderPrivateCar.getDriverId()); |
| | | if (tDriver!=null){ |
| | |
| | | if (tOrderLogistics==null){ |
| | | continue; |
| | | } |
| | | |
| | | if(null != company && !company.equals(tOrderLogistics.getCompanyId())){ |
| | | continue; |
| | | } |
| | | platformVO.setCode(tOrderLogistics.getOrderNum()); |
| | | TDriver tDriver1 = driverMap.get(tOrderLogistics.getDriverId()); |
| | | if (tDriver1!=null){ |
| | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.constant.factory.PageFactory; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.core.util.ExcelExportUtil; |
| | | import com.stylefeng.guns.core.util.SinataUtil; |
| | | import com.stylefeng.guns.modular.system.model.Income; |
| | | import com.stylefeng.guns.modular.system.model.TCompany; |
| | | import com.stylefeng.guns.modular.system.service.IIncomeService; |
| | | import com.stylefeng.guns.modular.system.service.ITCompanyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | |
| | | |
| | | @Autowired |
| | | private IIncomeService tIncomeService; |
| | | |
| | | @Autowired |
| | | private ITCompanyService companyService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | |
| | | @RequestMapping("driverWork") |
| | | public String driverWork(Model model) { |
| | | List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().eq("state", 0).ne("flag", 3)); |
| | | model.addAttribute("company", tCompanies); |
| | | return PREFIX + "driverWork.html"; |
| | | } |
| | | |
| | | @RequestMapping(value = "/driverWorkList") |
| | | @ResponseBody |
| | | public Object driverWorkList() { |
| | | public Object driverWorkList(Integer company) { |
| | | Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage(); |
| | | List<Map<String,Object>> list = tIncomeService.getList1(page); |
| | | List<Map<String,Object>> list = tIncomeService.getList1(page, company); |
| | | page.setRecords(list); |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | @RequestMapping("driverWorkDetail") |
| | | public String driverWorkDetail(String times, Model model) { |
| | | public String driverWorkDetail(String times, Integer company, Model model) { |
| | | model.addAttribute("times", times); |
| | | model.addAttribute("company", company); |
| | | return PREFIX + "driverWorkDetail.html"; |
| | | } |
| | | |
| | | @RequestMapping(value = "/driverWorkDetailList") |
| | | @ResponseBody |
| | | public Object driverWorkDetailList(String times) { |
| | | public Object driverWorkDetailList(String times, Integer company) { |
| | | Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage(); |
| | | times = times.split(" ")[0]; |
| | | page.setRecords(tIncomeService.getList2(page,times)); |
| | | page.setRecords(tIncomeService.getList2(page,times,company)); |
| | | return super.packForBT(page); |
| | | } |
| | | /** |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.BigInteger; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.*; |
| | | import java.time.format.DateTimeFormatter; |
| | |
| | | private IUserActivityDiscount1Service userActivityDiscount1Service; |
| | | @Autowired |
| | | private ISysRedPacketRecordService sysRedPacketRecordService; |
| | | |
| | | @Autowired |
| | | private ITCompanyService companyService; |
| | | |
| | | @Autowired |
| | | private IDriverActivityService driverActivityService; |
| | | |
| | | public static void main(String[] args) { |
| | | String temp = "[{\"money\":14.46,\"id\":91},{\"money\":1,\"id\":90}]"; |
| | | JSONArray objects = JSONArray.parseArray(temp); |
| | | BigDecimal temp1 = new BigDecimal(BigInteger.ZERO); |
| | | for (int i = 0; i < objects.size(); i++) { |
| | | String string = objects.getJSONObject(i).getString("money"); |
| | | temp1 = temp1.add(new BigDecimal(string)); |
| | | } |
| | | System.err.println(temp1); |
| | | } |
| | | |
| | | @RequestMapping("/grant") |
| | | public String index(Model model) { |
| | | List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().eq("state", 0).ne("flag", 3)); |
| | | model.addAttribute("company", tCompanies); |
| | | return PREFIX + "grant.html"; |
| | | } |
| | | |
| | | @RequestMapping("/use") |
| | | public String watter(Model model) { |
| | | List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().eq("state", 0).ne("flag", 3)); |
| | | model.addAttribute("company", tCompanies); |
| | | return PREFIX + "use.html"; |
| | | } |
| | | |
| | |
| | | */ |
| | | @RequestMapping(value = "/use/list") |
| | | @ResponseBody |
| | | public Object list1(Integer time, String insertTime, Integer type) { |
| | | public Object list1(Integer time, String insertTime, Integer type, Integer company) { |
| | | if (time == null) { |
| | | time = 1; |
| | | } |
| | |
| | | Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>(); |
| | | // 司机已消费金额 |
| | | Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>(); |
| | | List<Integer> collect = new ArrayList<>(); |
| | | if(null != company){ |
| | | List<TDriver> driverActivities = driverService.selectList(new EntityWrapper<TDriver>().eq("companyId", company)); |
| | | collect = driverActivities.stream().map(TDriver::getId).collect(Collectors.toList()); |
| | | collect.add(0); |
| | | } |
| | | if (time == 5 && !StringUtils.hasLength(insertTime)) { |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | |
| | | // 小件物流wrapper |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | |
| | | // 已使用优惠券记录wrapper |
| | | between2 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | |
| | | between22 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | |
| | | // 已使用红包记录wrapper |
| | | between3 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | |
| | | between33 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | |
| | | // 司机已消费金额 |
| | | between4 = new EntityWrapper<BalanceUsageRecord>() |
| | | .eq("type", 1) |
| | | .ne("purpose", 6) |
| | | .in(!collect.isEmpty(), "driverId", collect) |
| | | ; |
| | | |
| | | // 司机提现 |
| | | driverWrapper = new EntityWrapper<TPubWithdrawal>() |
| | | .eq("state", 2) |
| | | .eq("type", 1) |
| | | .in(!collect.isEmpty(), "userId", collect) |
| | | .eq("userType", 2) |
| | | ; |
| | | |
| | |
| | | .eq("state", 2) |
| | | .eq("type", 1) |
| | | .eq("userType", 2) |
| | | .in(!collect.isEmpty(), "userId", collect) |
| | | .between("insertTime", start, end); |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 小件物流wrapper |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 已使用优惠券记录wrapper |
| | | between2 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | between22 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 已使用红包记录wrapper |
| | | between3 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | between33 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 司机已消费金额 |
| | | between4 = new EntityWrapper<BalanceUsageRecord>() |
| | | .ne("purpose", 6) |
| | | .eq("type", 1) |
| | | .in(!collect.isEmpty(), "driverId", collect) |
| | | .between("createTime", start, end); |
| | | |
| | | |
| | |
| | | |
| | | @RequestMapping(value = "/use/getCount") |
| | | @ResponseBody |
| | | public Object getCount1(Integer time, String insertTime, Integer type) { |
| | | public Object getCount1(Integer time, String insertTime, Integer type, Integer company) { |
| | | if (time == null) { |
| | | time = 1; |
| | | } |
| | |
| | | Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>(); |
| | | // 司机已消费金额 |
| | | Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>(); |
| | | List<Integer> collect = new ArrayList<>(); |
| | | if(null != company){ |
| | | List<TDriver> driverActivities = driverService.selectList(new EntityWrapper<TDriver>().eq("companyId", company)); |
| | | collect = driverActivities.stream().map(TDriver::getId).collect(Collectors.toList()); |
| | | collect.add(0); |
| | | } |
| | | if (time == 5 && !StringUtils.hasLength(insertTime)) { |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | // .between("insertTime", start, end) |
| | | ; |
| | | |
| | |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | // .between("insertTime", start, end) |
| | | ; |
| | | |
| | |
| | | between2 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | // .between("insertTime", start, end) |
| | | ; |
| | | |
| | | between22 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | // .between("insertTime", start, end) |
| | | ; |
| | | |
| | |
| | | between3 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | // .between("insertTime", start, end) |
| | | ; |
| | | |
| | | between33 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | // .between("insertTime", start, end) |
| | | ; |
| | | |
| | |
| | | between4 = new EntityWrapper<BalanceUsageRecord>() |
| | | .eq("type", 1) |
| | | .ne("purpose", 6) |
| | | .in(!collect.isEmpty(), "driverId", collect) |
| | | // .between("createTime", start, end) |
| | | ; |
| | | |
| | |
| | | .eq("state", 2) |
| | | .eq("type", 1) |
| | | .eq("userType", 2) |
| | | .in(!collect.isEmpty(), "userId", collect) |
| | | // .between("insertTime", start, end) |
| | | ; |
| | | |
| | |
| | | .eq("state", 2) |
| | | .eq("type", 1) |
| | | .eq("userType", 2) |
| | | .in(!collect.isEmpty(), "userId", collect) |
| | | .between("insertTime", start, end); |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 小件物流wrapper |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("activityId") |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 已使用优惠券记录wrapper |
| | | between2 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | between22 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("couponId") |
| | | .isNotNull("couponMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 已使用红包记录wrapper |
| | | between3 = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | between33 = new EntityWrapper<TOrderLogistics>() |
| | | .isNotNull("redPacketId") |
| | | .isNotNull("redPacketMoney") |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 司机已消费金额 |
| | | between4 = new EntityWrapper<BalanceUsageRecord>() |
| | | .ne("purpose", 6) |
| | | .eq("type", 1) |
| | | .in(!collect.isEmpty(), "driverId", collect) |
| | | .between("createTime", start, end); |
| | | |
| | | |
| | |
| | | */ |
| | | @RequestMapping(value = "/grant/list") |
| | | @ResponseBody |
| | | public Object list(Integer time, String insertTime, Integer type) { |
| | | public Object list(Integer time, String insertTime, Integer type, Integer company) { |
| | | if (time == null) { |
| | | time = 1; |
| | | } |
| | |
| | | Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>(); |
| | | // 司机奖励 |
| | | Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>(); |
| | | List<Integer> collect = new ArrayList<>(); |
| | | if(null != company){ |
| | | List<DriverActivity> driverActivities = driverActivityService.selectList(new EntityWrapper<DriverActivity>().eq("companyId", company).eq("status", 3)); |
| | | collect = driverActivities.stream().map(DriverActivity::getId).collect(Collectors.toList()); |
| | | collect.add(0); |
| | | } |
| | | |
| | | if (time == 5 && !StringUtils.hasLength(insertTime)) { |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("discountMoney") |
| | | .isNotNull("discountMoney").eq(null != company, "companyId", company) |
| | | |
| | | ; |
| | | // 小件物流wrapper |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | |
| | | .isNotNull("discountMoney") |
| | | .isNotNull("discountMoney").eq(null != company, "companyId", company) |
| | | ; |
| | | // 优惠券领取记录wrapper |
| | | between2 = new EntityWrapper<UserCouponRecord>() |
| | | .ne("couponUseType", 2) |
| | | .ne("couponUseType", 3) |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | // 红包领取记录wrapper |
| | | between3 = new EntityWrapper<UserRedPacketRecord>() |
| | | .ne("state", 0) |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | // 司机奖励 |
| | | between4 = new EntityWrapper<DriverActivityHistory>() |
| | | .eq("carryOut", 2) |
| | | .in(!collect.isEmpty(), "activityId", collect) |
| | | ; |
| | | } else { |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("discountMoney") |
| | | .isNotNull("discountMoney").eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end) |
| | | ; |
| | | // 小件物流wrapper |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | .between("insertTime", start, end) |
| | | .between("insertTime", start, end).eq(null != company, "companyId", company) |
| | | .isNotNull("discountMoney") |
| | | ; |
| | | // 优惠券领取记录wrapper |
| | | between2 = new EntityWrapper<UserCouponRecord>() |
| | | .ne("couponUseType", 2) |
| | | .ne("couponUseType", 3) |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 红包领取记录wrapper |
| | | between3 = new EntityWrapper<UserRedPacketRecord>() |
| | | .ne("state", 0) |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 司机奖励 |
| | | between4 = new EntityWrapper<DriverActivityHistory>() |
| | | .eq("carryOut", 2) |
| | | .in(!collect.isEmpty(), "activityId", collect) |
| | | .between("insertTime", start, end); |
| | | } |
| | | |
| | |
| | | |
| | | @RequestMapping(value = "/grant/getCount") |
| | | @ResponseBody |
| | | public Object getCount(Integer time, String insertTime, Integer type) { |
| | | public Object getCount(Integer time, String insertTime, Integer type, Integer company) { |
| | | GrantMoneyVO result = new GrantMoneyVO(); |
| | | if (time == null) { |
| | | time = 1; |
| | |
| | | Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>(); |
| | | // 司机奖励 |
| | | Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>(); |
| | | List<Integer> collect = new ArrayList<>(); |
| | | if(null != company){ |
| | | List<DriverActivity> driverActivities = driverActivityService.selectList(new EntityWrapper<DriverActivity>().eq("companyId", company).eq("status", 3)); |
| | | collect = driverActivities.stream().map(DriverActivity::getId).collect(Collectors.toList()); |
| | | collect.add(0); |
| | | } |
| | | if (time == 5 && !StringUtils.hasLength(insertTime)) { |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | |
| | | ; |
| | | // 小件物流wrapper |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | // 优惠券领取记录wrapper |
| | | between2 = new EntityWrapper<UserCouponRecord>() |
| | | .ne("couponUseType", 2) |
| | | .ne("couponUseType", 3) |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | // 红包领取记录wrapper |
| | | between3 = new EntityWrapper<UserRedPacketRecord>() |
| | | .ne("state", 0) |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | // 司机奖励 |
| | | between4 = new EntityWrapper<DriverActivityHistory>() |
| | | .eq("carryOut", 2) |
| | | .in(!collect.isEmpty(), "activityId", collect) |
| | | ; |
| | | } else { |
| | | // 专车wrapper |
| | | between = new EntityWrapper<TOrderPrivateCar>() |
| | | .isNotNull("discountMoney") |
| | | .between("insertTime", start, end) |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | // 小件物流wrapper |
| | | between1 = new EntityWrapper<TOrderLogistics>() |
| | | .between("insertTime", start, end) |
| | | .isNotNull("discountMoney") |
| | | .eq(null != company, "companyId", company) |
| | | ; |
| | | // 优惠券领取记录wrapper |
| | | between2 = new EntityWrapper<UserCouponRecord>() |
| | | .ne("couponUseType", 2) |
| | | .ne("couponUseType", 3) |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 红包领取记录wrapper |
| | | between3 = new EntityWrapper<UserRedPacketRecord>() |
| | | .ne("state", 0) |
| | | .eq(null != company, "companyId", company) |
| | | .between("insertTime", start, end); |
| | | // 司机奖励 |
| | | between4 = new EntityWrapper<DriverActivityHistory>() |
| | | .eq("carryOut", 2) |
| | | .in(!collect.isEmpty(), "activityId", collect) |
| | | .between("insertTime", start, end); |
| | | } |
| | | |
| | |
| | | |
| | | Wrapper<TDriver> ne1 = new EntityWrapper<TDriver>().ne("state", 1).eq("authState", 2).ne("flag", 3); |
| | | if(companyId != null){ |
| | | ne1.eq("companyId", companyId).or().eq("franchiseeId", companyId); |
| | | ne1.eq("companyId", companyId); |
| | | } |
| | | List<TDriver> tDrivers = tDriverService.selectList(ne1); |
| | | String keys = ""; |
| | |
| | | |
| | | Wrapper<TDriver> ne4 = new EntityWrapper<TDriver>().eq("authState", 2).ne("flag", 3); |
| | | if(companyId != null){ |
| | | ne4.eq("companyId", companyId).or().eq("franchiseeId", companyId); |
| | | ne4.eq("companyId", companyId); |
| | | } |
| | | int i2 = tDriverService.selectCount(ne4); |
| | | map1.put("netcarDriverSum", i2); //总司机 |
| | | |
| | | Wrapper<TCar> state3 = new EntityWrapper<TCar>().eq("state", 1); |
| | | if(companyId != null){ |
| | | state3.eq("companyId", companyId).or().eq("franchiseeId", companyId); |
| | | state3.eq("companyId", companyId); |
| | | } |
| | | int state1 = tCarService.selectCount(state3); |
| | | map1.put("netCarSum", state1); //总车辆 |
| | |
| | | |
| | | Wrapper<TDriver> ne3 = new EntityWrapper<TDriver>().between("insertTime", calendar3.getTime(), calendar4.getTime()).eq("authState", 2).ne("flag", 3); |
| | | if(companyId != null){ |
| | | ne3.eq("companyId", companyId).or().eq("franchiseeId", companyId); |
| | | ne3.eq("companyId", companyId); |
| | | } |
| | | int i5 = tDriverService.selectCount(ne3); |
| | | map1.put("netcarDriverSum", i5); |
| | |
| | | Integer[] driverStates = new Integer[]{2,3}; |
| | | Wrapper<TDriver> ne = new EntityWrapper<TDriver>().eq("authState", 2).in("state", driverStates).ne("flag", 3); |
| | | if(companyId != null){ |
| | | ne.eq("companyId", companyId).or().eq("franchiseeId", companyId); |
| | | ne.eq("companyId", companyId); |
| | | } |
| | | if(state!=null){ |
| | | ne.eq("state",state); |
| | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.ErrorTip; |
| | | import com.stylefeng.guns.core.common.constant.factory.PageFactory; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.*; |
| | | import com.stylefeng.guns.modular.system.dao.CarInsuranceMapper; |
| | |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | | import org.jsoup.nodes.Element; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | |
| | |
| | | //查询平台ID |
| | | TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1)); |
| | | //判断是平台司机还是加盟司机 |
| | | if ((SinataUtil.isEmpty(tCar.getCompanyId()) || tCar.getCompanyId() == 0 || tCar.getCompanyId() == company.getId()) && (SinataUtil.isEmpty(tCar.getFranchiseeId()) || tCar.getFranchiseeId() == 0)){ |
| | | if (tCar.getCompanyId() == 1){ |
| | | model.addAttribute("companyType",1); |
| | | }else{ |
| | | model.addAttribute("companyType",2); |
| | |
| | | tCar.setCompanyId(oneId); |
| | | } |
| | | if (SinataUtil.isNotEmpty(twoId)){ |
| | | tCar.setFranchiseeId(twoId); |
| | | tCar.setCompanyId(twoId); |
| | | } |
| | | }else if (1 == companyType.intValue()){ |
| | | TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1)); |
| | | tCar.setCompanyId(company.getId()); |
| | | tCar.setFranchiseeId(0); |
| | | } |
| | | tCar.setAddType(2); |
| | | tCar.setIsPlatCar(1); |
| | |
| | | tCar.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(franchiseeId)){ |
| | | tCar.setFranchiseeId(franchiseeId); |
| | | tCar.setCompanyId(franchiseeId); |
| | | } |
| | | tCar.setIsPlatCar(2); |
| | | tCar.setAddType(3); |
| | |
| | | tCar.setCompanyId(tCompany.getSuperiorId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ |
| | | tCar.setFranchiseeId(ShiroKit.getUser().getObjectId()); |
| | | tCar.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | tCar.setIsPlatCar(2); |
| | | tCar.setAddType(4); |
| | |
| | | tCar.setCompanyId(oneId); |
| | | } |
| | | if (SinataUtil.isNotEmpty(twoId)){ |
| | | tCar.setFranchiseeId(twoId); |
| | | tCar.setCompanyId(twoId); |
| | | } |
| | | }else if (1 == companyType.intValue()){ |
| | | TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1)); |
| | | tCar.setCompanyId(company.getId()); |
| | | tCar.setFranchiseeId(0); |
| | | } |
| | | }else if (2 == roleType){ //分公司 |
| | | if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ |
| | | tCar.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(franchiseeId)){ |
| | | tCar.setFranchiseeId(franchiseeId); |
| | | tCar.setCompanyId(franchiseeId); |
| | | } |
| | | }else if (3 == roleType){ //加盟商 |
| | | TCompany tCompany = tCompanyService.selectById(ShiroKit.getUser().getObjectId()); |
| | |
| | | tCar.setCompanyId(tCompany.getSuperiorId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ |
| | | tCar.setFranchiseeId(ShiroKit.getUser().getObjectId()); |
| | | tCar.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | } |
| | | |
| | |
| | | }else if ("加盟车辆".equals(zero)){ |
| | | car.setIsPlatCar(2); |
| | | } |
| | | car.setCompanyId(companyId); |
| | | car.setFranchiseeId(franchiseeId); |
| | | car.setCompanyId(0 == franchiseeId ? franchiseeId : companyId); |
| | | car.setCarColor(eleven); |
| | | car.setCarBrandId(carBrandId); |
| | | car.setCarModelId(carModelId); |
| | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.constant.factory.PageFactory; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.core.util.SinataUtil; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | |
| | | } |
| | | tCompany.setType(2); //2:分公司 |
| | | tCompany.setState(0); //0:正常 |
| | | tCompany.setSuperiorId(1); |
| | | tCompany.setInsertTime(new Date()); |
| | | tCompanyService.insert(tCompany); |
| | | |
| | |
| | | return "error"; |
| | | } |
| | | tCompany.setType(3); //2:分公司 |
| | | if (ShiroKit.getUser().getRoleType() == 2){ |
| | | tCompany.setSuperiorId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | tCompany.setState(0); //0:正常 |
| | | tCompany.setInsertTime(new Date()); |
| | | tCompanyService.insert(tCompany); |
| | |
| | | user.setSalt(ShiroKit.getRandomSalt(5)); |
| | | user.setPassword(ShiroKit.md5(password, user.getSalt())); |
| | | } |
| | | tCompany.setSuperiorId(1); |
| | | tCompanyService.updateById(tCompany); |
| | | user.setName(tCompany.getName()); |
| | | userService.updateById(user); |
| | |
| | | //查询平台ID |
| | | TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1).eq("state", 0).ne("flag", 3)); |
| | | //判断是平台司机还是加盟司机 |
| | | if ((SinataUtil.isEmpty(tDriver.getCompanyId()) || tDriver.getCompanyId() == 0 || tDriver.getCompanyId() == company.getId()) && (SinataUtil.isEmpty(tDriver.getFranchiseeId()) || tDriver.getFranchiseeId() == 0)){ |
| | | if (1 == tDriver.getCompanyId()){ |
| | | model.addAttribute("companyType",1); |
| | | }else{ |
| | | model.addAttribute("companyType",2); |
| | |
| | | tDriver.setCompanyId(oneId); |
| | | } |
| | | if (SinataUtil.isNotEmpty(twoId)){ |
| | | tDriver.setFranchiseeId(twoId); |
| | | tDriver.setCompanyId(twoId); |
| | | } |
| | | }else if (1 == companyType.intValue()){ |
| | | TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1)); |
| | | tDriver.setCompanyId(company.getId()); |
| | | tDriver.setFranchiseeId(franchiseeId); |
| | | } |
| | | tDriver.setAddType(2); |
| | | tDriver.setIsPlatCar(1); |
| | |
| | | tDriver.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(franchiseeId)){ |
| | | tDriver.setFranchiseeId(franchiseeId); |
| | | tDriver.setCompanyId(franchiseeId); |
| | | } |
| | | tDriver.setAddType(3); |
| | | tDriver.setIsPlatCar(2); |
| | |
| | | tDriver.setCompanyId(tCompany.getSuperiorId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ |
| | | tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId()); |
| | | tDriver.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | tDriver.setAddType(4); |
| | | tDriver.setIsPlatCar(2); |
| | |
| | | tDriver.setCompanyId(oneId); |
| | | } |
| | | if (SinataUtil.isNotEmpty(twoId)){ |
| | | tDriver.setFranchiseeId(twoId); |
| | | tDriver.setCompanyId(twoId); |
| | | } |
| | | }else if (1 == companyType.intValue()){ |
| | | TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1)); |
| | | tDriver.setCompanyId(company.getId()); |
| | | tDriver.setFranchiseeId(franchiseeId); |
| | | } |
| | | }else if (2 == roleType){ //分公司 |
| | | if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ |
| | | tDriver.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(franchiseeId)){ |
| | | tDriver.setFranchiseeId(franchiseeId); |
| | | tDriver.setCompanyId(franchiseeId); |
| | | } |
| | | }else if (3 == roleType){ //加盟商 |
| | | TCompany tCompany = tCompanyService.selectById(ShiroKit.getUser().getObjectId()); |
| | |
| | | tDriver.setCompanyId(tCompany.getSuperiorId()); |
| | | } |
| | | if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ |
| | | tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId()); |
| | | tDriver.setCompanyId(ShiroKit.getUser().getObjectId()); |
| | | } |
| | | } |
| | | tDriver.setUpdateTime(new Date()); |
| | |
| | | }else if ("加盟司机".equals(one)){ |
| | | driver.setIsPlatCar(2); |
| | | } |
| | | driver.setCompanyId(companyId); |
| | | driver.setFranchiseeId(franchiseeId); |
| | | driver.setCompanyId(0 != franchiseeId ? franchiseeId : companyId); |
| | | driver.setState(2); |
| | | driver.setAuthState(2); |
| | | driver.setFlag("1"); |
| | |
| | | driver.setDriveCard(three); |
| | | driver.setTaxiAptitudeCard(seven); |
| | | driver.setIsPlatCar(2); |
| | | driver.setCompanyId(companyId); |
| | | driver.setFranchiseeId(franchiseeId); |
| | | driver.setCompanyId(0 != franchiseeId ? franchiseeId : companyId); |
| | | driver.setState(1); |
| | | driver.setAuthState(1); |
| | | driver.setFlag("1"); |
| | |
| | | driver.setDriveCard(two); |
| | | driver.setTaxiAptitudeCard(six); |
| | | driver.setIsPlatCar(2); |
| | | driver.setCompanyId(companyId); |
| | | driver.setFranchiseeId(franchiseeId); |
| | | driver.setCompanyId(0 != franchiseeId ? franchiseeId : companyId); |
| | | driver.setState(1); |
| | | driver.setAuthState(1); |
| | | driver.setFlag("1"); |
| | |
| | | shellList.add("订单编号"); |
| | | shellList.add("订单来源"); |
| | | shellList.add("乘车时间"); |
| | | shellList.add("下单用户昵称"); |
| | | shellList.add("下单用户姓名"); |
| | | shellList.add("下单用户手机"); |
| | | shellList.add("乘车用户姓名"); |
| | | shellList.add("乘车用户手机"); |
| | |
| | | |
| | | orderPrivateCar.setDriverId(driver1.getId()); |
| | | orderPrivateCar.setCarId(driver1.getCarId()); |
| | | orderPrivateCar.setCompanyId(driver1.getFranchiseeId() != null && driver1.getFranchiseeId() != 0 ? driver1.getFranchiseeId() : ( |
| | | driver1.getCompanyId() != null && driver1.getCompanyId() != 0 ? driver1.getCompanyId() : 1)); |
| | | orderPrivateCar.setCompanyId(driver1.getCompanyId()); |
| | | orderPrivateCar.setSnatchOrderTime(new Date()); |
| | | orderPrivateCar.setState(orderPrivateCar.getOldState()); |
| | | orderPrivateCar.setOldState(null); |
| | |
| | | |
| | | orderLogistics.setDriverId(driver1.getId()); |
| | | orderLogistics.setCarId(driver1.getCarId()); |
| | | orderLogistics.setCompanyId(driver1.getFranchiseeId() != null && driver1.getFranchiseeId() != 0 ? driver1.getFranchiseeId() : ( |
| | | driver1.getCompanyId() != null && driver1.getCompanyId() != 0 ? driver1.getCompanyId() : 1)); |
| | | orderLogistics.setCompanyId(driver1.getCompanyId()); |
| | | orderLogistics.setState(orderLogistics.getOldState()); |
| | | orderLogistics.setOldState(null); |
| | | orderLogistics.setSnatchOrderTime(new Date()); |
| | |
| | | import com.stylefeng.guns.modular.system.model.Income; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | List<Map<String,Object>> getExcelList( |
| | | @Param("id") Integer id); |
| | | |
| | | List<Map<String,Object>> getList1(@Param("page") Page<Map<String, Object>> page); |
| | | List<Map<String,Object>> getList1(@Param("page") Page<Map<String, Object>> page, @Param("company") Integer company); |
| | | |
| | | List<Map<String,Object>> getList2(@Param("page") Page<Map<String, Object>> page, |
| | | @Param("times") String times); |
| | | @Param("times") String times, @Param("company") Integer company); |
| | | |
| | | List<Map<String,Object>> getTotal(@Param("times") String times); |
| | | |
| | |
| | | <select id="getList1" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | select aa.startTime as times, aa.driverNum, bb.duration as timeNumber from ( |
| | | select a.startTime, count(a.driverId) as driverNum from ( |
| | | select DATE_FORMAT(startTime, '%Y-%m-%d') as startTime, driverId from t_driver_work group by DATE_FORMAT(startTime, '%Y-%m-%d'), driverId |
| | | select DATE_FORMAT(startTime, '%Y-%m-%d') as startTime, driverId from t_driver_work where 1 = 1 |
| | | <if test="null != company"> |
| | | and driverId in (select id from t_driver where companyId = #{company}) |
| | | </if> |
| | | group by DATE_FORMAT(startTime, '%Y-%m-%d'), driverId |
| | | ) as a group by a.startTime |
| | | ) as aa |
| | | left join ( |
| | | select DATE_FORMAT(startTime, '%Y-%m-%d') as startTime, sum(if(endTime is null, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(endTime)) - UNIX_TIMESTAMP(startTime)) as duration from t_driver_work group by DATE_FORMAT(startTime, '%Y-%m-%d') |
| | | select DATE_FORMAT(startTime, '%Y-%m-%d') as startTime, sum(if(endTime is null, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(endTime)) - UNIX_TIMESTAMP(startTime)) as duration from t_driver_work where 1 = 1 |
| | | <if test="null != company"> |
| | | and driverId in (select id from t_driver where companyId = #{company}) |
| | | </if> |
| | | group by DATE_FORMAT(startTime, '%Y-%m-%d') |
| | | ) as bb on (aa.startTime = bb.startTime) |
| | | ORDER BY aa.startTime DESC |
| | | </select> |
| | |
| | | a.duration as timeNumber |
| | | from (select DATE_FORMAT(startTime, '%Y-%m-%d') as startTime, driverId, sum(if(endTime is null, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(endTime)) - UNIX_TIMESTAMP(startTime)) as duration from t_driver_work group by DATE_FORMAT(startTime, '%Y-%m-%d'), driverId) as a |
| | | left join t_driver b on (a.driverId = b.id) |
| | | where a.startTime = #{times} |
| | | where a.startTime = #{times} and b.companyId = #{company} |
| | | </select> |
| | | <select id="getTotal" resultType="map"> |
| | | SELECT COUNT(o.driverId) driverNum,SUM(o.timeNumber) timeNumber from (SELECT |
| | |
| | | LEFT JOIN (select * from t_car_brand where state = 1) as cb on cb.id = cc.carBrandId |
| | | LEFT JOIN (select * from t_car_model where state = 1) as cm on cm.id = cc.carModelId |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as c1 on c1.id = cc.companyId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = cc.franchiseeId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = cc.companyId |
| | | LEFT JOIN ( |
| | | SELECT |
| | | GROUP_CONCAT(case when type = 1 then '专车' |
| | |
| | | and o.franchiseeName LIKE CONCAT('%',#{franchiseeName},'%') |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | LEFT JOIN (select * from t_car_brand where state = 1) as cb on cb.id = cc.carBrandId |
| | | LEFT JOIN (select * from t_car_model where state = 1) as cm on cm.id = cc.carModelId |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as c1 on c1.id = cc.companyId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = cc.franchiseeId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = cc.companyId |
| | | LEFT JOIN ( |
| | | SELECT |
| | | GROUP_CONCAT(case when type = 1 then '专车' |
| | |
| | | and o.franchiseeName LIKE CONCAT('%',#{franchiseeName},'%') |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | LEFT JOIN (select * from t_car_brand where state = 1) as cb on cb.id = cc.carBrandId |
| | | LEFT JOIN (select * from t_car_model where state = 1) as cm on cm.id = cc.carModelId |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as c1 on c1.id = cc.companyId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = cc.franchiseeId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = cc.companyId |
| | | LEFT JOIN ( |
| | | SELECT |
| | | GROUP_CONCAT(case when type = 1 then '专车' |
| | |
| | | <where> |
| | | o.state = 1 |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | cc.* FROM t_company as cc |
| | | LEFT JOIN (SELECT * FROM sys_user where roleType = 3) as ui on ui.objectId = cc.id |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as ci on ci.id = cc.superiorId |
| | | LEFT JOIN (SELECT COUNT(id) as num,franchiseeId FROM t_car where state = 1 GROUP BY franchiseeId) as ca on ca.franchiseeId = cc.id |
| | | LEFT JOIN (SELECT COUNT(id) as num,franchiseeId FROM t_driver where flag != 3 GROUP BY franchiseeId) as di on di.franchiseeId = cc.id) as o |
| | | LEFT JOIN (SELECT COUNT(id) as num,companyId FROM t_car where state = 1 GROUP BY companyId) as ca on ca.companyId = cc.id |
| | | LEFT JOIN (SELECT COUNT(id) as num,companyId FROM t_driver where flag != 3 GROUP BY companyId) as di on di.companyId = cc.id) as o |
| | | <where> |
| | | o.type = 3 and o.flag != 3 |
| | | <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> |
| | |
| | | left join t_driver b on (a.driverId = b.id) |
| | | where 1 = 1 |
| | | <if test="null != companyId"> |
| | | and if(b.franchiseeId is null or b.franchiseeId = 0, b.companyId = #{companyId}, b.franchiseeId = #{companyId}) |
| | | and b.companyId = #{companyId} |
| | | </if> |
| | | <if test="null != start and '' != start and null != end and '' != end"> |
| | | and DATE_FORMAT(a.startTime, '%Y-%m-%d') between #{start} and #{end} |
| | |
| | | and o.isHandle = 1 |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and o.companyId = #{nowUserId} and (o.franchiseeId = 0 or o.franchiseeId is null) |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | <select id="getDispatchList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | SELECT * FROM (SELECT c1.name as companyName,c2.name as franchiseeName,dd.* FROM t_dispatch as dd |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as c1 on c1.id = dd.companyId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = dd.franchiseeId) as o |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as c2 on c2.id = dd.companyId) as o |
| | | <where> |
| | | o.state != 3 |
| | | <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> |
| | |
| | | and o.state = #{state} |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | <select id="getAuthDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | SELECT * FROM (SELECT cc1.`name` as companyName,cc2.`name` as franchiseeName,ds.serverStr,dd.* from t_driver as dd |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as cc1 on cc1.id = dd.companyId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.franchiseeId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.companyId |
| | | LEFT JOIN ( |
| | | SELECT |
| | | GROUP_CONCAT(case when type = 1 then '专车' |
| | |
| | | from t_driver as dd |
| | | LEFT JOIN t_driver_team tdt on dd.teamId=tdt.id and tdt.state!=3 |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as cc1 on cc1.id = dd.companyId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.franchiseeId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.companyId |
| | | LEFT JOIN (select * from t_car where state = 1) as ci on ci.id = dd.carId |
| | | LEFT JOIN ( |
| | | SELECT |
| | |
| | | and o.authState = #{authState} |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | <if test="state != null and state != ''"> |
| | | and o.state = #{state} |
| | |
| | | and o.serverStr LIKE CONCAT('%',#{serverStr},'%') |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where type = 3 and superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where type = 3 and superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | <set> |
| | | <if test="authState != null"> authState = #{authState} </if> |
| | | </set> |
| | | where companyId = #{companyId} and (franchiseeId = 0 or franchiseeId is null) |
| | | where companyId = #{companyId} |
| | | </update> |
| | | |
| | | <!--修改加盟商司机的状态--> |
| | |
| | | <set> |
| | | <if test="authState != null"> authState = #{authState} </if> |
| | | </set> |
| | | where franchiseeId = #{franchiseeId} |
| | | where companyId = #{franchiseeId} |
| | | </update> |
| | | |
| | | <!--根据审核通过的司机列表无分页--> |
| | |
| | | SELECT * FROM (SELECT cc1.`name` as companyName,cc2.`name` as franchiseeName,ci.carLicensePlate,ds.serverStr,IFNULL(oe.evaluateNum,0) as evaluateNum, |
| | | (IFNULL(ot1.taxiNum, 0) + IFNULL(ot3.num, 0) + IFNULL(ot5.num, 0)) as historyNum,(IFNULL(ot2.taxiMoney, 0)+ IFNULL(ot4.money, 0) + IFNULL(ot6.money, 0)) as historyMoney,dd.* from t_driver as dd |
| | | LEFT JOIN (select * from t_company where type = 2 and flag != 3) as cc1 on cc1.id = dd.companyId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.franchiseeId |
| | | LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.companyId |
| | | LEFT JOIN (select * from t_car where state = 1) as ci on ci.id = dd.carId |
| | | LEFT JOIN ( |
| | | SELECT |
| | |
| | | and FIND_IN_SET(o.authState,'2,3') |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId))) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | and o.orderType = #{orderType} |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and o.companyId = #{nowUserId} and (o.franchiseeId = 0 or o.franchiseeId is null) |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | and o.companyId = #{nowUserId} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | |
| | | <select id="getCanSelectTaxiDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | SELECT dd.*,c1.name as companyName,c2.name as franchiseeName from t_driver AS dd |
| | | LEFT JOIN t_company as c1 on c1.id = dd.companyId |
| | | LEFT JOIN t_company as c2 on c2.id = dd.franchiseeId |
| | | LEFT JOIN t_company as c2 on c2.id = dd.companyId |
| | | LEFT JOIN (SELECT * from t_driver_service where type = 2) as ds on ds.driverId = dd.id |
| | | <where> |
| | | (dd.companyId = #{companyId} or dd.franchiseeId = #{companyId}) and dd.authState = 2 and dd.state = 2 and (ds.id is not null ) and (dd.carId is not null) |
| | | dd.companyId = #{companyId} and dd.authState = 2 and dd.state = 2 and (ds.id is not null ) and (dd.carId is not null) |
| | | <if test="name != null and name != ''"> |
| | | and CONCAT(dd.firstName, ' ', dd.lastName) LIKE CONCAT('%',#{name},'%') |
| | | </if> |
| | |
| | | <select id="getCanSelectPrivateCarDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | SELECT dd.*,c1.name as companyName,c2.name as franchiseeName from t_driver AS dd |
| | | LEFT JOIN t_company as c1 on c1.id = dd.companyId |
| | | LEFT JOIN t_company as c2 on c2.id = dd.franchiseeId |
| | | LEFT JOIN t_company as c2 on c2.id = dd.companyId |
| | | <where> |
| | | dd.id != #{driverId} and dd.authState = 2 and dd.state = 2 |
| | | and dd.id in |
| | |
| | | <select id="getCanSelectSmallDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | SELECT dd.*,c1.name as companyName,c2.name as franchiseeName from t_driver AS dd |
| | | LEFT JOIN t_company as c1 on c1.id = dd.companyId |
| | | LEFT JOIN t_company as c2 on c2.id = dd.franchiseeId |
| | | LEFT JOIN t_company as c2 on c2.id = dd.companyId |
| | | <where> |
| | | dd.id != #{driverId} and dd.authState = 2 and dd.state = 2 |
| | | and dd.id in |
| | |
| | | left join t_driver_line f on (a.id = f.driverId) |
| | | left join t_line_shift g on (f.lineId = g.lineId) |
| | | left join t_company as h on (h.id = a.companyId) |
| | | left join t_company as i on (i.id = a.franchiseeId) |
| | | where a.authState = 2 and a.state != 1 and a.flag != 3 and if(a.franchiseeId is null or a.franchiseeId = 0, a.companyId = #{companyId}, a.franchiseeId = #{companyId}) |
| | | left join t_company as i on (i.id = a.companyId) |
| | | where a.authState = 2 and a.state != 1 and a.flag != 3 and a.companyId = #{companyId} |
| | | and a.id in (select driverId from t_driver_work where state = 1 and type like '%3%') |
| | | and b.type = 3 and c.type = 3 and e.type = 3 and e.serverCarModelId = #{serverCarModelId} and f.lineId = #{lineId} and g.id = #{lineShiftId} |
| | | and a.id in (select driverId from t_line_shift_driver where lineShiftId = #{lineShiftId} and DATE_FORMAT(`day`, '%Y-%m-%d') = DATE_FORMAT(#{time}, '%Y-%m-%d') and laveSeat >= #{num}) |
| | |
| | | import com.stylefeng.guns.modular.system.model.Income; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | List<Map<String,Object>> getExcelList( |
| | | @Param("id") Integer id); |
| | | |
| | | List<Map<String,Object>> getList1(@Param("page") Page<Map<String, Object>> page); |
| | | List<Map<String,Object>> getList1(@Param("page") Page<Map<String, Object>> page, Integer company); |
| | | |
| | | List<Map<String,Object>> getList2(@Param("page") Page<Map<String, Object>> page, |
| | | @Param("times") String times); |
| | | @Param("times") String times, Integer company); |
| | | |
| | | List<Map<String,Object>> getTotal( |
| | | @Param("times") String times); |
| | |
| | | import com.stylefeng.guns.modular.system.service.IIncomeService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getList1(Page<Map<String, Object>> page) { |
| | | return this.baseMapper.getList1(page); |
| | | public List<Map<String, Object>> getList1(Page<Map<String, Object>> page, Integer company) { |
| | | return this.baseMapper.getList1(page, company); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getList2(Page<Map<String, Object>> page, String times) { |
| | | return this.baseMapper.getList2(page,times); |
| | | public List<Map<String, Object>> getList2(Page<Map<String, Object>> page, String times, Integer company) { |
| | | return this.baseMapper.getList2(page,times, company); |
| | | } |
| | | |
| | | @Override |
| | |
| | | props.put("mail.smtp.port", "587"); |
| | | } |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | send("liuarchy32@gmail.com", "测试", "测试"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 创建邮件内容 |
| | | * |
| | |
| | | Properties props = new Properties(); |
| | | //选择ssl方式 |
| | | gmailssl(props); |
| | | // qqmailtls(props); |
| | | |
| | | final String displayName = "I-GO";//昵称 |
| | | final String username = "i-gotech@i-go.group";// gmail 邮箱 |
| | | final String password = "wpwfkrlvridoayyh";// Google应用专用密码 |
| | | final String username = "noreply@i-go.group";// gmail 邮箱 |
| | | final String password = "fggipafjlcqxjmef";// Google应用专用密码 |
| | | // final String username = "1019712155@qq.com";// qq 邮箱 |
| | | // final String password = "ctuaexczdrembcfd";// 授权码 |
| | | Session session = Session.getInstance(props, |
| | | new Authenticator() { |
| | | protected PasswordAuthentication getPasswordAuthentication() { |
| | |
| | | props.put("mail.smtp.auth", "true"); |
| | | } |
| | | |
| | | private static void qqmailtls(Properties props) { |
| | | props.put("mail.smtp.auth", "true"); |
| | | props.put("mail.smtp.starttls.enable", "true"); |
| | | props.put("mail.smtp.host", "smtp.qq.com"); |
| | | props.put("mail.smtp.port", "587"); |
| | | } |
| | | |
| | | public static String getWeek(int language, int i) { |
| | | String week = ""; |
| | | if (language == 1) { |
| | |
| | | spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) |
| | | session-invalidate-time: 1800 #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒 |
| | | session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 |
| | | # file-upload-path: C:\Users\hi\Desktop\ #文件上传目录(不配置的话为java.io.tmpdir目录) |
| | | # picture-server-address: http://192.168.0.43/resources/ #图片服务器地址 |
| | | # file-upload-path: C:\Users\hi\Desktop\ #文件上传目录(不配置的话为java.io.tmpdir目录) |
| | | # picture-server-address: http://192.168.0.43/resources/ #图片服务器地址 |
| | | file-upload-path: C:\Users\Administrator\Desktop\apache-tomcat-8.0.33\webapps\ROOT\upload\ #文件上传目录(不配置的话为java.io.tmpdir目录) |
| | | picture-server-address: http://139.9.249.67:8080/upload/ #图片服务器地址 |
| | | rest-url: http://139.9.249.67:8080/rest/ #前端接口调用基础路径 |
| | |
| | | |
| | | spring: |
| | | datasource: |
| | | url: jdbc:mysql://34.35.60.126:3306/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0 |
| | | username: xiwang |
| | | password: HjKbXilb9zajmXbl |
| | | url: jdbc:mysql://34.35.67.173:3306/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0 |
| | | username: root |
| | | password: _6)S]<vpfvj?N#t2 |
| | | db-name: igotravel #用来搜集数据库的所有表 |
| | | filters: wall,mergeStat |
| | | |
| | |
| | | clusterCheckinInterval: 10000 |
| | | useProperties: false |
| | | threadPool: |
| | | class: org.quartz.simpl.SimpleThreadPool |
| | | threadCount: 10 |
| | | threadPriority: 5 |
| | | threadsInheritContextClassLoaderOfInitializingThread: true |
| | | class: org.quartz.simpl.SimpleThreadPool |
| | | threadCount: 10 |
| | | threadPriority: 5 |
| | | threadsInheritContextClassLoaderOfInitializingThread: true |
| | | job-store-type: jdbc |
| | | |
| | | --- |
| | |
| | | <option value="2">未结算</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="company" name="运营商" > |
| | | <option value="">全部</option> |
| | | @for(c in company!){ |
| | | <option value="${c.id}">${c.name}</option> |
| | | @} |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="查询" icon="fa-search" clickFun="TUser.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/> |
| | |
| | | <option value="4">折扣</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="company" name="运营商" > |
| | | <option value="">全部</option> |
| | | @for(c in company!){ |
| | | <option value="${c.id}">${c.name}</option> |
| | | @} |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="查询" icon="fa-search" clickFun="TUser.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/> |
| | |
| | | <div class="col-sm-3"> |
| | | <#TimeCon id="insertTime" name="时间" isTime="false"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="type" name="补贴类型" > |
| | | <option value="">全部</option> |
| | | <option value="1">红包</option> |
| | | <option value="2">优惠券</option> |
| | | <option value="3">司机奖励</option> |
| | | <option value="4">折扣</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="type" name="补贴类型" > |
| | | <option value="">全部</option> |
| | | <option value="1">红包</option> |
| | | <option value="2">优惠券</option> |
| | | <option value="3">司机奖励</option> |
| | | <option value="4">折扣</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="company" name="运营商" > |
| | | <option value="">全部</option> |
| | | @for(c in company!){ |
| | | <option value="${c.id}">${c.name}</option> |
| | | @} |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="查询" icon="fa-search" clickFun="TUser.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/> |
| | |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>管理</h5> |
| | | <h5>在线时长统计</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="company" name="运营商" > |
| | | <option value="">全部</option> |
| | | @for(c in company!){ |
| | | <option value="${c.id}">${c.name}</option> |
| | | @} |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TIncome.search()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="TIncome.resetSearch()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TIncomeTableToolbar" role="group"> |
| | | <#button name="详情" icon="fa-plus" clickFun="TIncome.detail()"/> |
| | | </div> |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <input type="hidden" id="times" value="${times}"> |
| | | <input id="times" type="hidden" value="${times}"> |
| | | <input id="company" type="hidden" value="${company}"> |
| | | </div> |
| | | <#table id="TIncomeTable"/> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | <#NameCon id="userName" name="下单用户姓名" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | <input type="hidden" id="id" name="id" value="${item.id}"> |
| | | <input id="id" name="id" type="hidden" value="${item.id}"> |
| | | <div class="row" style="margin-top: 30px;"> |
| | | <div class="col-sm-4"> |
| | | <h2 class="h3Class" style="font-weight: 700;">订单详情</h2> |
| | |
| | | <div class="col-sm-6 b-r"> |
| | | <#label id="insertTimeStr" name="下单时间" value="${item.insertTimeStr}"/> |
| | | <#label id="orderSourceStr" name="订单来源" value="${item.orderSourceStr}"/> |
| | | <#label id="userName" name="下单用户昵称" value="${item.userName}"/> |
| | | <#label id="passengers" name="乘车用户昵称" value="${item.passengers}"/> |
| | | <#label id="userName" name="下单用户姓名" value="${item.userName}"/> |
| | | <#label id="passengers" name="乘车用户姓名" value="${item.passengers}"/> |
| | | <#label id="placementAddress" name="起点" value="${item.startAddress}"/> |
| | | <#label id="driver" name="接单司机" value="${item.driver}"/> |
| | | <#label id="car" name="接单车辆" value="${item.car}"/> |
| | |
| | | <div class="input-card" style="margin-left: 50px;"> |
| | | <h4>轨迹回放控制</h4> |
| | | <div class="input-item"> |
| | | <input type="button" class="btn" value="开始动画" id="start" onclick="startAnimation()"/> |
| | | <input type="button" class="btn" value="暂停动画" id="pause" onclick="pauseAnimation()"/> |
| | | <input type="button" class="btn" value="继续动画" id="resume" onclick="resumeAnimation()"/> |
| | | <input type="button" class="btn" value="停止动画" id="stop" onclick="stopAnimation()"/> |
| | | <input class="btn" id="start" onclick="startAnimation()" type="button" value="开始动画"/> |
| | | <input class="btn" id="pause" onclick="pauseAnimation()" type="button" value="暂停动画"/> |
| | | <input class="btn" id="resume" onclick="resumeAnimation()" type="button" value="继续动画"/> |
| | | <input class="btn" id="stop" onclick="stopAnimation()" type="button" value="停止动画"/> |
| | | </div> |
| | | <div class="input-item"> |
| | | |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | <#NameCon id="userName" name="下单用户姓名" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | |
| | | <div class="col-sm-6 b-r"> |
| | | <#label id="insertTimeStr" name="下单时间" value="${item.insertTimeStr}"/> |
| | | <#label id="orderSourceStr" name="订单来源" value="${item.orderSourceStr}"/> |
| | | <#label id="userName" name="下单用户昵称" value="${item.userName}"/> |
| | | <#label id="recipient" name="收货人昵称" value="${item.recipient}"/> |
| | | <#label id="userName" name="下单用户姓名" value="${item.userName}"/> |
| | | <#label id="recipient" name="收货人姓名" value="${item.recipient}"/> |
| | | <#label id="startAddress" name="起点" value="${item.startAddress}"/> |
| | | <#label id="driver" name="接单司机" value="${item.driver}"/> |
| | | <#label id="companyName" name="订单所属机构" value="${item.companyName}"/> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | <#NameCon id="userName" name="下单用户姓名" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | <input type="hidden" id="id" name="id" value="${item.id}"> |
| | | <input id="id" name="id" type="hidden" value="${item.id}"> |
| | | <div class="row" style="margin-top: 30px;"> |
| | | <div class="col-sm-4"> |
| | | <h2 class="h3Class" style="font-weight: 700;">订单详情</h2> |
| | |
| | | <div class="col-sm-6 b-r"> |
| | | <#label id="insertTimeStr" name="下单时间" value="${item.insertTimeStr}"/> |
| | | <!--<#label id="orderSourceStr" name="订单来源" value="${item.orderSourceStr}"/>--> |
| | | <#label id="userName" name="下单用户昵称" value="${item.userName}"/> |
| | | <#label id="passengers" name="乘车用户昵称" value="${item.passengers}"/> |
| | | <#label id="userName" name="下单用户姓名" value="${item.userName}"/> |
| | | <#label id="passengers" name="乘车用户姓名" value="${item.passengers}"/> |
| | | <#label id="placementAddress" name="起点" value="${item.startAddress}"/> |
| | | <#label id="serverCarModel" name="选择车型" value="${item.serverCarModel}"/> |
| | | <#label id="car" name="接单车辆" value="${item.car}"/> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | <#NameCon id="userName" name="下单用户姓名" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | <input type="hidden" id="id" name="id" value="${item.id}"> |
| | | <input id="id" name="id" type="hidden" value="${item.id}"> |
| | | <div class="row" style="margin-top: 30px;"> |
| | | <div class="col-sm-4"> |
| | | <h2 class="h3Class" style="font-weight: 700;">订单详情</h2> |
| | |
| | | <div class="col-sm-6 b-r"> |
| | | <#label id="insertTimeStr" name="下单时间" value="${item.insertTimeStr}"/> |
| | | <#label id="orderSourceStr" name="订单来源" value="${item.orderSourceStr}"/> |
| | | <#label id="userName" name="下单用户昵称" value="${item.userName}"/> |
| | | <#label id="passengers" name="乘车用户昵称" value="${item.passengers}"/> |
| | | <#label id="userName" name="下单用户姓名" value="${item.userName}"/> |
| | | <#label id="passengers" name="乘车用户姓名" value="${item.passengers}"/> |
| | | <#label id="placementAddress" name="起点" value="${item.startAddress}"/> |
| | | <#label id="driver" name="接单司机" value="${item.driver}"/> |
| | | <#label id="car" name="接单车辆" value="${item.car}"/> |
| | |
| | | <div class="input-card" style="margin-left: 50px;"> |
| | | <h4>轨迹回放控制</h4> |
| | | <div class="input-item"> |
| | | <input type="button" class="btn" value="开始动画" id="start" onclick="startAnimation()"/> |
| | | <input type="button" class="btn" value="暂停动画" id="pause" onclick="pauseAnimation()"/> |
| | | <input type="button" class="btn" value="继续动画" id="resume" onclick="resumeAnimation()"/> |
| | | <input type="button" class="btn" value="停止动画" id="stop" onclick="stopAnimation()"/> |
| | | <input class="btn" id="start" onclick="startAnimation()" type="button" value="开始动画"/> |
| | | <input class="btn" id="pause" onclick="pauseAnimation()" type="button" value="暂停动画"/> |
| | | <input class="btn" id="resume" onclick="resumeAnimation()" type="button" value="继续动画"/> |
| | | <input class="btn" id="stop" onclick="stopAnimation()" type="button" value="停止动画"/> |
| | | </div> |
| | | <div class="input-item"> |
| | | |
| | |
| | | ajax.set("time",1); |
| | | ajax.set("insertTime",null); |
| | | ajax.set("state",null); |
| | | ajax.set('company', null); |
| | | ajax.start(); |
| | | } |
| | | // 点击搜索 |
| | |
| | | ajax.set("time",$("#time").val()); |
| | | ajax.set("insertTime",$("#insertTime").val()); |
| | | ajax.set("state",$("#state").val()); |
| | | ajax.set('company', $("#company").val()); |
| | | ajax.start(); |
| | | } |
| | | /** |
| | |
| | | queryData['time'] = $("#time").val(); |
| | | queryData['insertTime'] = $("#insertTime").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | queryData['company'] = $("#company").val(); |
| | | TUser.table.refresh({query: queryData}); |
| | | TUser.getCount(); |
| | | }; |
| | |
| | | $("#time").val("1"); |
| | | $("#insertTime").val(""); |
| | | $("#state").val(""); |
| | | $("#company").val(""); |
| | | TUser.search(); |
| | | }; |
| | | |
| | |
| | | ajax.set("time",1); |
| | | ajax.set("insertTime",null); |
| | | ajax.set("type",null); |
| | | ajax.set('company', null); |
| | | ajax.start(); |
| | | } |
| | | // 点击搜索 |
| | |
| | | ajax.set("time",$("#time").val()); |
| | | ajax.set("insertTime",$("#insertTime").val()); |
| | | ajax.set("type",$("#type").val()); |
| | | ajax.set('company', $("#company").val()); |
| | | ajax.start(); |
| | | } |
| | | /** |
| | |
| | | queryData['time'] = $("#time").val(); |
| | | queryData['insertTime'] = $("#insertTime").val(); |
| | | queryData['type'] = $("#type").val(); |
| | | queryData['company'] = $("#company").val(); |
| | | TUser.table.refresh({query: queryData}); |
| | | TUser.getCount(); |
| | | }; |
| | |
| | | $("#time").val("1"); |
| | | $("#insertTime").val(""); |
| | | $("#type").val(""); |
| | | $("#company").val(""); |
| | | TUser.search(); |
| | | TUser.getCount1(); |
| | | }; |
| | |
| | | ajax.set("time",1); |
| | | ajax.set("insertTime",null); |
| | | ajax.set("type",null); |
| | | ajax.set('company', null); |
| | | ajax.start(); |
| | | } |
| | | // 点击搜索 |
| | |
| | | ajax.set("time",$("#time").val()); |
| | | ajax.set("insertTime",$("#insertTime").val()); |
| | | ajax.set("type",$("#type").val()); |
| | | ajax.set('company', $("#company").val()); |
| | | ajax.start(); |
| | | } |
| | | /** |
| | |
| | | queryData['time'] = $("#time").val(); |
| | | queryData['insertTime'] = $("#insertTime").val(); |
| | | queryData['type'] = $("#type").val(); |
| | | queryData['company'] = $("#company").val(); |
| | | TUser.table.refresh({query: queryData}); |
| | | TUser.getCount(); |
| | | }; |
| | |
| | | $("#time").val("1"); |
| | | $("#insertTime").val(""); |
| | | $("#type").val(""); |
| | | $("#company").val(""); |
| | | TUser.search(); |
| | | }; |
| | | |
| | |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tIncome/driverWorkDetail?times=' + TIncome.seItem.times |
| | | content: Feng.ctxPath + '/tIncome/driverWorkDetail?times=' + TIncome.seItem.times + "&company=" + $("#company").val() |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | |
| | | */ |
| | | TIncome.search = function () { |
| | | var queryData = {}; |
| | | queryData['id'] = $("#id").val(); |
| | | queryData['company'] = $("#company").val(); |
| | | TIncome.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | TIncome.resetSearch = function () { |
| | | $("#company").val(""); |
| | | TIncome.search(); |
| | | }; |
| | | |
| | | $(function () { |
| | | var defaultColunms = TIncome.initColumn(); |
| | | var table = new BSTable(TIncome.id, "/tIncome/driverWorkList", defaultColunms); |
| | |
| | | table.setPaginationType("server"); |
| | | var queryData = {}; |
| | | queryData['times'] = $("#times").val(); |
| | | queryData['company'] = $("#company").val(); |
| | | table.setQueryParams(queryData); |
| | | TIncome.table = table.init(); |
| | | }); |
| | |
| | | } else if (type == 1 && selected[0].status != 1) { |
| | | Feng.info("当前状态不能审核!"); |
| | | return false; |
| | | } else if (type == 2 && ((selected[0].status != 1 && selected[0].status != 2) || new Date() >= new Date(selected[0].startTime.replace(/-/g, "/")))) { |
| | | } else if (type == 2 && ((selected[0].status != 1 && selected[0].status != 2 && selected[0].status != 5 && selected[0].status != 7) || new Date() >= new Date(selected[0].startTime.replace(/-/g, "/")))) { |
| | | Feng.info("当前状态不能编辑!"); |
| | | return false; |
| | | } |
| | |
| | | @Bean |
| | | public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) { |
| | | CookieRememberMeManager manager = new CookieRememberMeManager(); |
| | | manager.setCipherKey(Base64.decode("Z3VucwAAAAAAAAAAAAAAAA==")); |
| | | manager.setCipherKey(Base64.decode("1IuXNg73B4lqGJsB")); |
| | | manager.setCookie(rememberMeCookie); |
| | | return manager; |
| | | } |
| | |
| | | } |
| | | |
| | | orderLogistics.setDriverId(driverId); |
| | | orderLogistics.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderLogistics.setCompanyId(driver.getCompanyId()); |
| | | orderLogistics.setState(2); |
| | | orderLogistics.setCarId(driver.getCarId()); |
| | | CarService query1 = carServiceMapper.query(1, driver.getCarId()); |
| | |
| | | .eq("state", 1).like("type", "4")); |
| | | if(driver1.getState() == 2 || null != driverWork){ |
| | | orderLogistics.setDriverId(dr.getId()); |
| | | orderLogistics.setCompanyId(dr.getFranchiseeId() != null && dr.getFranchiseeId() != 0 ? dr.getFranchiseeId() : ( |
| | | dr.getCompanyId() != null && dr.getCompanyId() != 0 ? dr.getCompanyId() : 1)); |
| | | orderLogistics.setCompanyId(dr.getCompanyId()); |
| | | orderLogistics.setState(2); |
| | | orderLogistics.setCarId(dr.getCarId()); |
| | | CarService query1 = carServiceMapper.query(4, dr.getCarId()); |
| | |
| | | if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(new BigDecimal(userCouponRecord.getFullMoney())) < 0){ |
| | | return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupon cannot be used for this order." : "Le coupon ne peut pas être utilisé pour cette commande.", ""); |
| | | } |
| | | orderMoney = orderMoney.subtract(new BigDecimal(userCouponRecord.getMoney())).setScale(2, RoundingMode.HALF_EVEN); |
| | | orderMoney = orderMoney.subtract(new BigDecimal(userCouponRecord.getMoney())); |
| | | orderLogistics.setCouponMoney(userCouponRecord.getMoney()); |
| | | orderLogistics.setCouponId(couponId); |
| | | } |
| | |
| | | BigDecimal multiply1 = orderMoney.multiply(deductionRatio.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN); |
| | | if(total > 0 && multiply1.doubleValue() > 0 && total.compareTo(multiply1.doubleValue()) >= 0){ |
| | | orderLogistics.setRedPacketMoney(multiply1.doubleValue()); |
| | | orderMoney = orderMoney.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN); |
| | | orderMoney = orderMoney.subtract(multiply1); |
| | | |
| | | //获取红包id |
| | | JSONArray jsonArray = new JSONArray(); |
| | |
| | | orderLogistics.setRedPacketId(jsonArray.toJSONString()); |
| | | }else if(total > 0 && total.compareTo(multiply1.doubleValue()) < 0){ |
| | | orderLogistics.setRedPacketMoney(total); |
| | | orderMoney = orderMoney.subtract(new BigDecimal(total)).setScale(2, RoundingMode.HALF_EVEN); |
| | | orderMoney = orderMoney.subtract(new BigDecimal(total)); |
| | | //获取红包id |
| | | JSONArray jsonArray = new JSONArray(); |
| | | for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) { |
| | |
| | | } |
| | | |
| | | Double aDouble1 = new BigDecimal(orderLogistics.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | if(1 == finalLanguage1){ |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("french").remove(); |
| | |
| | | aDouble = orderEvaluateService.queryDriverScore(orderLogistics.getDriverId()); |
| | | } |
| | | Double aDouble1 = new BigDecimal(orderLogistics.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | if(1 == finalLanguage){ |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("french").remove(); |
| | |
| | | aDouble = orderEvaluateService.queryDriverScore(orderLogistics.getDriverId()); |
| | | } |
| | | Double aDouble1 = new BigDecimal(orderLogistics.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | Long serviceTime = new BigDecimal(orderLogistics.getEndServiceTime().getTime() - orderLogistics.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | if(1 == language){ |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("french").remove(); |
| | |
| | | } |
| | | |
| | | orderPrivateCar.setDriverId(driverId); |
| | | orderPrivateCar.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderPrivateCar.setCompanyId(driver.getCompanyId()); |
| | | orderPrivateCar.setState(2); |
| | | orderPrivateCar.setCarId(driver.getCarId()); |
| | | CarService query1 = carServiceMapper.query(1, driver.getCarId()); |
| | |
| | | .eq("state", 1).like("type", "1")); |
| | | if(driver.getState() == 2 && null != driverWork){ |
| | | orderPrivateCar.setDriverId(dr.getId()); |
| | | orderPrivateCar.setCompanyId(dr.getFranchiseeId() != null && dr.getFranchiseeId() != 0 ? dr.getFranchiseeId() : ( |
| | | dr.getCompanyId() != null && dr.getCompanyId() != 0 ? dr.getCompanyId() : 1)); |
| | | orderPrivateCar.setCompanyId(dr.getCompanyId()); |
| | | orderPrivateCar.setState(2); |
| | | orderPrivateCar.setCarId(dr.getCarId()); |
| | | CarService query1 = carServiceMapper.query(1, dr.getCarId()); |
| | |
| | | if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(new BigDecimal(userCouponRecord.getFullMoney())) < 0){ |
| | | return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupon cannot be used for this order." : "Le coupon ne peut pas être utilisé pour cette commande.", ""); |
| | | } |
| | | orderMoney = orderMoney.subtract(new BigDecimal(userCouponRecord.getMoney())).setScale(2, RoundingMode.HALF_EVEN); |
| | | orderMoney = orderMoney.subtract(new BigDecimal(userCouponRecord.getMoney())); |
| | | orderPrivateCar.setCouponMoney(userCouponRecord.getMoney()); |
| | | orderPrivateCar.setCouponId(couponId); |
| | | } |
| | |
| | | BigDecimal multiply1 = orderMoney.multiply(deductionRatio.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN); |
| | | if(total > 0 && multiply1.doubleValue() > 0 && total.compareTo(multiply1.doubleValue()) >= 0){ |
| | | orderPrivateCar.setRedPacketMoney(multiply1.doubleValue()); |
| | | orderMoney = orderMoney.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN); |
| | | orderMoney = orderMoney.subtract(multiply1); |
| | | |
| | | //获取红包id |
| | | JSONArray jsonArray = new JSONArray(); |
| | |
| | | orderPrivateCar.setRedPacketId(jsonArray.toJSONString()); |
| | | }else if(total > 0 && total.compareTo(multiply1.doubleValue()) < 0){ |
| | | orderPrivateCar.setRedPacketMoney(total); |
| | | orderMoney = orderMoney.subtract(new BigDecimal(total)).setScale(2, RoundingMode.HALF_EVEN); |
| | | orderMoney = orderMoney.subtract(new BigDecimal(total)); |
| | | //获取红包id |
| | | JSONArray jsonArray = new JSONArray(); |
| | | for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) { |
| | |
| | | aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId()); |
| | | } |
| | | Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | if(1 == language){ |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("french").remove(); |
| | |
| | | aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId()); |
| | | } |
| | | Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | if(1 == language){ |
| | | document.getElementById("english").remove(); |
| | |
| | | aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId()); |
| | | } |
| | | Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000), 0, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.HALF_EVEN).longValue(); |
| | | if(1 == language){ |
| | | document.getElementById("english").remove(); |
| | | document.getElementById("french").remove(); |
| | |
| | | where a.state = 1 |
| | | <choose> |
| | | <when test="companyId != 1"> |
| | | and a.companyId = #{companyId} or a.franchiseeId = #{companyId} |
| | | and a.companyId = #{companyId} |
| | | </when> |
| | | <otherwise> |
| | | and a.isPlatCar = 1 |
| | |
| | | <if test="null != companyId"> |
| | | <choose> |
| | | <when test="companyId != 1"> |
| | | and companyId = #{companyId} or franchiseeId = #{companyId} |
| | | and companyId = #{companyId} |
| | | </when> |
| | | <otherwise> |
| | | and companyId is null or companyId = 0 or companyId = 1 or franchiseeId is null or franchiseeId = 0 |
| | | and companyId is null or companyId = 0 or companyId = 1 |
| | | </otherwise> |
| | | </choose> |
| | | |
| | |
| | | <if test="null != companyId"> |
| | | <choose> |
| | | <when test="companyId != 1"> |
| | | and companyId = #{companyId} or franchiseeId = #{companyId} |
| | | and companyId = #{companyId} |
| | | </when> |
| | | <otherwise> |
| | | and companyId is null or companyId = 0 or companyId = 1 or franchiseeId is null or franchiseeId = 0 |
| | | and companyId is null or companyId = 0 or companyId = 1 |
| | | </otherwise> |
| | | </choose> |
| | | |
| | |
| | | driverActivityHistory.setCompletionTime(new Date()); |
| | | driverActivityHistoryMapper.updateById(driverActivityHistory); |
| | | } |
| | | driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverMapper.updateById(driver); |
| | | |
| | | if(ToolUtil.isNotEmpty(driver.getEmail())){ |
| | | BigDecimal finalBigDecimal = bigDecimal; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | String path1 = templatePath + "driver/index.html"; |
| | | Document document1 = Jsoup.parse(new File(path1), "UTF-8"); |
| | | if(1 == language){ |
| | | document1.getElementById("english").remove(); |
| | | document1.getElementById("french").remove(); |
| | | document1.getElementById("invite").remove(); |
| | | document1.getElementById("settle").remove(); |
| | | document1.getElementById("pass").remove(); |
| | | document1.getElementById("bill").remove(); |
| | | document1.getElementById("reward").remove(); |
| | | document1.getElementById("rewardToday").remove(); |
| | | |
| | | document1.getElementsByTag("title").get(0).text("司机奖励通知"); |
| | | Element user_user = document1.getElementById("user_user"); |
| | | user_user.text("您好 " + driver.getFirstName() + " " + driver.getLastName() + ","); |
| | | Element user_content = document1.getElementById("user_content"); |
| | | user_content.text("您已成功邀请一位用户注册I-GO,获得奖励GHS " + finalBigDecimal.doubleValue() + ",请查收"); |
| | | if(bigDecimal.compareTo(BigDecimal.ZERO) > 0){ |
| | | driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverMapper.updateById(driver); |
| | | |
| | | if(ToolUtil.isNotEmpty(driver.getEmail())){ |
| | | BigDecimal finalBigDecimal = bigDecimal; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | String path1 = templatePath + "driver/index.html"; |
| | | Document document1 = Jsoup.parse(new File(path1), "UTF-8"); |
| | | if(1 == language){ |
| | | document1.getElementById("english").remove(); |
| | | document1.getElementById("french").remove(); |
| | | document1.getElementById("invite").remove(); |
| | | document1.getElementById("settle").remove(); |
| | | document1.getElementById("pass").remove(); |
| | | document1.getElementById("bill").remove(); |
| | | document1.getElementById("reward").remove(); |
| | | document1.getElementById("rewardToday").remove(); |
| | | |
| | | document1.getElementsByTag("title").get(0).text("司机奖励通知"); |
| | | Element user_user = document1.getElementById("user_user"); |
| | | user_user.text("您好 " + driver.getFirstName() + " " + driver.getLastName() + ","); |
| | | Element user_content = document1.getElementById("user_content"); |
| | | user_content.text("您已成功邀请一位用户注册I-GO,获得奖励GHS " + finalBigDecimal.doubleValue() + ",请查收"); |
| | | } |
| | | if(2 == language){ |
| | | document1.getElementById("chinese").remove(); |
| | | document1.getElementById("french").remove(); |
| | | document1.getElementById("invite1").remove(); |
| | | document1.getElementById("settle1").remove(); |
| | | document1.getElementById("pass1").remove(); |
| | | document1.getElementById("bill1").remove(); |
| | | document1.getElementById("reward1").remove(); |
| | | document1.getElementById("rewardToday1").remove(); |
| | | |
| | | document1.getElementsByTag("title").get(0).text("Reward-driver notice"); |
| | | Element user1_user = document1.getElementById("user1_user"); |
| | | user1_user.text("Hello " + driver.getFirstName() + " " + driver.getLastName() + ","); |
| | | Element user1_content = document1.getElementById("user1_content"); |
| | | user1_content.text("You have succeeded to invite a rider to register with I-GO, so you received a GHS " + finalBigDecimal.doubleValue() + " bonus, please check your balance."); |
| | | } |
| | | if(3 == language){ |
| | | document1.getElementById("chinese").remove(); |
| | | document1.getElementById("english").remove(); |
| | | document1.getElementById("invite1").remove(); |
| | | document1.getElementById("settle1").remove(); |
| | | document1.getElementById("pass1").remove(); |
| | | document1.getElementById("bill1").remove(); |
| | | document1.getElementById("reward1").remove(); |
| | | document1.getElementById("rewardToday1").remove(); |
| | | |
| | | document1.getElementsByTag("title").get(0).text("Avis de chauffeur de récompense"); |
| | | Element user2_user = document1.getElementById("user2_user"); |
| | | user2_user.text("Bonjour " + driver.getFirstName() + " " + driver.getLastName() + ","); |
| | | Element user2_content = document1.getElementById("user2_content"); |
| | | user2_content.text("Vous avez invité avec succès un utilisateur à s’inscrire à i-go pour recevoir une récompense GHS " + finalBigDecimal.doubleValue() + ". Veuillez vérifier"); |
| | | } |
| | | EmailUtil.send(driver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document1.html()); |
| | | //开始生成pdf收据和html收据 |
| | | File file = new File("/home/igotechgh/nginx/html/files/html/"); |
| | | if(!file.exists()){ |
| | | file.mkdirs(); |
| | | } |
| | | String randomString = ToolUtil.getRandomString(10); |
| | | file = new File("/home/igotechgh/nginx/html/files/html/invitation_" + randomString + ".html"); |
| | | if(!file.exists()){ |
| | | file.createNewFile(); |
| | | } |
| | | FileWriter fileWriter = new FileWriter(file); |
| | | fileWriter.write(document1.html()); |
| | | fileWriter.flush(); |
| | | fileWriter.close(); |
| | | |
| | | String link ="https://igo.i-go.group/files/html/invitation_" + randomString + ".html"; |
| | | TEmail tEmail = new TEmail(); |
| | | tEmail.setLink(link); |
| | | tEmail.setUserId(driver.getId()); |
| | | tEmail.setType(2); |
| | | tEmail.setName(language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense"); |
| | | tEmail.setCreateTime(new Date()); |
| | | int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1; |
| | | tEmail.setWeek(EmailUtil.getWeek(language,i)); |
| | | boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); |
| | | if(am){ |
| | | tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); |
| | | }else { |
| | | tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); |
| | | } |
| | | emailService.insert(tEmail); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | if(2 == language){ |
| | | document1.getElementById("chinese").remove(); |
| | | document1.getElementById("french").remove(); |
| | | document1.getElementById("invite1").remove(); |
| | | document1.getElementById("settle1").remove(); |
| | | document1.getElementById("pass1").remove(); |
| | | document1.getElementById("bill1").remove(); |
| | | document1.getElementById("reward1").remove(); |
| | | document1.getElementById("rewardToday1").remove(); |
| | | |
| | | document1.getElementsByTag("title").get(0).text("Reward-driver notice"); |
| | | Element user1_user = document1.getElementById("user1_user"); |
| | | user1_user.text("Hello " + driver.getFirstName() + " " + driver.getLastName() + ","); |
| | | Element user1_content = document1.getElementById("user1_content"); |
| | | user1_content.text("You have succeeded to invite a rider to register with I-GO, so you received a GHS " + finalBigDecimal.doubleValue() + " bonus, please check your balance."); |
| | | } |
| | | if(3 == language){ |
| | | document1.getElementById("chinese").remove(); |
| | | document1.getElementById("english").remove(); |
| | | document1.getElementById("invite1").remove(); |
| | | document1.getElementById("settle1").remove(); |
| | | document1.getElementById("pass1").remove(); |
| | | document1.getElementById("bill1").remove(); |
| | | document1.getElementById("reward1").remove(); |
| | | document1.getElementById("rewardToday1").remove(); |
| | | |
| | | document1.getElementsByTag("title").get(0).text("Avis de chauffeur de récompense"); |
| | | Element user2_user = document1.getElementById("user2_user"); |
| | | user2_user.text("Bonjour " + driver.getFirstName() + " " + driver.getLastName() + ","); |
| | | Element user2_content = document1.getElementById("user2_content"); |
| | | user2_content.text("Vous avez invité avec succès un utilisateur à s’inscrire à i-go pour recevoir une récompense GHS " + finalBigDecimal.doubleValue() + ". Veuillez vérifier"); |
| | | } |
| | | EmailUtil.send(driver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document1.html()); |
| | | //开始生成pdf收据和html收据 |
| | | File file = new File("/home/igotechgh/nginx/html/files/html/"); |
| | | if(!file.exists()){ |
| | | file.mkdirs(); |
| | | } |
| | | String randomString = ToolUtil.getRandomString(10); |
| | | file = new File("/home/igotechgh/nginx/html/files/html/invitation_" + randomString + ".html"); |
| | | if(!file.exists()){ |
| | | file.createNewFile(); |
| | | } |
| | | FileWriter fileWriter = new FileWriter(file); |
| | | fileWriter.write(document1.html()); |
| | | fileWriter.flush(); |
| | | fileWriter.close(); |
| | | |
| | | String link ="https://igo.i-go.group/files/html/invitation_" + randomString + ".html"; |
| | | TEmail tEmail = new TEmail(); |
| | | tEmail.setLink(link); |
| | | tEmail.setUserId(driver.getId()); |
| | | tEmail.setType(2); |
| | | tEmail.setName(language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense"); |
| | | tEmail.setCreateTime(new Date()); |
| | | int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1; |
| | | tEmail.setWeek(EmailUtil.getWeek(language,i)); |
| | | boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); |
| | | if(am){ |
| | | tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin"); |
| | | }else { |
| | | tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi"); |
| | | } |
| | | emailService.insert(tEmail); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }).start(); |
| | | }).start(); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | phone=json.getString("phoneNumber"); |
| | | } |
| | | } |
| | | if(null!=userInfo && !openid.equals(userInfo.getAppletsOpenId())){ |
| | | if(null != userInfo && ToolUtil.isEmpty(userInfo.getPhone())){ |
| | | String result= weChatUtil.decrypt1(encryptedData,map.get("sessionKey"),iv); |
| | | JSONObject json=JSONObject.parseObject(result); |
| | | |
| | | if (!ToolUtil.isEmpty(result) && result.length()>0) { |
| | | UserInfo userInfo1 = userInfoMapper.queryByPhone(json.getString("phoneNumber")); |
| | | phone=json.getString("phoneNumber"); |
| | | //删除新注册的数据,将小程序标识合并到就数据上 |
| | | if(null != userInfo1){ |
| | | userInfo.setFlag(2); |
| | | userInfoMapper.updateById(userInfo); |
| | | userInfo = userInfo1; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(null != userInfo && ToolUtil.isEmpty(userInfo.getAppletsOpenId())){ |
| | | userInfo.setAppletsOpenId(openid); |
| | | userInfo.setUnionid(unionid); |
| | | userInfo.setNickName(ToolUtil.isNotEmpty(nickName) ? nickName : this.getDefaultName()); |
| | | userInfo.setAvatar(avatar); |
| | | userInfoMapper.updateById(userInfo); |
| | | } |
| | | |
| | | |
| | | if(null != userInfo && ToolUtil.isNotEmpty(userInfo.getAppletsOpenId()) && !openid.equals(userInfo.getAppletsOpenId())){ |
| | | return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "The mobile phone number has been registered" : "Le numéro de téléphone portable a été enregistré"); |
| | | } |
| | | }else{//APP |
| | | userInfo = userInfoMapper.queryByOpenid(openid); |
| | | } |
| | |
| | | gmailssl(props); |
| | | |
| | | final String displayName = "I-GO";//昵称 |
| | | final String username = "i-gotech@i-go.group";// gmail 邮箱 |
| | | final String password = "wpwfkrlvridoayyh";// Google应用专用密码 |
| | | final String username = "noreply@i-go.group";// gmail 邮箱 |
| | | final String password = "fggipafjlcqxjmef";// Google应用专用密码 |
| | | Session session = Session.getInstance(props, |
| | | new Authenticator() { |
| | | protected PasswordAuthentication getPasswordAuthentication() { |
| | |
| | | return ResultUtil.error("该司机不能服务此业务"); |
| | | } |
| | | |
| | | orderTaxi.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( |
| | | driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); |
| | | orderTaxi.setCompanyId(driver.getCompanyId()); |
| | | orderTaxi.setCarId(driver.getCarId()); |
| | | orderTaxi.setState(2);//待出发 |
| | | orderTaxi.setSnatchOrderTime(new Date()); |
| | |
| | | enabled: false |
| | | additional-paths: src/main/java |
| | | exclude: static/**,WEB-INF/view/** |
| | | servlet: |
| | | multipart: |
| | | max-request-size: 100MB |
| | | max-file-size: 100MB |
| | | redis: |
| | | database: 0 |
| | | host: 127.0.0.1 |
| | |
| | | |
| | | spring: |
| | | mail: |
| | | host: smtp.gmail.com # 配置 smtp 服务器地址 |
| | | port: 465 # smtp 服务器的端口 |
| | | username: i-gotech@i-go.group # 配置邮箱用户名(你的邮箱地址) |
| | | password: mhizkqkhuknbitps # 配置申请到的授权码(刚让复制的授权码) |
| | | default-encoding: UTF-8 # 配置邮件编码 |
| | | properties: |
| | | mail: |
| | | smtp: |
| | | socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂 |
| | | debug: true |
| | | from: i-gotech@i-go.group # 发送方邮件,配在yml中可方便更改 |
| | | template-path: /home/igotechgh/nginx/html/mailbox/ |
| | | |
| | | --- |
| | |
| | | multipart: |
| | | max-file-size: 100MB |
| | | max-request-size: 100MB |
| | | file-size-threshold: 100MB |
| | | redis: |
| | | database: 0 |
| | | host: 127.0.0.1 |
| | | port: 16379 |
| | | password: mPMHThYzlT8DWgl8HLqwPEyPOiHDPPB5 |
| | | # port: 6379 |
| | | # password: 123456 |
| | | |
| | | eureka: |
| | | client: |