puzhibing
2022-09-15 e7cfd5ba8109f9ee64345c5428e3aba83c07caf9
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -9,11 +9,17 @@
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.JwtTokenUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.dao.*;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
@@ -120,6 +126,12 @@
    private PushUtil pushUtil;
    @Autowired
    private ICityService cityService;
    @Autowired
    private IOrderPrivateCarService orderPrivateCarService;
    @Autowired
    private IOrderLogisticsService orderLogisticsService;
    @Value("${pushMinistryOfTransport}")
@@ -181,6 +193,22 @@
        return ResultUtil.success();
    }
    @Override
    public ResultUtil queryEmailCaptcha(String email) throws Exception {
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < 4; i++){
            sb.append((int) (random.nextDouble() * 10));
        }
        String authCode = sb.toString();
        String sms = "您发送的验证码为【" + authCode + "】,验证码将在5分钟后失效!";
        //发送验证码短信
        redisUtil.setStrValue(email, authCode, 5 * 60);//设置五分钟过期
        EmailUtil.getMimeMessage(email, "验证码", sms);
        return ResultUtil.success();
    }
    /**
     * 校验短信验证码
@@ -340,8 +368,9 @@
        driver.setSex(registeredWarpper.getSex());
        driver.setIdCard(registeredWarpper.getIdCard());
        String code = registeredWarpper.getPlaceOfEmployment();
        Company query = companyCityService.query(code);
        City city1 = cityService.selectById(registeredWarpper.getPlaceOfPracticeId());
        String[] city = new String[]{city1.getEnglishName()};
        Company query = companyCityService.query(city);
        if(null == query){
            return ResultUtil.error("选择从业地暂未开通业务");
        }
@@ -362,21 +391,21 @@
        driver.setHeadImgUrl(registeredWarpper.getHeadImgUrl());
        driver.setIdCardImgUrl1(registeredWarpper.getIdCardImgUrl1());
        driver.setIdCardImgUrl2(registeredWarpper.getIdCardImgUrl2());
        driver.setPlaceOfEmployment(registeredWarpper.getPlaceOfEmployment());
        driver.setPlaceOfEmployment(city1.getEnglishName());
        driver.setDriverAddress(registeredWarpper.getDriverContactAddress());
        driver.setDriverContactAddress(registeredWarpper.getDriverContactAddress());
        driver.setDriverContactAddress_(registeredWarpper.getDriverContactAddress_());
        driver.setPlaceOfPractice(registeredWarpper.getPlaceOfPractice());
        driver.setPlaceOfPractice(city1.getEnglishName());
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(registeredWarpper.getGetDriverLicenseDate());
        Calendar now = Calendar.getInstance();
        now.setTime(new Date());
        driver.setDriverAge(now.get(Calendar.YEAR) - calendar.get(Calendar.YEAR));
        driver.setDriveCardImgUrl(registeredWarpper.getDriveCardImgUrl());
        driver.setGetDriverLicenseDate(registeredWarpper.getGetDriverLicenseDate());
        driver.setTaxiAptitudeCard(registeredWarpper.getTaxiAptitudeCard());
        driver.setNetworkCarlssueImg(registeredWarpper.getNetworkCarlssueImg());
        driver.setDriveCardImgUrl1(registeredWarpper.getDriveCardImgUrl1());
        driver.setDriveCardImgUrl2(registeredWarpper.getDriveCardImgUrl2());
        driver.setEmail(registeredWarpper.getEmail());
        this.updateById(driver);
        //服务模式
@@ -432,13 +461,22 @@
    /**
     * 根据定位的城市行政编号获取分公司的客服电话
     * @param code
     * @return
     * @throws Exception
     */
    @Override
    public Map<String, Object> queryPhone(String code) throws Exception {
        Company query = companyCityService.query(code);
    public Map<String, Object> queryPhone(Double lat, Double lnt) throws Exception {
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
        if(null == reverseGeocode){
            System.err.println("获取地址异常");
            return null;
        }
        AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
        String[] city = new String[addressComponentsVos.length];
        for (int i = 0; i < addressComponentsVos.length; i++) {
            city[i] = addressComponentsVos[i].getLongName();
        }
        Company query = companyCityService.query(city);
        Map<String, Object> map = new HashMap<>();
        if(null == query){
            map.put("phone", "");
@@ -513,6 +551,22 @@
        Map<String, Object> map = driverMapper.queryHomeData(uid);
        int size = this.queryMyActivity(uid, new Date()).size();
        map.put("activity", size);
        //获取司机待支付的现金支付订单推送司机支付
        new Thread(new Runnable() {
            @Override
            public void run() {
                List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("driverId", uid).eq("payType", 4)
                        .eq("driverPay", 1).eq("isDelete", 1));
                for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
                    pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1);
                }
                List<OrderLogistics> orderLogistics = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("driverId", uid).eq("payType", 4)
                        .eq("isDelete", 1).eq("driverPay", 1));
                for (OrderLogistics orderLogistic : orderLogistics) {
                    pushUtil.pushOfflinePayment(2, orderLogistic.getDriverId(), orderLogistic.getId(), orderLogistic.getType());
                }
            }
        }).start();
        return map;
    }
@@ -821,6 +875,13 @@
    }
    @Override
    public void editLanguage(Integer language, Integer uid) throws Exception {
        Driver driver = this.selectById(uid);
        driver.setLanguage(language);
        this.updateById(driver);
    }
    /**
     * 电话号码查询司机
     * @param phone