mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-23 22:11:40 +08:00
优化门店查询列表的接口, for issue #17
This commit is contained in:
parent
c7a04d5fe4
commit
94b42ee9ae
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreBaseInfo;
|
||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreInfo;
|
||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreListResult;
|
||||
|
||||
/**
|
||||
* 门店管理的相关接口代码
|
||||
@ -36,7 +37,7 @@ public interface WxMpStoreService {
|
||||
* @param limit 返回数据条数,最大允许50,默认为20
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
List<WxMpStoreInfo> list(int begin, int limit) throws WxErrorException;
|
||||
WxMpStoreListResult list(int begin, int limit) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
|
@ -67,7 +67,7 @@ public class WxMpStoreServiceImpl implements WxMpStoreService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WxMpStoreInfo> list(int begin, int limit)
|
||||
public WxMpStoreListResult list(int begin, int limit)
|
||||
throws WxErrorException {
|
||||
String url = API_BASE_URL + "/getpoilist";
|
||||
JsonObject params = new JsonObject();
|
||||
@ -80,33 +80,25 @@ public class WxMpStoreServiceImpl implements WxMpStoreService {
|
||||
throw new WxErrorException(wxError);
|
||||
}
|
||||
|
||||
return WxMpStoreListResult.fromJson(response).getBusinessList();
|
||||
return WxMpStoreListResult.fromJson(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WxMpStoreInfo> listAll() throws WxErrorException {
|
||||
int limit = 10;
|
||||
String url = API_BASE_URL + "/getpoilist";
|
||||
JsonObject params = new JsonObject();
|
||||
params.addProperty("begin", 0);
|
||||
params.addProperty("limit", limit);//返回数据条数,最大允许50,默认为20
|
||||
String response = this.wxMpService.post(url, params.toString());
|
||||
|
||||
WxError wxError = WxError.fromJson(response);
|
||||
if (wxError.getErrorCode() != 0) {
|
||||
throw new WxErrorException(wxError);
|
||||
int limit = 50;
|
||||
WxMpStoreListResult list = this.list(0, limit);
|
||||
List<WxMpStoreInfo> stores = list.getBusinessList();
|
||||
if (list.getTotalCount() > limit) {
|
||||
int begin = limit;
|
||||
WxMpStoreListResult followingList = this.list(begin, limit);
|
||||
while (followingList.getBusinessList().size() > 0) {
|
||||
stores.addAll(followingList.getBusinessList());
|
||||
begin += limit;
|
||||
if (begin >= list.getTotalCount()) {
|
||||
break;
|
||||
}
|
||||
followingList = this.list(begin, limit);
|
||||
}
|
||||
|
||||
WxMpStoreListResult listResult = WxMpStoreListResult.fromJson(response);
|
||||
List<WxMpStoreInfo> stores = Lists
|
||||
.newArrayList(listResult.getBusinessList());
|
||||
if (listResult.getTotalCount() > limit) {
|
||||
params = new JsonObject();
|
||||
params.addProperty("begin", limit);
|
||||
params.addProperty("limit", listResult.getTotalCount() - limit);
|
||||
stores.addAll(WxMpStoreListResult
|
||||
.fromJson(this.wxMpService.post(url, params.toString()))
|
||||
.getBusinessList());
|
||||
}
|
||||
|
||||
return stores;
|
||||
|
@ -18,6 +18,7 @@ import me.chanjar.weixin.common.exception.WxErrorException;
|
||||
import me.chanjar.weixin.mp.api.ApiTestModule;
|
||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreBaseInfo;
|
||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreInfo;
|
||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreListResult;
|
||||
|
||||
/**
|
||||
* @author 王彬 (Binary Wang)
|
||||
@ -44,10 +45,9 @@ public class WxMpStoreServiceImplTest {
|
||||
}
|
||||
|
||||
public void testList() throws WxErrorException {
|
||||
List<WxMpStoreInfo> list = this.wxMpService.getStoreService().list(0, 10);
|
||||
assertNotNull(list);
|
||||
System.err.println(list.size());
|
||||
System.err.println(list);
|
||||
WxMpStoreListResult result = this.wxMpService.getStoreService().list(0, 10);
|
||||
assertNotNull(result);
|
||||
System.err.println(result);
|
||||
}
|
||||
|
||||
public void testListAll() throws WxErrorException {
|
||||
|
Loading…
Reference in New Issue
Block a user