新增交易订单
This commit is contained in:
parent
6beabe3478
commit
f8de72bc6a
@ -109,4 +109,6 @@ public class PaidMemberUserPageReqVO extends PageParam {
|
|||||||
@Schema(description = "会员类型")
|
@Schema(description = "会员类型")
|
||||||
private String payMemberType;
|
private String payMemberType;
|
||||||
|
|
||||||
|
@Schema(description = "商户订单编号")
|
||||||
|
private String merchantOrderId;
|
||||||
}
|
}
|
@ -127,4 +127,7 @@ public class PaidMemberUserRespVO {
|
|||||||
@Schema(description = "会员类型")
|
@Schema(description = "会员类型")
|
||||||
private String payMemberType;
|
private String payMemberType;
|
||||||
|
|
||||||
|
@Schema(description = "商户订单编号")
|
||||||
|
private String merchantOrderId;
|
||||||
|
|
||||||
}
|
}
|
@ -106,4 +106,7 @@ public class PaidMemberUserSaveReqVO {
|
|||||||
|
|
||||||
@Schema(description = "会员类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "会员类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private String payMemberType;
|
private String payMemberType;
|
||||||
|
|
||||||
|
@Schema(description = "商户订单编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private String merchantOrderId;
|
||||||
}
|
}
|
@ -156,5 +156,12 @@ public class PaidMemberUserDO extends TenantBaseDO {
|
|||||||
*/
|
*/
|
||||||
private String payMemberType;
|
private String payMemberType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商户订单编号
|
||||||
|
*
|
||||||
|
* 例如说,内部系统 A 的订单号,需要保证每个 PayAppDO 唯一
|
||||||
|
*/
|
||||||
|
private String merchantOrderId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -92,4 +92,5 @@ public interface PaidMemberUserService {
|
|||||||
*/
|
*/
|
||||||
public Long buildTradeOrder(PaidMemberUserDO updateReqVO);
|
public Long buildTradeOrder(PaidMemberUserDO updateReqVO);
|
||||||
|
|
||||||
|
void updateTradeOrderId(Long merchantOrderId, Long payOrderId);
|
||||||
}
|
}
|
@ -1,9 +1,12 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.user;
|
package cn.iocoder.yudao.module.member.service.user;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.api.address.MemberAddressApi;
|
||||||
|
import cn.iocoder.yudao.module.member.api.address.dto.MemberAddressRespDTO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
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.membercardtype.PaidMemberCardTypeService;
|
||||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
|
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
|
||||||
@ -58,6 +61,9 @@ public class PaidMemberUserServiceImpl implements PaidMemberUserService {
|
|||||||
@Resource
|
@Resource
|
||||||
private TradeOrderMapper tradeOrderMapper;
|
private TradeOrderMapper tradeOrderMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MemberAddressApi addressApi;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createMemberUser(PaidMemberUserSaveReqVO createReqVO) {
|
public Long createMemberUser(PaidMemberUserSaveReqVO createReqVO) {
|
||||||
@ -212,19 +218,38 @@ public class PaidMemberUserServiceImpl implements PaidMemberUserService {
|
|||||||
@Override
|
@Override
|
||||||
public Long buildTradeOrder(PaidMemberUserDO updateReqVO) {
|
public Long buildTradeOrder(PaidMemberUserDO updateReqVO) {
|
||||||
TradeOrderDO orderDO = new TradeOrderDO();
|
TradeOrderDO orderDO = new TradeOrderDO();
|
||||||
|
orderDO.setUserId(updateReqVO.getUid());
|
||||||
orderDO.setType(TradeOrderTypeEnum.NORMAL.getType());
|
orderDO.setType(TradeOrderTypeEnum.NORMAL.getType());
|
||||||
orderDO.setNo(updateReqVO.getOrderNo());
|
orderDO.setNo(updateReqVO.getOrderNo());
|
||||||
orderDO.setStatus(TradeOrderStatusEnum.UNPAID.getStatus());
|
orderDO.setStatus(TradeOrderStatusEnum.UNPAID.getStatus());
|
||||||
orderDO.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
|
orderDO.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
|
||||||
orderDO.setProductCount(1);
|
orderDO.setProductCount(1);
|
||||||
orderDO.setUserIp(getClientIP()).setTerminal(getTerminal());
|
orderDO.setUserIp(getClientIP()).setTerminal(getTerminal());
|
||||||
orderDO.setPayOrderId(updateReqVO.getPayOrderId());
|
|
||||||
orderDO.setPayChannelCode(updateReqVO.getPayChannel());
|
|
||||||
orderDO.setDeliveryType(DeliveryTypeEnum.EXPRESS.getType());
|
orderDO.setDeliveryType(DeliveryTypeEnum.EXPRESS.getType());
|
||||||
tradeOrderMapper.insert(orderDO);
|
//获取用户地址
|
||||||
// orderDO = tradeOrderMapper.s
|
// MemberAddressRespDTO address = addressApi.getDefaultAddress(updateReqVO.getUid());
|
||||||
|
// orderDO.setReceiverName(address.getName()).setReceiverMobile(address.getMobile())
|
||||||
|
// .setReceiverAreaId(address.getAreaId()).setReceiverDetailAddress(address.getDetailAddress());
|
||||||
|
//插入新增交易订单
|
||||||
|
tradeOrderMapper.insert(orderDO);
|
||||||
|
//查询最新的交易订单数据
|
||||||
|
List<TradeOrderDO> list = tradeOrderMapper.selectList(new LambdaQueryWrapperX<TradeOrderDO>()
|
||||||
|
.eqIfPresent(TradeOrderDO::getUserId,updateReqVO.getUid())
|
||||||
|
.orderByDesc(TradeOrderDO::getId));
|
||||||
|
if(list.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
orderDO = CollUtil.getFirst(list);
|
||||||
return orderDO.getId();
|
return orderDO.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateTradeOrderId(Long merchantOrderId, Long payOrderId) {
|
||||||
|
TradeOrderDO orderDO = tradeOrderMapper.selectOne(new LambdaQueryWrapperX<TradeOrderDO>()
|
||||||
|
.eqIfPresent(TradeOrderDO::getId,merchantOrderId));
|
||||||
|
orderDO.setPayOrderId(payOrderId);
|
||||||
|
tradeOrderMapper.updateById(orderDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -95,6 +95,7 @@ public class AppPaidMembeController {
|
|||||||
//初始化支付金额,单位为分
|
//初始化支付金额,单位为分
|
||||||
int price = 0;
|
int price = 0;
|
||||||
Long payOrderId = null;
|
Long payOrderId = null;
|
||||||
|
Long merchantOrderId = null;
|
||||||
if(reqVO.getCardName().equals("试用")){
|
if(reqVO.getCardName().equals("试用")){
|
||||||
BeanUtils.copyProperties(memberUserDO,paidMemberUserSaveReqVO);
|
BeanUtils.copyProperties(memberUserDO,paidMemberUserSaveReqVO);
|
||||||
paidMemberUserSaveReqVO.setPayMemberType(reqVO.getCardName());
|
paidMemberUserSaveReqVO.setPayMemberType(reqVO.getCardName());
|
||||||
@ -139,14 +140,19 @@ public class AppPaidMembeController {
|
|||||||
Long id = paidMemberUserService.createMemberUser(paidMemberUserSaveReqVO);
|
Long id = paidMemberUserService.createMemberUser(paidMemberUserSaveReqVO);
|
||||||
//查询新增的会员订单记录
|
//查询新增的会员订单记录
|
||||||
paidMemberUserDO = paidMemberUserService.getMemberUser(id);
|
paidMemberUserDO = paidMemberUserService.getMemberUser(id);
|
||||||
|
//创建交易订单号
|
||||||
|
merchantOrderId = paidMemberUserService.buildTradeOrder(paidMemberUserDO);
|
||||||
|
paidMemberUserDO.setMerchantOrderId(String.valueOf(merchantOrderId));
|
||||||
//创建支付订单号
|
//创建支付订单号
|
||||||
payOrderId = payOrderService.createOrder(new PayOrderCreateReqDTO()
|
payOrderId = payOrderService.createOrder(new PayOrderCreateReqDTO()
|
||||||
.setAppId(1L).setUserIp(getClientIP())
|
.setAppId(1L).setUserIp(getClientIP())
|
||||||
.setMerchantOrderId(""+paidMemberUserDO.getId())
|
.setMerchantOrderId(""+paidMemberUserDO.getMerchantOrderId())
|
||||||
.setSubject(PAID_MEMBER_USER_SUBJECT).setBody("")
|
.setSubject(PAID_MEMBER_USER_SUBJECT).setBody("")
|
||||||
.setPrice(paidMemberUserDO.getPrice())
|
.setPrice(paidMemberUserDO.getPrice())
|
||||||
.setExpireTime(addTime(Duration.ofHours(2L)))); // TODO @芋艿:支付超时时间
|
.setExpireTime(addTime(Duration.ofHours(2L)))); // TODO @芋艿:支付超时时间
|
||||||
paidMemberUserDO.setPayOrderId(payOrderId);
|
paidMemberUserDO.setPayOrderId(payOrderId);
|
||||||
|
//将支付订单号更新到交易订单中
|
||||||
|
paidMemberUserService.updateTradeOrderId(merchantOrderId,payOrderId);
|
||||||
//跟新支付订单号进付费会员表里
|
//跟新支付订单号进付费会员表里
|
||||||
paidMemberUserService.update(paidMemberUserDO);
|
paidMemberUserService.update(paidMemberUserDO);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user