会员支付
This commit is contained in:
parent
11dd5f7f6f
commit
5cb71e0889
@ -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;
|
||||
|
@ -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("会员卡原价")
|
||||
|
@ -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 = "会员卡原价不能为空")
|
||||
|
@ -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);
|
||||
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ public class PaidMemberOrderDO extends TenantBaseDO {
|
||||
/**
|
||||
* 期限天数
|
||||
*/
|
||||
private Integer deadlineDay;
|
||||
private String deadlineDay;
|
||||
/**
|
||||
* 会员卡原价
|
||||
*/
|
||||
|
@ -68,4 +68,10 @@ public interface PaidMemberCardTypeService {
|
||||
* @return
|
||||
*/
|
||||
PaidMemberCardTypeDO selectMemberCardType(Integer type, BigDecimal price);
|
||||
|
||||
|
||||
/**
|
||||
* 根据会员卡名查询
|
||||
*/
|
||||
PaidMemberCardTypeDO selectByName(String cardName);
|
||||
}
|
@ -112,5 +112,12 @@ public class PaidMemberCardTypeServiceImpl implements PaidMemberCardTypeService
|
||||
return paidMemberCardTypeDO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PaidMemberCardTypeDO selectByName(String cardName) {
|
||||
PaidMemberCardTypeDO paidMemberCardTypeDO = cardMapper.selectOne(new LambdaQueryWrapperX<PaidMemberCardTypeDO>()
|
||||
.eqIfPresent(PaidMemberCardTypeDO::getName,cardName));
|
||||
return paidMemberCardTypeDO;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -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);
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user