钱包
This commit is contained in:
parent
35ceb5d80f
commit
f6995c519a
@ -125,7 +125,8 @@ public class UserBankBalanceServiceImpl implements UserBankBalanceService {
|
|||||||
|
|
||||||
boolean sorted = isSorted(query);
|
boolean sorted = isSorted(query);
|
||||||
Criteria criteria = buildCriteria(query);
|
Criteria criteria = buildCriteria(query);
|
||||||
if (!sorted && Objects.nonNull(query.getLastId()) && Objects.isNull(query.getUserId())) {
|
if (!sorted && Objects.nonNull(query) && Objects.nonNull(query.getLastId())
|
||||||
|
&& Objects.isNull(query.getUserId())) {
|
||||||
criteria.and("id").lt(query.getLastId());
|
criteria.and("id").lt(query.getLastId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,6 +175,9 @@ public class UserBankBalanceServiceImpl implements UserBankBalanceService {
|
|||||||
|
|
||||||
private Criteria buildCriteria(UserBankBalanceQryCmd query) {
|
private Criteria buildCriteria(UserBankBalanceQryCmd query) {
|
||||||
Criteria criteria = new Criteria();
|
Criteria criteria = new Criteria();
|
||||||
|
if (Objects.isNull(query)) {
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
if (Objects.nonNull(query.getSysOrigin())) {
|
if (Objects.nonNull(query.getSysOrigin())) {
|
||||||
criteria.and("sysOrigin").is(query.getSysOrigin());
|
criteria.and("sysOrigin").is(query.getSysOrigin());
|
||||||
}
|
}
|
||||||
@ -194,19 +198,25 @@ public class UserBankBalanceServiceImpl implements UserBankBalanceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isSorted(UserBankBalanceQryCmd query) {
|
private boolean isSorted(UserBankBalanceQryCmd query) {
|
||||||
|
if (Objects.isNull(query) || Objects.isNull(query.getSortField())
|
||||||
|
|| Objects.isNull(query.getSortOrder())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return SORTABLE_FIELDS.contains(query.getSortField())
|
return SORTABLE_FIELDS.contains(query.getSortField())
|
||||||
&& ("ascend".equalsIgnoreCase(query.getSortOrder())
|
&& ("ascend".equalsIgnoreCase(query.getSortOrder())
|
||||||
|| "descend".equalsIgnoreCase(query.getSortOrder()));
|
|| "descend".equalsIgnoreCase(query.getSortOrder()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getLimit(UserBankBalanceQryCmd query) {
|
private int getLimit(UserBankBalanceQryCmd query) {
|
||||||
return Objects.nonNull(query.getLimit()) && query.getLimit() > 0
|
return Objects.nonNull(query) && Objects.nonNull(query.getLimit()) && query.getLimit() > 0
|
||||||
? query.getLimit()
|
? query.getLimit()
|
||||||
: DEFAULT_LIMIT;
|
: DEFAULT_LIMIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getPageNo(UserBankBalanceQryCmd query) {
|
private int getPageNo(UserBankBalanceQryCmd query) {
|
||||||
return Objects.nonNull(query.getPageNo()) && query.getPageNo() > 0 ? query.getPageNo() : 1;
|
return Objects.nonNull(query) && Objects.nonNull(query.getPageNo()) && query.getPageNo() > 0
|
||||||
|
? query.getPageNo()
|
||||||
|
: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal getAccurateAmount(Document document, String key) {
|
private BigDecimal getAccurateAmount(Document document, String key) {
|
||||||
|
|||||||
@ -1,9 +1,20 @@
|
|||||||
package com.red.circle.wallet.infra.database.mongo.service.bank.impl;
|
package com.red.circle.wallet.infra.database.mongo.service.bank.impl;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import com.red.circle.component.mongodb.config.MongoPrimaryService;
|
||||||
|
import com.red.circle.wallet.infra.database.mongo.entity.bank.UserBankBalance;
|
||||||
|
import com.red.circle.wallet.inner.model.cmd.UserBankBalanceQryCmd;
|
||||||
|
import java.util.List;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||||
|
import org.springframework.data.mongodb.core.query.Query;
|
||||||
|
|
||||||
class UserBankBalanceServiceImplTest {
|
class UserBankBalanceServiceImplTest {
|
||||||
|
|
||||||
@ -27,4 +38,18 @@ class UserBankBalanceServiceImplTest {
|
|||||||
|
|
||||||
assertEquals(0L, UserBankBalanceServiceImpl.getLongValue(document, "balance"));
|
assertEquals(0L, UserBankBalanceServiceImpl.getLongValue(document, "balance"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void listBalanceUsesDefaultSortWhenSortFieldsAreMissing() {
|
||||||
|
MongoTemplate mongoTemplate = mock(MongoTemplate.class);
|
||||||
|
when(mongoTemplate.find(any(Query.class), eq(UserBankBalance.class))).thenReturn(List.of());
|
||||||
|
UserBankBalanceServiceImpl service = new UserBankBalanceServiceImpl(
|
||||||
|
mongoTemplate, mock(MongoPrimaryService.class));
|
||||||
|
|
||||||
|
List<?> result = service.listBalance(new UserBankBalanceQryCmd()
|
||||||
|
.setSysOrigin("LIKEI")
|
||||||
|
.setLimit(1));
|
||||||
|
|
||||||
|
assertTrue(result.isEmpty());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user