feat():增加了支付渠道枚举和支付渠道校验
parent
ab4163d36f
commit
b4181778ae
|
@ -0,0 +1,62 @@
|
|||
package com.muyu.cloud.pay.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 交易订单信息
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName(value = "order_pay_info", autoResultMap = true)
|
||||
public class OrderPayInfo extends BaseEntity {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
/**
|
||||
* 客户名称
|
||||
*/
|
||||
private String appName;
|
||||
/**
|
||||
* 客户编号
|
||||
*/
|
||||
private String appCode;
|
||||
/**
|
||||
* 客户单号
|
||||
*/
|
||||
private String cusOrderNumber;
|
||||
/**
|
||||
* 支付单号
|
||||
*/
|
||||
private String payOrderNumber;
|
||||
/**
|
||||
* 支付金额
|
||||
*/
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* 渠道商类型
|
||||
*/
|
||||
private String channelType;
|
||||
/**
|
||||
* 渠道商编号
|
||||
*/
|
||||
private String channelOrderNumber;
|
||||
/**
|
||||
* 支付单状态
|
||||
*/
|
||||
private String status;
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.muyu.cloud.pay.domain.resp;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 客户支付单简略返回实体
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Tag(name = "客户支付单",description = "客户支付单简略信息")
|
||||
public class CustomerOrderPaySimpleResp {
|
||||
/**
|
||||
* 客户单号
|
||||
*/
|
||||
@Schema(name = "客户单号",type = "string",defaultValue = "I99L77Y52",description = "客户传入的支付单信息")
|
||||
private String cusOrderNumber;
|
||||
/**
|
||||
* 支付金额
|
||||
*/
|
||||
@Schema(name = "支付金额",type = "BigDecimal",defaultValue = "9977.52",description = "客户传入的支付金额")
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* 渠道商类型
|
||||
*/
|
||||
@Schema(name = "支付渠道商",type = "String",defaultValue = "支付宝",description = "用户支付的时候选择的渠道商")
|
||||
private String channelTypeName;
|
||||
}
|
|
@ -10,6 +10,7 @@ import lombok.Data;
|
|||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 客户结合返回值
|
||||
|
@ -47,6 +48,12 @@ public class CustomerResp {
|
|||
private Date createTime;
|
||||
|
||||
|
||||
/**
|
||||
* 客户最近5条支付单
|
||||
*/
|
||||
private List<CustomerOrderPaySimpleResp> orderPaySimpleRespList;
|
||||
|
||||
|
||||
/**
|
||||
* 数据库对象构建为返回结果对象
|
||||
* @param orderPayCustomer 数据库对象
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package com.muyu.cloud.pay.domain.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 支付返回结果
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrderPayResp {
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.muyu.cloud.pay.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.muyu.cloud.pay.domain.OrderPayInfo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 订单支付持久层
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderPayMapper extends BaseMapper<OrderPayInfo> {
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package com.muyu.cloud.pay.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.cloud.pay.domain.OrderPayInfo;
|
||||
|
||||
/**
|
||||
* 订单支付业务层
|
||||
*/
|
||||
public interface OrderPayService extends IService<OrderPayInfo> {
|
||||
}
|
|
@ -3,19 +3,28 @@ package com.muyu.cloud.pay.service.impl;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.cloud.pay.domain.OrderPayCustomer;
|
||||
import com.muyu.cloud.pay.domain.OrderPayInfo;
|
||||
import com.muyu.cloud.pay.domain.req.CustomerListReq;
|
||||
import com.muyu.cloud.pay.domain.resp.CustomerOrderPaySimpleResp;
|
||||
import com.muyu.cloud.pay.domain.resp.CustomerResp;
|
||||
import com.muyu.cloud.pay.mapper.OrderPayCustomerMapper;
|
||||
import com.muyu.cloud.pay.service.OrderPayCustomerService;
|
||||
import com.muyu.cloud.pay.service.OrderPayService;
|
||||
import com.muyu.common.core.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class OrderPayCustomerServiceImpl extends ServiceImpl<OrderPayCustomerMapper, OrderPayCustomer> implements OrderPayCustomerService {
|
||||
|
||||
@Resource(type = OrderPayServiceImpl.class)
|
||||
private OrderPayService orderPayService;
|
||||
|
||||
@Override
|
||||
public List<CustomerResp> selectList(CustomerListReq customerListReq) {
|
||||
LambdaQueryWrapper<OrderPayCustomer> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
@ -32,8 +41,24 @@ public class OrderPayCustomerServiceImpl extends ServiceImpl<OrderPayCustomerMap
|
|||
OrderPayCustomer::getStatus, customerListReq.getStatus() //是否开启
|
||||
);
|
||||
List<OrderPayCustomer> orderPayCustomerList = this.list(queryWrapper);
|
||||
return orderPayCustomerList.stream()
|
||||
List<CustomerResp> customerRespList = orderPayCustomerList.stream()
|
||||
.map(CustomerResp::customerBuild)
|
||||
.toList();
|
||||
|
||||
for (CustomerResp customerResp : customerRespList) {
|
||||
LambdaQueryWrapper<OrderPayInfo> orderPayInfoQueryWrapper = new LambdaQueryWrapper<>();
|
||||
orderPayInfoQueryWrapper.eq(OrderPayInfo::getAppCode, customerResp.getAppCode());
|
||||
orderPayInfoQueryWrapper.orderBy(true, false, OrderPayInfo::getCreateTime);
|
||||
orderPayInfoQueryWrapper.last("limit 5");
|
||||
List<OrderPayInfo> orderPayInfoList = orderPayService.list(orderPayInfoQueryWrapper);
|
||||
ArrayList<CustomerOrderPaySimpleResp> customerOrderPaySimpleList = new ArrayList<>();
|
||||
for (OrderPayInfo orderPayInfo : orderPayInfoList) {
|
||||
CustomerOrderPaySimpleResp customerOrderPaySimpleResp = new CustomerOrderPaySimpleResp();
|
||||
customerOrderPaySimpleResp.setCusOrderNumber(orderPayInfo.getCusOrderNumber());
|
||||
customerOrderPaySimpleResp.setPrice(orderPayInfo.getPrice());
|
||||
customerOrderPaySimpleResp.setChannelTypeName(orderPayInfo.getChannelType());
|
||||
}
|
||||
}
|
||||
return customerRespList;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package com.muyu.cloud.pay.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.cloud.pay.domain.OrderPayInfo;
|
||||
import com.muyu.cloud.pay.mapper.OrderPayMapper;
|
||||
import com.muyu.cloud.pay.service.OrderPayService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 订单支付业务实现层
|
||||
*/
|
||||
@Service
|
||||
public class OrderPayServiceImpl extends ServiceImpl<OrderPayMapper, OrderPayInfo> implements OrderPayService {
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
CREATE TABLE order_pay_info(
|
||||
`id` INT AUTO_INCREMENT COMMENT '主键' ,
|
||||
`app_name` VARCHAR(16) NOT NULL COMMENT '客户名称' ,
|
||||
`app_code` VARCHAR(16) COMMENT '客户单号' ,
|
||||
`cus_order_number` VARCHAR(32) COMMENT '客户单号' ,
|
||||
`pay_order_number` VARCHAR(32) COMMENT '支付单号' ,
|
||||
`price` DECIMAL(24,2) COMMENT '支付金额' ,
|
||||
`channel_type` VARCHAR(32) COMMENT '渠道商类型' ,
|
||||
`channel_order_number` VARCHAR(64) COMMENT '渠道商单号' ,
|
||||
`status` VARCHAR(32) COMMENT '支付单状态;0.新建1.待支付2.支付中3.支付成功4.支付失败5.支付超时' ,
|
||||
`create_by` bigint COMMENT '创建人' ,
|
||||
`create_time` DATETIME COMMENT '创建时间' ,
|
||||
`update_by` bigint COMMENT '更新人' ,
|
||||
`update_time` DATETIME COMMENT '更新时间' ,
|
||||
`remark` VARCHAR(64) COMMENT '备注' ,
|
||||
PRIMARY KEY (id)
|
||||
) COMMENT = '订单支付信息';
|
||||
|
||||
|
||||
CREATE TABLE order_pay_customer(
|
||||
`id` INT AUTO_INCREMENT COMMENT '主键' ,
|
||||
`app_name` VARCHAR(16) COMMENT '服务/客户名称' ,
|
||||
`app_code` VARCHAR(16) NOT NULL COMMENT '服务/客户编码' ,
|
||||
`app_desc` TEXT COMMENT '客户描述' ,
|
||||
`status` VARCHAR(32) COMMENT '是否开启' ,
|
||||
`create_by` bigint COMMENT '创建人' ,
|
||||
`create_time` DATETIME COMMENT '创建时间' ,
|
||||
`update_by` bigint COMMENT '更新人' ,
|
||||
`update_time` DATETIME COMMENT '更新时间' ,
|
||||
`remark` VARCHAR(64) COMMENT '备注' ,
|
||||
PRIMARY KEY (id)
|
||||
) COMMENT = '支付单客户';
|
||||
|
||||
|
||||
CREATE TABLE order_pay_refund(
|
||||
`id` INT AUTO_INCREMENT COMMENT '主键' ,
|
||||
`cus_order_number` VARCHAR(32) NOT NULL COMMENT '客户退单号' ,
|
||||
`pay_order_number` VARCHAR(32) NOT NULL COMMENT '支付退单号' ,
|
||||
`channer_order_number` VARCHAR(64) NOT NULL COMMENT '渠道商退单号' ,
|
||||
`price` DECIMAL(24,6) NOT NULL COMMENT '退款金额' ,
|
||||
`pay_info_number` VARCHAR(32) COMMENT '支付单号' ,
|
||||
`to_account_time` DATETIME COMMENT '到账时间' ,
|
||||
`status` VARCHAR(32) COMMENT '退单状态' ,
|
||||
`create_by` bigint COMMENT '创建人' ,
|
||||
`create_time` DATETIME COMMENT '创建时间' ,
|
||||
`update_by` bigint COMMENT '更新人' ,
|
||||
`update_time` DATETIME COMMENT '更新时间' ,
|
||||
`remark` VARCHAR(64) COMMENT '备注' ,
|
||||
PRIMARY KEY (id)
|
||||
) COMMENT = '订单支付退款表';
|
||||
|
Loading…
Reference in New Issue