@@ -5,6 +5,7 @@ import java.util.List; | |||||
import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreBaseInfo; | import me.chanjar.weixin.mp.bean.store.WxMpStoreBaseInfo; | ||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreInfo; | 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 | * @param limit 返回数据条数,最大允许50,默认为20 | ||||
* @throws WxErrorException | * @throws WxErrorException | ||||
*/ | */ | ||||
List<WxMpStoreInfo> list(int begin, int limit) throws WxErrorException; | |||||
WxMpStoreListResult list(int begin, int limit) throws WxErrorException; | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
@@ -67,7 +67,7 @@ public class WxMpStoreServiceImpl implements WxMpStoreService { | |||||
} | } | ||||
@Override | @Override | ||||
public List<WxMpStoreInfo> list(int begin, int limit) | |||||
public WxMpStoreListResult list(int begin, int limit) | |||||
throws WxErrorException { | throws WxErrorException { | ||||
String url = API_BASE_URL + "/getpoilist"; | String url = API_BASE_URL + "/getpoilist"; | ||||
JsonObject params = new JsonObject(); | JsonObject params = new JsonObject(); | ||||
@@ -80,33 +80,25 @@ public class WxMpStoreServiceImpl implements WxMpStoreService { | |||||
throw new WxErrorException(wxError); | throw new WxErrorException(wxError); | ||||
} | } | ||||
return WxMpStoreListResult.fromJson(response).getBusinessList(); | |||||
return WxMpStoreListResult.fromJson(response); | |||||
} | } | ||||
@Override | @Override | ||||
public List<WxMpStoreInfo> listAll() throws WxErrorException { | 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); | |||||
} | |||||
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()); | |||||
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); | |||||
} | |||||
} | } | ||||
return stores; | 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.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreBaseInfo; | import me.chanjar.weixin.mp.bean.store.WxMpStoreBaseInfo; | ||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreInfo; | import me.chanjar.weixin.mp.bean.store.WxMpStoreInfo; | ||||
import me.chanjar.weixin.mp.bean.store.WxMpStoreListResult; | |||||
/** | /** | ||||
* @author 王彬 (Binary Wang) | * @author 王彬 (Binary Wang) | ||||
@@ -37,17 +38,16 @@ public class WxMpStoreServiceImplTest { | |||||
this.wxMpService.getStoreService() | this.wxMpService.getStoreService() | ||||
.add(WxMpStoreBaseInfo.builder().businessName("haha").branchName("abc") | .add(WxMpStoreBaseInfo.builder().businessName("haha").branchName("abc") | ||||
.province("aaa").district("aaa").telephone("122").address("abc") | .province("aaa").district("aaa").telephone("122").address("abc") | ||||
.categories(new String[] { "美食,江浙菜" }) | |||||
.categories(new String[] { "美食,江浙菜" }) | |||||
.longitude(new BigDecimal("115.32375")) | .longitude(new BigDecimal("115.32375")) | ||||
.latitude(new BigDecimal("25.097486")).city("aaa").offsetType(1) | .latitude(new BigDecimal("25.097486")).city("aaa").offsetType(1) | ||||
.build()); | .build()); | ||||
} | } | ||||
public void testList() throws WxErrorException { | 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 { | public void testListAll() throws WxErrorException { | ||||