20260328:作者信息改为Sumuxi
This commit is contained in:
parent
ef7158563e
commit
775fa83e25
@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
/**
|
/**
|
||||||
* 拓展多租户的 BaseDO 基类
|
* 拓展多租户的 BaseDO 基类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import java.time.Duration;
|
|||||||
/**
|
/**
|
||||||
* Redis Key 定义类
|
* Redis Key 定义类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class RedisKeyDefine {
|
public class RedisKeyDefine {
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
* 物模型数据等级枚举
|
* 物模型数据等级枚举
|
||||||
* 绿色=正常,黄色=告警,红色=警报
|
* 绿色=正常,黄色=告警,红色=警报
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public enum DataLevelEnum {
|
public enum DataLevelEnum {
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import com.fastbee.common.exception.ErrorCode;
|
|||||||
* 虽然说,HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的
|
* 虽然说,HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的
|
||||||
* 比较特殊的是,因为之前一直使用 0 作为成功,就不使用 200 啦。
|
* 比较特殊的是,因为之前一直使用 0 作为成功,就不使用 200 啦。
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface GlobalErrorCodeConstants {
|
public interface GlobalErrorCodeConstants {
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import java.util.concurrent.ThreadLocalRandom;
|
|||||||
* 日志追踪ID工具类
|
* 日志追踪ID工具类
|
||||||
* 统一生成TraceId的逻辑,使用IdWorker和ThreadLocalRandom
|
* 统一生成TraceId的逻辑,使用IdWorker和ThreadLocalRandom
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public class TraceIdUtils {
|
public class TraceIdUtils {
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import java.util.regex.Pattern;
|
|||||||
/**
|
/**
|
||||||
* 校验工具类
|
* 校验工具类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public class ValidationUtils {
|
public class ValidationUtils {
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import java.util.Date;
|
|||||||
/**
|
/**
|
||||||
* 时间工具类
|
* 时间工具类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public class DateUtils {
|
public class DateUtils {
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import java.time.format.DateTimeFormatter;
|
|||||||
/**
|
/**
|
||||||
* 时间工具类,用于 {@link LocalDateTime}
|
* 时间工具类,用于 {@link LocalDateTime}
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public class LocalDateTimeUtils {
|
public class LocalDateTimeUtils {
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* JSON 工具类
|
* JSON 工具类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import java.util.function.Consumer;
|
|||||||
/**
|
/**
|
||||||
* Object 工具类
|
* Object 工具类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public class ObjectUtils {
|
public class ObjectUtils {
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
* 系统编码生成器(改进版)
|
* 系统编码生成器(改进版)
|
||||||
* 修复了原版本中可能导致负数的问题
|
* 修复了原版本中可能导致负数的问题
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
* @date 2025-01-20
|
* @date 2025-01-20
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
* 日志追踪ID拦截器
|
* 日志追踪ID拦截器
|
||||||
* 用于生成和传递TraceId,方便同一个链路调用追查问题
|
* 用于生成和传递TraceId,方便同一个链路调用追查问题
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class TraceIdInterceptor implements HandlerInterceptor {
|
public class TraceIdInterceptor implements HandlerInterceptor {
|
||||||
|
|||||||
@ -47,7 +47,7 @@ import java.util.function.Function;
|
|||||||
* 4. 自动保存错误日志到数据库(iot_device_log表)
|
* 4. 自动保存错误日志到数据库(iot_device_log表)
|
||||||
* 5. 自动推送错误信息到前端页面(通过MQTT主题:/{productId}/{serialNumber}/ws/service)
|
* 5. 自动推送错误信息到前端页面(通过MQTT主题:/{productId}/{serialNumber}/ws/service)
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
* @date 2025-01-08
|
* @date 2025-01-08
|
||||||
*/
|
*/
|
||||||
@Aspect
|
@Aspect
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import java.util.List;
|
|||||||
* 物模型数据定时推送调度器
|
* 物模型数据定时推送调度器
|
||||||
* 每分钟检查所有启用的推送配置,按照 push_interval 决定是否触发本次推送。
|
* 每分钟检查所有启用的推送配置,按照 push_interval 决定是否触发本次推送。
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
|
|||||||
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 通知日志Controller
|
* 通知日志Controller
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
* @date 2023-12-16
|
* @date 2023-12-16
|
||||||
*/
|
*/
|
||||||
@Api(tags = "通知日志")
|
@Api(tags = "通知日志")
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import lombok.experimental.Accessors;
|
|||||||
/**
|
/**
|
||||||
* 通知日志对象 notify_log
|
* 通知日志对象 notify_log
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
* @date 2023-12-16
|
* @date 2023-12-16
|
||||||
*/
|
*/
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 通知日志Mapper接口
|
* 通知日志Mapper接口
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
* @date 2023-12-16
|
* @date 2023-12-16
|
||||||
*/
|
*/
|
||||||
public interface NotifyLogMapper {
|
public interface NotifyLogMapper {
|
||||||
|
|||||||
@ -23,7 +23,7 @@ import static com.fastbee.common.utils.SecurityUtils.getLoginUser;
|
|||||||
/**
|
/**
|
||||||
* 通知日志Service业务层处理
|
* 通知日志Service业务层处理
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
* @date 2023-12-16
|
* @date 2023-12-16
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
|||||||
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 物模型数据推送配置 Controller
|
* 物模型数据推送配置 Controller
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Api(tags = "物模型数据推送配置")
|
@Api(tags = "物模型数据推送配置")
|
||||||
@RestController
|
@RestController
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
/**
|
/**
|
||||||
* 支付单的通知 Request DTO
|
* 支付单的通知 Request DTO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
/**
|
/**
|
||||||
* 退款单的通知 Request DTO
|
* 退款单的通知 Request DTO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import lombok.Data;
|
|||||||
/**
|
/**
|
||||||
* 支付单信息 Response DTO
|
* 支付单信息 Response DTO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PayOrderRespDTO {
|
public class PayOrderRespDTO {
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import javax.validation.Valid;
|
|||||||
/**
|
/**
|
||||||
* 退款单 API 接口
|
* 退款单 API 接口
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface PayRefundApi {
|
public interface PayRefundApi {
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
/**
|
/**
|
||||||
* 退款单创建 Request DTO
|
* 退款单创建 Request DTO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import java.time.LocalDateTime;
|
|||||||
/**
|
/**
|
||||||
* 退款单信息 Response DTO
|
* 退款单信息 Response DTO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PayRefundRespDTO {
|
public class PayRefundRespDTO {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.fastbee.pay.api.enums;
|
|||||||
/**
|
/**
|
||||||
* Pay 字典类型的枚举类
|
* Pay 字典类型的枚举类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface DictTypeConstants {
|
public interface DictTypeConstants {
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import lombok.Getter;
|
|||||||
/**
|
/**
|
||||||
* 支付通知状态枚举
|
* 支付通知状态枚举
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import lombok.Getter;
|
|||||||
/**
|
/**
|
||||||
* 支付通知类型
|
* 支付通知类型
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import java.util.Objects;
|
|||||||
/**
|
/**
|
||||||
* 支付订单的状态枚举
|
* 支付订单的状态枚举
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import java.util.Objects;
|
|||||||
/**
|
/**
|
||||||
* 渠道的退款状态枚举
|
* 渠道的退款状态枚举
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import javax.annotation.Resource;
|
|||||||
/**
|
/**
|
||||||
* 支付单 API 实现类
|
* 支付单 API 实现类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class PayOrderApiImpl implements PayOrderApi {
|
public class PayOrderApiImpl implements PayOrderApi {
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import javax.annotation.Resource;
|
|||||||
/**
|
/**
|
||||||
* 退款单 API 实现类
|
* 退款单 API 实现类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
|
|||||||
@ -18,7 +18,7 @@ import java.util.Set;
|
|||||||
/**
|
/**
|
||||||
* 支付应用信息 Convert
|
* 支付应用信息 Convert
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface PayAppConvert {
|
public interface PayAppConvert {
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import org.mapstruct.factory.Mappers;
|
|||||||
/**
|
/**
|
||||||
* 示例订单 Convert
|
* 示例订单 Convert
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface OrderInfoConvert {
|
public interface OrderInfoConvert {
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* 支付通知 Convert
|
* 支付通知 Convert
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface PayNotifyTaskConvert {
|
public interface PayNotifyTaskConvert {
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import lombok.experimental.Accessors;
|
|||||||
* 不过一般来说,一个商户,只有一个应用哈~
|
* 不过一般来说,一个商户,只有一个应用哈~
|
||||||
* 即 PayMerchantDO : PayApp = 1 : n
|
* 即 PayMerchantDO : PayApp = 1 : n
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName("pay_app")
|
@TableName("pay_app")
|
||||||
//@KeySequence("pay_app_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
//@KeySequence("pay_app_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
|
|||||||
* 一个应用下,会有多种支付渠道,例如说微信支付、支付宝支付等等
|
* 一个应用下,会有多种支付渠道,例如说微信支付、支付宝支付等等
|
||||||
* 即 PayApp : PayChannel = 1 : n
|
* 即 PayApp : PayChannel = 1 : n
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName(value = "pay_channel", autoResultMap = true)
|
@TableName(value = "pay_channel", autoResultMap = true)
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import java.time.LocalDateTime;
|
|||||||
* 订单信息, 实际根据自己的业务系统设计
|
* 订单信息, 实际根据自己的业务系统设计
|
||||||
* 用id关联 pay 系统的支付与退款
|
* 用id关联 pay 系统的支付与退款
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName("order_info")
|
@TableName("order_info")
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import lombok.*;
|
|||||||
* 商户支付、退款等的通知 Log
|
* 商户支付、退款等的通知 Log
|
||||||
* 每次通知时,都会在该表中,记录一次 Log,方便排查问题
|
* 每次通知时,都会在该表中,记录一次 Log,方便排查问题
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName("pay_notify_log")
|
@TableName("pay_notify_log")
|
||||||
@KeySequence("pay_notify_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
@KeySequence("pay_notify_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import java.time.LocalDateTime;
|
|||||||
* 支付通知
|
* 支付通知
|
||||||
* 在支付系统收到支付渠道的支付、退款的结果后,需要不断的通知到业务系统,直到成功。
|
* 在支付系统收到支付渠道的支付、退款的结果后,需要不断的通知到业务系统,直到成功。
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName("pay_notify_task")
|
@TableName("pay_notify_task")
|
||||||
@KeySequence("pay_notify_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
@KeySequence("pay_notify_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import java.time.LocalDateTime;
|
|||||||
/**
|
/**
|
||||||
* 支付订单 DO
|
* 支付订单 DO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName("pay_order")
|
@TableName("pay_order")
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import java.util.Map;
|
|||||||
* 支付订单拓展 DO
|
* 支付订单拓展 DO
|
||||||
* 每次调用支付渠道,都会生成一条对应记录
|
* 每次调用支付渠道,都会生成一条对应记录
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName(value = "pay_order_extension", autoResultMap = true)
|
@TableName(value = "pay_order_extension", autoResultMap = true)
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import java.time.LocalDateTime;
|
|||||||
* 一个支付订单,可以拥有多个支付退款单
|
* 一个支付订单,可以拥有多个支付退款单
|
||||||
* 即 PayOrder : PayRefund = 1 : n
|
* 即 PayOrder : PayRefund = 1 : n
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@TableName("pay_refund")
|
@TableName("pay_refund")
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
/**
|
/**
|
||||||
* 示例订单 Mapper
|
* 示例订单 Mapper
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface OrderInfoMapper extends BaseMapperX<OrderInfo> {
|
public interface OrderInfoMapper extends BaseMapperX<OrderInfo> {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.fastbee.pay.core.domain.redis;
|
|||||||
/**
|
/**
|
||||||
* 支付 Redis Key 枚举类
|
* 支付 Redis Key 枚举类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface RedisKeyConstants {
|
public interface RedisKeyConstants {
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import java.time.LocalDateTime;
|
|||||||
/**
|
/**
|
||||||
* 支付序号的 Redis DAO
|
* 支付序号的 Redis DAO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public class PayNoRedisDAO {
|
public class PayNoRedisDAO {
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import org.springframework.stereotype.Repository;
|
|||||||
/**
|
/**
|
||||||
* 支付通知的锁 Redis DAO
|
* 支付通知的锁 Redis DAO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public class PayNotifyLockRedisDAO {
|
public class PayNotifyLockRedisDAO {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* 属于 pay 模块的 framework 封装
|
* 属于 pay 模块的 framework 封装
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
package com.fastbee.pay.core.framework;
|
package com.fastbee.pay.core.framework;
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
/**
|
/**
|
||||||
* pay 模块的 web 组件的 Configuration
|
* pay 模块的 web 组件的 Configuration
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Configuration(proxyBeanMethods = false)
|
@Configuration(proxyBeanMethods = false)
|
||||||
public class PayWebConfiguration {
|
public class PayWebConfiguration {
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import javax.annotation.Resource;
|
|||||||
* 支付通知 Job
|
* 支付通知 Job
|
||||||
* 通过不断扫描待通知的 PayNotifyTask 记录,回调业务线的回调接口
|
* 通过不断扫描待通知的 PayNotifyTask 记录,回调业务线的回调接口
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
//@TenantJob // 多租户
|
//@TenantJob // 多租户
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import javax.annotation.Resource;
|
|||||||
* 支付订单的过期 Job
|
* 支付订单的过期 Job
|
||||||
* 支付超过过期时间时,支付渠道是不会通知进行过期,所以需要定时进行过期关闭。
|
* 支付超过过期时间时,支付渠道是不会通知进行过期,所以需要定时进行过期关闭。
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
//@TenantJob
|
//@TenantJob
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
|||||||
* 支付订单的同步 Job
|
* 支付订单的同步 Job
|
||||||
* 由于支付订单的状态,是由支付渠道异步通知进行同步,考虑到异步通知可能会失败(小概率),所以需要定时进行同步。
|
* 由于支付订单的状态,是由支付渠道异步通知进行同步,考虑到异步通知可能会失败(小概率),所以需要定时进行同步。
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
//@TenantJob
|
//@TenantJob
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import javax.annotation.Resource;
|
|||||||
* 退款订单的同步 Job
|
* 退款订单的同步 Job
|
||||||
* 由于退款订单的状态,是由支付渠道异步通知进行同步,考虑到异步通知可能会失败(小概率),所以需要定时进行同步。
|
* 由于退款订单的状态,是由支付渠道异步通知进行同步,考虑到异步通知可能会失败(小概率),所以需要定时进行同步。
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
//@TenantJob
|
//@TenantJob
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* 支付应用 Service 接口
|
* 支付应用 Service 接口
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface PayAppService {
|
public interface PayAppService {
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import javax.validation.Valid;
|
|||||||
/**
|
/**
|
||||||
* 示例订单 Service 接口
|
* 示例订单 Service 接口
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface OrderInfoService {
|
public interface OrderInfoService {
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@ import static com.fastbee.pay.api.enums.ErrorCodeConstants.*;
|
|||||||
/**
|
/**
|
||||||
* 示例订单 Service 实现类
|
* 示例订单 Service 实现类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 回调通知 Service 接口
|
* 回调通知 Service 接口
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface PayNotifyService {
|
public interface PayNotifyService {
|
||||||
|
|
||||||
|
|||||||
@ -51,7 +51,7 @@ import static com.fastbee.pay.core.framework.job.config.PayJobConfiguration.NOTI
|
|||||||
/**
|
/**
|
||||||
* 支付通知 Core Service 实现类
|
* 支付通知 Core Service 实现类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Valid
|
@Valid
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import java.math.RoundingMode;
|
|||||||
/**
|
/**
|
||||||
* 金额工具类
|
* 金额工具类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public class MoneyUtils {
|
public class MoneyUtils {
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* 支付客户端,用于对接各支付渠道的 SDK,实现发起支付、退款等功能
|
* 支付客户端,用于对接各支付渠道的 SDK,实现发起支付、退款等功能
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface PayClient {
|
public interface PayClient {
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import javax.validation.Validator;
|
|||||||
* 支付客户端的配置,本质是支付渠道的配置
|
* 支付客户端的配置,本质是支付渠道的配置
|
||||||
* 每个不同的渠道,需要不同的配置,通过子类来定义
|
* 每个不同的渠道,需要不同的配置,通过子类来定义
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
|
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
|
||||||
// @JsonTypeInfo 注解的作用,Jackson 多态
|
// @JsonTypeInfo 注解的作用,Jackson 多态
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.fastbee.pay.framework.client;
|
|||||||
/**
|
/**
|
||||||
* 支付客户端的工厂接口
|
* 支付客户端的工厂接口
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface PayClientFactory {
|
public interface PayClientFactory {
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import java.time.LocalDateTime;
|
|||||||
/**
|
/**
|
||||||
* 渠道支付订单 Response DTO
|
* 渠道支付订单 Response DTO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* 统一下单 Request DTO
|
* 统一下单 Request DTO
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import static com.fastbee.common.utils.json.JsonUtils.toJsonString;
|
|||||||
/**
|
/**
|
||||||
* 支付客户端的抽象类,提供模板方法,减少子类的冗余代码
|
* 支付客户端的抽象类,提供模板方法,减少子类的冗余代码
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public abstract class AbstractPayClient<Config extends PayClientConfig> implements PayClient {
|
public abstract class AbstractPayClient<Config extends PayClientConfig> implements PayClient {
|
||||||
|
|||||||
@ -17,7 +17,7 @@ import java.util.concurrent.ConcurrentMap;
|
|||||||
/**
|
/**
|
||||||
* 支付客户端的工厂实现类
|
* 支付客户端的工厂实现类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class PayClientFactoryImpl implements PayClientFactory {
|
public class PayClientFactoryImpl implements PayClientFactory {
|
||||||
|
|||||||
@ -17,7 +17,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
* <p>
|
* <p>
|
||||||
* // TODO fastbee:未详细测试,因为手头没 App
|
* // TODO fastbee:未详细测试,因为手头没 App
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class AlipayAppPayClient extends AbstractAlipayPayClient {
|
public class AlipayAppPayClient extends AbstractAlipayPayClient {
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import static com.fastbee.common.exception.ServiceExceptionUtil.exception0;
|
|||||||
* 支付宝【条码支付】的 PayClient 实现类
|
* 支付宝【条码支付】的 PayClient 实现类
|
||||||
* 文档:<a href="https://opendocs.alipay.com/open/194/105072">当面付</a>
|
* 文档:<a href="https://opendocs.alipay.com/open/194/105072">当面付</a>
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class AlipayBarPayClient extends AbstractAlipayPayClient {
|
public class AlipayBarPayClient extends AbstractAlipayPayClient {
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
* 支付宝的 PayClientConfig 实现类
|
* 支付宝的 PayClientConfig 实现类
|
||||||
* 属性主要来自 {@link com.alipay.api.AlipayConfig} 的必要属性
|
* 属性主要来自 {@link com.alipay.api.AlipayConfig} 的必要属性
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class AlipayPayClientConfig implements PayClientConfig {
|
public class AlipayPayClientConfig implements PayClientConfig {
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
* 支付宝【扫码支付】的 PayClient 实现类
|
* 支付宝【扫码支付】的 PayClient 实现类
|
||||||
* 文档:<a href="https://opendocs.alipay.com/apis/02890k">扫码支付</a>
|
* 文档:<a href="https://opendocs.alipay.com/apis/02890k">扫码支付</a>
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class AlipayQrPayClient extends AbstractAlipayPayClient {
|
public class AlipayQrPayClient extends AbstractAlipayPayClient {
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
* 支付宝【Wap 网站】的 PayClient 实现类
|
* 支付宝【Wap 网站】的 PayClient 实现类
|
||||||
* 文档:<a href="https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay">手机网站支付接口</a>
|
* 文档:<a href="https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay">手机网站支付接口</a>
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class AlipayWapPayClient extends AbstractAlipayPayClient {
|
public class AlipayWapPayClient extends AbstractAlipayPayClient {
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import static com.fastbee.common.utils.json.JsonUtils.toJsonString;
|
|||||||
* 文档:<a href="https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_5_3.shtml">App 支付</a>
|
* 文档:<a href="https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_5_3.shtml">App 支付</a>
|
||||||
* // TODO fastbee:未详细测试,因为手头没 App
|
* // TODO fastbee:未详细测试,因为手头没 App
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class WxAppPayClient extends AbstractWxPayClient {
|
public class WxAppPayClient extends AbstractWxPayClient {
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import static com.fastbee.common.utils.json.JsonUtils.toJsonString;
|
|||||||
* 微信支付【付款码支付】的 PayClient 实现类
|
* 微信支付【付款码支付】的 PayClient 实现类
|
||||||
* 文档:<a href="https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1">付款码支付</a>
|
* 文档:<a href="https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1">付款码支付</a>
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class WxBarPayClient extends AbstractWxPayClient {
|
public class WxBarPayClient extends AbstractWxPayClient {
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import java.io.FileNotFoundException;
|
|||||||
* 微信支付的 PayClientConfig 实现类
|
* 微信支付的 PayClientConfig 实现类
|
||||||
* 属性主要来自 {@link com.github.binarywang.wxpay.config.WxPayConfig} 的必要属性
|
* 属性主要来自 {@link com.github.binarywang.wxpay.config.WxPayConfig} 的必要属性
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class WxPayClientConfig implements PayClientConfig {
|
public class WxPayClientConfig implements PayClientConfig {
|
||||||
|
|||||||
@ -23,7 +23,7 @@ import static com.fastbee.common.utils.json.JsonUtils.toJsonString;
|
|||||||
* 微信支付(公众号)的 PayClient 实现类
|
* 微信支付(公众号)的 PayClient 实现类
|
||||||
* 文档:<a href="https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml">JSAPI 下单</>
|
* 文档:<a href="https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml">JSAPI 下单</>
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class WxPubPayClient extends AbstractWxPayClient {
|
public class WxPubPayClient extends AbstractWxPayClient {
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import org.springframework.context.annotation.Bean;
|
|||||||
/**
|
/**
|
||||||
* 支付配置类
|
* 支付配置类
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@AutoConfiguration
|
@AutoConfiguration
|
||||||
public class PayAutoConfiguration {
|
public class PayAutoConfiguration {
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import lombok.Getter;
|
|||||||
/**
|
/**
|
||||||
* 支付渠道的编码的枚举
|
* 支付渠道的编码的枚举
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import lombok.Getter;
|
|||||||
/**
|
/**
|
||||||
* 支付 UI 展示模式
|
* 支付 UI 展示模式
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import java.util.Objects;
|
|||||||
/**
|
/**
|
||||||
* 渠道的支付状态枚举
|
* 渠道的支付状态枚举
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import lombok.Data;
|
|||||||
/**
|
/**
|
||||||
* 推送物模型项及等级阈值配置 iot_push_model_item
|
* 推送物模型项及等级阈值配置 iot_push_model_item
|
||||||
*
|
*
|
||||||
* @author sumuxi
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(value = "PushModelItem", description = "推送物模型项及等级阈值配置")
|
@ApiModel(value = "PushModelItem", description = "推送物模型项及等级阈值配置")
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import lombok.Data;
|
|||||||
/**
|
/**
|
||||||
* 推送接收用户 iot_push_user
|
* 推送接收用户 iot_push_user
|
||||||
*
|
*
|
||||||
* @author sumuxi
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(value = "PushUser", description = "推送接收用户")
|
@ApiModel(value = "PushUser", description = "推送接收用户")
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 物模型数据推送配置 iot_things_model_push_config
|
* 物模型数据推送配置 iot_things_model_push_config
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 物模型数据推送配置 Mapper
|
* 物模型数据推送配置 Mapper
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface ThingsModelPushConfigMapper {
|
public interface ThingsModelPushConfigMapper {
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import java.util.List;
|
|||||||
* 传 identifierList 时支持多变量对比;仅传 identifier 时按单变量兼容。
|
* 传 identifierList 时支持多变量对比;仅传 identifier 时按单变量兼容。
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class SubDeviceCompareParam {
|
public class SubDeviceCompareParam {
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 物模型数据推送配置 Service 接口
|
* 物模型数据推送配置 Service 接口
|
||||||
*
|
*
|
||||||
* @author sumuxi
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
public interface IThingsModelPushConfigService {
|
public interface IThingsModelPushConfigService {
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import java.util.stream.Collectors;
|
|||||||
/**
|
/**
|
||||||
* 物模型数据推送配置 Service 实现
|
* 物模型数据推送配置 Service 实现
|
||||||
*
|
*
|
||||||
* @author fastbee
|
* @author Sumuxi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user