From 61382e277c99aea5ba60219dee8bc67384438364 Mon Sep 17 00:00:00 2001 From: taozi <9108791@qq.com> Date: Sun, 2 Apr 2023 22:50:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E8=A7=92=E8=89=B2=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=81=E5=94=AE=E5=90=8E=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E3=80=81=E7=A7=AF=E5=88=86=E5=A4=84=E7=90=86?= =?UTF-8?q?=E3=80=81=E5=BE=AE=E4=BF=A1=E9=80=80=E6=AC=BE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=A4=84=E7=90=86=E3=80=81=E5=8D=87=E7=BA=A7springboot2.7.10?= =?UTF-8?q?=E3=80=81druid1.2.16=E3=80=81mybatis-plus3.5.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 +++--- .../service/impl/SysUserServiceImpl.java | 10 ++++--- yshop-mproot/pom.xml | 2 +- .../sales/StoreAfterSalesController.java | 27 ++++++++++++++++++- .../modules/mp/service/WeixinPayService.java | 2 +- 5 files changed, 38 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index af847877..39889da9 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.6 + 2.7.10 @@ -38,7 +38,7 @@ 3.3.0 3.0.0 1.2.83 - 1.2.12 + 1.2.16 5.5.7 4.1.2 2.5.0 @@ -154,8 +154,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j runtime diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/SysUserServiceImpl.java b/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/SysUserServiceImpl.java index f96b4868..4c5e4b14 100644 --- a/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/SysUserServiceImpl.java +++ b/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/SysUserServiceImpl.java @@ -276,14 +276,16 @@ public class SysUserServiceImpl extends BaseServiceImpl imp user.setSex(resources.getSex()); boolean result = this.saveOrUpdate(user); usersRolesService.lambdaUpdate().eq(UsersRoles ::getUserId,resources.getId()).remove(); - UsersRoles usersRoles = new UsersRoles(); - usersRoles.setUserId(resources.getId()); + List usersRolesList = new ArrayList<>(); Set set = resources.getRoles(); - for (Role roleIds : set ) { + for (Role roleIds : set) { + UsersRoles usersRoles = new UsersRoles(); + usersRoles.setUserId(resources.getId()); usersRoles.setRoleId(roleIds.getId()); + usersRolesList.add(usersRoles); } if (result) { - usersRolesService.save(usersRoles); + usersRolesService.saveBatch(usersRolesList); } // 如果用户的角色改变了,需要手动清理下缓存 diff --git a/yshop-mproot/pom.xml b/yshop-mproot/pom.xml index e82b0d60..d1ccaf98 100644 --- a/yshop-mproot/pom.xml +++ b/yshop-mproot/pom.xml @@ -13,7 +13,7 @@ 0.10.6 - 3.5.1 + 3.5.3 diff --git a/yshop-shop/src/main/java/co/yixiang/modules/sales/StoreAfterSalesController.java b/yshop-shop/src/main/java/co/yixiang/modules/sales/StoreAfterSalesController.java index 9a01660e..cab20f05 100644 --- a/yshop-shop/src/main/java/co/yixiang/modules/sales/StoreAfterSalesController.java +++ b/yshop-shop/src/main/java/co/yixiang/modules/sales/StoreAfterSalesController.java @@ -1,13 +1,21 @@ package co.yixiang.modules.sales; +import cn.hutool.core.util.ObjectUtil; +import co.yixiang.api.YshopException; import co.yixiang.dozer.service.IGenerator; +import co.yixiang.enums.OrderInfoEnum; +import co.yixiang.enums.PayTypeEnum; import co.yixiang.modules.logging.aop.log.Log; import co.yixiang.modules.mp.service.WeixinPayService; +import co.yixiang.modules.order.service.YxStoreOrderService; +import co.yixiang.modules.order.vo.YxStoreOrderQueryVo; import co.yixiang.modules.sales.domain.StoreAfterSales; import co.yixiang.modules.sales.param.SalesCheckDto; import co.yixiang.modules.sales.param.YxStoreAfterSalesDto; import co.yixiang.modules.sales.service.StoreAfterSalesService; import co.yixiang.modules.sales.param.YxStoreAfterSalesQueryCriteria; +import co.yixiang.modules.user.service.YxUserService; +import co.yixiang.modules.user.vo.YxUserQueryVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -38,7 +46,9 @@ public class StoreAfterSalesController { private final StoreAfterSalesService storeAfterSalesService; private final WeixinPayService weixinPayService; + private final YxStoreOrderService storeOrderService; private final IGenerator generator; + private final YxUserService userService; /** * 审核 @@ -62,7 +72,22 @@ public class StoreAfterSalesController { StoreAfterSales sales = storeAfterSalesService.makeMoney(salesId, orderCode); BigDecimal bigDecimal = new BigDecimal("100"); int payPrice = bigDecimal.multiply(sales.getRefundAmount()).intValue(); - weixinPayService.refundOrder(orderCode, payPrice); + YxStoreOrderQueryVo orderInfo = storeOrderService.getOrderInfo(orderCode, null); + if (PayTypeEnum.WEIXIN.getValue().equals(orderInfo.getPayType())) { + if (ObjectUtil.isNull(orderInfo)) { + throw new YshopException("订单不存在"); + } + YxUserQueryVo userQueryVo = userService.getYxUserById(orderInfo.getUid()); + if (ObjectUtil.isNull(userQueryVo)) { + throw new YshopException("用户不存在"); + } + if (OrderInfoEnum.REFUND_STATUS_2.getValue().equals(orderInfo.getRefundStatus())) { + throw new YshopException("订单已经退款了哦!"); + } + weixinPayService.refundOrder(orderCode, payPrice); + } else { + storeOrderService.orderRefund(orderCode, sales.getRefundAmount(), 1); + } return new ResponseEntity<>(HttpStatus.OK); } diff --git a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinPayService.java b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinPayService.java index 309c2bfe..fdc66285 100644 --- a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinPayService.java +++ b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinPayService.java @@ -171,7 +171,7 @@ public class WeixinPayService { if(orderInfo.getExtendOrderId()!=null){ orderId=orderInfo.getExtendOrderId(); } - WxPayService wxPayService = WxPayConfiguration.getPayService(PayMethodEnum.WECHAT); + WxPayService wxPayService = WxPayConfiguration.getPayService(PayMethodEnum.toType(orderInfo.getPayType())); WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest(); BigDecimal bigDecimal = new BigDecimal("100"); int totalFee = bigDecimal.multiply(orderInfo.getPayPrice()).intValue();