OrgConvertUtil.java 2.85 KB
package com.hotent.system.util;



import java.math.BigDecimal;
import java.util.Objects;

import com.fasterxml.jackson.databind.JsonNode;
import com.hotent.base.util.BeanUtils;
import com.hotent.base.util.StringUtil;
import com.hotent.system.model.DingTalkOrg;
import com.hotent.system.model.WxOrg;
import com.hotent.system.model.WxUser;
import com.hotent.system.model.WxUserV2;


public class OrgConvertUtil {

	public static WxUser userToWxUser(JsonNode user){
		WxUser wxUser = new WxUser();
//		String email= (user.get("email")==null||user.get("email").isNull())? "" : user.get("email").asText();
//		String sex= (user.get("sex") == null ||user.get("sex").isNull()) ? "" : user.get("sex").asText();
		String mobile=user.get("mobile").asText();
		String fullname=user.get("fullname").asText();
		String account=user.get("account").asText();
		//没有主组织,则挂在根部门下
		String deptStr = (user.get("department") == null || StringUtil.isEmpty(user.get("department").asText())) ? "1" : user.get("department").asText();
		String[] department = deptStr.split(",");

		wxUser.setDepartment(department);
//		wxUser.setEmail(email);
//		wxUser.setGender(sex);
		wxUser.setMobile(mobile);
		wxUser.setName(fullname);
		wxUser.setUserid(account);
		return wxUser;
	}

	public static WxUserV2 userToWxUserV2(JsonNode user){
		WxUserV2 wxUser = new WxUserV2();
		String mobile=user.get("mobile").asText();
		String fullname=user.get("fullname").asText();
		String account=user.get("account").asText();
		//没有主组织,则挂在根部门下
		String deptStr = (user.get("department") == null || StringUtil.isEmpty(user.get("department").asText())) ? "1" : user.get("department").asText();
		Integer[] arrDepartment = null;
		if(StringUtil.isNotEmpty(deptStr)){
			String[] department = deptStr.split(",");
			arrDepartment = new Integer[department.length];
			for (int i=0;i<department.length;i++){
				arrDepartment[i] = Integer.parseInt(department[i]);
			}
		}
		wxUser.setDepartment(arrDepartment);
		wxUser.setMobile(mobile);
		wxUser.setName(fullname);
		wxUser.setUserid(account);
		return wxUser;
	}

	public static WxOrg sysOrgToWxOrg(JsonNode org){
		WxOrg wxorg = new WxOrg();
		wxorg.setId(rootOrgId2DeptId(org.get("id").asText()));
		wxorg.setParentid(rootOrgId2DeptId(org.get("parentId").asText()));
		wxorg.setName(org.get("name").asText());
		if(org.get("orderNo")!=null){
			//由于企业微信的order值大的排序靠前,值范围是[0, 2^32),所以拿最大范围减去orderNo才符合企业微信的排序规则
			wxorg.setOrder(BigDecimal.valueOf(Integer.MAX_VALUE).subtract(BigDecimal.valueOf(org.get("orderNo").asInt())).intValue());
		}
		return wxorg;
	}
	public static String rootOrgId2DeptId(String orgId){
		return Objects.equals("0", orgId)?"1":orgId;
	}
	public static String rootDeptId2OrgId(String deptId){
		return Objects.equals("1", deptId)?"0":deptId;
	}

}