Modern Reactive CQRS Architecture Microservice development framework based on DDD and EventSourcing | 基于 DDD & EventSourcing 的现代响应式 CQRS 架构微服务开发框架
APACHE-2.0 License
Bot releases are visible (Hide)
Published by Ahoo-Wang 8 months ago
ConditionCapable
api by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/566
QueryService
type declaration. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/571
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.16...v2.16.18
Published by Ahoo-Wang 8 months ago
QueryDSL
to replace MongoExecutionFailedQuery
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/565
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.15...v2.16.16
Published by Ahoo-Wang 8 months ago
RECENT_WEEKS
& RECENT_MONTHS
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/562
NamedAggregate
property to SnapshotQueryService
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/563
SnapshotQueryServiceRegistrar
to auto register SnapshotQueryService
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/564
class OrderService(
@Qualifier("example.order.SnapshotQueryService")
private val queryService: SnapshotQueryService<OrderState>
){
fun getById(id:String): Mono<OrderState> {
return condition {
id(id)
}.single(queryService).toState()
}
}
@Qualifier("example.order.SnapshotQueryService")
@Autowired
private lateinit var queryService: SnapshotQueryService<OrderState>
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.12...v2.16.15
Published by Ahoo-Wang 8 months ago
TODAY
& TOMORROW
& THIS_WEEK
& NEXT_WEEK
& LAST_WEEK
& THIS_MONTH
& LAST_MONTH
& RECENT_DAYS
Operator. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/558
RECENT_WEEKS
& RECENT_MONTHS
Operator. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/559
操作符 | 描述 |
---|---|
AND | 对提供的条件列表执行逻辑与 |
OR | 对提供的条件列表执行逻辑或 |
ID | 匹配id 字段值等于指定值的所有文档 |
IDS | 匹配id 字段值等于指定值列表中的任何值的所有文档 |
ALL | 匹配所有文档 |
EQ | 匹配字段名称值等于指定值的所有文档 |
NE | 匹配字段名称值不等于指定值的所有文档 |
GT | 匹配给定字段的值大于指定值的所有文档 |
LT | 匹配给定字段的值小于指定值的所有文档 |
GTE | 匹配给定字段的值大于或等于指定值的所有文档 |
LTE | 匹配给定字段的值小于或等于指定值的所有文档 |
CONTAINS | 匹配给定字段的值包含指定值的所有文档 |
IN | 匹配字段值等于指定值列表中的任何值的所有文档 |
NOT_IN | 匹配字段值不等于任何指定值或不存在的所有文档 |
BETWEEN | 匹配字段值在指定值范围区间的所有文档 |
ALL_IN | 匹配所有文档,其中字段值是包含所有指定值的数组 |
STARTS_WITH | 匹配字段值以指定字符串开头的文档 |
ENDS_WITH | 匹配字段值以指定字符串结尾的文档 |
ELEM_MATCH | 条件与包含数组字段的所有文档相匹配,其中数组中至少有一个成员与给定的条件匹配。 |
NULL | 匹配字段值在指定值为null 的所有文档 |
NOT_NULL | 匹配字段值在指定值不为null 的所有文档 |
TRUE | 匹配字段值在指定值为true 的所有文档 |
FALSE | 匹配字段值在指定值为false 的所有文档 |
RAW | 原始操作符,将条件值直接作为原始的数据库查询条件 |
TODAY | 匹配字段在指定值今天范围区间的所有文档 |
TOMORROW | 匹配字段在指定值明天范围区间的所有文档 |
THIS_WEEK | 匹配字段在指定值本周范围区间的所有文档 |
NEXT_WEEK | 匹配字段在指定值下周范围区间的所有文档 |
LAST_WEEK | 匹配字段在指定值上周范围区间的所有文档 |
THIS_MONTH | 匹配字段在指定值本月范围区间的所有文档 |
LAST_MONTH | 匹配字段在指定值上个月范围区间的所有文档 |
RECENT_DAYS | 匹配字段在指定值最近天数范围区间的所有文档 |
RECENT_WEEKS | 匹配字段在指定值最近周数范围区间的所有文档 |
RECENT_MONTHS | 匹配字段在指定值最近月数范围区间的所有文档 |
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.11...v2.16.12
Published by Ahoo-Wang 8 months ago
TENANT_ID
to Operator
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/554
ConditionConverter
api by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/556
DELETED
Operator by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/557
操作符 | 描述 |
---|---|
AND | 对提供的条件列表执行逻辑与 |
OR | 对提供的条件列表执行逻辑或 |
ID | 匹配id 字段值等于指定值的所有文档 |
IDS | 匹配id 字段值等于指定值列表中的任何值的所有文档 |
TENANT_ID | 匹配tenantId 字段值等于指定值的所有文档 |
DELETED | 匹配deleted 字段值等于指定值的所有文档 |
ALL | 匹配所有文档 |
EQ | 匹配字段名称值等于指定值的所有文档 |
NE | 匹配字段名称值不等于指定值的所有文档 |
GT | 匹配给定字段的值大于指定值的所有文档 |
LT | 匹配给定字段的值小于指定值的所有文档 |
GTE | 匹配给定字段的值大于或等于指定值的所有文档 |
LTE | 匹配给定字段的值小于或等于指定值的所有文档 |
CONTAINS | 匹配给定字段的值包含指定值的所有文档 |
IN | 匹配字段值等于指定值列表中的任何值的所有文档 |
NOT_IN | 匹配字段值不等于任何指定值或不存在的所有文档 |
BETWEEN | 匹配字段值在指定值范围区间的所有文档 |
ALL_IN | 匹配所有文档,其中字段值是包含所有指定值的数组 |
STARTS_WITH | 匹配字段值以指定字符串开头的文档 |
ENDS_WITH | 匹配字段值以指定字符串结尾的文档 |
ELEM_MATCH | 条件与包含数组字段的所有文档相匹配,其中数组中至少有一个成员与给定的条件匹配。 |
NULL | 匹配字段值在指定值为null 的所有文档 |
NOT_NULL | 匹配字段值在指定值不为null 的所有文档 |
TRUE | 匹配字段值在指定值为true 的所有文档 |
FALSE | 匹配字段值在指定值为false 的所有文档 |
RAW | 原始操作符,将条件值直接作为原始的数据库查询条件 |
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.10...v2.16.11
Published by Ahoo-Wang 8 months ago
ArchiveAggregateIdRouteSpec
path by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/547
ENDS_WITH
to Operator. (#544) by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/548
RAW
to Operator. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/550
操作符 | 描述 |
---|---|
AND | 对提供的条件列表执行逻辑与 |
OR | 对提供的条件列表执行逻辑或 |
ID | 匹配id 字段值等于指定值的所有文档 |
IDS | 匹配id 字段值等于指定值列表中的任何值的所有文档 |
ALL | 匹配所有文档 |
EQ | 匹配字段名称值等于指定值的所有文档 |
NE | 匹配字段名称值不等于指定值的所有文档 |
GT | 匹配给定字段的值大于指定值的所有文档 |
LT | 匹配给定字段的值小于指定值的所有文档 |
GTE | 匹配给定字段的值大于或等于指定值的所有文档 |
LTE | 匹配给定字段的值小于或等于指定值的所有文档 |
CONTAINS | 匹配给定字段的值包含指定值的所有文档 |
IN | 匹配字段值等于指定值列表中的任何值的所有文档 |
NOT_IN | 匹配字段值不等于任何指定值或不存在的所有文档 |
BETWEEN | 匹配字段值在指定值范围区间的所有文档 |
ALL_IN | 匹配所有文档,其中字段值是包含所有指定值的数组 |
STARTS_WITH | 匹配字段值以指定字符串开头的文档 |
ENDS_WITH | 匹配字段值以指定字符串结尾的文档 |
ELEM_MATCH | 条件与包含数组字段的所有文档相匹配,其中数组中至少有一个成员与给定的条件匹配。 |
NULL | 匹配字段值在指定值为null 的所有文档 |
NOT_NULL | 匹配字段值在指定值不为null 的所有文档 |
TRUE | 匹配字段值在指定值为true 的所有文档 |
FALSE | 匹配字段值在指定值为false 的所有文档 |
RAW | 原始操作符,将条件值直接作为原始的数据库查询条件 |
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.9...v2.16.10
Published by Ahoo-Wang 8 months ago
ID
& IDS
to Operator
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/544
ID
& IDS
to TypeScript
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/545
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.8...v2.16.9
Published by Ahoo-Wang 8 months ago
accept-case-insensitive-enums
to true
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/538
isTrue
& isFalse
Operator
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/539
isTrue
& isFalse
to Schema by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/540
Operator
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/541
Condition.not
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/542
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.6...v2.16.8
Published by Ahoo-Wang 8 months ago
Query Service
doc by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/536
通过 QueryDsl
,您可以轻松构建复杂的查询条件,例如:
pagedQuery {
pagination {
index(1)
size(10)
}
sort {
"field1".asc()
}
condition {
"field1" eq "value1"
"field2" ne "value2"
"filed3" gt 1
"field4" lt 1
"field5" gte 1
"field6" lte 1
"field7" like "value7"
"field8" isIn listOf("value8")
"field9" notIn listOf("value9")
"field10" between (1 to 2)
"field11" all listOf("value11")
"field12" startsWith "value12"
"field13" elemMatch {
"field14" eq "value14"
}
"field15".isNull()
"field16".notNull()
and {
"field3" eq "value3"
"field4" eq "value4"
}
or {
"field3" eq "value3"
"field4" eq "value4"
}
}
}
以下是一个示例 curl
命令,用于执行查询:
curl -X 'POST' \
'http://localhost:8080/execution_failed/snapshot/pagination' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"sort": [
{
"field": "_id",
"direction": "DESC"
}
],
"pagination": {
"index": 1,
"size": 10
},
"condition": {
"field": "",
"operator": "AND",
"value": "",
"children": [
{
"field": "state.recoverable",
"operator": "NE",
"value": "UNRECOVERABLE",
"children": []
},
{
"field": "state.status",
"operator": "NE",
"value": "SUCCEEDED",
"children": []
},
{
"field": "state.isBelowRetryThreshold",
"operator": "EQ",
"value": false,
"children": []
}
]
}
}'
在 TypeScript 中,您可以使用 Conditions
类来构建复杂的查询条件,例如:
Conditions.and(
[
Conditions.ne(ExecutionFailedFields.RECOVERABLE, RecoverableType.UNRECOVERABLE),
Conditions.ne(ExecutionFailedFields.STATUS, ExecutionFailedStatus.SUCCEEDED),
Conditions.eq(ExecutionFailedFields.IS_BELOW_RETRY_THRESHOLD, false)
]
)
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.5...v2.16.6
Published by Ahoo-Wang 8 months ago
SnapshotQueryService
api by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/527
Query
api by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/528
Snapshot<S>
convert to state by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/529
PagedQuerySnapshotStateRouteSpec
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/530
QuerySnapshotStateRouteSpec
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/531
SingleSnapshotStateRouteSpec
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/532
QueryService
instead of specific API. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/533
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.2...v2.16.5
Published by Ahoo-Wang 8 months ago
*SnapshotRouteSpec
for Query
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/523
Condition
expansion function to improve ease of use by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/524
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.16.0...v2.16.2
Published by Ahoo-Wang 8 months ago
BodyTypeNotFoundDomainEvent
to JsonDomainEvent
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/510
SnapshotQueryService
api by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/520
SnapshotQueryService.single
api by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/521
QuerySnapshotRouteSpec
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/522
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.15.5...v2.16.0
Published by Ahoo-Wang 8 months ago
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.15.4...v2.15.5
Published by Ahoo-Wang 8 months ago
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.15.3...v2.15.4
Published by Ahoo-Wang 8 months ago
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.15.2...v2.15.3
Published by Ahoo-Wang 9 months ago
MessageFunction
to auto register. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/477
supportTopic
method to MessageFunction
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/478
MessageFunction
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/479
MessageFunction
to support dynamic filtering of messages. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/480
bodyType
to BodyTypeNotFoundDomainEvent
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/482
SagaVerifier
support same event when different FunctionKind
. by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/483
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.15.1...v2.15.2
Published by Ahoo-Wang 9 months ago
JAVA
interoperability by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/471
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.15.0...v2.15.1
Published by Ahoo-Wang 9 months ago
GenerateGlobalIdRouteSpec
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/468
GenerateBIScriptRouteSpec
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/469
GetWowMetadataRouteSpec
by @Ahoo-Wang in https://github.com/Ahoo-Wang/Wow/pull/470
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.14.3...v2.15.0
Published by Ahoo-Wang 9 months ago
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.14.2...v2.14.3
Published by Ahoo-Wang 9 months ago
Full Changelog: https://github.com/Ahoo-Wang/Wow/compare/v2.14.1...v2.14.2