DriverQYTTravel/guns-admin/pom.xml
@@ -105,17 +105,17 @@ <groupId>org.ehcache</groupId> <artifactId>ehcache</artifactId> </dependency> <!--需要分布式session的话需要放开注释--> <!--<dependency>--> <!--<groupId>org.springframework.session</groupId>--> <!--<artifactId>spring-session-data-redis</artifactId>--> <!--<groupId>org.springframework.session</groupId>--> <!--<artifactId>spring-session-data-redis</artifactId>--> <!--</dependency>--> <!--<dependency>--> <!--<groupId>org.springframework.boot</groupId>--> <!--<artifactId>spring-boot-starter-data-redis</artifactId>--> <!--</dependency>--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> @@ -140,11 +140,6 @@ <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> @@ -249,6 +244,10 @@ <scope>system</scope> <systemPath>${pom.basedir}/lib/javabase64-1.3.1.jar</systemPath> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> </dependency> </dependencies> <build> DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
@@ -36,7 +36,7 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("嘉易行 Doc") .title("黔云通 Doc") .description("所有接口前需要加 /driver 前缀,例如:/driver/base/agreement/queryByType <br>所有以 /api/*** 路径的接口需要上传签名参数sign") // .termsOfServiceUrl("http://git.oschina.net/naan1993/guns") .contact("stylefeng") DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java
@@ -19,27 +19,30 @@ public class GunsProperties { public static final String PREFIX = "guns"; private Boolean kaptchaOpen = false; private Boolean swaggerOpen = false; private String fileUploadPath; private Boolean haveCreatePath = false; private Boolean springSessionOpen = false; // 文件服务器访问地址 private String pictureServerAddress; /** * session 失效时间(默认为30分钟 单位:秒) */ private Integer sessionInvalidateTime = 30 * 60; /** * session 验证失效时间(默认为15分钟 单位:秒) */ private Integer sessionValidationInterval = 15 * 60; public String getFileUploadPath() { //如果没有写文件上传路径,保存到临时目录 if (isEmpty(fileUploadPath)) { @@ -94,12 +97,20 @@ public void setSessionInvalidateTime(Integer sessionInvalidateTime) { this.sessionInvalidateTime = sessionInvalidateTime; } public Integer getSessionValidationInterval() { return sessionValidationInterval; } public void setSessionValidationInterval(Integer sessionValidationInterval) { this.sessionValidationInterval = sessionValidationInterval; } public String getPictureServerAddress() { return pictureServerAddress; } public void setPictureServerAddress(String pictureServerAddress) { this.pictureServerAddress = pictureServerAddress; } } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,7 +1,9 @@ package com.stylefeng.guns.modular.api; import cn.hutool.core.io.FileUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.config.properties.GunsProperties; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; @@ -12,7 +14,10 @@ import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; 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.ALiSendSms; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.WeChatUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; @@ -21,6 +26,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -39,46 +45,49 @@ @RestController @RequestMapping("") public class DriverController { @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private IDriverService driverService; @Autowired private IOrderPositionService orderPositionService; @Autowired private ISmsrecordService smsrecordService; @Autowired private IDriverOrdersService driverOrdersService; @Autowired private ICarService carService; @Autowired private ALiSendSms aLiSendSms; @Autowired private IOrderTaxiService orderTaxiService; @Autowired private IIncomeService incomeService; @Autowired private IOrderPrivateCarService orderPrivateCarService; @Autowired private IOrderCrossCityService orderCrossCityService; @Autowired private IOrderLogisticsService orderLogisticsService; @Autowired private GunsProperties gunsProperties; /** * 获取短信验证码 * * @param phone * @return */ @@ -89,21 +98,22 @@ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "场景类型(1=身份验证,2=登录确认,3=用户注册,4=修改密码)", name = "type", required = true, dataType = "String") }) public ResultUtil queryCaptcha(String phone, Integer type){ if(ToolUtil.isNotEmpty(phone)){ public ResultUtil queryCaptcha(String phone, Integer type) { if (ToolUtil.isNotEmpty(phone)) { try { return driverService.queryCaptcha(phone, type); }catch (Exception e){ } catch (Exception e) { e.printStackTrace(); return ResultUtil.runErr(); } }else{ } else { return ResultUtil.paranErr(); } } /** * 验证短信验证码 * * @param phone * @param code * @return @@ -216,21 +226,22 @@ return ResultUtil.runErr(); } } /** * 司机注册审核后的短信 * * @param uid * @param type * @return */ @ResponseBody @PostMapping("/base/driver/sendsms") public ResultUtil sendsms(Integer uid, Integer type){ public ResultUtil sendsms(Integer uid, Integer type) { try { Driver driver = driverService.selectById(uid); String templateCode = null; switch (type){ switch (type) { case 1: templateCode = "SMS_229648175";//身份验证 break; @@ -250,7 +261,8 @@ templateCode = "SMS_229613326";//司机注册失败 break; } String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}"); // String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}"); SMSUtil.sendVerifyCode(driver.getPhone()); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); @@ -1402,29 +1414,35 @@ @Autowired private WeChatUtil weChatUtil; @ResponseBody @PostMapping("/api/driver/getDriverCode") @ApiOperation(value = "获取司机端的二维码", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil getDriverCode(HttpServletRequest request){ public ResultUtil getDriverCode(HttpServletRequest request) { try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ if (null == driverId) { return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); if(driver!=null){ if (driver != null) { String fileName = driver.getQrCode(); if(fileName==null || "".equals(fileName) ){ if (fileName == null || "".equals(fileName)) { String appletPath = "pages/home/scanPage/scanPage"; //HttpURLConnection httpURLConnection = weChatUtil.getwxacodeunlimit(appletPath, "d=" + driverId + "&k=" + 0, "release",driverId); InputStream inputStream = weChatUtil.getwxacodeunlimit(appletPath, "driverId=" + driverId , "release"); if(inputStream!=null){ fileName = OssUploadUtil.ossUploadByStream(driverId,inputStream); System.out.println(fileName); driver.setQrCode(fileName); InputStream inputStream = weChatUtil.getwxacodeunlimit(appletPath, "driverId=" + driverId, "release"); if (inputStream != null) { // 上传文件目录 fileName = UUID.randomUUID().toString() + ".png"; String fileSavePath = gunsProperties.getFileUploadPath() + "img\\"; FileUtil.writeFromStream(inputStream, fileName); String pictureName = gunsProperties.getPictureServerAddress() + "img/" + fileName; // fileName = OssUploadUtil.ossUploadByStream(driverId, inputStream); System.out.println(pictureName); driver.setQrCode(pictureName); driverService.updateById(driver); } } @@ -1459,13 +1477,13 @@ driver.setAuthState(3); driverService.updateById(driver); //开始验证当前账号是否在别处登录 String value = redisUtil.getValue("DRIVER_" + driverId); String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driverId); if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线 //开始清除redis中无效的数据 String key = redisUtil.getValue("DRIVER_" + driver.getPhone()); redisUtil.remove(key);//删除个人信息数据 redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 redisUtil.remove("DRIVER_" + driverId);//清除存储的token String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone()); redisTemplate.delete(key);//删除个人信息数据 redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 redisTemplate.delete("DRIVER_" + driverId);//清除存储的token } return ResultUtil.success(); } catch (Exception e) { DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.dao.*; import com.stylefeng.guns.modular.crossCity.model.*; import com.stylefeng.guns.modular.crossCity.model.LineShift; import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver; import com.stylefeng.guns.modular.crossCity.model.LineSite; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.ILineSiteService; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper; @@ -14,11 +17,11 @@ import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.util.DateUtil; import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.SystemException; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -49,9 +52,9 @@ @Autowired private GDMapElectricFenceUtil gdMapElectricFenceUtil; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private IOrderTaxiService orderTaxiService; @@ -87,7 +90,7 @@ List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId); Calendar calendar = Calendar.getInstance(); calendar.setTime(sdf.parse(day)); String vehicle = redisUtil.getValue("VEHICLE"); String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); List<Integer> integers = new ArrayList<>(); if(ToolUtil.isNotEmpty(vehicle)){ integers = JSON.parseArray(vehicle).toJavaList(Integer.class); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.controller.AppOrderController; import com.stylefeng.guns.modular.account.unionpay.GetOpenBodySig; import com.stylefeng.guns.modular.account.unionpay.QrCodeConfiguration; import com.stylefeng.guns.modular.account.unionpay.Util; @@ -21,7 +20,6 @@ import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper; import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.dao.PhoneMapper; import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.dao.SysIntegralMapper; @@ -33,25 +31,20 @@ import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import io.swagger.models.auth.In; import org.apache.commons.lang.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -140,9 +133,9 @@ @Autowired private IOrderAdditionalFeeService orderAdditionalFeeService; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private IMerchantActivityService merchantActivityService; @@ -368,13 +361,13 @@ } merchantActivityService.updateBatchById(merchantActivities); } String value = redisUtil.getValue("merchantVoucher"); String value = (String) redisTemplate.opsForValue().get("merchantVoucher"); JSONObject jsonObject = JSON.parseObject(value); if(null == jsonObject){ jsonObject = new JSONObject(); } jsonObject.put(userInfo.getPhone(), listWarppers); redisUtil.setStrValue("merchantVoucher", jsonObject.toJSONString()); redisTemplate.opsForValue().set("merchantVoucher", jsonObject.toJSONString()); pushUtil.removeTask(orderId, 3);//删除定时任务,结束推送数据 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderCrossCity.getUserId(), 1); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -20,6 +20,7 @@ import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -56,9 +57,9 @@ @Autowired private IOrderLogisticsSpreadService orderLogisticsSpreadService; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private ICompanyService companyService; @@ -321,13 +322,13 @@ } merchantActivityService.updateBatchById(merchantActivities); } String value = redisUtil.getValue("merchantVoucher"); String value = (String) redisTemplate.opsForValue().get("merchantVoucher"); JSONObject jsonObject = JSON.parseObject(value); if(null == jsonObject){ jsonObject = new JSONObject(); } jsonObject.put(userInfo.getPhone(), listWarppers); redisUtil.setStrValue("merchantVoucher", jsonObject.toJSONString()); redisTemplate.opsForValue().set("merchantVoucher", jsonObject.toJSONString()); } break; @@ -483,8 +484,8 @@ orderLogistics.setArriveTime(date); orderLogistics.setStartServiceTime(date); orderLogistics.setBoardingTime(date); String value = redisUtil.getValue("DRIVER" + uid); String value = (String) redisTemplate.opsForValue().get("DRIVER" + uid); if(ToolUtil.isNotEmpty(value)){ String[] split = value.split(","); Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(split[0], split[1]); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -17,17 +17,13 @@ import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.GeodeticCalculator; import org.gavaghan.geodesy.GeodeticCurve; import org.gavaghan.geodesy.GlobalCoordinates; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; @@ -84,20 +80,20 @@ @Autowired private ICompanyService companyService; @Value("${pushMinistryOfTransport}") private boolean pushMinistryOfTransport; @Autowired private ICarService carService; @Resource private CarServiceMapper carServiceMapper; @Autowired private RedisTemplate redisTemplate; /** * 获取司机端首页订单列表 * @param state 1=服务中,2=待服务(30分钟定义预约) @@ -298,8 +294,6 @@ } @Autowired private RedisUtil redisUtil; /** * 获取订单详情页(服务中的页面) @@ -322,7 +316,7 @@ if(order!=null){ orders.addAll(order); } String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); order = this.baseMapper.queryOrderInfo(orderId,5,value.split(",")[0],value.split(",")[1]); if(order!=null){ orders.addAll(order); @@ -337,7 +331,7 @@ if(order!=null){ orders.addAll(order); } String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); order = this.baseMapper.queryOrderInfo(orderPrivateCar.getPid(),5,value.split(",")[0],value.split(",")[1]); if(order!=null){ orders.addAll(order); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
@@ -344,21 +344,35 @@ */ @TableField("appletsOpenId") private String appletsOpenId; /** * 司机二维码 */ @TableField("qrCode") private String qrCode; /** * 中台员工ID */ @TableField("empId") private Long empId; /** * 中台员工所属企业ID */ @TableField("enterId") private Long enterId; /** * 中台员工所属企业编号 */ @TableField("entercode") private String entercode; public String getQrCode() { return qrCode; } public void setQrCode(String qrCode) { this.qrCode = qrCode; } @Override public Integer getId() { return id; @@ -872,15 +886,39 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } public String getWithdrawPassword() { return withdrawPassword; } public void setWithdrawPassword(String withdrawPassword) { this.withdrawPassword = withdrawPassword; } public Long getEmpId() { return empId; } public void setEmpId(Long empId) { this.empId = empId; } public Long getEnterId() { return enterId; } public void setEnterId(Long enterId) { this.enterId = enterId; } public String getEntercode() { return entercode; } public void setEntercode(String entercode) { this.entercode = entercode; } @Override public String toString() { return "Driver{" + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1,7 +1,5 @@ package com.stylefeng.guns.modular.system.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.common.constant.JwtConstants; @@ -14,6 +12,11 @@ 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.qianyuntong.EmployeeUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.EditStaffNodeRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.GetStaffNodeRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.StaffNodeInfo; import com.stylefeng.guns.modular.system.warpper.ActivityWarpper; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; @@ -26,6 +29,7 @@ import org.apache.shiro.util.ByteSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -33,6 +37,7 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; @Service @@ -61,46 +66,46 @@ @Resource private CompanyMapper companyMapper; @Resource private DriverActivityRegisteredMapper driverActivityRegisteredMapper; @Resource private DriverActivityOrderMapper driverActivityOrderMapper; @Resource private DriverActivityOnlineMapper driverActivityOnlineMapper; @Resource private DriverActivityHistoryMapper driverActivityHistoryMapper; @Resource private UserCouponRecordMapper userCouponRecordMapper; @Resource private DriverOrdersMapper driverOrdersMapper; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private ALiSendSms aLiSendSms; @Autowired private ICompanyCityService companyCityService; @Autowired private GDFalconUtil gdFalconUtil; @Autowired private IOrderService orderService; @Autowired private ISmsrecordService smsrecordService; @Autowired private ICarService carService; @Autowired private IReassignService reassignService; @@ -143,16 +148,16 @@ public ResultUtil queryCaptcha(String phone, Integer type) throws Exception { Random random = new Random(); StringBuffer sb = new StringBuffer(); for(int i = 0; i < 4; i++){ for (int i = 0; i < 4; i++) { sb.append((int) (random.nextDouble() * 10)); } String authCode = sb.toString(); String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"; //发送验证码短信 redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期 redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期 String templateCode = ""; switch (type){ switch (type) { case 1: templateCode = "SMS_154775435";//身份验证 break; @@ -166,13 +171,14 @@ templateCode = "SMS_154775431";//修改密码 break; } String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}"); JSONObject jsonObject = JSON.parseObject(sData); String message = jsonObject.getString("Message"); if(!"OK".equals(message)){ return ResultUtil.error(""); } System.out.println(sms); // String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}"); // JSONObject jsonObject = JSON.parseObject(sData); // String message = jsonObject.getString("Message"); // if(!"OK".equals(message)){ // return ResultUtil.error(""); // } // System.out.println(sms); SMSUtil.sendVerifyCode(phone); return ResultUtil.success(); } @@ -186,7 +192,7 @@ */ @Override public boolean checkCaptcha(String phone, String code) throws Exception { Object value = redisUtil.getValue(phone); Object value = redisTemplate.opsForValue().get(phone); if("1234".equals(code)){ return true; } @@ -456,34 +462,44 @@ @Override public ResultUtil<LoginWarpper> driverLogin(String phone, String password) throws Exception { Driver driver = driverMapper.queryByPhone(phone); if(null == driver){ if (null == driver) { return ResultUtil.error("账号未注册"); } if(ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1){ //查询中台员工数据 GetStaffNodeRequest request = new GetStaffNodeRequest(); request.setEmpId(driver.getEmpId()); request.setEntercode(driver.getEntercode()); request.setMobile(driver.getPhone()); StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request); if (null == staffNode || staffNode.getIsValid().equals("0")) { return ResultUtil.error("账号未注册"); } if (ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1) { return ResultUtil.error("账号正在审核中,请耐心等待"); } if(driver.getAuthState() == 3){ if (driver.getAuthState() == 3) { return ResultUtil.error("账号已被冻结,请联系管理员"); } if(!driver.getPassword().equals(ShiroKit.md5(password, salt))){ if (!driver.getPassword().equals(ShiroKit.md5(password, salt))) { return ResultUtil.error("密码错误"); } String value = redisUtil.getValue("DEVICE_" + driver.getId()); if(ToolUtil.isNotEmpty(value)){ String value = (String) redisTemplate.opsForValue().get("DEVICE_" + driver.getId()); if (ToolUtil.isNotEmpty(value)) { return ResultUtil.error("当前账户正在车载端登录"); } //调用单点登录逻辑 this.singlePointLogin(driver.getId()); String token = this.getToken(driver, password); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(driver.getId()); loginWarpper.setToken(token); loginWarpper.setAppid(UUIDUtil.getRandomCode()); loginWarpper.setState(ToolUtil.isEmpty(driver.getIdCard()) ? 1 : 0); //创建高德猎鹰的终端数据 String tid = gdFalconUtil.createTerminal(phone); loginWarpper.setServerId(gdFalconUtil.getServerId()); @@ -524,7 +540,7 @@ }else{ key = requestHeader; } String value = redisUtil.getValue(key); String value = (String) redisTemplate.opsForValue().get(key); return null != value ? Integer.valueOf(value) : null; }else{ return null; @@ -757,18 +773,45 @@ @Override public ResultUtil updatePhone(String phone, String code, Integer uid) throws Exception { Driver driver = driverMapper.queryByPhone(phone); if(null != driver){ if (null != driver) { return ResultUtil.error("电话号码已被注册"); } boolean b = this.checkCaptcha(phone, code); if(!b){ if (!b) { return ResultUtil.error("验证码无效"); } Driver driver1 = this.selectById(uid); GetStaffNodeRequest request = new GetStaffNodeRequest(); request.setEmpId(driver1.getEmpId()); request.setEntercode(driver1.getEntercode()); request.setMobile(driver1.getPhone()); StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request); if ("0".equals(staffNode.getIsValid())) { return ResultUtil.error("无效的司机账号"); } EditStaffNodeRequest editStaffNodeRequest = new EditStaffNodeRequest(); editStaffNodeRequest.setEmpId(staffNode.getEmpId()); editStaffNodeRequest.setMobile(staffNode.getMphone()); editStaffNodeRequest.setEntercode(staffNode.getEnterNum()); editStaffNodeRequest.setEnterId(staffNode.getEnterId()); editStaffNodeRequest.setEmpName(staffNode.getEmpName()); editStaffNodeRequest.setEmpNickname(staffNode.getEmpNickname()); editStaffNodeRequest.setLoginNo(staffNode.getLoginNo()); editStaffNodeRequest.setMphone(phone); editStaffNodeRequest.setEmail(staffNode.getEmail()); editStaffNodeRequest.setDeptId(staffNode.getDeptId()); editStaffNodeRequest.setPositionId(1); editStaffNodeRequest.setSuperLevel(0); editStaffNodeRequest.setHideMobile(0); Boolean editStaffNode = EmployeeUtil.editStaffNode(editStaffNodeRequest); if (!editStaffNode) { return ResultUtil.error("修改手机号码失败"); } driver1.setAccount(phone); driver1.setPhone(phone); this.updateById(driver1); smsrecordService.saveData(7, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); return ResultUtil.success(); } @@ -1187,7 +1230,7 @@ driverOrdersMapper.insert(query); } DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1); if(null == driverWork){ if (null == driverWork) { driverWork = new DriverWork(); driverWork.setStartTime(new Date()); driverWork.setDriverId(driver.getId()); @@ -1195,22 +1238,22 @@ driverWork.setType("2"); driverWorkMapper.insert(driverWork); } if(driver.getState() == 1){ if (driver.getState() == 1) { driver.setState(2); driverMapper.updateById(driver); } //调用单点登录清除缓存数据 this.singlePointLogin(driver.getId()); //封装请求账号密码为shiro可验证的token UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), jobNum.toCharArray()); String credentials = ShiroKit.md5(driver.getJobNumber(), salt); ByteSource credentialsSalt = new Md5Hash(salt); SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( new ShiroUser(), credentials, credentialsSalt, ""); //校验用户账号密码 HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); @@ -1218,16 +1261,16 @@ boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( usernamePasswordToken, simpleAuthenticationInfo); String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60); redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32)); redisUtil.setStrValue("DRIVER_" + driver.getId(), s); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32)); redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(driver.getId()); loginWarpper.setToken(s); loginWarpper.setAppid(UUIDUtil.getRandomCode()); //创建高德猎鹰的终端数据 String tid = gdFalconUtil.createTerminal(driver.getPhone()); loginWarpper.setServerId(gdFalconUtil.getServerId()); @@ -1285,7 +1328,7 @@ driverOrdersMapper.insert(query); } DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1); if(null == driverWork){ if (null == driverWork) { driverWork = new DriverWork(); driverWork.setStartTime(new Date()); driverWork.setDriverId(driver.getId()); @@ -1293,20 +1336,20 @@ driverWork.setType("2"); driverWorkMapper.insert(driverWork); } if(driver.getState() == 1){ if (driver.getState() == 1) { driver.setState(2); driverMapper.updateById(driver); } this.singlePointLogin(driver.getId());//清除缓存实现单点登录 //封装请求账号密码为shiro可验证的token UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), identification.toCharArray()); String credentials = ShiroKit.md5(driver.getIdCard(), salt); ByteSource credentialsSalt = new Md5Hash(salt); SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( new ShiroUser(), credentials, credentialsSalt, ""); //校验用户账号密码 HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); @@ -1314,16 +1357,16 @@ boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( usernamePasswordToken, simpleAuthenticationInfo); String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60); redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32)); redisUtil.setStrValue("DRIVER_" + driver.getId(), s); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32)); redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(driver.getId()); loginWarpper.setToken(s); loginWarpper.setAppid(UUIDUtil.getRandomCode()); //创建高德猎鹰的终端数据 String tid = gdFalconUtil.createTerminal(driver.getPhone()); loginWarpper.setServerId(gdFalconUtil.getServerId()); @@ -1371,7 +1414,7 @@ driverOrdersMapper.insert(query); } DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1); if(null == driverWork){ if (null == driverWork) { driverWork = new DriverWork(); driverWork.setStartTime(new Date()); driverWork.setDriverId(driver.getId()); @@ -1379,20 +1422,20 @@ driverWork.setType("2"); driverWorkMapper.insert(driverWork); } if(driver.getState() == 1){ if (driver.getState() == 1) { driver.setState(2); driverMapper.updateById(driver); } this.singlePointLogin(driver.getId());//清除缓存实现单点登录 //封装请求账号密码为shiro可验证的token UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), taxiAptitudeCard.toCharArray()); String credentials = ShiroKit.md5(driver.getTaxiAptitudeCard(), salt); ByteSource credentialsSalt = new Md5Hash(salt); SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( new ShiroUser(), credentials, credentialsSalt, ""); //校验用户账号密码 HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); @@ -1400,16 +1443,16 @@ boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( usernamePasswordToken, simpleAuthenticationInfo); String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60); redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32)); redisUtil.setStrValue("DRIVER_" + driver.getId(), s); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32)); redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(driver.getId()); loginWarpper.setToken(s); loginWarpper.setAppid(UUIDUtil.getRandomCode()); //创建高德猎鹰的终端数据 String tid = gdFalconUtil.createTerminal(driver.getPhone()); loginWarpper.setServerId(gdFalconUtil.getServerId()); @@ -1426,12 +1469,12 @@ public void taskOffWork() throws Exception { List<Driver> drivers = driverMapper.selectList(new EntityWrapper<Driver>().eq("authState", 2).ne("state", 3)); Long now = Long.valueOf(System.currentTimeMillis()); for(Driver driver : drivers){ String value = redisUtil.getValue("DEVICE_" + driver.getId()); if(ToolUtil.isNotEmpty(value) && now.compareTo(Long.valueOf(value) + (60 * 60 * 1000)) > 0){ for (Driver driver : drivers) { String value = (String) redisTemplate.opsForValue().get("DEVICE_" + driver.getId()); if (ToolUtil.isNotEmpty(value) && now.compareTo(Long.valueOf(value) + (60 * 60 * 1000)) > 0) { driver.setState(1); driverMapper.updateById(driver); redisUtil.remove("DEVICE_" + driver.getId()); redisTemplate.delete("DEVICE_" + driver.getId()); } } } @@ -1508,40 +1551,47 @@ public ResultUtil loginOut(Integer id) throws Exception { //开始清除redis中无效的数据 Driver driver = driverMapper.selectById(id); String key = redisUtil.getValue(driver.getPhone()); redisUtil.remove(key);//删除个人信息数据 redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 redisUtil.remove("DRIVER_" + id);//清除存储的token redisUtil.remove("DEVICE_" + id);//清除车载端登录的标识 String key = (String) redisTemplate.opsForValue().get(driver.getPhone()); redisTemplate.delete(key);//删除个人信息数据 redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 redisTemplate.delete("DRIVER_" + id);//清除存储的token redisTemplate.delete("DEVICE_" + id);//清除车载端登录的标识 return ResultUtil.success(); } /** * 获取编号 * @return * 单点登录 * * @param id */ public String getCode(){ int count = driverMapper.getCount(); String code = String.valueOf(1000001 + count); return "D" + code.substring(1); private void singlePointLogin(Integer id) { //开始验证当前账号是否在别处登录 String value = (String) redisTemplate.opsForValue().get("DRIVER_" + id); if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线(如果是车载端不需要下线) //开始清除redis中无效的数据 Driver driver = driverMapper.selectById(id); String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone()); redisTemplate.delete(key);//删除个人信息数据 redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 redisTemplate.delete("DRIVER_" + id);//清除存储的token } } /** * 获取token * * @param driver * @param password * @return */ private String getToken(Driver driver, String password){ private String getToken(Driver driver, String password) { //封装请求账号密码为shiro可验证的token UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), password.toCharArray()); String credentials = driver.getPassword(); ByteSource credentialsSalt = new Md5Hash(salt); SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( new ShiroUser(), credentials, credentialsSalt, ""); //校验用户账号密码 HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); @@ -1549,30 +1599,21 @@ boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( usernamePasswordToken, simpleAuthenticationInfo); String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60); redisUtil.setStrValue("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32)); redisUtil.setStrValue("DRIVER_" + driver.getId(), s); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); redisTemplate.opsForValue().set("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32)); redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); return s; } /** * 单点登录 * @param id * 获取编号 * * @return */ private void singlePointLogin(Integer id){ //开始验证当前账号是否在别处登录 String value = redisUtil.getValue("DRIVER_" + id); if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线(如果是车载端不需要下线) //开始清除redis中无效的数据 Driver driver = driverMapper.selectById(id); String key = redisUtil.getValue("DRIVER_" + driver.getPhone()); redisUtil.remove(key);//删除个人信息数据 redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 redisUtil.remove("DRIVER_" + id);//清除存储的token } public String getCode() { int count = driverMapper.getCount(); String code = String.valueOf(1000001 + count); return "D" + code.substring(1); } } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
@@ -1,7 +1,5 @@ package com.stylefeng.guns.modular.system.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; @@ -19,16 +17,18 @@ import com.stylefeng.guns.modular.system.service.IOrderPositionService; import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; import com.stylefeng.guns.modular.system.util.GeodesyUtil; import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import java.util.ArrayList; import java.util.List; import java.util.Map; @Service @@ -42,9 +42,9 @@ @Resource private PushAuxiliaryMapper pushAuxiliaryMapper; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private IOrderTaxiService orderTaxiService; @@ -81,7 +81,7 @@ */ @Override public ResultUtil positionSocket(OrderPosition orderPosition, Integer uid) throws Exception { redisUtil.setStrValue(String.valueOf(uid), orderPosition.getLon() + "," + orderPosition.getLat()); redisTemplate.opsForValue().set(String.valueOf(uid), orderPosition.getLon() + "," + orderPosition.getLat()); if(ToolUtil.isNotEmpty(orderPosition.getOrderId()) && ToolUtil.isNotEmpty(orderPosition.getOrderType())){ orderPositionService.saveData(orderPosition); } @@ -108,7 +108,7 @@ } //查看是否有可接单的数据 String value = redisUtil.getValue("DRIVER" + String.valueOf(uid)); String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(uid)); if(ToolUtil.isNotEmpty(value)){ String[] split = value.split(","); List<OrderStatusWarpper> list1 = this.searchOrder(split[0], split[1], uid); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -13,13 +13,11 @@ 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.PhoneMapper; import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.dao.SysReformistMapper; import com.stylefeng.guns.modular.system.model.AdditionalFee; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.model.Region; import com.stylefeng.guns.modular.system.service.IAdditionalFeeService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IOrderService; @@ -30,6 +28,7 @@ import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -64,9 +63,9 @@ @Autowired private ChinaMobileUtil chinaMobileUtil; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private PushUtil pushUtil; @@ -889,7 +888,7 @@ Integer muoth = Long.valueOf((orderTaxi.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); //发送短信提醒 aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderTaxi.getStartAddress() + "\",\"data1\":\"" + orderTaxi.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); // aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderTaxi.getStartAddress() + "\",\"data1\":\"" + orderTaxi.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); } //专车 List<OrderPrivateCar> list1 = orderPrivateCarService.queryMaturity(); @@ -901,7 +900,7 @@ Integer muoth = Long.valueOf((orderPrivateCar.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); //发送短信提醒 aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderPrivateCar.getStartAddress() + "\",\"data1\":\"" + orderPrivateCar.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); // aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderPrivateCar.getStartAddress() + "\",\"data1\":\"" + orderPrivateCar.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); } //跨城 List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryMaturity(); @@ -913,7 +912,7 @@ Integer muoth = Long.valueOf((orderCrossCity.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); //发送短信提醒 aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderCrossCity.getStartAddress() + "\",\"data1\":\"" + orderCrossCity.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); // aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderCrossCity.getStartAddress() + "\",\"data1\":\"" + orderCrossCity.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); } //小件物流 List<OrderLogistics> orderLogistics = orderLogisticsService.queryMaturity(); @@ -923,7 +922,7 @@ Integer muoth = Long.valueOf((orderLogistics1.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); //发送短信提醒 aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderLogistics1.getStartAddress() + "\",\"data1\":\"" + orderLogistics1.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); // aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderLogistics1.getStartAddress() + "\",\"data1\":\"" + orderLogistics1.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); } if(drivers.size() > 0){ driverService.updateBatchById(drivers);//批量修改状态为服务中 @@ -1189,7 +1188,7 @@ state = orderTaxi.getState(); //司机手动确认收款,删除限制司机6分钟不能接单的标识 String vehicle = redisUtil.getValue("VEHICLE"); String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); if(ToolUtil.isNotEmpty(vehicle)){ JSONArray jsonArray = JSON.parseArray(vehicle); for(int i = 0; i < jsonArray.size(); i++){ @@ -1198,7 +1197,7 @@ break; } } redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString()); } break; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java
@@ -28,19 +28,19 @@ public boolean authentication(String name, String code){ String url = "https://safrvcert.market.alicloudapi.com/safrv_2meta_id_name/"; Map<String, String> header = new HashMap<>(); header.put("Authorization", "APPCODE b7d32437d08149099457dcb50fb57df2"); header.put("Authorization", "APPCODE 111"); Map<String, Object> param = new HashMap<>(); param.put("__userId", "1732960796168165"); param.put("verifyKey", "IVO4js5kValcdt"); param.put("__userId", "111"); param.put("verifyKey", "111"); param.put("userName", name); param.put("identifyNum", code); String get = httpClientUtil.pushHttpRequset("GET", url, param, header, "form"); JSONObject jsonObject = JSON.parseObject(get); if(jsonObject.getIntValue("code") == 200){ if (jsonObject.getIntValue("code") == 200) { JSONObject value = jsonObject.getJSONObject("value"); if(value.getIntValue("bizCode") == 0){ if (value.getIntValue("bizCode") == 0) { return true; }else{ } else { return false; } }else{ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
@@ -21,8 +21,8 @@ // 设置鉴权参数,初始化客户端 private DefaultProfile profile = DefaultProfile.getProfile( "cn-hangzhou",// 地域ID "LTAI5tCeHnZXREQBcVf3NHLB",// 您的AccessKey ID "OEX6AtRb3qOCyp53xOFdDEYgBjzZzS");// 您的AccessKey Secret "111",// 您的AccessKey ID "111");// 您的AccessKey Secret private IAcsClient client = new DefaultAcsClient(profile); private static void log_print(String functionName, Object result) { @@ -70,7 +70,7 @@ // 接收短信的手机号码 request.putQueryParameter("PhoneNumbers", phone); // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。 request.putQueryParameter("SignName", "嘉易行"); request.putQueryParameter("SignName", "111"); // 短信模板ID request.putQueryParameter("TemplateCode", templateCode); // 短信模板变量对应的实际值,JSON格式。 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
@@ -21,7 +21,7 @@ @Component public class GDFalconUtil implements ApplicationRunner { private String key = "ba2915f8d8c1428df72e964a5f94f167"; private String key = "ea7326a77175aba0e9435859b17bca36"; @Autowired private RestTemplate restTemplate; DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -4,8 +4,6 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.stylefeng.guns.core.util.ToolUtil; //import com.stylefeng.guns.modular.system.model.GDFence; //import com.stylefeng.guns.modular.system.service.IGDFenceService; import com.stylefeng.guns.modular.system.service.IGDInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -33,7 +31,7 @@ @Autowired private IGDInterfaceService gdInterfaceService; private String key = "ba2915f8d8c1428df72e964a5f94f167"; private String key = "ea7326a77175aba0e9435859b17bca36"; private JSONArray jsonArray = new JSONArray(); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
@@ -20,7 +20,7 @@ @Component public class GDMapGeocodingUtil { private String key = "ba2915f8d8c1428df72e964a5f94f167"; private String key = "ea7326a77175aba0e9435859b17bca36"; @Autowired private RestTemplate restTemplate; DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
@@ -2,8 +2,6 @@ import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectResult; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -14,18 +12,18 @@ public class OssUploadUtil { //OSS图片访问域名 public static String oss_domain = "https://jiayixing-bucket.oss-cn-beijing.aliyuncs.com/"; public static String accessKeyId = "LTAI5tE2Z7nA1rbtzZYMSPqR"; public static String accessKeySecret = "HOGUqx1t4UWh8KepXJf69dlKj4tTBs"; public static String bucketName="jiayixing-bucket"; public static String accessKeyId = "111"; public static String accessKeySecret = "111"; public static String bucketName = "111"; public static String endpoint = "oss-cn-beijing.aliyuncs.com"; /** * base64图片 contentType */ private static final String CONTENT_TYPE = "image/jpg"; public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret); public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException{ public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException { //CommonsMultipartFile file = (CommonsMultipartFile)multipartFile; String fileName = ""; if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
@@ -15,6 +15,7 @@ import com.stylefeng.guns.modular.system.service.IOrderPositionService; import com.stylefeng.guns.modular.system.service.ITransactionDetailsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -47,9 +48,9 @@ @Autowired private GDMapElectricFenceUtil gdMapElectricFenceUtil; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Resource private ServerCarModelMapper serverCarModelMapper; @@ -137,7 +138,7 @@ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Car car = carService.selectById(orderPrivateCar.getCarId()); String value = redisUtil.getValue("DRIVER" + orderPrivateCar.getDriverId()); String value = (String) redisTemplate.opsForValue().get("DRIVER" + orderPrivateCar.getDriverId()); JSONObject jsonObject = new JSONObject(); jsonObject.put("Address", 450204);//发起地行政区划代码 jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单编号 @@ -169,7 +170,7 @@ public void operateLogin(Integer driverId){ Driver driver = driverService.selectById(driverId); Car car = carService.selectById(driver.getCarId()); String value = redisUtil.getValue("DRIVER" + driverId); String value = (String) redisTemplate.opsForValue().get("DRIVER" + driverId); if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = new JSONObject(); jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 @@ -200,7 +201,7 @@ public void operateLogout(Integer driverId){ Driver driver = driverService.selectById(driverId); Car car = carService.selectById(driver.getCarId()); String value = redisUtil.getValue("DRIVER" + driverId); String value = (String) redisTemplate.opsForValue().get("DRIVER" + driverId); if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = new JSONObject(); jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -12,6 +12,7 @@ import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -23,7 +24,10 @@ import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; import java.util.*; import java.util.HashMap; import java.util.Map; import java.util.Timer; import java.util.TimerTask; /** * socket推单处理类 @@ -45,9 +49,9 @@ @Autowired private IOrderCrossCityService orderCrossCityService; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private IOrderLogisticsService orderLogisticsService; @@ -159,9 +163,9 @@ JSONObject data = new JSONObject(); data.put("id", userId); data.put("type", 1); String value = redisUtil.getValue(orderId + "_" + orderType); String value = (String) redisTemplate.opsForValue().get(orderId + "_" + orderType); if(ToolUtil.isEmpty(value)){ redisUtil.setStrValue(orderId + "_" + orderType, data.toJSONString()); redisTemplate.opsForValue().set(orderId + "_" + orderType, data.toJSONString()); createTask(orderId, orderType); } } @@ -276,7 +280,7 @@ return; } //计算预计距离和剩余时间 String value = redisUtil.getValue("DRIVER" + String.valueOf(driverId)); String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driverId)); if(null == value || "".equals(value)){ return; } @@ -342,7 +346,7 @@ // 以表单的方式提交 headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); //将请求头部和参数合成一个请求 String value1 = redisUtil.getValue(orderId + "_" + orderType); String value1 = (String) redisTemplate.opsForValue().get(orderId + "_" + orderType); if(ToolUtil.isEmpty(value1)){ this.removeTask(orderId, orderType); return; @@ -477,7 +481,7 @@ if (null != timer){ timer.cancel(); taskMap.remove(orderId + "_" + orderType); redisUtil.remove(orderId + "_" + orderType); redisTemplate.delete(orderId + "_" + orderType); } } } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
File was deleted DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
@@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.open.common.util.OpenApiClient; import com.open.common.util.SystemParameterNames; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; @@ -187,7 +188,7 @@ map.put(SystemParameterNames.getMessage_id(), messageId); map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); map.put("content", JSON.toJSONString(request)); map.put("content", new Gson().toJson(request)); log.info("【修改企业基本信息】请求地址:" + url); log.info("【修改企业基本信息】请求参数:" + JSON.toJSONString(map)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, map); @@ -228,7 +229,7 @@ map.put(SystemParameterNames.getMessage_id(), messageId); map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); map.put("content", JSON.toJSONString(request)); map.put("content", new Gson().toJson(request)); log.info("【创建企业】请求地址:" + url); log.info("【创建企业】请求参数:" + JSON.toJSONString(map)); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
@@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.open.common.util.OpenApiClient; import com.open.common.util.SystemParameterNames; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; @@ -99,7 +100,7 @@ contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", JSON.toJSONString(request)); contentMap.put("content", new Gson().toJson(request)); log.info("【根据手机号注册用户】请求地址:" + url); log.info("【根据手机号注册用户】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); @@ -145,7 +146,7 @@ contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", JSON.toJSONString(request)); contentMap.put("content", new Gson().toJson(request)); log.info("【易信用户修改密码】请求地址:" + url); log.info("【易信用户修改密码】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); @@ -191,7 +192,7 @@ contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", JSON.toJSONString(request)); contentMap.put("content", new Gson().toJson(request)); log.info("【易信重置密码】请求地址:" + url); log.info("【易信重置密码】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
@@ -11,7 +11,7 @@ /** * 人员ID */ private Integer empId; private Long empId; /** * 手机号 */ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
@@ -11,7 +11,7 @@ /** * 人员ID */ private Integer empId; private Long empId; /** * 操作人手机号 */ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -8,19 +8,18 @@ import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.OrderAdditionalFee; import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import io.swagger.annotations.ApiImplicitParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -41,9 +40,9 @@ @Autowired private GDFalconUtil gdFalconUtil; @Autowired private RedisUtil redisUtil; private RedisTemplate redisTemplate; @Autowired private IOrderPositionService orderPositionService; @@ -331,16 +330,16 @@ orderTaxi.setArriveTime(date); orderTaxi.setStartServiceTime(date); orderTaxi.setBoardingTime(date); String value = redisUtil.getValue("DRIVER" + uid); if(ToolUtil.isNotEmpty(value)){ String value = (String) redisTemplate.opsForValue().get("DRIVER" + uid); if (ToolUtil.isNotEmpty(value)) { String[] split = value.split(","); Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(split[0], split[1]); orderTaxi.setBoardingAddress(geocode1.get("address")); orderTaxi.setBoardingLon(Double.valueOf(split[0])); orderTaxi.setBoardingLat(Double.valueOf(split[1])); } //调用高德创建轨迹 String s = gdFalconUtil.selectTerminal(driver.getPhone()); String track = gdFalconUtil.createTrack(s); @@ -589,13 +588,13 @@ } }).start(); //添加定时任务6分钟司机不确认收款自动完成支付(仅车载端),6分钟之内司机无法接单 String vehicle = redisUtil.getValue("VEHICLE"); String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); JSONArray jsonArray = new JSONArray(); if(ToolUtil.isNotEmpty(vehicle)){ jsonArray = JSON.parseArray(vehicle); } jsonArray.add(orderTaxi.getDriverId()); redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识 redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识 TimerTask timerTask = new TimerTask() { @Override @@ -610,8 +609,8 @@ orderTaxi1.setPayMoney(orderTaxi1.getOrderMoney()); orderTaxi1.setState(8); OrderTaxiServiceImpl.this.updateById(orderTaxi1); String vehicle = redisUtil.getValue("VEHICLE"); String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); if(ToolUtil.isNotEmpty(vehicle)){ JSONArray jsonArray = JSON.parseArray(vehicle); for(int i = 0; i < jsonArray.size(); i++){ @@ -620,7 +619,7 @@ break; } } redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString()); } new Thread(new Runnable() { @@ -683,13 +682,13 @@ }).start(); //添加定时任务6分钟司机不确认收款自动完成支付(仅车载端),6分钟之内司机无法接单 String vehicle = redisUtil.getValue("VEHICLE"); String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); JSONArray jsonArray = new JSONArray(); if(ToolUtil.isNotEmpty(vehicle)){ jsonArray = JSON.parseArray(vehicle); } jsonArray.add(orderTaxi.getDriverId()); redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识 redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识 TimerTask timerTask = new TimerTask() { @Override @@ -704,8 +703,8 @@ orderTaxi1.setPayMoney(orderTaxi1.getOrderMoney()); orderTaxi1.setState(8); OrderTaxiServiceImpl.this.updateById(orderTaxi1); String vehicle = redisUtil.getValue("VEHICLE"); String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); if(ToolUtil.isNotEmpty(vehicle)){ JSONArray jsonArray = JSON.parseArray(vehicle); for(int i = 0; i < jsonArray.size(); i++){ @@ -714,7 +713,7 @@ break; } } redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString()); } new Thread(new Runnable() { DriverQYTTravel/guns-admin/src/main/resources/application.yml
@@ -4,7 +4,8 @@ guns: swagger-open: true #是否开启swagger (true/false) kaptcha-open: false #是否开启登录时验证码 (true/false) # file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) file-upload-path: d:/tmp #文件上传目录(不配置的话为java.io.tmpdir目录) picture-server-address: http://192.168.0.43/resources/ #图片服务器地址 spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) session-invalidate-time: 1800 #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒 session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 @@ -60,15 +61,6 @@ --- mysql_ssl: useSSL: true requireSSL: true verifyServerCertificate: true sslMode: verify_ca trustCertificateKeyStoreUrl: file:D:/Program Files/mysql-5.7.38-winx64/data/truststore trustCertificateKeyStorePassword: sinata spring: datasource: url: jdbc:mysql://127.0.0.1:3306/jyxtravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai @@ -80,11 +72,7 @@ #测试环境 host: 127.0.0.1 port: 6379 timeout: 5000 database: 10 password: 123456 @@ -92,39 +80,38 @@ wx: grantType: authorization_code #填authorization_code appid: wxfba0dbf7c79c8593 #应用唯一标识,在微信开放平台提交应用审核通过后获得 appSecret: 99ffb558cc6af57fd60703fb36e28829 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 appletsAppid: #小程序APPid appletsAppSecret: # mchId: 1523106371 #微信支付分配的商户号 key: s4TQO0NqPaRc0YfGptejNjlOpFlt4y2K #key为商户平台设置的密钥key: appid: 111 #应用唯一标识,在微信开放平台提交应用审核通过后获得 appSecret: 111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 appletsAppid: wxcc3c9058e2b294db #小程序APPid appletsAppSecret: 5610fc6126255ca5f7bd9fa4330338b6 # mchId: 111 #微信支付分配的商户号 key: 111 #key为商户平台设置的密钥key: --- alipay: appid: 2021003104609427 #应用程序唯一标识 appPrivateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC7Kry43+tFiWnNhg9Us48Jzbjf/65hO/d0epihS4LnAO15L+V4UZfpSfIvIC5N6kEnkem+/abBnhAtSQE05s4gR3PtuP0H2SNX79+pgFliA1QvaSoA514f+APKiDUPTkmaTbp3MXCx0RGYEAEd6LOi8AUbFF2QWKDiMY76ac2l2FirVEeU8r9dIvPu1WDtTMoxAGFu6JfNsZ1ik8VyZUvULHyrXbe6Fx4KFX8kFX4PYEZ8RU3q6y9PCwMAjiPoBMs7t9s4GBrlfGoxMoC6+Lthh6rhLEq4OLoVVzrh/H+yWXg0SpFhnxN3RtIWueVWc9qsF7wtFoP4gXDWI/x6OmFRAgMBAAECggEBALhARjCpHm8B60oL4yO67+DyyECa7wuBgQUFeyOttlu6KgzW/csIZ8ecp/GEeJDzPti5Z6ZBBdwswjgSWkG9xMU6EgG/zjffpk93MHMoitVV+ZYCrPreyWYnPXQvyiwbIZHpWtrjrNEfw3YyqybKYazRI/WYgtMKrLZ/mwUhCvVq6CEwVMRDZXc2ietCtrZvbH4XuRtbXxxddzjiChhlRVwbD4Vei5eYS7F97PjHSrtjxjPyatw/mq6Gwh7tkjXuBliB2NwLcHkkm4FT4WxyLSWO8OydYPFYC5E6ENaZmZZMub3bXQ66xciCXwWMHZ7uRe5tmwtxWj8QqjLj8GtciAECgYEA8dVP6ViKSuwQ6WInDvAxoLrrcEX3D5N17L4sb0kfUtsd7S+g4MbHueXAmIqdlFXnCvjmfFUYg4kqfYU/PqaElntupuvTzwe4JUAtnmw7MB72iP6fzL1x3kBFgzn4ZaVzcRafRiiqE27+KPOkD+uNsgCMExIeTC6IgaKUbkjMjOECgYEAxiGdHN9ho44uBORW8+kdX1c92PFfpHsRcLdZkE6C+kjoS2QAMl1mM72yWHRn+rqK/Kk5BCipQ92+K/j78Zs1Zmunz+JJvQgTxQ2HFlW1tnb53K9F4xr6K1ysYdVmfeLH5wtNAJ2aLabD9Nzi/7RW4Oz83rN3bPFW4Dxgi5O0cnECgYEAgzejLJIGN7DvXDMNzmU2CGhj53+PFryEd/iYU6nxfRu3mUMGn/A73vpzDlHoPtx9iM6VAVGLA5QhognyzyO7PYur9pZvTx55JH02Q4emde3XB25hds40QsvM6+9AgKbNhMcplP/riK/o6H+KvbiqIbN6Tb6/Accd+nkk4NJPawECgYEArKbb9y39Mn4SQfcMgo2QJ+WpImPruTP5FaTgaizQW/OuYQvqU/kpt0rFn+kINufZd6Sq56HbJiWTs1PLkFV06iRD3pZNNWlVePB52A+mQjNZNmKR3v5CJAkkujgwkOBO3FnvpuqvULqypazaLoLi9ivtis8O8aM41jwm0VpL8zECgYAXoKO7mfyehcyOqHTgvUo8JOIZm4G1zxZxMImutQc13ZY0mZniGFuZJ5cXFWHpyscrt69zklpp1uhYJLsaoKfPUeZi1ZujlSA7uY4vEYUoEA+AQT541/Bn7JqOoUnLAMzsucEF0vUV/kYmePe68B3JbrxZKisgFkR5OB/8/Nh2og== #开发者应用私钥 appid: 111 #应用程序唯一标识 appPrivateKey: 111 #开发者应用私钥 alipayPublicKey: 1 #应用公钥 alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuyq8uN/rRYlpzYYPVLOPCc243/+uYTv3dHqYoUuC5wDteS/leFGX6UnyLyAuTepBJ5Hpvv2mwZ4QLUkBNObOIEdz7bj9B9kjV+/fqYBZYgNUL2kqAOdeH/gDyog1D05Jmk26dzFwsdERmBABHeizovAFGxRdkFig4jGO+mnNpdhYq1RHlPK/XSLz7tVg7UzKMQBhbuiXzbGdYpPFcmVL1Cx8q123uhceChV/JBV+D2BGfEVN6usvTwsDAI4j6ATLO7fbOBga5XxqMTKAuvi7YYeq4SxKuDi6FVc64fx/sll4NEqRYZ8Td0bSFrnlVnParBe8LRaD+IFw1iP8ejphUQIDAQAB #支付宝公钥 alipay_public_key: 111 #支付宝公钥 --- juhe: #聚合数据 appKey: 01ba594fee41fc7214ca77ef51c783c9 # appKey: 111 # --- jiguang: appKey-driver: c673a73acba4d06849913fd2 #极光推送应用唯一标识 masterSecret-driver: 8553897a9a886fb0cf467e97 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的 appKey-dispatch: 7eecaa0ce660780f4b364684 #极光推送应用唯一标识 masterSecret-dispatch: fca87938cb39a72360ea3293 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的 appKey-driver: 111 #极光推送应用唯一标识 masterSecret-driver: 111 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的 appKey-dispatch: 111 #极光推送应用唯一标识 masterSecret-dispatch: 111 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的 --- #filePath: /usr/local/server/orderPostionFile/ #存储订单轨迹文件路径 filePath: C:/orderPostionFile/ #存储订单轨迹文件路径 @@ -132,53 +119,8 @@ #支付回调地址 #正式环境 callbackPath: https://zhentonggongsi.com:443/driver #正式测试环境 #callbackPath: http://123.56.89.63:8080/driver #本地测试环境 #callbackPath: http://vwpmxwbhv59i.guyubao.com/driver --- #交通部推送数据功能开关 pushMinistryOfTransport: false --- #云闪付配置 #upyzt: # root-mch-id: 1007907055778710140 # api-base: # encrypt-public-key: 04a79c8a0f236b383ac5815d22eebbc29f947f7e10c5a145dc545107e88bf30a97eee234b734f63578dd3423e4ba05bea2741a3e5b9e7e85f6f8e91eb406fa61dd # sign-private-key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCv6jKnPPv+RbL1Ez4TGF2rXD13Lb5hsqEHFG1lGu2j//HVDrSxjAKtWiOCSBcsi3ql1vLHcE9ptkX098sBjJQ71KlqwBB9bJKfUA3aP/R8aoP+2T247vr4vpGoVHrOGIx9fb2nCK6lX7jamuBlWls2SrXiSwgsNBBMfdzaSev5MMLW7Rwts4CCaDvTNE+fTMJeSi1Bj3gDyY/s+ZDz9usZ4thQq4XV/CMuq9KfT36U5kbBMPLZzlT7CnH82uewG3vZ8MYJ83VqveNsWcWUXvDlpeDKbk7IKqzzpcqM608VFf9YVlaH1PnPxGJVMg+fRI0zcxT/ayxQ6/lj8lBjz81PAgMBAAECggEARIL9v0xtCBa1H+Wio2U19esytRvHrd0YAd3ezSWzr8+aq9PSY+OXl1QnyDGzdNHNrpEMdMg05YLrtABdu/i4MqUcZkrvISoL4KgY/QszeNEzHyoUc9X/QKlXqStduK6u6KD0H/2tpxKkt97hzhdmtrpaJAv83tpYDrJmNU3c7Wt8EdVein8LoO+ZM5Y5Fj2z08RoWcuoba6VAtvL+/LXC+yFHhh9XaVOPFt/KKgf17GpbI2b++1oLsBH1Lvy5aVNLobuBhoG//YRWITzpvTESFnlZeZZEE1/my45ae21LEC4p9WZbkfyUhEsWgKdGNyysj2Bi9suirZw2I11emXCIQKBgQD/Z6vPYHJOclNUnpNmj8keJkfe1wOrhPiaNyaMn6D/SE3DuGd1q5ilQA3etkc42UvgVeO9VLwAYE/fauDwl/AcztRv5KugdKcrRYmaT76DqWvy5ScYh6uCxWDYF4TyT4XKDWpH3nBA7/tzEbiJM8PobgGQpQHhIidd4Xua45nE9QKBgQCwUx39zwEGF6wCp7xs4yeWZy/M2XmuyzaDrWQjqj4PdPOhd4M3TOeGa7Dk0u8SlTGtkXbtc1MztIVO/91nc7ge706Zp94lqTW34owqWKRTbW46H7v4Cm48RIRek/q7WliYD3FmhhMnbBYjv1905KTqbb20kAsR6ensMwE4SmD+swKBgQCt5pneXq4V6dQBZuO4TqjC5Y/EFCTEkYpv/qM51qrZhxKj9BhFz6vkwKNxBC2kcJgwTGr/jAViQDHCTtSQHPP5uX5+HXYaj7MPTI6vyiJPJXmB7jNbiWznYptZJ1J3ZlwTQmUeQD+wh3ZvWB6NFPkMdnKMWT3ZW9bwHkp6IQSfTQKBgGU99FSNjWrwIKYNpdVnwI1Nhla68HF64TxOTNdloujBIDqwIrmYAMBgCVv5+afT3ohoo77HnxhrKLgplfkWqruocJstlhJNzDhfblfKOeBlTws0uXs8kfss5Exh72+v+nqlM1nI1iqmlzfDZI370u2AQZLxukl45AXpa2Pk4TidAoGBALAmhrLFpTgQb7zTv471azY2Z9LRCGOcU0c73JbHvx6kkTudOQslf4ojqUJH/mR2/bIjzP0NuUpdL9r/1ZFlbhVRzYYbJdlKhByDUiHN0kBK0T4OfVNaudRAn9AkGUKzgR/ZcpkJ1XDu/Q5xTGsTs4TobNsPrVgNqVvcFxsMVa+f # verify-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxRo7VeJ9goO9Udw/NGmg11ebTMZNLtqssbjID+smZjGuHrwBI/E7nYxe9aBSjswtAjdVFpspRXacOayTBTKwUix1pUpAMHZSC0vw0nLGOBesXYorPOlPQrOHHReIKFg+tVDsKNENNsHPxq1zOal8O8dXjN2ZDxMe2XjOkXP40iYa3YitX4pRN3aKRORnm/jyOjqBimdGwDQvXam97L5Ig6/h4AntZQaQMb1dCCNKe8TUJmCQqGFe4uxQlrrYRBqZApyeafNh75bu+kV7H1TRg3ryuHwPk3UHB3pcA09KcpLmlS0Z27Y8yiNtQFdlsMxbyF22Ji66OkNjTWko04JVXwIDAQAB upyzt: root-mch-id: 1008242569972661286 api-base: encrypt-public-key: 04b82af98a8cae3977176f7d667da9cf7b1dec0eb6f9bb8384e379ee45583205846ae808f1e4f50d4e3bd35d92e51a46455b58c75fe8d1092c0650a7696211f5c6 sign-private-key: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCmpIUQUcQ34ECQblphKdggKYDvOJRLcWOQPoREPIHO2/1yp9So5b3O65LqQVeKxShYtLHLnn9TeDRMP6aKWhVtkm0itRJ7LpZJExhCtcZN721PzC+vQWTlitiQKNFkkBycAxa5K2IRVHoiTIyfeuCSGy+iX9YRGyxr8frMCvKUCENVtqAxmqSheykqNCF3m/Nu3WarV/XxxKLTZgbY7WO5kO/MbvEok2VtklnKV92ntT8rS300ck3GOxHATKyxThZ+N+A13dgwfW8oS/U27uQhXnaSyiL23Aqnkjdue2cCYhwqj+JskOvB4FDI4osL1A3D87Vr453+7dR4srTSlX59AgMBAAECggEBAICWlSM5pSrkvY11ygIN8vsma5qs0ynADm8A/rlU42nHMbSmsx+9YBDqkQx4bV/ksTR6AnQ4EtJLADgSKaW6y6wogFR22xL4qPksZd0cPTBoX7Zivi0DTiMeV+wtwx5RYfI1I/Sw+FSdFj2fSifJ/r5fggtO3nWGvWlyaO/IRtVYp5R7nl2xa6dA0tmlj3M59zBH8JV84WKjmkYKelNeM5cn2dpC1jokhZTGlNSUx5FAvFHWXbFzSkKWTl0quEbAqaAoWaSQn2DlWutxh4pYnlq5tIhR9tbXdbfrv6QTC/dekctwxHCwLQEpG+Bo2ZG8CNmMaL9UthpLJzprsH2ZrGECgYEA28nmpSfWHKuPM8sp0/+wFMgGIAaBzKFFa9skAyQakUDy0V+8yKwDv1WF6/YFqjpObgB0pwRN84mBgYxumuT73VE8ewztRvZ6Zj/upU/t7XVnb3ZZfWxQXlUslktgg0dGNRZRBaNDTHcNaq71PiRGOpDF/mx3bEPVbPz0m/YLVnUCgYEAwhkPy5viQnQPFu0WmSJSnB48sUq8w9hkN/A9mTBDKZg+dWcO57X85bbK/fly/OmXPn9jtayunMul2fOFg69UkLJi0l89kECF7w+nqmeiGYILbqH7rxbnRpMyGoeClVDCgjRsTR/IVM42XuSDGdBduea1M+3InMqDclgLXzRG1ukCgYBtjBeKr+1XQudQYG3LvcBsyznKUpP1g1hPpt0vN5qKVX3xf69fseT4Q89JScmPDBq1V0LNUCbuQNYs1Or4BzPGHsxvZIULfqSJPEpdWRZ06bSRaMK38fmo2vkrPAyxwh+rLCFcFwDfJuOoDeYsf/YFEM2uvy9S5giFlxrwdVU3VQKBgQCQ6Scay3IcTQvrAO1rPO3SMtz7PKI70XXZMZq7oQWzqz+OZXgCVKPQWS2qei94VWmetnsZ6yeeVoindSGMVD1dnmEbURHkfdfAyL5UAfVK+AVS/sqqSP44ebLhjaRXmCjwDvWAiycE8cQ0CoU6o48mOPG2KGQrcyK6HrO2y4/L6QKBgQCetnmw1FkvRRGjSUSW/VkC3gFd8zUzVXkCpB7ikygukgXxzztU9Ef6MYljb+LJbWNVoZRJFL8qRixHvqJ5NPOiJEUetn2v5e+dsFF4ZtjnMAm7F27+RDJWYnldb0i7N9YhAPRV4jhVf9w2uVvD+pNvtrvgWyhVvfwWSX/bKRgYXQ== verify-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyr6JlFZM197He+qcWImiHaVfdY9aIQTL7HaqIOvAqgCLa/oUoHlUNLb8ZZbQzFm/uDhgitPSP8tG0NPW0Vge0zlSXdYZFJFpZdBDmtkGR/fN0bJ9UMcijFEkCzyo2j2KTsJ4jMbaWW13zPQfGir6PIVX8YbQSB1prZzGWt+LzW4VTowwFl7iF/g9M/MqM67fnLmg+lIqzwaG1JsjDwDC0nUmywJfFFH/j/yKWsq+YYDh1dZI7cDWxMbrzgDzxOfBMSc4mk/e9pxaTtIjPbRsmOsAUiwdh4av/VIyI3KI9wdKiJQR6Sk3BcNWbk6cGgAbpnc5kZ87qMUjUZ6fY+VUAQIDAQAB #二维码支付 qrcode: appId: 8a81c1bf831e72e30187ad640adf49be appKey: 6463dcd46c6d410eb40e68ee40e86e84 md5key: NxDhJztSzCDFzs3Z5Fzck7BAG2sRA4DY5aKScJDZrAzMkCh7 msgSrcId: 34U0 mid: 898150841210108 tid: 84UJWSE8 instMid: QRPAYDEFAULT #qrcode: # appId: 8a81c1bf831e72e30187ad640adf49be # appKey: 6463dcd46c6d410eb40e68ee40e86e84 # md5key: NxDhJztSzCDFzs3Z5Fzck7BAG2sRA4DY5aKScJDZrAzMkCh7 # msgSrcId: 1017 # mid: 898201612345678 # tid: 88880001 # instMid: QRPAYDEFAULT #qrcode: # appId: 10037e6f6823b20801682b6a5e5a0006 # appKey: 1c4e3b16066244ae9b236a09e5b312e8 # md5key: impARTxrQcfwmRijpDNCw6hPxaWCddKEpYxjaKXDhCaTCXJ6 # msgSrcId: 1017 # mid: 898201612345678 # tid: 88880001 # instMid: QRPAYDEFAULT DriverQYTTravel/guns-admin/src/main/resources/redis.properties
File was deleted DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,10 +1,7 @@ package com.stylefeng.guns; import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.EditStaffNodeRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.GetStaffNodeRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; @@ -90,7 +87,7 @@ GetStaffNodeRequest request = new GetStaffNodeRequest(); request.setEmpId(11448036); request.setEmpId(11448036L); request.setMobile("15828353127"); request.setEntercode("981100006005878"); EmployeeUtil.getStaffNode(request);