Java源码示例:me.chanjar.weixin.cp.bean.WxCpUser

示例1
@Override
public List<WxCpUser> listByDepartment(Integer departId, Boolean fetchChild, Integer status) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?department_id=" + departId;
  String params = "";
  if (fetchChild != null) {
    params += "&fetch_child=" + (fetchChild ? "1" : "0");
  }
  if (status != null) {
    params += "&status=" + status;
  } else {
    params += "&status=0";
  }

  String responseContent = this.mainService.get(url, params);
  JsonElement tmpJsonElement = new JsonParser().parse(responseContent);
  return WxCpGsonBuilder.INSTANCE.create()
    .fromJson(tmpJsonElement.getAsJsonObject().get("userlist"),
      new TypeToken<List<WxCpUser>>() {
      }.getType()
    );
}
 
示例2
@Override
public List<WxCpUser> listSimpleByDepartment(Integer departId, Boolean fetchChild, Integer status) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?department_id=" + departId;
  String params = "";
  if (fetchChild != null) {
    params += "&fetch_child=" + (fetchChild ? "1" : "0");
  }
  if (status != null) {
    params += "&status=" + status;
  } else {
    params += "&status=0";
  }

  String responseContent = this.mainService.get(url, params);
  JsonElement tmpJsonElement = new JsonParser().parse(responseContent);
  return WxCpGsonBuilder.INSTANCE.create()
    .fromJson(
      tmpJsonElement.getAsJsonObject().get("userlist"),
      new TypeToken<List<WxCpUser>>() {
      }.getType()
    );
}
 
示例3
@Override
public List<WxCpUser> userList(Integer departId, Boolean fetchChild, Integer status) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?department_id=" + departId;
  String params = "";
  if (fetchChild != null) {
    params += "&fetch_child=" + (fetchChild ? "1" : "0");
  }
  if (status != null) {
    params += "&status=" + status;
  } else {
    params += "&status=0";
  }

  String responseContent = get(url, params);
  JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent)));
  return WxCpGsonBuilder.INSTANCE.create()
      .fromJson(
          tmpJsonElement.getAsJsonObject().get("userlist"),
          new TypeToken<List<WxCpUser>>() { }.getType()
      );
}
 
示例4
@Override
public List<WxCpUser> departGetUsers(Integer departId, Boolean fetchChild, Integer status) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?department_id=" + departId;
  String params = "";
  if (fetchChild != null) {
    params += "&fetch_child=" + (fetchChild ? "1" : "0");
  }
  if (status != null) {
    params += "&status=" + status;
  } else {
    params += "&status=0";
  }

  String responseContent = get(url, params);
  JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent)));
  return WxCpGsonBuilder.INSTANCE.create()
      .fromJson(
          tmpJsonElement.getAsJsonObject().get("userlist"),
          new TypeToken<List<WxCpUser>>() { }.getType()
      );
}
 
示例5
@Override
public List<WxCpUser> listUsersByTagId(String tagId) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/get?tagid=" + tagId;
  String responseContent = this.mainService.get(url, null);
  JsonElement tmpJsonElement = new JsonParser().parse(responseContent);
  return WxCpGsonBuilder.INSTANCE.create()
    .fromJson(
      tmpJsonElement.getAsJsonObject().get("userlist"),
      new TypeToken<List<WxCpUser>>() {
      }.getType()
    );
}
 
示例6
@Test
public void testCreate() throws Exception {
  WxCpUser user = new WxCpUser();
  user.setUserId(userId);
  user.setName("Some Woman");
  user.setDepartIds(new Integer[]{2});
  user.setEmail("[email protected]");
  user.setGender(Gender.FEMALE);
  user.setMobile("13560084979");
  user.setPosition("woman");
  user.setTelephone("3300393");
  user.addExtAttr("爱好", "table");
  this.wxCpService.getUserService().create(user);
}
 
示例7
@Test(dependsOnMethods = "testCreate")
public void testUpdate() throws Exception {
  WxCpUser user = new WxCpUser();
  user.setUserId(userId);
  user.setName("Some Woman");
  user.addExtAttr("爱好", "table2");
  this.wxCpService.getUserService().update(user);
}
 
示例8
@Test
public void testListByDepartment() throws Exception {
  List<WxCpUser> users = this.wxCpService.getUserService().listByDepartment(1, true, 0);
  assertNotEquals(users.size(), 0);
  for (WxCpUser user : users) {
    System.out.println(ToStringBuilder.reflectionToString(user, ToStringStyle.MULTI_LINE_STYLE));
  }
}
 
示例9
@Test
public void testListSimpleByDepartment() throws Exception {
  List<WxCpUser> users = this.wxCpService.getUserService().listSimpleByDepartment(1, true, 0);
  assertNotEquals(users.size(), 0);
  for (WxCpUser user : users) {
    System.out.println(ToStringBuilder.reflectionToString(user, ToStringStyle.MULTI_LINE_STYLE));
  }
}
 
示例10
@Override
public List<WxCpUser> tagGetUsers(String tagId) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/get?tagid=" + tagId;
  String responseContent = get(url, null);
  JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent)));
  return WxCpGsonBuilder.INSTANCE.create()
      .fromJson(
          tmpJsonElement.getAsJsonObject().get("userlist"),
          new TypeToken<List<WxCpUser>>() { }.getType()
      );
}
 
示例11
public WxCpUser deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
    throws JsonParseException {
  JsonObject o = json.getAsJsonObject();
  WxCpUser user = new WxCpUser();
  user.setUserId(GsonHelper.getString(o, "userid"));
  user.setName(GsonHelper.getString(o, "name"));

  if(o.get("department") != null) {
    JsonArray departJsonArray = o.get("department").getAsJsonArray();
    Integer[] departIds = new Integer[departJsonArray.size()];
    int i = 0;
    for (JsonElement jsonElement : departJsonArray) {
      departIds[i++] = jsonElement.getAsInt();
    }
    user.setDepartIds(departIds);
  }

  user.setPosition(GsonHelper.getString(o, "position"));
  user.setMobile(GsonHelper.getString(o, "mobile"));
  user.setGender(GsonHelper.getString(o, "gender"));
  user.setTel(GsonHelper.getString(o, "tel"));
  user.setEmail(GsonHelper.getString(o, "email"));
  user.setWeiXinId(GsonHelper.getString(o, "weixinid"));
  user.setAvatar(GsonHelper.getString(o, "avatar"));
  user.setStatus(GsonHelper.getInteger(o, "status"));

  if (GsonHelper.isNotNull(o.get("extattr"))) {
    JsonArray attrJsonElements = o.get("extattr").getAsJsonObject().get("attrs").getAsJsonArray();
    for (JsonElement attrJsonElement : attrJsonElements) {
      WxCpUser.Attr attr = new WxCpUser.Attr(
          GsonHelper.getString(attrJsonElement.getAsJsonObject(), "name"),
          GsonHelper.getString(attrJsonElement.getAsJsonObject(), "value")
      );
      user.getExtAttrs().add(attr);
    }
  }
  return user;
}
 
示例12
public void testUserCreate() throws WxErrorException {
  WxCpUser user = new WxCpUser();
  user.setUserId("some.woman");
  user.setName("Some Woman");
  user.setDepartIds(new Integer[] { 9, 8 });
  user.setEmail("[email protected]");
  user.setGender("女");
  user.setMobile("13560084979");
  user.setPosition("woman");
  user.setTel("3300393");
  user.addExtAttr("爱好", "table");
  wxCpService.userCreate(user);
}
 
示例13
@Test(dependsOnMethods = "testUserCreate")
public void testUserUpdate() throws WxErrorException {
  WxCpUser user = new WxCpUser();
  user.setUserId("some.woman");
  user.setName("Some Woman");
  user.addExtAttr("爱好", "table2");
  wxCpService.userUpdate(user);
}
 
示例14
@Override
public void create(WxCpUser user) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/create";
  this.mainService.post(url, user.toJson());
}
 
示例15
@Override
public void update(WxCpUser user) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/update";
  this.mainService.post(url, user.toJson());
}
 
示例16
@Override
public WxCpUser getById(String userid) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/get?userid=" + userid;
  String responseContent = this.mainService.get(url, null);
  return WxCpUser.fromJson(responseContent);
}
 
示例17
@Override
public WxCpUser deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
  throws JsonParseException {
  JsonObject o = json.getAsJsonObject();
  WxCpUser user = new WxCpUser();

  if (o.get("department") != null) {
    JsonArray departJsonArray = o.get("department").getAsJsonArray();
    Integer[] departIds = new Integer[departJsonArray.size()];
    int i = 0;
    for (JsonElement jsonElement : departJsonArray) {
      departIds[i++] = jsonElement.getAsInt();
    }
    user.setDepartIds(departIds);
  }

  user.setUserId(GsonHelper.getString(o, "userid"));
  user.setName(GsonHelper.getString(o, "name"));
  user.setPosition(GsonHelper.getString(o, "position"));
  user.setMobile(GsonHelper.getString(o, "mobile"));
  user.setGender(Gender.fromCode(GsonHelper.getString(o, "gender")));
  user.setEmail(GsonHelper.getString(o, "email"));
  user.setAvatar(GsonHelper.getString(o, "avatar"));
  user.setStatus(GsonHelper.getInteger(o, "status"));
  user.setEnable(GsonHelper.getInteger(o, "enable"));
  user.setIsLeader(GsonHelper.getInteger(o, "isleader"));
  user.setHideMobile(GsonHelper.getInteger(o, "hide_mobile"));
  user.setEnglishName(GsonHelper.getString(o, "english_name"));
  user.setTelephone(GsonHelper.getString(o, "telephone"));
  user.setQrCode(GsonHelper.getString(o, "qr_code"));
  user.setToInvite(GsonHelper.getBoolean(o, "to_invite"));

  if (GsonHelper.isNotNull(o.get("extattr"))) {
    JsonArray attrJsonElements = o.get("extattr").getAsJsonObject().get("attrs").getAsJsonArray();
    for (JsonElement attrJsonElement : attrJsonElements) {
      WxCpUser.Attr attr = new WxCpUser.Attr(
        GsonHelper.getString(attrJsonElement.getAsJsonObject(), "name"),
        GsonHelper.getString(attrJsonElement.getAsJsonObject(), "value")
      );
      user.getExtAttrs().add(attr);
    }
  }
  return user;
}
 
示例18
@Override
public JsonElement serialize(WxCpUser user, Type typeOfSrc, JsonSerializationContext context) {
  JsonObject o = new JsonObject();
  if (user.getUserId() != null) {
    o.addProperty("userid", user.getUserId());
  }
  if (user.getName() != null) {
    o.addProperty("name", user.getName());
  }
  if (user.getDepartIds() != null) {
    JsonArray jsonArray = new JsonArray();
    for (Integer departId : user.getDepartIds()) {
      jsonArray.add(new JsonPrimitive(departId));
    }
    o.add("department", jsonArray);
  }
  if (user.getPosition() != null) {
    o.addProperty("position", user.getPosition());
  }
  if (user.getMobile() != null) {
    o.addProperty("mobile", user.getMobile());
  }
  if (user.getGender() != null) {
    o.addProperty("gender", user.getGender().getCode());
  }
  if (user.getEmail() != null) {
    o.addProperty("email", user.getEmail());
  }
  if (user.getAvatar() != null) {
    o.addProperty("avatar", user.getAvatar());
  }
  if (user.getStatus() != null) {
    o.addProperty("status", user.getStatus());
  }
  if (user.getEnable() != null) {
    o.addProperty("enable", user.getEnable());
  }
  if (user.getIsLeader() != null) {
    o.addProperty("isleader", user.getIsLeader());
  }
  if (user.getHideMobile() != null) {
    o.addProperty("hide_mobile", user.getHideMobile());
  }
  if (user.getEnglishName() != null) {
    o.addProperty("english_name", user.getEnglishName());
  }
  if (user.getTelephone() != null) {
    o.addProperty("telephone", user.getTelephone());
  }
  if (user.getQrCode() != null) {
    o.addProperty("qr_code", user.getQrCode());
  }
  if (user.getToInvite() != null) {
    o.addProperty("to_invite", user.getToInvite());
  }

  if (user.getExtAttrs().size() > 0) {
    JsonArray attrsJsonArray = new JsonArray();
    for (WxCpUser.Attr attr : user.getExtAttrs()) {
      JsonObject attrJson = new JsonObject();
      attrJson.addProperty("name", attr.getName());
      attrJson.addProperty("value", attr.getValue());
      attrsJsonArray.add(attrJson);
    }
    JsonObject attrsJson = new JsonObject();
    attrsJson.add("attrs", attrsJsonArray);
    o.add("extattr", attrsJson);
  }
  return o;
}
 
示例19
@Test(dependsOnMethods = "testUpdate")
public void testGetById() throws Exception {
  WxCpUser user = this.wxCpService.getUserService().getById(userId);
  assertNotNull(user);
}
 
示例20
@Test(dependsOnMethods = {"testAddUsers2Tag", "testListAll", "testUpdate", "testCreate"})
public void testListUsersByTagId() throws Exception {
  List<WxCpUser> users = this.wxService.getTagService().listUsersByTagId(this.tagId);
  assertNotEquals(users.size(), 0);
}
 
示例21
/**
 * 导入企业通讯录全员
 */
public static void importWxCpAll() {
    JProgressBar progressBar = MemberForm.getInstance().getMemberTabImportProgressBar();
    JLabel memberCountLabel = MemberForm.getInstance().getMemberTabCountLabel();
    JPanel memberPanel = MemberForm.getInstance().getMemberPanel();

    try {
        if (WxCpMsgForm.getInstance().getAppNameComboBox().getSelectedItem() == null) {
            JOptionPane.showMessageDialog(MainWindow.getInstance().getMessagePanel(), "请先在编辑消息tab中选择应用!", "提示",
                    JOptionPane.ERROR_MESSAGE);
            MainWindow.getInstance().getTabbedPane().setSelectedIndex(2);
            return;
        }

        progressBar.setVisible(true);
        progressBar.setIndeterminate(true);
        int importedCount = 0;
        PushData.allUser = Collections.synchronizedList(new ArrayList<>());

        // 获取最小部门id
        List<WxCpDepart> wxCpDepartList = WxCpMsgSender.getWxCpService().getDepartmentService().list(null);
        long minDeptId = Long.MAX_VALUE;
        for (WxCpDepart wxCpDepart : wxCpDepartList) {
            if (wxCpDepart.getId() < minDeptId) {
                minDeptId = wxCpDepart.getId();
            }
        }
        // 获取用户
        List<WxCpUser> wxCpUsers = WxCpMsgSender.getWxCpService().getUserService().listByDepartment(minDeptId, true, 0);
        for (WxCpUser wxCpUser : wxCpUsers) {
            String statusStr = "";
            if (wxCpUser.getStatus() == 1) {
                statusStr = "已关注";
            } else if (wxCpUser.getStatus() == 2) {
                statusStr = "已冻结";
            } else if (wxCpUser.getStatus() == 4) {
                statusStr = "未关注";
            }
            Long[] depIds = wxCpUser.getDepartIds();
            List<String> deptNameList = Lists.newArrayList();
            if (depIds != null) {
                for (Long depId : depIds) {
                    deptNameList.add(wxCpIdToDeptNameMap.get(depId));
                }
            }
            String[] dataArray = new String[]{wxCpUser.getUserId(), wxCpUser.getName(), wxCpUser.getGender().getGenderName(), wxCpUser.getEmail(), String.join("/", deptNameList), wxCpUser.getPosition(), statusStr};
            PushData.allUser.add(dataArray);
            importedCount++;
            memberCountLabel.setText(String.valueOf(importedCount));
        }
        renderMemberListTable();
        if (!PushData.fixRateScheduling) {
            JOptionPane.showMessageDialog(memberPanel, "导入完成!", "完成", JOptionPane.INFORMATION_MESSAGE);
        }
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(memberPanel, "导入失败!\n\n" + ex, "失败",
                JOptionPane.ERROR_MESSAGE);
        logger.error(ex.toString());
    } finally {
        progressBar.setIndeterminate(false);
        progressBar.setVisible(false);
    }
}
 
示例22
@Override
public void userCreate(WxCpUser user) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/create";
  post(url, user.toJson());
}
 
示例23
@Override
public void userUpdate(WxCpUser user) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/update";
  post(url, user.toJson());
}
 
示例24
@Override
public WxCpUser userGet(String userid) throws WxErrorException {
  String url = "https://qyapi.weixin.qq.com/cgi-bin/user/get?userid=" + userid;
  String responseContent = get(url, null);
  return WxCpUser.fromJson(responseContent);
}
 
示例25
@Override
public JsonElement serialize(WxCpUser user, Type typeOfSrc, JsonSerializationContext context) {
  JsonObject o = new JsonObject();
  if (user.getUserId() != null) {
    o.addProperty("userid", user.getUserId());
  }
  if (user.getName() != null) {
    o.addProperty("name", user.getName());
  }
  if (user.getDepartIds() != null) {
    JsonArray jsonArray = new JsonArray();
    for (Integer departId : user.getDepartIds()) {
      jsonArray.add(new JsonPrimitive(departId));
    }
    o.add("department", jsonArray);
  }
  if (user.getPosition() != null) {
    o.addProperty("position", user.getPosition());
  }
  if (user.getMobile() != null) {
    o.addProperty("mobile", user.getMobile());
  }
  if (user.getGender() != null) {
    o.addProperty("gender", user.getGender());
  }
  if (user.getTel() != null) {
    o.addProperty("tel", user.getTel());
  }
  if (user.getEmail() != null) {
    o.addProperty("email", user.getEmail());
  }
  if (user.getWeiXinId() != null) {
    o.addProperty("weixinid", user.getWeiXinId());
  }
  if (user.getAvatar() != null) {
    o.addProperty("avatar", user.getAvatar());
  }
  if (user.getStatus() != null) {
    o.addProperty("status", user.getStatus());
  }
  if (user.getEnable() != null) {
    o.addProperty("enable", user.getEnable());
  }
  if (user.getExtAttrs().size() > 0) {
    JsonArray attrsJsonArray = new JsonArray();
    for (WxCpUser.Attr attr : user.getExtAttrs()) {
      JsonObject attrJson = new JsonObject();
      attrJson.addProperty("name", attr.getName());
      attrJson.addProperty("value", attr.getValue());
      attrsJsonArray.add(attrJson);
    }
    JsonObject attrsJson = new JsonObject();
    attrsJson.add("attrs", attrsJsonArray);
    o.add("extattr", attrsJson);
  }
  return o;
}
 
示例26
@Test(dependsOnMethods = "testUserUpdate")
public void testUserGet() throws WxErrorException {
  WxCpUser user = wxCpService.userGet("some.woman");
  Assert.assertNotNull(user);
}
 
示例27
@Test(dependsOnMethods = "testUserGet")
public void testDepartGetUsers() throws WxErrorException {
  List<WxCpUser> users = wxCpService.departGetUsers(1, true, 0);
  Assert.assertNotEquals(users.size(), 0);
}
 
示例28
@Test(dependsOnMethods = "testTagAddUsers")
public void testTagGetUsers() throws Exception {
  List<WxCpUser> users = wxService.tagGetUsers(tagId);
  Assert.assertNotEquals(users.size(), 0);
}
 
示例29
/**
 * 获取标签成员.
 *
 * @param tagId 标签ID
 */
List<WxCpUser> listUsersByTagId(String tagId) throws WxErrorException;
 
示例30
/**
 * <pre>
 * 获取部门成员(详情)
 *
 * http://qydev.weixin.qq.com/wiki/index.php?title=管理成员#.E8.8E.B7.E5.8F.96.E9.83.A8.E9.97.A8.E6.88.90.E5.91.98.28.E8.AF.A6.E6.83.85.29
 * </pre>
 *
 * @param departId   必填。部门id
 * @param fetchChild 非必填。1/0:是否递归获取子部门下面的成员
 * @param status     非必填。0获取全部员工,1获取已关注成员列表,2获取禁用成员列表,4获取未关注成员列表。status可叠加
 */
List<WxCpUser> listByDepartment(Integer departId, Boolean fetchChild, Integer status) throws WxErrorException;