From 1edcf19be5f339219210894c45a77d9d507b2586 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期三, 22 三月 2023 18:19:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 54 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiWarpper.java | 32 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/IntegralIncomeAndExpensesWarpper.java | 20 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/RevenueServiceImpl.java | 15 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/YouTuiController.java | 126 +++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/RevenueMapper.xml | 16 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/RevenueMapper.java | 11 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/SMSUtil.java | 48 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java | 25 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/TaskUtil.java | 42 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/SMSUtil.java | 48 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderStatusWarpper.java | 16 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICashWithdrawalService.java | 23 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/DriverMapper.xml | 1 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CashWithdrawalMapper.java | 11 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTui.java | 74 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IOrderService.java | 16 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java | 386 ++++++++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java | 208 ++++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/HallOrderList.java | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml | 1 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java | 56 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java | 69 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IRevenueService.java | 11 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CashWithdrawalMapper.xml | 16 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java | 31 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/AccountChangeDetailMapper.xml | 5 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionListWarpper.java | 20 driver/guns-admin/pom.xml | 8 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java | 26 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailWarpper.java | 22 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiService.java | 11 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiDriverMapper.java | 42 + driver/guns-admin/src/main/java/com/supersavedriving/driver/core/common/exception/BizExceptionEnum.java | 4 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java | 36 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/InviteListWarpper.java | 20 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiListWarpper.java | 20 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/AccountChangeDetailMapper.xml | 48 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiDriverServiceImpl.java | 128 +++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverOrderListWarpper.java | 28 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiServiceImpl.java | 16 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailListWarpper.java | 20 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/AccountChangeDetailMapper.java | 37 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java | 7 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml | 56 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CashWithdrawal.java | 59 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/AccountChangeDetail.java | 5 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/AccountChangeDetail.java | 5 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java | 14 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/OBSUtil.java | 43 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTuiDriver.java | 20 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/YouTuiDriver.java | 20 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java | 43 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiMapper.xml | 19 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiDriverService.java | 45 + driver/pom.xml | 6 driver/guns-admin/src/main/java/com/supersavedriving/driver/core/intercept/RestApiInteceptor.java | 7 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/YouTuiDriverMapper.xml | 4 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java | 5 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/OrderPriceWarpper.java | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Revenue.java | 5 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java | 41 user/guns-admin/pom.xml | 8 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java | 5 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfo.java | 4 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IAccountChangeDetailService.java | 27 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiDriverMapper.xml | 51 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Revenue.java | 54 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/UserToCouponMapper.xml | 1 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/httpClinet/HttpClientUtil.java | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml | 1 user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java | 39 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfoWarpper.java | 6 user/guns-admin/src/main/java/com/supersavedriving/user/core/intercept/RestApiInteceptor.java | 8 user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java | 26 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiMapper.java | 11 77 files changed, 2,387 insertions(+), 113 deletions(-) diff --git a/driver/guns-admin/pom.xml b/driver/guns-admin/pom.xml index ce7f133..ee0e663 100644 --- a/driver/guns-admin/pom.xml +++ b/driver/guns-admin/pom.xml @@ -154,11 +154,11 @@ <artifactId>alipay-sdk-java</artifactId> <version>4.8.10.ALL</version> </dependency> - <!-- oos对象存储 --> + <!-- obs对象存储 --> <dependency> - <groupId>com.aliyun.oss</groupId> - <artifactId>aliyun-sdk-oss</artifactId> - <version>3.8.0</version> + <groupId>com.huaweicloud</groupId> + <artifactId>esdk-obs-java-bundle</artifactId> + <version>[3.21.11,)</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/common/exception/BizExceptionEnum.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/common/exception/BizExceptionEnum.java index b27a586..3b4d2ec 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/common/exception/BizExceptionEnum.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/common/exception/BizExceptionEnum.java @@ -58,8 +58,8 @@ /** * token异常 */ - TOKEN_EXPIRED(10030, "token过期"), - TOKEN_ERROR(10030, "token验证失败"), + TOKEN_EXPIRED(600, "token过期"), + TOKEN_ERROR(600, "token验证失败"), /** * 签名异常 diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/intercept/RestApiInteceptor.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/intercept/RestApiInteceptor.java index 29198c4..cad2ec8 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/intercept/RestApiInteceptor.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/core/intercept/RestApiInteceptor.java @@ -5,6 +5,7 @@ import com.supersavedriving.driver.core.util.JwtTokenUtil; import com.supersavedriving.driver.core.base.tips.ErrorTip; import com.supersavedriving.driver.core.util.RenderUtil; +import com.supersavedriving.driver.modular.system.warpper.ResponseWarpper; import io.jsonwebtoken.JwtException; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; @@ -48,12 +49,14 @@ } } catch (JwtException e) { //有异常就是token解析失败 - RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); +// RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); + RenderUtil.renderJson(response, ResponseWarpper.tokenErr()); return false; } } else { //header没有带Bearer字段 - RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); +// RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); + RenderUtil.renderJson(response, ResponseWarpper.tokenErr()); return false; } return true; diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java index b6ad26a..da01988 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java @@ -2,17 +2,13 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.supersavedriving.driver.modular.system.model.JoiningRequirements; -import com.supersavedriving.driver.modular.system.service.IJoiningRequirementsService; +import com.supersavedriving.driver.modular.system.service.*; +import com.supersavedriving.driver.modular.system.util.huawei.SMSUtil; import com.supersavedriving.driver.modular.system.warpper.*; -import com.supersavedriving.driver.core.common.annotion.ServiceLog; import com.supersavedriving.driver.core.util.ToolUtil; -import com.supersavedriving.driver.modular.system.service.IBranchOfficeService; -import com.supersavedriving.driver.modular.system.service.IDriverService; import com.supersavedriving.driver.modular.system.util.RedisUtil; import com.supersavedriving.driver.modular.system.util.ResultUtil; -import com.supersavedriving.driver.modular.system.util.SMSUtil; import com.supersavedriving.driver.modular.system.util.UUIDUtil; -import com.supersavedriving.driver.modular.system.warpper.*; import com.supersavedriving.driver.modular.system.warpper.DriverPositionWarpper; import com.supersavedriving.driver.modular.system.warpper.DriverRegisterWarpper; import com.supersavedriving.driver.modular.system.warpper.PromotionWarpper; @@ -50,6 +46,21 @@ @Autowired private IJoiningRequirementsService joiningRequirementsService; + + @Autowired + private IAccountChangeDetailService accountChangeDetailService; + + @Autowired + private IYouTuiDriverService youTuiDriverService; + + @Autowired + private IRevenueService revenueService; + + @Autowired + private IOrderService orderService; + + @Autowired + private ICashWithdrawalService cashWithdrawalService; @@ -132,8 +143,8 @@ return ResponseWarpper.success(ResultUtil.paranErr("phone")); } try { - String numberRandom = UUIDUtil.getNumberRandom(6); - SMSUtil.send_huawei_sms("", receiver + phone, "[\"" + numberRandom + "\"]"); + String numberRandom = UUIDUtil.getNumberRandom(5); + SMSUtil.send(receiver + phone, "", "[\"" + numberRandom + "\"]"); redisUtil.setStrValue(receiver + phone, numberRandom, 300);//5分钟有效期 return ResponseWarpper.success(ResultUtil.success()); }catch (Exception e){ @@ -377,4 +388,185 @@ return new ResponseWarpper(500, e.getMessage()); } } + + + + @ResponseBody + @PostMapping("/api/driver/queryDriverIntegralIncomeAndExpenses") +// @ServiceLog(name = "获取积分收支明细", url = "/api/driver/queryDriverIntegralIncomeAndExpenses") + @ApiOperation(value = "获取积分收支明细", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "类型(1=获取,2=消耗)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<List<IntegralIncomeAndExpensesWarpper>> queryDriverIntegralIncomeAndExpenses(Integer type, Integer pageNum, Integer pageSize){ + if(null == pageNum){ + return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); + } + if(null == pageSize){ + return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + List<IntegralIncomeAndExpensesWarpper> integralIncomeAndExpensesWarppers = accountChangeDetailService.queryDriverIntegralIncomeAndExpenses(uid, type, pageNum, pageSize); + return ResponseWarpper.success(integralIncomeAndExpensesWarppers); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/driver/queryDriverYouTuiList") +// @ServiceLog(name = "获取积分兑换记录", url = "/api/driver/queryDriverYouTuiList") + @ApiOperation(value = "获取积分兑换记录", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<List<DriverYouTuiListWarpper>> queryDriverYouTuiList(){ + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + List<DriverYouTuiListWarpper> driverYouTuiListWarppers = youTuiDriverService.queryDriverYouTuiList(uid); + return ResponseWarpper.success(driverYouTuiListWarppers); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + @ResponseBody + @PostMapping("/api/driver/queryCommissionList") +// @ServiceLog(name = "获取佣金记录", url = "/api/driver/queryCommissionList") + @ApiOperation(value = "获取佣金记录", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "日期", name = "time", required = true, dataType = "string"), + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<List<CommissionListWarpper>> queryCommissionList(String time, Integer pageNum, Integer pageSize){ + if(null == pageNum){ + return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); + } + if(null == pageSize){ + return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + List<CommissionListWarpper> list = revenueService.queryCommissionList(uid, time, pageNum, pageSize); + return ResponseWarpper.success(list); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/driver/queryInviteList") +// @ServiceLog(name = "获取司机邀请列表", url = "/api/driver/queryInviteList") + @ApiOperation(value = "获取司机邀请列表", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "日期", name = "time", required = true, dataType = "string"), + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<List<InviteListWarpper>> queryInviteList(String time, Integer pageNum, Integer pageSize){ + if(null == pageNum){ + return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); + } + if(null == pageSize){ + return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + List<InviteListWarpper> inviteListWarppers = orderService.queryInviteList(uid, time, pageNum, pageSize); + return ResponseWarpper.success(inviteListWarppers); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/driver/queryCommissionDetail") +// @ServiceLog(name = "获取司机佣金明细", url = "/api/driver/queryCommissionDetail") + @ApiOperation(value = "获取司机佣金明细", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "日期", name = "time", required = true, dataType = "string"), + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<CommissionDetailListWarpper> queryCommissionDetail(String time, Integer pageNum, Integer pageSize){ + if(null == pageNum){ + return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); + } + if(null == pageSize){ + return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + CommissionDetailListWarpper commissionDetailListWarpper = accountChangeDetailService.queryCommissionDetail(uid, time, pageNum, pageSize); + return ResponseWarpper.success(commissionDetailListWarpper); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/driver/withdrawCash") +// @ServiceLog(name = "司机提现操作", url = "/api/driver/withdrawCash") + @ApiOperation(value = "司机提现操作", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "类型(1=余额提现,2=佣金提现)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(value = "提现金额", name = "money", required = true, dataType = "double"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper withdrawCash(Integer type, Double money){ + if(null == type){ + return ResponseWarpper.success(ResultUtil.paranErr("type")); + } + if(null == money){ + return ResponseWarpper.success(ResultUtil.paranErr("money")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + ResultUtil resultUtil = cashWithdrawalService.withdrawCash(uid, type, money); + 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/supersavedriving/driver/modular/system/api/OrderController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java index 812cc72..bcc54e8 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java @@ -1,5 +1,6 @@ package com.supersavedriving.driver.modular.system.api; +import com.supersavedriving.driver.modular.system.model.Order; import com.supersavedriving.driver.modular.system.warpper.*; import com.supersavedriving.driver.core.common.annotion.ServiceLog; import com.supersavedriving.driver.core.util.ToolUtil; @@ -285,7 +286,7 @@ @ResponseBody @PostMapping("/api/order/cancelTransferOrder") // @ServiceLog(name = "司机取消转单操作", url = "/api/order/cancelTransferOrder") - @ApiOperation(value = "司机取消转单操作", tags = {"司机端-我的订单"}, notes = "") + @ApiOperation(value = "司机取消转单操作", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") @@ -394,4 +395,37 @@ return new ResponseWarpper(500, e.getMessage()); } } + + + + + @ResponseBody + @PostMapping("/api/order/queryDriverOrderList") +// @ServiceLog(name = "获取司机订单列表", url = "/api/order/queryDriverOrderList") + @ApiOperation(value = "获取司机订单列表", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单状态(107=未支付,109=已完成,301=已取消)", name = "state", required = true, dataType = "int"), + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<List<DriverOrderListWarpper>> queryDriverOrderList(Integer state, Integer pageNum, Integer pageSize){ + if(null == pageNum){ + return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); + } + if(null == pageSize){ + return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + List<DriverOrderListWarpper> driverOrderListWarppers = orderService.queryDriverOrderList(uid, state, pageNum, pageSize); + return ResponseWarpper.success(driverOrderListWarppers); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/YouTuiController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/YouTuiController.java new file mode 100644 index 0000000..add8421 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/YouTuiController.java @@ -0,0 +1,126 @@ +package com.supersavedriving.driver.modular.system.api; + +import com.supersavedriving.driver.core.util.ToolUtil; +import com.supersavedriving.driver.modular.system.service.IDriverService; +import com.supersavedriving.driver.modular.system.service.IYouTuiDriverService; +import com.supersavedriving.driver.modular.system.util.ResultUtil; +import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper; +import com.supersavedriving.driver.modular.system.warpper.ResponseWarpper; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author zhibing.pu + * @date 2023/3/15 17:50 + */ +@RestController +@RequestMapping("") +public class YouTuiController { + + @Autowired + private IYouTuiDriverService youTuiDriverService; + + @Autowired + private IDriverService driverService; + + + + + + + + @ResponseBody + @PostMapping("/api/youtui/queryDriverYouTui") +// @ServiceLog(name = "获取司机优推数据", url = "/api/youtui/queryDriverYouTui") + @ApiOperation(value = "获取司机优推数据", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<List<DriverYouTuiWarpper>> queryDriverYouTui(Integer pageNum, Integer pageSize){ + if(ToolUtil.isEmpty(pageNum)){ + return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); + } + if(ToolUtil.isEmpty(pageSize)){ + return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + List<DriverYouTuiWarpper> driverYouTuiWarppers = youTuiDriverService.queryDriverYouTui(uid, pageNum, pageSize); + return ResponseWarpper.success(driverYouTuiWarppers); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/youtui/queryAllYouTui") +// @ServiceLog(name = "获取兑换权益列表", url = "/api/youtui/queryAllYouTui") + @ApiOperation(value = "获取兑换权益列表", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<List<DriverYouTuiWarpper>> queryAllYouTui(Integer pageNum, Integer pageSize){ + if(ToolUtil.isEmpty(pageNum)){ + return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); + } + if(ToolUtil.isEmpty(pageSize)){ + return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + List<DriverYouTuiWarpper> driverYouTuiWarppers = youTuiDriverService.queryAllYouTui(pageNum, pageSize); + return ResponseWarpper.success(driverYouTuiWarppers); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/youtui/redeemBenefits") +// @ServiceLog(name = "司机兑换优推", url = "/api/youtui/redeemBenefits") + @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 redeemBenefits(Integer id){ + if(ToolUtil.isEmpty(id)){ + return ResponseWarpper.success(ResultUtil.paranErr("id")); + } + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + ResultUtil resultUtil = youTuiDriverService.redeemBenefits(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/supersavedriving/driver/modular/system/dao/AccountChangeDetailMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/AccountChangeDetailMapper.java index 32183a7..034c191 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/AccountChangeDetailMapper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/AccountChangeDetailMapper.java @@ -2,10 +2,47 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.supersavedriving.driver.modular.system.model.AccountChangeDetail; +import com.supersavedriving.driver.modular.system.warpper.CommissionDetailWarpper; +import com.supersavedriving.driver.modular.system.warpper.IntegralIncomeAndExpensesWarpper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author zhibing.pu * @date 2023/3/4 11:33 */ public interface AccountChangeDetailMapper extends BaseMapper<AccountChangeDetail> { + + + /** + * 获取积分收支明细 + * @param driverId + * @param pageNum + * @param pageSize + * @return + */ + List<IntegralIncomeAndExpensesWarpper> queryDriverIntegralIncomeAndExpenses(@Param("driverId") Integer driverId, @Param("type") Integer type, + @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize); + + + /** + * 获取佣金收入明细列表 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + */ + List<CommissionDetailWarpper> queryCommissionDetail(@Param("driverId") Integer driverId, @Param("time") String time, + @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize); + + + /** + * 获取总佣金 + * @param driverId + * @param time + * @return + */ + Double queryCommissionDetailTotal(@Param("driverId") Integer driverId, @Param("time") String time); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CashWithdrawalMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CashWithdrawalMapper.java new file mode 100644 index 0000000..fe73a91 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CashWithdrawalMapper.java @@ -0,0 +1,11 @@ +package com.supersavedriving.driver.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.driver.modular.system.model.CashWithdrawal; + +/** + * @author zhibing.pu + * @date 2023/3/18 17:02 + */ +public interface CashWithdrawalMapper extends BaseMapper<CashWithdrawal> { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java index fa96117..6321473 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/OrderMapper.java @@ -1,8 +1,10 @@ package com.supersavedriving.driver.modular.system.dao; import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.driver.modular.system.warpper.DriverOrderListWarpper; import com.supersavedriving.driver.modular.system.warpper.HallOrderList; import com.supersavedriving.driver.modular.system.model.Order; +import com.supersavedriving.driver.modular.system.warpper.InviteListWarpper; import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper; import org.apache.ibatis.annotations.Param; @@ -26,4 +28,28 @@ * @return */ OrderInfoWarpper queryOrderInfo(@Param("orderId") Long orderId); + + + /** + * 获取司机订单列表 + * @param driverId + * @param state + * @param pageNum + * @param pageSize + * @return + */ + List<DriverOrderListWarpper> queryDriverOrderList(@Param("driverId") Integer driverId, @Param("state") Integer state, + @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize); + + + /** + * 获取司机邀请列表 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + */ + List<InviteListWarpper> queryInviteList(@Param("driverId") Integer driverId, @Param("time") String time, + @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiDriverMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiDriverMapper.java index 9eb731b..61a54d8 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiDriverMapper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiDriverMapper.java @@ -2,6 +2,48 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.supersavedriving.driver.modular.system.model.YouTuiDriver; +import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; public interface YouTuiDriverMapper extends BaseMapper<YouTuiDriver> { + + + /** + * 获取司机优推兑换月数据 + * @param driverId + * @return + */ + List<Map<String, String>> queryRedemptionDate(@Param("driverId") Integer driverId); + + + /** + * 获取日期内的记录 + * @param driverId + * @param createTime + * @return + */ + List<DriverYouTuiWarpper> queryYouTuiDriverList(@Param("driverId") Integer driverId, @Param("createTime") String createTime); + + + /** + * 获取司机优推数据 + * @param driverId + * @param pageNum + * @param pageSize + * @return + */ + List<DriverYouTuiWarpper> queryDriverYouTui(@Param("driverId") Integer driverId, @Param("pageNum") Integer pageNum, + @Param("pageSize") Integer pageSize); + + + /** + * 获取优推数据 + * @param pageNum + * @param pageSize + * @return + */ + List<DriverYouTuiWarpper> queryAllYouTui(@Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiMapper.java new file mode 100644 index 0000000..7244d24 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/YouTuiMapper.java @@ -0,0 +1,11 @@ +package com.supersavedriving.driver.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.driver.modular.system.model.YouTui; + +/** + * @author zhibing.pu + * @date 2023/3/18 9:59 + */ +public interface YouTuiMapper extends BaseMapper<YouTui> { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/AccountChangeDetailMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/AccountChangeDetailMapper.xml index 0a5c190..80b1519 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/AccountChangeDetailMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/AccountChangeDetailMapper.xml @@ -8,9 +8,57 @@ <result column="userType" property="userType"/> <result column="userId" property="userId"/> <result column="type" property="type"/> + <result column="changeType" property="changeType"/> <result column="oldData" property="oldData"/> <result column="newData" property="newData"/> <result column="explain" property="explain"/> <result column="createTime" property="createTime"/> </resultMap> + + + + <select id="queryDriverIntegralIncomeAndExpenses" resultType="com.supersavedriving.driver.modular.system.warpper.IntegralIncomeAndExpensesWarpper"> + select * from ( + select + explain as description, + UNIX_TIMESTAMP(createTime) * 1000 as createTime, + (newData - oldData) as integral + from t_account_change_detail where `type` = 2 and userType = 2 and userId = #{driverId} + ) as aa where 1 = 1 + <if test="null != type and 1 == type"> + and aa.integral > 0 + </if> + <if test="null != type and 2 == type"> + and aa.integral < 0 + </if> + order by aa.createTime desc limit #{pageNum}, #{pageSize} + </select> + + + <select id="queryCommissionDetail" resultType="com.supersavedriving.driver.modular.system.warpper.CommissionDetailWarpper"> + select + `explain`, + UNIX_TIMESTAMP(createTime) * 1000 as createTime, + (newData - oldData) as money, + newData as balance + from t_account_change_detail where userType = 2 and userId = #{driverId} + <if test="null != time and '' != time"> + and DATE_FORMAT(createTime, '%Y年%m月') = #{time} + </if> + order by createTime desc limit #{pageNum}, #{pageSize} + </select> + + + <select id="queryCommissionDetailTotal" resultType="double"> + select + sum(money) as money + from ( + select + (newData - oldData) as money + from t_account_change_detail where userType = 2 and userId = #{driverId} + <if test="null != time and '' != time"> + and DATE_FORMAT(createTime, '%Y年%m月') = #{time} + </if> + ) as aa where aa.money > 0 + </select> </mapper> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CashWithdrawalMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CashWithdrawalMapper.xml new file mode 100644 index 0000000..f657f17 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CashWithdrawalMapper.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.supersavedriving.driver.modular.system.dao.CashWithdrawalMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.supersavedriving.driver.modular.system.model.CashWithdrawal"> + <id column="id" property="id"/> + <result column="type" property="type"/> + <result column="userDriverId" property="userDriverId"/> + <result column="code" property="code"/> + <result column="businessType" property="businessType"/> + <result column="amount" property="amount"/> + <result column="state" property="state"/> + <result column="createTime" property="createTime"/> + </resultMap> +</mapper> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml index a9dd67f..4b3d231 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml @@ -26,6 +26,7 @@ <result column="branchOfficeId" property="branchOfficeId"/> <result column="balance" property="balance"/> <result column="backgroundBalance" property="backgroundBalance"/> + <result column="couponBalance" property="couponBalance"/> <result column="approvalStatus" property="approvalStatus"/> <result column="approvalNotes" property="approvalNotes"/> <result column="approvalUserId" property="approvalUserId"/> diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml index f465499..719eb48 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml @@ -116,4 +116,60 @@ left join t_app_user b on (a.userId = b.id) where a.id = #{orderId} </select> + + + <select id="queryDriverOrderList" resultType="com.supersavedriving.driver.modular.system.warpper.DriverOrderListWarpper"> + select + id, + '超省新代驾订单' as title, + UNIX_TIMESTAMP(createTime) * 1000 as createTime, + startAddress, + endAddress, + state, + source + from t_order where status = 1 and driverId = #{driverId} + <if test="null != state and 107 == state"> + and state = #{state} + </if> + <if test="null != state and 109 == state"> + and state in (108, 109) + </if> + <if test="null != state and 301 == state"> + and state = #{state} + </if> + order by createTime desc limit #{pageNum}, #{pageSize} + </select> + + + <select id="queryInviteList" resultType="com.supersavedriving.driver.modular.system.warpper.InviteListWarpper"> + select * from ( + select + a.id, + a.nickname, + min(UNIX_TIMESTAMP(b.createTime) * 1000) as time, + 1 as type + from t_app_user a + left join t_order b on (a.id = b.userId) + where a.`status` = 1 and a.inviterType = 2 and a.inviterId = #{driverId} + <if test="null != time and '' != time"> + and DATE_FORMAT(b.createTime, '%Y年%m月') = #{time} + </if> + group by a.id, a.nickname + + union all + + select + a.id, + a.`name`, + min(UNIX_TIMESTAMP(b.createTime) * 1000) as time, + 2 as type + from t_driver a + left join t_order b on (a.id = b.driverId) + where a.`status` = 1 and a.approvalStatus = 2 and a.inviterType = 2 and a.inviterId = #{driverId} + <if test="null != time and '' != time"> + and DATE_FORMAT(b.createTime, '%Y年%m月') = #{time} + </if> + group by a.id, a.`name` + ) as aa where aa.time is not null order by aa.time desc limit #{pageNum}, #{pageSize} + </select> </mapper> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml index 79eed9b..724f335 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml @@ -10,6 +10,7 @@ <result column="userId" property="userId" /> <result column="orderId" property="orderId" /> <result column="amount" property="amount" /> + <result column="balance" property="balance"/> <result column="createTime" property="createTime" /> </resultMap> diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiDriverMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiDriverMapper.xml index d923f0d..db94344 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiDriverMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiDriverMapper.xml @@ -8,7 +8,58 @@ <result column="driverId" property="driverId" /> <result column="youTuiId" property="youTuiId" /> <result column="integral" property="integral" /> + <result column="type" property="type"/> + <result column="surplusQuantity" property="surplusQuantity"/> + <result column="endTime" property="endTime"/> + <result column="state" property="state"/> <result column="failureTime" property="failureTime" /> <result column="createTime" property="createTime" /> </resultMap> + + + <select id="queryRedemptionDate" resultType="map"> + select DATE_FORMAT(aa.createTime, '%Y年%m月') as createTime from (select createTime from t_you_tui_driver where driverId = #{driverId} order by createTime desc) as aa group by DATE_FORMAT(aa.createTime, '%Y年%m月') + </select> + + + <select id="queryYouTuiDriverList" resultType="com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper"> + select + b.`name`, + b.integral, + UNIX_TIMESTAMP(a.createTime) * 1000 as createTime + from t_you_tui_driver a + left join t_you_tui b on (a.youTuiId = b.id) + where a.driverId = #{driverId} and DATE_FORMAT(a.createTime, '%Y年%m月') = #{createTime} order by a.createTime desc + </select> + + + <select id="queryDriverYouTui" resultType="com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper"> + select + a.id, + b.`name`, + b.type, + b.number, + b.img, + b.integral, + b.content, + UNIX_TIMESTAMP(a.createTime) * 1000 as createTime, + a.state + from t_you_tui_driver a + left join t_you_tui b on (a.youTuiId = b.id) + where a.driverId = #{driverId} order by a.createTime desc limit #{pageNum}, #{pageSize} + </select> + + + + <select id="queryAllYouTui" resultType="com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper"> + select + id, + `name`, + type, + number, + img, + integral, + content + from t_you_tui where status = 1 order by createTime desc limit #{pageNum}, #{pageSize} + </select> </mapper> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiMapper.xml new file mode 100644 index 0000000..36aaba5 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/YouTuiMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.supersavedriving.driver.modular.system.dao.YouTuiMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.supersavedriving.driver.modular.system.model.YouTui"> + <id column="id" property="id" /> + <result column="name" property="name" /> + <result column="type" property="type" /> + <result column="img" property="img" /> + <result column="number" property="number"/> + <result column="integral" property="integral"/> + <result column="effectiveTime" property="effectiveTime"/> + <result column="content" property="content"/> + <result column="status" property="status" /> + <result column="createTime" property="createTime" /> + <result column="distance" property="distance" /> + </resultMap> +</mapper> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/AccountChangeDetail.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/AccountChangeDetail.java index 74a7e2c..b96a1f8 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/AccountChangeDetail.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/AccountChangeDetail.java @@ -38,6 +38,11 @@ @TableField("type") private Integer type; /** + * 变动类型(1=订单收入,2=订单支出,3=充值,4=提现,5=佣金收入,6=佣金提现,7=优惠券收入,8=保险支付) + */ + @TableField("changeType") + private Integer changeType; + /** * 历史数据 */ @TableField("oldData") diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CashWithdrawal.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CashWithdrawal.java new file mode 100644 index 0000000..a935b1a --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CashWithdrawal.java @@ -0,0 +1,59 @@ +package com.supersavedriving.driver.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhibing.pu + * @date 2023/3/18 16:58 + */ +@Data +@TableName("t_cash_withdrawal") +public class CashWithdrawal { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + /** + * 类型(1=用户,2=司机) + */ + @TableField("type") + private Integer type; + /** + * 用户司机id + */ + @TableField("userDriverId") + private Integer userDriverId; + /** + * 提现编号 + */ + @TableField("code") + private String code; + /** + * 交易类型 11佣金提现 12余额提现 + */ + @TableField("businessType") + private Integer businessType; + /** + * 提现金额 + */ + @TableField("amount") + private Double amount; + /** + * 提现状态 1未成功 2成功 + */ + @TableField("state") + private Integer state; + /** + * 添加时间 + */ + @TableField("createTime") + private Date createTime; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java index a1ff618..61aabb7 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java @@ -128,6 +128,11 @@ @TableField("backgroundBalance") private Double backgroundBalance; /** + * 优惠券余额(订单优惠券支付的金额) + */ + @TableField("couponBalance") + private Double couponBalance; + /** * 审核状态(1=待审核,2=已同意,3=已拒绝) */ @TableField("approvalStatus") diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Revenue.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Revenue.java index c7893b8..d89a208 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Revenue.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Revenue.java @@ -48,6 +48,11 @@ @TableField("amount") private Double amount; /** + * 余额 + */ + @TableField("balance") + private Double balance; + /** * 添加时间 */ @TableField("createTime") diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTui.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTui.java new file mode 100644 index 0000000..4af28d7 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTui.java @@ -0,0 +1,74 @@ +package com.supersavedriving.driver.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhibing.pu + * @date 2023/3/18 9:55 + */ +@Data +@TableName("t_you_tui") +public class YouTui { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + /** + * 名称 + */ + @TableField("name") + private String name; + /** + * 优推类型(1=次数,2=小时) + */ + @TableField("type") + private Integer type; + /** + * 图片地址 + */ + @TableField("img") + private String img; + /** + * 优推值 + */ + @TableField("number") + private Integer number; + /** + * 兑换所需积分 + */ + @TableField("integral") + private Integer integral; + /** + * 有效天数 + */ + @TableField("effectiveTime") + private Integer effectiveTime; + /** + * 服务内容 + */ + @TableField("content") + private String content; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("status") + private Integer status; + /** + * 添加时间 + */ + @TableField("createTime") + private Date createTime; + /** + * 优推距离 + */ + @TableField("distance") + private Double distance; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTuiDriver.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTuiDriver.java index eea4efa..d08c8d9 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTuiDriver.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/YouTuiDriver.java @@ -38,6 +38,26 @@ @TableField("integral") private Integer integral; /** + * 优推类型(1=次数,2=小时) + */ + @TableField("type") + private Integer type; + /** + * 优推剩余数量 + */ + @TableField("surplusQuantity") + private Integer surplusQuantity; + /** + * 优推结束时间 + */ + @TableField("endTime") + private Date endTime; + /** + * 状态(1=未使用,2=使用中,3=已结束) + */ + @TableField("state") + private Integer state; + /** * 失效时间 */ @TableField("failureTime") diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IAccountChangeDetailService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IAccountChangeDetailService.java index 5c375a5..b96eaf9 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IAccountChangeDetailService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IAccountChangeDetailService.java @@ -2,6 +2,10 @@ import com.baomidou.mybatisplus.service.IService; import com.supersavedriving.driver.modular.system.model.AccountChangeDetail; +import com.supersavedriving.driver.modular.system.warpper.CommissionDetailListWarpper; +import com.supersavedriving.driver.modular.system.warpper.IntegralIncomeAndExpensesWarpper; + +import java.util.List; /** * @author zhibing.pu @@ -16,4 +20,27 @@ * @throws Exception */ void saveData(AccountChangeDetail accountChangeDetail) throws Exception; + + + /** + * 获取积分收支明细 + * @param driverId + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + List<IntegralIncomeAndExpensesWarpper> queryDriverIntegralIncomeAndExpenses(Integer driverId, Integer type, Integer pageNum, Integer pageSize) throws Exception; + + + /** + * 获取佣金明细列表 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + CommissionDetailListWarpper queryCommissionDetail(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICashWithdrawalService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICashWithdrawalService.java new file mode 100644 index 0000000..7b635bf --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICashWithdrawalService.java @@ -0,0 +1,23 @@ +package com.supersavedriving.driver.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.supersavedriving.driver.modular.system.model.CashWithdrawal; +import com.supersavedriving.driver.modular.system.util.ResultUtil; + + +/** + * @author zhibing.pu + * @date 2023/3/18 17:03 + */ +public interface ICashWithdrawalService extends IService<CashWithdrawal> { + + + /** + * 司机提现申请 + * @param type + * @param money + * @return + * @throws Exception + */ + ResultUtil withdrawCash(Integer driverId, Integer type, Double money) throws Exception; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java index de7a610..4ef24cb 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java @@ -5,7 +5,6 @@ import com.supersavedriving.driver.modular.system.util.ResultUtil; import com.supersavedriving.driver.modular.system.warpper.*; -import javax.servlet.http.HttpServletRequest; import java.util.List; /** @@ -114,4 +113,10 @@ * @throws Exception */ ResultUtil saveDriverInfo(Integer uid, DriverInfo driverInfo) throws Exception; + + + /** + * 清空司机积分 + */ + void emptyIntegral(); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java index 14109cb..b6d90b1 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java @@ -153,4 +153,29 @@ * @throws Exception */ ResultUtil setOrderStatus(Integer uid, Long orderId, Integer state) throws Exception; + + + /** + * 获取司机的订单列表 + * @param driverId + * @param state + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + List<DriverOrderListWarpper> queryDriverOrderList(Integer driverId, Integer state, Integer pageNum, Integer pageSize) throws Exception; + + + /** + * 司机邀请列表 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + List<InviteListWarpper> queryInviteList(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception; + } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java index d44122a..eae1d09 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java @@ -2,6 +2,20 @@ import com.baomidou.mybatisplus.service.IService; import com.supersavedriving.driver.modular.system.model.Revenue; +import com.supersavedriving.driver.modular.system.warpper.CommissionListWarpper; + +import java.util.List; public interface IRevenueService extends IService<Revenue> { + + + /** + * 获取司机佣金记录 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + */ + List<CommissionListWarpper> queryCommissionList(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiDriverService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiDriverService.java index 7b688cc..abc565a 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiDriverService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiDriverService.java @@ -2,6 +2,51 @@ import com.baomidou.mybatisplus.service.IService; import com.supersavedriving.driver.modular.system.model.YouTuiDriver; +import com.supersavedriving.driver.modular.system.util.ResultUtil; +import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiListWarpper; +import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper; + +import java.util.List; public interface IYouTuiDriverService extends IService<YouTuiDriver> { + + + /** + * 获取司机兑换优推记录 + * @param driverId + * @return + * @throws Exception + */ + List<DriverYouTuiListWarpper> queryDriverYouTuiList(Integer driverId) throws Exception; + + + /** + * 获取司机优推列表 + * @param driverId + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + List<DriverYouTuiWarpper> queryDriverYouTui(Integer driverId, Integer pageNum, Integer pageSize) throws Exception; + + + /** + * 获取优推数据 + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + List<DriverYouTuiWarpper> queryAllYouTui(Integer pageNum, Integer pageSize) throws Exception; + + + /** + * 司机兑换优推数据 + * @param driverId + * @param id + * @return + * @throws Exception + */ + ResultUtil redeemBenefits(Integer driverId, Integer id) throws Exception; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiService.java new file mode 100644 index 0000000..7e797c6 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IYouTuiService.java @@ -0,0 +1,11 @@ +package com.supersavedriving.driver.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.supersavedriving.driver.modular.system.model.YouTui; + +/** + * @author zhibing.pu + * @date 2023/3/18 10:01 + */ +public interface IYouTuiService extends IService<YouTui> { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java index acdb51d..cbadf6d 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java @@ -4,9 +4,13 @@ import com.supersavedriving.driver.modular.system.dao.AccountChangeDetailMapper; import com.supersavedriving.driver.modular.system.model.AccountChangeDetail; import com.supersavedriving.driver.modular.system.service.IAccountChangeDetailService; +import com.supersavedriving.driver.modular.system.warpper.CommissionDetailListWarpper; +import com.supersavedriving.driver.modular.system.warpper.CommissionDetailWarpper; +import com.supersavedriving.driver.modular.system.warpper.IntegralIncomeAndExpensesWarpper; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.List; /** * 账户变动 @@ -27,4 +31,41 @@ accountChangeDetail.setCreateTime(new Date()); this.baseMapper.insert(accountChangeDetail); } + + + /** + * 获取积分收支明细 + * @param driverId + * @param type + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + @Override + public List<IntegralIncomeAndExpensesWarpper> queryDriverIntegralIncomeAndExpenses(Integer driverId, Integer type, Integer pageNum, Integer pageSize) throws Exception { + pageNum = (pageNum - 1) * pageSize; + return this.baseMapper.queryDriverIntegralIncomeAndExpenses(driverId, type, pageNum, pageSize); + } + + + /** + * 获取佣金明细列表 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + @Override + public CommissionDetailListWarpper queryCommissionDetail(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception { + pageNum = (pageNum - 1) * pageSize; + List<CommissionDetailWarpper> commissionDetailWarppers = this.baseMapper.queryCommissionDetail(driverId, time, pageNum, pageSize); + Double aDouble = this.baseMapper.queryCommissionDetailTotal(driverId, time); + CommissionDetailListWarpper commissionDetailListWarpper = new CommissionDetailListWarpper(); + commissionDetailListWarpper.setList(commissionDetailWarppers); + commissionDetailListWarpper.setTotal(aDouble); + return commissionDetailListWarpper; + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java new file mode 100644 index 0000000..abf2e47 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java @@ -0,0 +1,56 @@ +package com.supersavedriving.driver.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.modular.system.dao.CashWithdrawalMapper; +import com.supersavedriving.driver.modular.system.model.CashWithdrawal; +import com.supersavedriving.driver.modular.system.model.Driver; +import com.supersavedriving.driver.modular.system.service.ICashWithdrawalService; +import com.supersavedriving.driver.modular.system.service.IDriverService; +import com.supersavedriving.driver.modular.system.util.ResultUtil; +import com.supersavedriving.driver.modular.system.util.UUIDUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + * @author zhibing.pu + * @date 2023/3/18 17:03 + */ +@Service +public class CashWithdrawalServiceImpl extends ServiceImpl<CashWithdrawalMapper, CashWithdrawal> implements ICashWithdrawalService { + + @Autowired + private IDriverService driverService; + + + + @Override + public ResultUtil withdrawCash(Integer driverId, Integer type, Double money) throws Exception { + Driver driver = driverService.selectById(driverId); + if(type == 1 && (null == driver.getBalance() || driver.getBalance() < money)){ + return ResultUtil.error("账户余额不足"); + } + if(type == 2 && (null == driver.getCommission() || driver.getCommission() < money)){ + return ResultUtil.error("佣金余额不足"); + } + + CashWithdrawal cashWithdrawal = new CashWithdrawal(); + cashWithdrawal.setType(2); + cashWithdrawal.setUserDriverId(driverId); + cashWithdrawal.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + cashWithdrawal.setBusinessType(type == 1 ? 12 : 11); + cashWithdrawal.setAmount(money); + cashWithdrawal.setState(1); + cashWithdrawal.setCreateTime(new Date()); + this.insert(cashWithdrawal); + if(type == 1){ + driver.setBalance(driver.getBalance() - money); + } + if(type == 2){ + driver.setCommission(driver.getCommission() - money); + } + driverService.updateById(driver); + return ResultUtil.success(); + } +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java index f601368..4a71c4b 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java @@ -510,6 +510,8 @@ Driver driver = this.selectById(uid); DriverInfoWarpper driverInfo = new DriverInfoWarpper(); BeanUtils.copyProperties(driver, driverInfo); + driverInfo.setBalance(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + YouTuiDriver youTuiDriver = youTuiDriverService.selectOne(new EntityWrapper<YouTuiDriver>().eq("driverId", uid).last(" and failureTime > now() order by failureTime limit 0, 1")); if(null != youTuiDriver){ driverInfo.setYouTuiStart(youTuiDriver.getCreateTime().getTime()); @@ -550,6 +552,12 @@ if(ToolUtil.isNotEmpty(driverInfo.getEmergencyPhone())){ driver.setEmergencyPhone(driverInfo.getEmergencyPhone()); } + if(ToolUtil.isNotEmpty(driverInfo.getWxCollectionCode())){ + driver.setWxCollectionCode(driverInfo.getWxCollectionCode()); + } + if(ToolUtil.isNotEmpty(driverInfo.getZfbCollectionCode())){ + driver.setZfbCollectionCode(driverInfo.getZfbCollectionCode()); + } if(ToolUtil.isNotEmpty(driverInfo.getPhone()) && ToolUtil.isNotEmpty(driverInfo.getCode())){ String value = redisUtil.getValue(driverInfo.getPhone()); if(ToolUtil.isEmpty(value)){ @@ -563,4 +571,27 @@ this.updateById(driver); return ResultUtil.success(); } + + @Override + public void emptyIntegral() { + List<Driver> drivers = this.selectList(new EntityWrapper<Driver>().eq("approvalStatus", 2).eq("status", 1)); + List<AccountChangeDetail> list = new ArrayList<>(); + for (Driver driver : drivers) { + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver.getId()); + accountChangeDetail.setCreateTime(new Date()); + accountChangeDetail.setOldData(driver.getIntegral().doubleValue()); + accountChangeDetail.setType(2); + accountChangeDetail.setExplain("定时清空积分"); + driver.setIntegral(0); + accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); + list.add(accountChangeDetail); + } + if(drivers.size() > 0){ + this.updateBatchById(drivers); + accountChangeDetailService.insertBatch(list); + } + + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java index 7838115..dcb3bf1 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java @@ -184,7 +184,7 @@ pushUtil.pushOrderStatus(uid, 2, order.getId(), order.getStatus()); }else{ //开始推单 -// pushOrder(order); + pushOrder(order); } return ResultUtil.success(); } @@ -393,7 +393,7 @@ //1 //找到中心点 - GeoJsonPoint geoJsonPoint = new GeoJsonPoint(Double.valueOf(startLat), Double.valueOf(startLng)); + GeoJsonPoint geoJsonPoint = new GeoJsonPoint(Double.valueOf(startLng), Double.valueOf(startLat)); Double num = num3 / 1000;//范围公里 //构造半径 Distance distanceR = new Distance(num, Metrics.KILOMETERS); @@ -404,8 +404,10 @@ List<Location> locations = mongoTemplate.find(query, Location.class); List<Integer> driverIds = locations.stream().map(Location::getDriverId).collect(Collectors.toList()); Integer driver = null; + YouTuiDriver youTuiDriver1 = null; if(driverIds.size() > 0){ - List<YouTuiDriver> youTuiDrivers = youTuiDriverService.selectList(new EntityWrapper<YouTuiDriver>().in("driverId", driverIds).last(" and now() < failureTime")); + List<YouTuiDriver> youTuiDrivers = youTuiDriverService.selectList(new EntityWrapper<YouTuiDriver>().in("driverId", driverIds) + .eq("state", 2).last(" and (surplusQuantity > 0 or now() < endTime) and now() < failureTime")); Double d = null; for (YouTuiDriver youTuiDriver : youTuiDrivers) { String value = redisUtil.getValue("DRIVER" + youTuiDriver.getDriverId()); @@ -417,10 +419,15 @@ if(d == null || d.compareTo(wgs84) > 0){ d = wgs84; driver = youTuiDriver.getDriverId(); + youTuiDriver1 = youTuiDriver; } } } + if(null != youTuiDriver1 && youTuiDriver1.getType() == 1){ + youTuiDriver1.setSurplusQuantity(youTuiDriver1.getSurplusQuantity() - 1); + youTuiDriverService.updateById(youTuiDriver1); + } //开始范围查找 if(null == driver){ @@ -674,10 +681,15 @@ @Override public OrderInfoWarpper queryOrderInfo(Integer uid, Long orderId) throws Exception { OrderInfoWarpper orderInfoWarpper = this.baseMapper.queryOrderInfo(orderId); + AppUser appUser = appUserService.selectById(uid); + orderInfoWarpper.setBalance(appUser.getAccountBalance()); + orderInfoWarpper.setCurrentDistance(0D); String value = redisUtil.getValue("DRIVER" + uid); - Map<String, Double> distance = GeodesyUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value); - Double wgs84 = distance.get("WGS84"); - orderInfoWarpper.setCurrentDistance(wgs84); + if(ToolUtil.isNotEmpty(value)){ + Map<String, Double> distance = GeodesyUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value); + Double wgs84 = distance.get("WGS84"); + orderInfoWarpper.setCurrentDistance(wgs84); + } return orderInfoWarpper; } @@ -1062,4 +1074,34 @@ public void saveRevenue(Order order){ } + + /** + * 获取司机的订单列表 + * @param driverId + * @param state + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + @Override + public List<DriverOrderListWarpper> queryDriverOrderList(Integer driverId, Integer state, Integer pageNum, Integer pageSize) throws Exception { + pageNum = (pageNum - 1) * pageSize; + return this.baseMapper.queryDriverOrderList(driverId, state, pageNum, pageSize); + } + + /** + * 司机邀请列表 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + @Override + public List<InviteListWarpper> queryInviteList(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception { + pageNum = (pageNum - 1) * pageSize; + return this.baseMapper.queryInviteList(driverId, time, pageNum, pageSize); + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java index 3590285..3911b70 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java @@ -1,10 +1,24 @@ package com.supersavedriving.driver.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.core.util.ToolUtil; import com.supersavedriving.driver.modular.system.dao.RevenueMapper; +import com.supersavedriving.driver.modular.system.model.AppUser; +import com.supersavedriving.driver.modular.system.model.Driver; +import com.supersavedriving.driver.modular.system.model.Order; import com.supersavedriving.driver.modular.system.model.Revenue; +import com.supersavedriving.driver.modular.system.service.IAppUserService; +import com.supersavedriving.driver.modular.system.service.IDriverService; +import com.supersavedriving.driver.modular.system.service.IOrderService; import com.supersavedriving.driver.modular.system.service.IRevenueService; +import com.supersavedriving.driver.modular.system.warpper.CommissionListWarpper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; /** * 收入记录 @@ -13,4 +27,59 @@ */ @Service public class RevenueServiceImpl extends ServiceImpl<RevenueMapper, Revenue> implements IRevenueService { + + @Autowired + private IOrderService orderService; + + @Autowired + private IAppUserService appUserService; + + @Autowired + private IDriverService driverService; + + + + + + + /** + * 获取司机佣金记录 + * @param driverId + * @param time + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + @Override + public List<CommissionListWarpper> queryCommissionList(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception { + pageNum = (pageNum - 1) * pageSize; + Wrapper<Revenue> wrapper = new EntityWrapper<Revenue>().eq("type", 2).eq("userType", 2) + .eq("userId", driverId); + if(ToolUtil.isNotEmpty(time)){ + wrapper.eq("DATE_FORMAT(createTime, '%Y年%m月')", time); + } + List<Revenue> revenues = this.selectList(wrapper.last(" order by createTime desc limit " + pageNum + ", " + pageSize)); + List<CommissionListWarpper> list = new ArrayList<>(); + for (Revenue revenue : revenues) { + CommissionListWarpper commissionListWarpper = new CommissionListWarpper(); + commissionListWarpper.setCreateTime(revenue.getCreateTime().getTime()); + commissionListWarpper.setAmount(revenue.getAmount()); + Order order = orderService.selectById(revenue.getOrderId()); + if(null != order.getUserId()){ + AppUser appUser = appUserService.selectById(order.getUserId()); + if(null != appUser.getInviterType() && appUser.getInviterType() == 2 && appUser.getInviterId().compareTo(driverId) == 0){ + commissionListWarpper.setUserType(1); + } + } + if(null == commissionListWarpper.getUserType()){ + Driver driver = driverService.selectById(order.getDriverId()); + if(null != driver.getInviterType() && driver.getInviterType() == 2 && driver.getInviterId().compareTo(driverId) == 0){ + commissionListWarpper.setUserType(2); + } + } + list.add(commissionListWarpper); + } + return list; + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiDriverServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiDriverServiceImpl.java index 5a5fdb5..606a689 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiDriverServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiDriverServiceImpl.java @@ -1,10 +1,25 @@ package com.supersavedriving.driver.modular.system.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.modular.system.model.AccountChangeDetail; +import com.supersavedriving.driver.modular.system.model.Driver; +import com.supersavedriving.driver.modular.system.model.YouTui; import com.supersavedriving.driver.modular.system.model.YouTuiDriver; import com.supersavedriving.driver.modular.system.dao.YouTuiDriverMapper; +import com.supersavedriving.driver.modular.system.service.IAccountChangeDetailService; +import com.supersavedriving.driver.modular.system.service.IDriverService; import com.supersavedriving.driver.modular.system.service.IYouTuiDriverService; +import com.supersavedriving.driver.modular.system.service.IYouTuiService; +import com.supersavedriving.driver.modular.system.util.ResultUtil; +import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiListWarpper; +import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; /** * 用户优推数据 @@ -13,4 +28,117 @@ */ @Service public class YouTuiDriverServiceImpl extends ServiceImpl<YouTuiDriverMapper, YouTuiDriver> implements IYouTuiDriverService { + + @Autowired + private IYouTuiService youTuiService; + + @Autowired + private IDriverService driverService; + + @Autowired + private IAccountChangeDetailService accountChangeDetailService; + + + + + + + /** + * 获取司机兑换优推记录 + * @param driverId + * @return + * @throws Exception + */ + @Override + public List<DriverYouTuiListWarpper> queryDriverYouTuiList(Integer driverId) throws Exception { + List<Map<String, String>> list = this.baseMapper.queryRedemptionDate(driverId); + List<DriverYouTuiListWarpper> driverYouTuiListWarppers = new ArrayList<>(); + for (Map<String, String> map : list) { + String createTime = map.get("createTime"); + List<DriverYouTuiWarpper> driverYouTuiWarppers = this.baseMapper.queryYouTuiDriverList(driverId, createTime); + DriverYouTuiListWarpper driverYouTuiListWarpper = new DriverYouTuiListWarpper(); + driverYouTuiListWarpper.setMonth(createTime); + driverYouTuiListWarpper.setList(driverYouTuiWarppers); + driverYouTuiListWarppers.add(driverYouTuiListWarpper); + } + return driverYouTuiListWarppers; + } + + + /** + * 获取司机优推数据 + * @param driverId + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + @Override + public List<DriverYouTuiWarpper> queryDriverYouTui(Integer driverId, Integer pageNum, Integer pageSize) throws Exception { + pageNum = (pageNum - 1) * pageSize; + return this.baseMapper.queryDriverYouTui(driverId, pageNum, pageSize); + } + + + /** + * 获取待兑换的优推数据 + * @param pageNum + * @param pageSize + * @return + * @throws Exception + */ + @Override + public List<DriverYouTuiWarpper> queryAllYouTui(Integer pageNum, Integer pageSize) throws Exception { + pageNum = (pageNum - 1) * pageSize; + return this.baseMapper.queryAllYouTui(pageNum, pageSize); + } + + + /** + * 司机兑换优推数据 + * @param driverId + * @param id + * @return + * @throws Exception + */ + @Override + public ResultUtil redeemBenefits(Integer driverId, Integer id) throws Exception { + YouTui youTui = youTuiService.selectById(id); + if(youTui.getStatus() != 1){ + return ResultUtil.error("优推已下架"); + } + Driver driver = driverService.selectById(driverId); + if(null == driver.getIntegral() || youTui.getIntegral() > driver.getIntegral()){ + return ResultUtil.error("积分不足"); + } + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driverId); + accountChangeDetail.setType(2); + accountChangeDetail.setOldData(driver.getIntegral().doubleValue()); + accountChangeDetail.setExplain("兑换优推"); + accountChangeDetail.setCreateTime(new Date()); + driver.setIntegral(driver.getIntegral() - youTui.getIntegral()); + accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); + driverService.updateById(driver); + accountChangeDetailService.insert(accountChangeDetail); + + YouTuiDriver youTuiDriver = new YouTuiDriver(); + youTuiDriver.setDriverId(driverId); + youTuiDriver.setYouTuiId(id); + youTuiDriver.setIntegral(youTui.getIntegral()); + youTuiDriver.setType(youTui.getType()); + if(youTui.getType() == 1){//次数 + youTuiDriver.setSurplusQuantity(youTui.getNumber()); + } + if(youTui.getType() == 2){//小时 + youTuiDriver.setEndTime(new Date(System.currentTimeMillis() + (youTui.getNumber() * 60 * 60 * 1000))); + } + youTuiDriver.setState(1); + youTuiDriver.setFailureTime(new Date(System.currentTimeMillis() + (youTui.getEffectiveTime() * 24 * 60 * 60 * 1000))); + youTuiDriver.setCreateTime(new Date()); + this.insert(youTuiDriver); + return ResultUtil.success(); + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiServiceImpl.java new file mode 100644 index 0000000..3ceca8d --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/YouTuiServiceImpl.java @@ -0,0 +1,16 @@ +package com.supersavedriving.driver.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.modular.system.dao.YouTuiMapper; +import com.supersavedriving.driver.modular.system.model.YouTui; +import com.supersavedriving.driver.modular.system.service.IYouTuiService; +import org.springframework.stereotype.Service; + +/** + * 优推数据 + * @author zhibing.pu + * @date 2023/3/18 10:01 + */ +@Service +public class YouTuiServiceImpl extends ServiceImpl<YouTuiMapper, YouTui> implements IYouTuiService { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/TaskUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/TaskUtil.java index 33d0cfe..032a781 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/TaskUtil.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/TaskUtil.java @@ -1,6 +1,8 @@ package com.supersavedriving.driver.modular.system.util; +import com.supersavedriving.driver.modular.system.service.IDriverService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -10,6 +12,9 @@ */ @Component public class TaskUtil { + + @Autowired + private IDriverService driverService; @@ -39,16 +44,29 @@ // } -// -// /** -// * 每月第一天的1点执行的任务 -// */ -// @Scheduled(cron = "0 0 1 1 * *") -// public void taskMonth(){ -// try { -// -// }catch (Exception e){ -// e.printStackTrace(); -// } -// } + + /** + * 每月1日凌晨执行的任务 + */ + @Scheduled(cron = "0 0 0 1 * *") + public void taskMonth1(){ + try { + driverService.emptyIntegral(); + }catch (Exception e){ + e.printStackTrace(); + } + } + + + /** + * 每月16日凌晨执行的任务 + */ + @Scheduled(cron = "0 0 0 16 * *") + public void taskMonth16(){ + try { + driverService.emptyIntegral(); + }catch (Exception e){ + e.printStackTrace(); + } + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java new file mode 100644 index 0000000..1ee85aa --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java @@ -0,0 +1,43 @@ +package com.supersavedriving.driver.modular.system.util.huawei; + +import com.obs.services.ObsClient; +import com.obs.services.model.PutObjectRequest; +import com.obs.services.model.PutObjectResult; + +import java.io.InputStream; + +/** + * 对象存储上传 + * @author zhibing.pu + * @date 2023/3/15 11:32 + */ +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"; + + /** + * 上传文件 + * @param inputStream + * @param objectKey + * @return + */ + public static String putObjectToBucket(InputStream inputStream, String objectKey) { + try { + // 创建ObsClient实例 + ObsClient obsClient = new ObsClient(ak, sk, endPoint); + // 待上传的本地文件路径,需要指定到具体的文件名 + PutObjectRequest request = new PutObjectRequest(); + request.setBucketName(bucketname); + request.setObjectKey(objectKey); + request.setInput(inputStream); + PutObjectResult putObjectResult = obsClient.putObject(request); + return putObjectResult.getObjectUrl(); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SMSUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/SMSUtil.java similarity index 78% copy from driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SMSUtil.java copy to driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/SMSUtil.java index 4ff7a9b..b903d38 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SMSUtil.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/SMSUtil.java @@ -1,5 +1,4 @@ -package com.supersavedriving.driver.modular.system.util; - +package com.supersavedriving.driver.modular.system.util.huawei; import javax.net.ssl.*; import java.io.*; @@ -12,38 +11,53 @@ import java.text.SimpleDateFormat; import java.util.*; +/** + * 短信工具类 + * @author zhibing.pu + * @date 2023/3/15 11:23 + */ public class SMSUtil { - //无需修改,用于格式化鉴权头域,给"X-WSSE"参数赋值 private static final String WSSE_HEADER_FORMAT = "UsernameToken Username=\"%s\",PasswordDigest=\"%s\",Nonce=\"%s\",Created=\"%s\""; //无需修改,用于格式化鉴权头域,给"Authorization"参数赋值 private static final String AUTH_HEADER_VALUE = "WSSE realm=\"SDP\",profile=\"UsernameToken\",type=\"Appkey\""; /** - * 发送短信(华为云) - * @param templateId 模板id - * @param receiver 必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 - * @param templateParas 选填,使用无变量模板时请赋空值 String templateParas = "",双变量模板示例:模板内容为"您有${1}件快递请到${2}领取"时,templateParas可填写为"[\"3\",\"人民公园正门\"]" - * 模板变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569) + * 发送短信 + * @param phones //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 + * @param templateId //模板ID + * @param templateParas //模板变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569)。 * @throws Exception */ - public static void send_huawei_sms(String templateId, String receiver, String templateParas) throws Exception { - + public static void send(String phones, String templateId, String templateParas) throws Exception { //必填,请参考"开发准备"获取如下数据,替换为实际值 - String url = "https://smsapi.cn-south-1.myhuaweicloud.com:443"; //APP接入地址(在控制台"应用管理"页面获取)+接口访问URI - String appKey = "g3DW0G5Fbp3110UiGl5fkWcn799s"; //APP_Key - String appSecret = "LaT1NYvQKNkHO5KikniEueN8iTaz"; //APP_Secret - String sender = "ismsapp0000000103"; //国内短信签名通道号或国际/港澳台短信通道号 + String url = "https://smsapi.cn-south-1.myhuaweicloud.com:443/sms/batchSendSms/v1"; //APP接入地址(在控制台"应用管理"页面获取)+接口访问URI + String appKey = "9I0xrhdGXthf1fv9nn8G3glZ6Zng"; //APP_Key + String appSecret = "U7WxwX2LVk2YD6KAHxjc9tdnXoM9"; //APP_Secret + String sender = "8823031523874"; //国内短信签名通道号或国际/港澳台短信通道号 +// String templateId = "8ff55eac1d0b478ab3c06c3c6a492300"; //模板ID //条件必填,国内短信关注,当templateId指定的模板类型为通用模板时生效且必填,必须是已审核通过的,与模板类型一致的签名名称 //国际/港澳台短信不用关注该参数 - String signature = "IGO"; //签名名称 + String signature = "超省新代驾"; //签名名称 + + //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 +// String receiver = "+86151****6789,+86152****7890"; //短信接收人号码 //选填,短信状态报告接收地址,推荐使用域名,为空或者不填表示不接收状态报告 String statusCallBack = ""; + /** + * 选填,使用无变量模板时请赋空值 String templateParas = ""; + * 单变量模板示例:模板内容为"您的验证码是${1}"时,templateParas可填写为"[\"369751\"]" + * 双变量模板示例:模板内容为"您有${1}件快递请到${2}领取"时,templateParas可填写为"[\"3\",\"人民公园正门\"]" + * 模板中的每个变量都必须赋值,且取值不能为空 + * 查看更多模板和变量规范:产品介绍>模板和变量规范 + */ +// String templateParas = "[\"369751\"]"; //模板变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569)。 + //请求Body,不携带签名名称时,signature请填null - String body = buildRequestBody(sender, receiver, templateId, templateParas, statusCallBack, signature); + String body = buildRequestBody(sender, phones, templateId, templateParas, statusCallBack, signature); if (null == body || body.isEmpty()) { System.out.println("body is null."); return; @@ -62,9 +76,7 @@ HttpsURLConnection connection = null; InputStream is = null; - HostnameVerifier hv = new HostnameVerifier() { - @Override public boolean verify(String hostname, SSLSession session) { return true; diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailListWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailListWarpper.java new file mode 100644 index 0000000..06b5fe6 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailListWarpper.java @@ -0,0 +1,20 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @date 2023/3/18 16:14 + */ +@Data +@ApiModel +public class CommissionDetailListWarpper { + @ApiModelProperty("总计") + private Double total; + @ApiModelProperty("列表数据") + private List<CommissionDetailWarpper> list; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailWarpper.java new file mode 100644 index 0000000..a2f1bcb --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionDetailWarpper.java @@ -0,0 +1,22 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/3/18 16:16 + */ +@Data +@ApiModel +public class CommissionDetailWarpper { + @ApiModelProperty("说明") + private String explain; + @ApiModelProperty("时间") + private Long createTime; + @ApiModelProperty("变动金额") + private Double money; + @ApiModelProperty("余额") + private Double balance; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionListWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionListWarpper.java new file mode 100644 index 0000000..a488b41 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionListWarpper.java @@ -0,0 +1,20 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/3/18 11:34 + */ +@Data +@ApiModel +public class CommissionListWarpper { + @ApiModelProperty("日期") + private Long createTime; + @ApiModelProperty("推广类型(1=用户,2=司机)") + private Integer userType; + @ApiModelProperty("获取佣金") + private Double amount; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfo.java index 785b5ca..43d5d33 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfo.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfo.java @@ -21,4 +21,8 @@ private String code; @ApiModelProperty(value = "新手机号码", required = false, dataType = "String") private String phone; + @ApiModelProperty(value = "收款码", required = false, dataType = "String") + private String wxCollectionCode; + @ApiModelProperty(value = "收款码", required = false, dataType = "String") + private String zfbCollectionCode; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfoWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfoWarpper.java index 4d02dbd..8c64512 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfoWarpper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverInfoWarpper.java @@ -23,6 +23,8 @@ private Long youTuiStart; @ApiModelProperty("账户余额") private Double balance; + @ApiModelProperty("佣金余额") + private Double commission; @ApiModelProperty("积分") private Integer integral; @ApiModelProperty("今日接单") @@ -37,4 +39,8 @@ private String emergencyContact; @ApiModelProperty("紧急联系人电话") private String emergencyPhone; + @ApiModelProperty("微信收款码") + private String wxCollectionCode; + @ApiModelProperty("支付宝收款码") + private String zfbCollectionCode; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverOrderListWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverOrderListWarpper.java new file mode 100644 index 0000000..6925ec7 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverOrderListWarpper.java @@ -0,0 +1,28 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/3/18 10:22 + */ +@Data +@ApiModel +public class DriverOrderListWarpper { + @ApiModelProperty("订单id") + private Integer id; + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("订单时间") + private Long createTime; + @ApiModelProperty("起点地址") + private String startAddress; + @ApiModelProperty("终点地址") + private String endAddress; + @ApiModelProperty("订单状态") + private Integer state; + @ApiModelProperty("订单来源(1=乘客,2=司机)") + private Integer source; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiListWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiListWarpper.java new file mode 100644 index 0000000..4bcb74e --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiListWarpper.java @@ -0,0 +1,20 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @date 2023/3/15 16:20 + */ +@Data +@ApiModel +public class DriverYouTuiListWarpper { + @ApiModelProperty("日期") + private String month; + @ApiModelProperty("优推记录") + private List<DriverYouTuiWarpper> list; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiWarpper.java new file mode 100644 index 0000000..3c11323 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverYouTuiWarpper.java @@ -0,0 +1,32 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/3/15 16:21 + */ +@Data +@ApiModel +public class DriverYouTuiWarpper { + @ApiModelProperty("id") + private Integer id; + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("优推类型(1=次数,2=小时)") + private Integer type; + @ApiModelProperty("优推值") + private Integer number; + @ApiModelProperty("图片") + private String img; + @ApiModelProperty("积分") + private Integer integral; + @ApiModelProperty("说明") + private String content; + @ApiModelProperty("兑换时间") + private Long createTime; + @ApiModelProperty("状态(1=待使用,2=使用中,3=已结束)") + private Integer state; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/HallOrderList.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/HallOrderList.java index 5a52299..3d373ff 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/HallOrderList.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/HallOrderList.java @@ -44,6 +44,8 @@ private String endLng; @ApiModelProperty("预估里程") private Double estimatedMileage; + @ApiModelProperty("预估费") + private Double estimatedPrice; @ApiModelProperty("起步价") private Double startPrice; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/IntegralIncomeAndExpensesWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/IntegralIncomeAndExpensesWarpper.java new file mode 100644 index 0000000..5cd18f6 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/IntegralIncomeAndExpensesWarpper.java @@ -0,0 +1,20 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/3/15 14:58 + */ +@Data +@ApiModel +public class IntegralIncomeAndExpensesWarpper { + @ApiModelProperty("说明") + private String description; + @ApiModelProperty("时间") + private Long createTime; + @ApiModelProperty("积分") + private Integer integral; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/InviteListWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/InviteListWarpper.java new file mode 100644 index 0000000..b5fd849 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/InviteListWarpper.java @@ -0,0 +1,20 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/3/18 15:18 + */ +@Data +@ApiModel +public class InviteListWarpper { + @ApiModelProperty("用户昵称") + private String nickname; + @ApiModelProperty("时间") + private Long time; + @ApiModelProperty("类型(1=邀请下单,2=注册司机)") + private Integer type; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java index 1825292..714b667 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java @@ -15,6 +15,8 @@ private String userName; @ApiModelProperty("用户电话") private String userPhone; + @ApiModelProperty("用户余额") + private Double balance; @ApiModelProperty("下单次数") private Integer orderTimes; @ApiModelProperty("取消次数") diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderStatusWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderStatusWarpper.java new file mode 100644 index 0000000..55f1222 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderStatusWarpper.java @@ -0,0 +1,16 @@ +package com.supersavedriving.driver.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("订单状态") +public class OrderStatusWarpper { + @ApiModelProperty("订单id") + private Long orderId; + @ApiModelProperty("订单类型") + private Integer orderType; + @ApiModelProperty("订单状态(101=待接单,102=已接单,103=前往预约点,104=到达预约点,105=开始服务,106=到达目的地,107=待支付,108=待评价,109=已完成,201=转单中,301=已取消,401=等待中)") + private Integer state; +} diff --git a/driver/pom.xml b/driver/pom.xml index 3766e59..104bdfa 100644 --- a/driver/pom.xml +++ b/driver/pom.xml @@ -1,7 +1,7 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>com.stylefeng</groupId> + <groupId>com.supersavedriving</groupId> <artifactId>guns-parent</artifactId> <version>1.0.0</version> @@ -54,12 +54,12 @@ <scope>import</scope> </dependency> <dependency> - <groupId>com.stylefeng</groupId> + <groupId>com.supersavedriving</groupId> <artifactId>guns-generator</artifactId> <version>${guns.version}</version> </dependency> <dependency> - <groupId>com.stylefeng</groupId> + <groupId>com.supersavedriving</groupId> <artifactId>guns-core</artifactId> <version>${guns.version}</version> </dependency> diff --git a/user/guns-admin/pom.xml b/user/guns-admin/pom.xml index 843a625..9127482 100644 --- a/user/guns-admin/pom.xml +++ b/user/guns-admin/pom.xml @@ -163,11 +163,11 @@ <artifactId>alipay-sdk-java</artifactId> <version>4.8.10.ALL</version> </dependency> - <!-- oos对象存储 --> + <!-- obs对象存储 --> <dependency> - <groupId>com.aliyun.oss</groupId> - <artifactId>aliyun-sdk-oss</artifactId> - <version>3.8.0</version> + <groupId>com.huaweicloud</groupId> + <artifactId>esdk-obs-java-bundle</artifactId> + <version>[3.21.11,)</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/core/intercept/RestApiInteceptor.java b/user/guns-admin/src/main/java/com/supersavedriving/user/core/intercept/RestApiInteceptor.java index 30ea486..21eb5df 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/core/intercept/RestApiInteceptor.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/core/intercept/RestApiInteceptor.java @@ -5,6 +5,8 @@ import com.supersavedriving.user.core.common.exception.BizExceptionEnum; import com.supersavedriving.user.core.util.JwtTokenUtil; import com.supersavedriving.user.core.util.RenderUtil; +import com.supersavedriving.user.modular.system.util.ResultUtil; +import com.supersavedriving.user.modular.system.warpper.ResponseWarpper; import io.jsonwebtoken.JwtException; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; @@ -48,12 +50,14 @@ } } catch (JwtException e) { //有异常就是token解析失败 - RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); +// RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); + RenderUtil.renderJson(response, ResponseWarpper.success(ResultUtil.tokenErr())); return false; } } else { //header没有带Bearer字段 - RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); +// RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); + RenderUtil.renderJson(response, ResponseWarpper.success(ResultUtil.tokenErr())); return false; } return true; diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java index a5d863a..4215feb 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java @@ -6,6 +6,8 @@ import com.supersavedriving.user.modular.system.service.IAppUserService; import com.supersavedriving.user.modular.system.service.IDriverService; import com.supersavedriving.user.modular.system.util.ResultUtil; +import com.supersavedriving.user.modular.system.util.UUIDUtil; +import com.supersavedriving.user.modular.system.util.huawei.OBSUtil; import com.supersavedriving.user.modular.system.warpper.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -16,8 +18,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import java.io.InputStream; import java.util.List; /** @@ -157,4 +161,26 @@ return new ResponseWarpper(500, e.getMessage()); } } + + + @ResponseBody + @PostMapping("/api/appUser/uploadImg") +// @ServiceLog(name = "上传头像图片", url = "/api/appUser/uploadImg") + @ApiOperation(value = "上传头像图片", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "图片文件", name = "file", required = true, dataType = "file"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<String> uploadImg(MultipartFile file){ + try { + InputStream inputStream = file.getInputStream(); + String name = file.getName(); + name = UUIDUtil.getRandomCode() + name.substring(name.lastIndexOf(".")); + String s = OBSUtil.putObjectToBucket(inputStream, name); + return ResponseWarpper.success(s); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java index 4b3da9d..dd2ffa0 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java @@ -204,14 +204,43 @@ @ResponseBody @PostMapping("/api/order/queryOrderPrice") -// @ServiceLog(name = "获取订单费用明细", url = "/api/order/queryOrderPrice") - @ApiOperation(value = "获取订单费用明细", tags = {"用户端-首页"}, notes = "") +// @ServiceLog(name = "获取待支付页面订单费用明细", url = "/api/order/queryOrderPrice") + @ApiOperation(value = "获取待支付页面订单费用明细", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), - @ApiImplicitParam(value = "是否余额抵扣(0=否,1=是)", name = "payType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResponseWarpper<OrderPriceWarpper> queryOrderPrice(Long orderId, Integer payType){ + public ResponseWarpper<OrderPriceWarpper> queryOrderPrice(Long orderId){ + if(null == orderId){ + return ResponseWarpper.success(ResultUtil.paranErr("orderId")); + } + try { + Integer uid = appUserService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.success(ResultUtil.tokenErr()); + } + OrderPriceWarpper orderPriceWarpper = orderService.queryOrderPrice(uid, orderId); + return ResponseWarpper.success(orderPriceWarpper); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/order/calculationOfExpenses") +// @ServiceLog(name = "重新计算待支付页面订单费用明细", url = "/api/order/calculationOfExpenses") + @ApiOperation(value = "重新计算待支付页面订单费用明细", tags = {"用户端-首页"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), + @ApiImplicitParam(value = "优惠券id", name = "couponId", required = true, dataType = "int"), + @ApiImplicitParam(value = "是否使用余额抵扣(0=否,1=是)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "抵扣金额", name = "balance", required = true, dataType = "double"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<OrderPriceWarpper> calculationOfExpenses(Long orderId, Integer couponId, Integer payType, Double balance){ if(null == orderId){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } @@ -223,7 +252,7 @@ if(null == uid){ return ResponseWarpper.success(ResultUtil.tokenErr()); } - OrderPriceWarpper orderPriceWarpper = orderService.queryOrderPrice(uid, orderId, payType); + OrderPriceWarpper orderPriceWarpper = orderService.calculationOfExpenses(uid, orderId, couponId, payType, balance); return ResponseWarpper.success(orderPriceWarpper); }catch (Exception e){ e.printStackTrace(); diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/RevenueMapper.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/RevenueMapper.java new file mode 100644 index 0000000..ef9eac1 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/RevenueMapper.java @@ -0,0 +1,11 @@ +package com.supersavedriving.user.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.user.modular.system.model.Revenue; + +/** + * @author zhibing.pu + * @date 2023/3/13 10:03 + */ +public interface RevenueMapper extends BaseMapper<Revenue> { +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/AccountChangeDetailMapper.xml b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/AccountChangeDetailMapper.xml index bb32c45..8e04146 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/AccountChangeDetailMapper.xml +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/AccountChangeDetailMapper.xml @@ -1,13 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace=" com.supersavedriving.user.modular.system.dao.AccountChangeDetailMapper"> +<mapper namespace="com.supersavedriving.user.modular.system.dao.AccountChangeDetailMapper"> <!-- 通用查询映射结果 --> - <resultMap id="BaseResultMap" type=" com.supersavedriving.user.modular.system.model.AccountChangeDetail"> + <resultMap id="BaseResultMap" type="com.supersavedriving.user.modular.system.model.AccountChangeDetail"> <id column="id" property="id"/> <result column="userType" property="userType"/> <result column="userId" property="userId"/> <result column="type" property="type"/> + <result column="changeType" property="changeType"/> <result column="oldData" property="oldData"/> <result column="newData" property="newData"/> <result column="explain" property="explain"/> diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/DriverMapper.xml b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/DriverMapper.xml index 08af8c0..3d62685 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/DriverMapper.xml +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/DriverMapper.xml @@ -26,6 +26,7 @@ <result column="branchOfficeId" property="branchOfficeId"/> <result column="balance" property="balance"/> <result column="backgroundBalance" property="backgroundBalance"/> + <result column="couponBalance" property="couponBalance"/> <result column="approvalStatus" property="approvalStatus"/> <result column="approvalNotes" property="approvalNotes"/> <result column="approvalUserId" property="approvalUserId"/> diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/RevenueMapper.xml b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/RevenueMapper.xml new file mode 100644 index 0000000..9ca4713 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/RevenueMapper.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.supersavedriving.user.modular.system.dao.RevenueMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.supersavedriving.user.modular.system.model.Revenue"> + <id column="id" property="id"/> + <result column="type" property="type"/> + <result column="userType" property="userType"/> + <result column="userId" property="userId"/> + <result column="orderId" property="orderId"/> + <result column="amount" property="amount"/> + <result column="createTime" property="createTime"/> + </resultMap> + +</mapper> diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/UserToCouponMapper.xml b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/UserToCouponMapper.xml index d755a61..99a190f 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/UserToCouponMapper.xml +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/UserToCouponMapper.xml @@ -18,6 +18,7 @@ <select id="queryCoupon" resultType="com.supersavedriving.user.modular.system.model.Coupon"> select + b.id, a.* from t_coupon a left join t_user_to_coupon b on (a.id = b.couponId) diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/YouTuiDriverMapper.xml b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/YouTuiDriverMapper.xml index 5049496..077a1c0 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/YouTuiDriverMapper.xml +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/YouTuiDriverMapper.xml @@ -8,6 +8,10 @@ <result column="driverId" property="driverId" /> <result column="youTuiId" property="youTuiId" /> <result column="integral" property="integral" /> + <result column="type" property="type"/> + <result column="surplusQuantity" property="surplusQuantity"/> + <result column="endTime" property="endTime"/> + <result column="state" property="state"/> <result column="failureTime" property="failureTime" /> <result column="createTime" property="createTime" /> </resultMap> diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/AccountChangeDetail.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/AccountChangeDetail.java index 38c2c26..196518d 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/AccountChangeDetail.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/AccountChangeDetail.java @@ -38,6 +38,11 @@ @TableField("type") private Integer type; /** + * 变动类型(1=订单收入,2=订单支出,3=充值,4=提现,5=佣金收入,6=佣金提现,7=优惠券收入,8=保险支付) + */ + @TableField("changeType") + private Integer changeType; + /** * 历史数据 */ @TableField("oldData") diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java index 85cd45b..f80a33a 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java @@ -128,6 +128,11 @@ @TableField("backgroundBalance") private Double backgroundBalance; /** + * 优惠券余额(订单优惠券支付的金额) + */ + @TableField("couponBalance") + private Double couponBalance; + /** * 审核状态(1=待审核,2=已同意,3=已拒绝) */ @TableField("approvalStatus") diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Revenue.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Revenue.java new file mode 100644 index 0000000..d487e17 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Revenue.java @@ -0,0 +1,54 @@ +package com.supersavedriving.user.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhibing.pu + * @date 2023/3/13 9:58 + */ +@Data +@TableName("t_revenue") +public class Revenue { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + /** + * 收入类型(1=订单收入,2=分佣收入) + */ + @TableField("type") + private Integer type; + /** + * 用户类型(1=用户,2=司机,3=代理商) + */ + @TableField("userType") + private Integer userType; + /** + * 用户id + */ + @TableField("userId") + private Integer userId; + /** + * 订单id + */ + @TableField("orderId") + private Long orderId; + /** + * 收入金额 + */ + @TableField("amount") + private Double amount; + /** + * 添加时间 + */ + @TableField("createTime") + private Date createTime; +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/YouTuiDriver.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/YouTuiDriver.java index e5eb0a2..914bf3d 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/YouTuiDriver.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/YouTuiDriver.java @@ -38,6 +38,26 @@ @TableField("integral") private Integer integral; /** + * 优推类型(1=次数,2=小时) + */ + @TableField("type") + private Integer type; + /** + * 优推剩余数量 + */ + @TableField("surplusQuantity") + private Integer surplusQuantity; + /** + * 优推结束时间 + */ + @TableField("endTime") + private Integer endTime; + /** + * 状态(1=未使用,2=使用中,3=已结束) + */ + @TableField("state") + private Integer state; + /** * 失效时间 */ @TableField("failureTime") diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IOrderService.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IOrderService.java index 90e3eb1..bd8a81e 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IOrderService.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IOrderService.java @@ -74,7 +74,21 @@ * @return * @throws Exception */ - OrderPriceWarpper queryOrderPrice(Integer uid, Long orderId, Integer payType) throws Exception; + OrderPriceWarpper queryOrderPrice(Integer uid, Long orderId) throws Exception; + + + /** + * 重新计算费用明细 + * @param orderId + * @param couponId + * @param payType + * @param balance + * @return + * @throws Exception + */ + OrderPriceWarpper calculationOfExpenses(Integer uid, Long orderId, Integer couponId, Integer payType, Double balance) throws Exception; + + /** * 获取支付页面的可用优惠券列表 diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IRevenueService.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IRevenueService.java new file mode 100644 index 0000000..e2f102b --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IRevenueService.java @@ -0,0 +1,11 @@ +package com.supersavedriving.user.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.supersavedriving.user.modular.system.model.Revenue; + +/** + * @author zhibing.pu + * @date 2023/3/13 10:09 + */ +public interface IRevenueService extends IService<Revenue> { +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java index 13c646f..51f0934 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java @@ -87,6 +87,9 @@ @Autowired private IEvaluateService evaluateService; + @Autowired + private IRevenueService revenueService; + @@ -454,8 +457,10 @@ List<Location> locations = mongoTemplate.find(query, Location.class); List<Integer> driverIds = locations.stream().map(Location::getDriverId).collect(Collectors.toList()); Integer driver = null; + YouTuiDriver youTuiDriver1 = null; if(driverIds.size() > 0){ - List<YouTuiDriver> youTuiDrivers = youTuiDriverService.selectList(new EntityWrapper<YouTuiDriver>().in("driverId", driverIds).last(" and now() < failureTime")); + List<YouTuiDriver> youTuiDrivers = youTuiDriverService.selectList(new EntityWrapper<YouTuiDriver>().in("driverId", driverIds) + .eq("state", 2).last(" and (surplusQuantity > 0 or now() < endTime) and now() < failureTime")); Double d = null; for (YouTuiDriver youTuiDriver : youTuiDrivers) { String value = redisUtil.getValue("DRIVER" + youTuiDriver.getDriverId()); @@ -467,10 +472,14 @@ if(d == null || d.compareTo(wgs84) > 0){ d = wgs84; driver = youTuiDriver.getDriverId(); + youTuiDriver1 = youTuiDriver; } } } - + if(null != youTuiDriver1 && youTuiDriver1.getType() == 1){ + youTuiDriver1.setSurplusQuantity(youTuiDriver1.getSurplusQuantity() - 1); + youTuiDriverService.updateById(youTuiDriver1); + } //开始范围查找 if(null == driver){ @@ -633,7 +642,7 @@ * @throws Exception */ @Override - public OrderPriceWarpper queryOrderPrice(Integer uid, Long orderId, Integer payType) throws Exception { + public OrderPriceWarpper queryOrderPrice(Integer uid, Long orderId) throws Exception { Order order = this.selectById(orderId); OrderPriceWarpper orderPriceWarpper = new OrderPriceWarpper(); BeanUtils.copyProperties(order, orderPriceWarpper); @@ -644,29 +653,68 @@ Coupon coupon = userToCouponService.queryCoupon(uid, orderMoney); if(null != coupon){ orderMoney = orderMoney - coupon.getCouponPreferentialAmount(); + orderPriceWarpper.setDiscountedPrice(coupon.getCouponPreferentialAmount()); + orderPriceWarpper.setCouponId(coupon.getId()); } - //再算折扣(余额完全可以抵扣费用才能有折扣) - if(payType == 1 && appUser.getAccountBalance() > orderMoney){//使用余额抵扣 - orderPriceWarpper.setDiscount(appUser.getHavDiscount() == 0 ? 0 : 9D); - orderPriceWarpper.setDiscountAmount(orderMoney * 0.1); - orderPriceWarpper.setPayType(2);//余额支付 - orderMoney = orderMoney - orderPriceWarpper.getDiscountAmount(); - } - if(payType == 0){//不使用余额抵扣 - orderPriceWarpper.setDiscount(0D); - orderPriceWarpper.setDiscountAmount(0D); - orderPriceWarpper.setPayType(1);//微信支付 - } - if(payType == 1 && appUser.getAccountBalance() > 0 && appUser.getAccountBalance() < orderMoney){//使用余额抵扣部分 - orderPriceWarpper.setDiscount(0D); - orderPriceWarpper.setDiscountAmount(0D); - orderPriceWarpper.setPayType(4);//微信+余额 - orderMoney = orderMoney - appUser.getAccountBalance(); - } + orderPriceWarpper.setDiscount(0D); + orderPriceWarpper.setDiscountAmount(0D); + orderPriceWarpper.setPayType(1);//微信支付 orderPriceWarpper.setPayMoney(orderMoney); return orderPriceWarpper; } + + /** + * 重新计算费用明细 + * @param orderId + * @param couponId + * @param payType + * @param balance + * @return + * @throws Exception + */ + @Override + public OrderPriceWarpper calculationOfExpenses(Integer uid, Long orderId, Integer couponId, Integer payType, Double balance) throws Exception { + Order order = this.selectById(orderId); + OrderPriceWarpper orderPriceWarpper = new OrderPriceWarpper(); + BeanUtils.copyProperties(order, orderPriceWarpper); + AppUser appUser = appUserService.selectById(uid); + orderPriceWarpper.setBalance(appUser.getAccountBalance()); + orderPriceWarpper.setDiscount(0D); + orderPriceWarpper.setDiscountAmount(0D); + orderPriceWarpper.setPayType(1);//微信支付 + Double orderMoney = order.getOrderMoney(); + //先算优惠券 + Coupon coupon = userToCouponService.queryCoupon(uid, orderMoney); + if(null != coupon && null == couponId){ + orderMoney = orderMoney - coupon.getCouponPreferentialAmount(); + orderPriceWarpper.setDiscountedPrice(coupon.getCouponPreferentialAmount()); + orderPriceWarpper.setCouponId(coupon.getId()); + } + if(null != couponId){ + UserToCoupon userToCoupon = userToCouponService.selectById(couponId); + Coupon coupon1 = couponService.selectById(userToCoupon.getCouponId()); + orderMoney = orderMoney - coupon1.getCouponPreferentialAmount(); + orderPriceWarpper.setDiscountedPrice(coupon1.getCouponPreferentialAmount()); + orderPriceWarpper.setCouponId(couponId); + } + if(payType == 1 && appUser.getHavDiscount() == 1){//使用余额抵扣 + orderPriceWarpper.setDiscount(9D); + orderPriceWarpper.setDiscountAmount(orderMoney * 0.1); + orderMoney = orderMoney * 0.9; + } + if(payType == 0){//不使用余额抵扣 + orderPriceWarpper.setPayType(1); + } + if(payType == 1 && balance >= orderMoney){//使用余额抵扣 + orderPriceWarpper.setPayType(2); + } + if(payType == 1 && balance < orderMoney){//使用余额抵扣部分 + orderPriceWarpper.setPayType(4); + } + orderPriceWarpper.setPayMoney(orderMoney); + return orderPriceWarpper; + } /** * 获取订单支付页面优惠券列表 @@ -754,7 +802,7 @@ * @param appUser * @return */ - public ResultUtil balancePayment(Order order, AppUser appUser, Integer couponId){ + public ResultUtil balancePayment(Order order, AppUser appUser, Integer couponId) throws Exception{ Double payMoney = order.getOrderMoney(); if(null != couponId){ UserToCoupon userToCoupon = userToCouponService.selectById(couponId); @@ -785,11 +833,15 @@ accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(appUser.getAccountBalance()); accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(2); accountChangeDetail.setExplain("代驾服务费"); appUser.setAccountBalance(appUser.getAccountBalance() - payMoney); accountChangeDetail.setNewData(appUser.getAccountBalance()); appUserService.updateById(appUser); accountChangeDetailService.insert(accountChangeDetail); + + //处理佣金和收入记录 + saveCommission(order); return ResultUtil.success(); } @@ -825,6 +877,7 @@ accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(appUser.getAccountBalance()); accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(2); accountChangeDetail.setExplain("代驾服务费"); appUser.setAccountBalance(appUser.getAccountBalance() > payMoney ? appUser.getAccountBalance() - payMoney : 0); accountChangeDetail.setNewData(appUser.getAccountBalance()); @@ -883,6 +936,7 @@ OrderServiceImpl.this.updateById(order1); //处理抽成及收入 + saveCommission(order1); return; } if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){ @@ -922,7 +976,7 @@ order.setOrderNo(transaction_id); this.updateById(order); //添加收入明细 - + saveCommission(order); return ResultUtil.success(); } @@ -974,7 +1028,293 @@ accountChangeDetailService.insert(accountChangeDetail); } } + if(score < 3){//差评扣减积分 + SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4)); + if(null != systemConfig){ + //{"num1":"10:00","num2":"14:00","num3":10,"num4":10,"num5":10,"num6":10,"num7":10,"num8":10,"num9":5,"num10":5} + JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); + Integer num9 = jsonObject.getInteger("num9"); + + //增加积分变动记录 + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(order.getDriverId()); + accountChangeDetail.setCreateTime(new Date()); + accountChangeDetail.setOldData(driver.getIntegral().doubleValue()); + accountChangeDetail.setType(2); + accountChangeDetail.setExplain("差评扣减积分"); + driver.setIntegral(driver.getIntegral() - num9); + accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); + accountChangeDetailService.insert(accountChangeDetail); + } + } driverService.updateById(driver); return ResultUtil.success(); } + + + /** + * 处理订单收入及分佣抽成 + * @param order + * @return + * @throws Exception + */ + public void saveCommission(Order order) throws Exception{ + //司机收入和代理商抽成(先分佣,后抽成) + //司机分佣和司机推荐用户首单奖励都在平台的抽佣中扣除,剩余的为平台抽佣。 + Driver driver = driverService.selectById(order.getDriverId()); + AppUser appUser = appUserService.selectById(order.getUserId()); + Double payMoney = order.getPayMoney(); + SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 3)); + if(null != systemConfig){ + JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); + Double num2 = jsonObject.getDouble("num2"); + Double num3 = jsonObject.getDouble("num3"); + if(order.getPayMoney() >= num2){ + payMoney = payMoney - num3;//司机收入 + SystemConfig systemConfig1 = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 2)); + if(null != systemConfig1){ + JSONObject jsonObject1 = JSON.parseObject(systemConfig1.getContent()); + //司机推荐首单收入 + List<Integer> state = Arrays.asList(108, 109); + int count = this.selectCount(new EntityWrapper<Order>().eq("userId", appUser.getId()).eq("status", 1).in("state", state)); + if(null != appUser.getInviterType() && appUser.getInviterType() == 2 && count == 1){ + Double num1 = jsonObject1.getDouble("num1"); + num1 = (num3 >= num1 ? num1 : num3); + + if(num1 > 0){ + Driver driver1 = driverService.selectById(appUser.getInviterId()); + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver1.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver1.getCommission()); + accountChangeDetail.setExplain("订单分佣收入"); + accountChangeDetail.setCreateTime(new Date()); + driver1.setCommission(driver1.getCommission() + num1); + accountChangeDetail.setNewData(driver1.getCommission()); + driverService.updateById(driver1); + accountChangeDetailService.saveData(accountChangeDetail); + + Revenue revenue = new Revenue(); + revenue.setType(2); + revenue.setUserType(2); + revenue.setUserId(driver1.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num1); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + } + num3 = (num3 >= num1 ? num3 - num1 : 0); + } + + //开始处理层级抽佣 + if(null != driver.getInviterType() && driver.getInviterType() == 2){ + Driver driver1 = driverService.selectById(driver.getInviterId());//一级司机 + if(null != driver1.getInviterType() && driver1.getInviterType() == 2){ + Driver driver2 = driverService.selectById(driver1.getInviterId());//二级司机 + if(null != driver2.getInviterType() && driver2.getInviterType() == 2){ + Driver driver3 = driverService.selectById(driver2.getInviterId());//三级级司机 + Double num5 = jsonObject1.getDouble("num5"); + Double num6 = jsonObject1.getDouble("num6"); + Double num7 = jsonObject1.getDouble("num7"); + num5 = (num3 >= num5 ? num5 : num3); + if(num5 > 0){ + Revenue revenue = new Revenue(); + revenue.setType(2); + revenue.setUserType(2); + revenue.setUserId(driver1.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num5); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver1.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver1.getCommission()); + accountChangeDetail.setExplain("订单分佣收入"); + accountChangeDetail.setCreateTime(new Date()); + driver1.setCommission(driver1.getCommission() + num5); + accountChangeDetail.setNewData(driver1.getCommission()); + driverService.updateById(driver1); + accountChangeDetailService.saveData(accountChangeDetail); + num3 = (num3 >= num5 ? num3 - num5 : 0); + } + num6 = (num3 >= num6 ? num6 : num3); + if(num6 > 0){ + Revenue revenue = new Revenue(); + revenue.setType(2); + revenue.setUserType(2); + revenue.setUserId(driver2.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num6); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver2.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver2.getCommission()); + accountChangeDetail.setExplain("订单分佣收入"); + accountChangeDetail.setCreateTime(new Date()); + driver2.setCommission(driver2.getCommission() + num6); + accountChangeDetail.setNewData(driver2.getCommission()); + driverService.updateById(driver2); + accountChangeDetailService.saveData(accountChangeDetail); + num3 = (num3 >= num6 ? num3 - num6 : 0); + } + num7 = (num3 >= num7 ? num7 : num3); + if(num7 > 0){ + Revenue revenue = new Revenue(); + revenue.setType(2); + revenue.setUserType(2); + revenue.setUserId(driver3.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num7); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver3.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver3.getCommission()); + accountChangeDetail.setExplain("订单分佣收入"); + accountChangeDetail.setCreateTime(new Date()); + driver3.setCommission(driver3.getCommission() + num7); + accountChangeDetail.setNewData(driver3.getCommission()); + driverService.updateById(driver3); + accountChangeDetailService.saveData(accountChangeDetail); + num3 = (num3 >= num7 ? num3 - num7 : 0); + } + }else{ + Double num3_ = jsonObject1.getDouble("num3"); + Double num4 = jsonObject1.getDouble("num4"); + num3_ = (num3 >= num3_ ? num3_ : num3); + if(num3_ > 0){ + Revenue revenue = new Revenue(); + revenue.setType(2); + revenue.setUserType(2); + revenue.setUserId(driver1.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num3_); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver1.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver1.getCommission()); + accountChangeDetail.setExplain("订单分佣收入"); + accountChangeDetail.setCreateTime(new Date()); + driver1.setCommission(driver1.getCommission() + num3_); + accountChangeDetail.setNewData(driver1.getCommission()); + driverService.updateById(driver1); + accountChangeDetailService.saveData(accountChangeDetail); + num3 = (num3 >= num3_ ? num3 - num3_ : 0); + } + num4 = (num3 >= num4 ? num4 : num3); + if(num4 > 0){ + Revenue revenue = new Revenue(); + revenue.setType(2); + revenue.setUserType(2); + revenue.setUserId(driver2.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num4); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver2.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver2.getCommission()); + accountChangeDetail.setExplain("订单分佣收入"); + accountChangeDetail.setCreateTime(new Date()); + driver2.setCommission(driver2.getCommission() + num4); + accountChangeDetail.setNewData(driver2.getCommission()); + driverService.updateById(driver2); + accountChangeDetailService.saveData(accountChangeDetail); + num3 = (num3 >= num4 ? num3 - num4 : 0); + } + } + }else{ + Double num2_ = jsonObject1.getDouble("num2"); + num2_ = (num3 >= num2_ ? num2_ : num3); + if(num2_ > 0){ + Revenue revenue = new Revenue(); + revenue.setType(2); + revenue.setUserType(2); + revenue.setUserId(driver1.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num2_); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver1.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver1.getCommission()); + accountChangeDetail.setExplain("订单分佣收入"); + accountChangeDetail.setCreateTime(new Date()); + driver1.setCommission(driver1.getCommission() + num2_); + accountChangeDetail.setNewData(driver1.getCommission()); + driverService.updateById(driver1); + accountChangeDetailService.saveData(accountChangeDetail); + num3 = (num3 >= num2_ ? num3 - num2_ : 0); + } + } + } + //处理代理商抽佣 + if(num3 > 0){ + Revenue revenue = new Revenue(); + revenue.setType(1); + revenue.setUserType(3); + revenue.setUserId(driver.getAgentId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(num3); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + } + } + } + } + //司机订单收入 + Revenue revenue = new Revenue(); + revenue.setType(1); + revenue.setUserType(2); + revenue.setUserId(driver.getId()); + revenue.setOrderId(order.getId()); + revenue.setAmount(payMoney + order.getDiscountedPrice()); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver.getId()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(1); + accountChangeDetail.setOldData(driver.getBalance() + driver.getCouponBalance()); + accountChangeDetail.setExplain("订单收入"); + accountChangeDetail.setCreateTime(new Date()); + driver.setBalance(driver.getBalance() + payMoney); + if(null != order.getCouponId()){ + driver.setCouponBalance(driver.getCouponBalance() + order.getDiscountedPrice()); + } + accountChangeDetail.setNewData(driver.getBalance() + driver.getCouponBalance()); + driverService.updateById(driver); + accountChangeDetailService.saveData(accountChangeDetail); + } } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/RevenueServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/RevenueServiceImpl.java new file mode 100644 index 0000000..82afe9b --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/RevenueServiceImpl.java @@ -0,0 +1,15 @@ +package com.supersavedriving.user.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.user.modular.system.dao.RevenueMapper; +import com.supersavedriving.user.modular.system.model.Revenue; +import com.supersavedriving.user.modular.system.service.IRevenueService; +import org.springframework.stereotype.Service; + +/** + * @author zhibing.pu + * @date 2023/3/13 10:09 + */ +@Service +public class RevenueServiceImpl extends ServiceImpl<RevenueMapper, Revenue> implements IRevenueService { +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/httpClinet/HttpClientUtil.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/httpClinet/HttpClientUtil.java index 35921fe..bd58be0 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/httpClinet/HttpClientUtil.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/httpClinet/HttpClientUtil.java @@ -236,7 +236,7 @@ } SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, key.toCharArray()).build(); SSLConnectionSocketFactory sslsf = - new SSLConnectionSocketFactory(sslcontext, new String[] {"TLSv1"}, null, + new SSLConnectionSocketFactory(sslcontext, null, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/OBSUtil.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/OBSUtil.java new file mode 100644 index 0000000..3d2c61b --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/OBSUtil.java @@ -0,0 +1,43 @@ +package com.supersavedriving.user.modular.system.util.huawei; + +import com.obs.services.ObsClient; +import com.obs.services.model.PutObjectRequest; +import com.obs.services.model.PutObjectResult; + +import java.io.*; + +/** + * 对象存储上传 + * @author zhibing.pu + * @date 2023/3/15 11:32 + */ +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"; + + /** + * 上传文件 + * @param inputStream + * @param objectKey + * @return + */ + public static String putObjectToBucket(InputStream inputStream, String objectKey) { + try { + // 创建ObsClient实例 + ObsClient obsClient = new ObsClient(ak, sk, endPoint); + // 待上传的本地文件路径,需要指定到具体的文件名 + PutObjectRequest request = new PutObjectRequest(); + request.setBucketName(bucketname); + request.setObjectKey(objectKey); + request.setInput(inputStream); + PutObjectResult putObjectResult = obsClient.putObject(request); + return putObjectResult.getObjectUrl(); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SMSUtil.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/SMSUtil.java similarity index 78% rename from driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SMSUtil.java rename to user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/SMSUtil.java index 4ff7a9b..633cc81 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SMSUtil.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/huawei/SMSUtil.java @@ -1,5 +1,4 @@ -package com.supersavedriving.driver.modular.system.util; - +package com.supersavedriving.user.modular.system.util.huawei; import javax.net.ssl.*; import java.io.*; @@ -12,38 +11,53 @@ import java.text.SimpleDateFormat; import java.util.*; +/** + * 短信工具类 + * @author zhibing.pu + * @date 2023/3/15 11:23 + */ public class SMSUtil { - //无需修改,用于格式化鉴权头域,给"X-WSSE"参数赋值 private static final String WSSE_HEADER_FORMAT = "UsernameToken Username=\"%s\",PasswordDigest=\"%s\",Nonce=\"%s\",Created=\"%s\""; //无需修改,用于格式化鉴权头域,给"Authorization"参数赋值 private static final String AUTH_HEADER_VALUE = "WSSE realm=\"SDP\",profile=\"UsernameToken\",type=\"Appkey\""; /** - * 发送短信(华为云) - * @param templateId 模板id - * @param receiver 必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 - * @param templateParas 选填,使用无变量模板时请赋空值 String templateParas = "",双变量模板示例:模板内容为"您有${1}件快递请到${2}领取"时,templateParas可填写为"[\"3\",\"人民公园正门\"]" - * 模板变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569) + * 发送短信 + * @param phones //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 + * @param templateId //模板ID + * @param templateParas //模板变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569)。 * @throws Exception */ - public static void send_huawei_sms(String templateId, String receiver, String templateParas) throws Exception { - + public static void send(String phones, String templateId, String templateParas) throws Exception { //必填,请参考"开发准备"获取如下数据,替换为实际值 - String url = "https://smsapi.cn-south-1.myhuaweicloud.com:443"; //APP接入地址(在控制台"应用管理"页面获取)+接口访问URI - String appKey = "g3DW0G5Fbp3110UiGl5fkWcn799s"; //APP_Key - String appSecret = "LaT1NYvQKNkHO5KikniEueN8iTaz"; //APP_Secret - String sender = "ismsapp0000000103"; //国内短信签名通道号或国际/港澳台短信通道号 + String url = "https://smsapi.cn-south-1.myhuaweicloud.com:443/sms/batchSendSms/v1"; //APP接入地址(在控制台"应用管理"页面获取)+接口访问URI + String appKey = "9I0xrhdGXthf1fv9nn8G3glZ6Zng"; //APP_Key + String appSecret = "U7WxwX2LVk2YD6KAHxjc9tdnXoM9"; //APP_Secret + String sender = "8823031523874"; //国内短信签名通道号或国际/港澳台短信通道号 +// String templateId = "8ff55eac1d0b478ab3c06c3c6a492300"; //模板ID //条件必填,国内短信关注,当templateId指定的模板类型为通用模板时生效且必填,必须是已审核通过的,与模板类型一致的签名名称 //国际/港澳台短信不用关注该参数 - String signature = "IGO"; //签名名称 + String signature = "超省新代驾"; //签名名称 + + //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 +// String receiver = "+86151****6789,+86152****7890"; //短信接收人号码 //选填,短信状态报告接收地址,推荐使用域名,为空或者不填表示不接收状态报告 String statusCallBack = ""; + /** + * 选填,使用无变量模板时请赋空值 String templateParas = ""; + * 单变量模板示例:模板内容为"您的验证码是${1}"时,templateParas可填写为"[\"369751\"]" + * 双变量模板示例:模板内容为"您有${1}件快递请到${2}领取"时,templateParas可填写为"[\"3\",\"人民公园正门\"]" + * 模板中的每个变量都必须赋值,且取值不能为空 + * 查看更多模板和变量规范:产品介绍>模板和变量规范 + */ +// String templateParas = "[\"369751\"]"; //模板变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569)。 + //请求Body,不携带签名名称时,signature请填null - String body = buildRequestBody(sender, receiver, templateId, templateParas, statusCallBack, signature); + String body = buildRequestBody(sender, phones, templateId, templateParas, statusCallBack, signature); if (null == body || body.isEmpty()) { System.out.println("body is null."); return; @@ -62,9 +76,7 @@ HttpsURLConnection connection = null; InputStream is = null; - HostnameVerifier hv = new HostnameVerifier() { - @Override public boolean verify(String hostname, SSLSession session) { return true; diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/OrderPriceWarpper.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/OrderPriceWarpper.java index 554d3e8..cb335b2 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/OrderPriceWarpper.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/OrderPriceWarpper.java @@ -53,6 +53,8 @@ private Double discount; @ApiModelProperty("折扣金额") private Double discountAmount; + @ApiModelProperty("优惠券id") + private Integer couponId; @ApiModelProperty("优惠券金额") private Double discountedPrice; @ApiModelProperty("当前余额") -- Gitblit v1.7.1