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();