From e52227b01983146f2e3c81dc575141d8b9889497 Mon Sep 17 00:00:00 2001 From: yanghb <yanghb> Date: 星期五, 21 四月 2023 10:16:30 +0800 Subject: [PATCH] 代码调整 --- DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 101 ++++++++++++++++++++++++++++++++------------------ 1 files changed, 65 insertions(+), 36 deletions(-) diff --git a/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 77cf33b..1190f4b 100644 --- a/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -15,6 +15,7 @@ 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; @@ -131,6 +132,10 @@ private String salt = "SA;d5#"; + private Map<String, Long> loginTime = new HashMap<>();//登录时间 + + private Map<String, Integer> loginFailures = new HashMap<>();//登录失败次数 + @@ -141,7 +146,9 @@ * @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++){ @@ -151,7 +158,7 @@ String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"; //发送验证码短信 - redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期 + redisUtil.setStrValue(checkCaptcha, authCode, 5 * 60);//设置五分钟过期 String templateCode = ""; switch (type){ case 1: @@ -167,7 +174,7 @@ templateCode = "SMS_154775431";//修改密码 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)){ @@ -206,6 +213,7 @@ */ @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){ @@ -218,9 +226,9 @@ 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()); @@ -278,6 +286,7 @@ return ResultUtil.error("验证码无效"); } + phone = AESUtil.encrypt(phone); Driver driver1 = driverMapper.queryByPhone_(phone, 4);//获取审核不通过的数据 if(null != driver1){ driver1.setAuthState(1); @@ -411,11 +420,13 @@ */ @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("电话号码未注册"); } @@ -456,17 +467,35 @@ */ @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("密码错误"); } @@ -483,7 +512,6 @@ loginWarpper.setId(driver.getId()); loginWarpper.setToken(token); loginWarpper.setAppid(UUIDUtil.getRandomCode()); - loginWarpper.setState(ToolUtil.isEmpty(driver.getIdCard()) ? 1 : 0); //创建高德猎鹰的终端数据 String tid = gdFalconUtil.createTerminal(phone); @@ -501,7 +529,7 @@ */ @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; @@ -563,13 +591,6 @@ } }).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); @@ -677,7 +698,6 @@ @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); @@ -701,26 +721,23 @@ 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); @@ -755,13 +772,15 @@ 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分钟后失效,请及时登录!"); @@ -803,15 +822,15 @@ * @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(); @@ -953,7 +972,7 @@ } switch (driverActivityOnline.getType()){ case 1: - sb.append("快车"); + sb.append("专车"); break; case 2: sb.append("出租车"); @@ -1502,6 +1521,16 @@ } + @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 -- Gitblit v1.7.1