From 5cb71e0889df4382b30157896c8ae39d0f199017 Mon Sep 17 00:00:00 2001 From: khy <2908249413@qq.com> Date: Mon, 21 Oct 2024 10:59:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/vo/PaidMemberOrderPageReqVO.java | 2 +- .../admin/order/vo/PaidMemberOrderRespVO.java | 2 +- .../order/vo/PaidMemberOrderSaveReqVO.java | 2 +- .../convert/order/PaidMemberOrderConvert.java | 2 +- .../dataobject/order/PaidMemberOrderDO.java | 2 +- .../PaidMemberCardTypeService.java | 6 +++ .../PaidMemberCardTypeServiceImpl.java | 7 +++ .../service/order/PaidMemberOrderService.java | 7 +++ .../order/PaidMemberOrderServiceImpl.java | 20 ++++++++ .../member/AppPaidMembeOrderController.java | 49 +++++++------------ 10 files changed, 64 insertions(+), 35 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderPageReqVO.java index 9990879..7d07a9b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderPageReqVO.java @@ -32,7 +32,7 @@ public class PaidMemberOrderPageReqVO extends PageParam { private Integer type; @Schema(description = "期限天数") - private Integer deadlineDay; + private String deadlineDay; @Schema(description = "会员卡原价", example = "16244") private BigDecimal originalPrice; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderRespVO.java index 0d2358e..6e821ed 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderRespVO.java @@ -39,7 +39,7 @@ public class PaidMemberOrderRespVO { @Schema(description = "期限天数", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("期限天数") - private Integer deadlineDay; + private String deadlineDay; @Schema(description = "会员卡原价", requiredMode = Schema.RequiredMode.REQUIRED, example = "16244") @ExcelProperty("会员卡原价") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderSaveReqVO.java index f8a1fb8..8938d92 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderSaveReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/order/vo/PaidMemberOrderSaveReqVO.java @@ -35,7 +35,7 @@ public class PaidMemberOrderSaveReqVO { @Schema(description = "期限天数", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "期限天数不能为空") - private Integer deadlineDay; + private String deadlineDay; @Schema(description = "会员卡原价", requiredMode = Schema.RequiredMode.REQUIRED, example = "16244") @NotNull(message = "会员卡原价不能为空") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/order/PaidMemberOrderConvert.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/order/PaidMemberOrderConvert.java index 5139eae..62cf15b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/order/PaidMemberOrderConvert.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/order/PaidMemberOrderConvert.java @@ -13,6 +13,6 @@ public interface PaidMemberOrderConvert { PaidMemberOrderConvert INSTANCE = Mappers.getMapper(PaidMemberOrderConvert.class); PaidMemberOrderDO convert(Long uid, String cardName, Integer type, - String payChannel, BigDecimal price, LocalDateTime payTime); + String payChannel, BigDecimal price, LocalDateTime payTime,String deadlineDay,LocalDateTime cardExpirationTime); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/order/PaidMemberOrderDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/order/PaidMemberOrderDO.java index 2652ae1..7d6005f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/order/PaidMemberOrderDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/order/PaidMemberOrderDO.java @@ -56,7 +56,7 @@ public class PaidMemberOrderDO extends TenantBaseDO { /** * 期限天数 */ - private Integer deadlineDay; + private String deadlineDay; /** * 会员卡原价 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeService.java index 110d55f..2a08986 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeService.java @@ -68,4 +68,10 @@ public interface PaidMemberCardTypeService { * @return */ PaidMemberCardTypeDO selectMemberCardType(Integer type, BigDecimal price); + + + /** + * 根据会员卡名查询 + */ + PaidMemberCardTypeDO selectByName(String cardName); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeServiceImpl.java index 1a0c78d..e724a06 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/membercardtype/PaidMemberCardTypeServiceImpl.java @@ -112,5 +112,12 @@ public class PaidMemberCardTypeServiceImpl implements PaidMemberCardTypeService return paidMemberCardTypeDO; } + @Override + public PaidMemberCardTypeDO selectByName(String cardName) { + PaidMemberCardTypeDO paidMemberCardTypeDO = cardMapper.selectOne(new LambdaQueryWrapperX() + .eqIfPresent(PaidMemberCardTypeDO::getName,cardName)); + return paidMemberCardTypeDO; + } + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderService.java index cd09e76..e3f0dce 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.service.order; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import javax.validation.*; import cn.iocoder.yudao.module.member.controller.admin.order.vo.*; @@ -77,4 +78,10 @@ public interface PaidMemberOrderService { */ void updateOrder(@Valid PaidMemberOrderDO updateReqVO); + /** + * 根据订单会员类型 + * 获得到期时间 + */ + LocalDateTime getDeadLineDay(String cardName); + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderServiceImpl.java index 9d1ad29..679e66b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/PaidMemberOrderServiceImpl.java @@ -10,6 +10,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; import java.util.*; import cn.iocoder.yudao.module.member.controller.admin.order.vo.*; import cn.iocoder.yudao.module.member.dal.dataobject.order.PaidMemberOrderDO; @@ -115,4 +117,22 @@ public class PaidMemberOrderServiceImpl implements PaidMemberOrderService { paidMemberOrderMapper.updateById(updateReqVO); } + @Override + public LocalDateTime getDeadLineDay(String cardName) { + LocalDateTime now = LocalDateTime.now(); + LocalDateTime deadlineDay; + if (cardName.equals("试用")){ + deadlineDay = now.plus(1, ChronoUnit.DAYS); + } else if (cardName.equals("月卡")) { + deadlineDay = now.plus(1,ChronoUnit.MONTHS); + } else if (cardName.equals("季卡")) { + deadlineDay = now.plus(3,ChronoUnit.MONTHS); + } else if (cardName.equals("年卡")) { + deadlineDay = now.plus(1,ChronoUnit.YEARS); + } else { + deadlineDay = null; + } + return deadlineDay; + } + } \ No newline at end of file diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/member/AppPaidMembeOrderController.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/member/AppPaidMembeOrderController.java index 81e2bf7..e9f2f69 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/member/AppPaidMembeOrderController.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/member/AppPaidMembeOrderController.java @@ -10,14 +10,13 @@ import cn.iocoder.yudao.module.member.controller.admin.user.vo.PaidMemberUserSav import cn.iocoder.yudao.module.member.convert.order.PaidMemberOrderConvert; import cn.iocoder.yudao.module.member.dal.dataobject.order.PaidMemberOrderDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.service.membercardtype.PaidMemberCardTypeService; import cn.iocoder.yudao.module.member.service.order.PaidMemberOrderService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.member.service.user.PaidMemberUserService; import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO; import cn.iocoder.yudao.module.pay.controller.app.member.vo.AppPaidMemberOrderReqVO; import cn.iocoder.yudao.module.pay.controller.app.member.vo.AppPaidMemberOrderRespVO; -import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO; -import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionRespVO; import cn.iocoder.yudao.module.pay.convert.member.PayMemberOrderConvert; import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO; import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO; @@ -65,7 +64,8 @@ public class AppPaidMembeOrderController { @Resource private PayOrderService payOrderService01; - + @Resource + private PaidMemberCardTypeService cardService; @@ -77,11 +77,11 @@ public class AppPaidMembeOrderController { // 判断当前用户是否选择过试用会员 if(memberUserDO.getActivate() == 0 && memberUserDO != null){ memberUserDO.setActivate(CommonStatusEnum.DISABLE.getStatus()); + } + // 若不是会员则往会员表插入数据 + if(memberUserService1.getMemberUser(memberUserDO.getId()) == null){ BeanUtils.copyProperties(memberUserDO,paidMemberUserSaveReqVO); - // 若不是会员则往会员表插入数据 - if(memberUserService1.getMemberUser(memberUserDO.getId()) == null){ - memberUserService1.createMemberUser(paidMemberUserSaveReqVO); - } + memberUserService1.createMemberUser(paidMemberUserSaveReqVO); } //判断会员类型 if(reqVO.getCardName().equals("试用")){ @@ -91,14 +91,22 @@ public class AppPaidMembeOrderController { }else { reqVO.setType(1); } + + //获得对应会员期限天数 + String deadlineDay = cardService.selectByName(reqVO.getCardName()).getVid(); + LocalDateTime payTime = LocalDateTime.now(); + LocalDateTime cardExpirationTime = paidMemberOrderService1.getDeadLineDay(reqVO.getCardName()); + + //获得支付金额 BigDecimal payPrice = paidMemberOrderService1.createMemberRecord(getLoginUserId(), getLoginUserType(),getClientIP(),reqVO.getPrice(),reqVO.getType()); BigDecimal p = payPrice.multiply(new BigDecimal("100")); Integer payPriceInt = p.intValue(); - PayWalletDO walletDO = memberWalletService.getWalletByUserIdAndType(getLoginUserId(),getLoginUserType()); - LocalDateTime payTime = LocalDateTime.now(); +// PayWalletDO walletDO = memberWalletService.getWalletByUserIdAndType(getLoginUserId(),getLoginUserType()); + //订单对象赋值 PaidMemberOrderDO paidMemberOrderDO = PaidMemberOrderConvert.INSTANCE.convert(getLoginUserId(), - reqVO.getCardName(),reqVO.getType(),reqVO.getPayChannel(),reqVO.getPrice(),payTime); + reqVO.getCardName(),reqVO.getType(),reqVO.getPayChannel(),reqVO.getPrice(),payTime,deadlineDay,cardExpirationTime); + paidMemberOrderService1.createOrder(paidMemberOrderDO); Long payOrderId = payOrderService01.createOrder(new PayOrderCreateReqDTO() .setAppId(1L).setUserIp(getClientIP()) .setMerchantOrderId(""+paidMemberOrderDO.getId()) // 业务的订单编号 @@ -107,26 +115,7 @@ public class AppPaidMembeOrderController { .setExpireTime(addTime(Duration.ofHours(2L)))); // TODO @芋艿:支付超时时间 paidMemberOrderDO.setPayOrderId(payOrderId); userService1.updateUserDo(memberUserDO); - paidMemberOrderService1.createOrder(paidMemberOrderDO); + paidMemberOrderService1.updateOrder(paidMemberOrderDO); return success(PayMemberOrderConvert.INSTANCE.convert(paidMemberOrderDO)); - -// BigDecimal payPrice = paidMemberOrderService1.createMemberRecord(getLoginUserId(), -// getLoginUserType(),getClientIP(),reqVO.getPrice(),reqVO.getType()); -// BigDecimal p = payPrice.multiply(new BigDecimal("100")); -// Integer payPriceInt = p.intValue(); -// PayWalletDO walletDO = memberWalletService.getWalletByUserIdAndType(getLoginUserId(),getLoginUserType()); -// LocalDateTime payTime = LocalDateTime.now(); -// PaidMemberOrderDO paidMemberOrderDO = PaidMemberOrderConvert.INSTANCE.convert(getLoginUserId(), -// reqVO.getCardName(),reqVO.getType(),reqVO.getPayChannel(),reqVO.getPrice(),payTime); -// -// Long payOrderId = payOrderService01.createOrder(new PayOrderCreateReqDTO() -// .setAppId(1L).setUserIp(getClientIP()) -// .setMerchantOrderId(""+paidMemberOrderDO.getId()) // 业务的订单编号 -// .setSubject("会员支付").setBody("") -// .setPrice(payPriceInt) -// .setExpireTime(addTime(Duration.ofHours(2L)))); // TODO @芋艿:支付超时时间 -// paidMemberOrderDO.setPayOrderId(payOrderId); -// paidMemberOrderService1.createOrder(paidMemberOrderDO); -// return success(PayMemberOrderConvert.INSTANCE.convert(paidMemberOrderDO)); } }