mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 10:38:42 +08:00 
			
		
		
		
	添加门店信息查看的接口, for issue #17
This commit is contained in:
		| @ -1,12 +1,12 @@ | |||||||
| package me.chanjar.weixin.mp.api; | package me.chanjar.weixin.mp.api; | ||||||
|  |  | ||||||
| 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; | import me.chanjar.weixin.mp.bean.store.WxMpStoreListResult; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 门店管理的相关接口代码 |  * 门店管理的相关接口代码 | ||||||
|  * @author binarywang(https://github.com/binarywang) |  * @author binarywang(https://github.com/binarywang) | ||||||
| @ -27,6 +27,21 @@ public interface WxMpStoreService { | |||||||
|    */ |    */ | ||||||
|   void add(WxMpStoreBaseInfo request) throws WxErrorException; |   void add(WxMpStoreBaseInfo request) throws WxErrorException; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * <pre> | ||||||
|  |    * 查询门店信息 | ||||||
|  |    * 创建门店后获取poi_id 后,商户可以利用poi_id,查询具体某条门店的信息。 | ||||||
|  |    * 若在查询时,update_status 字段为1,表明在5 个工作日内曾用update 接口修改过门店扩展字段,该扩展字段为最新的修改字段,尚未经过审核采纳,因此不是最终结果。 | ||||||
|  |    * 最终结果会在5 个工作日内,最终确认是否采纳,并前端生效(但该扩展字段的采纳过程不影响门店的可用性,即available_state仍为审核通过状态) | ||||||
|  |    * 注:扩展字段为公共编辑信息(大家都可修改),修改将会审核,并决定是否对修改建议进行采纳,但不会影响该门店的生效可用状态。 | ||||||
|  |    * 详情请见: <a href="https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1444378120&token=&lang=zh_CN">微信门店接口</a> | ||||||
|  |    * </pre> | ||||||
|  |    * @param poiId  门店poiId | ||||||
|  |    * @throws WxErrorException | ||||||
|  |    */ | ||||||
|  |   WxMpStoreBaseInfo get(String poiId) throws WxErrorException; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * <pre> |    * <pre> | ||||||
|    * 查询门店列表(指定查询起始位置和个数) |    * 查询门店列表(指定查询起始位置和个数) | ||||||
|  | |||||||
| @ -1,14 +1,8 @@ | |||||||
| package me.chanjar.weixin.mp.api.impl; | package me.chanjar.weixin.mp.api.impl; | ||||||
|  |  | ||||||
| import java.lang.reflect.Field; |  | ||||||
| import java.util.List; |  | ||||||
| import java.util.Map.Entry; |  | ||||||
|  |  | ||||||
| import org.joor.Reflect; |  | ||||||
|  |  | ||||||
| import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||||
| import com.google.gson.JsonObject; | import com.google.gson.JsonObject; | ||||||
|  | import com.google.gson.JsonParser; | ||||||
| import me.chanjar.weixin.common.annotation.Required; | import me.chanjar.weixin.common.annotation.Required; | ||||||
| import me.chanjar.weixin.common.bean.result.WxError; | import me.chanjar.weixin.common.bean.result.WxError; | ||||||
| import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||||
| @ -17,6 +11,11 @@ import me.chanjar.weixin.mp.api.WxMpStoreService; | |||||||
| 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; | import me.chanjar.weixin.mp.bean.store.WxMpStoreListResult; | ||||||
|  | import org.joor.Reflect; | ||||||
|  |  | ||||||
|  | import java.lang.reflect.Field; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map.Entry; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  *  Created by Binary Wang on 2016/9/26. |  *  Created by Binary Wang on 2016/9/26. | ||||||
| @ -44,6 +43,20 @@ public class WxMpStoreServiceImpl implements WxMpStoreService { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMpStoreBaseInfo get(String poiId) throws WxErrorException { | ||||||
|  |     String url = API_BASE_URL + "/getpoi"; | ||||||
|  |     JsonObject paramObject = new JsonObject(); | ||||||
|  |     paramObject.addProperty("poi_id",poiId); | ||||||
|  |     String response = this.wxMpService.post(url, paramObject.toString()); | ||||||
|  |     WxError wxError = WxError.fromJson(response); | ||||||
|  |     if (wxError.getErrorCode() != 0) { | ||||||
|  |       throw new WxErrorException(wxError); | ||||||
|  |     } | ||||||
|  |     return WxMpStoreBaseInfo.fromJson(new JsonParser().parse(response).getAsJsonObject() | ||||||
|  |         .get("business").getAsJsonObject().get("base_info").toString()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   private void checkParameters(WxMpStoreBaseInfo request) { |   private void checkParameters(WxMpStoreBaseInfo request) { | ||||||
|     List<String> nullFields = Lists.newArrayList(); |     List<String> nullFields = Lists.newArrayList(); | ||||||
|     for (Entry<String, Reflect> entry : Reflect.on(request).fields() |     for (Entry<String, Reflect> entry : Reflect.on(request).fields() | ||||||
|  | |||||||
| @ -1,17 +1,15 @@ | |||||||
| package me.chanjar.weixin.mp.bean.store; | package me.chanjar.weixin.mp.bean.store; | ||||||
|  |  | ||||||
| import java.math.BigDecimal; |  | ||||||
| import java.util.List; |  | ||||||
|  |  | ||||||
| import org.apache.commons.lang3.builder.ToStringBuilder; |  | ||||||
| import org.apache.commons.lang3.builder.ToStringStyle; |  | ||||||
|  |  | ||||||
| import com.google.gson.JsonElement; | import com.google.gson.JsonElement; | ||||||
| import com.google.gson.JsonObject; | import com.google.gson.JsonObject; | ||||||
| import com.google.gson.annotations.SerializedName; | import com.google.gson.annotations.SerializedName; | ||||||
|  |  | ||||||
| import me.chanjar.weixin.common.annotation.Required; | import me.chanjar.weixin.common.annotation.Required; | ||||||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | ||||||
|  | import org.apache.commons.lang3.builder.ToStringBuilder; | ||||||
|  | import org.apache.commons.lang3.builder.ToStringStyle; | ||||||
|  |  | ||||||
|  | import java.math.BigDecimal; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 门店基础信息 |  * 门店基础信息 | ||||||
| @ -24,6 +22,10 @@ public class WxMpStoreBaseInfo { | |||||||
|     return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); |     return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   public static WxMpStoreBaseInfo fromJson(String json) { | ||||||
|  |     return WxMpGsonBuilder.create().fromJson(json, WxMpStoreBaseInfo.class); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   public String toJson() { |   public String toJson() { | ||||||
|     JsonElement base_info = WxMpGsonBuilder.create().toJsonTree(this); |     JsonElement base_info = WxMpGsonBuilder.create().toJsonTree(this); | ||||||
|     JsonObject jsonObject = new JsonObject(); |     JsonObject jsonObject = new JsonObject(); | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| package me.chanjar.weixin.mp.bean.store; | package me.chanjar.weixin.mp.bean.store; | ||||||
|  |  | ||||||
|  | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | ||||||
| import org.apache.commons.lang3.builder.ToStringBuilder; | import org.apache.commons.lang3.builder.ToStringBuilder; | ||||||
| import org.apache.commons.lang3.builder.ToStringStyle; | import org.apache.commons.lang3.builder.ToStringStyle; | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,20 +1,18 @@ | |||||||
| package me.chanjar.weixin.mp.api.impl; | package me.chanjar.weixin.mp.api.impl; | ||||||
|  |  | ||||||
| import static org.junit.Assert.assertNotNull; |  | ||||||
|  |  | ||||||
| import java.math.BigDecimal; |  | ||||||
| import java.util.List; |  | ||||||
|  |  | ||||||
| import org.testng.annotations.Guice; |  | ||||||
| import org.testng.annotations.Test; |  | ||||||
|  |  | ||||||
| import com.google.inject.Inject; | import com.google.inject.Inject; | ||||||
|  |  | ||||||
| import me.chanjar.weixin.common.exception.WxErrorException; | 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; | import me.chanjar.weixin.mp.bean.store.WxMpStoreListResult; | ||||||
|  | import org.testng.annotations.Guice; | ||||||
|  | import org.testng.annotations.Test; | ||||||
|  |  | ||||||
|  | import java.math.BigDecimal; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | import static org.junit.Assert.assertNotNull; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * @author 王彬 (Binary Wang) |  * @author 王彬 (Binary Wang) | ||||||
| @ -33,13 +31,18 @@ public class WxMpStoreServiceImplTest { | |||||||
|   public void testAdd() throws WxErrorException { |   public void testAdd() throws WxErrorException { | ||||||
|     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 testGet() throws WxErrorException { | ||||||
|  |     WxMpStoreBaseInfo result = this.wxMpService.getStoreService().get("291503654"); | ||||||
|  |     assertNotNull(result); | ||||||
|  |     System.err.println(result); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   public void testList() throws WxErrorException { |   public void testList() throws WxErrorException { | ||||||
|     WxMpStoreListResult result = this.wxMpService.getStoreService().list(0, 10); |     WxMpStoreListResult result = this.wxMpService.getStoreService().list(0, 10); | ||||||
|     assertNotNull(result); |     assertNotNull(result); | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 BinaryWang
					BinaryWang