钱包
This commit is contained in:
parent
35ceb5d80f
commit
f6995c519a
@ -125,7 +125,8 @@ public class UserBankBalanceServiceImpl implements UserBankBalanceService {
|
||||
|
||||
boolean sorted = isSorted(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());
|
||||
}
|
||||
|
||||
@ -174,6 +175,9 @@ public class UserBankBalanceServiceImpl implements UserBankBalanceService {
|
||||
|
||||
private Criteria buildCriteria(UserBankBalanceQryCmd query) {
|
||||
Criteria criteria = new Criteria();
|
||||
if (Objects.isNull(query)) {
|
||||
return criteria;
|
||||
}
|
||||
if (Objects.nonNull(query.getSysOrigin())) {
|
||||
criteria.and("sysOrigin").is(query.getSysOrigin());
|
||||
}
|
||||
@ -194,19 +198,25 @@ public class UserBankBalanceServiceImpl implements UserBankBalanceService {
|
||||
}
|
||||
|
||||
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())
|
||||
&& ("ascend".equalsIgnoreCase(query.getSortOrder())
|
||||
|| "descend".equalsIgnoreCase(query.getSortOrder()));
|
||||
}
|
||||
|
||||
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()
|
||||
: DEFAULT_LIMIT;
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
@ -1,9 +1,20 @@
|
||||
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.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.junit.jupiter.api.Test;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
|
||||
class UserBankBalanceServiceImplTest {
|
||||
|
||||
@ -27,4 +38,18 @@ class UserBankBalanceServiceImplTest {
|
||||
|
||||
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