From d7f84d489282b0f3e61933bbb2df91aef5fab151 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期日, 15 六月 2025 02:27:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar | 0 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java | 48 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java | 52 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 19 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java | 11 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java | 207 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java | 2 UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar | 0 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 13 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java | 238 - UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java | 97 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java | 214 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java | 5 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 13 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java | 4 UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar | 0 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 32 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 98 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java | 75 UserQYTTravel/guns-admin/src/main/resources/application.yml | 107 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java | 520 ++-- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java | 40 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java | 27 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java | 72 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java | 46 ManagementQYTTravel/guns-admin/pom.xml | 6 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java | 23 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java | 52 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java | 5 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java | 118 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java | 2 DriverQYTTravel/guns-admin/src/main/resources/application.yml | 90 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 46 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java | 6 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java | 31 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java | 81 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java | 55 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java | 5 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java | 17 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java | 13 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java | 44 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 28 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java | 7 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java | 31 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java | 2 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java | 109 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java | 4 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java | 31 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 43 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 17 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 49 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 279 +- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java | 16 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java | 20 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java | 115 + UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java | 194 + UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java | 30 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java | 91 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java | 91 UserQYTTravel/guns-admin/pom.xml | 57 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java | 70 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java | 19 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java | 2 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java | 203 + UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java | 126 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java | 1 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java | 17 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java | 46 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java | 16 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java | 214 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java | 38 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java | 67 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java | 15 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 121 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java | 11 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java | 23 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java | 252 ++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java | 12 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java | 25 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java | 63 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java | 297 ++ DriverQYTTravel/guns-admin/pom.xml | 25 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 487 ++-- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java | 71 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java | 70 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java | 259 ++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java | 7 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java | 6 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java | 26 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java | 74 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 13 UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar | 0 /dev/null | 128 - UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 27 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java | 44 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java | 12 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java | 9 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java | 46 102 files changed, 5,044 insertions(+), 1,654 deletions(-) diff --git a/DriverQYTTravel/guns-admin/pom.xml b/DriverQYTTravel/guns-admin/pom.xml index e042f9b..e5c748e 100644 --- a/DriverQYTTravel/guns-admin/pom.xml +++ b/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> diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java index bdd7088..fb10574 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java +++ b/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") diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java index b260140..1464f67 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java +++ b/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; + } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index e0455a4..20d4b61 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/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) { diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java index 3ba7b20..83c1a67 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java +++ b/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); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index e91b015..5f51f98 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/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); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index 390f933..d03c013 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/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]); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 6b9dfc3..938b103 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/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); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java index 2413a9e..a8ef413 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java +++ b/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{" + diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index af01a12..51414dd 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/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); } - + } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java index 008c6d6..97ae294 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java +++ b/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); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java index 4bd3c54..c56d645 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java +++ b/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; } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java index f8b020f..90d8ee9 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java +++ b/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{ diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java index 10ab947..fb863d4 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java +++ b/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格式。 diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java index 9a0d692..03cab5c 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java +++ b/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; diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java index 00ed36e..f97d570 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java +++ b/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(); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java index d6f8923..9775639 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java +++ b/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; diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java index dd93b44..9026527 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java +++ b/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){ diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java index efe89bc..1cb9de2 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java +++ b/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());//机动车驾驶证号 diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java index 86ac869..b0cea43 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java +++ b/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); } } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java deleted file mode 100644 index b186f83..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.stylefeng.guns.modular.system.util; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.stylefeng.guns.core.util.ToolUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; -import org.springframework.web.client.RestTemplate; - - -/** - * Redis工具类 - */ -@Component -public class RedisUtil { - - @Autowired - private RestTemplate internalRestTemplate; - - - /** - * 向redis中存储字符串没有过期时间 - * @param key - * @param value - */ - public void setStrValue(String key, String value){ - if(ToolUtil.isNotEmpty(key)){ - //发送验证码短信 - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("key", key); - params.add("value", value); - HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue_", requestEntity, String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - } - - } - - - /** - * 以分钟为单位设置存储值(设置过期时间) - * @param key - * @param value - * @param time 秒 - */ - public void setStrValue(String key, String value, int time){ - if(ToolUtil.isNotEmpty(key)){ - //发送验证码短信 - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); - params.add("key", key); - params.add("value", value); - params.add("time", String.valueOf(time)); - HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue", requestEntity, String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - } - } - - - /** - * 从redis中获取值 - * @param key - * @return - */ - public String getValue(String key){ - if(ToolUtil.isNotEmpty(key)){ - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("key", key); - HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/getValue",requestEntity , String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - return jsonObject.getString("data"); - } - return null; - } - - - - /** - * 删除key - * @param key - */ - public String remove(String key){ - if(ToolUtil.isNotEmpty(key)){ - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("key", key); - HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/remove",requestEntity , String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - return jsonObject.getString("data"); - } - return null; - } -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java index 8cf6147..bdc9694 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java +++ b/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)); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java index 26a2353..6dfe5af 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java +++ b/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); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java index 59e683e..0115407 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java +++ b/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; /** * 手机号 */ diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java index 7297fe4..aab260b 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java +++ b/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; /** * 操作人手机号 */ diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index b06a873..520e941 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/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() { diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application.yml b/DriverQYTTravel/guns-admin/src/main/resources/application.yml index dce7435..a0ec92f 100644 --- a/DriverQYTTravel/guns-admin/src/main/resources/application.yml +++ b/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 \ No newline at end of file diff --git a/DriverQYTTravel/guns-admin/src/main/resources/redis.properties b/DriverQYTTravel/guns-admin/src/main/resources/redis.properties deleted file mode 100644 index bc6b0e9..0000000 --- a/DriverQYTTravel/guns-admin/src/main/resources/redis.properties +++ /dev/null @@ -1,22 +0,0 @@ -#redis���ÿ�ʼ -# Redis���ݿ�������Ĭ��Ϊ0�� -spring.redis.database=0 -# Redis��������ַ -spring.redis.host=127.0.0.1 -# Redis���������Ӷ˿� -spring.redis.port=6379 -# Redis�������������루Ĭ��Ϊ�գ� -spring.redis.password=123456 -#spring.redis.password= -# ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ� -spring.redis.jedis.pool.max-active=1024 -# ���ӳ���������ȴ�ʱ�䣨ʹ�ø�ֵ��ʾû�����ƣ� -spring.redis.jedis.pool.max-wait=10000 -# ���ӳ��е����������� -spring.redis.jedis.pool.max-idle=200 -# ���ӳ��е���С�������� -spring.redis.jedis.pool.min-idle=0 -# ���ӳ�ʱʱ�䣨���룩 -spring.redis.timeout=10000 -#redis���ý��� -spring.redis.block-when-exhausted=true \ No newline at end of file diff --git a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java index 7c96a5e..5a37845 100644 --- a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java +++ b/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); diff --git a/ManagementQYTTravel/guns-admin/pom.xml b/ManagementQYTTravel/guns-admin/pom.xml index 7c0dca1..e7722ce 100644 --- a/ManagementQYTTravel/guns-admin/pom.xml +++ b/ManagementQYTTravel/guns-admin/pom.xml @@ -63,12 +63,6 @@ <optional>true</optional> </dependency> - <dependency> - <groupId>redis.clients</groupId> - <artifactId>jedis</artifactId> - <version>2.9.0</version> - </dependency> - <!-- 导入Excel数据依赖 start --> <dependency> <groupId>org.apache.poi</groupId> diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java index f1d80eb..6945131 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java @@ -22,8 +22,7 @@ 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.model.SaveStaffNode; -import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -841,6 +840,22 @@ public Object delete(@RequestParam Integer tDriverId) { TDriver driver = tDriverService.selectById(tDriverId); driver.setFlag("3"); + ShiroUser user = ShiroKit.getUser(); + User user1 = userService.selectById(user.getId()); + TCompany tCompany = itCompanyService.selectById(user.getObjectId()); + //中台先删除司机 + GetStaffNodeRequest request = new GetStaffNodeRequest(); + request.setEmpId(driver.getEmpId()); + request.setMobile(user1.getPhone()); + request.setEntercode(tCompany.getEnterCode()); + StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request); + if ("1".equals(staffNode.getIsValid())) { + DeleteStafNodeRequest deleteStafNodeRequest = new DeleteStafNodeRequest(); + deleteStafNodeRequest.setEmpId(driver.getEmpId()); + deleteStafNodeRequest.setEntercode(tCompany.getEnterCode()); + deleteStafNodeRequest.setMobile(user1.getPhone()); + EmployeeUtil.ecrmDeleteStafNode(deleteStafNodeRequest); + } tDriverService.updateById(driver); String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone()); redisTemplate.delete(value); diff --git a/UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar b/UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar new file mode 100644 index 0000000..b5a22e1 --- /dev/null +++ b/UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar Binary files differ diff --git a/UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar b/UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar new file mode 100644 index 0000000..6db5395 --- /dev/null +++ b/UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar Binary files differ diff --git a/UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar b/UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar new file mode 100644 index 0000000..47d0553 --- /dev/null +++ b/UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar Binary files differ diff --git a/UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar b/UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar new file mode 100644 index 0000000..753661b --- /dev/null +++ b/UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar Binary files differ diff --git a/UserQYTTravel/guns-admin/pom.xml b/UserQYTTravel/guns-admin/pom.xml index 5561341..09a0097 100644 --- a/UserQYTTravel/guns-admin/pom.xml +++ b/UserQYTTravel/guns-admin/pom.xml @@ -116,17 +116,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> @@ -151,12 +151,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> @@ -212,6 +206,41 @@ <version>2.4</version> <classifier>jdk13</classifier> </dependency> + <!--中台sdk--> + <dependency> + <groupId>com.zhongtai</groupId> + <artifactId>zhongtai-sdk</artifactId> + <version>1.0.0</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/openApiClient-1.0.0.jar</systemPath> + </dependency> + <!--单点登录sdk--> + <dependency> + <groupId>com.cas</groupId> + <artifactId>cas-client-oncon</artifactId> + <version>3.0.5</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/cas-client-oncon-3.0.5.jar</systemPath> + </dependency> + <dependency> + <groupId>com.cas</groupId> + <artifactId>cas-client-oncon-core</artifactId> + <version>1.2.2</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/cas-client-oncon-core-1.2.2.jar</systemPath> + </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>it.sauronsoftware</groupId> + <artifactId>base64</artifactId> + <version>1.3.1</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/javabase64-1.3.1.jar</systemPath> + </dependency> </dependencies> diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java index f7fe5cf..1049ba9 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java @@ -8,8 +8,6 @@ import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.context.annotation.Bean; @@ -31,20 +29,15 @@ @SpringBootApplication @EnableScheduling//开启定时任务 @EnableTransactionManagement//启动事务功能 -public class GunsApplication /*extends SpringBootServletInitializer*/ { - +public class GunsApplication { + private final static Logger logger = LoggerFactory.getLogger(GunsApplication.class); - + public static void main(String[] args) { - try { - - SpringApplication.run(GunsApplication.class, args); - }catch (Exception e){ - e.printStackTrace(); - } + SpringApplication.run(GunsApplication.class, args); logger.info("GunsApplication is success!"); } - + /** * 向Spring容器中定义RestTemplate对象 * @return diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java deleted file mode 100644 index d459612..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.stylefeng.guns.config; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import redis.clients.jedis.JedisPool; -import redis.clients.jedis.JedisPoolConfig; - -@Configuration -@PropertySource("classpath:redis.properties") -public class RedisConfig { - @Value("${spring.redis.host}") - private String host; - - @Value("${spring.redis.port}") - private int port; - - @Value("${spring.redis.timeout}") - private int timeout; - - @Value("${spring.redis.jedis.pool.max-idle}") - private int maxIdle; - - @Value("${spring.redis.jedis.pool.max-wait}") - private long maxWaitMillis; - - @Value("${spring.redis.password}") - private String password; - - @Value("${spring.redis.block-when-exhausted}") - private boolean blockWhenExhausted; - - @Bean - public JedisPool redisPoolFactory() throws Exception{ - JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); - jedisPoolConfig.setMaxIdle(maxIdle); - jedisPoolConfig.setMaxWaitMillis(maxWaitMillis); - // 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true - jedisPoolConfig.setBlockWhenExhausted(blockWhenExhausted); - // 是否启用pool的jmx管理功能, 默认true - jedisPoolConfig.setJmxEnabled(true); - JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password); - return jedisPool; - } -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java index fe6c02e..2276427 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java +++ b/UserQYTTravel/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("所有接口前需要加 /user 前缀,例如:/user/base/agreement/queryByType <br>" + "所有以 /api/*** 路径的接口需要上传签名参数sign") // .termsOfServiceUrl("http://git.oschina.net/naan1993/guns") diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java index 9520916..20e6b8e 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java @@ -56,10 +56,7 @@ */ @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**") - .excludePathPatterns("/api/placeOrder/notifyUrl").excludePathPatterns("/api/placeOrder/notifyUrlOne").excludePathPatterns("/base/**").excludePathPatterns("/api/electronicLedger/**"); -// registry.addInterceptor(new RestApiInteceptor()).excludePathPatterns("/api/**") -// .addPathPatterns("/api/placeOrder/notifyUrl").excludePathPatterns("/api/placeOrder/notifyUrlOne"); + registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**"); } /** diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java index fffd433..fc497c8 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java @@ -3,7 +3,6 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService; import com.stylefeng.guns.modular.account.model.TBank; import com.stylefeng.guns.modular.account.model.TBankNext; import com.stylefeng.guns.modular.account.model.TUserBankAccount; @@ -11,25 +10,11 @@ import com.stylefeng.guns.modular.account.server.ITBankService; import com.stylefeng.guns.modular.account.server.UserBankAccountService; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.example.BalanceAcctExample; -import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; -import com.stylefeng.guns.modular.cloudPayment.example.SettleAcctExample; -import com.stylefeng.guns.modular.cloudPayment.example.WithdrawalExample; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; -import com.stylefeng.guns.modular.system.model.User; import com.stylefeng.guns.modular.system.model.UserBankAccount; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.IUserInfoService; -import com.stylefeng.guns.modular.system.service.IUserService; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.BalanceAcctListResp; -import com.unionpay.upyzt.resp.CusApplicationResp; -import com.unionpay.upyzt.resp.SettleAcctListResp; -import com.unionpay.upyzt.resp.SettleAcctResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -38,7 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -90,15 +78,15 @@ } userBankAccount.setUserId(uid); UserBankAccount userBankAccount1 = new UserBankAccount(); - BeanUtils.copyProperties(userBankAccount,userBankAccount1); + BeanUtils.copyProperties(userBankAccount, userBankAccount1); userBankAccount1.setCreateTime(new Date()); userBankAccount1.setUserType(1); userBankAccount1.setOutRequestNo(ToolUtil.getRandomString(32)); userBankAccount1.setBankAcctType("1"); bankAccountService.insert(userBankAccount1); - UserBankAccountReq userBankAccountReq = new UserBankAccountReq(); - BeanUtils.copyProperties(userBankAccount1,userBankAccountReq); - userBankAccountReq.setCusId(userId.get(0).getCusId()); +// UserBankAccountReq userBankAccountReq = new UserBankAccountReq(); +// BeanUtils.copyProperties(userBankAccount1,userBankAccountReq); +// userBankAccountReq.setCusId(userId.get(0).getCusId()); // SettleAcctResp settleAcctResp = SettleAcctExample.create(userBankAccountReq); // userBankAccount1.setOutRequestNo(settleAcctResp.getOutRequestNo()); // userBankAccount1.setVerifyStatus(settleAcctResp.getVerifyStatus()); @@ -112,24 +100,8 @@ return ResultUtil.runErr(); } } - - - @ResponseBody - @RequestMapping(value = "/getCode", method = RequestMethod.POST) - @ApiOperation(value = "获取验证码", tags = {"用户端-获取验证码"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), - }) - public ResultUtil getCode(String phone){ - try { - CusApplicationExample.smsCode(phone); - return ResultUtil.success(); - }catch (UpyztException e){ - e.printStackTrace(); - return ResultUtil.error(e.getMessage()); - } - } - + + @Autowired private IUserInfoService userInfoService; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java index 6805c3f..a74f8ef 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java @@ -4,25 +4,15 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.GetOpenBodySig; import com.stylefeng.guns.core.util.NotifyDemo; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar; import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService; import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.account.server.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; -import com.stylefeng.guns.modular.account.util.Base64Util; import com.stylefeng.guns.modular.account.util.QrCodeConfiguration; import com.stylefeng.guns.modular.account.util.Util; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; -import com.stylefeng.guns.modular.system.dao.UserInfoMapper; import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.UserInfo; @@ -32,34 +22,26 @@ import com.stylefeng.guns.modular.system.service.ITaxiCardService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.stylefeng.guns.modular.taxi.model.TransactionDetails; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.AllocationResp; -import com.unionpay.upyzt.resp.DepositResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.time.DateFormatUtils; -import org.apache.shiro.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; -import java.util.Objects; /** * @program: openPlatform @@ -294,7 +276,7 @@ TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>() .eq("companyId", company.getId())); // TODO 替换为公司id - DepositReq depositReq = new DepositReq(); +// DepositReq depositReq = new DepositReq(); if(integer==7){ // 充值回调 @@ -318,27 +300,27 @@ // depositReq.setProductName("用户支付充值"); // depositReq.setProductCount(1); } - depositReq.setOutOrderNo(ToolUtil.getRandomString(32)); - depositReq.setTotalAmount(totalAmount); // 总金额 - depositReq.setAmount(buyerPayAmount); // 支付金额 - depositReq.setDiscountAmount(couponAmount); // 优惠金额 - depositReq.setBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); - depositReq.setDepositType("1"); - depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode()); - depositReq.setPaymentTradeNo(targetOrderId); // 系统交易流水号 - depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())); - depositReq.setOrderNo(targetOrderId); - depositReq.setOrderAmount(Long.valueOf(totalAmount)); - depositReq.setProductName("用户支付充值"); - depositReq.setProductCount(1); - +// depositReq.setOutOrderNo(ToolUtil.getRandomString(32)); +// depositReq.setTotalAmount(totalAmount); // 总金额 +// depositReq.setAmount(buyerPayAmount); // 支付金额 +// depositReq.setDiscountAmount(couponAmount); // 优惠金额 +// depositReq.setBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); +// depositReq.setDepositType("1"); +// depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode()); +// depositReq.setPaymentTradeNo(targetOrderId); // 系统交易流水号 +// depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())); +// depositReq.setOrderNo(targetOrderId); +// depositReq.setOrderAmount(Long.valueOf(totalAmount)); +// depositReq.setProductName("用户支付充值"); +// depositReq.setProductCount(1); + try { // DepositResp depositResp = DepositExample.create(depositReq); // System.err.println(depositResp); // log.info("支付充值成功:{}",depositResp); } catch (Exception e) { e.printStackTrace(); - log.error("支付充值失败:{}",e.getMessage()); + log.error("支付充值失败:{}", e.getMessage()); PrintWriter writer = response.getWriter(); response.setStatus(200); writer.write("FAILED"); @@ -376,6 +358,42 @@ } } + public String createAllocationReqUser(Integer companyId,Integer userId,int type,double money) { + List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = enterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId)); + UserInfo tUser = userInfoService.selectById(userId); + List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone())); + if (userWithdrawals.size() == 0) { + return "error"; + } + +// AllocationReq allocationReq= new AllocationReq(); +// allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); +// if(type==1){ +// allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); +// allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); +// +// allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode())); +// }else { +// allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); +// allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); +// allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode())); +// } +// money = money * 100; +// allocationReq.setAmount((int) money); +// allocationReq.setProductName("分账"); +// allocationReq.setProductCount(1); +// allocationReq.setOrderNo(ToolUtil.getRandomString(32)); +// allocationReq.setOrderAmount(1l); +// try { +// AllocationResp allocationResp = AllocationExample.create(allocationReq); +// System.out.println(allocationResp); +// return "ok"; +// } catch (UpyztException e) { +// e.printStackTrace(); +// return e.getMessage(); +// } + return "ok"; + } public ResultUtil moneyPay(Integer id,Integer userId,Double money){ @@ -386,115 +404,79 @@ TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>() .eq("companyId", company.getId())); UserInfo userInfo = userInfoService.selectById(userId); - System.out.println("用户信息:"+userInfo); + System.out.println("用户信息:" + userInfo); UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() .eq("phone", userInfo.getPhone()) .last("LIMIT 1")); - System.out.println("用户进件信息:"+driverWith); - if(driverWith==null){ + System.out.println("用户进件信息:" + driverWith); + if (driverWith == null) { return ResultUtil.error("领取失败,请先设置进件信息"); } - AllocationReq allocationReq = new AllocationReq(); - allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); - allocationReq.setProductCount(1); - allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId()); -// allocationReq.setPayBalanceAcctId("2008322294132024868"); - allocationReq.setOrderAmount((long) (money*100)); - allocationReq.setAmount((int) (money*100)); - allocationReq.setProductName("余额支付"); - allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); -// allocationReq.setRecvBalanceAcctId("2007982285722883157"); - allocationReq.setOrderNo(id.toString()); - allocationReq.setPassword(Base64Util.decode(driverWith.getTransactionAuthorizationCode())); +// AllocationReq allocationReq = new AllocationReq(); +// allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); +// allocationReq.setProductCount(1); +// allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId()); +//// allocationReq.setPayBalanceAcctId("2008322294132024868"); +// allocationReq.setOrderAmount((long) (money * 100)); +// allocationReq.setAmount((int) (money * 100)); +// allocationReq.setProductName("余额支付"); +// allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); +//// allocationReq.setRecvBalanceAcctId("2007982285722883157"); +// allocationReq.setOrderNo(id.toString()); +// allocationReq.setPassword(Base64Util.decode(driverWith.getTransactionAuthorizationCode())); // allocationReq.setPassword("MTIzNDU2"); - System.out.println("余额支付请求信息:"+allocationReq); - try { - - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.out.println("余额支付操作:"+allocationResp); - return ResultUtil.success(); - } catch (UpyztException e) { - e.printStackTrace(); - System.out.println("余额支付操作error:"+e); - System.out.println(e.getIssue()); - return ResultUtil.error(e.getMessage()); - } - } - - - public String createAllocationReqUser(Integer companyId,Integer userId,int type,double money){ - List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = enterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId)); - UserInfo tUser = userInfoService.selectById(userId); - List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone())); - if(userWithdrawals.size()==0){ - return "error"; - } - - AllocationReq allocationReq= new AllocationReq(); - allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); - if(type==1){ - allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); - allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); - - allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode())); - }else { - allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); - allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); - allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode())); - } - money=money*100; - allocationReq.setAmount((int)money); - allocationReq.setProductName("分账"); - allocationReq.setProductCount(1); - allocationReq.setOrderNo(ToolUtil.getRandomString(32)); - allocationReq.setOrderAmount(1l); - try { - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.out.println(allocationResp); - return "ok"; - } catch (UpyztException e) { - e.printStackTrace(); - return e.getMessage(); - } - +// System.out.println("余额支付请求信息:" + allocationReq); +// try { +// +// AllocationResp allocationResp = AllocationExample.create(allocationReq); +// System.out.println("余额支付操作:"+allocationResp); +// return ResultUtil.success(); +// } catch (UpyztException e) { +// e.printStackTrace(); +// System.out.println("余额支付操作error:"+e); +// System.out.println(e.getIssue()); +// return ResultUtil.error(e.getMessage()); +// } + return ResultUtil.success(); } @Autowired private IDriverService driverService; - public String createAllocationReqDriver(Integer companyId,Integer userId,int type,double money){ + + public String createAllocationReqDriver(Integer companyId,Integer userId,int type,double money) { List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = enterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId)); Driver tUser = driverService.selectById(userId); List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone())); - if(userWithdrawals.size()==0){ + if (userWithdrawals.size() == 0) { return "error"; } - AllocationReq allocationReq= new AllocationReq(); - allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); - if(type==1){ - allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); - allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); - - allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode())); - }else { - allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); - allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); - allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode())); - } - money=money*100; - allocationReq.setAmount((int)money); - allocationReq.setProductName("分账"); - allocationReq.setProductCount(1); - allocationReq.setOrderNo(ToolUtil.getRandomString(32)); - allocationReq.setOrderAmount(1l); - try { - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.out.println(allocationResp); - return "ok"; - } catch (UpyztException e) { - e.printStackTrace(); - return e.getMessage(); - } - +// AllocationReq allocationReq= new AllocationReq(); +// allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); +// if(type==1){ +// allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); +// allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); +// +// allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode())); +// }else { +// allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId()); +// allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId()); +// allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode())); +// } +// money = money * 100; +// allocationReq.setAmount((int) money); +// allocationReq.setProductName("分账"); +// allocationReq.setProductCount(1); +// allocationReq.setOrderNo(ToolUtil.getRandomString(32)); +// allocationReq.setOrderAmount(1l); +// try { +// AllocationResp allocationResp = AllocationExample.create(allocationReq); +// System.out.println(allocationResp); +// return "ok"; +// } catch (UpyztException e) { +// e.printStackTrace(); +// return e.getMessage(); +// } + return "ok"; } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java index 0af609b..f620637 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java @@ -1,51 +1,33 @@ package com.stylefeng.guns.modular.account.controller; -import cn.hutool.core.date.DateUnit; -import cn.hutool.core.date.DateUtil; -import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.shiro.ShiroKit; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.account.model.ElectronicLedger; -import com.stylefeng.guns.modular.account.model.TUserBankAccount; import com.stylefeng.guns.modular.account.req.UserWithdrawalReq; import com.stylefeng.guns.modular.account.server.ElectronicLedgerService; import com.stylefeng.guns.modular.account.server.UserBankAccountService; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.account.util.OssUploadUtil; -import com.stylefeng.guns.modular.cloudPayment.example.*; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.system.model.UserInfo; +import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.IBankCardService; -import com.stylefeng.guns.modular.system.service.ICompanyService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.service.IUserService; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.param.FailureMsgParam; -import com.unionpay.upyzt.resp.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.apache.shiro.util.StringUtils; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; import java.util.List; import java.util.Objects; @@ -73,131 +55,131 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - @Transactional(rollbackFor = UpyztException.class,propagation = Propagation.REQUIRES_NEW) public ResultUtil addElectronicLedger( UserWithdrawalReq userWithdrawalReq,HttpServletRequest request) throws UnsupportedEncodingException { - System.out.println("进件信息:"+userWithdrawalReq); - // TODO 用户有无提现密码,无则设置开户密码 - if(StringUtils.hasLength(userWithdrawalReq.getBankName())){ - userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #40;","(")); - userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")")); - - } - - - -// userWithdrawalReq.setOpenAccountName(new String(userWithdrawalReq.getOpenAccountName().getBytes("ISO-8859-1"),"UTF-8")); -// userWithdrawalReq.setBankName(new String(userWithdrawalReq.getBankName().getBytes("ISO-8859-1"),"UTF-8")); -// userWithdrawalReq.setCertificateName(new String(userWithdrawalReq.getCertificateName().getBytes("ISO-8859-1"),"UTF-8")); -// userWithdrawalReq.setLicenceIssuingAuthority(new String(userWithdrawalReq.getLicenceIssuingAuthority().getBytes("ISO-8859-1"),"UTF-8")); - System.out.println("编码后:"+userWithdrawalReq); - - - - userWithdrawalReq.setOutRequestNo(ToolUtil.getRandomString(32)); - UserWithdrawal userWithdrawal = new UserWithdrawal(); - BeanUtils.copyProperties(userWithdrawalReq,userWithdrawal); - try { - String password=userWithdrawal.getTransactionAuthorizationCode(); - Integer id = userInfoService.getUserIdFormRedis(request); - if(null == id){ - return ResultUtil.tokenErr(); - } - System.out.println("验证码:"+userWithdrawalReq.getCode()); - userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+")); - userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+")); - // 用户进件 - CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq); - System.out.println("进件状态:"+cusApplicationResp); - if("succeeded".equals(cusApplicationResp.getApplicationStatus())) { - userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(password)); - userWithdrawal.setUserType(1); - userWithdrawal.setUserId(id); - userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture()); - userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture()); - userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1()); - userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2()); - - userWithdrawalService.insert(userWithdrawal); - UserWithdrawal userWithdrawal1 = new UserWithdrawal(); - userWithdrawal1.setId(userWithdrawal.getId()); - BeanUtils.copyProperties(cusApplicationResp, userWithdrawal1); - userWithdrawalService.updateById(userWithdrawal1); - // 开通电子账簿 - BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); - balanceAcctReq.setCusId(userWithdrawal1.getCusId()); - balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32)); - balanceAcctReq.setPassword(password); - ElectronicLedger electronicLedger = new ElectronicLedger(); - electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId()); - electronicLedger.setCreateTime(new Date()); - electronicLedger.setCusId(cusApplicationResp.getCusId()); - electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo()); - electronicLedger.setUserId(userWithdrawal.getUserId()); - electronicLedger.setPassword(SecureUtil.md5(password)); - electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo()); - electronicLedger.setUserType(1); - electronicLedgerService.insert(electronicLedger); - // 绑卡 存卡 - UserBankAccount userBankAccount = new UserBankAccount(); - userBankAccount.setBankAcctType("1"); - userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32)); - userBankAccount.setUserType(1); - userBankAccount.setCreateTime(new Date()); - userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode()); - // TODO 页面没有输入地方 需要查询 - userBankAccount.setBankCode(userWithdrawal.getBankCode()); - // TODO 行联号 - userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode()); - userBankAccount.setPhone(userWithdrawal.getPhone()); - - userBankAccount.setUserId(userWithdrawal.getUserId()); - userBankAccount.setBankName(userWithdrawal.getBankName()); - userBankAccount.setOpenAccountName(userWithdrawalReq.getOpenAccountName()); - int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>() - .eq("bankCardCode", userWithdrawalReq.getBankCardCode()).eq("phone",userWithdrawalReq.getPhone()).eq("status",1)); - if(count<1){ - userBankAccountService.insert(userBankAccount); - } - BankCard bankCard = new BankCard(); - bankCard.setDriverId(userWithdrawal.getUserId()); - bankCard.setBankAcctType("1"); - bankCard.setOutRequestNo(ToolUtil.getRandomString(32)); - bankCard.setInsertTime(new Date()); - bankCard.setCode(userWithdrawal.getBankCardCode()); - bankCard.setBankCode(userWithdrawal.getBankCode()); - bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode()); - bankCard.setBank(userWithdrawal.getBankName()); - bankCard.setPhone(userWithdrawal.getPhone()); - bankCard.setName(userWithdrawal.getOpenAccountName()); - bankCard.setIfDefault(true); - bankCardService.insert(bankCard); - - - UserBankAccountReq userBankAccountReq = new UserBankAccountReq(); - BeanUtils.copyProperties(userBankAccount, userBankAccountReq); - System.err.println(userWithdrawalReq.getCode()); - userBankAccountReq.setCusId(cusApplicationResp.getCusId()); - userBankAccountReq.setCode(userWithdrawalReq.getCode()); - return ResultUtil.success(); - } - if("failed".equals(cusApplicationResp.getApplicationStatus())){ - List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs(); - if(failureMsgs != null && failureMsgs.size()>0){ - return ResultUtil.error(failureMsgs.get(0).getReason()); - } - } - return ResultUtil.success(); - }catch (UpyztException e){ - if(e.getCode().equals("100101")){ - return ResultUtil.error(e.getIssue()); - } - e.printStackTrace(); - String message = e.getMessage(); - return ResultUtil.error(message); - }catch (Exception e){ - String message = e.getMessage(); - return ResultUtil.error(message); - } +// System.out.println("进件信息:"+userWithdrawalReq); +// // TODO 用户有无提现密码,无则设置开户密码 +// if(StringUtils.hasLength(userWithdrawalReq.getBankName())){ +// userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #40;","(")); +// userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")")); +// +// } +// +// +// +//// userWithdrawalReq.setOpenAccountName(new String(userWithdrawalReq.getOpenAccountName().getBytes("ISO-8859-1"),"UTF-8")); +//// userWithdrawalReq.setBankName(new String(userWithdrawalReq.getBankName().getBytes("ISO-8859-1"),"UTF-8")); +//// userWithdrawalReq.setCertificateName(new String(userWithdrawalReq.getCertificateName().getBytes("ISO-8859-1"),"UTF-8")); +//// userWithdrawalReq.setLicenceIssuingAuthority(new String(userWithdrawalReq.getLicenceIssuingAuthority().getBytes("ISO-8859-1"),"UTF-8")); +// System.out.println("编码后:"+userWithdrawalReq); +// +// +// +// userWithdrawalReq.setOutRequestNo(ToolUtil.getRandomString(32)); +// UserWithdrawal userWithdrawal = new UserWithdrawal(); +// BeanUtils.copyProperties(userWithdrawalReq,userWithdrawal); +// try { +// String password=userWithdrawal.getTransactionAuthorizationCode(); +// Integer id = userInfoService.getUserIdFormRedis(request); +// if(null == id){ +// return ResultUtil.tokenErr(); +// } +// System.out.println("验证码:"+userWithdrawalReq.getCode()); +// userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+")); +// userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+")); +// // 用户进件 +// CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq); +// System.out.println("进件状态:"+cusApplicationResp); +// if("succeeded".equals(cusApplicationResp.getApplicationStatus())) { +// userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(password)); +// userWithdrawal.setUserType(1); +// userWithdrawal.setUserId(id); +// userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture()); +// userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture()); +// userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1()); +// userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2()); +// +// userWithdrawalService.insert(userWithdrawal); +// UserWithdrawal userWithdrawal1 = new UserWithdrawal(); +// userWithdrawal1.setId(userWithdrawal.getId()); +// BeanUtils.copyProperties(cusApplicationResp, userWithdrawal1); +// userWithdrawalService.updateById(userWithdrawal1); +// // 开通电子账簿 +// BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); +// balanceAcctReq.setCusId(userWithdrawal1.getCusId()); +// balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32)); +// balanceAcctReq.setPassword(password); +// ElectronicLedger electronicLedger = new ElectronicLedger(); +// electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId()); +// electronicLedger.setCreateTime(new Date()); +// electronicLedger.setCusId(cusApplicationResp.getCusId()); +// electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo()); +// electronicLedger.setUserId(userWithdrawal.getUserId()); +// electronicLedger.setPassword(SecureUtil.md5(password)); +// electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo()); +// electronicLedger.setUserType(1); +// electronicLedgerService.insert(electronicLedger); +// // 绑卡 存卡 +// UserBankAccount userBankAccount = new UserBankAccount(); +// userBankAccount.setBankAcctType("1"); +// userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32)); +// userBankAccount.setUserType(1); +// userBankAccount.setCreateTime(new Date()); +// userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode()); +// // TODO 页面没有输入地方 需要查询 +// userBankAccount.setBankCode(userWithdrawal.getBankCode()); +// // TODO 行联号 +// userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode()); +// userBankAccount.setPhone(userWithdrawal.getPhone()); +// +// userBankAccount.setUserId(userWithdrawal.getUserId()); +// userBankAccount.setBankName(userWithdrawal.getBankName()); +// userBankAccount.setOpenAccountName(userWithdrawalReq.getOpenAccountName()); +// int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>() +// .eq("bankCardCode", userWithdrawalReq.getBankCardCode()).eq("phone",userWithdrawalReq.getPhone()).eq("status",1)); +// if(count<1){ +// userBankAccountService.insert(userBankAccount); +// } +// BankCard bankCard = new BankCard(); +// bankCard.setDriverId(userWithdrawal.getUserId()); +// bankCard.setBankAcctType("1"); +// bankCard.setOutRequestNo(ToolUtil.getRandomString(32)); +// bankCard.setInsertTime(new Date()); +// bankCard.setCode(userWithdrawal.getBankCardCode()); +// bankCard.setBankCode(userWithdrawal.getBankCode()); +// bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode()); +// bankCard.setBank(userWithdrawal.getBankName()); +// bankCard.setPhone(userWithdrawal.getPhone()); +// bankCard.setName(userWithdrawal.getOpenAccountName()); +// bankCard.setIfDefault(true); +// bankCardService.insert(bankCard); +// +// +// UserBankAccountReq userBankAccountReq = new UserBankAccountReq(); +// BeanUtils.copyProperties(userBankAccount, userBankAccountReq); +// System.err.println(userWithdrawalReq.getCode()); +// userBankAccountReq.setCusId(cusApplicationResp.getCusId()); +// userBankAccountReq.setCode(userWithdrawalReq.getCode()); +// return ResultUtil.success(); +// } +// if("failed".equals(cusApplicationResp.getApplicationStatus())){ +// List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs(); +// if(failureMsgs != null && failureMsgs.size()>0){ +// return ResultUtil.error(failureMsgs.get(0).getReason()); +// } +// } +// return ResultUtil.success(); +// }catch (UpyztException e){ +// if(e.getCode().equals("100101")){ +// return ResultUtil.error(e.getIssue()); +// } +// e.printStackTrace(); +// String message = e.getMessage(); +// return ResultUtil.error(message); +// }catch (Exception e){ +// String message = e.getMessage(); +// return ResultUtil.error(message); +// } + return ResultUtil.success(); } @@ -221,99 +203,100 @@ String copy2, String code, String bankCode, - HttpServletRequest request){ - try { - Integer driverId = userInfoService.getUserIdFormRedis(request); - if(null == driverId){ - return ResultUtil.tokenErr(); - } - UserInfo userInfo = userInfoService.selectById(driverId); - UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone", userInfo.getPhone()) - .last("LIMIT 1")); - if(userWithdrawal1==null|| userWithdrawal1.getCusId()==null){ - return ResultUtil.runErr(); - } - UserWithdrawal userWithdrawal = new UserWithdrawal(); - userWithdrawal.setIdCardFrontPicture(copy1); - userWithdrawal.setIdCardReversePicture(copy2); - userWithdrawal.setCertificateCode(certificateCode); - userWithdrawal.setCertificateName(certificateName); - userWithdrawal.setCertificateExpireTime(certificateExpireTime); - userWithdrawal.setOpenAccountName(openAccountName); - userWithdrawal.setBankCardCode(bankCardCode); - userWithdrawal.setPhone(phone); - userWithdrawal.setCusId(userWithdrawal1.getCusId()); - userWithdrawal.setBankBranchCode(bankBranchCode); - userWithdrawal.setBankName(bankName); - userWithdrawal.setCode(code); - userWithdrawal.setBankCode(bankCode); - CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal); - log.info("修改个人用户进件信息返回:{}",renew); - if("succeeded".equals(renew.getApplicationStatus())){ - userWithdrawal1.setIdCardFrontPicture(copy1); - userWithdrawal1.setIdCardReversePicture(copy2); - userWithdrawal1.setCertificateCode(certificateCode); - userWithdrawal1.setCertificateName(certificateName); - userWithdrawal1.setCertificateExpireTime(certificateExpireTime); - userWithdrawal1.setOpenAccountName(openAccountName); - userWithdrawal1.setBankCardCode(bankCardCode); - userWithdrawal1.setPhone(phone); - userWithdrawal1.setBankName(bankName); - userWithdrawal1.setImgUrl(idCardFrontPicture); - userWithdrawal1.setImgUrlOne(idCardReversePicture); - userWithdrawalService.updateById(userWithdrawal1); - - int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>() - .eq("bankCardCode", bankCardCode).eq("userId",driverId).eq("userType",1).eq("status",1)); - System.out.println(count); - if(count<1){ - UserBankAccount userBankAccount = new UserBankAccount(); - userBankAccount.setBankAcctType("1"); - userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32)); - userBankAccount.setUserType(1); - userBankAccount.setCreateTime(new Date()); - userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode()); - userBankAccount.setBankCode(userWithdrawal.getBankCode()); - userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode()); - userBankAccount.setPhone(userWithdrawal.getPhone()); - - userBankAccount.setUserId(driverId); - userBankAccount.setBankName(userWithdrawal.getBankName()); - userBankAccountService.insert(userBankAccount); - - - BankCard bankCard = new BankCard(); - bankCard.setDriverId(userWithdrawal.getUserId()); - bankCard.setBankAcctType("1"); - bankCard.setOutRequestNo(ToolUtil.getRandomString(32)); - bankCard.setInsertTime(new Date()); - bankCard.setCode(userWithdrawal.getBankCardCode()); - bankCard.setBankCode(userWithdrawal.getBankCode()); - bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode()); - bankCard.setBank(userWithdrawal.getBankName()); - bankCard.setPhone(userWithdrawal.getPhone()); - bankCard.setName(userWithdrawal.getOpenAccountName()); - bankCard.setIfDefault(true); - bankCardService.insert(bankCard); - } - return ResultUtil.success(); - } - if("failed".equals(renew.getApplicationStatus())){ - List<FailureMsgParam> failureMsgs = renew.getFailureMsgs(); - if(failureMsgs != null && failureMsgs.size()>0){ - return ResultUtil.error(failureMsgs.get(0).getReason()); - } - } - return ResultUtil.success(); - }catch (UpyztException e) { - e.printStackTrace(); - String message = e.getMessage(); - return ResultUtil.error(message); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } + HttpServletRequest request) { +// try { +// Integer driverId = userInfoService.getUserIdFormRedis(request); +// if(null == driverId){ +// return ResultUtil.tokenErr(); +// } +// UserInfo userInfo = userInfoService.selectById(driverId); +// UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() +// .eq("phone", userInfo.getPhone()) +// .last("LIMIT 1")); +// if(userWithdrawal1==null|| userWithdrawal1.getCusId()==null){ +// return ResultUtil.runErr(); +// } +// UserWithdrawal userWithdrawal = new UserWithdrawal(); +// userWithdrawal.setIdCardFrontPicture(copy1); +// userWithdrawal.setIdCardReversePicture(copy2); +// userWithdrawal.setCertificateCode(certificateCode); +// userWithdrawal.setCertificateName(certificateName); +// userWithdrawal.setCertificateExpireTime(certificateExpireTime); +// userWithdrawal.setOpenAccountName(openAccountName); +// userWithdrawal.setBankCardCode(bankCardCode); +// userWithdrawal.setPhone(phone); +// userWithdrawal.setCusId(userWithdrawal1.getCusId()); +// userWithdrawal.setBankBranchCode(bankBranchCode); +// userWithdrawal.setBankName(bankName); +// userWithdrawal.setCode(code); +// userWithdrawal.setBankCode(bankCode); +// CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal); +// log.info("修改个人用户进件信息返回:{}",renew); +// if("succeeded".equals(renew.getApplicationStatus())){ +// userWithdrawal1.setIdCardFrontPicture(copy1); +// userWithdrawal1.setIdCardReversePicture(copy2); +// userWithdrawal1.setCertificateCode(certificateCode); +// userWithdrawal1.setCertificateName(certificateName); +// userWithdrawal1.setCertificateExpireTime(certificateExpireTime); +// userWithdrawal1.setOpenAccountName(openAccountName); +// userWithdrawal1.setBankCardCode(bankCardCode); +// userWithdrawal1.setPhone(phone); +// userWithdrawal1.setBankName(bankName); +// userWithdrawal1.setImgUrl(idCardFrontPicture); +// userWithdrawal1.setImgUrlOne(idCardReversePicture); +// userWithdrawalService.updateById(userWithdrawal1); +// +// int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>() +// .eq("bankCardCode", bankCardCode).eq("userId",driverId).eq("userType",1).eq("status",1)); +// System.out.println(count); +// if(count<1){ +// UserBankAccount userBankAccount = new UserBankAccount(); +// userBankAccount.setBankAcctType("1"); +// userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32)); +// userBankAccount.setUserType(1); +// userBankAccount.setCreateTime(new Date()); +// userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode()); +// userBankAccount.setBankCode(userWithdrawal.getBankCode()); +// userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode()); +// userBankAccount.setPhone(userWithdrawal.getPhone()); +// +// userBankAccount.setUserId(driverId); +// userBankAccount.setBankName(userWithdrawal.getBankName()); +// userBankAccountService.insert(userBankAccount); +// +// +// BankCard bankCard = new BankCard(); +// bankCard.setDriverId(userWithdrawal.getUserId()); +// bankCard.setBankAcctType("1"); +// bankCard.setOutRequestNo(ToolUtil.getRandomString(32)); +// bankCard.setInsertTime(new Date()); +// bankCard.setCode(userWithdrawal.getBankCardCode()); +// bankCard.setBankCode(userWithdrawal.getBankCode()); +// bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode()); +// bankCard.setBank(userWithdrawal.getBankName()); +// bankCard.setPhone(userWithdrawal.getPhone()); +// bankCard.setName(userWithdrawal.getOpenAccountName()); +// bankCard.setIfDefault(true); +// bankCardService.insert(bankCard); +// } +// return ResultUtil.success(); +// } +// if("failed".equals(renew.getApplicationStatus())){ +// List<FailureMsgParam> failureMsgs = renew.getFailureMsgs(); +// if(failureMsgs != null && failureMsgs.size()>0){ +// return ResultUtil.error(failureMsgs.get(0).getReason()); +// } +// } +// return ResultUtil.success(); +// }catch (UpyztException e) { +// e.printStackTrace(); +// String message = e.getMessage(); +// return ResultUtil.error(message); +// }catch (Exception e){ +// e.printStackTrace(); +// return ResultUtil.runErr(); +// } + return ResultUtil.success(); } @@ -392,33 +375,33 @@ @ApiImplicitParams({ }) public ResultUtil withdrawDepositGetMoney(HttpServletRequest request) throws Exception { - + UserInfo user = userInfoService.selectById(userInfoService.getUserIdFormRedis(request)); UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() .eq("phone", user.getPhone()) .last("LIMIT 1")); - if(driverWith==null){ - return ResultUtil.error("请先进行进件操作"); + if (driverWith == null) { + return ResultUtil.error("请先进行进件操作"); } - try { - BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); - balanceAcctReq.setCusId(driverWith.getCusId()); - BalanceAcctListResp balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq); - List<BalanceAcctItem> balanceAccts = balanceAcctListResp.getBalanceAccts(); - for (BalanceAcctItem balanceAcct : balanceAccts) { - if(balanceAcct.getBalanceAcctId().equals(driverWith.getBalanceAcctId())){ - if(balanceAcct.getSettledAmount().doubleValue()==0){ - return ResultUtil.success(new BigDecimal(0)); - } - return ResultUtil.success(new BigDecimal(balanceAcct.getSettledAmount()).divide(new BigDecimal(100))); - } - } - } catch (UpyztException e) { - e.printStackTrace(); - System.out.println("用户获取可提现余额:"+e); - return ResultUtil.error(e.getMessage()); - } - return ResultUtil.success(new BigDecimal(0)); +// try { +// BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); +// balanceAcctReq.setCusId(driverWith.getCusId()); +// BalanceAcctListResp balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq); +// List<BalanceAcctItem> balanceAccts = balanceAcctListResp.getBalanceAccts(); +// for (BalanceAcctItem balanceAcct : balanceAccts) { +// if(balanceAcct.getBalanceAcctId().equals(driverWith.getBalanceAcctId())){ +// if(balanceAcct.getSettledAmount().doubleValue()==0){ +// return ResultUtil.success(new BigDecimal(0)); +// } +// return ResultUtil.success(new BigDecimal(balanceAcct.getSettledAmount()).divide(new BigDecimal(100))); +// } +// } +// } catch (UpyztException e) { +// e.printStackTrace(); +// System.out.println("用户获取可提现余额:"+e); +// return ResultUtil.error(e.getMessage()); +// } + return ResultUtil.success(new BigDecimal(0)); } @@ -431,11 +414,12 @@ }) public ResultUtil uploadImg(MultipartFile multipartFile,HttpServletRequest request){ try { - MediaResp mediaResp = MediaExample.uploadImage(multipartFile); - String pictureName = OssUploadUtil.ossUpload(request, multipartFile); - String mediaId = mediaResp.getMediaId(); - userService.insertImg(mediaId,pictureName); - return ResultUtil.success(mediaId); +// MediaResp mediaResp = MediaExample.uploadImage(multipartFile); +// String pictureName = OssUploadUtil.ossUpload(request, multipartFile); +// String mediaId = mediaResp.getMediaId(); +// userService.insertImg(mediaId,pictureName); +// return ResultUtil.success(mediaId); + return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java index 0c634af..170fe7a 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java @@ -1,16 +1,9 @@ package com.stylefeng.guns.modular.account.server; import com.baomidou.mybatisplus.service.IService; -import com.stylefeng.guns.modular.account.model.ElectronicLedger; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; import com.stylefeng.guns.modular.system.model.UserWithdrawal; public interface UserWithdrawalService extends IService<UserWithdrawal> { - AllocationReq createAllocationReq(String balanceAcctId, String balanceAcctId1, Integer amount,String password); - - WithdrawalReq createWithdrawalReq(String balanceAcctId, Integer amount, String password, String code); - /** * 用户提现 * @param amount diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java index b0eff41..cf47648 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java @@ -3,25 +3,13 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.shiro.ShiroKit; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.account.dao.UserBankAccountMapper; import com.stylefeng.guns.modular.account.dao.UserWithdrawalMapper; import com.stylefeng.guns.modular.account.model.ElectronicLedger; import com.stylefeng.guns.modular.account.server.ElectronicLedgerService; -import com.stylefeng.guns.modular.account.server.UserBankAccountService; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.example.WithdrawalExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; import com.stylefeng.guns.modular.system.model.Company; -import com.stylefeng.guns.modular.system.model.UserBankAccount; import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.ICompanyService; -import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.unionpay.upyzt.resp.AllocationResp; -import com.unionpay.upyzt.resp.CusApplicationResp; -import com.unionpay.upyzt.resp.WithdrawalResp; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -38,39 +26,13 @@ private ElectronicLedgerService electronicLedgerService; @Override - public AllocationReq createAllocationReq(String balanceAcctId, String companyBalanceAcctId, Integer amount,String password) { - AllocationReq allocationReq = new AllocationReq(); - allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); - allocationReq.setPayBalanceAcctId(companyBalanceAcctId); - allocationReq.setRecvBalanceAcctId(balanceAcctId); - allocationReq.setAmount(amount*100); - allocationReq.setOrderNo(ToolUtil.getRandomString(32)); - allocationReq.setPassword(password); - allocationReq.setOrderAmount(Long.valueOf(amount)); - allocationReq.setProductName("用户提现"); - allocationReq.setProductCount(1); - return allocationReq; - } - - @Override - public WithdrawalReq createWithdrawalReq(String balanceAcctId, Integer amount, String password, String code) { - WithdrawalReq withdrawalReq = new WithdrawalReq(); - withdrawalReq.setOutOrderNo(ToolUtil.getRandomString(32)); - withdrawalReq.setBalanceAcctId(balanceAcctId); - withdrawalReq.setAmount(amount*100); - withdrawalReq.setBankAcctNo(code); - withdrawalReq.setPassword(password); - return withdrawalReq; - } - - @Override public Boolean withdrawDeposit(Integer amount, String bankAcctNo, String password) { // 查询当前操作电子用户 UserWithdrawal userWithdrawal = this.selectOne(new EntityWrapper<UserWithdrawal>() .eq("userId", Objects.requireNonNull(ShiroKit.getUser()).getId()) .eq("userType", 1) .last("LIMIT 1")); - + // 先从平台进行分账到用户电子账簿 // 查询平台账户 Company company = companyService.selectOne(new EntityWrapper<Company>() @@ -80,20 +42,21 @@ .eq("userId", company.getId()) .eq("userType", 3) .last("LIMIT 1")); - try { - // 进行平台分账到用户电子账簿 - log.info("平台分账到用户电子账簿========="); - AllocationResp allocationResp = AllocationExample.create(this.createAllocationReq(userWithdrawal.getBalanceAcctId(), electronicLedger.getBalanceAcctId(), amount,password)); - log.info("平台分账到用户电子账簿完成=========:{}",allocationResp); - - // 用户电子账簿进行提现操作 - WithdrawalResp withdrawalResp = WithdrawalExample.create(this.createWithdrawalReq(userWithdrawal.getBalanceAcctId(), amount, password, bankAcctNo)); - log.info("用户电子账簿提现完成=========:{}",withdrawalResp); - return true; - }catch (Exception e){ - log.info("用户提现失败=========:{}",e.getMessage()); - e.printStackTrace(); - return false; - } +// try { +// // 进行平台分账到用户电子账簿 +// log.info("平台分账到用户电子账簿========="); +// AllocationResp allocationResp = AllocationExample.create(this.createAllocationReq(userWithdrawal.getBalanceAcctId(), electronicLedger.getBalanceAcctId(), amount,password)); +// log.info("平台分账到用户电子账簿完成=========:{}",allocationResp); +// +// // 用户电子账簿进行提现操作 +// WithdrawalResp withdrawalResp = WithdrawalExample.create(this.createWithdrawalReq(userWithdrawal.getBalanceAcctId(), amount, password, bankAcctNo)); +// log.info("用户电子账簿提现完成=========:{}",withdrawalResp); +// return true; +// }catch (Exception e){ +// log.info("用户提现失败=========:{}",e.getMessage()); +// e.printStackTrace(); +// return false; +// } + return true; } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java index 98ca7bb..2af2b5c 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java @@ -5,27 +5,19 @@ import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.shiro.ShiroUser; import com.stylefeng.guns.core.util.JwtTokenUtil; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; import com.stylefeng.guns.modular.system.dao.UserMapper; import com.stylefeng.guns.modular.system.model.User; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.DepositResp; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; import org.apache.shiro.crypto.hash.Md5Hash; import org.apache.shiro.util.ByteSource; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; -import java.text.SimpleDateFormat; -import java.util.Date; import java.util.HashMap; /** diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 56dc129..5c8cfb4 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -5,17 +5,10 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService; -import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.account.server.ITEnterpriseWithdrawalService; -import com.stylefeng.guns.modular.account.server.UserWithdrawalService; import com.stylefeng.guns.modular.call.server.IOrderCallService; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; @@ -31,23 +24,22 @@ import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.AllocationResp; -import com.unionpay.upyzt.resp.DepositResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.*; -import sun.security.krb5.internal.crypto.Des; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; -import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -125,22 +117,26 @@ @Autowired private IAdditionalFeeService additionalFeeService; - + @Autowired private ITEnterpriseWithdrawalService enterpriseWithdrawalService; @Autowired - private ICompanyService companyService; + private ICompanyService companyService; @Autowired private IUserCouponRecordService userCouponRecordService; @Value("${pushMinistryOfTransport}") private boolean pushMinistryOfTransport; - - - - - + + @Resource + private SystemPriceMapper systemPriceMapper; + + @Resource + private RedisTemplate redisTemplate; + + /** * 获取正在进行中的订单 + * * @param request * @return */ @@ -421,15 +417,8 @@ return ResultUtil.runErr(); } } - - - - @Autowired - private RedisUtil redisUtil; - - @Resource - private SystemPriceMapper systemPriceMapper; - + + /** * 获取服务中的详情数据 * @param orderId @@ -489,7 +478,7 @@ } orderList= orderPrivateCarService.queryOrderInfo2(orderId,6,null,null); if(orderInfoWarpper.getState()>1 && orderInfoWarpper.getDriverId()!=0){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId())); if(value==null || value.equals("")){ if(orderList.isEmpty()){ orderList= orderPrivateCarService.queryOrderInfo2(orderId,5,"0","0"); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java index 0227815..974ba84 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java @@ -1,22 +1,10 @@ package com.stylefeng.guns.modular.api; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.controller.AppOrderController; -import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; -import com.stylefeng.guns.modular.account.server.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; -import com.stylefeng.guns.modular.system.model.Company; -import com.stylefeng.guns.modular.system.model.UserInfo; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.stylefeng.guns.modular.system.service.ICompanyService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.util.PayMoneyUtil; -import com.unionpay.upyzt.resp.DepositResp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,8 +15,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.Date; import java.util.Map; @@ -105,37 +91,5 @@ } } - public void cloudPay(Integer uid,String total_fee,String transaction_id,int type) { - if(type==1){ - BigDecimal divide = new BigDecimal(total_fee).divide(new BigDecimal(100)); - total_fee=divide.toString(); - } - System.out.println("回调参数:"+total_fee+"---"+transaction_id); - UserInfo userInfo = userInfoService.selectById(uid); - UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone", userInfo.getPhone()) - .last("LIMIT 1")); - DepositReq depositReq = new DepositReq(); - depositReq.setOutOrderNo(ToolUtil.getRandomString(32)); - depositReq.setTotalAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 总金额 - depositReq.setAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 支付金额 - depositReq.setDiscountAmount(0); // 优惠金额 - depositReq.setBalanceAcctId(driverWith.getBalanceAcctId()); - depositReq.setDepositType("1"); - depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode()); - depositReq.setPaymentTradeNo(transaction_id); // 系统交易流水号 - depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())); - depositReq.setOrderNo(transaction_id); - depositReq.setOrderAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).longValue()); - depositReq.setProductName("用户支付充值"); - depositReq.setProductCount(1); - try { - DepositResp depositResp = DepositExample.create(depositReq); - System.err.println(depositResp); - } catch (Exception e) { - e.printStackTrace(); - } - - } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java index af7399d..26a8cfe 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java @@ -1,59 +1,35 @@ package com.stylefeng.guns.modular.api; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.common.constant.JwtConstants; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; import com.stylefeng.guns.modular.account.util.OssUploadUtil; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; import com.stylefeng.guns.modular.system.model.Driver; -import com.stylefeng.guns.modular.system.model.DriverService; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.ISmsrecordService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.service.IVerifiedService; -import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.WeChatUtil; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; import com.stylefeng.guns.modular.system.warpper.UserInfoWarpper; import com.stylefeng.guns.modular.system.warpper.VerifiedWarpper; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.DepositResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.shiro.codec.Base64; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; import javax.servlet.http.HttpServletRequest; -import java.io.*; -import java.net.URL; -import java.net.URLConnection; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.security.spec.AlgorithmParameterSpec; -import java.text.SimpleDateFormat; +import java.io.InputStream; import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -72,9 +48,9 @@ @Autowired private ISmsrecordService smsrecordService; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Autowired private WeChatUtil weChatUtil; @@ -659,9 +635,9 @@ public ResultUtil freeze(Integer uid){ try { UserInfo userInfo = userInfoService.selectById(uid); - String value = redisUtil.getValue(userInfo.getPhone()); - redisUtil.remove(value); - redisUtil.remove(userInfo.getPhone()); + String value = (String) redisTemplate.opsForValue().get(userInfo.getPhone()); + redisTemplate.delete(value); + redisTemplate.delete(userInfo.getPhone()); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); @@ -689,7 +665,7 @@ } String requestHeader = request.getHeader(JwtConstants.AUTH_HEADER); requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1); - String value = redisUtil.getValue("USER_" + uid); + String value = (String) redisTemplate.opsForValue().get("USER_" + uid); Map<String, Object> map = new HashMap<>(); map.put("match", requestHeader.equals(value) ? 1 : 2); return ResultUtil.success(map); @@ -720,13 +696,13 @@ userInfo.setState(2); userInfoService.updateById(userInfo); //开始验证当前账号是否在别处登录 - String value = redisUtil.getValue("USER_" + uid); - if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线 + String value = (String) redisTemplate.opsForValue().get("USER_" + uid); + if(ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线 //开始清除redis中无效的数据 - String key = redisUtil.getValue("USER_" + userInfo.getPhone()); - redisUtil.remove(key);//删除个人信息数据 - redisUtil.remove("USER_" + userInfo.getPhone());//删除后台冻结相关缓存 - redisUtil.remove("USER_" + uid);//清除存储的token + String key = (String) redisTemplate.opsForValue().get("USER_" + userInfo.getPhone()); + redisTemplate.delete(key);//删除个人信息数据 + redisTemplate.delete("USER_" + userInfo.getPhone());//删除后台冻结相关缓存 + redisTemplate.delete("USER_" + uid);//清除存储的token } return ResultUtil.success(); }catch (Exception e){ diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java index 9a1b7fa..bbe5764 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java @@ -6,7 +6,6 @@ import com.stylefeng.guns.modular.account.model.TBankNext; import com.stylefeng.guns.modular.account.server.UserBankAccountService; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; import com.stylefeng.guns.modular.system.model.UserBankAccount; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.model.UserWithdrawal; @@ -14,7 +13,6 @@ import com.stylefeng.guns.modular.system.service.IWithdrawalService; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.WithdrawalWarpper; -import com.unionpay.upyzt.resp.CusApplicationResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -98,7 +96,7 @@ UserWithdrawal userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() .eq("phone", userInfo.getPhone()) .last("LIMIT 1")); - if(Objects.isNull(userWithdrawal)){ + if (Objects.isNull(userWithdrawal)) { return ResultUtil.error("请先进行个人用户进件信息填写"); } TBankNext bankName1 = tBankNextMapper.selectList(new EntityWrapper<TBankNext>().eq("bankName", bankName)).get(0); @@ -106,26 +104,26 @@ userWithdrawal.setBankCode(bankName1.getDrecCode()); userWithdrawal.setBankBranchCode(bankName1.getBankCode()); userWithdrawal.setCode(smsCode); - CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal); - System.err.println("修改个人用户进件信息返回"+renew); - if("succeeded".equals(renew.getApplicationStatus())){ - // 修改银行卡信息 - bankCard.setSettleAcctId(renew.getSettleAcctId()); - bankAccountService.updateById(bankCard); - - userWithdrawal.setBankCardCode(code); - userWithdrawal.setBankCode(bankCard.getBankCode()); - userWithdrawal.setBankBranchCode(bankCard.getBankBranchCode()); - userWithdrawal.setBankName(bankCard.getBankName()); - userWithdrawal.setSettleAcctId(renew.getSettleAcctId()); - userWithdrawal.setBalanceAcctId(renew.getBalanceAcctId()); - userWithdrawalService.updateById(userWithdrawal); - return withdrawalService.withdrawal(money, bankName, code, name, uid); - }else { - return ResultUtil.error(renew.getFailureMsgs().get(0).getReason()); - } - - +// CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal); +// System.err.println("修改个人用户进件信息返回"+renew); +// if("succeeded".equals(renew.getApplicationStatus())){ +// // 修改银行卡信息 +// bankCard.setSettleAcctId(renew.getSettleAcctId()); +// bankAccountService.updateById(bankCard); +// +// userWithdrawal.setBankCardCode(code); +// userWithdrawal.setBankCode(bankCard.getBankCode()); +// userWithdrawal.setBankBranchCode(bankCard.getBankBranchCode()); +// userWithdrawal.setBankName(bankCard.getBankName()); +// userWithdrawal.setSettleAcctId(renew.getSettleAcctId()); +// userWithdrawal.setBalanceAcctId(renew.getBalanceAcctId()); +// userWithdrawalService.updateById(userWithdrawal); +// return withdrawalService.withdrawal(money, bankName, code, name, uid); +// }else { +// return ResultUtil.error(renew.getFailureMsgs().get(0).getReason()); +// } + + return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java deleted file mode 100644 index 19db00c..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.config; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.client.RestTemplateBuilder; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.client.RestTemplate; - -/** - * @author xiaochen - * @version 1.0 - * @since 2023/03/24 - */ -@Configuration -@EnableConfigurationProperties({UpyztProperties.class}) -public class UpyztAutoConfiguration { - - @Bean - public UpyztCustomizer upyztCustomizer(UpyztProperties upyztProperties) { - return new UpyztCustomizer(upyztProperties); - } - - /*@Bean - public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) { - return restTemplateBuilder.build(); - }*/ - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java deleted file mode 100644 index 0fb8bee..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.config; - -import com.unionpay.upyzt.Upyzt; -import org.springframework.beans.factory.InitializingBean; - -/** - * @author xiaochen - * @version 1.0 - * @since 2023/03/24 - */ -public class UpyztCustomizer implements InitializingBean { - - private UpyztProperties upyztProperties; - - public UpyztCustomizer(UpyztProperties upyztProperties) { - this.upyztProperties = upyztProperties; - } - - @Override - public void afterPropertiesSet() throws Exception { - // (必填)设置平台商户 Id - Upyzt.setRootMchId(upyztProperties.getRootMchId()); - // (必填)设置签名私钥路径,用于请求签名 - Upyzt.setSignPrivateKey(upyztProperties.getSignPrivateKey()); - // (必填)设置加密公钥路径,用于敏感字段加密 - Upyzt.setEncryptPublicKey(upyztProperties.getEncryptPublicKey()); - // (可选,推荐设置)设置响应验证公钥,用于验证响应是否真实有效;不设置或设置密钥错误将不验签 - Upyzt.setVerifyPublicKey(upyztProperties.getVerifyPublicKey()); - // 测试配置 - Upyzt.setApiBase(Upyzt.LIVE_API_BASE); - } -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java deleted file mode 100644 index 373cf5a..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.config; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * @author xiaochen - * @version 1.0 - * @since 2023/03/24 - */ -@Data -@ConfigurationProperties(prefix = "upyzt") -public class UpyztProperties { - - /** - * 平台商户 Id - */ - @JsonProperty(value = "root-mch-id") - private String rootMchId; - - /** - * 接口地址 - */ - @JsonProperty(value = "api-base") - private String apiBase; - - /** - * 加密公钥 - */ - @JsonProperty(value = "encrypt-public-key") - private String encryptPublicKey; - - /** - * 加签私钥 - */ - @JsonProperty(value = "sign-private-key") - private String signPrivateKey; - - /** - * 验签公钥 - */ - @JsonProperty(value = "verify-public-key") - private String verifyPublicKey; - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java deleted file mode 100644 index a6d44c8..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java +++ /dev/null @@ -1,157 +0,0 @@ -//package com.stylefeng.guns.modular.cloudPayment.controller; -// -//import com.google.gson.Gson; -//import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; -//import com.stylefeng.guns.modular.system.model.UserWithdrawal; -//import com.stylefeng.guns.modular.system.util.ResultUtil; -//import com.unionpay.upyzt.exception.UpyztException; -//import com.unionpay.upyzt.resp.CusApplicationResp; -//import com.unionpay.upyzt.resp.CusApplicationSmsCodeResp; -//import io.swagger.annotations.Api; -//import io.swagger.annotations.ApiImplicitParam; -//import io.swagger.annotations.ApiImplicitParams; -//import io.swagger.annotations.ApiOperation; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.web.bind.annotation.*; -// -//@Api(tags = "个人用户进件") -//@Slf4j -//@RestController -//@RequestMapping("/api/openAccount") -//public class OpenAccountController { -// -// @Autowired -// private Gson gson; -// -// /** -// * 个人用户进件-短信验证码 -// * @param phone 手机号 -// * @return 返回参数 -// * @throws Exception 异常 -// */ -// @ResponseBody -// @PostMapping("/smsCode") -// @ApiOperation(value = "个人用户进件-短信验证码", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationSmsCodeResp> smsCode(@RequestBody String phone){ -// CusApplicationSmsCodeResp cusApplicationSmsCodeResp; -// try{ -// // 个人用户进件-短信验证码 -// cusApplicationSmsCodeResp = CusApplicationExample.smsCode(phone); -// log.info("------- 个人用户进件-短信验证码 ------- {} ", gson.toJson(cusApplicationSmsCodeResp)); -// }catch (Exception e){ -// log.error("个人用户进件-短信验证码失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件-短信验证码失败!!!"); -// } -// return ResultUtil.success(cusApplicationSmsCodeResp); -// } -// -// /** -// * 个人用户首次进件 -// * @param userWithdrawal 个人账户对象 -// * @return 返回参数 -// * @throws Exception 异常 -// */ -// @ResponseBody -// @PostMapping("/openIndividualUser") -// @ApiOperation(value = "个人用户首次进件", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> openIndividualUser(@RequestBody UserWithdrawal userWithdrawal){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 个人用户首次进件 -// cusApplicationResp = CusApplicationExample.create(userWithdrawal); -// log.info("------- 个人用户首次进件 ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (Exception e){ -// log.error("个人用户进件失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -// /** -// * 个人用户进件状态查询(系统订单号) -// * @param cusApplicationId 系统订单号 -// * @return 返回参数 -// * @throws UpyztException 异常 -// */ -// @ResponseBody -// @PostMapping("/queryIndividualUserStatusByCusApplicationId") -// @ApiOperation(value = "个人用户进件状态查询(系统订单号)", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> queryIndividualUserStatusByCusApplicationId(@RequestBody String cusApplicationId){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 个人用户进件状态查询(系统订单号) -// cusApplicationResp = CusApplicationExample.retrieveById(cusApplicationId); -// log.info("------- 个人用户进件状态查询 ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (UpyztException e){ -// log.error("个人用户进件状态查询失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件状态查询失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -// /** -// * 修改个人用户信息 -// * @param userWithdrawal 个人账户对象 -// * @return 返回参数 -// * @throws UpyztException 异常 -// */ -// @ResponseBody -// @PostMapping("/updateIndividualUserInfo") -// @ApiOperation(value = "修改个人用户信息(系统订单号)", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> updateIndividualUserInfo(@RequestBody UserWithdrawal userWithdrawal){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 修改个人用户信息 -// cusApplicationResp = CusApplicationExample.renew(userWithdrawal); -// log.info("------- 修改个人用户信息 ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (Exception e){ -// log.error("修改个人用户信息失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("修改个人用户信息失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -// /** -// * 个人用户进件状态查询(平台订单号) -// * @param userWithdrawal 个人账户对象 -// * @return 返回参数 -// * @throws UpyztException 异常 -// */ -// @ResponseBody -// @PostMapping("/queryIndividualUserStatusByOutRequestNo") -// @ApiOperation(value = "个人用户进件状态查询(平台订单号)", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> queryIndividualUserStatusByOutRequestNo(@RequestBody UserWithdrawal userWithdrawal){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 个人用户进件状态查询(平台订单号) -// cusApplicationResp = CusApplicationExample.renew(userWithdrawal); -// log.info("------- 个人用户进件状态查询(平台订单号) ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (Exception e){ -// log.error("个人用户进件状态查询(平台订单号)失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件状态查询(平台订单号)失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -//} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java deleted file mode 100644 index b02ad6a..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.req.AcctPasswordReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.AcctPassword; -import com.unionpay.upyzt.resp.AcctPasswordResp; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class AcctPasswordExample implements Serializable { - - - /** - * 修改交易授权码 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AcctPasswordResp update(AcctPasswordReq acctPasswordReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", acctPasswordReq.getBalanceAcctId()); - params.put("original_password", Upyzt.encryptField(acctPasswordReq.getOriginalPassword())); - params.put("new_password", Upyzt.encryptField(acctPasswordReq.getNewPassword())); - return AcctPassword.update(params); - } - - /** - * 获取用于重置交易授权码的短信验证码 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AcctPasswordResp smsCode(String balanceAcctId) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", balanceAcctId); - return AcctPassword.smsCode(params); - } - - /** - * 重置交易授权码 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AcctPasswordResp reset(AcctPasswordReq acctPasswordReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", acctPasswordReq.getBalanceAcctId()); - params.put("sms_code", acctPasswordReq.getCode()); - params.put("new_password", Upyzt.encryptField(acctPasswordReq.getNewPassword())); - return AcctPassword.reset(params); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java deleted file mode 100644 index 726461c..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Allocation; -import com.unionpay.upyzt.resp.AllocationResp; -import com.unionpay.upyzt.util.StringUtils; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -public class AllocationExample implements Serializable { - - - /** - * 分账 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static AllocationResp create(AllocationReq allocationReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", allocationReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("pay_balance_acct_id", allocationReq.getPayBalanceAcctId()); - - List<Map<String, Object>> transferParams = new ArrayList<>(); - Map<String, Object> transferParam = new HashMap<>(); - transferParam.put("recv_balance_acct_id", allocationReq.getRecvBalanceAcctId()); - transferParam.put("amount", allocationReq.getAmount()); -// transferParam.put("metadata", MockData.metadata()); - transferParam.put("extra", MockData.allocationExtra(allocationReq)); - transferParams.add(transferParam); - params.put("transfer_params", transferParams); - if(!StringUtils.isBlank(allocationReq.getPassword())){ - params.put("password", Upyzt.encryptField(allocationReq.getPassword())); - } -// params.put("remark", "用于 SDK 示例测试 "); - - return Allocation.create(params); - } - - /** - * 分账订单查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AllocationResp retrieveById(String allocationId) throws UpyztException { - return Allocation.retrieveById(allocationId); - } - - /** - * 分账订单查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AllocationResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Allocation.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java deleted file mode 100644 index 484d2cf..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctFreezeReq; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.BalanceAcct; -import com.unionpay.upyzt.model.BalanceAcctFreeze; -import com.unionpay.upyzt.model.BalanceTransaction; -import com.unionpay.upyzt.resp.*; -import com.unionpay.upyzt.util.StringUtils; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class BalanceAcctExample implements Serializable { - - /** - * 新增电子账簿 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctStoreResp create(BalanceAcctReq balanceAcctReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_request_no", balanceAcctReq.getOutRequestNo()); - if (!StringUtils.isBlank(balanceAcctReq.getCusId())) { - params.put("cus_id", balanceAcctReq.getCusId()); - } - if (!StringUtils.isBlank(balanceAcctReq.getMchId())) { - params.put("mch_id", balanceAcctReq.getMchId()); - } - params.put("password", Upyzt.encryptField(balanceAcctReq.getPassword())); - params.put("remark", balanceAcctReq.getRemark()); - - return BalanceAcct.create(params); - } - - /** - * 电子账簿查询(电子账簿ID) - * - * @param balanceAcctId 绑定账户编号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctResp retrieveById(String balanceAcctId) throws UpyztException { - return BalanceAcct.retrieveById(balanceAcctId); - } - - - /** - * 电子账簿查询(用户ID或二级商户ID) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctListResp retrieveByUserId(BalanceAcctReq balanceAcctReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - if (!StringUtils.isBlank(balanceAcctReq.getCusId())) { - params.put("cus_id", balanceAcctReq.getCusId()); - } - if (!StringUtils.isBlank(balanceAcctReq.getMchId())) { - params.put("mch_id", balanceAcctReq.getMchId()); - } - return BalanceAcct.retrieveByUserId(params); - } - - - /** - * 冻结/解冻电子账簿 - * - * @param balanceAcctFreezeReq 电子账簿ID - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctFreezeResp freeze(BalanceAcctFreezeReq balanceAcctFreezeReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_request_no", balanceAcctFreezeReq.getOutRequestNo()); - params.put("balance_acct_id", balanceAcctFreezeReq.getBalanceAcctId()); - params.put("freeze", balanceAcctFreezeReq.getFreeze()); - if(!StringUtils.isBlank(balanceAcctFreezeReq.getRemark())){ - params.put("remark", balanceAcctFreezeReq.getRemark()); - } - - return BalanceAcctFreeze.create(params); - } - - /** - * 冻结/解冻结果查询(系统订单号) - * - * @param balanceAcctFreezeId 系统订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctFreezeResp retrieveFreezeById(String balanceAcctFreezeId) throws UpyztException { - return BalanceAcctFreeze.retrieveById(balanceAcctFreezeId); - } - - - /** - * 冻结/解冻结果查询(平台订单号) - * - * @param outRequestNo 平台订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctFreezeResp retrieveFreezeByOutRequestNo(String outRequestNo) throws UpyztException { - return BalanceAcctFreeze.retrieveByOutRequestNo(outRequestNo); - } - - - /** - * 注销电子账簿 - * - * @param balanceAcctId 电子账簿ID - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctDeleteResp removeById(String balanceAcctId) throws UpyztException { - return BalanceAcct.removeById(balanceAcctId); - } - - - - /** - * 电子账簿流水查询 - * - * @param balanceAcctId 电子账簿ID - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceTxnPaginationResp page(String balanceAcctId) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", balanceAcctId); - params.put("start_at", OffsetDateTime.now().toString()); - return BalanceTransaction.page(params); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java deleted file mode 100644 index e5b0ba3..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.account.req.UserWithdrawalReq; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.stylefeng.guns.modular.system.util.UUIDUtil; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.CusApplication; -import com.unionpay.upyzt.model.Media; -import com.unionpay.upyzt.resp.CusApplicationResp; -import com.unionpay.upyzt.resp.CusApplicationSmsCodeResp; -import com.unionpay.upyzt.resp.MediaResp; -import com.unionpay.upyzt.util.StringUtils; -import lombok.extern.slf4j.Slf4j; - -import java.io.File; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class CusApplicationExample implements Serializable { - - - /** - * 个人用户进件-短信验证码 - * - * @return 返回 - * @throws UpyztException 异常 - */ - public static CusApplicationSmsCodeResp smsCode(String phone) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("mobile_number", phone); - CusApplicationSmsCodeResp cusApplicationSmsCodeResp = CusApplication.sendSmsCode(params); - System.out.println(cusApplicationSmsCodeResp); - return cusApplicationSmsCodeResp; - } - - /** - * 个人用户首次进件 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp create(UserWithdrawalReq userWithdrawalReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - Map<String, Object> idCard = new HashMap<>(); - idCard.put("number", Upyzt.encryptField(userWithdrawalReq.getCertificateCode())); - idCard.put("name", Upyzt.encryptField(userWithdrawalReq.getCertificateName())); - idCard.put("valid_time", userWithdrawalReq.getCertificateExpireTime()); - idCard.put("copy", userWithdrawalReq.getCopy1()); - idCard.put("national", userWithdrawalReq.getCopy2()); - - Map<String, Object> settleAcct = new HashMap<>(); - settleAcct.put("name", Upyzt.encryptField(userWithdrawalReq.getOpenAccountName())); - settleAcct.put("bank_acct_no", Upyzt.encryptField(userWithdrawalReq.getBankCardCode())); - settleAcct.put("bank_branch_code", userWithdrawalReq.getBankBranchCode()); - settleAcct.put("bank_code", userWithdrawalReq.getBankCode()); - - params.put("out_request_no", userWithdrawalReq.getOutRequestNo()); - params.put("id_card", idCard); - params.put("mobile_number", Upyzt.encryptField(userWithdrawalReq.getPhone())); - params.put("settle_acct", settleAcct); - params.put("sms_code", userWithdrawalReq.getCode()); - params.put("password", Upyzt.encryptField(userWithdrawalReq.getTransactionAuthorizationCode())); - System.out.println("请求参数:::"+params.toString()); - return CusApplication.create(params); - } - - /** - * 个人用户进件状态查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp retrieveById(String cusApplicationId) throws UpyztException { - return CusApplication.retrieveById(cusApplicationId); - } - - /** - * 修改个人用户信息 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp renew(UserWithdrawal userWithdrawal) throws Exception { - - Map<String, Object> params = new HashMap<>(); - Map<String, Object> idCard = new HashMap<>(); - idCard.put("copy", userWithdrawal.getIdCardFrontPicture()); - idCard.put("national", userWithdrawal.getIdCardReversePicture()); - idCard.put("number", Upyzt.encryptField(userWithdrawal.getCertificateCode())); - idCard.put("name", Upyzt.encryptField(userWithdrawal.getCertificateName())); - idCard.put("valid_time", userWithdrawal.getCertificateExpireTime()); - - Map<String, Object> settleAcct = new HashMap<>(); - settleAcct.put("name", Upyzt.encryptField(userWithdrawal.getOpenAccountName())); - settleAcct.put("bank_acct_no", Upyzt.encryptField(userWithdrawal.getBankCardCode())); - settleAcct.put("bank_code", userWithdrawal.getBankCode()); - settleAcct.put("bank_branch_code", userWithdrawal.getBankBranchCode()); - - params.put("cus_id", userWithdrawal.getCusId()); - params.put("out_request_no", UUIDUtil.getRandomCode(16)); - params.put("id_card", idCard); - params.put("mobile_number", Upyzt.encryptField(userWithdrawal.getPhone())); - params.put("settle_acct", settleAcct); - params.put("password", Upyzt.encryptField(userWithdrawal.getTransactionAuthorizationCode())); - params.put("sms_code", userWithdrawal.getCode()); - System.out.println("修改进件参数:"+params.toString()); - return CusApplication.renew(params); - } - - /** - * 个人用户进件状态查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp retrieveByOutRequestNo(String outRequestNo) throws UpyztException { - return CusApplication.retrieveByOutRequestNo(outRequestNo); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java deleted file mode 100644 index 12241c5..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Deposit; -import com.unionpay.upyzt.param.Extra; -import com.unionpay.upyzt.resp.DepositResp; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -@Slf4j -public class DepositExample implements Serializable { - - - /** - * 支付充值 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static DepositResp create(DepositReq depositReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", depositReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", depositReq.getAmount()); - params.put("balance_acct_id", depositReq.getBalanceAcctId()); - params.put("deposit_type", depositReq.getDepositType()); - params.put("payment_type", depositReq.getPaymentType()); - params.put("payment_trade_no", depositReq.getPaymentTradeNo()); - params.put("payment_succeeded_at", OffsetDateTime.now().toString()); -// params.put("remark", "用于 SDK 示例测试"); -// params.put("metadata", MockData.metadata()); - params.put("extra", MockData.depositExtra(depositReq)); - if(Objects.nonNull(depositReq.getDiscountAmount())){ - params.put("total_amount", depositReq.getTotalAmount()); - params.put("discount_amount", depositReq.getDiscountAmount()); - } - return Deposit.create(params); - } - - /** - * 支付充值订单查询(系统订单号) - * @param depositId 系统订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public DepositResp retrieveById(String depositId) throws UpyztException { - return Deposit.retrieveById(depositId); - } - - /** - * 支付充值订单查询(平台订单号) - * @param outOrderNo 平台订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public DepositResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Deposit.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java deleted file mode 100644 index 214c710..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Media; -import com.unionpay.upyzt.resp.MediaResp; -import org.springframework.web.multipart.MultipartFile; - -import java.io.File; -import java.io.IOException; -import java.io.Serializable; - -public class MediaExample implements Serializable { - - - /** - * 上传图片 - * - * @return 返回参数 - */ - public static MediaResp uploadImage(MultipartFile multipartFile) throws UpyztException { - MediaResp mediaResp = null; - try { - String originalFilename = multipartFile.getOriginalFilename(); - String[] filename = originalFilename.split("\\."); - File file=File.createTempFile(filename[0], "."+filename[1]); - multipartFile.transferTo(file); - file.deleteOnExit(); - mediaResp = Media.uploadImage(file); - System.out.println(mediaResp); - } catch (IOException e) { - e.printStackTrace(); - } - return mediaResp; - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java deleted file mode 100644 index 2b18b08..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.PaymentReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Payment; -import com.unionpay.upyzt.resp.PaymentResp; -import com.unionpay.upyzt.util.StringUtils; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class PaymentExample implements Serializable { - - - /** - * 消费(转账) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public PaymentResp create(PaymentReq paymentReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", paymentReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", paymentReq.getAmount()); - params.put("pay_balance_acct_id", paymentReq.getPayBalanceAcctId()); - params.put("recv_balance_acct_id", paymentReq.getRecvBalanceAcctId()); - if(!StringUtils.isBlank(paymentReq.getPassword())){ - params.put("password", Upyzt.encryptField(paymentReq.getPassword())); - } -// params.put("remark", "用于 SDK 示例测试"); -// params.put("metadata", MockData.metadata()); - params.put("extra", MockData.paymentExtra(paymentReq)); - return Payment.create(params); - } - - /** - * 消费(转账)订单查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public PaymentResp retrieveById(String paymentId) throws UpyztException { - return Payment.retrieveById(paymentId); - } - - /** - * 消费(转账)订单查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public PaymentResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Payment.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/RefundExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/RefundExample.java deleted file mode 100644 index c42c0e2..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/RefundExample.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Refund; -import com.unionpay.upyzt.resp.RefundResp; - -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -public class RefundExample { - - public RefundExample(String tradeId) { - this.tradeId = tradeId; - } - - protected String tradeId; - - - public static void main(String[] args) throws UpyztException { - RefundExample refundExample = new RefundExample("1auoc0c0pp7obv4cptjpm6ej5dzohcgl"); - // 退款 - RefundResp refundResp = refundExample.create(); - } - - /** - * 运行 Demos - * - * @param tradeId 交易ID - */ - public static String runDemos(String tradeId) throws UpyztException { - RefundExample refundExample = new RefundExample(tradeId); - - // 退款 - RefundResp refundResp = refundExample.create(); - - // 退款订单查询(系统订单号) - refundResp = refundExample.retrieveById(refundResp.getRefundId()); - - // 退款订单查询(平台订单号) - refundResp = refundExample.retrieveByOutOrderNo(refundResp.getOutOrderNo()); - - return refundResp.getRefundId(); - } - - /** - * 退款 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public RefundResp create() throws UpyztException { - Map<String, Object> params = new HashMap<>(); -// params.put("out_order_no", "1auoc0c0pp7obv4cptjpm6ej5dzohcgl"); - params.put("out_order_no", "3209588457394236519"); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", 100); - params.put("orig_trade_id", this.tradeId); - params.put("remark", "用于 SDK 示例测试"); - // params.put("total_amount", 101); - // params.put("discount_amount", 1); - - System.out.println("------- 退款 -------"); - RefundResp resp = Refund.create(params); - System.out.println(resp); - return resp; - } - - /** - * 退款订单查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public RefundResp retrieveById(String id) throws UpyztException { - System.out.println("------- 退款订单查询(系统订单号) -------"); - RefundResp resp = Refund.retrieveById(id); - System.out.println(resp); - return resp; - } - - /** - * 退款订单查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public RefundResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - System.out.println("------- 退款订单查询(平台订单号) -------"); - RefundResp resp = Refund.retrieveByOutOrderNo(outOrderNo); - System.out.println(resp); - return resp; - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java deleted file mode 100644 index 372b36b..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.stylefeng.guns.modular.system.model.UserBankAccount; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.SettleAcct; -import com.unionpay.upyzt.resp.SettleAcctDeleteResp; -import com.unionpay.upyzt.resp.SettleAcctListResp; -import com.unionpay.upyzt.resp.SettleAcctResp; -import com.unionpay.upyzt.util.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -public class SettleAcctExample { - - - /** - * 新增绑定账户 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp create(UserBankAccountReq userBankAccountReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_request_no", userBankAccountReq.getOutRequestNo()); - if (!StringUtils.isBlank(userBankAccountReq.getCusId())) { - params.put("cus_id", userBankAccountReq.getCusId()); - }else { - params.put("mch_id", userBankAccountReq.getMchId()); - } - params.put("bank_acct_type", String.valueOf(userBankAccountReq.getBankAcctType())); - params.put("bank_code", userBankAccountReq.getBankCode()); -// params.put("bank_address_code", ""); - params.put("bank_branch_code", userBankAccountReq.getBankBranchCode()); - params.put("bank_acct_no", Upyzt.encryptField(userBankAccountReq.getBankCardCode())); - params.put("mobile_number", Upyzt.encryptField(userBankAccountReq.getPhone())); - // 是否必传取决于平台业务参数配置 - params.put("sms_code", userBankAccountReq.getCode()); - // 拓展字段配合业务参数, 无业务要求无需传 - // params.put("extra", new HashMap<String, String>()); - return SettleAcct.create(params); - } - - /** - * 二级商户进件状态查询(绑定账户编号) - * - * @param settleAcctId 绑定账户编号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp retrieveById(String settleAcctId) throws UpyztException { - return SettleAcct.retrieveById(settleAcctId); - } - - /** - * 绑定账户查询(平台订单号) - * - * @param outRequestNo 平台订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp retrieveByOutRequestNo(String outRequestNo) throws UpyztException { - return SettleAcct.retrieveByOutRequestNo(outRequestNo); - } - - - /** - * 绑定账户查询(用户ID) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctListResp retrieveByUserId(UserBankAccountReq userBankAccountReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - if (!StringUtils.isBlank(userBankAccountReq.getCusId())) { - params.put("cus_id", userBankAccountReq.getCusId()); - }else { - params.put("mch_id", userBankAccountReq.getMchId()); - } - // 用于筛选指定状态的绑定账户列表,不传表示无筛选。 - // 枚举值:processing: 验证中|succeeded: 验证成功|failed: 验证失败|blocked: 验证锁定中,需联系银行业务人员触发重新打款|needless: 无需验证 - params.put("verify_status", userBankAccountReq.getVerifyStatus()); - return SettleAcct.retrieveByUserId(params); - } - - /** - * 验证绑定账户(打款金额验证) (用validateBySettleAcctId替代) - * - * @return 返回参数 - * @throws UpyztException 异常 - * @deprecated 1.3.2后续迭代将删除,可使用validateBySettleAcctId替代 - */ - @Deprecated - public static SettleAcctResp validate(String settleAcctId,Integer payAmount) throws UpyztException { - return validateBySettleAcctId(settleAcctId,payAmount); - } - - /** - * 打款金额验证(绑定账户编号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp validateBySettleAcctId(String settleAcctId,Integer payAmount) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("pay_amount", payAmount); - return SettleAcct.validateBySettleAcctId(settleAcctId, params); - } - - /** - * 打款金额验证(用户银行账号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp validateByBankAcctNo(String mchId, SettleAcctResp settleAcctResp,Integer payAmount) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("mch_id", mchId); - params.put("bank_acct_no", Upyzt.encryptField(settleAcctResp.getBankAcctNo())); - params.put("pay_amount", payAmount); - return SettleAcct.validateByBankAcctNo(params); - } - - /** - * 删除绑定账户 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctDeleteResp removeById(String settleAcctId) throws UpyztException { - return SettleAcct.removeById(settleAcctId); - } - - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java deleted file mode 100644 index 2f352c5..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Withdrawal; -import com.unionpay.upyzt.resp.WithdrawalResp; -import com.unionpay.upyzt.util.StringUtils; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -public class WithdrawalExample implements Serializable { - - - /** - * 提现 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static WithdrawalResp create(WithdrawalReq withdrawalReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", withdrawalReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", withdrawalReq.getAmount()); - params.put("balance_acct_id", withdrawalReq.getBalanceAcctId()); - params.put("bank_acct_no", Upyzt.encryptField(withdrawalReq.getBankAcctNo())); - params.put("password", Upyzt.encryptField(withdrawalReq.getPassword())); -// params.put("remark", "用于 SDK 示例测试"); -// params.put("bank_memo", "银行附言"); - - // 以下参数绑定账户无需填写,提现到非绑定账户时必填 - if(!StringUtils.isBlank(withdrawalReq.getBankBranchCode())){ - params.put("bank_acct_type", withdrawalReq.getBankAcctType()); - params.put("bank_branch_code", withdrawalReq.getBankBranchCode()); - params.put("bank_code", withdrawalReq.getBankBranchCode()); - params.put("name", Upyzt.encryptField(withdrawalReq.getName())); - // 仅提现到个人非绑定账户时必填 - params.put("mobile_number", Upyzt.encryptField(withdrawalReq.getMobileNumber())); - params.put("service_fee", withdrawalReq.getServiceFee()); -// params.put("metadata", MockData.metadata()); - } - - params.put("extra", MockData.withdrawalExtra(withdrawalReq)); - - return Withdrawal.create(params); - } - - /** - * 提现订单查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public WithdrawalResp retrieveById(String withdrawalId) throws UpyztException { - return Withdrawal.retrieveById(withdrawalId); - } - - /** - * 提现订单查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public WithdrawalResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Withdrawal.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java deleted file mode 100644 index 1a3b703..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.extra; - -import com.unionpay.upyzt.param.Extra; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -@ApiModel(value = "拓展字段") -public class ExpandExtra extends Extra { - - @ApiModelProperty(value = "结果回调地址") - private String notify_url; - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java deleted file mode 100644 index b803281..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.mock; - -import com.stylefeng.guns.modular.cloudPayment.extra.ExpandExtra; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.cloudPayment.req.PaymentReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; -import com.unionpay.upyzt.param.Extra; -import com.unionpay.upyzt.param.ProductInfo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author yf.zhao - * @version 1.0 - * @since 2020/10/29 - */ -public class MockData { - - /** - * 支付充值拓展字段封装 - * - * @return - */ - public static Extra depositExtra(DepositReq depositReq) { - ExpandExtra extra = new ExpandExtra(); - List<ProductInfo> productInfos = new ArrayList<>(); - ProductInfo productInfo = new ProductInfo(); - productInfo.setOrderAmount(depositReq.getOrderAmount()); - productInfo.setOrderNo(depositReq.getOrderNo()); - productInfo.setProductCount(depositReq.getProductCount()); - productInfo.setProductName(depositReq.getProductName()); - productInfos.add(productInfo); - extra.setProductInfos(productInfos); - extra.setNotify_url(depositReq.getNotifyUrl()); - return extra; - } - - /** - * 支付充值拓展字段封装 - * - * @return - */ - public static Extra withdrawalExtra(WithdrawalReq withdrawalReq) { - ExpandExtra extra = new ExpandExtra(); - extra.setNotify_url(withdrawalReq.getNotifyUrl()); - return extra; - } - - /** - * 消费转账拓展字段封装 - * - * @return - */ - public static Extra paymentExtra(PaymentReq paymentReq) { - ExpandExtra extra = new ExpandExtra(); - List<ProductInfo> productInfos = new ArrayList<>(); - ProductInfo productInfo = new ProductInfo(); - productInfo.setOrderAmount(paymentReq.getOrderAmount()); - productInfo.setOrderNo(paymentReq.getOrderNo()); - productInfo.setProductCount(paymentReq.getProductCount()); - productInfo.setProductName(paymentReq.getProductName()); - productInfos.add(productInfo); - extra.setProductInfos(productInfos); - extra.setNotify_url(paymentReq.getNotifyUrl()); - return extra; - } - - /** - * 分账拓展字段封装 - * - * @return - */ - public static Extra allocationExtra(AllocationReq allocationReq) { - ExpandExtra extra = new ExpandExtra(); - List<ProductInfo> productInfos = new ArrayList<>(); - ProductInfo productInfo = new ProductInfo(); - productInfo.setOrderAmount(allocationReq.getOrderAmount()); - productInfo.setOrderNo(allocationReq.getOrderNo()); - productInfo.setProductCount(allocationReq.getProductCount()); - productInfo.setProductName(allocationReq.getProductName()); - productInfos.add(productInfo); - extra.setProductInfos(productInfos); - extra.setNotify_url(allocationReq.getNotifyUrl()); - return extra; - } - - public static Map<String, Object> metadata() { - Map<String, Object> metadata = new HashMap<>(); - metadata.put("custom_key", "这里平台可以自定义参数"); - return metadata; - } -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java deleted file mode 100644 index 9cecc03..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "修改交易授权码Req") -public class AcctPasswordReq implements Serializable { - - @ApiModelProperty(value = "二级商户或个人用户的电子账簿 ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "原交易授权码",required = true) - private String originalPassword; - - @ApiModelProperty(value = "新交易授权码",required = true) - private String newPassword; - - @ApiModelProperty(value = "验证码",required = true) - private String code; - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java deleted file mode 100644 index 35a5c5c..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "分账创建Req") -public class AllocationReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "付款电子账簿ID",required = true) - private String payBalanceAcctId; - - @ApiModelProperty(value = "收款电子账簿ID",required = true) - private String recvBalanceAcctId; - - @ApiModelProperty(value = "金额",required = true) - private Integer amount; - - @ApiModelProperty(value = "交易授权码",required = true) - private String password; - - @ApiModelProperty(value = "订单编号") - private String orderNo; - - @ApiModelProperty(value = "订单金额") - private Long orderAmount; - - @ApiModelProperty(value = "商品名称") - private String productName; - - @ApiModelProperty(value = "商品数量") - private Integer productCount; - - @ApiModelProperty(value = "交易结果通知") - private String notifyUrl; - - - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java deleted file mode 100644 index f025261..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "冻结/解冻电子帐簿Req") -public class BalanceAcctFreezeReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outRequestNo; - - @ApiModelProperty(value = "电子账簿 ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "个人用户ID true: 冻结 false: 解冻",required = true) - private Boolean freeze; - - @ApiModelProperty(value = "备注信息") - private String remark; - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java deleted file mode 100644 index 0ad0a17..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "电子帐簿Req") -public class BalanceAcctReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outRequestNo; - - @ApiModelProperty(value = "二级商户ID 和个人用户ID 二选一填写") - private String mchId; - - @ApiModelProperty(value = "个人用户ID 和二级商户ID 二选一填写") - private String cusId; - - @ApiModelProperty(value = "交易授权码",required = true) - private String password; - - @ApiModelProperty(value = "备注信息") - private String remark; - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java deleted file mode 100644 index ad5405b..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "支付充值Req") -public class DepositReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "总金额;单位分;discount_amount存在时该字段必传") - private Integer totalAmount; - - @ApiModelProperty(value = "支付金额 单位为分,充值订单用户实际支付金额,不含平台优惠金额",required = true) - private Integer amount; - - @ApiModelProperty(value = "平台优惠金额") - private Integer discountAmount; - - @ApiModelProperty(value = "电子账簿ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "记账类型 枚举值:1. 充值 2. 消费",required = true) - private String depositType; - - @ApiModelProperty(value = "支付类型",required = true) - private String paymentType; - - @ApiModelProperty(value = "支付通道订单号",required = true) - private String paymentTradeNo; - - @ApiModelProperty(value = "支付成功时间",required = true) - private String paymentSucceededAt; - - @ApiModelProperty(value = "订单编号") - private String orderNo; - - @ApiModelProperty(value = "订单金额") - private Long orderAmount; - - @ApiModelProperty(value = "商品名称") - private String productName; - - @ApiModelProperty(value = "商品数量") - private Integer productCount; - - @ApiModelProperty(value = "交易结果通知地址") - private String notifyUrl; - - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java deleted file mode 100644 index 752a7b2..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "消费转账Req") -public class PaymentReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "金额 单位为分,要求不能带小数点",required = true) - private String amount; - - @ApiModelProperty(value = "付款电子账簿 ID",required = true) - private String payBalanceAcctId; - - @ApiModelProperty(value = "金额 单位为分,要求不能带小数点",required = true) - private String recvBalanceAcctId; - - @ApiModelProperty(value = "交易授权码",required = true) - private String password; - - @ApiModelProperty(value = "订单编号") - private String orderNo; - - @ApiModelProperty(value = "订单金额") - private Long orderAmount; - - @ApiModelProperty(value = "商品名称") - private String productName; - - @ApiModelProperty(value = "商品数量") - private Integer productCount; - - @ApiModelProperty(value = "交易结果通知") - private String notifyUrl; - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java deleted file mode 100644 index 9a1b9d1..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import com.stylefeng.guns.modular.system.model.UserBankAccount; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "绑定账户Req") -public class UserBankAccountReq extends UserBankAccount { - - @ApiModelProperty(value = "个人用户ID 和 二级商户 ID 选一填写") - private String cusId; - - @ApiModelProperty(value = "二级商户ID 和 个人用户 ID 选一填写") - private String mchId; - - @ApiModelProperty(value = "验证码",required = true) - private String code; - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java deleted file mode 100644 index 7ed22e2..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; -@Data -@ToString -@ApiModel(value = "提现创建Req") -public class WithdrawalReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "金额 单位分",required = true) - private Integer amount; - - @ApiModelProperty(value = "平台手续费 单位分 仅提现到个人非绑定账户时必填") - private Integer serviceFee; - - @ApiModelProperty(value = "电子账簿 ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "提现目标银行账号",required = true) - private String bankAcctNo; - - @ApiModelProperty(value = "目标银行账号类型 提现至非绑定账户时必填枚举值:1 - 对私银行卡2 - 对公银行账户") - private String bankAcctType; - - @ApiModelProperty(value = "开户银行联行号 提现至非绑定账户时必填") - private String bankBranchCode; - - @ApiModelProperty(value = "开户银行编号 提现至非绑定账户时必填") - private String bankCode; - - @ApiModelProperty(value = "开户名称 提现至非绑定账户时必填") - private String name; - - @ApiModelProperty(value = "手机号 仅提现到个人非绑定账户时必填") - private String mobileNumber; - - @ApiModelProperty(value = "交易授权码 提现至非绑定账户时必填") - private String password; - - @ApiModelProperty(value = "交易结果通知") - private String notifyUrl; - - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java index ba65f0d..dc5dee9 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java @@ -16,12 +16,11 @@ import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; -import com.stylefeng.guns.modular.system.util.RedisUtil; -import com.stylefeng.guns.modular.system.util.ResultUtil; 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 +48,9 @@ @Autowired private IOrderCrossCityService orderCrossCityService; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @@ -77,7 +76,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); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index d2390d8..157d3b2 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -3,7 +3,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; @@ -11,20 +10,20 @@ import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper; import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper; import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper; -import com.stylefeng.guns.modular.crossCity.model.Line; import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.ILineService; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper; -import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper; -import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; 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.specialTrain.server.impl.OrderPrivateCarServiceImpl; -import com.stylefeng.guns.modular.system.dao.*; +import com.stylefeng.guns.modular.system.dao.RegionMapper; +import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper; +import com.stylefeng.guns.modular.system.dao.SysIntegralMapper; +import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; @@ -35,7 +34,6 @@ import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; -import com.stylefeng.guns.modular.taxi.model.TransactionDetails; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; @@ -43,6 +41,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -61,8 +60,6 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; - -import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds; @Service @@ -143,9 +140,9 @@ @Autowired private GDFalconUtil gdFalconUtil; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Autowired private ICancleOrderService cancleOrderService; @@ -1424,8 +1421,8 @@ map.put("startCity", geocode.get("city")); geocode = gdMapGeocodingUtil.geocode(map.get("endLon").toString(), map.get("endLat").toString()); map.put("endCity", geocode.get("city")); - - String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId")); + + String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1); map.put("orderType", 3); return map; @@ -1490,7 +1487,7 @@ CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId()); if(null != query){ if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); String appletsOpenId = null; if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = JSON.parseObject(value); @@ -2074,7 +2071,7 @@ public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception { OrderCrossCity orderCrossCity = this.selectById(orderId); //计算预计距离和剩余时间 - String value = redisUtil.getValue("DRIVER" + String.valueOf(orderCrossCity.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderCrossCity.getDriverId())); if(null == value || "".equals(value)){ System.err.println("司机没有上传位置信息"); @@ -2374,7 +2371,7 @@ @Override public void run() { List<Map<String, Integer>> datas = list; - 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); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index ed0fbc8..1400a46 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -9,7 +9,6 @@ import com.stylefeng.guns.modular.account.controller.AppOrderController; import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; -import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread; @@ -17,7 +16,6 @@ import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsSpreadService; 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.*; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; @@ -28,13 +26,11 @@ import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; -import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; -import com.unionpay.upyzt.exception.UpyztException; -import org.springframework.beans.BeanUtils; 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.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -104,9 +100,9 @@ @Autowired private IOrderLogisticsSpreadService orderLogisticsSpreadService; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Resource private RegionMapper regionMapper; @@ -566,7 +562,7 @@ try { Integer id = orderLogistics.getId(); orderIds.add(orderLogistics.getId());//添加记录,防止调用接口重复提醒无人接单 - 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); @@ -695,7 +691,6 @@ } @Override - @Transactional(rollbackFor = UpyztException.class,propagation = Propagation.REQUIRES_NEW) public ResultUtil payLogisticsOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception { OrderLogistics orderLogistics = this.selectById(orderId); if(orderLogistics.getState() != 7){ diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index e4cff59..193db93 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -3,7 +3,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.aliyun.oss.ServiceException; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; @@ -12,7 +11,6 @@ import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl; -import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; @@ -28,9 +26,9 @@ import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; -import javafx.concurrent.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -135,9 +133,9 @@ @Autowired private IUserActivityRedenvelopeService userActivityRedenvelopeService; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Autowired private GDFalconUtil gdFalconUtil; @@ -431,7 +429,7 @@ JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); //判断时间 if(travelTime.getTime()>=order.getTravelTime().getTime()-jsonObject.getInteger("num5")*60000L && travelTime.getTime()<=order.getTravelTime().getTime()+jsonObject.getInteger("num6")*60000L){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(order.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId())); // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); @@ -683,7 +681,7 @@ JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); //判断时间 if(travelTime.getTime()>=order.getTravelTime().getTime()-jsonObject.getInteger("num5")*60000L && travelTime.getTime()<=order.getTravelTime().getTime()+jsonObject.getInteger("num6")*60000L){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(order.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId())); // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); @@ -842,7 +840,7 @@ JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); //判断时间 if(orderPrivateCar.getTravelTime().getTime()>=order.getTravelTime().getTime()-jsonObject.getInteger("num5")*60000L && orderPrivateCar.getTravelTime().getTime()<=order.getTravelTime().getTime()+jsonObject.getInteger("num6")*60000L){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(order.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId())); // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); // TODO: 2023/11/4 已改成计算直线距离 @@ -1072,7 +1070,7 @@ CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); if(null != query){ if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); String appletsOpenId = null; if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = JSON.parseObject(value); @@ -1138,151 +1136,107 @@ return resultUtil; } - - /** - * 推送抢单数据 - * @param orderPrivateCar - * @throws Exception - */ - public void pushOrder(OrderPrivateCar orderPrivateCar) throws Exception{ - new Thread(new Runnable() { - @Override - public void run() { - try { - Integer id = orderPrivateCar.getId(); - Integer orderType = orderPrivateCar.getRideType()==1?1:orderPrivateCar.getRideType()==2?9:8; - orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单 - String vehicle = redisUtil.getValue("VEHICLE"); - List<Integer> integers = new ArrayList<>(); - if(ToolUtil.isNotEmpty(vehicle)){ - integers = JSON.parseArray(vehicle).toJavaList(Integer.class); - } - Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司 - List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数 - for(int i = 1; i <= querys.size(); i++){ - OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id); - if (null == orderPrivateCar || orderPrivateCar.getState() > 1) { - break; - } - PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0); - System.out.println("pushOrder:"+pushOrder); - int i2 = pushOrder.getPushTime() / 10; - if(i2==0){ - i2=1; - } - for (int i1 = 0; i1 < i2 ; i1++) { - if (orderPrivateCar.getState() > 1) { - break; - } - //获取空闲司机 - List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 - if (list.size() > 0) { - double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 - int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) - lastIndex = lastIndex == 0 ? list.size() : lastIndex; - list = list.subList(0, lastIndex);//获取空闲司机中占比数据 - for (Driver driver : list) {//开始进行推送 - boolean bo = false; - for (Integer integer : integers) { - if (integer.compareTo(driver.getId()) == 0) { - bo = true; - break; - } - } - if (bo) { - continue; - } - pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime()); - } - } - Thread.sleep(10000);//设置等待时间 - Integer state = orderPrivateCar.getState(); - if (state > 1) { - orderIds.remove(orderPrivateCar.getId()); - return; - } - if (i == querys.size() && state == 1) { - pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); - orderIds.remove(orderPrivateCar.getId()); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - }).start(); + @Override + public Map<String, Object> queryOrderInfo(Integer uid, Integer orderId) throws Exception { + Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId); + if(null == map){ + OrderTaxi orderTaxi = orderTaxiService.selectOne(new EntityWrapper<OrderTaxi>() + .eq("userId", uid) + .eq("isDelete", 1) + .in("state", Arrays.asList(2, 3, 4, 5, 6, 7)) + ); + return orderTaxiService.queryOrderInfo(orderTaxi.getId()); + } + if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用 + OrderPrivateCar orderPrivateCar = this.selectById(orderId); + orderPrivateCar.setReassignNotice(0); + this.updateById(orderPrivateCar); + } + if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){ + map.put("state", map.get("oldState")); + } + if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){ + map.put("redPacketMoney", null); + map.put("couponMoney", null); + } + + String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); + map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1); + map.put("orderType", 1); + return map; } + /** + * 获取服务中的订单数据 + * @param uid + * @return + * @throws Exception + */ + @Override + public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception { + OrderPrivateCar orderPrivateCar = this.selectById(orderId); + if(null == orderPrivateCar){ + return orderTaxiService.queryOrderServer(orderId, uid); + } + //计算预计距离和剩余时间 + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); + if(null == value || "".equals(value)){ + System.err.println("司机没有上传位置信息"); - - public void pushOrder(Integer id, Integer rideType, Integer serverCarModelId, Double startLon, Double startLat) throws Exception{ - new Thread(new Runnable() { - @Override - public void run() { - try { - Integer orderType = rideType==1?1:rideType==2?9:8; - orderIds.add(id);//添加记录,防止调用接口重复提醒无人接单 - String vehicle = redisUtil.getValue("VEHICLE"); - List<Integer> integers = new ArrayList<>(); - if(ToolUtil.isNotEmpty(vehicle)){ - integers = JSON.parseArray(vehicle).toJavaList(Integer.class); - } - Company query = companyCityService.query(startLon.toString(), startLat.toString());//获取起点所属分公司 - List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数 - for(int i = 1; i <= querys.size(); i++){ - OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id); - if (null == orderPrivateCar || orderPrivateCar.getState() > 1) { - break; - } - PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0); - System.out.println("pushOrder:"+pushOrder); - int i2 = pushOrder.getPushTime() / 10; - if(i2==0){ - i2=1; - } - for (int i1 = 0; i1 < i2 ; i1++) { - if (orderPrivateCar.getState() > 1) { - break; - } - //获取空闲司机 - List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机 - if (list.size() > 0) { - double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 - int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) - lastIndex = lastIndex == 0 ? list.size() : lastIndex; - list = list.subList(0, lastIndex);//获取空闲司机中占比数据 - for (Driver driver : list) {//开始进行推送 - boolean bo = false; - for (Integer integer : integers) { - if (integer.compareTo(driver.getId()) == 0) { - bo = true; - break; - } - } - if (bo) { - continue; - } - pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime()); - } - } - Thread.sleep(10000);//设置等待时间 - Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState(); - if (state > 1) { - orderIds.remove(orderPrivateCar.getId()); - break; - } - if (i == querys.size()) { - pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); - orderIds.remove(orderPrivateCar.getId()); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } + //调用获取轨迹中的数据 + List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2); + if(list.size() > 0){ + Map<String, Object> map = list.get(list.size() - 1); + value = map.get("lon") + "," + map.get("lat"); } - }).start(); + + } + + OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); + orderServerWarpper.setOrderId(orderPrivateCar.getId()); + orderServerWarpper.setOrderType(1); + orderServerWarpper.setState(orderPrivateCar.getState()); + orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0"); + orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0"); + orderServerWarpper.setReassignNotice(orderPrivateCar.getReassignNotice()); + if(orderPrivateCar.getState() == 2 || orderPrivateCar.getState() == 3){//前往预约地 + // TODO: 2023/11/4 无法修改 + Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), 1); + String d = "0"; + String t = "0"; + if(null == distance){ + System.err.println("查询距离出错了"); + }else{ + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + ""; + } + orderServerWarpper.setReservationMileage(d); + orderServerWarpper.setReservationTime(t); + orderServerWarpper.setServedMileage("0"); + orderServerWarpper.setServedTime("0"); + orderServerWarpper.setLaveMileage("0"); + orderServerWarpper.setLaveTime("0"); + } + if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中 + // TODO: 2023/11/4 无法修改 + Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), 1); + String d = "0"; + String t = "0"; + if(null == distance){ + System.err.println("查询距离出错了"); + }else{ + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + ""; + } + orderServerWarpper.setReservationMileage("0"); + orderServerWarpper.setReservationTime("0"); + orderServerWarpper.setServedMileage(String.valueOf((null == orderPrivateCar.getMileage() ? 0 : orderPrivateCar.getMileage()) / 1000)); + orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000).intValue() + ""); + orderServerWarpper.setLaveMileage(d); + orderServerWarpper.setLaveTime(t); + } + + return orderServerWarpper; } @@ -2448,34 +2402,73 @@ return orderPrivateCarMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); } - @Override - public Map<String, Object> queryOrderInfo(Integer uid, Integer orderId) throws Exception { - Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId); - if(null == map){ - OrderTaxi orderTaxi = orderTaxiService.selectOne(new EntityWrapper<OrderTaxi>() - .eq("userId", uid) - .eq("isDelete", 1) - .in("state", Arrays.asList(2, 3, 4, 5, 6, 7)) - ); - return orderTaxiService.queryOrderInfo(orderTaxi.getId()); - } - if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用 - OrderPrivateCar orderPrivateCar = this.selectById(orderId); - orderPrivateCar.setReassignNotice(0); - this.updateById(orderPrivateCar); - } - if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){ - map.put("state", map.get("oldState")); - } - if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){ - map.put("redPacketMoney", null); - map.put("couponMoney", null); - } - - String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId")); - map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1); - map.put("orderType", 1); - return map; + public void pushOrder(Integer id, Integer rideType, Integer serverCarModelId, Double startLon, Double startLat) throws Exception{ + new Thread(new Runnable() { + @Override + public void run() { + try { + Integer orderType = rideType==1?1:rideType==2?9:8; + orderIds.add(id);//添加记录,防止调用接口重复提醒无人接单 + String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); + List<Integer> integers = new ArrayList<>(); + if(ToolUtil.isNotEmpty(vehicle)){ + integers = JSON.parseArray(vehicle).toJavaList(Integer.class); + } + Company query = companyCityService.query(startLon.toString(), startLat.toString());//获取起点所属分公司 + List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数 + for(int i = 1; i <= querys.size(); i++){ + OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id); + if (null == orderPrivateCar || orderPrivateCar.getState() > 1) { + break; + } + PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0); + System.out.println("pushOrder:"+pushOrder); + int i2 = pushOrder.getPushTime() / 10; + if(i2==0){ + i2=1; + } + for (int i1 = 0; i1 < i2 ; i1++) { + if (orderPrivateCar.getState() > 1) { + break; + } + //获取空闲司机 + List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机 + if (list.size() > 0) { + double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 + int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) + lastIndex = lastIndex == 0 ? list.size() : lastIndex; + list = list.subList(0, lastIndex);//获取空闲司机中占比数据 + for (Driver driver : list) {//开始进行推送 + boolean bo = false; + for (Integer integer : integers) { + if (integer.compareTo(driver.getId()) == 0) { + bo = true; + break; + } + } + if (bo) { + continue; + } + pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime()); + } + } + Thread.sleep(10000);//设置等待时间 + Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState(); + if (state > 1) { + orderIds.remove(orderPrivateCar.getId()); + break; + } + if (i == querys.size()) { + pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); + orderIds.remove(orderPrivateCar.getId()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); } @Override @@ -2483,79 +2476,79 @@ return orderPrivateCarMapper.queryMyTravelRecord(uid); } - - /** - * 获取服务中的订单数据 - * @param uid - * @return + * 推送抢单数据 + * @param orderPrivateCar * @throws Exception */ - @Override - public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception { - OrderPrivateCar orderPrivateCar = this.selectById(orderId); - if(null == orderPrivateCar){ - return orderTaxiService.queryOrderServer(orderId, uid); - } - //计算预计距离和剩余时间 - String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); - if(null == value || "".equals(value)){ - System.err.println("司机没有上传位置信息"); - - //调用获取轨迹中的数据 - List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2); - if(list.size() > 0){ - Map<String, Object> map = list.get(list.size() - 1); - value = map.get("lon") + "," + map.get("lat"); + public void pushOrder(OrderPrivateCar orderPrivateCar) throws Exception{ + new Thread(new Runnable() { + @Override + public void run() { + try { + Integer id = orderPrivateCar.getId(); + Integer orderType = orderPrivateCar.getRideType()==1?1:orderPrivateCar.getRideType()==2?9:8; + orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单 + String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); + List<Integer> integers = new ArrayList<>(); + if(ToolUtil.isNotEmpty(vehicle)){ + integers = JSON.parseArray(vehicle).toJavaList(Integer.class); + } + Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司 + List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数 + for(int i = 1; i <= querys.size(); i++){ + OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id); + if (null == orderPrivateCar || orderPrivateCar.getState() > 1) { + break; + } + PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0); + System.out.println("pushOrder:"+pushOrder); + int i2 = pushOrder.getPushTime() / 10; + if(i2==0){ + i2=1; + } + for (int i1 = 0; i1 < i2 ; i1++) { + if (orderPrivateCar.getState() > 1) { + break; + } + //获取空闲司机 + List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 + if (list.size() > 0) { + double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 + int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) + lastIndex = lastIndex == 0 ? list.size() : lastIndex; + list = list.subList(0, lastIndex);//获取空闲司机中占比数据 + for (Driver driver : list) {//开始进行推送 + boolean bo = false; + for (Integer integer : integers) { + if (integer.compareTo(driver.getId()) == 0) { + bo = true; + break; + } + } + if (bo) { + continue; + } + pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime()); + } + } + Thread.sleep(10000);//设置等待时间 + Integer state = orderPrivateCar.getState(); + if (state > 1) { + orderIds.remove(orderPrivateCar.getId()); + return; + } + if (i == querys.size() && state == 1) { + pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); + orderIds.remove(orderPrivateCar.getId()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } } - - } - - OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); - orderServerWarpper.setOrderId(orderPrivateCar.getId()); - orderServerWarpper.setOrderType(1); - orderServerWarpper.setState(orderPrivateCar.getState()); - orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0"); - orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0"); - orderServerWarpper.setReassignNotice(orderPrivateCar.getReassignNotice()); - if(orderPrivateCar.getState() == 2 || orderPrivateCar.getState() == 3){//前往预约地 - // TODO: 2023/11/4 无法修改 - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), 1); - String d = "0"; - String t = "0"; - if(null == distance){ - System.err.println("查询距离出错了"); - }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + ""; - } - orderServerWarpper.setReservationMileage(d); - orderServerWarpper.setReservationTime(t); - orderServerWarpper.setServedMileage("0"); - orderServerWarpper.setServedTime("0"); - orderServerWarpper.setLaveMileage("0"); - orderServerWarpper.setLaveTime("0"); - } - if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中 - // TODO: 2023/11/4 无法修改 - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), 1); - String d = "0"; - String t = "0"; - if(null == distance){ - System.err.println("查询距离出错了"); - }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + ""; - } - orderServerWarpper.setReservationMileage("0"); - orderServerWarpper.setReservationTime("0"); - orderServerWarpper.setServedMileage(String.valueOf((null == orderPrivateCar.getMileage() ? 0 : orderPrivateCar.getMileage()) / 1000)); - orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000).intValue() + ""); - orderServerWarpper.setLaveMileage(d); - orderServerWarpper.setLaveTime(t); - } - - return orderServerWarpper; + }).start(); } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java index 6284548..1c98b81 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java @@ -3,7 +3,6 @@ import com.baomidou.mybatisplus.service.IService; import com.stylefeng.guns.core.datascope.DataScope; import com.stylefeng.guns.modular.system.model.User; -import com.unionpay.upyzt.resp.MediaResp; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index ed6484a..904d6e7 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -3,16 +3,15 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.modular.system.dao.DriverMapper; import com.stylefeng.guns.modular.system.dao.DriverServiceMapper; -import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.DriverService; import com.stylefeng.guns.modular.system.service.ICompanyCityService; import com.stylefeng.guns.modular.system.service.IDriverService; 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.warpper.BaseWarpper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -28,9 +27,9 @@ @Resource private DriverServiceMapper driverServiceMapper; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Autowired private GDMapElectricFenceUtil gdMapElectricFenceUtil; @@ -56,7 +55,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); @@ -85,7 +84,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); @@ -102,7 +101,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver1(type, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java index b2fe1fa..f6f2dea 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java @@ -3,20 +3,17 @@ import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.service.INettyService; -import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.EndPushWarpper; import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper; -import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper; 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.math.BigDecimal; import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.List; @Service @@ -51,11 +48,10 @@ } return ResultUtil.success(endPushWarpper); } - - - - @Resource - private RedisUtil redisUtil; + + + @Resource + private RedisTemplate redisTemplate; /** * 获取服务中的订单数据 @@ -82,19 +78,19 @@ //从redis中拿取最后的距离参数 - String value = redisUtil.getValue("DISTANCE:"+orderServerWarpper.getState()+":"+ orderId); + String value = (String) redisTemplate.opsForValue().get("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId); if (value==null){ - redisUtil.setStrValue("DISTANCE:" + orderId,reservationMileage); + redisTemplate.opsForValue().set("DISTANCE:" + orderId, reservationMileage); String s = new BigDecimal(reservationMileage).setScale(2, RoundingMode.HALF_UP).toString(); orderServerWarpper.setReservationMileage(s); }else { //最近的一次距离 - String recent = redisUtil.getValue("DISTANCE:"+orderServerWarpper.getState()+":"+orderId); - BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP); + String recent = (String) redisTemplate.opsForValue().get("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId); + BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP); BigDecimal bigDecimal = new BigDecimal(reservationMileage).setScale(2, RoundingMode.HALF_UP); if (bigDecimal.compareTo(recentDecimal)<0){ - orderServerWarpper.setReservationMileage(bigDecimal.toString()); - redisUtil.setStrValue("DISTANCE:" +orderServerWarpper.getState()+":"+ orderId,reservationMileage); + orderServerWarpper.setReservationMileage(bigDecimal.toString()); + redisTemplate.opsForValue().set("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId, reservationMileage); }else { orderServerWarpper.setReservationMileage(recentDecimal.toString()); } @@ -103,19 +99,19 @@ } String reservationTime = orderServerWarpper.getReservationTime(); if (reservationTime!=null){ - String value = redisUtil.getValue("TIME:"+orderServerWarpper.getState()+":"+ orderId); + String value = (String) redisTemplate.opsForValue().get("TIME:" + orderServerWarpper.getState() + ":" + orderId); if (value==null){ - redisUtil.setStrValue("TIME:" + orderId,reservationTime); + redisTemplate.opsForValue().set("TIME:" + orderId, reservationTime); String s = new BigDecimal(reservationTime).setScale(2, RoundingMode.HALF_UP).toString(); orderServerWarpper.setReservationTime(s); }else { //最近的一次距离 - String recent = redisUtil.getValue("TIME:"+orderServerWarpper.getState()+":"+orderId); - BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP); + String recent = (String) redisTemplate.opsForValue().get("TIME:" + orderServerWarpper.getState() + ":" + orderId); + BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP); BigDecimal bigDecimal = new BigDecimal(reservationTime).setScale(2, RoundingMode.HALF_UP); if (bigDecimal.compareTo(recentDecimal)<0){ - orderServerWarpper.setReservationTime(bigDecimal.toString()); - redisUtil.setStrValue("TIME:" +orderServerWarpper.getState()+":"+ orderId,reservationTime); + orderServerWarpper.setReservationTime(bigDecimal.toString()); + redisTemplate.opsForValue().set("TIME:" + orderServerWarpper.getState() + ":" + orderId, reservationTime); }else { orderServerWarpper.setReservationTime(recentDecimal.toString()); } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java index 09d779c..403529c 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java @@ -16,6 +16,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.qianyuntong.SMSUtil; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; @@ -28,8 +29,8 @@ 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 org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.crypto.Cipher; @@ -44,6 +45,7 @@ import java.security.spec.AlgorithmParameterSpec; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -56,9 +58,9 @@ @Resource private UserActivityInviteMapper userActivityInviteMapper; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Autowired private ALiSendSms aLiSendSms; @@ -154,16 +156,17 @@ 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)){ - System.err.println(message); - return ResultUtil.error(message); - } +// String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}"); +// JSONObject jsonObject = JSON.parseObject(sData); +// String message = jsonObject.getString("Message"); +// if(!"OK".equals(message)){ +// System.err.println(message); +// return ResultUtil.error(message); +// } + SMSUtil.sendVerifyCode(phone); String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"; //发送验证码短信 - redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期 + redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期 System.out.println("【" + phone + "】" + sms); return ResultUtil.success(); } @@ -178,7 +181,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; } @@ -513,7 +516,7 @@ } if(type == 2){//小程序登录 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); JSONObject jsonObject = null; if(ToolUtil.isNotEmpty(value)){ jsonObject = JSON.parseObject(value); @@ -521,7 +524,7 @@ jsonObject = new JSONObject(); } jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId()); - redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString()); + redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString()); } //调用单点登录的逻辑 @@ -650,7 +653,7 @@ } if(type == 2){//小程序登录 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); JSONObject jsonObject = null; if(ToolUtil.isNotEmpty(value)){ jsonObject = JSON.parseObject(value); @@ -658,7 +661,7 @@ jsonObject = new JSONObject(); } jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId()); - redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString()); + redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString()); } //调用单点登录的逻辑 @@ -796,7 +799,7 @@ this.updateById(userInfo1); if(ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")){//小程序登录后绑定手机号码 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); JSONObject jsonObject = null; if(ToolUtil.isNotEmpty(value)){ jsonObject = JSON.parseObject(value); @@ -805,7 +808,7 @@ jsonObject = new JSONObject(); } jsonObject.put(userInfo1.getId().toString(), userInfo.getAppletsOpenId()); - redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString()); + redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString()); } @@ -871,7 +874,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; @@ -931,7 +934,7 @@ return ResultUtil.error("支付金额必须大于0元"); } if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); String appletsOpenId = null; if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = JSON.parseObject(value); @@ -1150,7 +1153,7 @@ String openid = map.get("openid"); String unionid = map.get("unionid"); //将当前小程序openid存储到缓存中用后面的支付时使用 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); JSONObject jsonObject = null; if(ToolUtil.isNotEmpty(value)){ jsonObject = JSON.parseObject(value); @@ -1158,7 +1161,7 @@ jsonObject = new JSONObject(); } jsonObject.put(userId.toString(), openid); - redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString()); + redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString()); return ResultUtil.success(); } @@ -1348,33 +1351,22 @@ return "JYX" + String.valueOf(num).substring(1); } - /** - * 获取token - * @param userInfo - * @param password - * @return + * 单点登录 + * @param id */ - private String getToken(UserInfo userInfo, String password,String type) throws Exception{ + private void singlePointLogin(Integer id,String type) throws Exception{ if(ToolUtil.isEmpty(type))type="APP"; - //封装请求账号密码为shiro可验证的token - UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userInfo.getPhone(), password.toCharArray()); - String credentials = userInfo.getPassWord(); - ByteSource credentialsSalt = new Md5Hash(salt); - SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( - new ShiroUser(), credentials, credentialsSalt, ""); - - //校验用户账号密码 - HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); - md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); - md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations); - boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( - usernamePasswordToken, simpleAuthenticationInfo); - String s = JwtTokenUtil.generateToken(String.valueOf(userInfo.getId())); - redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 180 * 24 * 60 * 60); - redisUtil.setStrValue("USER_"+type+"_" + userInfo.getPhone(), s.substring(s.length() - 32)); - redisUtil.setStrValue("USER_"+type +"_"+ userInfo.getId(), s); - return s; + //开始验证当前账号是否在别处登录 + String value = (String) redisTemplate.opsForValue().get("USER_" + type + "_" + id); + if(ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线 + //开始清除redis中无效的数据 + UserInfo userInfo = userInfoMapper.selectById(id); + String key = (String) redisTemplate.opsForValue().get("USER_" + type + "_" + userInfo.getPhone()); + redisTemplate.delete(key);//删除个人信息数据 + redisTemplate.delete("USER_" + type + "_" + userInfo.getPhone());//删除后台冻结相关缓存 + redisTemplate.delete("USER_" + type + "_" + id);//清除存储的token + } } @@ -1438,23 +1430,32 @@ } } - /** - * 单点登录 - * @param id + * 获取token + * @param userInfo + * @param password + * @return */ - private void singlePointLogin(Integer id,String type) throws Exception{ + private String getToken(UserInfo userInfo, String password,String type) throws Exception{ if(ToolUtil.isEmpty(type))type="APP"; - //开始验证当前账号是否在别处登录 - String value = redisUtil.getValue("USER_"+type+"_" + id); - if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线 - //开始清除redis中无效的数据 - UserInfo userInfo = userInfoMapper.selectById(id); - String key = redisUtil.getValue("USER_"+type+"_" + userInfo.getPhone()); - redisUtil.remove(key);//删除个人信息数据 - redisUtil.remove("USER_"+type+"_" + userInfo.getPhone());//删除后台冻结相关缓存 - redisUtil.remove("USER_"+type+"_" + id);//清除存储的token - } + //封装请求账号密码为shiro可验证的token + UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userInfo.getPhone(), password.toCharArray()); + String credentials = userInfo.getPassWord(); + ByteSource credentialsSalt = new Md5Hash(salt); + SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( + new ShiroUser(), credentials, credentialsSalt, ""); + + //校验用户账号密码 + HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); + md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); + md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations); + boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( + usernamePasswordToken, simpleAuthenticationInfo); + String s = JwtTokenUtil.generateToken(String.valueOf(userInfo.getId())); + redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 180, TimeUnit.DAYS); + redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getPhone(), s.substring(s.length() - 32)); + redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getId(), s); + return s; } @Override diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java index 9ce6cff..94d1a6b 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; @@ -16,7 +15,6 @@ import com.stylefeng.guns.modular.system.dao.UserMerchantCouponMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; -import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.UUIDUtil; import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper; @@ -25,6 +23,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.stereotype.Service; import java.util.*; @@ -62,9 +61,9 @@ @Autowired private IUserInfoService userInfoService; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @@ -238,7 +237,7 @@ @Override public synchronized List<MerchantCouponListWarpper> getMerchantCoupon(Integer uid) throws Exception { UserInfo userInfo = userInfoService.selectById(uid); - String value = redisUtil.getValue("merchantVoucher"); + String value = (String) redisTemplate.opsForValue().get("merchantVoucher"); List<MerchantCouponListWarpper> listWarppers = new ArrayList<>(); if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = JSON.parseObject(value); @@ -247,7 +246,7 @@ listWarppers = jsonArray.toJavaList(MerchantCouponListWarpper.class); } jsonObject.put(userInfo.getPhone(), new JSONArray()); - redisUtil.setStrValue("merchantVoucher", jsonObject.toJSONString()); + redisTemplate.opsForValue().set("merchantVoucher", jsonObject.toJSONString()); } return listWarppers; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java index 81dd3e4..76702c5 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java +++ b/UserQYTTravel/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", "黔云通"); // 短信模板ID request.putQueryParameter("TemplateCode", templateCode); // 短信模板变量对应的实际值,JSON格式。 diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java index e917145..2873a48 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java @@ -1,8 +1,11 @@ package com.stylefeng.guns.modular.system.util; import com.alibaba.fastjson.JSON; -import com.aliyun.dyplsapi20170525.models.*; -import com.aliyun.teaopenapi.models.*; +import com.aliyun.dyplsapi20170525.models.BindAxbRequest; +import com.aliyun.dyplsapi20170525.models.BindAxbResponse; +import com.aliyun.dyplsapi20170525.models.UnbindSubscriptionRequest; +import com.aliyun.dyplsapi20170525.models.UnbindSubscriptionResponse; +import com.aliyun.teaopenapi.models.Config; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; @@ -16,11 +19,11 @@ @Component public class ChinaMobileUtil { - private String accessKeyId = "LTAI5tCeHnZXREQBcVf3NHLB"; - - private String accessKeySecret = "OEX6AtRb3qOCyp53xOFdDEYgBjzZzS"; - - private String poolKey = "FC100000145494178";//号码池KEY + private String accessKeyId = "111"; + + private String accessKeySecret = "111"; + + private String poolKey = "111";//号码池KEY diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java index 26e63e3..1085e06 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java +++ b/UserQYTTravel/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; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java index a9977ff..55f52f0 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java +++ b/UserQYTTravel/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(); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java index 81d4642..27ba2ba 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java +++ b/UserQYTTravel/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; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java index dca1aa4..d12b3f9 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java @@ -10,6 +10,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; @@ -31,9 +32,9 @@ @Autowired private RestTemplate internalRestTemplate; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Autowired private IOrderTaxiService orderTaxiService; @@ -154,9 +155,9 @@ JSONObject data = new JSONObject(); data.put("id", userId); data.put("type", 1); - String str = redisUtil.getValue(orderId + "_" + orderType); + String str = (String) redisTemplate.opsForValue().get(orderId + "_" + orderType); if(ToolUtil.isEmpty(str)){ - redisUtil.setStrValue(orderId + "_" + orderType, data.toJSONString()); + redisTemplate.opsForValue().set(orderId + "_" + orderType, data.toJSONString()); createTask(orderId, orderType); } } @@ -244,7 +245,7 @@ } //计算预计距离和剩余时间 - String value = redisUtil.getValue("DRIVER" + String.valueOf(driverId)); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driverId)); if(null == value || "".equals(value)){ return; } @@ -303,7 +304,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; @@ -399,7 +400,7 @@ if (null != timer){ timer.cancel(); taskMap.remove(orderId + "_" + orderType); - redisUtil.remove(orderId + "_" + orderType); + redisTemplate.delete(orderId + "_" + orderType); } } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java deleted file mode 100644 index 22f75e6..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.stylefeng.guns.modular.system.util; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.stylefeng.guns.core.util.ToolUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; -import org.springframework.web.client.RestTemplate; -import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisPool; - - -/** - * Redis工具类 - */ -@Component -public class RedisUtil { - - @Autowired - private RestTemplate internalRestTemplate; - - - /** - * 向redis中存储字符串没有过期时间 - * @param key - * @param value - */ - public void setStrValue(String key, String value){ - if(ToolUtil.isNotEmpty(key)){ - //发送验证码短信 - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("key", key); - params.add("value", value); - HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue_", requestEntity, String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - } - - } - - - /** - * 以分钟为单位设置存储值(设置过期时间) - * @param key - * @param value - * @param time 秒 - */ - public void setStrValue(String key, String value, int time){ - if(ToolUtil.isNotEmpty(key)){ - //发送验证码短信 - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); - params.add("key", key); - params.add("value", value); - params.add("time", String.valueOf(time)); - HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue", requestEntity, String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - } - } - - - /** - * 从redis中获取值 - * @param key - * @return - */ - public String getValue(String key){ - if(ToolUtil.isNotEmpty(key)){ - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("key", key); - HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/getValue",requestEntity , String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - return jsonObject.getString("data"); - } - return null; - } - - - /** - * 删除key - * @param key - */ - public String remove(String key){ - if(ToolUtil.isNotEmpty(key)){ - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //将请求头部和参数合成一个请求 - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("key", key); - HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); - String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/remove",requestEntity , String.class); - JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); - if(jsonObject.getIntValue("code") != 200){ - System.err.println("调用redis出错了"); - } - return jsonObject.getString("data"); - } - return null; - } -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index cb8be36..bcec77b 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -1,32 +1,16 @@ package com.stylefeng.guns.modular.system.util; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.controller.AppOrderController; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; -import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; -import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService; -import com.stylefeng.guns.modular.system.service.IUserTaxiCardService; -import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.AllocationResp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; /** @@ -84,36 +68,6 @@ */ @Scheduled(fixedRate = 1000 * 60) public void taskDay(){ - try { - List<Integer> integers = Arrays.asList(8, 9, 10, 12); - // 获取快车的已完成订单 - List<OrderPrivateCar> status = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().in("state", integers)); - for (OrderPrivateCar orderPrivateCar : status) { - chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX(),10000l); - } - - // 获取出租车订单 - List<OrderTaxi> status1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().in("state", integers)); - for (OrderTaxi orderTaxi : status1) { - chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX(),10000l); - } - - // 获取跨城出行订单 - List<OrderCrossCity> status2 = orderCrossCityService.selectList(new EntityWrapper<OrderCrossCity>().eq("state", integers)); - for (OrderCrossCity orderCrossCity : status2) { - chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX(),10000l); - } - - // 获取小件物流订单 - List<OrderLogistics> status3 = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("state", Arrays.asList(6,10))); - for (OrderLogistics orderLogistics : status3) { - chinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindId(),orderLogistics.getTelX(),10000l); - chinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindIdOne(),orderLogistics.getTelXOne(),10000l); - } - - }catch (Exception e){ - e.printStackTrace(); - } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java new file mode 100644 index 0000000..2366416 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java @@ -0,0 +1,207 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +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.*; +import lombok.extern.slf4j.Slf4j; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 企业员工工具类 + * @author zhibing.pu + * @Date 2025/6/6 16:17 + */ +@Slf4j +public class EmployeeUtil { + + + /** + * 企业增加员工 + * @param request + * @return + */ + public static SaveStaffNode saveStaffNode(SaveStaffNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/saveStaffNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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); + log.info("【企业增加员工】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【企业增加员工】请求失败:" + result); + throw new RuntimeException("【企业增加员工】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【企业增加员工】失败:" + object.toJSONString()); + throw new RuntimeException("【企业增加员工】失败:" + object.toJSONString()); + } + SaveStaffNode saveStaffNode = jsonObject.getObject("object", SaveStaffNode.class); + return saveStaffNode; + } + + + /** + * 企业修改员工信息 + * @param request + * @return + */ + public static Boolean editStaffNode(EditStaffNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/editStaffNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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); + log.info("【企业修改员工信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【企业修改员工信息】请求失败:" + result); + throw new RuntimeException("【企业修改员工信息】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【企业修改员工信息】失败:" + object.toJSONString()); + throw new RuntimeException("【企业修改员工信息】失败:" + object.toJSONString()); + } + return true; + } + + + /** + * 企业删除人员 + * @param request + * @return + */ + public static Boolean ecrmDeleteStafNode(DeleteStafNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/ecrmDeleteStafNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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); + log.info("【企业删除人员】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【企业删除人员】请求失败:" + result); + throw new RuntimeException("【企业删除人员】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【企业删除人员】失败:" + object.toJSONString()); + throw new RuntimeException("【企业删除人员】失败:" + object.toJSONString()); + } + return true; + } + + + /** + * 根据员工ID获取人员信息 + * @param request + * @return + */ + public static StaffNodeInfo getStaffNode(GetStaffNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getStaffNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【根据员工ID获取人员信息】请求地址:" + url); + log.info("【根据员工ID获取人员信息】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap); + log.info("【根据员工ID获取人员信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【根据员工ID获取人员信息】请求失败:" + result); + throw new RuntimeException("【根据员工ID获取人员信息】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【根据员工ID获取人员信息】失败:" + object.toJSONString()); + throw new RuntimeException("【根据员工ID获取人员信息】失败:" + object.toJSONString()); + } + StaffNodeInfo staffNodeInfo = object.getObject("data", StaffNodeInfo.class); + return staffNodeInfo; + } +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java new file mode 100644 index 0000000..bdc9694 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java @@ -0,0 +1,252 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +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.*; +import lombok.extern.slf4j.Slf4j; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 企业工具类 + * + * @author zhibing.pu + * @Date 2025/6/6 17:06 + */ +@Slf4j +public class EnterpriseUtil { + + + /** + * 根据社会信用代码判断企业是否已存在 + * + * @param uscc + * @return + */ + public static CheckEnterExist checkEnterExistByEnterIdCardNo(String uscc) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/check_enter_exist_by_enterIdCardNo"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> map = new HashMap<>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + map.put(SystemParameterNames.getAppKey(), appKey); + map.put(SystemParameterNames.getMessage_id(), messageId); + map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + map.put("content", "{\"uscc\":\"" + uscc + "\"}"); + log.info("【根据社会信用代码判断企业是否已存在】请求地址:" + url); + log.info("【根据社会信用代码判断企业是否已存在】请求参数:" + JSON.toJSONString(map)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, map); + log.info("【根据社会信用代码判断企业是否已存在】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【根据社会信用代码判断企业是否已存在】请求失败:" + result); + throw new RuntimeException("【根据社会信用代码判断企业是否已存在】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【根据社会信用代码判断企业是否已存在】失败:" + object.toJSONString()); + throw new RuntimeException("【根据社会信用代码判断企业是否已存在】失败:" + object.toJSONString()); + } + return jsonObject.getObject("object", CheckEnterExist.class); + } + + + /** + * 根据企业名称判断企业是否已存在 + * + * @param enterName + * @return + */ + public static CheckEnterExist checkEnterNameExist(String enterName) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/checkEnterNameExist"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> map = new HashMap<>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + map.put(SystemParameterNames.getAppKey(), appKey); + map.put(SystemParameterNames.getMessage_id(), messageId); + map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + map.put("content", "{\"enterName\":\"" + enterName + "\"}"); + log.info("【根据企业名称判断企业是否已存在】请求地址:" + url); + log.info("【根据企业名称判断企业是否已存在】请求参数:" + JSON.toJSONString(map)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, map); + log.info("【根据企业名称判断企业是否已存在】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【根据企业名称判断企业是否已存在】请求失败:" + result); + throw new RuntimeException("【根据企业名称判断企业是否已存在】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【根据企业名称判断企业是否已存在】失败:" + object.toJSONString()); + throw new RuntimeException("【根据企业名称判断企业是否已存在】失败:" + object.toJSONString()); + } + return jsonObject.getObject("object", CheckEnterExist.class); + } + + + /** + * 查询企业详情 + * + * @param enter_code 企业编号 + * @return + */ + public static EnterpriseInfo getEnterpriseDetail(String enter_code) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getEnterpriseDetail"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> map = new HashMap<>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + map.put(SystemParameterNames.getAppKey(), appKey); + map.put(SystemParameterNames.getMessage_id(), messageId); + map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + map.put("content", "{\"enter_code\":\"" + enter_code + "\"}"); + log.info("【查询企业详情】请求地址:" + url); + log.info("【查询企业详情】请求参数:" + JSON.toJSONString(map)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, map); + log.info("【查询企业详情】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【查询企业详情】请求失败:" + result); + throw new RuntimeException("【查询企业详情】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【查询企业详情】失败:" + object.toJSONString()); + throw new RuntimeException("【查询企业详情】失败:" + object.toJSONString()); + } + EnterpriseInfo enterpriseInfo = jsonObject.getObject("object", EnterpriseInfo.class); + return enterpriseInfo; + } + + + /** + * 修改企业基本信息 + * + * @param request + * @return + */ + public static Boolean modifyEnterpriseInfo(ModifyEnterpriseInfoRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyEnterpriseInfo"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> map = new HashMap<>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + map.put(SystemParameterNames.getAppKey(), appKey); + map.put(SystemParameterNames.getMessage_id(), messageId); + map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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); + log.info("【修改企业基本信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【修改企业基本信息】请求失败:" + result); + return false; + } + return true; + } + + + /** + * 创建企业 + * + * @param request + * @return + */ + public static CreateEnterprise createEnterprise(CreateEnterpriseRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/createEnterprise"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> map = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + map.put(SystemParameterNames.getAppKey(), appKey); + map.put(SystemParameterNames.getMessage_id(), messageId); + map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + map.put("content", new Gson().toJson(request)); + + log.info("【创建企业】请求地址:" + url); + log.info("【创建企业】请求参数:" + JSON.toJSONString(map)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, map); + log.info("【创建企业】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【创建企业】请求失败:" + result); + return null; + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【创建企业】请求失败:" + result); + return null; + } + return object.getObject("data", CreateEnterprise.class); + } +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java new file mode 100644 index 0000000..bff8650 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java @@ -0,0 +1,31 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +/** + * 黔云通配置 + * @author zhibing.pu + * @Date 2025/6/6 15:03 + */ +public interface QianYunTongProperties { + /** + * appkey + */ + String appkey = "10001104"; + /** + * 私钥地址 + */ + String privateKeyPath = "E:\\IDEA Workspaces\\QianYunTong\\private_key_test.pem"; + /** + * 消费者账号 + */ + String userName = "xiaofei"; + /** + * 状态 + * 1:生产环境 + * 2:测试环境 + */ + String status = "1"; + /** + * API地址 + */ + String apiUrl = "https://test-zhongtai.stqcloud.com:10070"; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java new file mode 100644 index 0000000..131392f --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java @@ -0,0 +1,67 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.open.common.util.OpenApiClient; +import com.open.common.util.SystemParameterNames; +import lombok.extern.slf4j.Slf4j; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 短信工具类 + * @author zhibing.pu + * @Date 2025/6/10 10:48 + */ +@Slf4j +public class SMSUtil { + + + /** + * 获取易信验证码 + * @param mobile + * @return + */ + public static String sendVerifyCode(String mobile) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/sendVerifyCode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", "{\"mobile\":\"" + mobile + "\"}"); + log.info("【获取易信验证码】请求地址:" + url); + log.info("【获取易信验证码】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【获取易信验证码】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【获取易信验证码】请求失败:" + result); + throw new RuntimeException("【获取易信验证码】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【获取易信验证码】失败:" + object.toJSONString()); + throw new RuntimeException("【获取易信验证码】失败:" + object.toJSONString()); + } + return object.getString("code"); + } +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java new file mode 100644 index 0000000..6dfe5af --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java @@ -0,0 +1,214 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +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.*; +import lombok.extern.slf4j.Slf4j; + +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 用户工具类 + * + * @author zhibing.pu + * @Date 2025/6/6 14:47 + */ +@Slf4j +public class UserUtil { + + + /** + * 根据手机号码获取人员信息 + * + * @param mobile 手机号码 + * @param enterNum 企业编号 + */ + public static List<QYTUserInfo> getUserInfoByPhone(String mobile, String enterNum) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getUserInfoByPhone"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", "{\"mobile\":\"" + mobile + "\",\"enterNum\":\"" + enterNum + "\"}"); + log.info("【根据手机号和企业编号查询用户信息】请求地址:" + url); + log.info("【根据手机号和企业编号查询用户信息】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap); + log.info("【根据手机号和企业编号查询用户信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【根据手机号和企业编号查询用户信息】请求失败:" + result); + throw new RuntimeException("【根据手机号和企业编号查询用户信息】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【根据手机号和企业编号查询用户信息】失败:" + object.toJSONString()); + throw new RuntimeException("【根据手机号和企业编号查询用户信息】失败:" + object.toJSONString()); + } + JSONArray data = object.getJSONArray("data"); + List<QYTUserInfo> list = new ArrayList<>(); + for (int i = 0; i < data.size(); i++) { + data.getJSONObject(i).getString("enter_code"); + QYTUserInfo userInfo = data.getObject(i, QYTUserInfo.class); + list.add(userInfo); + } + return list; + } + + + /** + * 根据手机号注册用户 + * + * @param request + * @return + */ + public static RegisterViaMobile registerViaMobile(RegisterViaMobileRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/m1_register_via_mobile"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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); + log.info("【根据手机号注册用户】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【根据手机号注册用户】请求失败:" + result); + throw new RuntimeException("【根据手机号注册用户】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【根据手机号注册用户】失败:" + object.toJSONString()); + throw new RuntimeException("【根据手机号注册用户】失败:" + object.toJSONString()); + } + return jsonObject.getObject("object", RegisterViaMobile.class); + } + + + /** + * 易信用户修改密码 + * + * @param request + * @return + */ + public static Boolean modifyPwd(ModifyPwdRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyPwd"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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); + log.info("【易信用户修改密码】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【易信用户修改密码】请求失败:" + result); + throw new RuntimeException("【易信用户修改密码】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【易信用户修改密码】失败:" + object.toJSONString()); + throw new RuntimeException("【易信用户】失败:" + object.toJSONString()); + } + return true; + } + + + /** + * 易信重置密码 + * + * @param request + * @return + */ + public static Boolean resetPwd(ResetPwdRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/resetPwd"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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); + log.info("【易信重置密码】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String retCode = jsonObject.getString("retCode"); + if (!"0".equals(retCode)) { + log.error("【易信重置密码】请求失败:" + result); + throw new RuntimeException("【易信重置密码】请求失败:" + result); + } + JSONObject object = jsonObject.getJSONObject("object"); + String status = object.getString("status"); + if (!"0".equals(status)) { + log.error("【易信重置密码】失败:" + object.toJSONString()); + throw new RuntimeException("【易信重置密码】失败:" + object.toJSONString()); + } + return true; + } +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java new file mode 100644 index 0000000..837dd93 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java @@ -0,0 +1,40 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 18:12 + */ +@Data +public class CheckEnterExist { + /** + * 企业ID + */ + private String id; + /** + * 是否在公有云注册,1:已注册;0:未注册 + */ + private String isReg; + /** + * 创建者手机号 + */ + private String mobile; + /** + * 创建时间 + */ + private String createTime; + /** + * 法人姓名 + */ + private String larName; + /** + * 企业编码 + */ + private String enterCode; + /** + * 认证状态 + * 0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中 + */ + private Integer auth; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java new file mode 100644 index 0000000..579c4db --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java @@ -0,0 +1,46 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/9 19:43 + */ +@Data +public class CreateEnterprise { + /** + * 企业ID + */ + private String id; + /** + * 开通易信状态 + * 0:成功 1:失败 + */ + private String callYixinApi; + /** + * 开通办公门户状态 + * 0:成功 1:失败 + */ + private String callItdSaveCompany; + /** + * 开通企业官网状态 + * 0:成功 1:失败 + */ + private String callItdDredgeWebsite; + /** + * 电话号码 + */ + private String phone; + /** + * 企业idcode + */ + private String idCode; + /** + * 企业节点ID + */ + private String noteId; + /** + * 是否新注册企业 + */ + private String isNew; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java new file mode 100644 index 0000000..ab18fe9 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java @@ -0,0 +1,118 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/9 18:20 + */ +@Data +public class CreateEnterpriseRequest { + /** + * 企业名称 + */ + private String name; + /** + * 企业简称/昵称 + */ + private String nickName; + /** + * 行业编码 + */ + private String industry_code; + /** + * 手机号码 + */ + private String mobile; + /** + * 区域编码 + */ + private String area; + /** + * 企业地址 + */ + private String address; + /** + * 二级域名 + */ + private String secondRealmName; + /** + * 企业密码 + */ + private String password; + /** + * 一级行业分类描述 + */ + private String industry_level1; + /** + * 二级行业分类描述 + */ + private String industry_level2; + /** + * 企业来源编码 + */ + private String sourceCode; + /** + * 企业分类编码 + */ + private String typeCode; + /** + * 代理商id + */ + private String elecsId; + /** + * 是否发送短信 + * 0:不发送,1:发送 + */ + private String smsFlag; + /** + * 是否激活 + * 1:激活;0:未激活 + */ + private String mobileFlag; + /** + * 邮箱 + */ + private String email; + /** + * 邮箱是否激活 + * 1:激活;0:未激活 + */ + private String emailFlag; + /** + * 是否同步通讯录 + */ + private String contact_source; + /** + * 所属行业通用编码 + */ + private String trade_code; + /** + * 营业执照扫描件url + */ + private String operScanPic; + /** + * 运营人员姓名 + */ + private String idcardName; + /** + * 运营者身份证号码 + */ + private String idcardNum; + /** + * 运营者身份证照片url + */ + private String idcardPic; + /** + * 企业工号 + */ + private String enterID; + /** + * 推荐人 + */ + private String recommender; + /** + * 创建者姓名 + */ + private String creatorName; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java new file mode 100644 index 0000000..0115407 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java @@ -0,0 +1,23 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:39 + */ +@Data +public class DeleteStafNodeRequest { + /** + * 人员ID + */ + private Long empId; + /** + * 手机号 + */ + private String mobile; + /** + * 企业编号 + */ + private String entercode; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java new file mode 100644 index 0000000..9d3e3eb --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java @@ -0,0 +1,72 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:32 + */ +@Data +public class EditStaffNodeRequest { + /** + * 人员ID + */ + private Integer empId; + /** + * 操作人手机号 + */ + private String mobile; + /** + * 操作人企业ID + */ + private String entercode; + /** + * 企业ID + */ + private Long enterId; + /** + * 人员显示名 + */ + private String empName; + /** + * 人员显示名 + */ + private String empNickname; + /** + * 手机号 + */ + private String mphone; + /** + * 登录账号 + */ + private String loginNo; + /** + * 人员性别(男\女) + */ + private String empSex; + /** + * 人员邮箱 + */ + private String email; + /** + * 员工所属部门ID多个部门英文; 分割 + */ + private Integer deptId; + /** + * 员工职务ID + */ + private Integer positionId; + /** + * 员工职务名称,如不知道ID可以直接传入名称 + */ + private String positionName; + /** + * 高管模式 1 是 0 不是 + */ + private Integer superLevel; + /** + * 隐藏号码 1 是 0 不是 + */ + private Integer hideMobile; + +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java new file mode 100644 index 0000000..476dc50 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java @@ -0,0 +1,259 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 17:14 + */ +@Data +public class EnterpriseInfo { + /** + * 企业ID + */ + private String id; + /** + * 企业编号 + */ + private String enter_code; + /** + * 企业名称 + */ + private String enter_name; + /** + * 是否是全员号码可见,0:是,1:否 + */ + private String visible; + /** + * 认证状态,0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中 + */ + private String auth; + /** + * 认证时间 + */ + private String auth_time; + /** + * 认证注释 + */ + private String authRemark; + /** + * 运营者姓名(委托人) + */ + private String idcard_name; + /** + * 运营者证件号 + */ + private String idcard_num; + /** + * 运营者证件扫描件URL + */ + private String idcard_pic; + /** + * 统一社会信用代码 + */ + private String uscc; + /** + * 法人姓名 + */ + private String larName; + /** + * 法人电话 + */ + private String larPhone; + /** + * 法人身份证 + */ + private String larIdCard; + /** + * 法人身份证扫描件URL + */ + private String larIdCardPic; + /** + * 发票名称 + */ + private String invoiceName; + /** + * 纳税人识别号(发票) + */ + private String invoiceTIN; + /** + * 开户行名称(发票) + */ + private String invoiceBankersName; + /** + * 开户行账号(发票) + */ + private String invoiceBankersAccount; + /** + * 资质机构名称 + */ + private String qualificationOrgName; + /** + * 资质注册号/登记号 + */ + private String qualificationRegNum; + /** + * 资质有效开始时间 + */ + private String qualificationStartTime; + /** + * 资质有效结束时间 + */ + private String qualificationEndTime; + /** + * 资格证书扫描件URL + */ + private String qualificationCertUrl; + /** + * 省份编码 + */ + private String provinceCode; + /** + * 地市编码 + */ + private String cityCode; + /** + * 区县编码 + */ + private String areaCode; + /** + * 乡镇编码 + */ + private String townshipCode; + /** + * 企业创建时间 + */ + private String enter_createdate; + /** + * 地址 + */ + private String address; + /** + * 营业期开始时间,格式:yyyy-MM-dd HH:mm:ss + */ + private String businessTermStartTime; + /** + * 营业期结束时间,格式:yyyy-MM-dd HH:mm:ss + */ + private String businessTermEndTime; + /** + * 企业规模 + */ + private String enterScale; + /** + * 创建者职位 + */ + private String creatorPosition; + /** + * 企业备注/介绍 + */ + private String enterRemark; + /** + * 企业logo + */ + private String enterLogo; + /** + * 企业邮箱 + */ + private String enterEmail; + /** + * 企业联系电话rg_company_info.enter_tel + */ + private String enterTel; + /** + * 一级行业分类编码 + */ + private String industryStr; + /** + * 二级行业分类编码 + */ + private String industryStr2; + /** + * 企业联系人姓名 + */ + private String enterLinkman; + /** + * 营业执照扫描件ur + */ + private String operScanPic; + /** + * 身份证有效期 + */ + private String larIdCardValidity; + /** + * 经营地址 + */ + private String operationAddress; + /** + * 法人身份证背面照片 + */ + private String larIdCardPicBack; + /** + * 法人身份证手持 + */ + private String larIdCardPicHold; + /** + * 开户许可证 + */ + private String accountOpeningPermit; + /** + * 自定义的,例如:企业类型 + */ + private String tag1; + /** + * 自定义的,例如:行业类型 + */ + private String tag2; + /** + * 企业扩展信息 + */ + private String iformContentId; + /** + * 国家统计局网站提供的行政地区编码 + */ + private String area; + /** + * 行业编码 + */ + private String industryCode; + /** + * 企业创建人姓名 + */ + private String creatorName; + /** + * 企业创建人手机号 + */ + private String creatorMobile; + /** + * 管理员邮箱 + */ + private String email; + /** + * 企业简称 + */ + private String enterAbbreviation; + /** + * 营业期限 + */ + private String businessTermLong; + /** + * 一级行业名称 + */ + private String industryL1Name; + /** + * 二级行业名称 + */ + private String industryL2Name; + /** + * 企业介绍(全文本) + */ + private String enterIntro; + /** + * 法人身份证正面照片 + */ + private String larIdCardPicFront; + /** + * 企业主税机关 + */ + private String enterTaxAuthority; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java new file mode 100644 index 0000000..aab260b --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java @@ -0,0 +1,23 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:42 + */ +@Data +public class GetStaffNodeRequest { + /** + * 人员ID + */ + private Long empId; + /** + * 操作人手机号 + */ + private String mobile; + /** + * 操作人企业ID + */ + private String entercode; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java new file mode 100644 index 0000000..8f73990 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java @@ -0,0 +1,75 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/9 18:13 + */ +@Data +public class ModifyEnterpriseInfoRequest { + /** + * 企业编码 + */ + private String enter_code; + /** + * 操作人员手机号 + */ + private String operator; + /** + * 企业名称 + */ + private String enter_name; + /** + * 企业简称 + */ + private String enter_nickname; + /** + * 企业地址 + */ + private String enter_address; + /** + * 企业邮箱 + */ + private String enter_email; + /** + * 联系人姓名 + */ + private String contact_name; + /** + * 联系人手机号 + */ + private String contact_mobile; + /** + * 营业执照扫描件URL + */ + private String operscanpic; + /** + * 营业期开始时间 + */ + private String businessTermStartTime; + /** + * 营业期结束时间 + */ + private String businessTermEndTime; + /** + * 区域编码 + */ + private String area; + /** + * 二级域名 + */ + private String second_realms; + /** + * 企业来源编码 + */ + private String source_code; + /** + * 店铺所属行业编码 + */ + private String trade_code; + /** + * 企业分类编码 + */ + private String type_code; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java new file mode 100644 index 0000000..7a04de5 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java @@ -0,0 +1,25 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; /** + * @author zhibing.pu + * @Date 2025/6/10 10:42 + */ +@Data +public class ModifyPwdRequest { + /** + * 手机号码 + */ + private String mobile; + /** + * 旧密码 + */ + private String oldPwd; + /** + * 新密码 + */ + private String newPwd; + /** + * 验证码 + */ + private String code; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java new file mode 100644 index 0000000..6dd1b2a --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java @@ -0,0 +1,44 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * 用户信息 + * @author zhibing.pu + * @Date 2025/6/6 15:11 + */ +@Data +public class QYTUserInfo { + /** + * 员工名称 + */ + private String empName; + /** + * 企业编号 + */ + private String enterNum; + /** + * 节点路径 + */ + private String nodePath; + /** + * 员工昵称 + */ + private String nickName; + /** + * 员工编号 + */ + private String empId; + /** + * 手机号码 + */ + private String mphone; + /** + * 员工在企业内部的编号 + */ + private String loginNo; + /** + * 部门ID + */ + private String deptId; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java new file mode 100644 index 0000000..4702ff9 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java @@ -0,0 +1,26 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; /** + * @author zhibing.pu + * @Date 2025/6/10 11:34 + */ +@Data +public class RegisterViaMobile { + /** + * 响应码 + * 0:成功;1:失败;2:手机号非法;3:验证码已过期;4:验证码错误;5、用户已存在;9:弱密码 + */ + private String status; + /** + * 响应描述 + */ + private String desc; + /** + * web登录密码 + */ + private String password; + /** + * 用户UUID + */ + private String onconUUID; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java new file mode 100644 index 0000000..57d6638 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java @@ -0,0 +1,46 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:59 + */ +@Data +public class RegisterViaMobileRequest { + /** + * 手机号码 + */ + private String mobile; + /** + * 客户端appid + */ + private String appId; + /** + * 用户密码 + */ + private String password; + /** + * 短信验证码 + */ + private String verify_code; + /** + * 验证码类型 + * 0:短信发送的验证码;1:一键获取手机号返回注册验证码;2、验证码验证成功后生成的Ticket + */ + private String verify_code_type; + /** + * 加密类型 + * 第三方系统可以填写空 + */ + private String encryptType; + /** + * 用户类型 + * 0:普通用户 + */ + private String user_type; + /** + * 昵称 + */ + private String nickname; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java new file mode 100644 index 0000000..7af096c --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java @@ -0,0 +1,27 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/10 10:42 + */ +@Data +public class ResetPwdRequest { + /** + * 手机号码 + */ + private String mobile; + /** + * 密码 + */ + private String password; + /** + * 验证码 + */ + private String code; + /** + * 客户端appid + */ + private String appid; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java new file mode 100644 index 0000000..13dfef3 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java @@ -0,0 +1,31 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2025/6/14 14:10 + */ +@Data +public class SaveStaffNode { + /** + * 人员ID + */ + private Long empId; + /** + * 员工名称 + */ + private String empName; + /** + * 员工昵称 + */ + private String empNickname; + /** + * 手机号 + */ + private String mphone; + /** + * 登录账号 + */ + private String loginNo; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java new file mode 100644 index 0000000..2f7cc63 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java @@ -0,0 +1,63 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:22 + */ +@Data +public class SaveStaffNodeRequest { + /** + * 操作人手机号 + */ + private String mobile; + /** + * 操作人企业ID + */ + private String entercode; + /** + * 人员名称 + */ + private String empName; + /** + * 人员显示名 + */ + private String empNickname; + /** + * 人员账号 + */ + private String loginNo; + /** + * 人员性别 + */ + private String empSex; + /** + * 人员手机号 + */ + private String mphone; + /** + * 人员邮箱 + */ + private String email; + /** + * 员工所属部分ID + */ + private Integer deptId; + /** + * 员工职务ID + */ + private Integer positionId; + /** + * 员工职务名称 + */ + private String positionName; + /** + * 高管模式 1 是 0 不是 + */ + private Integer superLevel; + /** + * 隐藏号码 1 是 0 不是 + */ + private Integer hideMobile; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java new file mode 100644 index 0000000..84383c5 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java @@ -0,0 +1,91 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:44 + */ +@Data +public class StaffNodeInfo { + /** + * 人员ID + */ + private Integer empId; + /** + * 主要号码 + */ + private String mainMphone; + /** + * 备注 + */ + private String remark; + /** + * 企业ID + */ + private String enterNum; + /** + * 加密企业名称 + */ + private String empNameEncode; + /** + * 人员名称 + */ + private String empName; + /** + * 人员显示名 + */ + private String empNickname; + /** + * 人员账号 + */ + private String loginNo; + /** + * 人员性别(男\女) + */ + private String empSex; + /** + * 人员手机号 + */ + private String mphone; + /** + * 人员邮箱加密 + */ + private String mainEmailEncode; + /** + * 所属企业id + */ + private Long enterId; + /** + * 唯一编号 + */ + private String onconuuid; + /** + * 邮箱 + */ + private String email; + /** + * 员工所属部门ID多个部门英文; 分割 + */ + private Integer deptId; + /** + * 员工职位ID + */ + private Long positionId; + /** + * 员工职位名称 + */ + private String positionName; + /** + * 高管模式 1 是 0 不是 + */ + private Integer superLevel; + /** + * 隐藏手机号 1 是 0 否 + */ + private Integer hideMobile; + /** + * 有效状态(0=否,1=是) + */ + private String isValid; +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index ef5f732..b5c6c41 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -11,12 +11,14 @@ import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl; -import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; 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.*; +import com.stylefeng.guns.modular.system.dao.RegionMapper; +import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper; +import com.stylefeng.guns.modular.system.dao.SysIntegralMapper; +import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; @@ -27,9 +29,9 @@ import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; -import org.bouncycastle.crypto.tls.MACAlgorithm; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -115,9 +117,9 @@ @Autowired private PushUtil pushUtil; - + @Autowired - private RedisUtil redisUtil; + private RedisTemplate redisTemplate; @Autowired private RestTemplate internalRestTemplate; @@ -571,7 +573,7 @@ System.out.println("取消订单:"+query); if(null != query){ if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); String appletsOpenId = null; if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = JSON.parseObject(value); @@ -1306,7 +1308,7 @@ }).start(); //用户付款后,删除限制司机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++){ @@ -1315,7 +1317,7 @@ break; } } - redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); + redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString()); } systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); } @@ -1564,7 +1566,7 @@ }).start(); //用户付款后,删除限制司机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++){ @@ -1573,7 +1575,7 @@ break; } } - redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); + redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString()); } systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); @@ -1710,7 +1712,7 @@ if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){ map.put("state", map.get("oldState")); } - String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId")); + String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1); map.put("orderType", 2); return map; @@ -1765,7 +1767,7 @@ return orderServerWarpper; } //计算预计距离和剩余时间 - String value = redisUtil.getValue("DRIVER" + String.valueOf(orderTaxi.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderTaxi.getDriverId())); if(null == value || "".equals(value)){ System.err.println("司机没有上传位置信息"); @@ -1995,7 +1997,7 @@ }).start(); //用户付款后,删除限制司机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++){ @@ -2004,7 +2006,7 @@ break; } } - redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); + redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString()); } @@ -2081,7 +2083,7 @@ public void run() { try { orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单 - 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); diff --git a/UserQYTTravel/guns-admin/src/main/resources/application.yml b/UserQYTTravel/guns-admin/src/main/resources/application.yml new file mode 100644 index 0000000..e18fe65 --- /dev/null +++ b/UserQYTTravel/guns-admin/src/main/resources/application.yml @@ -0,0 +1,107 @@ +server: + port: 8006 + +guns: + swagger-open: true #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + 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(只在单机环境下生效) 单位:秒 + +spring: + application: + name: user-server + profiles: +# active: dev + active: local + mvc: + static-path-pattern: /static/** + view: + prefix: /WEB-INF/view + devtools: + restart: + enabled: false + additional-paths: src/main/java + exclude: static/**,WEB-INF/view/** + servlet: + multipart: + max-request-size: 100MB + max-file-size: 100MB + redis: + url: 127.0.0.1 + port: 6379 + password: 123456 + +mybatis-plus: + typeAliasesPackage: com.stylefeng.guns.modular + configuration: + log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl + + + +eureka: + client: + service-url: #注册中心地址 + defaultZone: http://sinata:sinata@127.0.0.1:8000/eureka #启用身份验证的方式连接 + register-with-eureka: true #在注册中心进行注册 + fetch-registry: true #从Eureka中获取注册信息。 + +--- + + +#配置Swagger接口扫描范围 +swagger: + base-package: com.stylefeng.guns.modular + + +spring: + profiles: local + datasource: + url: jdbc:mysql://127.0.0.1:3306/qyttravel?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8 + username: root + password: 123456 + db-name: jyxtravel #用来搜集数据库的所有表 + filters: wall,mergeStat + +--- + + + +wx: + grantType: authorization_code #填authorization_code + appid: 111 #应用唯一标识,在微信开放平台提交应用审核通过后获得 + appSecret: 111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 + appletsAppid: wxcc3c9058e2b294db #小程序APPid + appletsAppSecret: 5610fc6126255ca5f7bd9fa4330338b6 # + mchId: 111 #微信支付分配的商户号 + key: 111 #key为商户平台设置的密钥key: + +--- + +alipay: + appid: 111 #应用程序唯一标识 + appPrivateKey: 111 #开发者应用私钥 + alipayPublicKey: ; #应用公钥 + alipay_public_key: 111 #支付宝公钥 + +--- + +juhe: #聚合数据 + appKey: 111 # + + +--- + +filePath: C:/orderPostionFile/ #存储订单轨迹文件路径 + +#支付回调地址 +#正式环境 +callbackPath: https://zhentonggongsi.com:443/user + + +--- + +#交通部推送数据功能开关 +pushMinistryOfTransport: false diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java new file mode 100644 index 0000000..bcd169b --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java @@ -0,0 +1,30 @@ +package com.stylefeng.guns.generator.action; + + +import com.stylefeng.guns.generator.action.config.GunsGeneratorConfig; + +/** + * 代码生成器,可以生成实体,dao,service,controller,html,js + * + * @author stylefeng + * @Date 2017/5/21 12:38 + */ +public class GunsCodeGenerator { + + public static void main(String[] args) { + + /** + * Mybatis-Plus的代码生成器: + * mp的代码生成器可以生成实体,mapper,mapper对应的xml,service + */ + GunsGeneratorConfig gunsGeneratorConfig = new GunsGeneratorConfig(); + gunsGeneratorConfig.doMpGeneration(); + + /** + * guns的生成器: + * guns的代码生成器可以生成controller,html页面,页面对应的js + */ + gunsGeneratorConfig.doGunsGeneration(); + } + +} \ No newline at end of file diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java new file mode 100644 index 0000000..e50b78a --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java @@ -0,0 +1,109 @@ +package com.stylefeng.guns.generator.action.config; + +import com.baomidou.mybatisplus.generator.AutoGenerator; +import com.baomidou.mybatisplus.generator.config.DataSourceConfig; +import com.baomidou.mybatisplus.generator.config.GlobalConfig; +import com.baomidou.mybatisplus.generator.config.PackageConfig; +import com.baomidou.mybatisplus.generator.config.StrategyConfig; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.stylefeng.guns.core.util.FileUtil; +import com.stylefeng.guns.generator.engine.SimpleTemplateEngine; +import com.stylefeng.guns.generator.engine.base.GunsTemplateEngine; +import com.stylefeng.guns.generator.engine.config.ContextConfig; +import com.stylefeng.guns.generator.engine.config.SqlConfig; + +import java.io.File; +import java.util.List; + +/** + * 代码生成的抽象配置 + * + * @author fengshuonan + * @date 2017-10-28-下午8:22 + */ +public abstract class AbstractGeneratorConfig { + + /** + * mybatis-plus代码生成器配置 + */ + GlobalConfig globalConfig = new GlobalConfig(); + + DataSourceConfig dataSourceConfig = new DataSourceConfig(); + + StrategyConfig strategyConfig = new StrategyConfig(); + + PackageConfig packageConfig = new PackageConfig(); + + TableInfo tableInfo = null; + + /** + * Guns代码生成器配置 + */ + ContextConfig contextConfig = new ContextConfig(); + + SqlConfig sqlConfig = new SqlConfig(); + + protected abstract void config(); + + public void init() { + config(); + + packageConfig.setService(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service"); + packageConfig.setServiceImpl(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service.impl"); + + //controller没用掉,生成之后会自动删掉 + packageConfig.setController("TTT"); + + if (!contextConfig.getEntitySwitch()) { + packageConfig.setEntity("TTT"); + } + + if (!contextConfig.getDaoSwitch()) { + packageConfig.setMapper("TTT"); + packageConfig.setXml("TTT"); + } + + if (!contextConfig.getServiceSwitch()) { + packageConfig.setService("TTT"); + packageConfig.setServiceImpl("TTT"); + } + + } + + /** + * 删除不必要的代码 + */ + public void destory() { + String outputDir = globalConfig.getOutputDir() + "/TTT"; + FileUtil.deleteDir(new File(outputDir)); + } + + public AbstractGeneratorConfig() { + } + + public void doMpGeneration() { + init(); + AutoGenerator autoGenerator = new AutoGenerator(); + autoGenerator.setGlobalConfig(globalConfig); + autoGenerator.setDataSource(dataSourceConfig); + autoGenerator.setStrategy(strategyConfig); + autoGenerator.setPackageInfo(packageConfig); + autoGenerator.execute(); + destory(); + + //获取table信息,用于guns代码生成 + List<TableInfo> tableInfoList = autoGenerator.getConfig().getTableInfoList(); + if (tableInfoList != null && tableInfoList.size() > 0) { + this.tableInfo = tableInfoList.get(0); + } + } + + public void doGunsGeneration() { + GunsTemplateEngine GunsTemplateEngine = new SimpleTemplateEngine(); + GunsTemplateEngine.setContextConfig(contextConfig); + sqlConfig.setConnection(dataSourceConfig.getConn()); + GunsTemplateEngine.setSqlConfig(sqlConfig); + GunsTemplateEngine.setTableInfo(tableInfo); + GunsTemplateEngine.start(); + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java new file mode 100644 index 0000000..43012ab --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java @@ -0,0 +1,81 @@ +package com.stylefeng.guns.generator.action.config; + +import com.baomidou.mybatisplus.generator.config.rules.DbType; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; + +/** + * 默认的代码生成的配置 + * + * @author fengshuonan + * @date 2017-10-28-下午8:27 + */ +public class GunsGeneratorConfig extends AbstractGeneratorConfig { + + protected void globalConfig() { + globalConfig.setOutputDir("D:\\ttt");//写自己项目的绝对路径,注意具体到java目录 + globalConfig.setFileOverride(true); + globalConfig.setEnableCache(false); + globalConfig.setBaseResultMap(true); + globalConfig.setBaseColumnList(true); + globalConfig.setOpen(false); + globalConfig.setAuthor("stylefeng"); + } + + protected void dataSourceConfig() { + dataSourceConfig.setDbType(DbType.MYSQL); + dataSourceConfig.setDriverName("com.mysql.jdbc.Driver"); + dataSourceConfig.setUsername("root"); + dataSourceConfig.setPassword("root"); + dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/guns?characterEncoding=utf8"); + } + + protected void strategyConfig() { + strategyConfig.setTablePrefix(new String[]{"sys_"});// 此处可以修改为您的表前缀 + strategyConfig.setNaming(NamingStrategy.underline_to_camel); + } + + protected void packageConfig() { + packageConfig.setParent(null); + packageConfig.setEntity("com.stylefeng.guns.admin.common.persistence.model"); + packageConfig.setMapper("com.stylefeng.guns.admin.common.persistence.dao"); + packageConfig.setXml("com.stylefeng.guns.admin.common.persistence.dao.mapping"); + } + + protected void contextConfig() { + contextConfig.setProPackage("com.stylefeng.guns.admin"); + contextConfig.setCoreBasePackage("com.stylefeng.guns.core"); + contextConfig.setBizChName("字典管理"); + contextConfig.setBizEnName("sysDict"); + contextConfig.setModuleName("system"); + contextConfig.setProjectPath("D:\\ideaSpace\\guns\\guns-admin");//写自己项目的绝对路径 + contextConfig.setEntityName("SysDict"); + sqlConfig.setParentMenuName(null);//这里写已有菜单的名称,当做父节点 + + /** + * mybatis-plus 生成器开关 + */ + contextConfig.setEntitySwitch(true); + contextConfig.setDaoSwitch(true); + contextConfig.setServiceSwitch(true); + + /** + * guns 生成器开关 + */ + contextConfig.setControllerSwitch(true); + contextConfig.setIndexPageSwitch(true); + contextConfig.setAddPageSwitch(true); + contextConfig.setEditPageSwitch(true); + contextConfig.setJsSwitch(true); + contextConfig.setInfoJsSwitch(true); + contextConfig.setSqlSwitch(true); + } + + @Override + protected void config() { + globalConfig(); + dataSourceConfig(); + strategyConfig(); + packageConfig(); + contextConfig(); + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java new file mode 100644 index 0000000..6b821f5 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java @@ -0,0 +1,97 @@ +package com.stylefeng.guns.generator.action.config; + +import com.baomidou.mybatisplus.generator.config.rules.DbType; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; +import com.stylefeng.guns.core.support.StrKit; +import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.generator.action.model.GenQo; + +import java.io.File; + +/** + * 默认的代码生成的配置 + * + * @author fengshuonan + * @date 2017-10-28-下午8:27 + */ +public class WebGeneratorConfig extends AbstractGeneratorConfig { + + private GenQo genQo; + + public WebGeneratorConfig(GenQo genQo) { + this.genQo = genQo; + } + + @Override + protected void config() { + /** + * 数据库配置 + */ + dataSourceConfig.setDbType(DbType.MYSQL); + dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); + dataSourceConfig.setUsername(genQo.getUserName()); + dataSourceConfig.setPassword(genQo.getPassword()); + dataSourceConfig.setUrl(genQo.getUrl()); + + /** + * 全局配置 + */ + globalConfig.setOutputDir(genQo.getProjectPath() + File.separator + "src" + File.separator + "main" + File.separator + "java"); + globalConfig.setFileOverride(true); + globalConfig.setEnableCache(false); + globalConfig.setBaseResultMap(true); + globalConfig.setBaseColumnList(true); + globalConfig.setOpen(false); + globalConfig.setAuthor(genQo.getAuthor()); + contextConfig.setProPackage(genQo.getProjectPackage()); + contextConfig.setCoreBasePackage(genQo.getCorePackage()); + + /** + * 生成策略 + */ + if (genQo.getIgnoreTabelPrefix() != null) { + strategyConfig.setTablePrefix(new String[]{genQo.getIgnoreTabelPrefix()}); + } + strategyConfig.setInclude(new String[]{genQo.getTableName()}); + strategyConfig.setNaming(NamingStrategy.underline_to_camel); + packageConfig.setParent(null); + packageConfig.setEntity(genQo.getProjectPackage() + ".modular.system.model"); + packageConfig.setMapper(genQo.getProjectPackage() + ".modular.system.dao"); + packageConfig.setXml(genQo.getProjectPackage() + ".modular.system.dao.mapping"); + + /** + * 业务代码配置 + */ + contextConfig.setBizChName(genQo.getBizName()); + contextConfig.setModuleName(genQo.getModuleName()); + contextConfig.setProjectPath(genQo.getProjectPath());//写自己项目的绝对路径 + if(ToolUtil.isEmpty(genQo.getIgnoreTabelPrefix())){ + String entityName = StrKit.toCamelCase(genQo.getTableName()); + contextConfig.setEntityName(StrKit.firstCharToUpperCase(entityName)); + contextConfig.setBizEnName(StrKit.firstCharToLowerCase(entityName)); + }else{ + String entiyName = StrKit.toCamelCase(StrKit.removePrefix(genQo.getTableName(), genQo.getIgnoreTabelPrefix())); + contextConfig.setEntityName(StrKit.firstCharToUpperCase(entiyName)); + contextConfig.setBizEnName(StrKit.firstCharToLowerCase(entiyName)); + } + sqlConfig.setParentMenuName(genQo.getParentMenuName());//这里写已有菜单的名称,当做父节点 + + /** + * mybatis-plus 生成器开关 + */ + contextConfig.setEntitySwitch(genQo.getEntitySwitch()); + contextConfig.setDaoSwitch(genQo.getDaoSwitch()); + contextConfig.setServiceSwitch(genQo.getServiceSwitch()); + + /** + * guns 生成器开关 + */ + contextConfig.setControllerSwitch(genQo.getControllerSwitch()); + contextConfig.setIndexPageSwitch(genQo.getIndexPageSwitch()); + contextConfig.setAddPageSwitch(genQo.getAddPageSwitch()); + contextConfig.setEditPageSwitch(genQo.getEditPageSwitch()); + contextConfig.setJsSwitch(genQo.getJsSwitch()); + contextConfig.setInfoJsSwitch(genQo.getInfoJsSwitch()); + contextConfig.setSqlSwitch(genQo.getSqlSwitch()); + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java new file mode 100644 index 0000000..b09d948 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java @@ -0,0 +1,297 @@ +package com.stylefeng.guns.generator.action.model; + +/** + * 代码生成的查询参数 + * + * @author fengshuonan + * @date 2017-11-30-下午2:05 + */ +public class GenQo { + + /** + * 数据库账号 + */ + private String userName; + + /** + * 数据库密码 + */ + private String password; + + /** + * 数据库url + */ + private String url; + + /** + * 项目地址 + */ + private String projectPath; + + /** + * 作者 + */ + private String author; + + /** + * 项目的包 + */ + private String projectPackage; + + /** + * 核心模块的包 + */ + private String corePackage; + + /** + * 表名称 + */ + private String tableName; + + /** + * 忽略的表前缀 + */ + private String ignoreTabelPrefix; + + /** + * 业务名称 + */ + private String bizName; + + /** + * 模块名 + */ + private String moduleName; + + /** + * 父级菜单名称 + */ + private String parentMenuName; + + /** + * 是否生成控制器代码开关 + */ + private Boolean controllerSwitch = false; + + /** + * 主页 + */ + private Boolean indexPageSwitch = false; + + /** + * 添加页面 + */ + private Boolean addPageSwitch = false; + + /** + * 编辑页面 + */ + private Boolean editPageSwitch = false; + + /** + * 主页的js + */ + private Boolean jsSwitch = false; + + /** + * 详情页面js + */ + private Boolean infoJsSwitch = false; + + /** + * dao的开关 + */ + private Boolean daoSwitch = false; + + /** + * service + */ + private Boolean serviceSwitch = false; + + /** + * 生成实体的开关 + */ + private Boolean entitySwitch = false; + + /** + * 生成sql的开关 + */ + private Boolean sqlSwitch = false; + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getProjectPath() { + return projectPath; + } + + public void setProjectPath(String projectPath) { + this.projectPath = projectPath; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getCorePackage() { + return corePackage; + } + + public void setCorePackage(String corePackage) { + this.corePackage = corePackage; + } + + public String getProjectPackage() { + + return projectPackage; + } + + public void setProjectPackage(String projectPackage) { + this.projectPackage = projectPackage; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getIgnoreTabelPrefix() { + return ignoreTabelPrefix; + } + + public void setIgnoreTabelPrefix(String ignoreTabelPrefix) { + this.ignoreTabelPrefix = ignoreTabelPrefix; + } + + public String getBizName() { + return bizName; + } + + public void setBizName(String bizName) { + this.bizName = bizName; + } + + public String getModuleName() { + return moduleName; + } + + public void setModuleName(String moduleName) { + this.moduleName = moduleName; + } + + public Boolean getControllerSwitch() { + return controllerSwitch; + } + + public void setControllerSwitch(Boolean controllerSwitch) { + this.controllerSwitch = controllerSwitch; + } + + public Boolean getIndexPageSwitch() { + return indexPageSwitch; + } + + public void setIndexPageSwitch(Boolean indexPageSwitch) { + this.indexPageSwitch = indexPageSwitch; + } + + public Boolean getAddPageSwitch() { + return addPageSwitch; + } + + public void setAddPageSwitch(Boolean addPageSwitch) { + this.addPageSwitch = addPageSwitch; + } + + public Boolean getEditPageSwitch() { + return editPageSwitch; + } + + public void setEditPageSwitch(Boolean editPageSwitch) { + this.editPageSwitch = editPageSwitch; + } + + public Boolean getJsSwitch() { + return jsSwitch; + } + + public void setJsSwitch(Boolean jsSwitch) { + this.jsSwitch = jsSwitch; + } + + public Boolean getInfoJsSwitch() { + return infoJsSwitch; + } + + public void setInfoJsSwitch(Boolean infoJsSwitch) { + this.infoJsSwitch = infoJsSwitch; + } + + public Boolean getDaoSwitch() { + return daoSwitch; + } + + public void setDaoSwitch(Boolean daoSwitch) { + this.daoSwitch = daoSwitch; + } + + public Boolean getServiceSwitch() { + return serviceSwitch; + } + + public void setServiceSwitch(Boolean serviceSwitch) { + this.serviceSwitch = serviceSwitch; + } + + public Boolean getEntitySwitch() { + return entitySwitch; + } + + public void setEntitySwitch(Boolean entitySwitch) { + this.entitySwitch = entitySwitch; + } + + public Boolean getSqlSwitch() { + return sqlSwitch; + } + + public void setSqlSwitch(Boolean sqlSwitch) { + this.sqlSwitch = sqlSwitch; + } + + public String getParentMenuName() { + return parentMenuName; + } + + public void setParentMenuName(String parentMenuName) { + this.parentMenuName = parentMenuName; + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java new file mode 100644 index 0000000..9e057c7 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java @@ -0,0 +1,70 @@ +package com.stylefeng.guns.generator.engine; + + +import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.generator.engine.base.GunsTemplateEngine; + +/** + * 通用的模板生成引擎 + * + * @author fengshuonan + * @date 2017-05-09 20:32 + */ +public class SimpleTemplateEngine extends GunsTemplateEngine { + + @Override + protected void generatePageEditHtml() { + String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageEditPathTemplate(), + super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName()); + generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_edit.html.btl", path); + System.out.println("生成编辑页面成功!"); + } + + @Override + protected void generatePageAddHtml() { + String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageAddPathTemplate(), + super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName()); + generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_add.html.btl", path); + System.out.println("生成添加页面成功!"); + } + + @Override + protected void generatePageInfoJs() { + String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageInfoJsPathTemplate(), + super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName()); + generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_info.js.btl", path); + System.out.println("生成页面详情js成功!"); + } + + @Override + protected void generatePageJs() { + String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageJsPathTemplate(), + super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName()); + generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page.js.btl", path); + System.out.println("生成页面js成功!"); + } + + @Override + protected void generatePageHtml() { + String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPagePathTemplate(), + super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName()); + generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page.html.btl", path); + System.out.println("生成页面成功!"); + } + + @Override + protected void generateController() { + String controllerPath = ToolUtil.format(super.getContextConfig().getProjectPath() + super.getControllerConfig().getControllerPathTemplate(), + ToolUtil.firstLetterToUpper(super.getContextConfig().getBizEnName())); + generateFile(super.getContextConfig().getTemplatePrefixPath() + "/Controller.java.btl", controllerPath); + System.out.println("生成控制器成功!"); + } + + @Override + protected void generateSqls() { + String path = ToolUtil.format(super.getContextConfig().getProjectPath() + super.sqlConfig.getSqlPathTemplate(), + ToolUtil.firstLetterToUpper(super.getContextConfig().getBizEnName())); + generateFile(super.getContextConfig().getTemplatePrefixPath() + "/menu_sql.sql.btl", path); + System.out.println("生成sql成功!"); + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java new file mode 100644 index 0000000..ef2512e --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java @@ -0,0 +1,115 @@ +package com.stylefeng.guns.generator.engine.base; + +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.stylefeng.guns.generator.engine.config.*; + +/** + * 模板生成父类 + * + * @author fengshuonan + * @date 2017-05-08 20:17 + */ +public class AbstractTemplateEngine { + + protected ContextConfig contextConfig; //全局配置 + protected ControllerConfig controllerConfig; //控制器的配置 + protected PageConfig pageConfig; //页面的控制器 + protected DaoConfig daoConfig; //Dao配置 + protected ServiceConfig serviceConfig; //Service配置 + protected SqlConfig sqlConfig; //sql配置 + protected TableInfo tableInfo; //表的信息 + + public void initConfig() { + if (this.contextConfig == null) { + this.contextConfig = new ContextConfig(); + } + if (this.controllerConfig == null) { + this.controllerConfig = new ControllerConfig(); + } + if (this.pageConfig == null) { + this.pageConfig = new PageConfig(); + } + if (this.daoConfig == null) { + this.daoConfig = new DaoConfig(); + } + if (this.serviceConfig == null) { + this.serviceConfig = new ServiceConfig(); + } + if (this.sqlConfig == null) { + this.sqlConfig = new SqlConfig(); + } + this.contextConfig.init(); + + this.controllerConfig.setContextConfig(this.contextConfig); + this.controllerConfig.init(); + + this.serviceConfig.setContextConfig(this.contextConfig); + this.serviceConfig.init(); + + this.daoConfig.setContextConfig(this.contextConfig); + this.daoConfig.init(); + + this.pageConfig.setContextConfig(this.contextConfig); + this.pageConfig.init(); + + this.sqlConfig.setContextConfig(this.contextConfig); + this.sqlConfig.init(); + } + + public PageConfig getPageConfig() { + return pageConfig; + } + + public void setPageConfig(PageConfig pageConfig) { + this.pageConfig = pageConfig; + } + + public ContextConfig getContextConfig() { + return contextConfig; + } + + public void setContextConfig(ContextConfig contextConfig) { + this.contextConfig = contextConfig; + } + + public ControllerConfig getControllerConfig() { + return controllerConfig; + } + + public void setControllerConfig(ControllerConfig controllerConfig) { + this.controllerConfig = controllerConfig; + } + + public DaoConfig getDaoConfig() { + return daoConfig; + } + + public void setDaoConfig(DaoConfig daoConfig) { + this.daoConfig = daoConfig; + } + + public ServiceConfig getServiceConfig() { + return serviceConfig; + } + + public void setServiceConfig(ServiceConfig serviceConfig) { + this.serviceConfig = serviceConfig; + } + + public SqlConfig getSqlConfig() { + return sqlConfig; + } + + public void setSqlConfig(SqlConfig sqlConfig) { + this.sqlConfig = sqlConfig; + } + + public TableInfo getTableInfo() { + return tableInfo; + } + + public void setTableInfo(TableInfo tableInfo) { + this.tableInfo = tableInfo; + } +} + diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java new file mode 100644 index 0000000..4d3ab84 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java @@ -0,0 +1,126 @@ +package com.stylefeng.guns.generator.engine.base; + +import com.stylefeng.guns.core.util.ToolUtil; +import com.sun.javafx.PlatformUtil; +import org.beetl.core.Configuration; +import org.beetl.core.GroupTemplate; +import org.beetl.core.Template; +import org.beetl.core.resource.ClasspathResourceLoader; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Properties; + +/** + * ADI项目模板生成 引擎 + * + * @author fengshuonan + * @date 2017-05-07 22:15 + */ +public abstract class GunsTemplateEngine extends AbstractTemplateEngine { + + private GroupTemplate groupTemplate; + + public GunsTemplateEngine() { + initBeetlEngine(); + } + + protected void initBeetlEngine() { + Properties properties = new Properties(); + properties.put("RESOURCE.root", ""); + properties.put("DELIMITER_STATEMENT_START", "<%"); + properties.put("DELIMITER_STATEMENT_END", "%>"); + properties.put("HTML_TAG_FLAG", "##"); + Configuration cfg = null; + try { + cfg = new Configuration(properties); + } catch (IOException e) { + e.printStackTrace(); + } + ClasspathResourceLoader resourceLoader = new ClasspathResourceLoader(); + groupTemplate = new GroupTemplate(resourceLoader, cfg); + groupTemplate.registerFunctionPackage("tool", new ToolUtil()); + } + + protected void configTemplate(Template template) { + template.binding("controller", super.controllerConfig); + template.binding("context", super.contextConfig); + template.binding("dao", super.daoConfig); + template.binding("service", super.serviceConfig); + template.binding("sqls", super.sqlConfig); + template.binding("table", super.tableInfo); + } + + protected void generateFile(String template, String filePath) { + Template pageTemplate = groupTemplate.getTemplate(template); + configTemplate(pageTemplate); + if (PlatformUtil.isWindows()) { + filePath = filePath.replaceAll("/+|\\\\+", "\\\\"); + } else { + filePath = filePath.replaceAll("/+|\\\\+", "/"); + } + File file = new File(filePath); + File parentFile = file.getParentFile(); + if (!parentFile.exists()) { + parentFile.mkdirs(); + } + FileOutputStream fileOutputStream = null; + try { + fileOutputStream = new FileOutputStream(file); + pageTemplate.renderTo(fileOutputStream); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } finally { + try { + fileOutputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + public void start() { + //配置之间的相互依赖 + super.initConfig(); + + //生成模板 + if (super.contextConfig.getControllerSwitch()) { + generateController(); + } + if (super.contextConfig.getIndexPageSwitch()) { + generatePageHtml(); + } + if (super.contextConfig.getAddPageSwitch()) { + generatePageAddHtml(); + } + if (super.contextConfig.getEditPageSwitch()) { + generatePageEditHtml(); + } + if (super.contextConfig.getJsSwitch()) { + generatePageJs(); + } + if (super.contextConfig.getInfoJsSwitch()) { + generatePageInfoJs(); + } + if (super.contextConfig.getSqlSwitch()) { + generateSqls(); + } + } + + protected abstract void generatePageEditHtml(); + + protected abstract void generatePageAddHtml(); + + protected abstract void generatePageInfoJs(); + + protected abstract void generatePageJs(); + + protected abstract void generatePageHtml(); + + protected abstract void generateController(); + + protected abstract void generateSqls(); + +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java new file mode 100644 index 0000000..d8403d8 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java @@ -0,0 +1,214 @@ +package com.stylefeng.guns.generator.engine.config; + + +import com.stylefeng.guns.core.util.ToolUtil; + +/** + * 全局配置 + * + * @author fengshuonan + * @date 2017-05-08 20:21 + */ +public class ContextConfig { + + private String templatePrefixPath = "gunsTemplate/advanced"; + private String projectPath = "D:\\ideaSpace\\guns";//模板输出的项目目录 + private String bizChName; //业务名称 + private String bizEnName; //业务英文名称 + private String bizEnBigName;//业务英文名称(大写) + private String moduleName = "system"; //模块名称 + + private String proPackage = "com.stylefeng.guns.admin"; + private String coreBasePackage = "com.stylefeng.guns.core"; + private String modelPackageName = "com.stylefeng.guns.modular.system.model"; //model的包名 + private String modelMapperPackageName = "com.stylefeng.guns.modular.system.dao"; //model的dao + private String entityName; //实体的名称 + + private Boolean controllerSwitch = true; //是否生成控制器代码开关 + private Boolean indexPageSwitch = true; //主页 + private Boolean addPageSwitch = true; //添加页面 + private Boolean editPageSwitch = true; //编辑页面 + private Boolean jsSwitch = true; //js + private Boolean infoJsSwitch = true; //详情页面js + private Boolean daoSwitch = true; //dao + private Boolean serviceSwitch = true; //service + private Boolean entitySwitch = true; //生成实体的开关 + private Boolean sqlSwitch = true; //生成sql的开关 + + public void init() { + if (entityName == null) { + entityName = bizEnBigName; + } + modelPackageName = proPackage + "." + "modular.system.model"; + modelMapperPackageName = proPackage + "." + "modular.system.dao"; + } + + public String getBizEnBigName() { + return bizEnBigName; + } + + public void setBizEnBigName(String bizEnBigName) { + this.bizEnBigName = bizEnBigName; + } + + public String getBizChName() { + return bizChName; + } + + public void setBizChName(String bizChName) { + this.bizChName = bizChName; + } + + public String getBizEnName() { + return bizEnName; + } + + public void setBizEnName(String bizEnName) { + this.bizEnName = bizEnName; + this.bizEnBigName = ToolUtil.firstLetterToUpper(this.bizEnName); + } + + public String getProjectPath() { + return projectPath; + } + + public void setProjectPath(String projectPath) { + this.projectPath = projectPath; + } + + public String getModuleName() { + return moduleName; + } + + public void setModuleName(String moduleName) { + this.moduleName = moduleName; + } + + public Boolean getControllerSwitch() { + return controllerSwitch; + } + + public void setControllerSwitch(Boolean controllerSwitch) { + this.controllerSwitch = controllerSwitch; + } + + public Boolean getIndexPageSwitch() { + return indexPageSwitch; + } + + public void setIndexPageSwitch(Boolean indexPageSwitch) { + this.indexPageSwitch = indexPageSwitch; + } + + public Boolean getAddPageSwitch() { + return addPageSwitch; + } + + public void setAddPageSwitch(Boolean addPageSwitch) { + this.addPageSwitch = addPageSwitch; + } + + public Boolean getEditPageSwitch() { + return editPageSwitch; + } + + public void setEditPageSwitch(Boolean editPageSwitch) { + this.editPageSwitch = editPageSwitch; + } + + public Boolean getJsSwitch() { + return jsSwitch; + } + + public void setJsSwitch(Boolean jsSwitch) { + this.jsSwitch = jsSwitch; + } + + public Boolean getInfoJsSwitch() { + return infoJsSwitch; + } + + public void setInfoJsSwitch(Boolean infoJsSwitch) { + this.infoJsSwitch = infoJsSwitch; + } + + public Boolean getDaoSwitch() { + return daoSwitch; + } + + public void setDaoSwitch(Boolean daoSwitch) { + this.daoSwitch = daoSwitch; + } + + public Boolean getServiceSwitch() { + return serviceSwitch; + } + + public void setServiceSwitch(Boolean serviceSwitch) { + this.serviceSwitch = serviceSwitch; + } + + public String getTemplatePrefixPath() { + return templatePrefixPath; + } + + public void setTemplatePrefixPath(String templatePrefixPath) { + this.templatePrefixPath = templatePrefixPath; + } + + public String getModelPackageName() { + return modelPackageName; + } + + public void setModelPackageName(String modelPackageName) { + this.modelPackageName = modelPackageName; + } + + public String getEntityName() { + return entityName; + } + + public void setEntityName(String entityName) { + this.entityName = entityName; + } + + public String getModelMapperPackageName() { + return modelMapperPackageName; + } + + public void setModelMapperPackageName(String modelMapperPackageName) { + this.modelMapperPackageName = modelMapperPackageName; + } + + public Boolean getEntitySwitch() { + return entitySwitch; + } + + public void setEntitySwitch(Boolean entitySwitch) { + this.entitySwitch = entitySwitch; + } + + public Boolean getSqlSwitch() { + return sqlSwitch; + } + + public void setSqlSwitch(Boolean sqlSwitch) { + this.sqlSwitch = sqlSwitch; + } + + public String getProPackage() { + return proPackage; + } + + public void setProPackage(String proPackage) { + this.proPackage = proPackage; + } + + public String getCoreBasePackage() { + return coreBasePackage; + } + + public void setCoreBasePackage(String coreBasePackage) { + this.coreBasePackage = coreBasePackage; + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java new file mode 100644 index 0000000..8775b3c --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java @@ -0,0 +1,70 @@ +package com.stylefeng.guns.generator.engine.config; + +import java.util.ArrayList; +import java.util.List; + +/** + * 控制器模板生成的配置 + * + * @author fengshuonan + * @date 2017-05-07 22:12 + */ +public class ControllerConfig { + + private ContextConfig contextConfig; + + private String controllerPathTemplate; + private String packageName;//包名称 + private List<String> imports;//所引入的包 + + public void init() { + ArrayList<String> imports = new ArrayList<>(); + imports.add(contextConfig.getCoreBasePackage() + ".base.controller.BaseController"); + imports.add("org.springframework.stereotype.Controller"); + imports.add("org.springframework.web.bind.annotation.RequestMapping"); + imports.add("org.springframework.web.bind.annotation.ResponseBody"); + imports.add("org.springframework.ui.Model"); + imports.add("org.springframework.web.bind.annotation.PathVariable"); + imports.add("org.springframework.beans.factory.annotation.Autowired"); + imports.add(contextConfig.getProPackage() + ".core.log.LogObjectHolder"); + imports.add("org.springframework.web.bind.annotation.RequestParam"); + imports.add(contextConfig.getModelPackageName() + "." + contextConfig.getEntityName()); + imports.add(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service" + ".I" + contextConfig.getEntityName() + "Service"); + this.imports = imports; + this.packageName = contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".controller"; + this.controllerPathTemplate = "\\src\\main\\java\\"+contextConfig.getProPackage().replaceAll("\\.","\\\\")+"\\modular\\" + contextConfig.getModuleName() + "\\controller\\{}Controller.java"; + } + + public String getPackageName() { + return packageName; + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public List<String> getImports() { + return imports; + } + + public void setImports(List<String> imports) { + this.imports = imports; + } + + public String getControllerPathTemplate() { + return controllerPathTemplate; + } + + public void setControllerPathTemplate(String controllerPathTemplate) { + this.controllerPathTemplate = controllerPathTemplate; + } + + public ContextConfig getContextConfig() { + return contextConfig; + } + + public void setContextConfig(ContextConfig contextConfig) { + this.contextConfig = contextConfig; + } + +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java new file mode 100644 index 0000000..00e3092 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java @@ -0,0 +1,55 @@ +package com.stylefeng.guns.generator.engine.config; + +/** + * Dao模板生成的配置 + * + * @author fengshuonan + * @date 2017-05-07 22:12 + */ +public class DaoConfig { + + private ContextConfig contextConfig; + + private String daoPathTemplate; + private String xmlPathTemplate; + + private String packageName; + + public void init() { + this.daoPathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\dao\\{}Dao.java"; + this.xmlPathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\dao\\mapping\\{}Dao.xml"; + this.packageName = contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".dao"; + } + + public String getPackageName() { + return packageName; + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public String getDaoPathTemplate() { + return daoPathTemplate; + } + + public void setDaoPathTemplate(String daoPathTemplate) { + this.daoPathTemplate = daoPathTemplate; + } + + public String getXmlPathTemplate() { + return xmlPathTemplate; + } + + public void setXmlPathTemplate(String xmlPathTemplate) { + this.xmlPathTemplate = xmlPathTemplate; + } + + public ContextConfig getContextConfig() { + return contextConfig; + } + + public void setContextConfig(ContextConfig contextConfig) { + this.contextConfig = contextConfig; + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java new file mode 100644 index 0000000..2770128 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java @@ -0,0 +1,203 @@ +package com.stylefeng.guns.generator.engine.config; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.enums.IdType; + +import java.io.Serializable; + +/** + * <p> + * 菜单表 + * </p> + * + * @author stylefeng + * @since 2017-07-11 + */ +public class Menu extends Model<Menu> { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 菜单编号 + */ + private String code; + /** + * 菜单父编号 + */ + private String pcode; + /** + * 当前菜单的所有父菜单编号 + */ + private String pcodes; + /** + * 菜单名称 + */ + private String name; + /** + * 菜单图标 + */ + private String icon; + /** + * url地址 + */ + private String url; + /** + * 菜单排序号 + */ + private Integer num; + /** + * 菜单层级 + */ + private Integer levels; + /** + * 是否是菜单(1:是 0:不是) + */ + private Integer ismenu; + /** + * 备注 + */ + private String tips; + /** + * 菜单状态 : 1:启用 0:不启用 + */ + private Integer status; + /** + * 是否打开: 1:打开 0:不打开 + */ + private Integer isopen; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getPcode() { + return pcode; + } + + public void setPcode(String pcode) { + this.pcode = pcode; + } + + public String getPcodes() { + return pcodes; + } + + public void setPcodes(String pcodes) { + this.pcodes = pcodes; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Integer getNum() { + return num; + } + + public void setNum(Integer num) { + this.num = num; + } + + public Integer getLevels() { + return levels; + } + + public void setLevels(Integer levels) { + this.levels = levels; + } + + public Integer getIsmenu() { + return ismenu; + } + + public void setIsmenu(Integer ismenu) { + this.ismenu = ismenu; + } + + public String getTips() { + return tips; + } + + public void setTips(String tips) { + this.tips = tips; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Menu{" + + "id=" + id + + ", code=" + code + + ", pcode=" + pcode + + ", pcodes=" + pcodes + + ", name=" + name + + ", icon=" + icon + + ", url=" + url + + ", num=" + num + + ", levels=" + levels + + ", ismenu=" + ismenu + + ", tips=" + tips + + ", status=" + status + + ", isopen=" + isopen + + "}"; + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java new file mode 100644 index 0000000..a3324ea --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java @@ -0,0 +1,74 @@ +package com.stylefeng.guns.generator.engine.config; + +/** + * 页面 模板生成的配置 + * + * @author fengshuonan + * @date 2017-05-07 22:12 + */ +public class PageConfig { + + private ContextConfig contextConfig; + + private String pagePathTemplate; + private String pageAddPathTemplate; + private String pageEditPathTemplate; + private String pageJsPathTemplate; + private String pageInfoJsPathTemplate; + + public void init() { + pagePathTemplate = "\\src\\main\\webapp\\WEB-INF\\view\\" + contextConfig.getModuleName() + "\\{}\\{}.html"; + pageAddPathTemplate = "\\src\\main\\webapp\\WEB-INF\\view\\" + contextConfig.getModuleName() + "\\{}\\{}_add.html"; + pageEditPathTemplate = "\\src\\main\\webapp\\WEB-INF\\view\\" + contextConfig.getModuleName() + "\\{}\\{}_edit.html"; + pageJsPathTemplate = "\\src\\main\\webapp\\static\\modular\\" + contextConfig.getModuleName() + "\\{}\\{}.js"; + pageInfoJsPathTemplate = "\\src\\main\\webapp\\static\\modular\\" + contextConfig.getModuleName() + "\\{}\\{}_info.js"; + } + + public String getPagePathTemplate() { + return pagePathTemplate; + } + + public void setPagePathTemplate(String pagePathTemplate) { + this.pagePathTemplate = pagePathTemplate; + } + + public String getPageJsPathTemplate() { + return pageJsPathTemplate; + } + + public void setPageJsPathTemplate(String pageJsPathTemplate) { + this.pageJsPathTemplate = pageJsPathTemplate; + } + + public String getPageAddPathTemplate() { + return pageAddPathTemplate; + } + + public void setPageAddPathTemplate(String pageAddPathTemplate) { + this.pageAddPathTemplate = pageAddPathTemplate; + } + + public String getPageEditPathTemplate() { + return pageEditPathTemplate; + } + + public void setPageEditPathTemplate(String pageEditPathTemplate) { + this.pageEditPathTemplate = pageEditPathTemplate; + } + + public String getPageInfoJsPathTemplate() { + return pageInfoJsPathTemplate; + } + + public void setPageInfoJsPathTemplate(String pageInfoJsPathTemplate) { + this.pageInfoJsPathTemplate = pageInfoJsPathTemplate; + } + + public ContextConfig getContextConfig() { + return contextConfig; + } + + public void setContextConfig(ContextConfig contextConfig) { + this.contextConfig = contextConfig; + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java new file mode 100644 index 0000000..e6cc865 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java @@ -0,0 +1,91 @@ +package com.stylefeng.guns.generator.engine.config; + +import java.util.ArrayList; +import java.util.List; + +/** + * Service模板生成的配置 + * + * @author fengshuonan + * @date 2017-05-07 22:12 + */ +public class ServiceConfig { + + private ContextConfig contextConfig; + + private String servicePathTemplate; + private String serviceImplPathTemplate; + + private String packageName; + + private List<String> serviceInterfaceImports; + private List<String> serviceImplImports; + + public void init() { + ArrayList<String> imports = new ArrayList<>(); + imports.add("org.springframework.stereotype.Service"); + imports.add("com.baomidou.mybatisplus.service.impl.ServiceImpl"); + imports.add(contextConfig.getModelPackageName() + "." + contextConfig.getEntityName()); + imports.add(contextConfig.getModelMapperPackageName() + "." + contextConfig.getEntityName() + "Mapper"); + imports.add(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service.I" + contextConfig.getBizEnBigName() + "Service"); + this.serviceImplImports = imports; + + ArrayList<String> interfaceImports = new ArrayList<>(); + interfaceImports.add("com.baomidou.mybatisplus.service.IService"); + interfaceImports.add(contextConfig.getModelPackageName() + "." + contextConfig.getEntityName()); + this.serviceInterfaceImports = interfaceImports; + + this.servicePathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\service\\I{}Service.java"; + this.serviceImplPathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\service\\impl\\{}ServiceImpl.java"; + this.packageName = contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service"; + } + + + public String getServicePathTemplate() { + return servicePathTemplate; + } + + public void setServicePathTemplate(String servicePathTemplate) { + this.servicePathTemplate = servicePathTemplate; + } + + public String getPackageName() { + return packageName; + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public String getServiceImplPathTemplate() { + return serviceImplPathTemplate; + } + + public void setServiceImplPathTemplate(String serviceImplPathTemplate) { + this.serviceImplPathTemplate = serviceImplPathTemplate; + } + + public List<String> getServiceImplImports() { + return serviceImplImports; + } + + public void setServiceImplImports(List<String> serviceImplImports) { + this.serviceImplImports = serviceImplImports; + } + + public ContextConfig getContextConfig() { + return contextConfig; + } + + public void setContextConfig(ContextConfig contextConfig) { + this.contextConfig = contextConfig; + } + + public List<String> getServiceInterfaceImports() { + return serviceInterfaceImports; + } + + public void setServiceInterfaceImports(List<String> serviceInterfaceImports) { + this.serviceInterfaceImports = serviceInterfaceImports; + } +} diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java new file mode 100644 index 0000000..ec64b55 --- /dev/null +++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java @@ -0,0 +1,194 @@ +package com.stylefeng.guns.generator.engine.config; + +import com.baomidou.mybatisplus.toolkit.IdWorker; +import com.stylefeng.guns.core.constant.IsMenu; +import com.stylefeng.guns.core.util.ToolUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +/** + * 全局配置 + * + * @author fengshuonan + * @date 2017-05-08 20:21 + */ +public class SqlConfig { + + private String sqlPathTemplate; + + private ContextConfig contextConfig; + + private Connection connection; + + private String parentMenuName; + + private List<Menu> menus = new ArrayList<>(6); + + public void init() { + + this.sqlPathTemplate = "\\src\\main\\java\\{}.sql"; + + if (parentMenuName == null) { + return; + } + + //根据父菜单查询数据库中的pcode和pcodes + String[] pcodeAndPcodes = getPcodeAndPcodes(); + if (pcodeAndPcodes == null) { + System.err.println("父级菜单名称输入有误!!!!"); + return; + } + + //业务菜单 + Menu menu = new Menu(); + menu.setId(IdWorker.getId()); + menu.setCode(contextConfig.getBizEnName()); + menu.setPcode(pcodeAndPcodes[0]); + menu.setPcodes(pcodeAndPcodes[1] + "[" + pcodeAndPcodes[0] + "],"); + menu.setName(contextConfig.getBizChName()); + menu.setIcon(""); + menu.setUrl("/" + contextConfig.getBizEnName()); + menu.setNum(99); + + if (parentMenuName.equals("顶级")) { + menu.setLevels(1); + } else { + menu.setLevels(2); + } + menu.setIsmenu(IsMenu.YES.getCode()); + menu.setStatus(1); + menu.setIsopen(0); + menus.add(menu); + + //列表 + Menu list = createSubMenu(menu); + list.setCode(contextConfig.getBizEnName() + "_list"); + list.setName(contextConfig.getBizChName() + "列表"); + list.setUrl("/" + contextConfig.getBizEnName() + "/list"); + menus.add(list); + + //添加 + Menu add = createSubMenu(menu); + add.setCode(contextConfig.getBizEnName() + "_add"); + add.setName(contextConfig.getBizChName() + "添加"); + add.setUrl("/" + contextConfig.getBizEnName() + "/add"); + menus.add(add); + + //更新 + Menu update = createSubMenu(menu); + update.setCode(contextConfig.getBizEnName() + "_update"); + update.setName(contextConfig.getBizChName() + "更新"); + update.setUrl("/" + contextConfig.getBizEnName() + "/update"); + menus.add(update); + + //删除 + Menu delete = createSubMenu(menu); + delete.setCode(contextConfig.getBizEnName() + "_delete"); + delete.setName(contextConfig.getBizChName() + "删除"); + delete.setUrl("/" + contextConfig.getBizEnName() + "/delete"); + menus.add(delete); + + //详情 + Menu detail = createSubMenu(menu); + detail.setCode(contextConfig.getBizEnName() + "_detail"); + detail.setName(contextConfig.getBizChName() + "详情"); + detail.setUrl("/" + contextConfig.getBizEnName() + "/detail"); + menus.add(detail); + } + + private Menu createSubMenu(Menu parentMenu) { + Menu menu = new Menu(); + menu.setId(IdWorker.getId()); + menu.setPcode(parentMenu.getCode()); + menu.setPcodes(parentMenu.getPcodes() + "[" + parentMenu.getCode() + "],"); + menu.setIcon(""); + menu.setNum(99); + menu.setLevels(parentMenu.getLevels() + 1); + menu.setIsmenu(IsMenu.NO.getCode()); + menu.setStatus(1); + menu.setIsopen(0); + return menu; + } + + public String[] getPcodeAndPcodes() { + if (parentMenuName.equals("顶级")) { + return new String[]{"0", ""}; + } + PreparedStatement preparedStatement = null; + try { + preparedStatement = connection.prepareStatement("select * from sys_menu where name like ?"); + preparedStatement.setString(1, "%" + parentMenuName + "%"); + ResultSet results = preparedStatement.executeQuery(); + while (results.next()) { + String pcode = results.getString("code"); + String pcodes = results.getString("pcodes"); + if (ToolUtil.isNotEmpty(pcode) && ToolUtil.isNotEmpty(pcodes)) { + String[] strings = {pcode, pcodes}; + return strings; + } else { + return null; + } + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + // 释放资源 + try { + if (preparedStatement != null) { + preparedStatement.close(); + } + if (connection != null) { + connection.close(); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + public ContextConfig getContextConfig() { + return contextConfig; + } + + public void setContextConfig(ContextConfig contextConfig) { + this.contextConfig = contextConfig; + } + + public String getParentMenuName() { + return parentMenuName; + } + + public void setParentMenuName(String parentMenuName) { + this.parentMenuName = parentMenuName; + } + + public Connection getConnection() { + return connection; + } + + public void setConnection(Connection connection) { + this.connection = connection; + } + + public String getSqlPathTemplate() { + return sqlPathTemplate; + } + + public void setSqlPathTemplate(String sqlPathTemplate) { + this.sqlPathTemplate = sqlPathTemplate; + } + + public List<Menu> getMenus() { + return menus; + } + + public void setMenus(List<Menu> menus) { + this.menus = menus; + } +} -- Gitblit v1.7.1