| | |
| | | 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.LiuZhouBank.PayUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.ActivityWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.BaseWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.LoginWarpper; |
| | |
| | | |
| | | private String salt = "SA;d5#"; |
| | | |
| | | private Map<String, Long> loginTime = new HashMap<>();//登录时间 |
| | | |
| | | private Map<String, Integer> loginFailures = new HashMap<>();//登录失败次数 |
| | | |
| | | |
| | | |
| | | |
| | |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public ResultUtil queryCaptcha(String phone, Integer type) throws Exception { |
| | | public ResultUtil queryCaptcha(String checkCaptcha, Integer type) throws Exception { |
| | | checkCaptcha = AESUtil.decrypt(checkCaptcha); |
| | | |
| | | Random random = new Random(); |
| | | StringBuffer sb = new StringBuffer(); |
| | | for(int i = 0; i < 4; i++){ |
| | |
| | | String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"; |
| | | |
| | | //发送验证码短信 |
| | | redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期 |
| | | redisUtil.setStrValue(checkCaptcha, authCode, 5 * 60);//设置五分钟过期 |
| | | String templateCode = ""; |
| | | switch (type){ |
| | | case 1: |
| | | templateCode = "SMS_154775435";//身份验证 |
| | | templateCode = "SMS_276396626";//身份验证 |
| | | break; |
| | | case 2: |
| | | templateCode = "SMS_154775434";//登录确认 |
| | | templateCode = "SMS_276396626";//登录确认 |
| | | break; |
| | | case 3: |
| | | templateCode = "SMS_154775432";//用户注册 |
| | | templateCode = "SMS_276396626";//用户注册 |
| | | break; |
| | | case 4: |
| | | templateCode = "SMS_154775431";//修改密码 |
| | | templateCode = "SMS_276411658";//修改密码 |
| | | break; |
| | | } |
| | | String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}"); |
| | | String sData = aLiSendSms.sendSms(checkCaptcha, templateCode, "{\"code\":\"" + authCode + "\"}"); |
| | | JSONObject jsonObject = JSON.parseObject(sData); |
| | | String message = jsonObject.getString("Message"); |
| | | if(!"OK".equals(message)){ |
| | |
| | | */ |
| | | @Override |
| | | public ResultUtil registeredDriver(String phone, String code, String password, Integer uid, Integer type, Integer userType) throws Exception { |
| | | phone = AESUtil.decrypt(phone); |
| | | ResultUtil<LoginWarpper> result = this.registeredDriver(phone, code, password); |
| | | if(result.getCode() == 200 && null != uid){ |
| | | if(type == 2){ |
| | |
| | | incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money")))); |
| | | } |
| | | } |
| | | driver.setActivityMoney(bigDecimal.add(new BigDecimal(null == driver.getActivityMoney() ? 0 : driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(null == driver.getLaveActivityMoney() ? 0 : driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(bigDecimal.add(new BigDecimal(null == driver.getBalance() ? 0 : driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | 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); |
| | | |
| | | Map<String, Date> date = dateUtil.getStartAndEndDate(new Date()); |
| | |
| | | return ResultUtil.error("验证码无效"); |
| | | } |
| | | |
| | | phone = AESUtil.encrypt(phone); |
| | | Driver driver1 = driverMapper.queryByPhone_(phone, 4);//获取审核不通过的数据 |
| | | if(null != driver1){ |
| | | driver1.setAuthState(1); |
| | |
| | | */ |
| | | @Override |
| | | public ResultUtil resetPassword(String phone, String code, String password) throws Exception { |
| | | phone = AESUtil.decrypt(phone); |
| | | boolean b = this.checkCaptcha(phone, code); |
| | | if(!b){ |
| | | return ResultUtil.error("验证码无效"); |
| | | } |
| | | Driver driver = driverMapper.queryByPhone(phone); |
| | | String encrypt = AESUtil.encrypt(phone); |
| | | Driver driver = driverMapper.queryByPhone(encrypt); |
| | | if(null == driver){ |
| | | return ResultUtil.error("电话号码未注册"); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public ResultUtil<LoginWarpper> driverLogin(String phone, String password) throws Exception { |
| | | Driver driver = driverMapper.queryByPhone(phone); |
| | | System.err.println("前端原始加密数据---》" + phone); |
| | | phone = AESUtil.decrypt(phone); |
| | | System.err.println("后端解密数据---》" + phone); |
| | | Integer frequency = loginFailures.get(phone); |
| | | Long time = loginTime.get(phone); |
| | | if(null != time && System.currentTimeMillis() < (time + 1800000) && null != frequency && frequency >= 5){ |
| | | return ResultUtil.error("暂时无法登录,请30分钟后重试!"); |
| | | } |
| | | if(null != time && System.currentTimeMillis() >= (time + 1800000)){ |
| | | frequency = 0; |
| | | loginFailures.put(phone, frequency); |
| | | } |
| | | String encrypt = AESUtil.encrypt(phone); |
| | | Driver driver = driverMapper.queryByPhone(encrypt); |
| | | if(null == driver){ |
| | | return ResultUtil.error("账号未注册"); |
| | | } |
| | | if(ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1){ |
| | | if(driver.getAuthState() == 1){ |
| | | return ResultUtil.error("账号正在审核中,请耐心等待"); |
| | | } |
| | | if(driver.getAuthState() == 3){ |
| | | return ResultUtil.error("账号已被冻结,请联系管理员"); |
| | | } |
| | | if(!driver.getPassword().equals(ShiroKit.md5(password, salt))){ |
| | | frequency = (null == frequency ? 0 : frequency) + 1; |
| | | loginFailures.put(phone, frequency); |
| | | if(frequency == 1){ |
| | | loginTime.put(phone, System.currentTimeMillis()); |
| | | } |
| | | return ResultUtil.error("密码错误"); |
| | | } |
| | | |
| | |
| | | loginWarpper.setId(driver.getId()); |
| | | loginWarpper.setToken(token); |
| | | loginWarpper.setAppid(UUIDUtil.getRandomCode()); |
| | | loginWarpper.setState(ToolUtil.isEmpty(driver.getIdCard()) ? 1 : 0); |
| | | |
| | | //创建高德猎鹰的终端数据 |
| | | String tid = gdFalconUtil.createTerminal(phone); |
| | |
| | | */ |
| | | @Override |
| | | public Map<String, Object> queryHomeData(Integer uid) throws Exception { |
| | | Map<String, Object> map = this.baseMapper.queryHomeData(uid); |
| | | Map<String, Object> map = driverMapper.queryHomeData(uid); |
| | | int size = this.queryMyActivity(uid, new Date()).size(); |
| | | map.put("activity", size); |
| | | return map; |
| | |
| | | } |
| | | }).start(); |
| | | }else{ |
| | | List<Driver> drivers = this.selectList(new EntityWrapper<Driver>().eq("carId", driver.getCarId()).eq("authState", 2).ne("flag", 3).ne("id", uid)); |
| | | for (Driver d : drivers){ |
| | | driverWork = driverWorkMapper.queryNewWork(d.getId(), null, 1); |
| | | if(null != driverWork){ |
| | | return ResultUtil.error("车辆正在使用中"); |
| | | } |
| | | } |
| | | driverWork = new DriverWork(); |
| | | driverWork.setState(1); |
| | | driverWork.setDriverId(uid); |
| | |
| | | @Override |
| | | public Map<String, Object> queryHomeNum(Integer uid) throws Exception { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | //出租车 |
| | | List<Map<String, Object>> list = orderTaxiService.queryOrderList(1, uid); |
| | | map.put("service", list.size());//服务中 |
| | | list = orderTaxiService.queryOrderList(2, uid); |
| | |
| | | List<DriverService> list = driverServiceMapper.queryMyBusiness(uid); |
| | | List<BaseWarpper> maps = new ArrayList<>(); |
| | | for (DriverService d : list){ |
| | | if(d.getType() == 6){ |
| | | continue; |
| | | } |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | | baseWarpper.setId(d.getType()); |
| | | switch (d.getType()){ |
| | | case 1: |
| | | baseWarpper.setName("快车/专车"); |
| | | baseWarpper.setName("专车"); |
| | | break; |
| | | case 2: |
| | | baseWarpper.setName("出租车"); |
| | | break; |
| | | case 3: |
| | | baseWarpper.setName("机场专线"); |
| | | baseWarpper.setName("跨城出行"); |
| | | break; |
| | | case 7: |
| | | baseWarpper.setName("景区直通车"); |
| | | case 4: |
| | | baseWarpper.setName("同城小件物流"); |
| | | break; |
| | | case 8: |
| | | baseWarpper.setName("公务出行"); |
| | | case 5: |
| | | baseWarpper.setName("跨城小件物流"); |
| | | break; |
| | | } |
| | | maps.add(baseWarpper); |
| | |
| | | if(null != driver){ |
| | | return ResultUtil.error("电话号码已被注册"); |
| | | } |
| | | phone = AESUtil.decrypt(phone); |
| | | boolean b = this.checkCaptcha(phone, code); |
| | | if(!b){ |
| | | return ResultUtil.error("验证码无效"); |
| | | } |
| | | String encrypt = AESUtil.encrypt(phone); |
| | | Driver driver1 = this.selectById(uid); |
| | | driver1.setAccount(phone); |
| | | driver1.setPhone(phone); |
| | | driver1.setAccount(encrypt); |
| | | driver1.setPhone(encrypt); |
| | | this.updateById(driver1); |
| | | |
| | | smsrecordService.saveData(7, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); |
| | |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public synchronized ResultUtil replaceCar(Integer carId, Integer uid) throws Exception { |
| | | public ResultUtil replaceCar(Integer carId, Integer uid) throws Exception { |
| | | Driver driver = this.selectById(uid); |
| | | if(driver.getState() == 3){ |
| | | return ResultUtil.error("还在服务中,不能更换"); |
| | | } |
| | | // boolean idle = carService.idle(carId); |
| | | // if(!idle){ |
| | | // return ResultUtil.error("车辆已被绑定了"); |
| | | // } |
| | | boolean idle = carService.idle(carId); |
| | | if(!idle){ |
| | | return ResultUtil.error("车辆已被绑定了"); |
| | | } |
| | | driver.setCarId(carId); |
| | | this.updateById(driver); |
| | | return ResultUtil.success(); |
| | |
| | | } |
| | | switch (driverActivityOnline.getType()){ |
| | | case 1: |
| | | sb.append("快车"); |
| | | sb.append("专车"); |
| | | break; |
| | | case 2: |
| | | sb.append("出租车"); |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public ResultUtil getMoneyReceivingQRCode(Integer driverId) throws Exception { |
| | | Driver driver = this.selectById(driverId); |
| | | if(ToolUtil.isEmpty(driver.getMchtNo())){ |
| | | return ResultUtil.error("请先开通收款账户"); |
| | | } |
| | | String path = "https://okyueche.com:8443/h5/index.html?driverid=" + driverId; |
| | | return ResultUtil.success(path); |
| | | } |
| | | |
| | | /** |
| | | * 获取编号 |
| | | * @return |