SemQuery.java
- package com.foxinmy.weixin4j.mp.model;
- import java.io.Serializable;
- import com.alibaba.fastjson.JSONObject;
- import com.foxinmy.weixin4j.mp.type.SemCategory;
- /**
- * 语义理解参数
- *
- * @className SemQuery
- * @author jinyu(foxinmy@gmail.com)
- * @date 2014年11月7日
- * @since JDK 1.6
- * @see
- */
- public class SemQuery implements Serializable {
- private static final long serialVersionUID = 679548284525912436L;
- private JSONObject jsonObj;
- /**
- * 输入文本串
- *
- * @param query
- */
- public SemQuery(String query) {
- jsonObj = new JSONObject();
- jsonObj.put("query", query);
- }
- /**
- * 城市名称,与经纬度二选一传入
- *
- * @param city
- * @return
- */
- public SemQuery city(String city) {
- jsonObj.put("city", city);
- return this;
- }
- /**
- * 需要使用的服务类别,多个用,隔开,不能为空
- *
- * @param categorys
- * @return
- */
- public SemQuery category(SemCategory... categorys) {
- StringBuilder category = new StringBuilder();
- if (categorys.length == 1) {
- category.append(categorys[0].name());
- } else {
- for (int i = 0; i < categorys.length - 1; i++) {
- category.append(categorys[i].name()).append(",");
- }
- category.append(categorys[categorys.length - 1].name());
- }
- jsonObj.put("category", category.toString());
- return this;
- }
- /**
- * App id,开发者的唯一标识,用于区分开放者, 如果为空,则没法使用上下文理解功能。
- *
- * @param appid
- * @return
- */
- public SemQuery appid(String appid) {
- jsonObj.put("appid", appid);
- return this;
- }
- /**
- * 用户唯一 id(并非开发者 id),用于区分该开发者下不同用户,如果为空,则没法使用上下文理解功能。appid 和
- * uid同时存在的情况下,才可以使用上下文理解功能。
- *
- * @param uid
- * @return
- */
- public SemQuery uid(String uid) {
- jsonObj.put("uid", uid);
- return this;
- }
- /**
- * 区域名称,在城市存在的情况下可省;与经纬度 二选一传入
- *
- * @param region
- * @return
- */
- public SemQuery region(String region) {
- jsonObj.put("region", region);
- return this;
- }
- /**
- * 纬度经度;与城市二选一传入
- *
- * @param latitude
- * @param longitude
- * @return
- */
- public SemQuery location(float latitude, float longitude) {
- jsonObj.put("latitude", latitude);
- jsonObj.put("longitude", longitude);
- return this;
- }
- /**
- * 输入文本串
- *
- * @param query
- * @return
- */
- public static SemQuery build(String query) {
- return new SemQuery(query);
- }
- public String toJson() {
- return jsonObj.toJSONString();
- }
- @Override
- public String toString() {
- return "SemQuery " + jsonObj;
- }
- }