From 380c0e958fbc3f2b42a3e38ae5dc9af3254b8f5c Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 25 五月 2023 09:36:16 +0800 Subject: [PATCH] 新增加功能和更换账号 --- driver/guns-admin/src/main/resources/redis.properties | 18 user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java | 50 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java | 2 management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js | 179 ++- driver/guns-admin/src/main/resources/application.yml | 57 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java | 2 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java | 2 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java | 2 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java | 10 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java | 595 +++++------- user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java | 10 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java | 2 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml | 2 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html | 3 management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html | 118 + management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java | 2 user/guns-admin/src/main/resources/application.yml | 62 - management/guns-admin/src/main/webapp/WEB-INF/view/home.html | 9 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java | 87 + management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html | 1 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html | 1 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java | 2 user/guns-admin/src/main/resources/redis.properties | 18 driver/guns-admin/pom.xml | 5 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java | 33 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java | 2 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java | 182 ++-- management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html | 7 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java | 2 user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java | 134 -- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java | 30 management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js | 2 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java | 10 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java | 117 + management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html | 2 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java | 112 + driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java | 113 + driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java | 80 management/guns-admin/src/main/resources/redis.properties | 22 management/guns-admin/src/main/resources/logback-spring.xml | 337 ++++-- management/guns-admin/src/main/resources/application.yml | 15 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html | 4 management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js | 14 management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html | 7 management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js | 4 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java | 2 /dev/null | 31 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java | 2 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html | 3 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html | 11 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java | 44 + management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java | 29 52 files changed, 1,359 insertions(+), 1,231 deletions(-) diff --git a/driver/guns-admin/pom.xml b/driver/guns-admin/pom.xml index 83b2012..37e424b 100644 --- a/driver/guns-admin/pom.xml +++ b/driver/guns-admin/pom.xml @@ -199,6 +199,11 @@ <artifactId>hutool-all</artifactId> <version>5.7.7</version> </dependency> + <dependency> + <groupId>commons-fileupload</groupId> + <artifactId>commons-fileupload</artifactId> + <version>1.3.1</version> + </dependency> </dependencies> diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java index 1f639ec..c1e7500 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java @@ -894,101 +894,101 @@ } - - @ResponseBody - @PostMapping("/api/driver/microenterprise") -// @ServiceLog(name = "绑定商户", url = "/api/driver/microenterprise") - @ApiOperation(value = "绑定商户", tags = {"司机端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"), - @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"), - @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"), - @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResponseWarpper microenterprise(String name, String IDCode, String phone){ - try { - Integer uid = driverService.getUserByRequest(); - if(null == uid){ - return ResponseWarpper.tokenErr(); - } - ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone); - return ResponseWarpper.success(resultUtil); - }catch (Exception e){ - e.printStackTrace(); - return new ResponseWarpper(500, e.getMessage()); - } - } +// +// @ResponseBody +// @PostMapping("/api/driver/microenterprise") +//// @ServiceLog(name = "绑定商户", url = "/api/driver/microenterprise") +// @ApiOperation(value = "绑定商户", tags = {"司机端-个人中心"}, notes = "") +// @ApiImplicitParams({ +// @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"), +// @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"), +// @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"), +// @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") +// }) +// public ResponseWarpper microenterprise(String name, String IDCode, String phone){ +// try { +// Integer uid = driverService.getUserByRequest(); +// if(null == uid){ +// return ResponseWarpper.tokenErr(); +// } +// ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone); +// return ResponseWarpper.success(resultUtil); +// }catch (Exception e){ +// e.printStackTrace(); +// return new ResponseWarpper(500, e.getMessage()); +// } +// } - @ResponseBody - @PostMapping("/api/driver/queryBank") -// @ServiceLog(name = "获取绑定的银行卡", url = "/api/driver/queryBank") - @ApiOperation(value = "获取绑定的银行卡", tags = {"司机端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResponseWarpper<DriverBank> queryBank(){ - try { - Integer uid = driverService.getUserByRequest(); - if(null == uid){ - return ResponseWarpper.tokenErr(); - } - DriverBank driverId = driverBankService.selectOne(new EntityWrapper<DriverBank>().eq("driverId", uid)); - return ResponseWarpper.success(driverId); - }catch (Exception e){ - e.printStackTrace(); - return new ResponseWarpper(500, e.getMessage()); - } - } +// @ResponseBody +// @PostMapping("/api/driver/queryBank") +//// @ServiceLog(name = "获取绑定的银行卡", url = "/api/driver/queryBank") +// @ApiOperation(value = "获取绑定的银行卡", tags = {"司机端-个人中心"}, notes = "") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") +// }) +// public ResponseWarpper<DriverBank> queryBank(){ +// try { +// Integer uid = driverService.getUserByRequest(); +// if(null == uid){ +// return ResponseWarpper.tokenErr(); +// } +// DriverBank driverId = driverBankService.selectOne(new EntityWrapper<DriverBank>().eq("driverId", uid)); +// return ResponseWarpper.success(driverId); +// }catch (Exception e){ +// e.printStackTrace(); +// return new ResponseWarpper(500, e.getMessage()); +// } +// } - @ResponseBody - @PostMapping("/api/driver/addDriverBank") -// @ServiceLog(name = "绑定银行卡", url = "/api/driver/addDriverBank") - @ApiOperation(value = "绑定银行卡", tags = {"司机端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"), - @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"), - @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"), - @ApiImplicitParam(value = "银行卡号", name = "bankNumber", required = true, dataType = "String"), - @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResponseWarpper addDriverBank(String name, String phone, String IDCode, String bankNumber){ - try { - Integer uid = driverService.getUserByRequest(); - if(null == uid){ - return ResponseWarpper.tokenErr(); - } - ResultUtil resultUtil = driverBankService.addDriverBank(uid, name, phone, IDCode, bankNumber); - return ResponseWarpper.success(resultUtil); - }catch (Exception e){ - e.printStackTrace(); - return new ResponseWarpper(500, e.getMessage()); - } - } - - - @ResponseBody - @PostMapping("/api/driver/delDriverBank") -// @ServiceLog(name = "解绑银行卡", url = "/api/driver/delDriverBank") - @ApiOperation(value = "解绑银行卡", tags = {"司机端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "银行卡id", name = "id", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResponseWarpper delDriverBank(Integer id){ - try { - Integer uid = driverService.getUserByRequest(); - if(null == uid){ - return ResponseWarpper.tokenErr(); - } - ResultUtil resultUtil = driverBankService.delDriverBank(uid, id); - return ResponseWarpper.success(resultUtil); - }catch (Exception e){ - e.printStackTrace(); - return new ResponseWarpper(500, e.getMessage()); - } - } +// @ResponseBody +// @PostMapping("/api/driver/addDriverBank") +//// @ServiceLog(name = "绑定银行卡", url = "/api/driver/addDriverBank") +// @ApiOperation(value = "绑定银行卡", tags = {"司机端-个人中心"}, notes = "") +// @ApiImplicitParams({ +// @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"), +// @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"), +// @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"), +// @ApiImplicitParam(value = "银行卡号", name = "bankNumber", required = true, dataType = "String"), +// @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") +// }) +// public ResponseWarpper addDriverBank(String name, String phone, String IDCode, String bankNumber){ +// try { +// Integer uid = driverService.getUserByRequest(); +// if(null == uid){ +// return ResponseWarpper.tokenErr(); +// } +// ResultUtil resultUtil = driverBankService.addDriverBank(uid, name, phone, IDCode, bankNumber); +// return ResponseWarpper.success(resultUtil); +// }catch (Exception e){ +// e.printStackTrace(); +// return new ResponseWarpper(500, e.getMessage()); +// } +// } +// +// +// @ResponseBody +// @PostMapping("/api/driver/delDriverBank") +//// @ServiceLog(name = "解绑银行卡", url = "/api/driver/delDriverBank") +// @ApiOperation(value = "解绑银行卡", tags = {"司机端-个人中心"}, notes = "") +// @ApiImplicitParams({ +// @ApiImplicitParam(value = "银行卡id", name = "id", required = true, dataType = "int"), +// @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") +// }) +// public ResponseWarpper delDriverBank(Integer id){ +// try { +// Integer uid = driverService.getUserByRequest(); +// if(null == uid){ +// return ResponseWarpper.tokenErr(); +// } +// ResultUtil resultUtil = driverBankService.delDriverBank(uid, id); +// return ResponseWarpper.success(resultUtil); +// }catch (Exception e){ +// e.printStackTrace(); +// return new ResponseWarpper(500, e.getMessage()); +// } +// } } diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java index aeea3ed..ef841b1 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java @@ -6,10 +6,6 @@ import com.agentdriving.driver.modular.system.model.DriverBank; import com.agentdriving.driver.modular.system.service.IDriverBankService; import com.agentdriving.driver.modular.system.service.IDriverService; -import com.agentdriving.driver.modular.system.util.MallBook.model.BindAccount; -import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceResponse; -import com.agentdriving.driver.modular.system.util.MallBook.model.UnbindAccount; -import com.agentdriving.driver.modular.system.util.MallBook.util.TrhRequest; import com.agentdriving.driver.modular.system.util.ResultUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -55,27 +51,27 @@ driverBank.setName(name); driverBank.setPhone(phone); - BindAccount bindAccount = new BindAccount(); - bindAccount.setUserId(driver.getMerchantNumber()); - bindAccount.setCertId(IDCode); - bindAccount.setCardName(name); - bindAccount.setCardNo(bankNumber); - bindAccount.setBankAcctType("2"); - bindAccount.setPhone(phone); - TrhRequest<BindAccount> request = new TrhRequest(); - InterfaceResponse execute = request.execute(bindAccount, BindAccount.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - return ResultUtil.error(execute.getMsg()); - } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - return ResultUtil.error("失败"); - } - if("0".equals(status)){ - return ResultUtil.error("处理中"); - } - this.insert(driverBank); +// BindAccount bindAccount = new BindAccount(); +// bindAccount.setUserId(driver.getMerchantNumber()); +// bindAccount.setCertId(IDCode); +// bindAccount.setCardName(name); +// bindAccount.setCardNo(bankNumber); +// bindAccount.setBankAcctType("2"); +// bindAccount.setPhone(phone); +// TrhRequest<BindAccount> request = new TrhRequest(); +// InterfaceResponse execute = request.execute(bindAccount, BindAccount.SERVICE_CODE); +// if(!"0000".equals(execute.getResult())){ +// return ResultUtil.error(execute.getMsg()); +// } +// JSONObject jsonObject = JSON.parseObject(execute.getResult()); +// String status = jsonObject.getString("status"); +// if("2".equals(status)){ +// return ResultUtil.error("失败"); +// } +// if("0".equals(status)){ +// return ResultUtil.error("处理中"); +// } +// this.insert(driverBank); return ResultUtil.success(); } @@ -86,23 +82,23 @@ if(ToolUtil.isEmpty(driver.getMerchantNumber())){ return ResultUtil.error("请先注册商户"); } - UnbindAccount unbindAccount = new UnbindAccount(); - unbindAccount.setUserId(driver.getMerchantNumber()); - - TrhRequest<UnbindAccount> request = new TrhRequest<>(); - InterfaceResponse execute = request.execute(unbindAccount, UnbindAccount.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - return ResultUtil.error(execute.getMsg()); - } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - return ResultUtil.error("失败"); - } - if("0".equals(status)){ - return ResultUtil.error("处理中"); - } - this.deleteById(id); +// UnbindAccount unbindAccount = new UnbindAccount(); +// unbindAccount.setUserId(driver.getMerchantNumber()); +// +// TrhRequest<UnbindAccount> request = new TrhRequest<>(); +// InterfaceResponse execute = request.execute(unbindAccount, UnbindAccount.SERVICE_CODE); +// if(!"0000".equals(execute.getResult())){ +// return ResultUtil.error(execute.getMsg()); +// } +// JSONObject jsonObject = JSON.parseObject(execute.getResult()); +// String status = jsonObject.getString("status"); +// if("2".equals(status)){ +// return ResultUtil.error("失败"); +// } +// if("0".equals(status)){ +// return ResultUtil.error("处理中"); +// } +// this.deleteById(id); return ResultUtil.success(); } } diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java index 6df6f9a..8779229 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java @@ -9,9 +9,7 @@ import com.agentdriving.driver.modular.system.model.*; import com.agentdriving.driver.modular.system.service.*; import com.agentdriving.driver.modular.system.util.*; -import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceResponse; -import com.agentdriving.driver.modular.system.util.MallBook.model.Register; -import com.agentdriving.driver.modular.system.util.MallBook.util.TrhRequest; +import com.agentdriving.driver.modular.system.util.juhe.OCRUtil; import com.agentdriving.driver.modular.system.util.mongodb.model.Location; import com.agentdriving.driver.modular.system.util.rongyun.RongYunUtil; import com.agentdriving.driver.modular.system.warpper.*; @@ -19,10 +17,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.agentdriving.driver.modular.system.model.*; -import com.agentdriving.driver.modular.system.service.*; -import com.agentdriving.driver.modular.system.util.*; -import com.agentdriving.driver.modular.system.warpper.*; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -42,8 +36,12 @@ import org.springframework.stereotype.Service; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.FileInputStream; import java.text.SimpleDateFormat; import java.util.*; @@ -125,6 +123,27 @@ if(null != driver && driver.getApprovalStatus() == 2){ return ResultUtil.error("该手机账号已审核通过,请直接登录。"); } + String idcardFront = driverRegisterWarpper.getIdcardFront(); + MultipartFile file = MultipartFileUtil.fileToMultipartFile(new File(idcardFront)); + JSONObject certificate = OCRUtil.certificate(2, file); + if(null == certificate){ + return ResultUtil.error("身份证识别失败"); + } + String idcode = certificate.getString("公民身份号码"); + driver.setIdcard(idcode); + + + String driverLicense = driverRegisterWarpper.getDriverLicense(); + file = MultipartFileUtil.fileToMultipartFile(new File(driverLicense)); + certificate = OCRUtil.certificate(5, file); + if(null == certificate){ + return ResultUtil.error("驾驶证识别失败"); + } + System.err.println("驾驶证:" + certificate.toString()); + String driverLicenseNumber = certificate.getString("驾驶证号码"); + driver.setDriverLicenseNumber(driverLicenseNumber); + driver.setFirstCertificateTime(null); + //账号审核拒绝后的处理 if(null != driver && driver.getApprovalStatus() == 3){ @@ -873,33 +892,33 @@ */ @Override public ResultUtil microenterprise(Integer uid, String name, String number, String phone) throws Exception { - Driver driver = this.selectById(uid); - Register registerVO = new Register(); - registerVO.setMerUserId("driver_" + uid); - registerVO.setPhone(phone); - registerVO.setUserType("0"); - registerVO.setUserName(name); - registerVO.setCertId(number); - registerVO.setNotifyUrl(""); - TrhRequest<Register> request = new TrhRequest(); - InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - return ResultUtil.error(execute.getMsg()); - } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - return ResultUtil.error("失败"); - } - if("0".equals(status)){ - return ResultUtil.error("处理中"); - } - String userId = jsonObject.getString("userId"); - driver.setMerchantNumber(userId); - driver.setMerchantIDCode(number); - driver.setMerchantName(name); - driver.setMerchantPhone(phone); - this.updateById(driver); +// Driver driver = this.selectById(uid); +// Register registerVO = new Register(); +// registerVO.setMerUserId("driver_" + uid); +// registerVO.setPhone(phone); +// registerVO.setUserType("0"); +// registerVO.setUserName(name); +// registerVO.setCertId(number); +// registerVO.setNotifyUrl(""); +// TrhRequest<Register> request = new TrhRequest(); +// InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE); +// if(!"0000".equals(execute.getResult())){ +// return ResultUtil.error(execute.getMsg()); +// } +// JSONObject jsonObject = JSON.parseObject(execute.getResult()); +// String status = jsonObject.getString("status"); +// if("2".equals(status)){ +// return ResultUtil.error("失败"); +// } +// if("0".equals(status)){ +// return ResultUtil.error("处理中"); +// } +// String userId = jsonObject.getString("userId"); +// driver.setMerchantNumber(userId); +// driver.setMerchantIDCode(number); +// driver.setMerchantName(name); +// driver.setMerchantPhone(phone); +// this.updateById(driver); return ResultUtil.success(); } } diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java index ca9e7bb..35829aa 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java @@ -243,19 +243,18 @@ JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard"); JSONObject extraCost = jsonObject.getJSONObject("ExtraCost"); Date date = new Date(); - for (int i = 0; i < chargeStandard.size(); i++) { + + boolean b = true; + for (int i = 1; i < chargeStandard.size(); i++) {//各种时间段 JSONObject jsonObject1 = chargeStandard.getJSONObject(i); String num1 = jsonObject1.getString("num1"); String num2 = jsonObject1.getString("num2"); - Double num3 = jsonObject1.getDouble("num3");//起步里程 - Double num4 = jsonObject1.getDouble("num4");//起步价格 - Double num5 = jsonObject1.getDouble("num5");//超过公里 - Double num6 = jsonObject1.getDouble("num6");//超过num3每num5公里收取num6 - Double num7 = jsonObject1.getDouble("num7");//长途起始公里 - Double num8 = jsonObject1.getDouble("num8");//长途结束公里 - Double num9 = jsonObject1.getDouble("num9");//长途费 - Double num10 = jsonObject1.getDouble("num10");//超出长途里程每num10公里 - Double num11 = jsonObject1.getDouble("num11");//超过num8每num10公里收取num11 + JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程 + Double num4 = jsonObject1.getDouble("num4");//长途里程 + Double num5 = jsonObject1.getDouble("num5");//长途里程 + Double num6 = jsonObject1.getDouble("num6");//长途费 + Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里 + Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11 String[] split = num1.split(":"); Calendar s = Calendar.getInstance(); @@ -272,33 +271,81 @@ e.set(Calendar.SECOND, 0); if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){ - if(num3.compareTo(distance) >= 0){//起步里程内 - order.setStartDistance(distance);//起步里程 - order.setStartPrice(num4);//起步价 - }else{ - BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程 - BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN)); - BigDecimal multiply = divide.multiply(new BigDecimal(num6)); - order.setStartDistance(num3);//起步里程 - order.setStartPrice(num4);//起步价 - order.setOverDriveDistance(subtract.doubleValue());//超出起步里程 - order.setOverDrivePrice(multiply.doubleValue());//超出起步里程费 - + b = false; + Double dd = 0d; + for (int j = 0; j < num3.size(); j++) { + JSONObject jsonObject2 = num3.getJSONObject(j); + Double num1_1 = jsonObject2.getDouble("num1"); + Double num2_1 = jsonObject2.getDouble("num2"); + Double num3_1 = jsonObject2.getDouble("num3"); + if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){ + order.setStartDistance(distance);//起步里程 + order.setStartPrice(num3_1);//起步价 + } + if(j == num3.size() - 1 && order.getStartPrice() == 0){ + order.setStartDistance(num2_1);//起步里程 + order.setStartPrice(num3_1);//起步价 + dd = distance - num2_1; + } + } + if(dd != 0){ //计算长途费 - if(distance.compareTo(num7) > 0){ - order.setLongDistance(num7 + "-" + num8);//长途里程 - order.setLongDistancePrice(num9);//长途费 + if(distance.compareTo(num4) > 0){ + order.setLongDistance(num4 + "-" + num5);//长途里程 + order.setLongDistancePrice(num6);//长途费 } //计算长途里程超出的部分 - if(distance.compareTo(num8) > 0){ - BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)); - BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN)); - BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11)); + if(distance.compareTo(num5) > 0){ + BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5)); + BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN)); + BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8)); order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费 } } break; + } + } + + if(b){//默认配置 + JSONObject jsonObject1 = chargeStandard.getJSONObject(0); + JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程 + Double num4 = jsonObject1.getDouble("num4");//长途里程 + Double num5 = jsonObject1.getDouble("num5");//长途里程 + Double num6 = jsonObject1.getDouble("num6");//长途费 + Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里 + Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11 + + Double dd = 0d; + for (int j = 0; j < num3.size(); j++) { + JSONObject jsonObject2 = num3.getJSONObject(j); + Double num1_1 = jsonObject2.getDouble("num1"); + Double num2_1 = jsonObject2.getDouble("num2"); + Double num3_1 = jsonObject2.getDouble("num3"); + if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){ + order.setStartDistance(distance);//起步里程 + order.setStartPrice(num3_1);//起步价 + } + if(j == num3.size() - 1 && order.getStartPrice() == 0){ + order.setStartDistance(num2_1);//起步里程 + order.setStartPrice(num3_1);//起步价 + dd = distance - num2_1; + } + } + if(dd != 0){ + //计算长途费 + if(distance.compareTo(num4) > 0){ + order.setLongDistance(num4 + "-" + num5);//长途里程 + order.setLongDistancePrice(num6);//长途费 + } + //计算长途里程超出的部分 + if(distance.compareTo(num5) > 0){ + BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5)); + BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN)); + BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8)); + order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 + order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费 + } } } @@ -326,7 +373,7 @@ //恶劣天气 systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 8)); - if(null != systemConfig) { + if(null != systemConfig){ JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent()); Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价 if(1 == num11){ @@ -355,11 +402,6 @@ } } - - //计算折扣 - if(null != order.getUserId()){ - - } //计算总金额 BigDecimal bigDecimal = new BigDecimal(order.getStartPrice() + order.getOverDrivePrice() + order.getLongDistancePrice() + order.getOverLongDistancePrice() + @@ -823,6 +865,7 @@ Driver driver = driverService.selectById(order.getDriverId()); driver.setServerStatus(1); driverService.updateById(driver); + accountChangeDetailService.deductionInsurance();//扣减保险费 saveIntegral(order); break; case 401: diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiApiUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiApiUtil.java deleted file mode 100644 index 136746e..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiApiUtil.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.agentdriving.driver.modular.system.util; - - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.agentdriving.driver.modular.system.util.httpClinet.HttpClientUtil; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.Map; - -/** - * 阿里云API接口工具类 - */ -@Component -public class ALiApiUtil { - - - /** - * 身份认证接口 - * @param name 姓名 - * @param code 身份证号 - * @return - */ - 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"); - Map<String, Object> param = new HashMap<>(); - param.put("__userId", "1732960796168165"); - param.put("verifyKey", "IVO4js5kValcdt"); - param.put("userName", name); - param.put("identifyNum", code); - String get = null; - try { - get = HttpClientUtil.pushHttpRequset("GET", url, param, header, "form").getData(); - } catch (Exception e) { - e.printStackTrace(); - } - JSONObject jsonObject = JSON.parseObject(get); - if(jsonObject.getIntValue("code") == 200){ - JSONObject value = jsonObject.getJSONObject("value"); - if(value.getString("bizCode").equals("0")){ - return true; - }else{ - return false; - } - }else{ - System.err.println(jsonObject.getString("message")); - } - return false; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiSendSms.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiSendSms.java deleted file mode 100644 index e81d729..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiSendSms.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.agentdriving.driver.modular.system.util; - - -import com.aliyuncs.CommonRequest; -import com.aliyuncs.CommonResponse; -import com.aliyuncs.DefaultAcsClient; -import com.aliyuncs.IAcsClient; -import com.aliyuncs.exceptions.ClientException; -import com.aliyuncs.profile.DefaultProfile; -import com.google.gson.Gson; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 阿里云短信工具类 - */ -@Component -public class ALiSendSms { - - // 设置鉴权参数,初始化客户端 - private DefaultProfile profile = DefaultProfile.getProfile( - "cn-hangzhou",// 地域ID - "LTAI4G9Zez9H4B36vakPXGy4",// 您的AccessKey ID - "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ");// 您的AccessKey Secret - private IAcsClient client = new DefaultAcsClient(profile); - - private static void log_print(String functionName, Object result) { - Gson gson = new Gson(); - System.out.println("-------------------------------" + functionName + "-------------------------------"); - System.out.println(gson.toJson(result)); - } - - /** - * 添加短信模板 - */ - public String addSmsTemplate() throws ClientException { - CommonRequest addSmsTemplateRequest = new CommonRequest(); - addSmsTemplateRequest.setSysDomain("dysmsapi.aliyuncs.com"); - addSmsTemplateRequest.setSysAction("AddSmsTemplate"); - addSmsTemplateRequest.setSysVersion("2017-05-25"); - // 短信类型。0:验证码;1:短信通知;2:推广短信;3:国际/港澳台消息 - addSmsTemplateRequest.putQueryParameter("TemplateType", "0"); - // 模板名称,长度为1~30个字符 - addSmsTemplateRequest.putQueryParameter("TemplateName", "测试短信模板"); - // 模板内容,长度为1~500个字符 - addSmsTemplateRequest.putQueryParameter("TemplateContent", "您正在申请手机注册,验证码为:${code},5分钟内有效!"); - // 短信模板申请说明 - addSmsTemplateRequest.putQueryParameter("Remark", "测试"); - CommonResponse addSmsTemplateResponse = client.getCommonResponse(addSmsTemplateRequest); - String data = addSmsTemplateResponse.getData(); - // 消除返回文本中的反转义字符 - String sData = data.replaceAll("'\'", ""); - log_print("addSmsTemplate", sData); - Gson gson = new Gson(); - // 将字符串转换为Map类型,取TemplateCode字段值 - Map map = gson.fromJson(sData, Map.class); - Object templateCode = map.get("TemplateCode"); - return templateCode.toString(); - } - - /** - * 发送短信 - */ - public String sendSms(String phone, String templateCode, String json) throws ClientException { - CommonRequest request = new CommonRequest(); - request.setSysDomain("dysmsapi.aliyuncs.com"); - request.setSysVersion("2017-05-25"); - request.setSysAction("SendSms"); - // 接收短信的手机号码 - request.putQueryParameter("PhoneNumbers", phone); - // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。 - request.putQueryParameter("SignName", "OK出行"); - // 短信模板ID - request.putQueryParameter("TemplateCode", templateCode); - // 短信模板变量对应的实际值,JSON格式。 - request.putQueryParameter("TemplateParam", json); - CommonResponse commonResponse = client.getCommonResponse(request); - String data = commonResponse.getData(); - String sData = data.replaceAll("'\'", ""); - log_print("sendSms", sData); - return sData; - } - - /** - * 查询发送详情 - */ - private void querySendDetails(String bizId) throws ClientException { - CommonRequest request = new CommonRequest(); - request.setSysDomain("dysmsapi.aliyuncs.com"); - request.setSysVersion("2017-05-25"); - request.setSysAction("QuerySendDetails"); - // 接收短信的手机号码 - request.putQueryParameter("PhoneNumber", "156xxxxxxxx"); - // 短信发送日期,支持查询最近30天的记录。格式为yyyyMMdd,例如20191010。 - request.putQueryParameter("SendDate", "20191010"); - // 分页记录数量 - request.putQueryParameter("PageSize", "10"); - // 分页当前页码 - request.putQueryParameter("CurrentPage", "1"); - // 发送回执ID,即发送流水号。 - request.putQueryParameter("BizId", bizId); - CommonResponse response = client.getCommonResponse(request); - log_print("querySendDetails", response.getData()); - } - - public static void main(String[] args) { - ALiSendSms sendSmsDemo = new ALiSendSms(); - try { - // 创建短信模板 - String templateCode = sendSmsDemo.addSmsTemplate(); - // 使用刚创建的短信模板发送短信 - String sData = sendSmsDemo.sendSms("156xxxxxxxx", templateCode, "{\"code\":\"8888\"}"); - Gson gson = new Gson(); - Map map = gson.fromJson(sData, Map.class); - String bizId = map.get("BizId").toString(); - // 根据短信发送流水号查询短信发送情况 - sendSmsDemo.querySendDetails(bizId); - } catch (ClientException e) { - e.printStackTrace(); - } - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ChinaMobileUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ChinaMobileUtil.java deleted file mode 100644 index d86a5e5..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ChinaMobileUtil.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.agentdriving.driver.modular.system.util; - -import com.agentdriving.driver.core.util.MD5Util; -import com.alibaba.fastjson.JSONObject; -import com.agentdriving.driver.modular.system.util.httpClinet.HttpClientUtil; -import com.agentdriving.driver.modular.system.util.httpClinet.HttpResult; -import org.apache.commons.codec.binary.Base64; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.Map; - -/** - * 中国移动工具类 - */ -@Component -public class ChinaMobileUtil { - - private String APIKey = "zj42494b1bdd416b9762229af6b5cbbd"; - - private String SecretKey = "30323561316534653735613230316339"; - - - /** - * 绑定小号 - * @param phoneA - * @param phoneB - * @param areaCode - * @return - * @throws Exception - */ - public Map<String, String> midAxbBindSend(String phoneA, String phoneB, Integer areaCode) throws Exception{ - //组装请求对象-具体描述见开发文档-订单小号-AXB接口规范部分内容 - Map<String, Object> request = new HashMap<>(); - request.put("APPID", APIKey); - request.put("bindtype", "AXB"); - request.put("requestId", UUIDUtil.getRandomCode(16)); - request.put("record", "0"); - //用户号码,必填,格式遵循国际电信联盟定义的E.164标准 - request.put("telA", "86" + phoneA); - //用户号码B,必填,格式遵循国际电信联盟定义的E.164标准 - request.put("telB", "86" + phoneB); - //需要选择的小号所属区号,当telX不写时必填,例如:杭州(571) - request.put("areaCode", 571); - //订单小号,非必填,当指定小号绑定时填写,格式遵循国际电信联盟定义的E.164标准 -// request.setTelX("8618867110000"); - //绑定关系过期失效时间,秒,取值必须大于0且最大值不超过4294967296 - request.put("expiration", Integer.valueOf(7 * 24 * 60 * 60)); - - Map<String, String> header = new HashMap<String, String>(3); - header.put("Authorization", "Basic " + new String(Base64.encodeBase64((APIKey + ":" + SecretKey).getBytes()))); - header.put("Content-Type", "application/json;charset=utf-8"); - HttpResult httpResult = HttpClientUtil.pushHttpRequset("POST", "https://ct.open.10086.cn/ordernumber/v1/binding", request, header, "json"); - String post = httpResult.getData(); - Map<String, String> map1 = new HashMap<>(); - if(post.indexOf("0000") != -1){ - JSONObject jsonObject = JSONObject.parseObject(post); - if(jsonObject.getString("code").equals("0000")){ - map1.put("code", "200"); - map1.put("msg", jsonObject.getString("message")); - map1.put("telX", jsonObject.getString("x_no").substring(2)); - map1.put("bindId", jsonObject.getString("bindId")); - }else{ - map1.put("code", jsonObject.getString("code")); - map1.put("msg", jsonObject.getString("message")); - } - }else{ - map1.put("code", "-1"); - map1.put("msg", post); - } - - return map1; - } - - - /** - * 解绑小号关系 - * @param bindId 绑定关系id - * @return - * @throws Exception - */ - public Map<String, String> midAxbUnBindSend(String bindId) throws Exception{ - //组装请求对象-具体描述见开发文档-订单小号-AXB接口规范部分内容 - Map<String, Object> request = new HashMap<>(); - //绑定关系ID - request.put("APPID", APIKey); - request.put("bindId", bindId); - - Map<String, String> header = new HashMap<String, String>(3); - header.put("Authorization", "Basic " + new String(Base64.encodeBase64((APIKey + ":" + SecretKey).getBytes()))); - header.put("Content-Type", "application/json;charset=utf-8"); - HttpResult httpResult = HttpClientUtil.pushHttpRequset("POST", "https://ct.open.10086.cn/ordernumber/v1/unbinding", request, header, "json"); - String post = httpResult.getData(); - JSONObject jsonObject = JSONObject.parseObject(post); - Map<String, String> map1 = new HashMap<>(); - if(jsonObject.getString("code").equals("0000")){ - map1.put("code", "200"); - map1.put("msg", jsonObject.getString("message")); - }else{ - map1.put("code", jsonObject.getString("code")); - map1.put("msg", jsonObject.getString("message")); - } - return map1; - } - - - - - public Map<String, String> HeaderUtils(String APIKey, String SecretKey) throws Exception{ - Map<String, String> header = new HashMap<>(); - long time = System.currentTimeMillis(); - String signStr = MD5Util.encrypt(APIKey + SecretKey + time); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("apiKey", APIKey); - jsonObject.put("time", time); - jsonObject.put("sign", signStr); - Base64 base64 = new Base64(); - String s = base64.encodeToString(jsonObject.toJSONString().getBytes("UTF-8")); - header.put("header", s); - - jsonObject = new JSONObject(); - jsonObject.put("platformId", ""); - jsonObject.put("secret", ""); - s = base64.encodeToString(jsonObject.toJSONString().getBytes("UTF-8")); - header.put("accessCode", s); - return header; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java index 617826a..dd1cc2a 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java @@ -10,5 +10,5 @@ /** * 高德key */ - String key = "e0370a9a4d10739045fb0b8f4742a67e"; + String key = "588845b621c3c42d6d6c8f50ba00cb41"; } diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/config/ChannelConfig.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/config/ChannelConfig.java deleted file mode 100644 index f784874..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/config/ChannelConfig.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.config; - -import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; -import org.springframework.core.io.ClassPathResource; - -import java.util.Properties; - -/** - * @Author xiaogc - * @Date 2022/2/10 10:03 - */ -public class ChannelConfig { - /** - * mallbook 测试环境地址 - */ - public static String payUrl; - - /** - * 业务系统商户平台编号 - */ - public static String merchantNo; - /** - * 接口版本号,不同版本号触发不同接口业务 - */ - public static String version; - /* - * 渠道类型 HF:汇付 - */ - public static String channelType; - - /** - * 商户平台私钥路径 - */ - public static String merchantPrivateKey; - /** - * mallbook公钥路径 - */ - public static String mallBookPublicKey; - - static { - YamlPropertiesFactoryBean yamlProFb = new YamlPropertiesFactoryBean(); - yamlProFb.setResources(new ClassPathResource("application.yaml")); - Properties properties = yamlProFb.getObject(); - System.out.println("mallbook 参数配置初始化"); - System.out.println("--------------------------------"); - System.out.println("环境地址:" + properties.get("mallbook.pay_url")); - System.out.println("商户平台编号:" + properties.get("mallbook.merchant_no")); - System.out.println("接口版本号:" + properties.get("mallbook.version")); - System.out.println("渠道类型:" + properties.get("mallbook.channel_type")); - System.out.println("商户平台私钥:" + properties.get("mallbook.merchant_private_key")); - System.out.println("mallbook 公钥:" + properties.get("mallbook.mall_book_public_key")); - System.out.println("--------------------------------"); - payUrl = properties.get("mallbook.pay_url").toString(); - merchantNo = properties.get("mallbook.merchant_no").toString(); - version = properties.get("mallbook.version").toString(); - channelType = properties.get("mallbook.channel_type").toString(); - merchantPrivateKey = properties.get("mallbook.merchant_private_key").toString(); - mallBookPublicKey = properties.get("mallbook.mall_book_public_key").toString(); - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/BindAccount.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/BindAccount.java deleted file mode 100644 index bbda9f3..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/BindAccount.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.model; - -public class BindAccount<T> { - /**业务类型编号,必须和接口文档一致*/ - public static String SERVICE_CODE = "bindAccount"; - //子商户编号 - private String userId; - //身份证号 - private String certId; - //结算账户名 - private String cardName; - //结算账户号 - private String cardNo; - //银行账户类型 - private String bankAcctType; - //手机号 - private String phone; - //开户银行名称 - private String bankName; - //银行编码 - private String bankCode; - //省份编码 - private String provCode; - //地区编码 - private String areaCode; - - - public String getUserId() { - return userId; - } - - public void setUserId(String userId) { - this.userId = userId; - } - - public String getCertId() { - return certId; - } - - public void setCertId(String certId) { - this.certId = certId; - } - - public String getCardName() { - return cardName; - } - - public void setCardName(String cardName) { - this.cardName = cardName; - } - - public String getCardNo() { - return cardNo; - } - - public void setCardNo(String cardNo) { - this.cardNo = cardNo; - } - - public String getBankAcctType() { - return bankAcctType; - } - - public void setBankAcctType(String bankAcctType) { - this.bankAcctType = bankAcctType; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getBankName() { - return bankName; - } - - public void setBankName(String bankName) { - this.bankName = bankName; - } - - public String getBankCode() { - return bankCode; - } - - public void setBankCode(String bankCode) { - this.bankCode = bankCode; - } - - public String getProvCode() { - return provCode; - } - - public void setProvCode(String provCode) { - this.provCode = provCode; - } - - public String getAreaCode() { - return areaCode; - } - - public void setAreaCode(String areaCode) { - this.areaCode = areaCode; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceRequest.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceRequest.java deleted file mode 100644 index d53d564..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceRequest.java +++ /dev/null @@ -1,176 +0,0 @@ -/** - * - */ -package com.agentdriving.driver.modular.system.util.MallBook.model; - -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; -import com.agentdriving.driver.modular.system.util.MallBook.config.ChannelConfig; -import com.agentdriving.driver.modular.system.util.MallBook.util.RSASignature; -import com.agentdriving.driver.modular.system.util.MallBook.util.StringUtil; - -import java.io.Serializable; - -/** - * 接口请求包 - * - */ -public class InterfaceRequest<T> implements Serializable { - - /** - * - */ - private static final long serialVersionUID = -8130938432046696213L; - - - /** - * 商户平台编号 - */ - private String merchantNo = ChannelConfig.merchantNo; - - /** - * 接口版本号,不同版本号触发不同接口业务 - */ - private String version = ChannelConfig.version; - /* - * 渠道类型 HF:汇付 - */ - private String channelType = ChannelConfig.channelType; - - - /** - * 业务系统订单ID - */ - private String merOrderId; - - /** - * 签名 - */ - private String sign; - - /** - * 业务类型编号 - */ - private String serverCode; - - /** - * 业务参数,json格式 - */ - private String params; - - /** - * 时间戳 - */ - private String date; - - - public String getChannelType() { - return channelType; - } - - public void setChannelType(String channelType) { - this.channelType = channelType; - } - - public String getMerOrderId() { - return merOrderId; - } - - public void setMerOrderId(String merOrderId) { - this.merOrderId = merOrderId; - } - - public String getMerchantNo() { - return merchantNo; - } - - public void setMerchantNo(String merchantNo) { - this.merchantNo = merchantNo; - } - - public String getSign() { - return sign; - } - - public void setSign(String sign) { - this.sign = sign; - } - - public String getServerCode() { - return serverCode; - } - - public void setServerCode(String serverCode) { - this.serverCode = serverCode; - } - - public String getParams() { - return params; - } - - public void setParams(String params) { - this.params = params; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - - /** - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 订单号 + 商户号 + 渠道类型 + 时间戳 + 业务参数json - * @return 待签名字符串 - */ - public String content() { - return StrUtil.builder() - .append(StringUtil.convertNull(merOrderId)) - .append(StringUtil.convertNull(merchantNo)) - .append(StringUtil.convertNull(channelType)) - .append(StringUtil.convertNull(date)) - .append(StringUtil.convertNull(params)) - .toString(); - } - - public InterfaceRequest() { - } - - public InterfaceRequest(T obj, String serverCode) { - this.merOrderId = IdUtil.fastSimpleUUID(); - this.serverCode = serverCode; - this.date = System.currentTimeMillis() + ""; - this.params = JSONUtil.toJsonStr(obj); - // todo 使用商户平台私钥生成sign,需要修改证书对应路径 - this.sign = RSASignature.sign(content()); - } - - - @Override - public String toString() { - return "InterfaceRequest{" + - "merOrderId='" + merOrderId + '\'' + - ", merchantNo='" + merchantNo + '\'' + - ", sign='" + sign + '\'' + - ", serverCode='" + serverCode + '\'' + - ", params='" + params + '\'' + - ", date='" + date + '\'' + - ", version='" + version + '\'' + - ", channelType='" + channelType + '\'' + - '}'; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceResponse.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceResponse.java deleted file mode 100644 index 9eab110..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceResponse.java +++ /dev/null @@ -1,121 +0,0 @@ -/** - * - */ -package com.agentdriving.driver.modular.system.util.MallBook.model; - - -import cn.hutool.core.util.StrUtil; -import com.agentdriving.driver.modular.system.util.MallBook.util.StringUtil; - -import java.io.Serializable; - - -public class InterfaceResponse implements Serializable { - - - /** - * 结果字符串,json格式 - */ - private String result; - - /** - * 签名,由code+msg+date+result根据私钥生成, 如果有参数为null,签名串中应当做空字符串("")来处理 - */ - private String sign; - - /** - * 结果代码 - */ - private String code; - - /** - * 结果信息 - */ - private String msg; - - /** - * 时间戳 - */ - private String date; - - /** - * 接口版本号 - */ - private String version; - - public String getResult() { - return result; - } - - public void setResult(String result) { - this.result = result; - } - - public String getSign() { - return sign; - } - - public void setSign(String sign) { - this.sign = sign; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - @Override - public String toString() { - return "InterfaceResponse{" + - "result='" + result + '\'' + - ", sign='" + sign + '\'' + - ", code='" + code + '\'' + - ", msg='" + msg + '\'' + - ", date='" + date + '\'' + - ", version='" + version + '\'' + - '}'; - } - - /** - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 结果代码 + 结果信息 + 渠道类型 + 时间戳 + 结果字符串json - * @return 待签名字符串 - */ - public String content() { - return StrUtil.builder() - .append(StringUtil.convertNull(code)) - .append(StringUtil.convertNull(msg)) - .append(StringUtil.convertNull(date)) - .append(StringUtil.convertNull(result)) - .toString(); - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/Register.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/Register.java deleted file mode 100644 index d723d4f..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/Register.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.model; - -/** - * @author huangh - * @version 1.0 - * @description - * @date 2021/12/10 16:45 - */ - -public class Register { - /**业务类型编号,必须和接口文档一致*/ - public static String SERVICE_CODE = "register"; - //业务系统会员id - private String merUserId; - //手机号 - private String phone; - //子商户类型 - private String userType; - //子商户名称 - private String userName; - //身份证号码 - private String certId; - //法人身份证有效期 - private String certIdExpires; - //经营范围 - private String businessScope; - //统一社会信用码 - private String socialCreditCode; - //统一社会信用证有效期 - private String socialCreditCodeExpires; - //法人手机号 - private String legalPhone; - //法人姓名 - private String legalPerson; - //企业地址 - private String address; - //省份编码 - private String provCode; - //地区编码 - private String areaCode; - //附件编号 - private String fileNo; - //后台回调地址 - private String notifyUrl; - //自定义参数1 - private String parameter1; - //自定义参数2 - private String parameter2; - - public String getMerUserId() { - return merUserId; - } - - public void setMerUserId(String merUserId) { - this.merUserId = merUserId; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getUserType() { - return userType; - } - - public void setUserType(String userType) { - this.userType = userType; - } - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public String getCertId() { - return certId; - } - - public void setCertId(String certId) { - this.certId = certId; - } - - public String getCertIdExpires() { - return certIdExpires; - } - - public void setCertIdExpires(String certIdExpires) { - this.certIdExpires = certIdExpires; - } - - public String getBusinessScope() { - return businessScope; - } - - public void setBusinessScope(String businessScope) { - this.businessScope = businessScope; - } - - public String getSocialCreditCode() { - return socialCreditCode; - } - - public void setSocialCreditCode(String socialCreditCode) { - this.socialCreditCode = socialCreditCode; - } - - public String getSocialCreditCodeExpires() { - return socialCreditCodeExpires; - } - - public void setSocialCreditCodeExpires(String socialCreditCodeExpires) { - this.socialCreditCodeExpires = socialCreditCodeExpires; - } - - public String getLegalPhone() { - return legalPhone; - } - - public void setLegalPhone(String legalPhone) { - this.legalPhone = legalPhone; - } - - public String getLegalPerson() { - return legalPerson; - } - - public void setLegalPerson(String legalPerson) { - this.legalPerson = legalPerson; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getProvCode() { - return provCode; - } - - public void setProvCode(String provCode) { - this.provCode = provCode; - } - - public String getAreaCode() { - return areaCode; - } - - public void setAreaCode(String areaCode) { - this.areaCode = areaCode; - } - - public String getFileNo() { - return fileNo; - } - - public void setFileNo(String fileNo) { - this.fileNo = fileNo; - } - - public String getNotifyUrl() { - return notifyUrl; - } - - public void setNotifyUrl(String notifyUrl) { - this.notifyUrl = notifyUrl; - } - - public String getParameter1() { - return parameter1; - } - - public void setParameter1(String parameter1) { - this.parameter1 = parameter1; - } - - public String getParameter2() { - return parameter2; - } - - public void setParameter2(String parameter2) { - this.parameter2 = parameter2; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/UnbindAccount.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/UnbindAccount.java deleted file mode 100644 index 02beffa..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/UnbindAccount.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.model; - -public class UnbindAccount { - /**业务类型编号,必须和接口文档一致*/ - public static String SERVICE_CODE = "unbindAccount"; - - /** - * 子商户编号 - */ - private String userId; - - public String getUserId() { - return userId; - } - - public void setUserId(String userId) { - this.userId = userId; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/Base64.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/Base64.java deleted file mode 100644 index 68b75b4..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/Base64.java +++ /dev/null @@ -1,288 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.util; - -/** - * @Author xiaogc - * @Date 2021/12/21 14:23 - */ -public class Base64 { - static private final int BASELENGTH = 128; - static private final int LOOKUPLENGTH = 64; - static private final int TWENTYFOURBITGROUP = 24; - static private final int EIGHTBIT = 8; - static private final int SIXTEENBIT = 16; - static private final int FOURBYTE = 4; - static private final int SIGN = -128; - static private final char PAD = '='; - static private final boolean fDebug = false; - static final private byte[] base64Alphabet = new byte[BASELENGTH]; - static final private char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH]; - - static { - for (int i = 0; i < BASELENGTH; ++i) { - base64Alphabet[i] = -1; - } - for (int i = 'Z'; i >= 'A'; i--) { - base64Alphabet[i] = (byte) (i - 'A'); - } - for (int i = 'z'; i >= 'a'; i--) { - base64Alphabet[i] = (byte) (i - 'a' + 26); - } - - for (int i = '9'; i >= '0'; i--) { - base64Alphabet[i] = (byte) (i - '0' + 52); - } - - base64Alphabet['+'] = 62; - base64Alphabet['/'] = 63; - - for (int i = 0; i <= 25; i++) { - lookUpBase64Alphabet[i] = (char) ('A' + i); - } - - for (int i = 26, j = 0; i <= 51; i++, j++) { - lookUpBase64Alphabet[i] = (char) ('a' + j); - } - - for (int i = 52, j = 0; i <= 61; i++, j++) { - lookUpBase64Alphabet[i] = (char) ('0' + j); - } - lookUpBase64Alphabet[62] = (char) '+'; - lookUpBase64Alphabet[63] = (char) '/'; - - } - - private static boolean isWhiteSpace(char octect) { - return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9); - } - - private static boolean isPad(char octect) { - return (octect == PAD); - } - - private static boolean isData(char octect) { - return (octect < BASELENGTH && base64Alphabet[octect] != -1); - } - - /** - * Encodes hex octects into Base64 - * - * @param binaryData - * Array containing binaryData - * @return Encoded Base64 array - */ - public static String encode(byte[] binaryData) { - - if (binaryData == null) { - return null; - } - - int lengthDataBits = binaryData.length * EIGHTBIT; - if (lengthDataBits == 0) { - return ""; - } - - int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP; - int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP; - int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 - : numberTriplets; - char encodedData[] = null; - - encodedData = new char[numberQuartet * 4]; - - byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0; - - int encodedIndex = 0; - int dataIndex = 0; - if (fDebug) { - System.out.println("number of triplets = " + numberTriplets); - } - - for (int i = 0; i < numberTriplets; i++) { - b1 = binaryData[dataIndex++]; - b2 = binaryData[dataIndex++]; - b3 = binaryData[dataIndex++]; - - if (fDebug) { - System.out.println("b1= " + b1 + ", b2= " + b2 + ", b3= " + b3); - } - - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); - - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) - : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) - : (byte) ((b2) >> 4 ^ 0xf0); - byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) - : (byte) ((b3) >> 6 ^ 0xfc); - - if (fDebug) { - System.out.println("val2 = " + val2); - System.out.println("k4 = " + (k << 4)); - System.out.println("vak = " + (val2 | (k << 4))); - } - - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f]; - } - - // form integral number of 6-bit groups - if (fewerThan24bits == EIGHTBIT) { - b1 = binaryData[dataIndex]; - k = (byte) (b1 & 0x03); - if (fDebug) { - System.out.println("b1=" + b1); - System.out.println("b1<<2 = " + (b1 >> 2)); - } - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) - : (byte) ((b1) >> 2 ^ 0xc0); - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; - encodedData[encodedIndex++] = PAD; - encodedData[encodedIndex++] = PAD; - } else if (fewerThan24bits == SIXTEENBIT) { - b1 = binaryData[dataIndex]; - b2 = binaryData[dataIndex + 1]; - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); - - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) - : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) - : (byte) ((b2) >> 4 ^ 0xf0); - - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; - encodedData[encodedIndex++] = PAD; - } - - return new String(encodedData); - } - - /** - * Decodes Base64 data into octects - * - * @param encoded - * string containing Base64 data - * @return Array containind decoded data. - */ - public static byte[] decode(String encoded) { - - if (encoded == null) { - return null; - } - - char[] base64Data = encoded.toCharArray(); - // remove white spaces - int len = removeWhiteSpace(base64Data); - - if (len % FOURBYTE != 0) { - return null;// should be divisible by four - } - - int numberQuadruple = (len / FOURBYTE); - - if (numberQuadruple == 0) { - return new byte[0]; - } - - byte decodedData[] = null; - byte b1 = 0, b2 = 0, b3 = 0, b4 = 0; - char d1 = 0, d2 = 0, d3 = 0, d4 = 0; - - int i = 0; - int encodedIndex = 0; - int dataIndex = 0; - decodedData = new byte[(numberQuadruple) * 3]; - - for (; i < numberQuadruple - 1; i++) { - - if (!isData((d1 = base64Data[dataIndex++])) - || !isData((d2 = base64Data[dataIndex++])) - || !isData((d3 = base64Data[dataIndex++])) - || !isData((d4 = base64Data[dataIndex++]))) { - return null; - }// if found "no data" just return null - - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); - } - - if (!isData((d1 = base64Data[dataIndex++])) - || !isData((d2 = base64Data[dataIndex++]))) { - return null;// if found "no data" just return null - } - - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - - d3 = base64Data[dataIndex++]; - d4 = base64Data[dataIndex++]; - if (!isData((d3)) || !isData((d4))) {// Check if they are PAD characters - if (isPad(d3) && isPad(d4)) { - if ((b2 & 0xf) != 0)// last 4 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 1]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4); - return tmp; - } else if (!isPad(d3) && isPad(d4)) { - b3 = base64Alphabet[d3]; - if ((b3 & 0x3) != 0)// last 2 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 2]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - return tmp; - } else { - return null; - } - } else { // No PAD e.g 3cQl - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); - - } - - return decodedData; - } - - /** - * remove WhiteSpace from MIME containing encoded Base64 data. - * - * @param data - * the byte array of base64 data (with WS) - * @return the new length - */ - private static int removeWhiteSpace(char[] data) { - if (data == null) { - return 0; - } - - // count characters that's not whitespace - int newSize = 0; - int len = data.length; - for (int i = 0; i < len; i++) { - if (!isWhiteSpace(data[i])) { - data[newSize++] = data[i]; - } - } - return newSize; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/CacheUtils.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/CacheUtils.java deleted file mode 100644 index 777e268..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/CacheUtils.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.util; - -import cn.hutool.cache.CacheUtil; -import cn.hutool.cache.impl.TimedCache; - -/** - * @author linqy - * 缓存工具类,生产建议使用其他缓存中间件 - */ -public class CacheUtils { - private static final TimedCache<String, String> TIMED_CACHE = CacheUtil.newTimedCache(5000); - - static { - /** 每1s检查一次过期 */ - TIMED_CACHE.schedulePrune(1000); - } - - /** - * 存入键值对,提供消逝时间 - * - * @param key - * @param value - * @param timeout - */ - public static void put(String key, String value, Long timeout) { - /** 设置消逝时间 */ - TIMED_CACHE.put(key, value, timeout); - } - - /** - * 每次重新get一次缓存,均会重新刷新消逝时间 - * @param key - * @return - */ - public static String get(String key) { - return TIMED_CACHE.get(key); - } - -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSAEncryptGeneration.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSAEncryptGeneration.java deleted file mode 100644 index 227d3f2..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSAEncryptGeneration.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.util; -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.security.interfaces.RSAPrivateKey; -import java.security.interfaces.RSAPublicKey; - -/** - * 公私钥代码生成 - * @Author xiaogc - * @Date 2021/12/21 14:22 - */ -public class RSAEncryptGeneration { - - public static void main(String[] args) { - // 生成一对公私钥到指定路径下 .pfx私钥 .cer公钥 - RSAEncryptGeneration.genKeyPair("D:\\tools"); - } - /** - * 随机生成密钥对 - */ - public static void genKeyPair(String filePath) { - // KeyPairGenerator类用于生成公钥和私钥对,基于RSA算法生成对象 - KeyPairGenerator keyPairGen = null; - try { - keyPairGen = KeyPairGenerator.getInstance("RSA"); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - // 初始化密钥对生成器,密钥大小为96-1024位 - keyPairGen.initialize(1024, new SecureRandom()); - // 生成一个密钥对,保存在keyPair中 - KeyPair keyPair = keyPairGen.generateKeyPair(); - // 得到私钥 - RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); - // 得到公钥 - RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); - try { - // 得到公钥字符串 - String publicKeyString = Base64.encode(publicKey.getEncoded()); - System.out.println("公钥字符串:"+publicKeyString); - // 得到私钥字符串 - String privateKeyString = Base64.encode(privateKey.getEncoded()); - System.out.println("私钥字符串:"+privateKeyString); - // 将密钥对写入到文件 .pfx私钥 .cer公钥 - FileWriter pubfw = new FileWriter(filePath + "/merchant_no.cer"); - FileWriter prifw = new FileWriter(filePath + "/merchant_no.pfx"); - BufferedWriter pubbw = new BufferedWriter(pubfw); - BufferedWriter pribw = new BufferedWriter(prifw); - pubbw.write(publicKeyString); - pribw.write(privateKeyString); - pubbw.flush(); - pubbw.close(); - pubfw.close(); - pribw.flush(); - pribw.close(); - prifw.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSASignature.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSASignature.java deleted file mode 100644 index 37eb368..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSASignature.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.util; - - -import com.agentdriving.driver.modular.system.util.MallBook.config.ChannelConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.security.KeyFactory; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.spec.PKCS8EncodedKeySpec; -import java.security.spec.X509EncodedKeySpec; - -/** - * @author RSA签名验签类 - */ -public class RSASignature { - - public static Logger logger = LoggerFactory.getLogger(RSASignature.class); - - /** - * 签名算法 - */ - public static final String SIGN_ALGORITHMS = "SHA1WithRSA"; - - - /** - * 商户平台私钥签名 - * - * @param content - * @return - */ - public static String sign(String content) { - try { - String privateKey = ChannelConfig.merchantPrivateKey; - PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decode(privateKey)); - KeyFactory keyf = KeyFactory.getInstance("RSA"); - PrivateKey priKey = keyf.generatePrivate(priPKCS8); - java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS); - signature.initSign(priKey); - signature.update(content.getBytes()); - byte[] signed = signature.sign(); - return Base64.encode(signed); - } catch (Exception e) { - logger.error("签名失败{}", e); - } - return null; - } - - - /** - * 读取证书 - * - * @param filePath 证书文件路径 - */ - public static String loadKey(String filePath) throws Exception { - try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { - String readLine; - StringBuilder sb = new StringBuilder(); - while ((readLine = br.readLine()) != null) { - sb.append(readLine); - } - return sb.toString(); - } catch (IOException e) { - throw new Exception("私钥数据读取错误"); - } catch (NullPointerException e) { - throw new Exception("私钥输入流为空"); - } - } - - - /** - * mallbook公钥验签 - * - * @param content 待签名数据 - * @param sign 签名值 - * @return false 验签失败 true 成功 - */ - public static boolean validate(String content, String sign) { - boolean verify = false; - try { - String publicKey = ChannelConfig.mallBookPublicKey; - verify = RSASignature.doCheck(content, sign, publicKey, "utf-8"); - } catch (Exception e) { - logger.error("验签失败:{}", e); - } - return verify; - } - - - /** - * RSA验签 - * - * @param content 待签名数据 - * @param sign 签名值 - * @param publicKey 分配给开发商公钥 - * @param encode 字符集编码 - * @return 布尔值 - */ - public static boolean doCheck(String content, String sign, String publicKey, String encode) { - try { - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - byte[] encodedKey = Base64.decode(publicKey); - PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey)); - java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS); - signature.initVerify(pubKey); - signature.update(content.getBytes(encode)); - return signature.verify(Base64.decode(sign)); - } catch (Exception e) { - logger.error("验签失败{}", e); - } - return false; - } - -} \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/StringUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/StringUtil.java deleted file mode 100644 index 3061272..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/StringUtil.java +++ /dev/null @@ -1,23 +0,0 @@ - -package com.agentdriving.driver.modular.system.util.MallBook.util; - -import cn.hutool.core.util.StrUtil; - - -public class StringUtil extends StrUtil { - - /** - * null转为空字符串 - * - * @param str - * @return - */ - public static String convertNull(String str) { - if (str == null) { - return ""; - } - return str; - } - - -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/TrhRequest.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/TrhRequest.java deleted file mode 100644 index 8199b31..0000000 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/TrhRequest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.agentdriving.driver.modular.system.util.MallBook.util; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.exceptions.ValidateException; -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONUtil; -import com.agentdriving.driver.modular.system.util.MallBook.config.ChannelConfig; -import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceRequest; -import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceResponse; - -/** - * @Author xiaogc - * @Date 2022/1/24 13:45 - */ -public class TrhRequest<T> { - - public InterfaceResponse execute(T t, String serverCode) { - InterfaceRequest<T> request = new InterfaceRequest(t, serverCode); - System.out.println("mallbook请求参数:" + JSONUtil.toJsonStr(request)); - String result = HttpUtil.post(ChannelConfig.payUrl, BeanUtil.beanToMap(request)); - System.out.println("mallbook响应参数:" + result); - InterfaceResponse response = JSONUtil.toBean(result, InterfaceResponse.class); - boolean verify = RSASignature.validate(response.content(), response.getSign()); - if (!verify) { - throw new ValidateException("签名验证失败"); - } else { - System.out.printf("签名验证通过"); - } - return response; - } -} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java new file mode 100644 index 0000000..f16e130 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java @@ -0,0 +1,44 @@ +package com.agentdriving.driver.modular.system.util; + +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileItemFactory; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; + +import java.io.*; + +/** + * @author zhibing.pu + * @date 2023/5/23 18:29 + */ +public class MultipartFileUtil { + + private MultipartFileUtil() { } + + + public static MultipartFile fileToMultipartFile(File file) { + FileItem fileItem = createFileItem(file); + MultipartFile multipartFile = new CommonsMultipartFile(fileItem); + return multipartFile; + } + + private static FileItem createFileItem(File file) { + FileItemFactory factory = new DiskFileItemFactory(16, null); + FileItem item = factory.createItem("textField", "text/plain", true, file.getName()); + int bytesRead = 0; + byte[] buffer = new byte[8192]; + try { + FileInputStream fis = new FileInputStream(file); + OutputStream os = item.getOutputStream(); + while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) { + os.write(buffer, 0, bytesRead); + } + os.close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + return item; + } +} diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java index 54fd8a3..6dd93c1 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java @@ -46,7 +46,7 @@ @Scheduled(cron = "0 0 0 * * *") public void taskDay(){ try { - accountChangeDetailService.deductionInsurance(); + }catch (Exception e){ e.printStackTrace(); } diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java index 37b8fa3..4852819 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java @@ -13,10 +13,10 @@ */ public class OBSUtil { - public static String endPoint = "https://obs.cn-south-1.myhuaweicloud.com"; - public static String ak = "N52IGR6DHOC3JAZFHZIW"; - public static String sk = "jq7Q7jnFS4Gxamwh3naN2sbNKwQQ7cZISPVumGBS"; - public static String bucketname = "csxdj"; + public static String endPoint = "https://obs.cn-southwest-2.myhuaweicloud.com"; + public static String ak = "YMBKC9LS6CDG9QHCIGUU"; + public static String sk = "kztanexutGzoGiYcIALCNhazfxoU6yecDOSBrFXu"; + public static String bucketname = "fanghuadaijia"; /** * 上传文件 @@ -31,7 +31,7 @@ // 待上传的本地文件路径,需要指定到具体的文件名 PutObjectRequest request = new PutObjectRequest(); request.setBucketName(bucketname); - request.setObjectKey(objectKey); + request.setObjectKey("img/" + objectKey); request.setInput(inputStream); PutObjectResult putObjectResult = obsClient.putObject(request); return putObjectResult.getObjectUrl(); diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java index bdd46f6..f3d0837 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java @@ -19,7 +19,7 @@ static Logger logger = LoggerFactory.getLogger("ServiceLog"); - private final static String key = "5cc9622f299335639dbc046f3812c52a"; + private final static String key = "7589cb21f09f6ab1a1263ca98f0b4d52"; private static HttpClientUtil httpClientUtil = new HttpClientUtil(); diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java index 6e35b3e..5e8675a 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java @@ -25,7 +25,7 @@ private final static String bad_weather = "[{\"wid\":\"03\",\"weather\":\"阵雨\"},{\"wid\":\"04\",\"weather\":\"雷阵雨\"},{\"wid\":\"05\",\"weather\":\"雷阵雨伴有冰雹\"},{\"wid\":\"06\",\"weather\":\"雨夹雪\"},{\"wid\":\"07\",\"weather\":\"小雨\"},{\"wid\":\"08\",\"weather\":\"中雨\"},{\"wid\":\"09\",\"weather\":\"大雨\"},{\"wid\":\"10\",\"weather\":\"暴雨\"},{\"wid\":\"11\",\"weather\":\"大暴雨\"},{\"wid\":\"12\",\"weather\":\"特大暴雨\"},{\"wid\":\"13\",\"weather\":\"阵雪\"},{\"wid\":\"14\",\"weather\":\"小雪\"},{\"wid\":\"15\",\"weather\":\"中雪\"},{\"wid\":\"16\",\"weather\":\"大雪\"},{\"wid\":\"17\",\"weather\":\"暴雪\"},{\"wid\":\"19\",\"weather\":\"冻雨\"},{\"wid\":\"20\",\"weather\":\"沙尘暴\"},{\"wid\":\"21\",\"weather\":\"小到中雨\"},{\"wid\":\"22\",\"weather\":\"中到大雨\"},{\"wid\":\"23\",\"weather\":\"大到暴雨\"},{\"wid\":\"24\",\"weather\":\"暴雨到大暴雨\"},{\"wid\":\"25\",\"weather\":\"大暴雨到特大暴雨\"},{\"wid\":\"26\",\"weather\":\"小到中雪\"},{\"wid\":\"27\",\"weather\":\"中到大雪\"},{\"wid\":\"28\",\"weather\":\"大到暴雪\"},{\"wid\":\"30\",\"weather\":\"扬沙\"},{\"wid\":\"31\",\"weather\":\"强沙尘暴\"},{\"wid\":\"53\",\"weather\":\"霾\"}]"; - private final static String key = "aaebb3e5c18fd371257a2ab6b5670efe"; + private final static String key = "edc965edb129580401ed211eaa4ae8ab"; private static HttpClientUtil httpClientUtil = new HttpClientUtil(); diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java index 7c91607..7512e82 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java @@ -26,7 +26,7 @@ private Integer cancelTimes; @ApiModelProperty("与用户距离") private Double currentDistance; - @ApiModelProperty("订单来源(1=用户创建,2=司机创建)") + @ApiModelProperty("订单来源(1=用户创建,2=司机创建,3=后台创建)") private Integer source; @ApiModelProperty("下单时间") private Long createTime; diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java index 48317ce..e30b858 100644 --- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java +++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java @@ -27,7 +27,7 @@ private Double currentDistance; @ApiModelProperty("预估接驾时间") private Integer pickUpTime; - @ApiModelProperty("订单来源(1=用户创建,2=司机创建)") + @ApiModelProperty("订单来源(1=用户创建,2=司机创建,3=后台创建)") private Integer source; @ApiModelProperty("下单时间") private Long createTime; diff --git a/driver/guns-admin/src/main/resources/application.yml b/driver/guns-admin/src/main/resources/application.yml index f936063..dd26d12 100644 --- a/driver/guns-admin/src/main/resources/application.yml +++ b/driver/guns-admin/src/main/resources/application.yml @@ -13,8 +13,8 @@ application: name: driver-server profiles: - active: dev -# active: produce +# active: dev + active: produce mvc: static-path-pattern: /static/** view: @@ -55,8 +55,8 @@ datasource: url: jdbc:mysql://127.0.0.1:3306/fh_agent_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai username: root -# password: PI_v6J5@dvHwGTqc - password: 123456 + password: PI_v6J5@dvHwGTqc +# password: 123456 db-name: guns #用来搜集数据库的所有表 filters: wall,mergeStat @@ -77,26 +77,21 @@ wx: grantType: authorization_code #填authorization_code - appid: wx8a9af3889395d0e1 #应用唯一标识,在微信开放平台提交应用审核通过后获得 - appSecret: 95a34f114973298cce4297a20bb59bc3 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 + appid: wxa89b3291683bb3ff #应用唯一标识,在微信开放平台提交应用审核通过后获得 + appSecret: 3883f641d86c6f0e4e9365bbdaa1affe #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 appletsAppid: 1 #小程序APPid appletsAppSecret: 1 # - mchId: 1636941942 #微信支付分配的商户号 - key: Eri2GR2SB3b6iIhaoD7k3KQ8X0wf1Ybh #key为商户平台设置的密钥key: - apiv3: AKJ51Z4nhSqYBxmOXgUyCKA1vLP0J5Aj #key为商户平台设置的密钥key: + mchId: 1644659263 #微信支付分配的商户号 + key: KY7XYaJwnZPV4O5CvJ6CreywiUxxnUGM #key为商户平台设置的密钥key: + apiv3: mAhbxa2ez1GUNWIArATff4b630AH99yg #key为商户平台设置的密钥key: --- alipay: - appid: 2021001161600393 #应用程序唯一标识 - appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEbTcG2wz+kaYDo2YxflpHE59MvKc3rbl6RlBgO6i5GzgphzeRTv5kRWUpSVkKCsbxFvAYLcgFPmm5nY2fz5hCTKiRcYfpUjH/OougUbzYU3ilUc9JqMbmvy7KN+Kv7+kQYCGLvMqlyYPiJ7LrmJLpE/FUcNLDwo6xUmwJSxaF7M4TbD3ZQZdddki1iJp9GihlqehZCMWOBeotEXvPKDEzSEkYlnvHPQaaspVgeesGmlHDuOiZUokENutxpjo7klWe97NA49hXEtI+xlczNGJKdBr0keBX/kSMsnx8kMxYDjh4QTySBaR6zlO4RYPFekWv9QZ2CrfiKCS7AHUpZYZ5AgMBAAECggEAXjCoUPIBHhhOcowIJe/vGlr0lUohzdJ8+GGGzcvhSDf6DF+mwG3lN0C8oU8QS7o6okRkZW46tLAd1u4fS6oGbDHGPBz6RJQ4B4eGxHMe1OcaCsxTmdq4DmuxRhfV3rnPldwqQA/6O01HxtXhxvzwkWOj5SGSZ7a8c5diTIHh9ULd6neUI/rIFC97mH1TeW0uDIxAtyvswz0pIfDhAR+lsOyTg/8qzsIXjpBFG4gAVxhUeUqQA5HzbsFglC08V7ViDk1OEoWi3yIj1CmNdtntJI4cxqLgTK7MNB9udhbN2I9YasuIpZvlAcvPi5R9cYT8vvFBCFGM+i22wtcsQmxdAQKBgQDaD9y6WNmsp+IaAUG3FqbJC8SqwreGIiEflWwVjrd+LuN6yhyr45CobOmhbTz0de8gRJEZKgJZEJcywL1ScrPIC4n1JaG688lk5aR+0Lik5fy1+L6G/CydJoJqlh6KKdwPJmDGpVu/geLJcLkWcYOwL56IL7GK2JI1p607R0x6iQKBgQCbd0n4xG9GkpvW4LDAJiMEhwPu9QcCKIT0mXVXCgMFdWel9bY3+8RSZoziWutaofm9tRHFAqwjbRyOZ+EdckkNsWVkkTnkKGtAhYKgM0GaOwdMFxmvME5WYJ74a5t1jiezDmR3obUBtS2nyQ8CFPUnlimoTR9F6APrth3h8uvwcQKBgFWaCn1AqdrEYNbyjViRVNHxg7fBDohiV3xtjOt9hfzL7VLjipPTlpL3hlNvbZFNxpx1LjyhqCBMif5LeUanbnnmRbbtmeqpDvNDzupVh1Z8TlMlHa4hymW6m1G6MqzsN83es/jnKvgnxd5sGMx9rUN5vhMaHekykVrswu1VVOl5AoGAMDljh7gfMEv/7TqLeT8bM6dR8AivoNrCy0Di5hnj8AiIGzHJ0TnWnxzSbNB5GwcNeew109/NV7vb1MyiRskRoh657eUiiQSEqGIBsAHWQqo2zEKKJA6e7ipQhYyTj3aGGAPJ5FYT2LDDtb0nW6T2ms34pA0wOzYKKU63nEQHLfECgYEAgbbpZJRtPxWB1M/Dg7loguT5O/VUsKefS0JrSD+tJIqYkumH5mejvYW5YEeDdelkvBhAEFUW9JOkzL+1w1g3wz2QQ2aPV/r55cJE3EfOzbwgw6GsO+8UuyiavbFhS3pFZNI0pR5M3u1+SIcLqQCnYLbO11vnEXglB6wjw9/oxPE= #开发者应用私钥 - alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhG03BtsM/pGmA6NmMX5aRxOfTLynN625ekZQYDuouRs4KYc3kU7+ZEVlKUlZCgrG8RbwGC3IBT5puZ2Nn8+YQkyokXGH6VIx/zqLoFG82FN4pVHPSajG5r8uyjfir+/pEGAhi7zKpcmD4iey65iS6RPxVHDSw8KOsVJsCUsWhezOE2w92UGXXXZItYiafRooZanoWQjFjgXqLRF7zygxM0hJGJZ7xz0GmrKVYHnrBppRw7jomVKJBDbrcaY6O5JVnvezQOPYVxLSPsZXMzRiSnQa9JHgV/5EjLJ8fJDMWA44eEE8kgWkes5TuEWDxXpFr/UGdgq34igkuwB1KWWGeQIDAQAB #应用公钥 - alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzmDrvcNvhexu3KkxVS9bemdSn6pyQUFmpyOGMDOirGR+RbmldpH2N9bPegzZynb5+bmRHii4ib31XeoXc7M7r6UsPhmPeLoSBNwpC+Uig0VxPa0hmvHjAl6StArhB3eMib6Zo40nM6eCYZLLZ1kKpI5Ad/APov9uLrbSnoeZsgeRibQix07arvTEsZq6pJavNlA+UBjp65o6Bv0+kfQ65pMTpbu+jRtTzkTj1hoW9PjwlWrY21F1FvN67zDWkTB2LjGFsqan0Qoe4/X8nK3VsDvkjIm/ZQsnQr8ZzfcuTzQPrcZpo3h9DPZoHeiToEfXtyk7E0bQHEmYVpmrvk/IJwIDAQAB #支付宝公钥 - ---- - -juhe: #聚合数据 - appKey: 0d3fd83eddaa33e5563f548257648577 # + appid: 111 #应用程序唯一标识 + appPrivateKey: 111 #开发者应用私钥 + alipayPublicKey: 111 #应用公钥 + alipay_public_key: 111 #支付宝公钥 --- @@ -116,30 +111,12 @@ spring: data: mongodb: -# uri: mongodb://root:bv@_N36o+cTe1LpS@127.0.0.1:27017/admin - uri: mongodb://127.0.0.1:27017/admin + uri: mongodb://root:PaWPtGG95APCMBEb@127.0.0.1:27017/admin +# uri: mongodb://127.0.0.1:27017/admin --- rongyun: - app_key: k51hidwqkx92b - app_secret: t0jxbPrHHar - - -# mallbook 调起接口参数配置 -mallbook: - # pay_url:mallbook接口地址 测试环境: http://ld.mallbook.cn:12000/api 生产环境:https://cloudpay.mallbook.cn/api - pay_url: http://ld.mallbook.cn:12000/api - # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号 - merchant_no: 需要替换内容 - # version 接口版本号 - version: 1.0.0 - # channel_type 渠道类型 HF:汇付 - channel_type: HF - # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥 - merchant_private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIoGARvX6k6rVwuUW6HjAPkzXVntCtDI8q/niGZbeILc5T/noer+UNDECSy9f8T6ENw7tEKWaHOFcicrqgRv+wXeo2hPiJI2iYsUNs6I8ckd8i4uy/PBEDMW78GlnQLAatk0NC44HKjn8cuIHaETKNG2Vk3rwGBzNgDZ/God1L6JAgMBAAECgYBhCsOwzehBk5pJ2+9pLO+8Rm72EQGvtflb0BBI1zst1x2gBr4DOPedMJe6yymQVrmP/rJItvONdV/DRqHtKMZ2Wa4ul/U1mDnAtS/FkpRYBA5FaXV2hNEW11xBLhL5iGk35P23Bzaa0MJw9Vsd0vjeykridIw/PweDyTdeRBwC2QJBANS+iOaKRuf6BRwCKDmBSHOiZmc/kKnpx2f5BD3h+LWEX3JsNxObMbW1SxQIf2/qwqzIoEm/WbWaOyuwtRZkXQ8CQQCmFjTm5l+Ws2LoQgM+5+eLmPyMyRFOu4G8yqsUkhKuANHK/qrsS1GTbv6SN341NijjNYl05e0h6Jq1T9UZmtrnAkEAwTfzmn7H+3RmI5QJ+IBkzzEWFHv05X0/8DyID7QmcKWzEncaZqIzObdYYu983qa2/LqSaahyz68uQnYRYi7xHQJATr3SgPIRuaH8r360iTtrRHzYp2qgYQJ25On1KECEyKgszp/kqzieSVbjLLFQjavKwMXeEGT+AwiDaJibwJLxWwJAXZApORsqGqdxc9FTxt5iiqG2ZP5DTXxc6E+ihmlmoVl9KncgTf9ez0Q0Qz/4KUTPTHNVgzt1nyBxiLtnyzFavA== - # mall_book_public_key mallbook测试环境公钥 不需要替换 - mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0L2DaHOO8ekhktB6RoHxIcki/0v7OUeOn9tX9VBE+jv6PRjqlZRWL3Qezxz5ADtHEyLv+RFFaceXSep6rWyoQ6DRlvLv5CySUAxAM42LLVe4DI3l/0ccEAIuU5NCpwAAj1zkm2X01DwUCZwymLjlqbDlBvQhpq+1fddtTtA/QLQIDAQAB - # mall_book_public_key mallbook生产环境公钥 不需要替换 - # mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB + app_key: 82hegw5u86n4x + app_secret: 16ezqnP0EEU7 diff --git a/driver/guns-admin/src/main/resources/redis.properties b/driver/guns-admin/src/main/resources/redis.properties index 1d000e8..c64267e 100644 --- a/driver/guns-admin/src/main/resources/redis.properties +++ b/driver/guns-admin/src/main/resources/redis.properties @@ -2,19 +2,19 @@ # Redis���ݿ�������Ĭ��Ϊ0�� spring.redis.database=0 -## Redis��������ַ -#spring.redis.host=127.0.0.1 -## Redis���������Ӷ˿� -#spring.redis.port=16379 -## Redis�������������루Ĭ��Ϊ�գ� -#spring.redis.password=wuOT@8NLdZ*V09Jt - # Redis��������ַ spring.redis.host=127.0.0.1 # Redis���������Ӷ˿� -spring.redis.port=6379 +spring.redis.port=16379 # Redis�������������루Ĭ��Ϊ�գ� -spring.redis.password=123456 +spring.redis.password=wuOT@8NLdZ*V09Jt + +## Redis��������ַ +#spring.redis.host=127.0.0.1 +## Redis���������Ӷ˿� +#spring.redis.port=6379 +## Redis�������������루Ĭ��Ϊ�գ� +#spring.redis.password=123456 # ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ� spring.redis.jedis.pool.max-active=1024 diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java index 2bd89db..1fa5adb 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java @@ -5,19 +5,18 @@ import com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp; import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp; import com.stylefeng.guns.modular.system.controller.util.ExcelUtil; +import com.stylefeng.guns.modular.system.model.TCashWithdrawal; import com.stylefeng.guns.modular.system.model.TDriver; +import com.stylefeng.guns.modular.system.service.ITCashWithdrawalService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.beans.factory.annotation.Autowired; import com.stylefeng.guns.core.log.LogObjectHolder; -import org.springframework.web.bind.annotation.RequestParam; import com.stylefeng.guns.modular.system.model.TRevenue; import com.stylefeng.guns.modular.system.service.ITRevenueService; @@ -44,6 +43,13 @@ @Autowired private ITRevenueService tRevenueService; + + + @Autowired + private ITCashWithdrawalService cashWithdrawalService; + + + /** * 跳转到首页 @@ -216,4 +222,19 @@ e.printStackTrace(); } } + + + /** + * 同意提现 + * @param id + * @return + */ + @ResponseBody + @PostMapping("/agreeWithdraw") + public Object agreeWithdraw(Integer id){ + TCashWithdrawal tCashWithdrawal = cashWithdrawalService.selectById(id); + tCashWithdrawal.setState(2); + cashWithdrawalService.updateById(tCashWithdrawal); + return SUCCESS; + } } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java index 24d5a39..a84a7fc 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java @@ -146,23 +146,29 @@ .last("LIMIT 1")); JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent()); JSONArray array = jsonObject.getJSONArray("ChargeStandard"); - JSONArray objects = new JSONArray(); - for (int i = 0; i < array.size(); i++) { - JSONObject jsonObject1 = JSONObject.parseObject(JSONObject.toJSONString(array.get(i))); - if(i == 0){ - jsonObject1.put("key",0); - }else { - jsonObject1.put("key",1); - } - objects.add(jsonObject1); + JSONObject defaule = array.getJSONObject(0); + JSONArray num3 = defaule.getJSONArray("num3"); + for (int i = 0; i < num3.size(); i++) { + JSONObject jsonObject1 = num3.getJSONObject(i); + jsonObject1.put("index", i); } - + JSONArray array1 = new JSONArray(); + for (int i = 1; i < array.size(); i++) { + JSONObject jsonObject1 = array.getJSONObject(i); + JSONArray num32 = jsonObject1.getJSONArray("num3"); + for (int j = 0; j < num32.size(); j++) { + JSONObject jsonObject2 = num32.getJSONObject(j); + jsonObject2.put("index", j); + } + array1.add(array.get(i)); + } + model.addAttribute("defaule", defaule); + model.addAttribute("array", array1); TSystemConfig config = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 8) .last("LIMIT 1")); JSONObject jsonObj = JSONObject.parseObject(config.getContent()); Integer zcOne = jsonObj.getInteger("num1"); - model.addAttribute("zcOne",zcOne); - model.addAttribute("array",objects); + model.addAttribute("zcOne", zcOne); JSONObject extraCost = JSONObject.parseObject(jsonObject.getString("ExtraCost")); model.addAttribute("ExtraCost",extraCost); return PREFIX + "tSystemConfigPriceRules.html"; diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java index 084d76d..495a902 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java @@ -39,7 +39,7 @@ private Logger log = LoggerFactory.getLogger(this.getClass()); - private final static String KEY = "5cc9622f299335639dbc046f3812c52a"; + private final static String KEY = "7589cb21f09f6ab1a1263ca98f0b4d52"; //请求超时时间 private final static Integer TIME_OUT = 1000; diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java index 43d547b..ff310a5 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java @@ -483,19 +483,18 @@ JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard"); JSONObject extraCost = jsonObject.getJSONObject("ExtraCost"); Date date = new Date(); - for (int i = 0; i < chargeStandard.size(); i++) { + + boolean b = true; + for (int i = 1; i < chargeStandard.size(); i++) {//各种时间段 JSONObject jsonObject1 = chargeStandard.getJSONObject(i); String num1 = jsonObject1.getString("num1"); String num2 = jsonObject1.getString("num2"); - Double num3 = jsonObject1.getDouble("num3");//起步里程 - Double num4 = jsonObject1.getDouble("num4");//起步价格 - Double num5 = jsonObject1.getDouble("num5");//超过公里 - Double num6 = jsonObject1.getDouble("num6");//超过num3每num5公里收取num6 - Double num7 = jsonObject1.getDouble("num7");//长途起始公里 - Double num8 = jsonObject1.getDouble("num8");//长途结束公里 - Double num9 = jsonObject1.getDouble("num9");//长途费 - Double num10 = jsonObject1.getDouble("num10");//超出长途里程每num10公里 - Double num11 = jsonObject1.getDouble("num11");//超过num8每num10公里收取num11 + JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程 + Double num4 = jsonObject1.getDouble("num4");//长途里程 + Double num5 = jsonObject1.getDouble("num5");//长途里程 + Double num6 = jsonObject1.getDouble("num6");//长途费 + Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里 + Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11 String[] split = num1.split(":"); Calendar s = Calendar.getInstance(); @@ -512,33 +511,81 @@ e.set(Calendar.SECOND, 0); if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){ - if(num3.compareTo(distance) >= 0){//起步里程内 - order.setStartDistance(distance);//起步里程 - order.setStartPrice(new BigDecimal(num4));//起步价 - }else{ - BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程 - BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN)); - BigDecimal multiply = divide.multiply(new BigDecimal(num6)); - order.setStartDistance(num3);//起步里程 - order.setStartPrice(new BigDecimal(num4));//起步价 - order.setOverDriveDistance(subtract.doubleValue());//超出起步里程 - order.setOverDrivePrice(multiply);//超出起步里程费 - + b = false; + Double dd = 0d; + for (int j = 0; j < num3.size(); j++) { + JSONObject jsonObject2 = num3.getJSONObject(j); + Double num1_1 = jsonObject2.getDouble("num1"); + Double num2_1 = jsonObject2.getDouble("num2"); + Double num3_1 = jsonObject2.getDouble("num3"); + if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){ + order.setStartDistance(distance);//起步里程 + order.setStartPrice(new BigDecimal(num3_1));//起步价 + } + if(j == num3.size() - 1 && order.getStartPrice().doubleValue() == 0){ + order.setStartDistance(num2_1);//起步里程 + order.setStartPrice(new BigDecimal(num3_1));//起步价 + dd = distance - num2_1; + } + } + if(dd != 0){ //计算长途费 - if(distance.compareTo(num7) > 0){ - order.setLongDistance(num7 + "-" + num8);//长途里程 - order.setLongDistancePrice(new BigDecimal(num9));//长途费 + if(distance.compareTo(num4) > 0){ + order.setLongDistance(num4 + "-" + num5);//长途里程 + order.setLongDistancePrice(new BigDecimal(num6));//长途费 } //计算长途里程超出的部分 - if(distance.compareTo(num8) > 0){ - BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)); - BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN)); - BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11)); + if(distance.compareTo(num5) > 0){ + BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5)); + BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN)); + BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8)); order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 order.setOverLongDistancePrice(multiply1);//超出长途里程费 } } break; + } + } + + if(b){//默认配置 + JSONObject jsonObject1 = chargeStandard.getJSONObject(0); + JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程 + Double num4 = jsonObject1.getDouble("num4");//长途里程 + Double num5 = jsonObject1.getDouble("num5");//长途里程 + Double num6 = jsonObject1.getDouble("num6");//长途费 + Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里 + Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11 + + Double dd = 0d; + for (int j = 0; j < num3.size(); j++) { + JSONObject jsonObject2 = num3.getJSONObject(j); + Double num1_1 = jsonObject2.getDouble("num1"); + Double num2_1 = jsonObject2.getDouble("num2"); + Double num3_1 = jsonObject2.getDouble("num3"); + if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){ + order.setStartDistance(distance);//起步里程 + order.setStartPrice(new BigDecimal(num3_1));//起步价 + } + if(j == num3.size() - 1 && order.getStartPrice().doubleValue() == 0){ + order.setStartDistance(num2_1);//起步里程 + order.setStartPrice(new BigDecimal(num3_1));//起步价 + dd = distance - num2_1; + } + } + if(dd != 0){ + //计算长途费 + if(distance.compareTo(num4) > 0){ + order.setLongDistance(num4 + "-" + num5);//长途里程 + order.setLongDistancePrice(new BigDecimal(num6));//长途费 + } + //计算长途里程超出的部分 + if(distance.compareTo(num5) > 0){ + BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5)); + BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN)); + BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8)); + order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 + order.setOverLongDistancePrice(multiply1);//超出长途里程费 + } } } @@ -566,7 +613,7 @@ //恶劣天气 systemConfig = systemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 8)); - if(null != systemConfig) { + if(null != systemConfig){ JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent()); Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价 if(1 == num11){ @@ -595,11 +642,6 @@ } } - - //计算折扣 - if(null != order.getUserId()){ - - } //计算总金额 BigDecimal bigDecimal = order.getStartPrice().add(order.getOverDrivePrice()).add(order.getLongDistancePrice()).add(order.getOverLongDistancePrice()) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java index a21e4bd..6e4d926 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java @@ -102,6 +102,7 @@ @Override public void packageModel(RevenueExpenditureResp revenueExpenditureResp,Model model) { + model.addAttribute("id",revenueExpenditureResp.getId()); model.addAttribute("code",revenueExpenditureResp.getCode()); model.addAttribute("businessTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(revenueExpenditureResp.getBusinessTime())); model.addAttribute("businessType",revenueExpenditureResp.getBusinessType()); @@ -109,6 +110,7 @@ model.addAttribute("driverPhone",revenueExpenditureResp.getDriverPhone()); model.addAttribute("amount",revenueExpenditureResp.getAmount()); model.addAttribute("accountBalance",revenueExpenditureResp.getAccountBalance()); + model.addAttribute("state",revenueExpenditureResp.getState()); } @Override diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java index 6ff9137..c9ee71c 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java @@ -13,10 +13,10 @@ */ public class OBSUtil { - public static String endPoint = "https://obs.cn-south-1.myhuaweicloud.com"; - public static String ak = "N52IGR6DHOC3JAZFHZIW"; - public static String sk = "jq7Q7jnFS4Gxamwh3naN2sbNKwQQ7cZISPVumGBS"; - public static String bucketname = "csxdj"; + public static String endPoint = "https://obs.cn-southwest-2.myhuaweicloud.com"; + public static String ak = "YMBKC9LS6CDG9QHCIGUU"; + public static String sk = "kztanexutGzoGiYcIALCNhazfxoU6yecDOSBrFXu"; + public static String bucketname = "fanghuadaijia"; /** * 上传文件 @@ -31,7 +31,7 @@ // 待上传的本地文件路径,需要指定到具体的文件名 PutObjectRequest request = new PutObjectRequest(); request.setBucketName(bucketname); - request.setObjectKey(objectKey); + request.setObjectKey("img/" + objectKey); request.setInput(inputStream); PutObjectResult putObjectResult = obsClient.putObject(request); return putObjectResult.getObjectUrl(); diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java index 772c9a3..1876914 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java @@ -25,7 +25,7 @@ private final static String bad_weather = "[{\"wid\":\"03\",\"weather\":\"阵雨\"},{\"wid\":\"04\",\"weather\":\"雷阵雨\"},{\"wid\":\"05\",\"weather\":\"雷阵雨伴有冰雹\"},{\"wid\":\"06\",\"weather\":\"雨夹雪\"},{\"wid\":\"07\",\"weather\":\"小雨\"},{\"wid\":\"08\",\"weather\":\"中雨\"},{\"wid\":\"09\",\"weather\":\"大雨\"},{\"wid\":\"10\",\"weather\":\"暴雨\"},{\"wid\":\"11\",\"weather\":\"大暴雨\"},{\"wid\":\"12\",\"weather\":\"特大暴雨\"},{\"wid\":\"13\",\"weather\":\"阵雪\"},{\"wid\":\"14\",\"weather\":\"小雪\"},{\"wid\":\"15\",\"weather\":\"中雪\"},{\"wid\":\"16\",\"weather\":\"大雪\"},{\"wid\":\"17\",\"weather\":\"暴雪\"},{\"wid\":\"19\",\"weather\":\"冻雨\"},{\"wid\":\"20\",\"weather\":\"沙尘暴\"},{\"wid\":\"21\",\"weather\":\"小到中雨\"},{\"wid\":\"22\",\"weather\":\"中到大雨\"},{\"wid\":\"23\",\"weather\":\"大到暴雨\"},{\"wid\":\"24\",\"weather\":\"暴雨到大暴雨\"},{\"wid\":\"25\",\"weather\":\"大暴雨到特大暴雨\"},{\"wid\":\"26\",\"weather\":\"小到中雪\"},{\"wid\":\"27\",\"weather\":\"中到大雪\"},{\"wid\":\"28\",\"weather\":\"大到暴雪\"},{\"wid\":\"30\",\"weather\":\"扬沙\"},{\"wid\":\"31\",\"weather\":\"强沙尘暴\"},{\"wid\":\"53\",\"weather\":\"霾\"}]"; - private final static String key = "aaebb3e5c18fd371257a2ab6b5670efe"; + private final static String key = "edc965edb129580401ed211eaa4ae8ab"; private static HttpClientUtil httpClientUtil = new HttpClientUtil(); diff --git a/management/guns-admin/src/main/resources/application.yml b/management/guns-admin/src/main/resources/application.yml index 6697fea..4cc2e8b 100644 --- a/management/guns-admin/src/main/resources/application.yml +++ b/management/guns-admin/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 8011 + port: 8010 guns: swagger-open: false #是否开启swagger (true/false) @@ -15,7 +15,8 @@ spring: profiles: - active: local +# active: dev + active: produce mvc: static-path-pattern: /static/** view: @@ -43,7 +44,7 @@ secret: 95a34f114973298cce4297a20bb59bc3 gaode: map: - key: e0370a9a4d10739045fb0b8f4742a67e #高德key + key: 588845b621c3c42d6d6c8f50ba00cb41 #高德key #eureka: # client: @@ -59,8 +60,8 @@ datasource: url: jdbc:mysql://127.0.0.1:3306/fh_agent_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8 username: root -# password: PI_v6J5@dvHwGTqc - password: 123456 + password: PI_v6J5@dvHwGTqc +# password: 123456 db-name: fh_agent_driving #用来搜集数据库的所有表 filters: wall,mergeStat @@ -83,8 +84,8 @@ spring: data: mongodb: -# uri: mongodb://root:bv@_N36o+cTe1LpS@127.0.0.1:27017/admin - uri: mongodb://127.0.0.1:27017/admin + uri: mongodb://root:PaWPtGG95APCMBEb@127.0.0.1:27017/admin +# uri: mongodb://127.0.0.1:27017/admin --- diff --git a/management/guns-admin/src/main/resources/logback-spring.xml b/management/guns-admin/src/main/resources/logback-spring.xml index 894a46b..b1bc1fe 100644 --- a/management/guns-admin/src/main/resources/logback-spring.xml +++ b/management/guns-admin/src/main/resources/logback-spring.xml @@ -1,132 +1,231 @@ <?xml version="1.0" encoding="UTF-8"?> -<configuration> +<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 --> +<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true --> +<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> +<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> +<configuration scan="true" scanPeriod="10 seconds"> + <contextName>logback</contextName> - <!--定义日志存放的位置--> - <springProperty scope="context" name="gunsLogPath" source="log.path" defaultValue="guns-logs"/> + <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> + <property name="log.path" value="/usr/local/server/app/logs/manager"/> + <!--<property name="log.path" value="d:/logs/manager"/>--> - <!-- ****************************************************************************************** --> - <!-- ****************************** 本地开发只在控制台打印日志 ******************************** --> - <!-- ****************************************************************************************** --> - <springProfile name="local"> + <!--0. 日志格式和颜色渲染 --> + <!-- 彩色日志依赖的渲染类 --> + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> + <!-- 彩色日志格式 --> + <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <!--encoder 默认配置为PatternLayoutEncoder--> - <encoder> - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %logger Line:%-3L - %msg%n</pattern> - <charset>utf-8</charset> - </encoder> - </appender> + <!--1. 输出到控制台--> + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> + <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>debug</level> + </filter> + <encoder> + <Pattern>${CONSOLE_LOG_PATTERN}</Pattern> + <!-- 设置字符集 --> + <charset>UTF-8</charset> + </encoder> + </appender> - <!-- 日志记录器,日期滚动记录 --> - <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <!-- 正在记录的日志文件的路径及文件名 --> - <file>${gunsLogPath}/log_error.log</file> - <!-- 日志记录器的滚动策略,按日期,按大小记录 --> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。 - 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --> - <fileNamePattern>${gunsLogPath}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始, - 命名日志文件,例如log-error-2013-12-21.0.log --> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>2MB</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - </rollingPolicy> - <!-- 追加方式记录日志 --> - <append>true</append> - <!-- 日志文件的格式 --> - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern> - <charset>utf-8</charset> - </encoder> - <!-- 日志文件记录级别配置。 - 日志级别:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF - onMatch="ACCEPT" 表示匹配该级别及以上 - onMatch="DENY" 表示不匹配该级别及以上 - onMatch="NEUTRAL" 表示该级别及以上的,由下一个filter处理,如果当前是最后一个,则表示匹配该级别及以上 - onMismatch="ACCEPT" 表示匹配该级别以下 - onMismatch="NEUTRAL" 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的 - onMismatch="DENY" 表示不匹配该级别以下的 - --> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>ERROR</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - </appender> + <!--2. 输出到文档--> + <!-- 2.1 level为 DEBUG 日志,时间滚动输出 --> + <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!-- 正在记录的日志文档的路径及文档名 --> + <file>${log.path}/debug.log</file> + <!--日志文档输出格式--> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> + <charset>UTF-8</charset> <!-- 设置字符集 --> + </encoder> + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <!-- 日志归档 --> + <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern> + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> + <maxFileSize>100MB</maxFileSize> + </timeBasedFileNamingAndTriggeringPolicy> + <!--日志文档保留天数--> + <maxHistory>15</maxHistory> + </rollingPolicy> + <!-- 此日志文档只记录debug级别的 --> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>debug</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + </appender> - <root level="INFO"> - <appender-ref ref="STDOUT"/> - <appender-ref ref="FILE"/> + <!-- 2.2 level为 INFO 日志,时间滚动输出 --> + <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!-- 正在记录的日志文档的路径及文档名 --> + <file>${log.path}/info.log</file> + <!--日志文档输出格式--> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> + <charset>UTF-8</charset> + </encoder> + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <!-- 每天日志归档路径以及格式 --> + <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> + <maxFileSize>100MB</maxFileSize> + </timeBasedFileNamingAndTriggeringPolicy> + <!--日志文档保留天数--> + <maxHistory>15</maxHistory> + </rollingPolicy> + <!-- 此日志文档只记录info级别的 --> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>info</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + </appender> + + <!-- 2.3 level为 WARN 日志,时间滚动输出 --> + <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!-- 正在记录的日志文档的路径及文档名 --> + <file>${log.path}/warn.log</file> + <!--日志文档输出格式--> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> + <charset>UTF-8</charset> <!-- 此处设置字符集 --> + </encoder> + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern> + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> + <maxFileSize>100MB</maxFileSize> + </timeBasedFileNamingAndTriggeringPolicy> + <!--日志文档保留天数--> + <maxHistory>15</maxHistory> + </rollingPolicy> + <!-- 此日志文档只记录warn级别的 --> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>warn</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + </appender> + + <!-- 2.4 level为 ERROR 日志,时间滚动输出 --> + <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!-- 正在记录的日志文档的路径及文档名 --> + <file>${log.path}/error.log</file> + <!--日志文档输出格式--> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> + <charset>UTF-8</charset> <!-- 此处设置字符集 --> + </encoder> + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> + <maxFileSize>100MB</maxFileSize> + </timeBasedFileNamingAndTriggeringPolicy> + <!--日志文档保留天数--> + <maxHistory>15</maxHistory> + </rollingPolicy> + <!-- 此日志文档只记录ERROR级别的 --> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>ERROR</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + </appender> + + <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 --> + <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!-- 正在记录的日志文档的路径及文档名 --> + <file>${log.path}/all.log</file> + <!--日志文档输出格式--> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> + <charset>UTF-8</charset> <!-- 此处设置字符集 --> + </encoder> + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern> + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> + <maxFileSize>100MB</maxFileSize> + </timeBasedFileNamingAndTriggeringPolicy> + <!--日志文档保留天数--> + <maxHistory>15</maxHistory> + </rollingPolicy> + <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 --> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>DENY</onMatch> + <onMismatch>ACCEPT</onMismatch> + </filter> + </appender> + + <!-- + <logger>用来设置某一个包或者具体的某一个类的日志打印级别、 + 以及指定<appender>。<logger>仅有一个name属性, + 一个可选的level和一个可选的addtivity属性。 + name:用来指定受此logger约束的某一个包或者具体的某一个类。 + level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, + 还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。 + 如果未设置此属性,那么当前logger将会继承上级的级别。 + addtivity:是否向上级logger传递打印信息。默认是true。 + <logger name="org.springframework.web" level="info"/> + <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/> + --> + + <!-- + root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性 + level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, + 不能设置为INHERITED或者同义词NULL。默认是DEBUG + 可以包含零个或多个元素,标识这个appender将会添加到这个logger。 + --> + + <!-- 4 最终的策略: + 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)--> + <springProfile name="dev"> + <root level="info"> + <appender-ref ref="CONSOLE" /> + <appender-ref ref="DEBUG_FILE" /> + <appender-ref ref="INFO_FILE" /> + <appender-ref ref="WARN_FILE" /> + <appender-ref ref="ERROR_FILE" /> + <appender-ref ref="ALL_FILE" /> </root> + <logger name="ServiceLog" level="debug"/> + <logger name="com.baomidou.mybatisplus" level="debug"/> + <logger name="com.stylefeng.guns.modular.system.dao" level="debug"/> </springProfile> - <!-- ****************************************************************************************** --> - <!-- ********************** 放到服务器上不管在什么环境都只在文件记录日志 ********************** --> - <!-- ****************************************************************************************** --> - <springProfile name="!local"> - - <!-- 日志记录器,日期滚动记录 --> - <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <!-- 正在记录的日志文件的路径及文件名 --> - <file>${gunsLogPath}/log_error.log</file> - <!-- 日志记录器的滚动策略,按日期,按大小记录 --> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。 - 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --> - <fileNamePattern>${gunsLogPath}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始, - 命名日志文件,例如log-error-2013-12-21.0.log --> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>2MB</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - </rollingPolicy> - <!-- 追加方式记录日志 --> - <append>true</append> - <!-- 日志文件的格式 --> - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> - <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern> - <charset>utf-8</charset> - </encoder> - <!-- 此日志文件只记录error级别的 --> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>error</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - </appender> - - <!-- 日志记录器,日期滚动记录 --> - <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <!-- 正在记录的日志文件的路径及文件名 --> - <file>${gunsLogPath}/log_total.log</file> - <!-- 日志记录器的滚动策略,按日期,按大小记录 --> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。 - 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --> - <fileNamePattern>${gunsLogPath}/total/log-total-%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始, - 命名日志文件,例如log-error-2013-12-21.0.log --> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>2MB</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - </rollingPolicy> - <!-- 追加方式记录日志 --> - <append>true</append> - <!-- 日志文件的格式 --> - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> - <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern> - <charset>utf-8</charset> - </encoder> - </appender> - - <root level="INFO"> - <appender-ref ref="FILE_ERROR"/> - <appender-ref ref="FILE_ALL"/> + <springProfile name="fat"> + <root level="info"> + <appender-ref ref="CONSOLE" /> + <appender-ref ref="DEBUG_FILE" /> + <appender-ref ref="INFO_FILE" /> + <appender-ref ref="WARN_FILE" /> + <appender-ref ref="ERROR_FILE" /> + <appender-ref ref="ALL_FILE" /> </root> - + <logger name="ServiceLog" level="debug"/> + <logger name="com.baomidou.mybatisplus" level="debug"/> + <logger name="com.stylefeng.guns.modular.system.dao" level="debug"/> </springProfile> -</configuration> + <springProfile name="produce"> + <root level="warn"> + <!-- 生产环境最好不配置console写文件 --> + <appender-ref ref="DEBUG_FILE" /> + <appender-ref ref="INFO_FILE" /> + <appender-ref ref="WARN_FILE" /> + <appender-ref ref="ERROR_FILE" /> + <appender-ref ref="ALL_FILE" /> + </root> + <logger name="ServiceLog" level="warn"/> + <logger name="com.baomidou.mybatisplus" level="error"/> + <logger name="com.stylefeng.guns.modular.system.dao" level="error"/> + </springProfile> - +</configuration> \ No newline at end of file diff --git a/management/guns-admin/src/main/resources/redis.properties b/management/guns-admin/src/main/resources/redis.properties index fb10637..16f6fb7 100644 --- a/management/guns-admin/src/main/resources/redis.properties +++ b/management/guns-admin/src/main/resources/redis.properties @@ -2,19 +2,19 @@ # Redis���ݿ�������Ĭ��Ϊ0�� spring.redis.database=0 -## Redis��������ַ -#spring.redis.host=127.0.0.1 -### Redis���������Ӷ˿� -#spring.redis.port=16379 -### Redis�������������루Ĭ��Ϊ�գ� -#spring.redis.password=wuOT@8NLdZ*V09Jt - # Redis��������ַ spring.redis.host=127.0.0.1 -# Redis���������Ӷ˿� -spring.redis.port=6379 -# Redis�������������루Ĭ��Ϊ�գ� -spring.redis.password=123456 +## Redis���������Ӷ˿� +spring.redis.port=16379 +## Redis�������������루Ĭ��Ϊ�գ� +spring.redis.password=wuOT@8NLdZ*V09Jt + +## Redis��������ַ +#spring.redis.host=127.0.0.1 +## Redis���������Ӷ˿� +#spring.redis.port=6379 +## Redis�������������루Ĭ��Ϊ�գ� +#spring.redis.password=123456 # ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ� spring.redis.jedis.pool.max-active=1024 diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/home.html b/management/guns-admin/src/main/webapp/WEB-INF/view/home.html index b9308a3..c38f287 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/home.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/home.html @@ -256,8 +256,13 @@ </div> </div> </div> -<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1"></script> -<script src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1&plugin=AMap.MouseTool"></script> +<script type="text/javascript"> + window._AMapSecurityConfig = { + securityJsCode:'34399ecced17d9c01ef705ef964fc077', + } +</script> +<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f"></script> +<script src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f&plugin=AMap.MouseTool"></script> <script type="text/javascript" src='https://a.amap.com/jsapi_demos/static/citys.js'></script> <script src="${ctxPath}/static/home.js"></script> <script src="${ctxPath}/static/js/jquery.sparkline 2.1.2.js"></script> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html index 08fbb98..0be89cb 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html @@ -20,6 +20,7 @@ <option value="">请选择订单来源</option> <option value="1">小程序</option> <option value="2">司机创建</option> + <option value="3">后台添加</option> </#SelectCon> </div> <div class="col-sm-3"> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html index a33026c..25f4c99 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html @@ -42,6 +42,9 @@ @if(source==2){ <label>APP</label> @} + @if(source==3){ + <label>后台</label> + @} </div> <div class="initialLevel col-sm-3 control-label form-group" > <label class="control-label" >乘车时间:</label> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html index 56b7034..4af3803 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html @@ -20,6 +20,7 @@ <option value="">请选择订单来源</option> <option value="1">小程序</option> <option value="2">司机创建</option> + <option value="3">后台添加</option> </#SelectCon> </div> <div class="col-sm-2"> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html index 7d16ff4..c1bbb85 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html @@ -40,6 +40,9 @@ @if(source==2){ <label>APP</label> @} + @if(source==3){ + <label>后台</label> + @} </div> <div class="initialLevel col-sm-3 control-label form-group" > <label class="control-label" >乘车时间:</label> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html index c3dfea9..7cb77b0 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html @@ -56,11 +56,11 @@ </div> <script type="text/javascript"> window._AMapSecurityConfig = { - securityJsCode:'0e712f129051b8df19a7f81484009f28', + securityJsCode:'34399ecced17d9c01ef705ef964fc077', } </script> <script src="${ctxPath}/static/modular/system/tOrder/tOrder_info.js"></script> -<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=99b1546635dac9d51440c9d5b1fde512"></script> +<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=86fcccf007b64ae97b01c3c982c0ef0f"></script> <script type="text/javascript"> //地图加载 var map1 = new AMap.Map("container1", { diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html index 359f6f7..4f261fb 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html @@ -8,7 +8,7 @@ <div class="ibox-content"> <div class="row row-lg"> <div class="col-sm-12"> - + <input type="hidden" id="id" value="${id}"> <div class="initialLevel col-sm-12 control-label form-group" > <div class="initialLevel col-sm-3 control-label form-group" > <label class="control-label" >订单号:</label> @@ -47,9 +47,13 @@ </div> <div class="initialLevel col-sm-12 control-label form-group" > - <div class="initialLevel col-sm-2 control-label form-group" > + <div class="initialLevel col-sm-3 control-label form-group" > <label class="control-label">提现金额:</label> <label>${amount}</label> + </div> + <div class="initialLevel col-sm-2 control-label form-group" > + <label class="control-label">状态:</label> + <label>${state == 1 ? '待审核' : '审核通过'}</label> </div> </div> @@ -61,6 +65,9 @@ </div> <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> + @if(state == 1){ + <#button name="同意" icon="fa-check" clickFun="TRevenueInfoDlg.agree()" /> + @} <#button name="取消" icon="fa-plus" clickFun="TRevenueInfoDlg.close()" /> </div> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html index 284514e..47fe35e 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html @@ -164,7 +164,12 @@ </div> </div> -<script src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script> +<script type="text/javascript"> + window._AMapSecurityConfig = { + securityJsCode:'34399ecced17d9c01ef705ef964fc077', + } +</script> +<script src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script> <script src="${ctxPath}/static/modular/system/tSite/electricFence.js"></script> <script src="${ctxPath}/static/modular/system/tSite/tSite_info.js"></script> @} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html index 319a285..f0c8ae7 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html @@ -187,7 +187,12 @@ </div> </div> -<script src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script> +<script type="text/javascript"> + window._AMapSecurityConfig = { + securityJsCode:'34399ecced17d9c01ef705ef964fc077', + } +</script> +<script src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script> <script src="${ctxPath}/static/modular/system/tSite/electricFence.js"></script> <script src="${ctxPath}/static/modular/system/tSite/tSite_info.js"></script> @} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html index 871e90d..88acd29 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html @@ -19,7 +19,7 @@ <div class="initialLevel col-sm-3 control-label form-group" > <span class="control-label" >司机订单保险费,每单固定抽取</span> <input class="control-label" id="num1" name="num1" value="${num1}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >元/天</span> + <span class="control-label" >元/单</span> </div> </div> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html index 18f040d..b01e970 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html @@ -17,44 +17,82 @@ </div> <hr/> - <input hidden id="array" value="${array}"> + <input hidden id="array" value=""> <div class="initialLevel col-sm-12 control-label form-group" id="rules" style="text-align: left" > - @for(ChargeStandard in array){ - <div name="rulesForm"> - <div class="initialLevel col-sm-12 control-label form-group" > - <span class="control-label" >时间段</span> - <input class="control-label" id="num1" name="num1" value="${ChargeStandard.num1}" type="text" placeholder="00:00" style="height: 30px;width: 80px"> - <span class="control-label" >——</span> - <input class="control-label" id="num2" name="num2" value="${ChargeStandard.num2}" type="text" placeholder="00:00" style="height: 30px;width: 80px"> - <span class="control-label" >代驾里程</span> - <input class="control-label" id="num3" name="num3" value="${ChargeStandard.num3}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >公里,起步价</span> - <input class="control-label" id="num4" name="num4" value="${ChargeStandard.num4}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >元,超出里程每</span> - <input class="control-label" id="num5" name="num5" value="${ChargeStandard.num5}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >公里,收费</span> - <input class="control-label" id="num6" name="num6" value="${ChargeStandard.num6}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >元</span> - - @if(ChargeStandard.key == 0){ - <span class="fa fa-plus" onclick="TSystemConfig.addBox()"></span> - @} - @if(ChargeStandard.key == 1){ - <span class="fa fa-remove" onclick="TSystemConfig.delBox(this)"></span> + <button onclick="TSystemConfig.addTime()" style="padding: 5px 10px;font-size: 16px;background-color: #0086f6;color: #fff;border: none;border-radius: 5px;">添加时间段</button> + <div class="rulesForm" style="border: 1px solid #888888;padding-top: 10px;display: grid;margin: 10px 0px"> + <span style="position: absolute;right: 30px;color: #0086f6;font-size: 16px;">默认</span> + <div class="prices"> + @for(obj in defaule.num3){ + <div class="initialLevel col-sm-12 control-label form-group price"> + <span class="control-label" >代驾里程</span> + <input class="control-label" id="num1" name="num1" value="${obj.num1}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,至</span> + <input class="control-label" id="num2" name="num2" value="${obj.num2}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,收费</span> + <input class="control-label" id="num3" name="num3" value="${obj.num3}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >元</span> + @if(obj.index == 0){ + <span class="fa fa-plus" onclick="TSystemConfig.addBox(this)"></span> + @}else{ + <span class="fa fa-remove" onclick="TSystemConfig.delBox(this)"></span> + @} + </div> @} </div> <div class="initialLevel col-sm-12 control-label form-group" > <span class="control-label" >长途里程</span> - <input class="control-label" id="num7" name="num7" value="${ChargeStandard.num7}" type="number" min="0" style="height: 30px;width: 80px"> + <input class="control-label" id="num4" name="num4" value="${defaule.num4}" type="number" min="0" style="height: 30px;width: 80px"> <span class="control-label" >——</span> - <input class="control-label" id="num8" name="num8" value="${ChargeStandard.num8}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >公里,收费</span> - <input class="control-label" id="num9" name="num9" value="${ChargeStandard.num9}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >元,超出里程每</span> - <input class="control-label" id="num10" name="num10" value="${ChargeStandard.num10}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >公里,收费</span> - <input class="control-label" id="num11" name="num11" value="${ChargeStandard.num11}" type="number" min="0" style="height: 30px;width: 80px"> + <input class="control-label" id="num5" name="num5" value="${defaule.num5}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,费用</span> + <input class="control-label" id="num6" name="num6" value="${defaule.num6}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >元,超出里程每</span> + <input class="control-label" id="num7" name="num7" value="${defaule.num7}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,收费</span> + <input class="control-label" id="num8" name="num8" value="${defaule.num8}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >元</span> + </div> + </div> + @for(o in array){ + <div class="rulesForm" style="border: 1px solid #888888;padding-top: 10px;display: grid;margin: 10px 0px"> + <div class="initialLevel col-sm-12 control-label form-group" id='time' > + <span class="control-label" >时间段</span> + <input class="control-label" id="num1" name="num1" type="text" value="${o.num1}" placeholder="00:00" style="height: 30px;width: 80px"> + <span class="control-label" >——</span> + <input class="control-label" id="num2" name="num2" type="text" value="${o.num2}" placeholder="00:00" style="height: 30px;width: 80px"> + <span class="fa fa-remove" style='position: absolute;right: 20px;color: red;font-size: 20px;' onclick="TSystemConfig.delTime(this)"></span> + </div> + <div class="prices"> + @for(obj in o.num3){ + <div class="initialLevel col-sm-12 control-label form-group price"> + <span class="control-label" >代驾里程</span> + <input class="control-label" id="num1" name="num1" value="${obj.num1}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,至</span> + <input class="control-label" id="num2" name="num2" value="${obj.num2}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,收费</span> + <input class="control-label" id="num3" name="num3" value="${obj.num3}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >元</span> + @if(obj.index == 0){ + <span class="fa fa-plus" onclick="TSystemConfig.addBox(this)"></span> + @}else{ + <span class="fa fa-remove" onclick="TSystemConfig.delBox(this)"></span> + @} + </div> + @} + </div> + <div class="initialLevel col-sm-12 control-label form-group" > + <span class="control-label" >长途里程</span> + <input class="control-label" id="num4" name="num4" value="${o.num4}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >——</span> + <input class="control-label" id="num5" name="num5" value="${o.num5}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,费用</span> + <input class="control-label" id="num6" name="num6" value="${o.num6}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >元,超出里程每</span> + <input class="control-label" id="num7" name="num7" value="${o.num7}" type="number" min="0" style="height: 30px;width: 80px"> + <span class="control-label" >公里,收费</span> + <input class="control-label" id="num8" name="num8" value="${o.num8}" type="number" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元</span> </div> </div> @@ -69,20 +107,20 @@ </div> <hr/> - <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > + <div class="initialLevel col-sm-12 control-label form-group" id="wait" style="text-align: left" > <div class="initialLevel col-sm-12 control-label form-group" > <span class="control-label" >等待</span> <input class="control-label" id="num12" name="num12" value="${ExtraCost.num1}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >分钟,收取</span> + <span class="control-label" >分钟,收取</span> <input class="control-label" id="num13" name="num13" value="${ExtraCost.num2}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >元,超出</span> + <span class="control-label" >元,超出</span> <input class="control-label" id="num14" name="num14" value="${ExtraCost.num3}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >分钟,收取</span> + <span class="control-label" >分钟,收取</span> <input class="control-label" id="num15" name="num15" value="${ExtraCost.num4}" type="number" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元/分钟</span> </div> <input hidden id="zcOne" value="${zcOne}"> - <div class="initialLevel col-sm-12 control-label form-group" > + <div class="initialLevel col-sm-12 control-label form-group" id="weather"> <div class="col-sm-1"> <input type="checkbox" class="js-switch1" id="isTaxiCar" @if(isNotEmpty(zcOne)){ @@ -94,13 +132,13 @@ <div class="initialLevel col-sm-10 control-label form-group" > <span class="control-label" >恶劣天气</span> <input class="control-label" id="num16" name="num16" value="${ExtraCost.num5}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >公里以内,加收</span> + <span class="control-label" >公里以内,加收</span> <input class="control-label" id="num17" name="num17" value="${ExtraCost.num6}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >元,超出</span> + <span class="control-label" >元,超出</span> <input class="control-label" id="num18" name="num18" value="${ExtraCost.num7}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >公里,收取订单的</span> + <span class="control-label" >公里,收取订单的</span> <input class="control-label" id="num19" name="num19" value="${ExtraCost.num8}" type="number" min="0" style="height: 30px;width: 80px"> - <span class="control-label" >倍计费,最高收取</span> + <span class="control-label" >倍计费,最高收取</span> <input class="control-label" id="num20" name="num20" value="${ExtraCost.num9}" type="number" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元</span> </div> diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js index 92ac2fb..6f8eeb9 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js @@ -23,6 +23,8 @@ return '<span>小程序</span>' }else if (row.source === 2){ return '<span>司机创建</span>' + }else if (row.source === 3){ + return '<span>后台添加</span>' } }}, {title: '开始服务时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'}, diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js index a3d131d..b590815 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js @@ -76,7 +76,9 @@ {title: '余额', field: 'accountBalance', visible: true, align: 'center', valign: 'middle'}, {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle', formatter: function (value, row) { - if (row.state === 2){ + if (row.state === 1){ + return '<span>待审核</span>' + }else if (row.state === 2){ return '<span>完成</span>' }else if (row.state === 108){ return '<span>完成</span>' diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js index 2e2ec2d..42cc24c 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js @@ -40,6 +40,20 @@ parent.layer.close(window.parent.TRevenue.layerIndex); } + +TRevenueInfoDlg.agree = function(){ + var ajax = new $ax(Feng.ctxPath + "/tRevenue/agreeWithdraw", function(data){ + Feng.success("审核成功!"); + window.parent.TRevenue.table.refresh(); + TRevenueInfoDlg.close(); + },function(data){ + Feng.error("审核失败!" + data.responseJSON.message + "!"); + }); + ajax.set('id', $('#id').val()); + ajax.start(); +} + + /** * 收集数据 */ diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js b/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js index 265d356..6f75cc9 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js @@ -174,6 +174,58 @@ * 价格规则 */ TSystemConfig.priceRulesSubmit = function () { + var content = {}; + var ChargeStandard = []; + $('.rulesForm').each(function (i, e) { + var time = $(e).find("#time"); + var obj = {}; + if(null != time && time.length != 0){ + var num1 = $(time).find('input[name="num1"]').val(); + var num2 = $(time).find('input[name="num2"]').val(); + obj.num1 = num1; + obj.num2 = num2; + } + var prices = $(this).find(".prices .price"); + + var arr = []; + prices.each(function (j, e) { + var o = {}; + var num1 = $(e).find('input[name="num1"]').val(); + var num2 = $(e).find('input[name="num2"]').val(); + var num3 = $(e).find('input[name="num3"]').val(); + o.num1 = num1; + o.num2 = num2; + o.num3 = num3; + arr.push(o); + }) + obj.num3 = arr; + + var num4 = $(this).find('input[name="num4"]').val(); + var num5 = $(this).find('input[name="num5"]').val(); + var num6 = $(this).find('input[name="num6"]').val(); + var num7 = $(this).find('input[name="num7"]').val(); + var num8 = $(this).find('input[name="num8"]').val(); + obj.num4 = num4; + obj.num5 = num5; + obj.num6 = num6; + obj.num7 = num7; + obj.num8 = num8; + ChargeStandard.push(obj); + }); + content.ChargeStandard = ChargeStandard; + + var ExtraCost = {}; + ExtraCost.num1 = $('#wait').find('input[name="num12"]').val(); + ExtraCost.num2 = $('#wait').find('input[name="num13"]').val(); + ExtraCost.num3 = $('#wait').find('input[name="num14"]').val(); + ExtraCost.num4 = $('#wait').find('input[name="num15"]').val(); + ExtraCost.num5 = $('#weather').find('input[name="num16"]').val(); + ExtraCost.num6 = $('#weather').find('input[name="num17"]').val(); + ExtraCost.num7 = $('#weather').find('input[name="num18"]').val(); + ExtraCost.num8 = $('#weather').find('input[name="num19"]').val(); + ExtraCost.num9 = $('#weather').find('input[name="num20"]').val(); + content.ExtraCost = ExtraCost; + var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { Feng.success("保存成功!"); TSystemConfig.table.refresh(); @@ -181,38 +233,7 @@ Feng.error("保存失败!" + data.responseJSON.message + "!"); }); - var json1=[]; - for (let i = 0; i < $('input[name="num1"]').length; i++) { - var arr = {} - arr['num1'] = $($('input[name="num1"]')[i]).val(); - arr['num2'] = $($('input[name="num2"]')[i]).val(); - arr['num3'] = Number($($('input[name="num3"]')[i]).val()); - arr['num4'] = Number($($('input[name="num4"]')[i]).val()); - arr['num5'] = Number($($('input[name="num5"]')[i]).val()); - arr['num6'] = Number($($('input[name="num6"]')[i]).val()); - arr['num7'] = Number($($('input[name="num7"]')[i]).val()); - arr['num8'] = Number($($('input[name="num8"]')[i]).val()); - arr['num9'] = Number($($('input[name="num9"]')[i]).val()); - arr['num10'] = Number($($('input[name="num10"]')[i]).val()); - arr['num11'] = Number($($('input[name="num11"]')[i]).val()); - json1.push(arr) - } - - var ExtraCost = {}; - ExtraCost['num1'] = Number($('#num12').val()); - ExtraCost['num2'] = Number($('#num13').val()); - ExtraCost['num3'] = Number($('#num14').val()); - ExtraCost['num4'] = Number($('#num15').val()); - ExtraCost['num5'] = Number($('#num16').val()); - ExtraCost['num6'] = Number($('#num17').val()); - ExtraCost['num7'] = Number($('#num18').val()); - ExtraCost['num8'] = Number($('#num19').val()); - ExtraCost['num9'] = Number($('#num20').val()); - - var reqData = {}; - reqData['ChargeStandard'] = json1; - reqData['ExtraCost'] = ExtraCost; - ajax.set("content",JSON.stringify(reqData)); + ajax.set("content",JSON.stringify(content)); ajax.set("type",5); ajax.start(); }; @@ -261,57 +282,71 @@ ajax.start(); }; -TSystemConfig.addBox = function (){ +TSystemConfig.addTime = function (){ var i = $('input[name="num1"]').length + 1; - var a ="<div>\n" + - " <div class=\"initialLevel col-sm-12 control-label form-group\" >\n" + + var a ="" + + "<div class=\"rulesForm\" style=\"border: 1px solid #888888;padding-top: 10px;display: grid;margin: 10px 0px\">" + + + " <div class=\"initialLevel col-sm-12 control-label form-group\" id='time' >\n" + " <span class=\"control-label\" >时间段</span>\n" + - " <input class=\"control-label\" id=\"num1-"+i+"\" name=\"num1\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" + + " <input class=\"control-label\" id=\"num1\" name=\"num1\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" + " <span class=\"control-label\" >——</span>\n" + - " <input class=\"control-label\" id=\"num2-"+i+"\" name=\"num2\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" + + " <input class=\"control-label\" id=\"num2\" name=\"num2\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"fa fa-remove\" style='position: absolute;right: 20px;color: red;font-size: 20px;' onclick=\"TSystemConfig.delTime(this)\"></span>\n" + + " </div>\n" + + "<div class='prices'>\n" + + " <div class=\"initialLevel col-sm-12 control-label form-group price\" >\n" + " <span class=\"control-label\" >代驾里程</span>\n" + - " <input class=\"control-label\" id=\"num3-"+i+"\" name=\"num3\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >公里,起步价</span>\n" + - " <input class=\"control-label\" id=\"num4-"+i+"\" name=\"num4\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >元,超出里程每</span>\n" + - " <input class=\"control-label\" id=\"num5-"+i+"\" name=\"num5\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >公里,收费</span>\n" + - " <input class=\"control-label\" id=\"num6-"+i+"\" name=\"num6\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <input class=\"control-label\" id=\"num1\" name=\"num1\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >公里,至</span>\n" + + " <input class=\"control-label\" id=\"num2\" name=\"num2\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >公里,收费</span>\n" + + " <input class=\"control-label\" id=\"num3\" name=\"num3\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >元</span>\n" + + " <span class=\"fa fa-plus\" onclick=\"TSystemConfig.addBox(this)\"></span>\n" + + " </div>\n" + + " </div>" + + " <div class=\"initialLevel col-sm-12 control-label form-group\" >\n" + + " <span class=\"control-label\" >长途里程</span>\n" + + " <input class=\"control-label\" id=\"num4\" name=\"num4\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >——</span>\n" + + " <input class=\"control-label\" id=\"num5\" name=\"num5\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >公里,费用</span>\n" + + " <input class=\"control-label\" id=\"num6\" name=\"num6\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >元,超出里程每</span>\n" + + " <input class=\"control-label\" id=\"num7\" name=\"num7\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >公里,收费</span>\n" + + " <input class=\"control-label\" id=\"num8\" name=\"num8\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >元</span>\n" + + " </div>\n" + + "</div>" + + $("#rules").append($(a)) +} + + +TSystemConfig.addBox = function (e){ + var a ="<div>\n" + + " <div class=\"initialLevel col-sm-12 control-label form-group price\" >\n" + + " <span class=\"control-label\" >代驾里程</span>\n" + + " <input class=\"control-label\" id=\"num1\" name=\"num1\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >公里,至</span>\n" + + " <input class=\"control-label\" id=\"num2\" name=\"num2\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + + " <span class=\"control-label\" >公里,收费</span>\n" + + " <input class=\"control-label\" id=\"num3\" name=\"num3\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + " <span class=\"control-label\" >元</span>\n" + " <span class=\"fa fa-remove\" onclick=\"TSystemConfig.delBox(this)\"></span>\n" + " </div>\n" + - " <div class=\"initialLevel col-sm-12 control-label form-group\" >\n" + - " <span class=\"control-label\" >长途里程</span>\n" + - " <input class=\"control-label\" id=\"num7-"+i+"\" name=\"num7\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >——</span>\n" + - " <input class=\"control-label\" id=\"num8-"+i+"\" name=\"num8\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >公里,收费</span>\n" + - " <input class=\"control-label\" id=\"num9-"+i+"\" name=\"num9\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >元,超出里程每</span>\n" + - " <input class=\"control-label\" id=\"num10-"+i+"\" name=\"num10\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >公里,收费</span>\n" + - " <input class=\"control-label\" id=\"num11-"+i+"\" name=\"num11\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + - " <span class=\"control-label\" >元</span>\n" + - " </div>\n" + " </div>" - $("#rules").append($(a)) - // laydate.render({ - // elem: '#num1-'+i, - // type: 'time', - // format: 'HH:mm', - // range: false, - // lang:'zn' - // }); - // laydate.render({ - // elem: '#num2-'+i, - // type: 'time', - // format: 'HH:mm', - // range: false, - // lang:'zn' - // }); + $(e).parent('div').parent(".prices").append($(a)) } +TSystemConfig.delTime = function (o) { + $(o).parent("div").parent('.rulesForm').remove() +}; + + TSystemConfig.delBox = function (o) { $(o).parent("div").parent("div").remove() }; diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java index fd4fd11..0e5c372 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java @@ -9,16 +9,12 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.agentdriving.user.modular.system.model.AppUser; import com.agentdriving.user.modular.system.model.SystemConfig; -import com.agentdriving.user.modular.system.service.*; -import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse; -import com.agentdriving.user.modular.system.util.MallBook.util.RSASignature; import com.agentdriving.user.modular.system.util.PayMoneyUtil; import com.agentdriving.user.modular.system.util.RedisUtil; import com.agentdriving.user.modular.system.util.ResultUtil; import com.agentdriving.user.modular.system.util.UUIDUtil; import com.agentdriving.user.modular.system.util.huawei.OBSUtil; import com.agentdriving.user.modular.system.util.huawei.SMSUtil; -import com.agentdriving.user.modular.system.warpper.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -35,6 +31,7 @@ import java.io.InputStream; import java.io.PrintWriter; import java.util.List; +import java.util.Map; /** * 用户控制器 @@ -317,47 +314,18 @@ // @ServiceLog(name = "余额充值回调", url = "/base/appUser/rechargeBalanceCallback") public void rechargeBalanceCallback(HttpServletRequest request, HttpServletResponse response){ try { - String code = request.getParameter("code"); - String version = request.getParameter("version"); - String msg = request.getParameter("msg"); - String date = request.getParameter("date"); - String result = request.getParameter("result"); - String sign = request.getParameter("sign"); - InterfaceResponse interfaceResponse = new InterfaceResponse(); - interfaceResponse.setCode(code); - interfaceResponse.setVersion(version); - interfaceResponse.setMsg(msg); - interfaceResponse.setDate(date); - interfaceResponse.setResult(result); - interfaceResponse.setSign(sign); - // 验签 - boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign()); - if (verify) {//验签成功业务处理逻辑 - JSONObject jsonObject = JSON.parseObject(result); - String merOrderId = jsonObject.getString("merOrderId"); - String orderId = jsonObject.getString("parameter1"); - appUserService.rechargeBalanceCallback(orderId, merOrderId); - response.setStatus(200); + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + if(null != map){ + String out_trade_no = map.get("out_trade_no"); + String transaction_id = map.get("transaction_id"); + String result = map.get("result"); + String orderId = out_trade_no.substring(17); + appUserService.rechargeBalanceCallback(out_trade_no, transaction_id); PrintWriter out = response.getWriter(); - out.print("OK"); + out.print(result); out.flush(); out.close(); - } else {//验签失败业务处理逻辑 - System.err.println("支付回调验签失败"); } - -// Map<String, String> map = payMoneyUtil.weixinpayCallback(request); -// if(null != map){ -// String out_trade_no = map.get("out_trade_no"); -// String transaction_id = map.get("transaction_id"); -// String result = map.get("result"); -// String orderId = out_trade_no.substring(17); -// appUserService.rechargeBalanceCallback(out_trade_no, transaction_id); -// PrintWriter out = response.getWriter(); -// out.print(result); -// out.flush(); -// out.close(); -// } }catch (Exception e){ e.printStackTrace(); } diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java index d920b43..1acf7e2 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java @@ -1,24 +1,13 @@ package com.agentdriving.user.modular.api; import com.agentdriving.user.core.util.ToolUtil; -import com.agentdriving.user.modular.system.model.Driver; import com.agentdriving.user.modular.system.service.*; import com.agentdriving.user.modular.system.warpper.*; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.agentdriving.user.modular.system.model.AppUser; import com.agentdriving.user.modular.system.model.Order; -import com.agentdriving.user.modular.system.model.Revenue; -import com.agentdriving.user.modular.system.service.*; -import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse; -import com.agentdriving.user.modular.system.util.MallBook.model.Receive; -import com.agentdriving.user.modular.system.util.MallBook.model.ReceiveUser; -import com.agentdriving.user.modular.system.util.MallBook.util.RSASignature; -import com.agentdriving.user.modular.system.util.MallBook.util.TrhRequest; import com.agentdriving.user.modular.system.util.PayMoneyUtil; import com.agentdriving.user.modular.system.util.ResultUtil; -import com.agentdriving.user.modular.system.warpper.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -357,124 +346,19 @@ @PostMapping("/base/order/orderPayCallback") public void orderPayCallback(HttpServletRequest request, HttpServletResponse response){ try { - String code = request.getParameter("code"); - String version = request.getParameter("version"); - String msg = request.getParameter("msg"); - String date = request.getParameter("date"); - String result = request.getParameter("result"); - String sign = request.getParameter("sign"); - InterfaceResponse interfaceResponse = new InterfaceResponse(); - interfaceResponse.setCode(code); - interfaceResponse.setVersion(version); - interfaceResponse.setMsg(msg); - interfaceResponse.setDate(date); - interfaceResponse.setResult(result); - interfaceResponse.setSign(sign); - // 验签 - boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign()); - if (verify) {//验签成功业务处理逻辑 - JSONObject jsonObject = JSON.parseObject(result); - String merOrderId = jsonObject.getString("merOrderId"); - String orderId = jsonObject.getString("parameter1"); - ResultUtil resultUtil = orderService.orderPayCallback(orderId, merOrderId); + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + if(null != map){ + String out_trade_no = map.get("out_trade_no"); + String transaction_id = map.get("transaction_id"); + String result = map.get("result"); + String orderId = out_trade_no.substring(17); + ResultUtil resultUtil = orderService.orderPayCallback(orderId, transaction_id); if(resultUtil.getCode() == 10000){ - response.setStatus(200); PrintWriter out = response.getWriter(); - out.print("OK"); + out.print(result); out.flush(); out.close(); } - } else {//验签失败业务处理逻辑 - System.err.println("支付回调验签失败"); - } - - -// Map<String, String> map = payMoneyUtil.weixinpayCallback(request); -// if(null != map){ -// String out_trade_no = map.get("out_trade_no"); -// String transaction_id = map.get("transaction_id"); -// String result = map.get("result"); -// String orderId = out_trade_no.substring(17); -// ResultUtil resultUtil = orderService.orderPayCallback(orderId, transaction_id); -// if(resultUtil.getCode() == 10000){ -// PrintWriter out = response.getWriter(); -// out.print(result); -// out.flush(); -// out.close(); -// } -// } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 异步分账回调 - */ - @ResponseBody - @PostMapping("/base/order/ledgerCallback") - public void ledgerCallback(HttpServletRequest request, HttpServletResponse response){ - try{ - String code = request.getParameter("code"); - String version = request.getParameter("version"); - String msg = request.getParameter("msg"); - String date = request.getParameter("date"); - String result = request.getParameter("result"); - String sign = request.getParameter("sign"); - InterfaceResponse interfaceResponse = new InterfaceResponse(); - interfaceResponse.setCode(code); - interfaceResponse.setVersion(version); - interfaceResponse.setMsg(msg); - interfaceResponse.setDate(date); - interfaceResponse.setResult(result); - interfaceResponse.setSign(sign); - // 验签 - boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign()); - if (verify) {//验签成功业务处理逻辑 - JSONObject jsonObject = JSON.parseObject(result); - String merOrderId = jsonObject.getString("merOrderId"); - String orderId = jsonObject.getString("parameter1"); - //确认收货 - new Timer().schedule(new TimerTask() { - @Override - public void run() { - Order order = orderService.selectById(orderId); - List<Revenue> revenues = revenueService.selectList(new EntityWrapper<Revenue>().eq("userType", 2).eq("orderId", order.getId())); - Receive receive = new Receive();//确认收货 - receive.setOriginalMerOrderId(merOrderId); - receive.setRcvAmount(String.valueOf(order.getPayMoney() * 100)); - List<ReceiveUser> splitList = new ArrayList<>(); - for (Revenue revenue : revenues) { - Driver driver = driverService.selectById(revenue.getUserId()); - ReceiveUser receiveUser = new ReceiveUser(); - receiveUser.setSplitUserId(driver.getMerchantNumber()); - receiveUser.setRcvSplitAmount(revenue.getAmount().toString()); - splitList.add(receiveUser); - } - receive.setSplitList(splitList); - TrhRequest<Receive> request1 = new TrhRequest(); - InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - System.err.println("确认收货" + execute.getMsg()); - } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - System.err.println("确认收货失败"); - } - if("0".equals(status)){ - System.err.println("确认收货处理中"); - } - } - }, 30000); - response.setStatus(200); - PrintWriter out = response.getWriter(); - out.print("OK"); - out.flush(); - out.close(); - } else {//验签失败业务处理逻辑 - System.err.println("支付回调验签失败"); } }catch (Exception e){ e.printStackTrace(); @@ -484,6 +368,8 @@ + + @ResponseBody @PostMapping("/api/order/orderAppraise") // @ServiceLog(name = "订单评价操作", url = "/api/order/orderAppraise") diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml index 1a1c265..1965eb7 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml @@ -81,7 +81,7 @@ b.phone as driverPhone, b.`code` as driverCode, ifnull(DATE_FORMAT(now(), '%Y') - DATE_FORMAT(b.firstCertificateTime, '%Y'), 0) as driverAge, - (select count(1) from t_order where driverId = b.id and `status` = 1 and state in (107, 108, 109)) as driverNumber, + (select count(1) from t_order where driverId = b.id and `status` = 1 and state in (107, 108, 109)) + 200 as driverNumber, b.score as driverScore, a.state, UNIX_TIMESTAMP(a.createTime) * 1000 as createTime, diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java index 7775655..4d98ed3 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java @@ -13,12 +13,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.agentdriving.user.modular.system.model.*; -import com.agentdriving.user.modular.system.service.*; -import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse; -import com.agentdriving.user.modular.system.util.MallBook.model.PaymentOrder; -import com.agentdriving.user.modular.system.util.MallBook.model.PaymentOrderGood; -import com.agentdriving.user.modular.system.util.MallBook.util.TrhRequest; import com.agentdriving.user.modular.system.util.PayMoneyUtil; import com.agentdriving.user.modular.system.util.RedisUtil; import com.agentdriving.user.modular.system.util.ResultUtil; @@ -26,7 +20,6 @@ import com.agentdriving.user.modular.system.util.weChat.WXCore; import com.agentdriving.user.modular.system.util.weChat.WeChatUtil; import com.agentdriving.user.modular.system.util.weChat.model.Code2Session; -import com.agentdriving.user.modular.system.warpper.*; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -39,11 +32,11 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; -import java.net.InetAddress; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** @@ -318,43 +311,81 @@ rechargeRecord.setPayStatus(1); rechargeRecord.setPayType(1); rechargeRecordService.insert(rechargeRecord); -// ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/appUser/rechargeBalanceCallback", "JSAPI", appUser.getOpenid()); -// return weixinpay; + ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/appUser/rechargeBalanceCallback", "JSAPI", appUser.getOpenid()); + if(weixinpay.getCode() == 200){ + new Thread(new Runnable() { + @Override + public void run() { + try { + int num = 1; + int wait = 0; + while (num <= 10) { + int min = 5000; + wait += (min * num); + RechargeRecord rechargeRecord1 = rechargeRecordService.selectById(rechargeRecord.getId()); + if (rechargeRecord1.getPayStatus() == 2) { + return; + } + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, ""); + if (resultUtil.getCode() == 200) { + /** + * 订单状态 + * SUCCESS—支付成功, + * REFUND—转入退款, + * NOTPAY—未支付, + * CLOSED—已关闭, + * REVOKED—已撤销(刷卡支付), + * USERPAYING--用户支付中, + * PAYERROR--支付失败(其他原因,如银行返回失败) + */ + Map<String, String> data2 = resultUtil.getData(); + String s = data2.get("state"); + String transaction_id = data2.get("transaction_id"); + if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s)) { + //回退 + return; + } + if ("SUCCESS".equals(s)) { + rechargeRecord1.setPayStatus(2); + rechargeRecord1.setPayTime(new Date()); + rechargeRecord1.setOrderNumber(transaction_id); + rechargeRecordService.updateById(rechargeRecord1); - PaymentOrder paymentOrder = new PaymentOrder(); - paymentOrder.setBizOrderId(out_trade_no); - paymentOrder.setAmount(String.valueOf(amount * 100)); - paymentOrder.setOrderName("余额充值"); - paymentOrder.setPayType("WX_MINI"); - paymentOrder.setTransferType("0"); - paymentOrder.setAsynSplitFlag("1"); - paymentOrder.setAppid(appletsAppid); - paymentOrder.setOpenid(appUser.getOpenid()); - paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress()); - List<PaymentOrderGood> goodsDetail = new ArrayList<>(); - PaymentOrderGood paymentOrderGood = new PaymentOrderGood(); - paymentOrderGood.setGoodsName("余额充值"); - goodsDetail.add(paymentOrderGood); - paymentOrder.setGoodsDetail(goodsDetail); - paymentOrder.setFrontUrl(""); - paymentOrder.setNotifyUrl(callbackPath + "/base/appUser/rechargeBalanceCallback"); - paymentOrder.setParameter1(out_trade_no); - - TrhRequest<PaymentOrder> request = new TrhRequest(); - InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - return ResultUtil.error(execute.getMsg()); + AppUser appUser1 = AppUserServiceImpl.this.selectById(rechargeRecord1.getUserId()); + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + accountChangeDetail.setUserType(1); + accountChangeDetail.setUserId(appUser1.getId()); + accountChangeDetail.setCreateTime(new Date()); + accountChangeDetail.setOldData(appUser1.getAccountBalance()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(3); + accountChangeDetail.setExplain("余额充值"); + appUser1.setAccountBalance(appUser1.getAccountBalance() + rechargeRecord1.getAmount()); + accountChangeDetail.setNewData(appUser1.getAccountBalance()); + AppUserServiceImpl.this.updateById(appUser1); + accountChangeDetailService.insert(accountChangeDetail); + return; + } + if ("USERPAYING".equals(s)) { + Thread.sleep(wait); + num++; + } + }else{ + Thread.sleep(wait); + num++; + } + if(10 == num){ + rechargeRecordService.deleteById(rechargeRecord1.getId()); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - return ResultUtil.error("失败"); - } - if("0".equals(status)){ - return ResultUtil.error("处理中"); - } - String payCode = jsonObject.getString("payCode"); - return ResultUtil.success(payCode); + return weixinpay; } diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java index 89920f4..de79ec0 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java @@ -3,7 +3,6 @@ import com.agentdriving.user.modular.system.model.*; import com.agentdriving.user.modular.system.service.*; import com.agentdriving.user.modular.system.util.*; -import com.agentdriving.user.modular.system.util.MallBook.model.*; import com.agentdriving.user.modular.system.warpper.*; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -12,17 +11,10 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.agentdriving.user.core.util.ToolUtil; import com.agentdriving.user.modular.system.dao.OrderMapper; -import com.agentdriving.user.modular.system.model.*; -import com.agentdriving.user.modular.system.service.*; -import com.agentdriving.user.modular.system.util.*; import com.agentdriving.user.modular.system.util.GaoDe.MapUtil; import com.agentdriving.user.modular.system.util.GaoDe.model.District; -import com.agentdriving.user.modular.system.util.MallBook.model.*; -import com.agentdriving.user.modular.system.util.MallBook.util.Transfer; -import com.agentdriving.user.modular.system.util.MallBook.util.TrhRequest; import com.agentdriving.user.modular.system.util.juhe.WeatherUtil; import com.agentdriving.user.modular.system.util.mongodb.model.Location; -import com.agentdriving.user.modular.system.warpper.*; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -38,7 +30,6 @@ import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; -import java.net.InetAddress; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -99,15 +90,6 @@ @Autowired private IRevenueService revenueService; - - @Autowired - private IAgentService agentService; - - @Autowired - private IPlatformRechargeRecordService platformRechargeRecordService; - - @Autowired - private IDivisionRecordService divisionRecordService; @Value("${callbackPath}") private String callbackPath;//支付回调网关地址 @@ -211,19 +193,18 @@ JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard"); JSONObject extraCost = jsonObject.getJSONObject("ExtraCost"); Date date = new Date(); - for (int i = 0; i < chargeStandard.size(); i++) { + + boolean b = true; + for (int i = 1; i < chargeStandard.size(); i++) {//各种时间段 JSONObject jsonObject1 = chargeStandard.getJSONObject(i); String num1 = jsonObject1.getString("num1"); String num2 = jsonObject1.getString("num2"); - Double num3 = jsonObject1.getDouble("num3");//起步里程 - Double num4 = jsonObject1.getDouble("num4");//起步价格 - Double num5 = jsonObject1.getDouble("num5");//超过公里 - Double num6 = jsonObject1.getDouble("num6");//超过num3每num5公里收取num6 - Double num7 = jsonObject1.getDouble("num7");//长途起始公里 - Double num8 = jsonObject1.getDouble("num8");//长途结束公里 - Double num9 = jsonObject1.getDouble("num9");//长途费 - Double num10 = jsonObject1.getDouble("num10");//超出长途里程每num10公里 - Double num11 = jsonObject1.getDouble("num11");//超过num8每num10公里收取num11 + JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程 + Double num4 = jsonObject1.getDouble("num4");//长途里程 + Double num5 = jsonObject1.getDouble("num5");//长途里程 + Double num6 = jsonObject1.getDouble("num6");//长途费 + Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里 + Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11 String[] split = num1.split(":"); Calendar s = Calendar.getInstance(); @@ -240,33 +221,81 @@ e.set(Calendar.SECOND, 0); if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){ - if(num3.compareTo(distance) >= 0){//起步里程内 - order.setStartDistance(distance);//起步里程 - order.setStartPrice(num4);//起步价 - }else{ - BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程 - BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN)); - BigDecimal multiply = divide.multiply(new BigDecimal(num6)); - order.setStartDistance(num3);//起步里程 - order.setStartPrice(num4);//起步价 - order.setOverDriveDistance(subtract.doubleValue());//超出起步里程 - order.setOverDrivePrice(multiply.doubleValue());//超出起步里程费 - + b = false; + Double dd = 0d; + for (int j = 0; j < num3.size(); j++) { + JSONObject jsonObject2 = num3.getJSONObject(j); + Double num1_1 = jsonObject2.getDouble("num1"); + Double num2_1 = jsonObject2.getDouble("num2"); + Double num3_1 = jsonObject2.getDouble("num3"); + if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){ + order.setStartDistance(distance);//起步里程 + order.setStartPrice(num3_1);//起步价 + } + if(j == num3.size() - 1 && order.getStartPrice() == 0){ + order.setStartDistance(num2_1);//起步里程 + order.setStartPrice(num3_1);//起步价 + dd = distance - num2_1; + } + } + if(dd != 0){ //计算长途费 - if(distance.compareTo(num7) > 0){ - order.setLongDistance(num7 + "-" + num8);//长途里程 - order.setLongDistancePrice(num9);//长途费 + if(distance.compareTo(num4) > 0){ + order.setLongDistance(num4 + "-" + num5);//长途里程 + order.setLongDistancePrice(num6);//长途费 } //计算长途里程超出的部分 - if(distance.compareTo(num8) > 0){ - BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)); - BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN)); - BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11)); + if(distance.compareTo(num5) > 0){ + BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5)); + BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN)); + BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8)); order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费 } } break; + } + } + + if(b){//默认配置 + JSONObject jsonObject1 = chargeStandard.getJSONObject(0); + JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程 + Double num4 = jsonObject1.getDouble("num4");//长途里程 + Double num5 = jsonObject1.getDouble("num5");//长途里程 + Double num6 = jsonObject1.getDouble("num6");//长途费 + Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里 + Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11 + + Double dd = 0d; + for (int j = 0; j < num3.size(); j++) { + JSONObject jsonObject2 = num3.getJSONObject(j); + Double num1_1 = jsonObject2.getDouble("num1"); + Double num2_1 = jsonObject2.getDouble("num2"); + Double num3_1 = jsonObject2.getDouble("num3"); + if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){ + order.setStartDistance(distance);//起步里程 + order.setStartPrice(num3_1);//起步价 + } + if(j == num3.size() - 1 && order.getStartPrice() == 0){ + order.setStartDistance(num2_1);//起步里程 + order.setStartPrice(num3_1);//起步价 + dd = distance - num2_1; + } + } + if(dd != 0){ + //计算长途费 + if(distance.compareTo(num4) > 0){ + order.setLongDistance(num4 + "-" + num5);//长途里程 + order.setLongDistancePrice(num6);//长途费 + } + //计算长途里程超出的部分 + if(distance.compareTo(num5) > 0){ + BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5)); + BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN)); + BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8)); + order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 + order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费 + } } } @@ -783,12 +812,7 @@ orderPriceWarpper.setDiscountAmount(0D); orderPriceWarpper.setPayType(1);//微信支付 Double orderMoney = order.getOrderMoney(); - //先算优惠券 -// Coupon coupon = userToCouponService.queryCoupon(uid, orderMoney); -// if(null != coupon && null == couponId){ -// orderPriceWarpper.setDiscountedPrice(coupon.getCouponPreferentialAmount()); -// orderPriceWarpper.setCouponId(coupon.getId()); -// } + if(payType == 1 && null == couponId && appUser.getHavDiscount() == 1 && balance.compareTo(orderMoney) >= 0){//使用余额抵扣 orderPriceWarpper.setDiscount(9D); orderPriceWarpper.setDiscountAmount(new BigDecimal(orderMoney * 0.1).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); @@ -859,6 +883,9 @@ if(orderPayment.getPayType() == 3){//线下支付(由司机端操作) } if(orderPayment.getPayType() == 4){//微信+余额 + if(appUser.getAccountBalance() == 0){ + return ResultUtil.error("账户余额不足"); + } return weixinAndBalancePayment(order, appUser, orderPayment.getCouponId()); } return ResultUtil.success(); @@ -889,48 +916,92 @@ } order.setPayType(1); order.setPayMoney(payMoney); + this.updateById(order); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String out_trade_no = sdf.format(new Date()) + order.getId(); -// ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid()); -// this.updateById(order); + ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid()); + if(weixinpay.getCode() == 200){ + new Thread(new Runnable() { + @Override + public void run() { + try { + int num = 1; + int wait = 0; + while (num <= 10) { + int min = 5000; + wait += (min * num); + Order order1 = OrderServiceImpl.this.selectById(order.getId()); + if (order1.getState() != 107) { + return; + } + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, ""); + if (resultUtil.getCode() == 200) { + /** + * 订单状态 + * SUCCESS—支付成功, + * REFUND—转入退款, + * NOTPAY—未支付, + * CLOSED—已关闭, + * REVOKED—已撤销(刷卡支付), + * USERPAYING--用户支付中, + * PAYERROR--支付失败(其他原因,如银行返回失败) + */ + Map<String, String> data2 = resultUtil.getData(); + String s = data2.get("state"); + String transaction_id = data2.get("transaction_id"); + if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) { + //回退 + return; + } + if ("SUCCESS".equals(s)) { + order1.setState(108); + order1.setPayTime(new Date()); + order1.setOrderNo(transaction_id); + OrderServiceImpl.this.updateById(order1); + Driver driver = driverService.selectById(order1.getDriverId()); + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(order1.getDriverId()); + accountChangeDetail.setCreateTime(new Date()); + accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(7); + accountChangeDetail.setOrderId(order1.getId()); + accountChangeDetail.setExplain("优惠券收入"); + driver.setCouponBalance(driver.getCouponBalance() + order1.getDiscountedPrice()); + accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + driverService.updateById(driver); + accountChangeDetailService.insert(accountChangeDetail); - - PaymentOrder paymentOrder = new PaymentOrder(); - paymentOrder.setBizOrderId(out_trade_no); - paymentOrder.setAmount(String.valueOf(payMoney * 100)); - paymentOrder.setOrderName("代驾服务费"); - paymentOrder.setPayType("WX_MINI"); - paymentOrder.setTransferType("0"); - paymentOrder.setAsynSplitFlag("1"); - paymentOrder.setAppid(""); - paymentOrder.setOpenid(appUser.getOpenid()); - paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress()); - List<PaymentOrderGood> goodsDetail = new ArrayList<>(); - PaymentOrderGood paymentOrderGood = new PaymentOrderGood(); - paymentOrderGood.setGoodsName("服务费"); - goodsDetail.add(paymentOrderGood); - paymentOrder.setGoodsDetail(goodsDetail); - paymentOrder.setFrontUrl(""); - paymentOrder.setNotifyUrl(callbackPath + "/base/order/orderPayCallback"); - paymentOrder.setParameter1(order.getId().toString()); - - TrhRequest<PaymentOrder> request = new TrhRequest(); - InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - return ResultUtil.error(execute.getMsg()); + pushUtil.pushOrderStatus(order1.getUserId(), 1, order1.getId(), order1.getState()); + if(null != order1.getDriverId()) { + PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper(); + pushOrderInfoWarpper.setId(order1.getId()); + pushOrderInfoWarpper.setState(order1.getState()); + pushUtil.pushOrderInfo(order1.getDriverId(), 2, pushOrderInfoWarpper); + } + //处理佣金和收入记录 + saveCommission(order1); + return; + } + if ("USERPAYING".equals(s)) { + Thread.sleep(wait); + num++; + continue; + } + Thread.sleep(wait); + num++; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - return ResultUtil.error("失败"); - } - if("0".equals(status)){ - return ResultUtil.error("处理中"); - } - String payCode = jsonObject.getString("payCode"); - this.updateById(order); - return ResultUtil.success(payCode); + return weixinpay; } @@ -1056,126 +1127,109 @@ if(0 < payMoney){//还需要调起微信支付 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String out_trade_no = sdf.format(new Date()) + order.getId(); -// ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid()); + ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid()); - PaymentOrder paymentOrder = new PaymentOrder(); - paymentOrder.setBizOrderId(out_trade_no); - paymentOrder.setAmount(String.valueOf(payMoney * 100)); - paymentOrder.setOrderName("代驾服务费"); - paymentOrder.setPayType("WX_MINI"); - paymentOrder.setTransferType("0"); - paymentOrder.setAsynSplitFlag("1"); - paymentOrder.setAppid(""); - paymentOrder.setOpenid(appUser.getOpenid()); - paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress()); - List<PaymentOrderGood> goodsDetail = new ArrayList<>(); - PaymentOrderGood paymentOrderGood = new PaymentOrderGood(); - paymentOrderGood.setGoodsName("服务费"); - goodsDetail.add(paymentOrderGood); - paymentOrder.setGoodsDetail(goodsDetail); - paymentOrder.setFrontUrl(""); - paymentOrder.setNotifyUrl(callbackPath + "/base/order/orderPayCallback"); - paymentOrder.setParameter1(order.getId().toString()); + if(weixinpay.getCode() == 200){ + new Thread(new Runnable() { + @Override + public void run() { + try { + int num = 1; + int wait = 0; + while (num <= 10) { + int min = 5000; + wait += (min * num); + Order order1 = OrderServiceImpl.this.selectById(order.getId()); + if (order1.getState() != 107) { + return; + } + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, ""); + if (resultUtil.getCode() == 200) { + /** + * 订单状态 + * SUCCESS—支付成功, + * REFUND—转入退款, + * NOTPAY—未支付, + * CLOSED—已关闭, + * REVOKED—已撤销(刷卡支付), + * USERPAYING--用户支付中, + * PAYERROR--支付失败(其他原因,如银行返回失败) + */ + Map<String, String> data2 = resultUtil.getData(); + String s = data2.get("state"); + String transaction_id = data2.get("transaction_id"); + if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) { + //回退 + AccountChangeDetail accountChangeDetail1 = accountChangeDetailService.selectById(accountChangeDetail.getId()); + double v = accountChangeDetail1.getOldData() - accountChangeDetail1.getNewData(); + AppUser appUser1 = appUserService.selectById(order1.getUserId()); - TrhRequest<PaymentOrder> request = new TrhRequest(); - InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - return ResultUtil.error(execute.getMsg()); - } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - return ResultUtil.error("失败"); - } - if("0".equals(status)){ - return ResultUtil.error("处理中"); - } - String payCode = jsonObject.getString("payCode"); - this.updateById(order); - return ResultUtil.success(payCode); + accountChangeDetail1 = new AccountChangeDetail(); + accountChangeDetail1.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + accountChangeDetail1.setUserType(1); + accountChangeDetail1.setUserId(appUser1.getId()); + accountChangeDetail1.setCreateTime(new Date()); + accountChangeDetail1.setOldData(appUser1.getAccountBalance()); + accountChangeDetail1.setType(1); + accountChangeDetail1.setChangeType(2); + accountChangeDetail1.setOrderId(order1.getId()); + accountChangeDetail1.setExplain("支付失败回退"); + appUser1.setAccountBalance(appUser1.getAccountBalance() + v); + accountChangeDetail1.setNewData(appUser1.getAccountBalance()); + appUserService.updateById(appUser1); + accountChangeDetailService.insert(accountChangeDetail1); + return; + } + if ("SUCCESS".equals(s)) { + order1.setState(108); + order1.setPayTime(new Date()); + order1.setOrderNo(transaction_id); + OrderServiceImpl.this.updateById(order1); - // TODO: 2023/5/18 取消支付后需要处理优惠券数据回退 -// -// -// new Thread(new Runnable() { -// @Override -// public void run() { -// try { -// int num = 1; -// int wait = 0; -// while (num <= 10){ -// int min = 5000; -// wait += (min * num); -// Order order1 = OrderServiceImpl.this.selectById(order.getId()); -// if(order1.getState() != 107){ -// return; -// } -// -// /** -// * SUCCESS--支付成功 -// * REFUND--转入退款 -// * NOTPAY--未支付 -// * CLOSED--已关闭 -// * REVOKED--已撤销(刷卡支付) -// * USERPAYING--用户支付中 -// * PAYERROR--支付失败(其他原因,如银行返回失败) -// * ACCEPT--已接收,等待扣款 -// */ -// ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, ""); -// if(resultUtil.getCode() == 200){ -// Map<String, String> map = resultUtil.getData(); -// String trade_type = map.get("trade_type"); -// String trade_state = map.get("trade_state"); -// String transaction_id = map.get("transaction_id"); -// if("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){ -// AccountChangeDetail accountChangeDetail1 = accountChangeDetailService.selectById(accountChangeDetail.getId()); -// AppUser appUser1 = appUserService.selectById(accountChangeDetail1.getUserId()); -// Double b = accountChangeDetail1.getOldData() - accountChangeDetail1.getNewData(); -// appUser1.setAccountBalance(appUser1.getAccountBalance() + b); -// appUserService.updateById(appUser1); -// -// accountChangeDetailService.deleteById(accountChangeDetail.getId()); -// return; -// } -// if("SUCCESS".equals(trade_state)){ -// order1.setPayTime(new Date()); -// order1.setState(108); -// order1.setOrderNo(transaction_id); -// OrderServiceImpl.this.updateById(order1); -// -// //处理抽成及收入 -// saveCommission(order1); -// return; -// } -// if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){ -// Thread.sleep(wait); -// num++; -// } -// }else{ -// Thread.sleep(wait); -// num++; -// } -// if(10 == num){ -// AccountChangeDetail accountChangeDetail1 = accountChangeDetailService.selectById(accountChangeDetail.getId()); -// AppUser appUser1 = appUserService.selectById(accountChangeDetail1.getUserId()); -// Double b = accountChangeDetail1.getOldData() - accountChangeDetail1.getNewData(); -// appUser1.setAccountBalance(appUser1.getAccountBalance() + b); -// appUserService.updateById(appUser1); -// -// accountChangeDetailService.deleteById(accountChangeDetail.getId()); -// } -// } -// }catch (Exception e){ -// e.printStackTrace(); -// } -// } -// }).start(); -// return weixinpay; + Driver driver = driverService.selectById(order1.getDriverId()); + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(order1.getDriverId()); + accountChangeDetail.setCreateTime(new Date()); + accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(7); + accountChangeDetail.setOrderId(order1.getId()); + accountChangeDetail.setExplain("优惠券收入"); + driver.setCouponBalance(driver.getCouponBalance() + order1.getDiscountedPrice()); + accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + driverService.updateById(driver); + accountChangeDetailService.insert(accountChangeDetail); + + pushUtil.pushOrderStatus(order1.getUserId(), 1, order1.getId(), order1.getState()); + if(null != order1.getDriverId()) { + PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper(); + pushOrderInfoWarpper.setId(order1.getId()); + pushOrderInfoWarpper.setState(order1.getState()); + pushUtil.pushOrderInfo(order1.getDriverId(), 2, pushOrderInfoWarpper); + } + //处理佣金和收入记录 + saveCommission(order1); + return; + } + if ("USERPAYING".equals(s)) { + Thread.sleep(wait); + num++; + continue; + } + Thread.sleep(wait); + num++; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + } + return weixinpay; } -// order.setPayTime(new Date()); -// this.updateById(order); - - return ResultUtil.success(); } @@ -1206,135 +1260,6 @@ pushOrderInfoWarpper.setState(order.getState()); pushUtil.pushOrderInfo(order.getDriverId(), 2, pushOrderInfoWarpper); } - - //支付成功---->异步分账----->10s钟后再进行确认收货 - //确认收货后才能进行提现(结算接口) - //异步分账 - List<Revenue> revenues = revenueService.selectList(new EntityWrapper<Revenue>().eq("orderId", order.getId())); - Complete complete = new Complete(); - complete.setOriginalMerOrderId(transaction_id); - complete.setNotifyUrl(callbackPath + "/base/order/ledgerCallback"); - List<PamentOrderUser> splitList = new ArrayList<>(); - for (Revenue revenue : revenues) { - if(revenue.getUserType() == 2){//司机 - Driver driver = driverService.selectById(revenue.getUserId()); - PamentOrderUser pamentOrderUser = new PamentOrderUser(); - pamentOrderUser.setSplitUserId(driver.getMerchantNumber()); - pamentOrderUser.setSplitAmount(revenue.getAmount().toString()); - pamentOrderUser.setSplitType("2"); - splitList.add(pamentOrderUser); - - DivisionRecord divisionRecord = new DivisionRecord(); - divisionRecord.setUserType(1); - divisionRecord.setUserId(revenue.getUserId()); - divisionRecord.setOrderId(order.getId()); - divisionRecord.setMerOrderId(transaction_id); - divisionRecord.setSourceType(1); - divisionRecord.setAmount(revenue.getAmount()); - divisionRecord.setMerchantNumber(driver.getMerchantNumber()); - divisionRecord.setState(1); - divisionRecord.setCreateTime(new Date()); - divisionRecordService.insert(divisionRecord); - } - if(revenue.getUserType() == 3){//代理商 - Agent agent = agentService.selectById(revenue.getUserId()); - PamentOrderUser pamentOrderUser = new PamentOrderUser(); - pamentOrderUser.setSplitUserId(agent.getMerchantNumber()); - pamentOrderUser.setSplitAmount(revenue.getAmount().toString()); - pamentOrderUser.setSplitType("2"); - splitList.add(pamentOrderUser); - - DivisionRecord divisionRecord = new DivisionRecord(); - divisionRecord.setUserType(2); - divisionRecord.setUserId(revenue.getUserId()); - divisionRecord.setOrderId(order.getId()); - divisionRecord.setMerOrderId(transaction_id); - divisionRecord.setSourceType(1); - divisionRecord.setAmount(revenue.getAmount()); - divisionRecord.setMerchantNumber(agent.getMerchantNumber()); - divisionRecord.setState(1); - divisionRecord.setCreateTime(new Date()); - divisionRecordService.insert(divisionRecord); - } - - } - complete.setSplitList(splitList); - TrhRequest<Complete> request = new TrhRequest(); - InterfaceResponse execute = request.execute(complete, Complete.SERVICE_CODE); - if(!"0000".equals(execute.getResult())){ - return ResultUtil.error(execute.getMsg()); - } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - return ResultUtil.error("失败"); - } - if("0".equals(status)){ - return ResultUtil.error("处理中"); - } - - //使用优惠券的情况,通过转账接口将优惠券的收入转到司机电子账簿 - if(null != order.getCouponId()){ - List<PlatformRechargeRecord> platformRechargeRecords = platformRechargeRecordService.selectList(new EntityWrapper<PlatformRechargeRecord>().eq("state", 2).last(" and balance > 0 order by payTime")); - Double discountedPrice = order.getDiscountedPrice(); - Driver driver = driverService.selectById(order.getDriverId()); - - UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId()); - Coupon coupon = couponService.selectById(userToCoupon.getCouponId()); - AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); - accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); - accountChangeDetail.setUserType(2); - accountChangeDetail.setUserId(order.getDriverId()); - accountChangeDetail.setCreateTime(new Date()); - accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); - accountChangeDetail.setType(1); - accountChangeDetail.setChangeType(7); - accountChangeDetail.setOrderId(order.getId()); - accountChangeDetail.setExplain("优惠券收入"); - driver.setCouponBalance(driver.getCouponBalance() + coupon.getCouponPreferentialAmount()); - accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); - driverService.updateById(driver); - accountChangeDetailService.insert(accountChangeDetail); - - - for (PlatformRechargeRecord platformRechargeRecord : platformRechargeRecords) { - if(discountedPrice == 0){ - break; - } - - if(platformRechargeRecord.getBalance().compareTo(discountedPrice) >= 0){ - discountedPrice = 0D; - platformRechargeRecord.setBalance(platformRechargeRecord.getBalance() - discountedPrice); - platformRechargeRecordService.updateById(platformRechargeRecord); - }else{ - - } - - Transfer transfer = new Transfer(); - transfer.setDepositMerOrderId("6831518911582834611"); - transfer.setToUserId(driver.getMerchantNumber()); - transfer.setAmount(discountedPrice.toString()); - transfer.setOrderName(""); - transfer.setNotifyUrl(""); - transfer.setParameter1(order.getId().toString()); - - TrhRequest<Transfer> request1 = new TrhRequest(); - InterfaceResponse execute1 = request1.execute(transfer, Transfer.SERVICE_CODE); - if(!"0000".equals(execute1.getResult())){ - return ResultUtil.error(execute1.getMsg()); - } - JSONObject jsonObject1 = JSON.parseObject(execute1.getResult()); - String status1 = jsonObject1.getString("status"); - if("2".equals(status1)){ - return ResultUtil.error("失败"); - } - if("0".equals(status1)){ - return ResultUtil.error("处理中"); - } - } - } - - return ResultUtil.success(); } diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java index cc4a211..2a303ca 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java @@ -1,5 +1,6 @@ package com.agentdriving.user.modular.system.service.impl; +import com.agentdriving.user.core.util.ToolUtil; import com.agentdriving.user.modular.system.dao.SystemConfigMapper; import com.agentdriving.user.modular.system.model.SystemConfig; import com.agentdriving.user.modular.system.service.ISystemConfigService; @@ -35,7 +36,6 @@ SystemConfig systemConfig = this.selectOne(new EntityWrapper<SystemConfig>().eq("type", 5)); PriceRulesWarpper priceRulesWarpper = new PriceRulesWarpper(); if(null != systemConfig){ - //{"ChargeStandard":[{"num1":"06:00","num2":"08:00","num3":2,"num4":2,"num5":2,"num6":2,"num7":2,"num8":2,"num9":2,"num10":2,"num11":2},{"num1":"06:00","num2":"08:00","num3":1,"num4":1,"num5":1,"num6":1,"num7":2,"num8":2,"num9":2,"num10":2,"num11":2},{"num1":"00:00","num2":"10:00","num3":3,"num4":3,"num5":3,"num6":3,"num7":3,"num8":3,"num9":3,"num10":3,"num11":3}],"ExtraCost":{"num1":1,"num2":1,"num3":1,"num4":1,"num5":1,"num6":1,"num7":1,"num8":1,"num9":1}} JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard"); List<Map<String, Object>> basePrice = new ArrayList<>(); @@ -44,29 +44,34 @@ JSONObject jsonObject1 = chargeStandard.getJSONObject(i); String num1 = jsonObject1.getString("num1"); String num2 = jsonObject1.getString("num2"); - Double num3 = jsonObject1.getDouble("num3"); + JSONArray num3 = jsonObject1.getJSONArray("num3"); Double num4 = jsonObject1.getDouble("num4"); Double num5 = jsonObject1.getDouble("num5"); Double num6 = jsonObject1.getDouble("num6"); Double num7 = jsonObject1.getDouble("num7"); Double num8 = jsonObject1.getDouble("num8"); - Double num9 = jsonObject1.getDouble("num9"); - Double num10 = jsonObject1.getDouble("num10"); - Double num11 = jsonObject1.getDouble("num11"); - Map<String, Object> map1 = new HashMap<>(); - map1.put("time", num1 + "-" + num2); - map1.put("startingMileage", num3 + "公里(包含" + num3 + "公里)"); - map1.put("startingPrice", num4 + "元"); - map1.put("exceedStartingPrice", num6 + "元/" + num5 + "公里"); + map1.put("time", ToolUtil.isEmpty(num1) ? "其他时段" : num1 + "-" + num2); + List<Map<String, String>> list = new ArrayList<>(); + for (int j = 0; j < num3.size(); j++) { + Map<String, String> map = new HashMap<>(); + JSONObject jsonObject2 = num3.getJSONObject(j); + Double num1_1 = jsonObject2.getDouble("num1"); + Double num2_1 = jsonObject2.getDouble("num2"); + Double num3_1 = jsonObject2.getDouble("num3"); + map.put("startingMileage", num1_1 + "-" + num2_1 + "公里(含" + num2_1 + "公里)"); + map.put("startingPrice", num3_1 + "元"); + list.add(map); + } + map1.put("data", list); basePrice.add(map1); Map<String, Object> map2 = new HashMap<>(); - map2.put("time", num1 + "-" + num2); - map2.put("startingMileage", num7 + "-" + num8 + "公里"); - map2.put("startingPrice", num9 + "元"); - map2.put("exceedStartingPrice", num11 + "元/" + num10 + "公里"); + map2.put("time", ToolUtil.isEmpty(num1) ? "其他时段" : num1 + "-" + num2); + map2.put("startingMileage", num4 + "-" + num5 + "公里"); + map2.put("startingPrice", num6 + "元"); + map2.put("exceedStartingPrice", num7 + "元/" + num8 + "公里"); longDistanceCharges.add(map2); } priceRulesWarpper.setBasePrice(JSON.toJSONString(basePrice)); diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/ALiSendSms.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/ALiSendSms.java deleted file mode 100644 index a4ab8bb..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/ALiSendSms.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.agentdriving.user.modular.system.util; - - -import com.aliyuncs.CommonRequest; -import com.aliyuncs.CommonResponse; -import com.aliyuncs.DefaultAcsClient; -import com.aliyuncs.IAcsClient; -import com.aliyuncs.exceptions.ClientException; -import com.aliyuncs.profile.DefaultProfile; -import com.google.gson.Gson; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 阿里云短信工具类 - */ -@Component -public class ALiSendSms { - - // 设置鉴权参数,初始化客户端 - private DefaultProfile profile = DefaultProfile.getProfile( - "cn-hangzhou",// 地域ID - "LTAI4G9Zez9H4B36vakPXGy4",// 您的AccessKey ID - "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ");// 您的AccessKey Secret - private IAcsClient client = new DefaultAcsClient(profile); - - private static void log_print(String functionName, Object result) { - Gson gson = new Gson(); - System.out.println("-------------------------------" + functionName + "-------------------------------"); - System.out.println(gson.toJson(result)); - } - - /** - * 添加短信模板 - */ - public String addSmsTemplate() throws ClientException { - CommonRequest addSmsTemplateRequest = new CommonRequest(); - addSmsTemplateRequest.setSysDomain("dysmsapi.aliyuncs.com"); - addSmsTemplateRequest.setSysAction("AddSmsTemplate"); - addSmsTemplateRequest.setSysVersion("2017-05-25"); - // 短信类型。0:验证码;1:短信通知;2:推广短信;3:国际/港澳台消息 - addSmsTemplateRequest.putQueryParameter("TemplateType", "0"); - // 模板名称,长度为1~30个字符 - addSmsTemplateRequest.putQueryParameter("TemplateName", "测试短信模板"); - // 模板内容,长度为1~500个字符 - addSmsTemplateRequest.putQueryParameter("TemplateContent", "您正在申请手机注册,验证码为:${code},5分钟内有效!"); - // 短信模板申请说明 - addSmsTemplateRequest.putQueryParameter("Remark", "测试"); - CommonResponse addSmsTemplateResponse = client.getCommonResponse(addSmsTemplateRequest); - String data = addSmsTemplateResponse.getData(); - // 消除返回文本中的反转义字符 - String sData = data.replaceAll("'\'", ""); - log_print("addSmsTemplate", sData); - Gson gson = new Gson(); - // 将字符串转换为Map类型,取TemplateCode字段值 - Map map = gson.fromJson(sData, Map.class); - Object templateCode = map.get("TemplateCode"); - return templateCode.toString(); - } - - /** - * 发送短信 - */ - public String sendSms(String phone, String templateCode, String json) throws ClientException { - CommonRequest request = new CommonRequest(); - request.setSysDomain("dysmsapi.aliyuncs.com"); - request.setSysVersion("2017-05-25"); - request.setSysAction("SendSms"); - // 接收短信的手机号码 - request.putQueryParameter("PhoneNumbers", phone); - // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。 - request.putQueryParameter("SignName", "OK出行"); - // 短信模板ID - request.putQueryParameter("TemplateCode", templateCode); - // 短信模板变量对应的实际值,JSON格式。 - request.putQueryParameter("TemplateParam", json); - CommonResponse commonResponse = client.getCommonResponse(request); - String data = commonResponse.getData(); - String sData = data.replaceAll("'\'", ""); - log_print("sendSms", sData); - return sData; - } - - /** - * 查询发送详情 - */ - private void querySendDetails(String bizId) throws ClientException { - CommonRequest request = new CommonRequest(); - request.setSysDomain("dysmsapi.aliyuncs.com"); - request.setSysVersion("2017-05-25"); - request.setSysAction("QuerySendDetails"); - // 接收短信的手机号码 - request.putQueryParameter("PhoneNumber", "156xxxxxxxx"); - // 短信发送日期,支持查询最近30天的记录。格式为yyyyMMdd,例如20191010。 - request.putQueryParameter("SendDate", "20191010"); - // 分页记录数量 - request.putQueryParameter("PageSize", "10"); - // 分页当前页码 - request.putQueryParameter("CurrentPage", "1"); - // 发送回执ID,即发送流水号。 - request.putQueryParameter("BizId", bizId); - CommonResponse response = client.getCommonResponse(request); - log_print("querySendDetails", response.getData()); - } - - public static void main(String[] args) { - ALiSendSms sendSmsDemo = new ALiSendSms(); - try { - // 创建短信模板 - String templateCode = sendSmsDemo.addSmsTemplate(); - // 使用刚创建的短信模板发送短信 - String sData = sendSmsDemo.sendSms("156xxxxxxxx", templateCode, "{\"code\":\"8888\"}"); - Gson gson = new Gson(); - Map map = gson.fromJson(sData, Map.class); - String bizId = map.get("BizId").toString(); - // 根据短信发送流水号查询短信发送情况 - sendSmsDemo.querySendDetails(bizId); - } catch (ClientException e) { - e.printStackTrace(); - } - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java index 78e4dde..6487113 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java @@ -10,5 +10,5 @@ /** * 高德key */ - String key = "e0370a9a4d10739045fb0b8f4742a67e"; + String key = "588845b621c3c42d6d6c8f50ba00cb41"; } diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/JGPushUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/JGPushUtil.java deleted file mode 100644 index f5cdbf0..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/JGPushUtil.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.agentdriving.user.modular.system.util; - -import cn.jiguang.common.ClientConfig; -import cn.jiguang.common.resp.APIConnectionException; -import cn.jiguang.common.resp.APIRequestException; -import cn.jpush.api.JPushClient; -import cn.jpush.api.push.PushResult; -import cn.jpush.api.push.model.Platform; -import cn.jpush.api.push.model.PushPayload; -import cn.jpush.api.push.model.audience.Audience; -import cn.jpush.api.push.model.notification.Notification; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 极光推送工具类 - */ -@Component -public class JGPushUtil { - - @Value("${jiguang.appKey-driver}") - private String appKeyDriver; - - @Value("${jiguang.masterSecret-driver}") - private String masterSecretDriver; - - @Value("${jiguang.appKey-dispatch}") - private String appKeyDispatch; - - @Value("${jiguang.masterSecret-dispatch}") - private String masterSecretDispatch; - - - private PushPayload buildPushObject_all_all_alert(String content, String...tags) { - return PushPayload.newBuilder() - .setPlatform(Platform.all())//设置推送平台为全部平台 - .setAudience(Audience.alias(tags))//通过别名的方式发送(用户owner_id,员工user_id) - .setNotification(Notification.alert(content)) - .build(); - } - - - private PushPayload buildPushObject_all_all_alert(String title, String content, Map<String, String> map, String...tags) { - return PushPayload.newBuilder() - .setPlatform(Platform.all())//设置推送平台为全部平台 - .setAudience(Audience.alias(tags))//通过别名的方式发送(用户owner_id,员工user_id) - .setNotification(Notification.android(content, title, map)) - .setNotification(Notification.ios(content, map)) - .setNotification(Notification.winphone(content, map)) - .build(); - } - - - /** - * 推送 - * @param tags - * @param content - */ - public void push(Integer type, String content, String...tags){ - String masterSecret = (type == 1 ? masterSecretDriver : masterSecretDispatch); - String appKey = (type == 1 ? appKeyDriver : appKeyDispatch); - JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance()); - PushPayload payload = this.buildPushObject_all_all_alert(content, tags); - try { - PushResult result = jpushClient.sendPush(payload); - System.err.println(result.statusCode); - } catch (APIConnectionException e) { - e.printStackTrace(); - } catch (APIRequestException e) { - e.printStackTrace(); - } - } - - - public void push(Integer type, String content, String title, Map<String, String> map, String...tags){ - String masterSecret = (type == 1 ? masterSecretDriver : masterSecretDispatch); - String appKey = (type == 1 ? appKeyDriver : appKeyDispatch); - JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance()); - PushPayload payload = this.buildPushObject_all_all_alert(title, content, map, tags); - try { - PushResult result = jpushClient.sendPush(payload); - System.err.println(result.statusCode); - } catch (APIConnectionException e) { - e.printStackTrace(); - } catch (APIRequestException e) { - e.printStackTrace(); - } - } - -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/config/ChannelConfig.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/config/ChannelConfig.java deleted file mode 100644 index 01b372f..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/config/ChannelConfig.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.config; - -import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; -import org.springframework.core.io.ClassPathResource; - -import java.util.Properties; - -/** - * @Author xiaogc - * @Date 2022/2/10 10:03 - */ -public class ChannelConfig { - /** - * mallbook 测试环境地址 - */ - public static String payUrl; - - /** - * 业务系统商户平台编号 - */ - public static String merchantNo; - /** - * 接口版本号,不同版本号触发不同接口业务 - */ - public static String version; - /* - * 渠道类型 HF:汇付 - */ - public static String channelType; - - /** - * 商户平台私钥路径 - */ - public static String merchantPrivateKey; - /** - * mallbook公钥路径 - */ - public static String mallBookPublicKey; - - static { - YamlPropertiesFactoryBean yamlProFb = new YamlPropertiesFactoryBean(); - yamlProFb.setResources(new ClassPathResource("application.yaml")); - Properties properties = yamlProFb.getObject(); - System.out.println("mallbook 参数配置初始化"); - System.out.println("--------------------------------"); - System.out.println("环境地址:" + properties.get("mallbook.pay_url")); - System.out.println("商户平台编号:" + properties.get("mallbook.merchant_no")); - System.out.println("接口版本号:" + properties.get("mallbook.version")); - System.out.println("渠道类型:" + properties.get("mallbook.channel_type")); - System.out.println("商户平台私钥:" + properties.get("mallbook.merchant_private_key")); - System.out.println("mallbook 公钥:" + properties.get("mallbook.mall_book_public_key")); - System.out.println("--------------------------------"); - payUrl = properties.get("mallbook.pay_url").toString(); - merchantNo = properties.get("mallbook.merchant_no").toString(); - version = properties.get("mallbook.version").toString(); - channelType = properties.get("mallbook.channel_type").toString(); - merchantPrivateKey = properties.get("mallbook.merchant_private_key").toString(); - mallBookPublicKey = properties.get("mallbook.mall_book_public_key").toString(); - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Complete.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Complete.java deleted file mode 100644 index 6ccff8d..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Complete.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.model; - -import java.util.List; - -public class Complete { - /**业务类型编号,必须和接口文档一致*/ - public static String SERVICE_CODE = "complete"; - //原支付请求订单号 - private String originalMerOrderId; - //分账方列表 - private List<PamentOrderUser> splitList; - //后台回调地址 - private String notifyUrl; - //自定义参数1 - private String parameter1; - //自定义参数2 - private String parameter2; - - public String getOriginalMerOrderId() { - return originalMerOrderId; - } - - public void setOriginalMerOrderId(String originalMerOrderId) { - this.originalMerOrderId = originalMerOrderId; - } - - public List<PamentOrderUser> getSplitList() { - return splitList; - } - - public void setSplitList(List<PamentOrderUser> splitList) { - this.splitList = splitList; - } - - public String getNotifyUrl() { - return notifyUrl; - } - - public void setNotifyUrl(String notifyUrl) { - this.notifyUrl = notifyUrl; - } - - public String getParameter1() { - return parameter1; - } - - public void setParameter1(String parameter1) { - this.parameter1 = parameter1; - } - - public String getParameter2() { - return parameter2; - } - - public void setParameter2(String parameter2) { - this.parameter2 = parameter2; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceRequest.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceRequest.java deleted file mode 100644 index 86c6796..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceRequest.java +++ /dev/null @@ -1,176 +0,0 @@ -/** - * - */ -package com.agentdriving.user.modular.system.util.MallBook.model; - -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; -import com.agentdriving.user.modular.system.util.MallBook.config.ChannelConfig; -import com.agentdriving.user.modular.system.util.MallBook.util.RSASignature; -import com.agentdriving.user.modular.system.util.MallBook.util.StringUtil; - -import java.io.Serializable; - -/** - * 接口请求包 - * - */ -public class InterfaceRequest<T> implements Serializable { - - /** - * - */ - private static final long serialVersionUID = -8130938432046696213L; - - - /** - * 商户平台编号 - */ - private String merchantNo = ChannelConfig.merchantNo; - - /** - * 接口版本号,不同版本号触发不同接口业务 - */ - private String version = ChannelConfig.version; - /* - * 渠道类型 HF:汇付 - */ - private String channelType = ChannelConfig.channelType; - - - /** - * 业务系统订单ID - */ - private String merOrderId; - - /** - * 签名 - */ - private String sign; - - /** - * 业务类型编号 - */ - private String serverCode; - - /** - * 业务参数,json格式 - */ - private String params; - - /** - * 时间戳 - */ - private String date; - - - public String getChannelType() { - return channelType; - } - - public void setChannelType(String channelType) { - this.channelType = channelType; - } - - public String getMerOrderId() { - return merOrderId; - } - - public void setMerOrderId(String merOrderId) { - this.merOrderId = merOrderId; - } - - public String getMerchantNo() { - return merchantNo; - } - - public void setMerchantNo(String merchantNo) { - this.merchantNo = merchantNo; - } - - public String getSign() { - return sign; - } - - public void setSign(String sign) { - this.sign = sign; - } - - public String getServerCode() { - return serverCode; - } - - public void setServerCode(String serverCode) { - this.serverCode = serverCode; - } - - public String getParams() { - return params; - } - - public void setParams(String params) { - this.params = params; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - - /** - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 订单号 + 商户号 + 渠道类型 + 时间戳 + 业务参数json - * @return 待签名字符串 - */ - public String content() { - return StrUtil.builder() - .append(StringUtil.convertNull(merOrderId)) - .append(StringUtil.convertNull(merchantNo)) - .append(StringUtil.convertNull(channelType)) - .append(StringUtil.convertNull(date)) - .append(StringUtil.convertNull(params)) - .toString(); - } - - public InterfaceRequest() { - } - - public InterfaceRequest(T obj, String serverCode) { - this.merOrderId = IdUtil.fastSimpleUUID(); - this.serverCode = serverCode; - this.date = System.currentTimeMillis() + ""; - this.params = JSONUtil.toJsonStr(obj); - // todo 使用商户平台私钥生成sign,需要修改证书对应路径 - this.sign = RSASignature.sign(content()); - } - - - @Override - public String toString() { - return "InterfaceRequest{" + - "merOrderId='" + merOrderId + '\'' + - ", merchantNo='" + merchantNo + '\'' + - ", sign='" + sign + '\'' + - ", serverCode='" + serverCode + '\'' + - ", params='" + params + '\'' + - ", date='" + date + '\'' + - ", version='" + version + '\'' + - ", channelType='" + channelType + '\'' + - '}'; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceResponse.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceResponse.java deleted file mode 100644 index c907a5a..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceResponse.java +++ /dev/null @@ -1,121 +0,0 @@ -/** - * - */ -package com.agentdriving.user.modular.system.util.MallBook.model; - - -import cn.hutool.core.util.StrUtil; -import com.agentdriving.user.modular.system.util.MallBook.util.StringUtil; - -import java.io.Serializable; - - -public class InterfaceResponse implements Serializable { - - - /** - * 结果字符串,json格式 - */ - private String result; - - /** - * 签名,由code+msg+date+result根据私钥生成, 如果有参数为null,签名串中应当做空字符串("")来处理 - */ - private String sign; - - /** - * 结果代码 - */ - private String code; - - /** - * 结果信息 - */ - private String msg; - - /** - * 时间戳 - */ - private String date; - - /** - * 接口版本号 - */ - private String version; - - public String getResult() { - return result; - } - - public void setResult(String result) { - this.result = result; - } - - public String getSign() { - return sign; - } - - public void setSign(String sign) { - this.sign = sign; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - @Override - public String toString() { - return "InterfaceResponse{" + - "result='" + result + '\'' + - ", sign='" + sign + '\'' + - ", code='" + code + '\'' + - ", msg='" + msg + '\'' + - ", date='" + date + '\'' + - ", version='" + version + '\'' + - '}'; - } - - /** - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 签名顺序必须一致!!! - * 结果代码 + 结果信息 + 渠道类型 + 时间戳 + 结果字符串json - * @return 待签名字符串 - */ - public String content() { - return StrUtil.builder() - .append(StringUtil.convertNull(code)) - .append(StringUtil.convertNull(msg)) - .append(StringUtil.convertNull(date)) - .append(StringUtil.convertNull(result)) - .toString(); - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PamentOrderUser.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PamentOrderUser.java deleted file mode 100644 index 314c755..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PamentOrderUser.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.model; - -public class PamentOrderUser { - - /** - * 分账方会员ID(必填) - */ - private String splitUserId; - - /** - * 分账金额(必填) - */ - private String splitAmount; - - /** - * 分账类型(必填) - * 0:收单金额(收款人) - * 1:分账金额 - * 2:佣金 - */ - private String splitType; - - public String getSplitUserId() { - return splitUserId; - } - - public void setSplitUserId(String splitUserId) { - this.splitUserId = splitUserId; - } - - public String getSplitAmount() { - return splitAmount; - } - - public void setSplitAmount(String splitAmount) { - this.splitAmount = splitAmount; - } - - public String getSplitType() { - return splitType; - } - - public void setSplitType(String splitType) { - this.splitType = splitType; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrder.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrder.java deleted file mode 100644 index 6cc876a..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrder.java +++ /dev/null @@ -1,293 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.model; - -import java.util.List; - -public class PaymentOrder { - /**业务类型编号,必须和接口文档一致*/ - public static String SERVICE_CODE = "paymentOrder"; - /** - * 业务订单号(必填) - */ - private String bizOrderId; - - /** - * 交易金额(必填) - */ - private String amount; - - /** - * 付款人 - */ - private String payerUserName; - - /** - * 收款人会员ID(必填) - */ - private String payeeUserId; - - /** - * 订单名称(必填) - */ - private String orderName; - - /** - * 支付类型(必填) - */ - private String payType; - - /** - * 交易类型(必填) - */ - private String transferType; - - /** - * 订单过期时间 - */ - private String expire; - - /** - * 微信或支付宝的appid - */ - private String appid; - - /** - * 微信或支付宝用户id - */ - private String openid; - - /** - * 终端IP(必填) - */ - private String terminalIp; - - /** - * 分账方列表(必填) - */ - private List<PamentOrderUser> splitList; - - /** - * 商品列表(必填) - */ - private List<PaymentOrderGood> goodsDetail; - - /** - * 前台回调地址(必填) - */ - private String frontUrl; - - /** - * 后台回调地址(必填) - */ - private String notifyUrl; - - /** - * 自定义参数1 - */ - private String parameter1; - - /** - * 自定义参数2 - */ - private String parameter2; - /* - * 是否异步分账 - */ - private String asynSplitFlag; - - /** - * 付款方子商户编号 - */ - private String payerUserId; - - /** - * 银行编码 - */ - private String bankCode; - - /** - * 银行卡类型 - */ - private String cardType; - - /** - * 快捷卡唯一标识 - */ - private String tokenNo; - - - public String getPayerUserId() { - return payerUserId; - } - - public void setPayerUserId(String payerUserId) { - this.payerUserId = payerUserId; - } - - public String getBankCode() { - return bankCode; - } - - public void setBankCode(String bankCode) { - this.bankCode = bankCode; - } - - public String getCardType() { - return cardType; - } - - public void setCardType(String cardType) { - this.cardType = cardType; - } - - public String getTokenNo() { - return tokenNo; - } - - public void setTokenNo(String tokenNo) { - this.tokenNo = tokenNo; - } - - public String getAsynSplitFlag() { - return asynSplitFlag; - } - - public void setAsynSplitFlag(String asynSplitFlag) { - this.asynSplitFlag = asynSplitFlag; - } - - public String getBizOrderId() { - return bizOrderId; - } - - public void setBizOrderId(String bizOrderId) { - this.bizOrderId = bizOrderId; - } - - public String getAmount() { - return amount; - } - - public void setAmount(String amount) { - this.amount = amount; - } - - public String getPayerUserName() { - return payerUserName; - } - - public void setPayerUserName(String payerUserName) { - this.payerUserName = payerUserName; - } - - public String getPayeeUserId() { - return payeeUserId; - } - - public void setPayeeUserId(String payeeUserId) { - this.payeeUserId = payeeUserId; - } - - public String getOrderName() { - return orderName; - } - - public void setOrderName(String orderName) { - this.orderName = orderName; - } - - public String getPayType() { - return payType; - } - - public void setPayType(String payType) { - this.payType = payType; - } - - public String getTransferType() { - return transferType; - } - - public void setTransferType(String transferType) { - this.transferType = transferType; - } - - public String getExpire() { - return expire; - } - - public void setExpire(String expire) { - this.expire = expire; - } - - public String getAppid() { - return appid; - } - - public void setAppid(String appid) { - this.appid = appid; - } - - public String getOpenid() { - return openid; - } - - public void setOpenid(String openid) { - this.openid = openid; - } - - public String getTerminalIp() { - return terminalIp; - } - - public void setTerminalIp(String terminalIp) { - this.terminalIp = terminalIp; - } - - public List<PamentOrderUser> getSplitList() { - return splitList; - } - - public void setSplitList(List<PamentOrderUser> splitList) { - this.splitList = splitList; - } - - public List<PaymentOrderGood> getGoodsDetail() { - return goodsDetail; - } - - public void setGoodsDetail(List<PaymentOrderGood> goodsDetail) { - this.goodsDetail = goodsDetail; - } - - public String getFrontUrl() { - return frontUrl; - } - - public void setFrontUrl(String frontUrl) { - this.frontUrl = frontUrl; - } - - public String getNotifyUrl() { - return notifyUrl; - } - - public void setNotifyUrl(String notifyUrl) { - this.notifyUrl = notifyUrl; - } - - public String getParameter1() { - return parameter1; - } - - public void setParameter1(String parameter1) { - this.parameter1 = parameter1; - } - - public String getParameter2() { - return parameter2; - } - - public void setParameter2(String parameter2) { - this.parameter2 = parameter2; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrderGood.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrderGood.java deleted file mode 100644 index 2a43d4f..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrderGood.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.model; - -public class PaymentOrderGood { - - /** 商品编号 */ - private String goodsId; - - /** 商品名称,必填 */ - private String goodsName; - - /** 商品数量 */ - private String quantity; - - /** 商品价格 */ - private String price; - - public String getGoodsId() { - return goodsId; - } - - public void setGoodsId(String goodsId) { - this.goodsId = goodsId; - } - - public String getGoodsName() { - return goodsName; - } - - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - - public String getQuantity() { - return quantity; - } - - public void setQuantity(String quantity) { - this.quantity = quantity; - } - - public String getPrice() { - return price; - } - - public void setPrice(String price) { - this.price = price; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Receive.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Receive.java deleted file mode 100644 index 85bd40d..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Receive.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.model; - -import java.util.List; - -/** - * 确认收货信息参数 - */ -public class Receive { - /**业务类型编号,必须和接口文档一致*/ - public static String SERVICE_CODE = "receive"; - /** - * 原支付请求订单号(必填) - */ - private String originalMerOrderId; - /** - * 异步分账订单号(多次异步确认订单进行确认收货时必传) - */ - private String asynMerOrderId; - - /** - * 确认收货总额(必填) - * 必须大于0 - * 确认收货总额=总确认分账金额 - */ - private String rcvAmount; - - /** - * 分账方列表(必填) - */ - private List<ReceiveUser> splitList; - - /** - * 商品列表 - */ - private List<ReceiveGood> goodsDetail; - /** - * 自定义参数1 - */ - private String parameter1; - - /** - * 自定义参数2 - */ - private String parameter2; - - public String getOriginalMerOrderId() { - return originalMerOrderId; - } - - public void setOriginalMerOrderId(String originalMerOrderId) { - this.originalMerOrderId = originalMerOrderId; - } - - public String getAsynMerOrderId() { - return asynMerOrderId; - } - - public void setAsynMerOrderId(String asynMerOrderId) { - this.asynMerOrderId = asynMerOrderId; - } - - public String getRcvAmount() { - return rcvAmount; - } - - public void setRcvAmount(String rcvAmount) { - this.rcvAmount = rcvAmount; - } - - public List<ReceiveUser> getSplitList() { - return splitList; - } - - public void setSplitList(List<ReceiveUser> splitList) { - this.splitList = splitList; - } - - public List<ReceiveGood> getGoodsDetail() { - return goodsDetail; - } - - public void setGoodsDetail(List<ReceiveGood> goodsDetail) { - this.goodsDetail = goodsDetail; - } - - public String getParameter1() { - return parameter1; - } - - public void setParameter1(String parameter1) { - this.parameter1 = parameter1; - } - - public String getParameter2() { - return parameter2; - } - - public void setParameter2(String parameter2) { - this.parameter2 = parameter2; - } - -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveGood.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveGood.java deleted file mode 100644 index 11edf3c..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveGood.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.model; - -public class ReceiveGood { - - /** 商品编号 */ - private String goodsId; - - /** 商品名称,必填 */ - private String goodsName; - - /** 商品数量 */ - private String quantity; - - /** 商品价格 */ - private String price; - - public String getGoodsId() { - return goodsId; - } - - public void setGoodsId(String goodsId) { - this.goodsId = goodsId; - } - - public String getGoodsName() { - return goodsName; - } - - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - - public String getQuantity() { - return quantity; - } - - public void setQuantity(String quantity) { - this.quantity = quantity; - } - - public String getPrice() { - return price; - } - - public void setPrice(String price) { - this.price = price; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveUser.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveUser.java deleted file mode 100644 index b084d30..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveUser.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.model; - - -public class ReceiveUser { - - /** 分账方会员ID,必填 */ - private String splitUserId; - - /** 确认分账金额,必填 */ - private String rcvSplitAmount; - - public String getSplitUserId() { - return splitUserId; - } - - public void setSplitUserId(String splitUserId) { - this.splitUserId = splitUserId; - } - - public String getRcvSplitAmount() { - return rcvSplitAmount; - } - - public void setRcvSplitAmount(String rcvSplitAmount) { - this.rcvSplitAmount = rcvSplitAmount; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Base64.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Base64.java deleted file mode 100644 index 058e621..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Base64.java +++ /dev/null @@ -1,288 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.util; - -/** - * @Author xiaogc - * @Date 2021/12/21 14:23 - */ -public class Base64 { - static private final int BASELENGTH = 128; - static private final int LOOKUPLENGTH = 64; - static private final int TWENTYFOURBITGROUP = 24; - static private final int EIGHTBIT = 8; - static private final int SIXTEENBIT = 16; - static private final int FOURBYTE = 4; - static private final int SIGN = -128; - static private final char PAD = '='; - static private final boolean fDebug = false; - static final private byte[] base64Alphabet = new byte[BASELENGTH]; - static final private char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH]; - - static { - for (int i = 0; i < BASELENGTH; ++i) { - base64Alphabet[i] = -1; - } - for (int i = 'Z'; i >= 'A'; i--) { - base64Alphabet[i] = (byte) (i - 'A'); - } - for (int i = 'z'; i >= 'a'; i--) { - base64Alphabet[i] = (byte) (i - 'a' + 26); - } - - for (int i = '9'; i >= '0'; i--) { - base64Alphabet[i] = (byte) (i - '0' + 52); - } - - base64Alphabet['+'] = 62; - base64Alphabet['/'] = 63; - - for (int i = 0; i <= 25; i++) { - lookUpBase64Alphabet[i] = (char) ('A' + i); - } - - for (int i = 26, j = 0; i <= 51; i++, j++) { - lookUpBase64Alphabet[i] = (char) ('a' + j); - } - - for (int i = 52, j = 0; i <= 61; i++, j++) { - lookUpBase64Alphabet[i] = (char) ('0' + j); - } - lookUpBase64Alphabet[62] = (char) '+'; - lookUpBase64Alphabet[63] = (char) '/'; - - } - - private static boolean isWhiteSpace(char octect) { - return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9); - } - - private static boolean isPad(char octect) { - return (octect == PAD); - } - - private static boolean isData(char octect) { - return (octect < BASELENGTH && base64Alphabet[octect] != -1); - } - - /** - * Encodes hex octects into Base64 - * - * @param binaryData - * Array containing binaryData - * @return Encoded Base64 array - */ - public static String encode(byte[] binaryData) { - - if (binaryData == null) { - return null; - } - - int lengthDataBits = binaryData.length * EIGHTBIT; - if (lengthDataBits == 0) { - return ""; - } - - int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP; - int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP; - int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 - : numberTriplets; - char encodedData[] = null; - - encodedData = new char[numberQuartet * 4]; - - byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0; - - int encodedIndex = 0; - int dataIndex = 0; - if (fDebug) { - System.out.println("number of triplets = " + numberTriplets); - } - - for (int i = 0; i < numberTriplets; i++) { - b1 = binaryData[dataIndex++]; - b2 = binaryData[dataIndex++]; - b3 = binaryData[dataIndex++]; - - if (fDebug) { - System.out.println("b1= " + b1 + ", b2= " + b2 + ", b3= " + b3); - } - - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); - - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) - : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) - : (byte) ((b2) >> 4 ^ 0xf0); - byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) - : (byte) ((b3) >> 6 ^ 0xfc); - - if (fDebug) { - System.out.println("val2 = " + val2); - System.out.println("k4 = " + (k << 4)); - System.out.println("vak = " + (val2 | (k << 4))); - } - - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f]; - } - - // form integral number of 6-bit groups - if (fewerThan24bits == EIGHTBIT) { - b1 = binaryData[dataIndex]; - k = (byte) (b1 & 0x03); - if (fDebug) { - System.out.println("b1=" + b1); - System.out.println("b1<<2 = " + (b1 >> 2)); - } - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) - : (byte) ((b1) >> 2 ^ 0xc0); - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; - encodedData[encodedIndex++] = PAD; - encodedData[encodedIndex++] = PAD; - } else if (fewerThan24bits == SIXTEENBIT) { - b1 = binaryData[dataIndex]; - b2 = binaryData[dataIndex + 1]; - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); - - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) - : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) - : (byte) ((b2) >> 4 ^ 0xf0); - - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; - encodedData[encodedIndex++] = PAD; - } - - return new String(encodedData); - } - - /** - * Decodes Base64 data into octects - * - * @param encoded - * string containing Base64 data - * @return Array containind decoded data. - */ - public static byte[] decode(String encoded) { - - if (encoded == null) { - return null; - } - - char[] base64Data = encoded.toCharArray(); - // remove white spaces - int len = removeWhiteSpace(base64Data); - - if (len % FOURBYTE != 0) { - return null;// should be divisible by four - } - - int numberQuadruple = (len / FOURBYTE); - - if (numberQuadruple == 0) { - return new byte[0]; - } - - byte decodedData[] = null; - byte b1 = 0, b2 = 0, b3 = 0, b4 = 0; - char d1 = 0, d2 = 0, d3 = 0, d4 = 0; - - int i = 0; - int encodedIndex = 0; - int dataIndex = 0; - decodedData = new byte[(numberQuadruple) * 3]; - - for (; i < numberQuadruple - 1; i++) { - - if (!isData((d1 = base64Data[dataIndex++])) - || !isData((d2 = base64Data[dataIndex++])) - || !isData((d3 = base64Data[dataIndex++])) - || !isData((d4 = base64Data[dataIndex++]))) { - return null; - }// if found "no data" just return null - - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); - } - - if (!isData((d1 = base64Data[dataIndex++])) - || !isData((d2 = base64Data[dataIndex++]))) { - return null;// if found "no data" just return null - } - - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - - d3 = base64Data[dataIndex++]; - d4 = base64Data[dataIndex++]; - if (!isData((d3)) || !isData((d4))) {// Check if they are PAD characters - if (isPad(d3) && isPad(d4)) { - if ((b2 & 0xf) != 0)// last 4 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 1]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4); - return tmp; - } else if (!isPad(d3) && isPad(d4)) { - b3 = base64Alphabet[d3]; - if ((b3 & 0x3) != 0)// last 2 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 2]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - return tmp; - } else { - return null; - } - } else { // No PAD e.g 3cQl - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); - - } - - return decodedData; - } - - /** - * remove WhiteSpace from MIME containing encoded Base64 data. - * - * @param data - * the byte array of base64 data (with WS) - * @return the new length - */ - private static int removeWhiteSpace(char[] data) { - if (data == null) { - return 0; - } - - // count characters that's not whitespace - int newSize = 0; - int len = data.length; - for (int i = 0; i < len; i++) { - if (!isWhiteSpace(data[i])) { - data[newSize++] = data[i]; - } - } - return newSize; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/CacheUtils.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/CacheUtils.java deleted file mode 100644 index 7d1bea0..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/CacheUtils.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.util; - -import cn.hutool.cache.CacheUtil; -import cn.hutool.cache.impl.TimedCache; - -/** - * @author linqy - * 缓存工具类,生产建议使用其他缓存中间件 - */ -public class CacheUtils { - private static final TimedCache<String, String> TIMED_CACHE = CacheUtil.newTimedCache(5000); - - static { - /** 每1s检查一次过期 */ - TIMED_CACHE.schedulePrune(1000); - } - - /** - * 存入键值对,提供消逝时间 - * - * @param key - * @param value - * @param timeout - */ - public static void put(String key, String value, Long timeout) { - /** 设置消逝时间 */ - TIMED_CACHE.put(key, value, timeout); - } - - /** - * 每次重新get一次缓存,均会重新刷新消逝时间 - * @param key - * @return - */ - public static String get(String key) { - return TIMED_CACHE.get(key); - } - -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSAEncryptGeneration.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSAEncryptGeneration.java deleted file mode 100644 index 877829d..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSAEncryptGeneration.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.util; -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.security.interfaces.RSAPrivateKey; -import java.security.interfaces.RSAPublicKey; - -/** - * 公私钥代码生成 - * @Author xiaogc - * @Date 2021/12/21 14:22 - */ -public class RSAEncryptGeneration { - - public static void main(String[] args) { - // 生成一对公私钥到指定路径下 .pfx私钥 .cer公钥 - RSAEncryptGeneration.genKeyPair("D:\\tools"); - } - /** - * 随机生成密钥对 - */ - public static void genKeyPair(String filePath) { - // KeyPairGenerator类用于生成公钥和私钥对,基于RSA算法生成对象 - KeyPairGenerator keyPairGen = null; - try { - keyPairGen = KeyPairGenerator.getInstance("RSA"); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - // 初始化密钥对生成器,密钥大小为96-1024位 - keyPairGen.initialize(1024, new SecureRandom()); - // 生成一个密钥对,保存在keyPair中 - KeyPair keyPair = keyPairGen.generateKeyPair(); - // 得到私钥 - RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); - // 得到公钥 - RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); - try { - // 得到公钥字符串 - String publicKeyString = Base64.encode(publicKey.getEncoded()); - System.out.println("公钥字符串:"+publicKeyString); - // 得到私钥字符串 - String privateKeyString = Base64.encode(privateKey.getEncoded()); - System.out.println("私钥字符串:"+privateKeyString); - // 将密钥对写入到文件 .pfx私钥 .cer公钥 - FileWriter pubfw = new FileWriter(filePath + "/merchant_no.cer"); - FileWriter prifw = new FileWriter(filePath + "/merchant_no.pfx"); - BufferedWriter pubbw = new BufferedWriter(pubfw); - BufferedWriter pribw = new BufferedWriter(prifw); - pubbw.write(publicKeyString); - pribw.write(privateKeyString); - pubbw.flush(); - pubbw.close(); - pubfw.close(); - pribw.flush(); - pribw.close(); - prifw.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSASignature.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSASignature.java deleted file mode 100644 index 1513b73..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSASignature.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.util; - - -import com.agentdriving.user.modular.system.util.MallBook.config.ChannelConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.security.KeyFactory; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.spec.PKCS8EncodedKeySpec; -import java.security.spec.X509EncodedKeySpec; - -/** - * @author RSA签名验签类 - */ -public class RSASignature { - - public static Logger logger = LoggerFactory.getLogger(RSASignature.class); - - /** - * 签名算法 - */ - public static final String SIGN_ALGORITHMS = "SHA1WithRSA"; - - - /** - * 商户平台私钥签名 - * - * @param content - * @return - */ - public static String sign(String content) { - try { - String privateKey = ChannelConfig.merchantPrivateKey; - PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decode(privateKey)); - KeyFactory keyf = KeyFactory.getInstance("RSA"); - PrivateKey priKey = keyf.generatePrivate(priPKCS8); - java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS); - signature.initSign(priKey); - signature.update(content.getBytes()); - byte[] signed = signature.sign(); - return Base64.encode(signed); - } catch (Exception e) { - logger.error("签名失败{}", e); - } - return null; - } - - - /** - * 读取证书 - * - * @param filePath 证书文件路径 - */ - public static String loadKey(String filePath) throws Exception { - try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { - String readLine; - StringBuilder sb = new StringBuilder(); - while ((readLine = br.readLine()) != null) { - sb.append(readLine); - } - return sb.toString(); - } catch (IOException e) { - throw new Exception("私钥数据读取错误"); - } catch (NullPointerException e) { - throw new Exception("私钥输入流为空"); - } - } - - - /** - * mallbook公钥验签 - * - * @param content 待签名数据 - * @param sign 签名值 - * @return false 验签失败 true 成功 - */ - public static boolean validate(String content, String sign) { - boolean verify = false; - try { - String publicKey = ChannelConfig.mallBookPublicKey; - verify = RSASignature.doCheck(content, sign, publicKey, "utf-8"); - } catch (Exception e) { - logger.error("验签失败:{}", e); - } - return verify; - } - - - /** - * RSA验签 - * - * @param content 待签名数据 - * @param sign 签名值 - * @param publicKey 分配给开发商公钥 - * @param encode 字符集编码 - * @return 布尔值 - */ - public static boolean doCheck(String content, String sign, String publicKey, String encode) { - try { - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - byte[] encodedKey = Base64.decode(publicKey); - PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey)); - java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS); - signature.initVerify(pubKey); - signature.update(content.getBytes(encode)); - return signature.verify(Base64.decode(sign)); - } catch (Exception e) { - logger.error("验签失败{}", e); - } - return false; - } - -} \ No newline at end of file diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/StringUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/StringUtil.java deleted file mode 100644 index ea0267c..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/StringUtil.java +++ /dev/null @@ -1,23 +0,0 @@ - -package com.agentdriving.user.modular.system.util.MallBook.util; - -import cn.hutool.core.util.StrUtil; - - -public class StringUtil extends StrUtil { - - /** - * null转为空字符串 - * - * @param str - * @return - */ - public static String convertNull(String str) { - if (str == null) { - return ""; - } - return str; - } - - -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Transfer.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Transfer.java deleted file mode 100644 index d3441d2..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Transfer.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.util; - -public class Transfer { - /**业务类型编号,必须和接口文档一致*/ - public static String SERVICE_CODE = "transfer"; - //充值订单号 - private String depositMerOrderId; - //收款方子商户号 - private String toUserId; - //转账金额 - private String amount; - //订单信息 - private String orderName; - //后台回调地址 - private String notifyUrl; - //自定义参数1 - private String parameter1; - //自定义参数2 - private String parameter2; - - public String getDepositMerOrderId() { - return depositMerOrderId; - } - - public void setDepositMerOrderId(String depositMerOrderId) { - this.depositMerOrderId = depositMerOrderId; - } - - public String getToUserId() { - return toUserId; - } - - public void setToUserId(String toUserId) { - this.toUserId = toUserId; - } - - public String getAmount() { - return amount; - } - - public void setAmount(String amount) { - this.amount = amount; - } - - public String getOrderName() { - return orderName; - } - - public void setOrderName(String orderName) { - this.orderName = orderName; - } - - public String getNotifyUrl() { - return notifyUrl; - } - - public void setNotifyUrl(String notifyUrl) { - this.notifyUrl = notifyUrl; - } - - public String getParameter1() { - return parameter1; - } - - public void setParameter1(String parameter1) { - this.parameter1 = parameter1; - } - - public String getParameter2() { - return parameter2; - } - - public void setParameter2(String parameter2) { - this.parameter2 = parameter2; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/TrhRequest.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/TrhRequest.java deleted file mode 100644 index 0aab384..0000000 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/TrhRequest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.agentdriving.user.modular.system.util.MallBook.util; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.exceptions.ValidateException; -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONUtil; -import com.agentdriving.user.modular.system.util.MallBook.config.ChannelConfig; -import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceRequest; -import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse; - -/** - * @Author xiaogc - * @Date 2022/1/24 13:45 - */ -public class TrhRequest<T> { - - public InterfaceResponse execute(T t, String serverCode) { - InterfaceRequest<T> request = new InterfaceRequest(t, serverCode); - System.out.println("mallbook请求参数:" + JSONUtil.toJsonStr(request)); - String result = HttpUtil.post(ChannelConfig.payUrl, BeanUtil.beanToMap(request)); - System.out.println("mallbook响应参数:" + result); - InterfaceResponse response = JSONUtil.toBean(result, InterfaceResponse.class); - boolean verify = RSASignature.validate(response.content(), response.getSign()); - if (!verify) { - throw new ValidateException("签名验证失败"); - } else { - System.out.printf("签名验证通过"); - } - return response; - } -} diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java index ab22ec9..2879108 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java @@ -13,10 +13,10 @@ */ public class OBSUtil { - public static String endPoint = "https://obs.cn-south-1.myhuaweicloud.com"; - public static String ak = "N52IGR6DHOC3JAZFHZIW"; - public static String sk = "jq7Q7jnFS4Gxamwh3naN2sbNKwQQ7cZISPVumGBS"; - public static String bucketname = "csxdj"; + public static String endPoint = "https://obs.cn-southwest-2.myhuaweicloud.com"; + public static String ak = "YMBKC9LS6CDG9QHCIGUU"; + public static String sk = "kztanexutGzoGiYcIALCNhazfxoU6yecDOSBrFXu"; + public static String bucketname = "fanghuadaijia"; /** * 上传文件 @@ -31,7 +31,7 @@ // 待上传的本地文件路径,需要指定到具体的文件名 PutObjectRequest request = new PutObjectRequest(); request.setBucketName(bucketname); - request.setObjectKey(objectKey); + request.setObjectKey("img/" + objectKey); request.setInput(inputStream); PutObjectResult putObjectResult = obsClient.putObject(request); return putObjectResult.getObjectUrl(); diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java index 3175a8f..810bef4 100644 --- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java +++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java @@ -25,7 +25,7 @@ private final static String bad_weather = "[{\"wid\":\"03\",\"weather\":\"阵雨\"},{\"wid\":\"04\",\"weather\":\"雷阵雨\"},{\"wid\":\"05\",\"weather\":\"雷阵雨伴有冰雹\"},{\"wid\":\"06\",\"weather\":\"雨夹雪\"},{\"wid\":\"07\",\"weather\":\"小雨\"},{\"wid\":\"08\",\"weather\":\"中雨\"},{\"wid\":\"09\",\"weather\":\"大雨\"},{\"wid\":\"10\",\"weather\":\"暴雨\"},{\"wid\":\"11\",\"weather\":\"大暴雨\"},{\"wid\":\"12\",\"weather\":\"特大暴雨\"},{\"wid\":\"13\",\"weather\":\"阵雪\"},{\"wid\":\"14\",\"weather\":\"小雪\"},{\"wid\":\"15\",\"weather\":\"中雪\"},{\"wid\":\"16\",\"weather\":\"大雪\"},{\"wid\":\"17\",\"weather\":\"暴雪\"},{\"wid\":\"19\",\"weather\":\"冻雨\"},{\"wid\":\"20\",\"weather\":\"沙尘暴\"},{\"wid\":\"21\",\"weather\":\"小到中雨\"},{\"wid\":\"22\",\"weather\":\"中到大雨\"},{\"wid\":\"23\",\"weather\":\"大到暴雨\"},{\"wid\":\"24\",\"weather\":\"暴雨到大暴雨\"},{\"wid\":\"25\",\"weather\":\"大暴雨到特大暴雨\"},{\"wid\":\"26\",\"weather\":\"小到中雪\"},{\"wid\":\"27\",\"weather\":\"中到大雪\"},{\"wid\":\"28\",\"weather\":\"大到暴雪\"},{\"wid\":\"30\",\"weather\":\"扬沙\"},{\"wid\":\"31\",\"weather\":\"强沙尘暴\"},{\"wid\":\"53\",\"weather\":\"霾\"}]"; - private final static String key = "aaebb3e5c18fd371257a2ab6b5670efe"; + private final static String key = "edc965edb129580401ed211eaa4ae8ab"; private static HttpClientUtil httpClientUtil = new HttpClientUtil(); diff --git a/user/guns-admin/src/main/resources/application.yml b/user/guns-admin/src/main/resources/application.yml index 6d540c4..d090225 100644 --- a/user/guns-admin/src/main/resources/application.yml +++ b/user/guns-admin/src/main/resources/application.yml @@ -13,8 +13,8 @@ application: name: user-server profiles: - active: dev -# active: produce +# active: dev + active: produce mvc: static-path-pattern: /static/** view: @@ -55,8 +55,8 @@ datasource: url: jdbc:mysql://127.0.0.1:3306/fh_agent_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai username: root -# password: PI_v6J5@dvHwGTqc - password: 123456 + password: PI_v6J5@dvHwGTqc +# password: 123456 db-name: guns #用来搜集数据库的所有表 filters: wall,mergeStat @@ -79,37 +79,24 @@ grantType: authorization_code #填authorization_code appid: 11 #应用唯一标识,在微信开放平台提交应用审核通过后获得 appSecret: 11 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 - appletsAppid: wx8ae6c610563f2fe6 #小程序APPid - appletsAppSecret: 8b2c93b0be4f017350050f1e660680fe # + appletsAppid: wxb7d7de754460c422 #小程序APPid + appletsAppSecret: 3aa63e3e8dc2e958f7e30bbed0865738 # officialAccountAppid: 11111 officialAccountAppSecret: 1111 webAppId: 111 webAppSecret: 11 - mchId: 1636941942 #微信支付分配的商户号 - key: Eri2GR2SB3b6iIhaoD7k3KQ8X0wf1Ybh #key为商户平台设置的密钥key: - apiv3: AKJ51Z4nhSqYBxmOXgUyCKA1vLP0J5Aj #key为商户平台设置的密钥key: + mchId: 1644659263 #微信支付分配的商户号 + key: KY7XYaJwnZPV4O5CvJ6CreywiUxxnUGM #key为商户平台设置的密钥key: + apiv3: mAhbxa2ez1GUNWIArATff4b630AH99yg #key为商户平台设置的密钥key: --- alipay: - appid: 2021001161600393 #应用程序唯一标识 - appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEbTcG2wz+kaYDo2YxflpHE59MvKc3rbl6RlBgO6i5GzgphzeRTv5kRWUpSVkKCsbxFvAYLcgFPmm5nY2fz5hCTKiRcYfpUjH/OougUbzYU3ilUc9JqMbmvy7KN+Kv7+kQYCGLvMqlyYPiJ7LrmJLpE/FUcNLDwo6xUmwJSxaF7M4TbD3ZQZdddki1iJp9GihlqehZCMWOBeotEXvPKDEzSEkYlnvHPQaaspVgeesGmlHDuOiZUokENutxpjo7klWe97NA49hXEtI+xlczNGJKdBr0keBX/kSMsnx8kMxYDjh4QTySBaR6zlO4RYPFekWv9QZ2CrfiKCS7AHUpZYZ5AgMBAAECggEAXjCoUPIBHhhOcowIJe/vGlr0lUohzdJ8+GGGzcvhSDf6DF+mwG3lN0C8oU8QS7o6okRkZW46tLAd1u4fS6oGbDHGPBz6RJQ4B4eGxHMe1OcaCsxTmdq4DmuxRhfV3rnPldwqQA/6O01HxtXhxvzwkWOj5SGSZ7a8c5diTIHh9ULd6neUI/rIFC97mH1TeW0uDIxAtyvswz0pIfDhAR+lsOyTg/8qzsIXjpBFG4gAVxhUeUqQA5HzbsFglC08V7ViDk1OEoWi3yIj1CmNdtntJI4cxqLgTK7MNB9udhbN2I9YasuIpZvlAcvPi5R9cYT8vvFBCFGM+i22wtcsQmxdAQKBgQDaD9y6WNmsp+IaAUG3FqbJC8SqwreGIiEflWwVjrd+LuN6yhyr45CobOmhbTz0de8gRJEZKgJZEJcywL1ScrPIC4n1JaG688lk5aR+0Lik5fy1+L6G/CydJoJqlh6KKdwPJmDGpVu/geLJcLkWcYOwL56IL7GK2JI1p607R0x6iQKBgQCbd0n4xG9GkpvW4LDAJiMEhwPu9QcCKIT0mXVXCgMFdWel9bY3+8RSZoziWutaofm9tRHFAqwjbRyOZ+EdckkNsWVkkTnkKGtAhYKgM0GaOwdMFxmvME5WYJ74a5t1jiezDmR3obUBtS2nyQ8CFPUnlimoTR9F6APrth3h8uvwcQKBgFWaCn1AqdrEYNbyjViRVNHxg7fBDohiV3xtjOt9hfzL7VLjipPTlpL3hlNvbZFNxpx1LjyhqCBMif5LeUanbnnmRbbtmeqpDvNDzupVh1Z8TlMlHa4hymW6m1G6MqzsN83es/jnKvgnxd5sGMx9rUN5vhMaHekykVrswu1VVOl5AoGAMDljh7gfMEv/7TqLeT8bM6dR8AivoNrCy0Di5hnj8AiIGzHJ0TnWnxzSbNB5GwcNeew109/NV7vb1MyiRskRoh657eUiiQSEqGIBsAHWQqo2zEKKJA6e7ipQhYyTj3aGGAPJ5FYT2LDDtb0nW6T2ms34pA0wOzYKKU63nEQHLfECgYEAgbbpZJRtPxWB1M/Dg7loguT5O/VUsKefS0JrSD+tJIqYkumH5mejvYW5YEeDdelkvBhAEFUW9JOkzL+1w1g3wz2QQ2aPV/r55cJE3EfOzbwgw6GsO+8UuyiavbFhS3pFZNI0pR5M3u1+SIcLqQCnYLbO11vnEXglB6wjw9/oxPE= #开发者应用私钥 - alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhG03BtsM/pGmA6NmMX5aRxOfTLynN625ekZQYDuouRs4KYc3kU7+ZEVlKUlZCgrG8RbwGC3IBT5puZ2Nn8+YQkyokXGH6VIx/zqLoFG82FN4pVHPSajG5r8uyjfir+/pEGAhi7zKpcmD4iey65iS6RPxVHDSw8KOsVJsCUsWhezOE2w92UGXXXZItYiafRooZanoWQjFjgXqLRF7zygxM0hJGJZ7xz0GmrKVYHnrBppRw7jomVKJBDbrcaY6O5JVnvezQOPYVxLSPsZXMzRiSnQa9JHgV/5EjLJ8fJDMWA44eEE8kgWkes5TuEWDxXpFr/UGdgq34igkuwB1KWWGeQIDAQAB #应用公钥 - alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzmDrvcNvhexu3KkxVS9bemdSn6pyQUFmpyOGMDOirGR+RbmldpH2N9bPegzZynb5+bmRHii4ib31XeoXc7M7r6UsPhmPeLoSBNwpC+Uig0VxPa0hmvHjAl6StArhB3eMib6Zo40nM6eCYZLLZ1kKpI5Ad/APov9uLrbSnoeZsgeRibQix07arvTEsZq6pJavNlA+UBjp65o6Bv0+kfQ65pMTpbu+jRtTzkTj1hoW9PjwlWrY21F1FvN67zDWkTB2LjGFsqan0Qoe4/X8nK3VsDvkjIm/ZQsnQr8ZzfcuTzQPrcZpo3h9DPZoHeiToEfXtyk7E0bQHEmYVpmrvk/IJwIDAQAB #支付宝公钥 + appid: 1111 #应用程序唯一标识 + appPrivateKey: 1111 #开发者应用私钥 + alipayPublicKey: 1111 #应用公钥 + alipay_public_key: 1111 #支付宝公钥 ---- - -juhe: #聚合数据 - appKey: 0d3fd83eddaa33e5563f548257648577 # - - ---- - -jiguang: - appKey-driver: 93204c35ded9ba377a14af19 #极光推送应用唯一标识 - masterSecret-driver: e4f6f435faefad29db6ba9b2 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的 - appKey-dispatch: cc212ee6dcecb26625917f40 #极光推送应用唯一标识 - masterSecret-dispatch: 0d163a25a20647665c28639e #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的 --- @@ -130,24 +117,5 @@ spring: data: mongodb: -# uri: mongodb://root:bv@_N36o+cTe1LpS@127.0.0.1:27017/admin - uri: mongodb://127.0.0.1:27017/admin - - -# mallbook 调起接口参数配置 -mallbook: - # pay_url:mallbook接口地址 测试环境: http://ld.mallbook.cn:12000/api 生产环境:https://cloudpay.mallbook.cn/api - pay_url: http://ld.mallbook.cn:12000/api - # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号 - merchant_no: 需要替换内容 - # version 接口版本号 - version: 1.0.0 - # channel_type 渠道类型 HF:汇付 - channel_type: HF - # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥 - merchant_private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIoGARvX6k6rVwuUW6HjAPkzXVntCtDI8q/niGZbeILc5T/noer+UNDECSy9f8T6ENw7tEKWaHOFcicrqgRv+wXeo2hPiJI2iYsUNs6I8ckd8i4uy/PBEDMW78GlnQLAatk0NC44HKjn8cuIHaETKNG2Vk3rwGBzNgDZ/God1L6JAgMBAAECgYBhCsOwzehBk5pJ2+9pLO+8Rm72EQGvtflb0BBI1zst1x2gBr4DOPedMJe6yymQVrmP/rJItvONdV/DRqHtKMZ2Wa4ul/U1mDnAtS/FkpRYBA5FaXV2hNEW11xBLhL5iGk35P23Bzaa0MJw9Vsd0vjeykridIw/PweDyTdeRBwC2QJBANS+iOaKRuf6BRwCKDmBSHOiZmc/kKnpx2f5BD3h+LWEX3JsNxObMbW1SxQIf2/qwqzIoEm/WbWaOyuwtRZkXQ8CQQCmFjTm5l+Ws2LoQgM+5+eLmPyMyRFOu4G8yqsUkhKuANHK/qrsS1GTbv6SN341NijjNYl05e0h6Jq1T9UZmtrnAkEAwTfzmn7H+3RmI5QJ+IBkzzEWFHv05X0/8DyID7QmcKWzEncaZqIzObdYYu983qa2/LqSaahyz68uQnYRYi7xHQJATr3SgPIRuaH8r360iTtrRHzYp2qgYQJ25On1KECEyKgszp/kqzieSVbjLLFQjavKwMXeEGT+AwiDaJibwJLxWwJAXZApORsqGqdxc9FTxt5iiqG2ZP5DTXxc6E+ihmlmoVl9KncgTf9ez0Q0Qz/4KUTPTHNVgzt1nyBxiLtnyzFavA== - # mall_book_public_key mallbook测试环境公钥 不需要替换 - mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0L2DaHOO8ekhktB6RoHxIcki/0v7OUeOn9tX9VBE+jv6PRjqlZRWL3Qezxz5ADtHEyLv+RFFaceXSep6rWyoQ6DRlvLv5CySUAxAM42LLVe4DI3l/0ccEAIuU5NCpwAAj1zkm2X01DwUCZwymLjlqbDlBvQhpq+1fddtTtA/QLQIDAQAB - # mall_book_public_key mallbook生产环境公钥 不需要替换 - # mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB - + uri: mongodb://root:PaWPtGG95APCMBEb@127.0.0.1:27017/admin +# uri: mongodb://127.0.0.1:27017/admin diff --git a/user/guns-admin/src/main/resources/redis.properties b/user/guns-admin/src/main/resources/redis.properties index 1d000e8..c64267e 100644 --- a/user/guns-admin/src/main/resources/redis.properties +++ b/user/guns-admin/src/main/resources/redis.properties @@ -2,19 +2,19 @@ # Redis���ݿ�������Ĭ��Ϊ0�� spring.redis.database=0 -## Redis��������ַ -#spring.redis.host=127.0.0.1 -## Redis���������Ӷ˿� -#spring.redis.port=16379 -## Redis�������������루Ĭ��Ϊ�գ� -#spring.redis.password=wuOT@8NLdZ*V09Jt - # Redis��������ַ spring.redis.host=127.0.0.1 # Redis���������Ӷ˿� -spring.redis.port=6379 +spring.redis.port=16379 # Redis�������������루Ĭ��Ϊ�գ� -spring.redis.password=123456 +spring.redis.password=wuOT@8NLdZ*V09Jt + +## Redis��������ַ +#spring.redis.host=127.0.0.1 +## Redis���������Ӷ˿� +#spring.redis.port=6379 +## Redis�������������루Ĭ��Ϊ�գ� +#spring.redis.password=123456 # ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ� spring.redis.jedis.pool.max-active=1024 -- Gitblit v1.7.1