OapiV2UserCreateRequest.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. <?php
  2. /**
  3. * dingtalk API: dingtalk.oapi.v2.user.create request
  4. *
  5. * @author auto create
  6. * @since 1.0, 2021.12.02
  7. */
  8. class OapiV2UserCreateRequest
  9. {
  10. /**
  11. * 创建本组织专属帐号时可指定头像MediaId。只支持参考jpg/png,生成方法 https://developers.dingtalk.com/document/app/upload-media-files
  12. **/
  13. private $avatarMediaId;
  14. /**
  15. * 所属部门id列表
  16. **/
  17. private $deptIdList;
  18. /**
  19. * 员工在对应的部门中的排序。
  20. **/
  21. private $deptOrderList;
  22. /**
  23. * 部门内任职
  24. **/
  25. private $deptPositionList;
  26. /**
  27. * 员工在对应的部门中的职位。
  28. **/
  29. private $deptTitleList;
  30. /**
  31. * 员工邮箱,长度最大50个字符。企业内必须唯一,不可重复。
  32. **/
  33. private $email;
  34. /**
  35. * 是否专属帐号(true时,不能指定loginEmail或mobile)
  36. **/
  37. private $exclusiveAccount;
  38. /**
  39. * 专属帐号类型:sso: 企业自建专属帐号;dingtalk:钉钉自建专属帐号。
  40. **/
  41. private $exclusiveAccountType;
  42. /**
  43. * 专属帐号手机号
  44. **/
  45. private $exclusiveMobile;
  46. /**
  47. * 专属帐号手机号验证状态
  48. **/
  49. private $exclusiveMobileVerifyStatus;
  50. /**
  51. * 扩展属性,长度最大2000个字符。可以设置多种属性(手机上最多显示10个扩展属性,具体显示哪些属性,请到OA管理后台->设置->通讯录信息设置和OA管理后台->设置->手机端显示信息设置)。 该字段的值支持链接类型填写,同时链接支持变量通配符自动替换,目前支持通配符有:userid,corpid。示例: [工位地址](http://www.dingtalk.com?userid=#userid#&corpid=#corpid#)
  52. **/
  53. private $extension;
  54. /**
  55. * 是否号码隐藏。隐藏手机号后,手机号在个人资料页隐藏,但仍可对其发DING、发起钉钉免费商务电话。
  56. **/
  57. private $hideMobile;
  58. /**
  59. * 入职时间,Unix时间戳,单位ms。
  60. **/
  61. private $hiredDate;
  62. /**
  63. * 钉钉专属帐号初始密码
  64. **/
  65. private $initPassword;
  66. /**
  67. * 员工工号,长度最大50个字符。
  68. **/
  69. private $jobNumber;
  70. /**
  71. * 登录邮箱
  72. **/
  73. private $loginEmail;
  74. /**
  75. * 钉钉专属帐号登录名
  76. **/
  77. private $loginId;
  78. /**
  79. * 直属主管
  80. **/
  81. private $managerUserid;
  82. /**
  83. * 手机号码,企业内必须唯一,不可重复。如果是国际号码,请使用+xx-xxxxxx的格式
  84. **/
  85. private $mobile;
  86. /**
  87. * 员工名称,长度最大80个字符。
  88. **/
  89. private $name;
  90. /**
  91. * 创建本组织专属帐号时可指定昵称
  92. **/
  93. private $nickname;
  94. /**
  95. * 员工的企业邮箱,长度最大100个字符。员工的企业邮箱已开通,才能增加此字段。
  96. **/
  97. private $orgEmail;
  98. /**
  99. * 企业邮箱类型(profession:标准版,base:基础版)
  100. **/
  101. private $orgEmailType;
  102. /**
  103. * 需要添加的专属帐号所属corpid
  104. **/
  105. private $outerExclusiveCorpid;
  106. /**
  107. * 需要添加的专属帐号所属userid
  108. **/
  109. private $outerExclusiveUserid;
  110. /**
  111. * 备注,长度最大2000个字符。
  112. **/
  113. private $remark;
  114. /**
  115. * 是否高管模式。开启后,手机号码对所有员工隐藏。普通员工无法对其发DING、发起钉钉免费商务电话。高管之间不受影响。
  116. **/
  117. private $seniorMode;
  118. /**
  119. * 分机号,长度最大50个字符。企业内必须唯一,不可重复
  120. **/
  121. private $telephone;
  122. /**
  123. * 职位,长度最大200个字符。
  124. **/
  125. private $title;
  126. /**
  127. * 员工id,长度最大64个字符。员工在当前企业内的唯一标识。
  128. **/
  129. private $userid;
  130. /**
  131. * 办公地点,长度最大100个字符。
  132. **/
  133. private $workPlace;
  134. private $apiParas = array();
  135. public function setAvatarMediaId($avatarMediaId)
  136. {
  137. $this->avatarMediaId = $avatarMediaId;
  138. $this->apiParas["avatarMediaId"] = $avatarMediaId;
  139. }
  140. public function getAvatarMediaId()
  141. {
  142. return $this->avatarMediaId;
  143. }
  144. public function setDeptIdList($deptIdList)
  145. {
  146. $this->deptIdList = $deptIdList;
  147. $this->apiParas["dept_id_list"] = $deptIdList;
  148. }
  149. public function getDeptIdList()
  150. {
  151. return $this->deptIdList;
  152. }
  153. public function setDeptOrderList($deptOrderList)
  154. {
  155. $this->deptOrderList = $deptOrderList;
  156. $this->apiParas["dept_order_list"] = $deptOrderList;
  157. }
  158. public function getDeptOrderList()
  159. {
  160. return $this->deptOrderList;
  161. }
  162. public function setDeptPositionList($deptPositionList)
  163. {
  164. $this->deptPositionList = $deptPositionList;
  165. $this->apiParas["dept_position_list"] = $deptPositionList;
  166. }
  167. public function getDeptPositionList()
  168. {
  169. return $this->deptPositionList;
  170. }
  171. public function setDeptTitleList($deptTitleList)
  172. {
  173. $this->deptTitleList = $deptTitleList;
  174. $this->apiParas["dept_title_list"] = $deptTitleList;
  175. }
  176. public function getDeptTitleList()
  177. {
  178. return $this->deptTitleList;
  179. }
  180. public function setEmail($email)
  181. {
  182. $this->email = $email;
  183. $this->apiParas["email"] = $email;
  184. }
  185. public function getEmail()
  186. {
  187. return $this->email;
  188. }
  189. public function setExclusiveAccount($exclusiveAccount)
  190. {
  191. $this->exclusiveAccount = $exclusiveAccount;
  192. $this->apiParas["exclusive_account"] = $exclusiveAccount;
  193. }
  194. public function getExclusiveAccount()
  195. {
  196. return $this->exclusiveAccount;
  197. }
  198. public function setExclusiveAccountType($exclusiveAccountType)
  199. {
  200. $this->exclusiveAccountType = $exclusiveAccountType;
  201. $this->apiParas["exclusive_account_type"] = $exclusiveAccountType;
  202. }
  203. public function getExclusiveAccountType()
  204. {
  205. return $this->exclusiveAccountType;
  206. }
  207. public function setExclusiveMobile($exclusiveMobile)
  208. {
  209. $this->exclusiveMobile = $exclusiveMobile;
  210. $this->apiParas["exclusive_mobile"] = $exclusiveMobile;
  211. }
  212. public function getExclusiveMobile()
  213. {
  214. return $this->exclusiveMobile;
  215. }
  216. public function setExclusiveMobileVerifyStatus($exclusiveMobileVerifyStatus)
  217. {
  218. $this->exclusiveMobileVerifyStatus = $exclusiveMobileVerifyStatus;
  219. $this->apiParas["exclusive_mobile_verify_status"] = $exclusiveMobileVerifyStatus;
  220. }
  221. public function getExclusiveMobileVerifyStatus()
  222. {
  223. return $this->exclusiveMobileVerifyStatus;
  224. }
  225. public function setExtension($extension)
  226. {
  227. $this->extension = $extension;
  228. $this->apiParas["extension"] = $extension;
  229. }
  230. public function getExtension()
  231. {
  232. return $this->extension;
  233. }
  234. public function setHideMobile($hideMobile)
  235. {
  236. $this->hideMobile = $hideMobile;
  237. $this->apiParas["hide_mobile"] = $hideMobile;
  238. }
  239. public function getHideMobile()
  240. {
  241. return $this->hideMobile;
  242. }
  243. public function setHiredDate($hiredDate)
  244. {
  245. $this->hiredDate = $hiredDate;
  246. $this->apiParas["hired_date"] = $hiredDate;
  247. }
  248. public function getHiredDate()
  249. {
  250. return $this->hiredDate;
  251. }
  252. public function setInitPassword($initPassword)
  253. {
  254. $this->initPassword = $initPassword;
  255. $this->apiParas["init_password"] = $initPassword;
  256. }
  257. public function getInitPassword()
  258. {
  259. return $this->initPassword;
  260. }
  261. public function setJobNumber($jobNumber)
  262. {
  263. $this->jobNumber = $jobNumber;
  264. $this->apiParas["job_number"] = $jobNumber;
  265. }
  266. public function getJobNumber()
  267. {
  268. return $this->jobNumber;
  269. }
  270. public function setLoginEmail($loginEmail)
  271. {
  272. $this->loginEmail = $loginEmail;
  273. $this->apiParas["login_email"] = $loginEmail;
  274. }
  275. public function getLoginEmail()
  276. {
  277. return $this->loginEmail;
  278. }
  279. public function setLoginId($loginId)
  280. {
  281. $this->loginId = $loginId;
  282. $this->apiParas["login_id"] = $loginId;
  283. }
  284. public function getLoginId()
  285. {
  286. return $this->loginId;
  287. }
  288. public function setManagerUserid($managerUserid)
  289. {
  290. $this->managerUserid = $managerUserid;
  291. $this->apiParas["manager_userid"] = $managerUserid;
  292. }
  293. public function getManagerUserid()
  294. {
  295. return $this->managerUserid;
  296. }
  297. public function setMobile($mobile)
  298. {
  299. $this->mobile = $mobile;
  300. $this->apiParas["mobile"] = $mobile;
  301. }
  302. public function getMobile()
  303. {
  304. return $this->mobile;
  305. }
  306. public function setName($name)
  307. {
  308. $this->name = $name;
  309. $this->apiParas["name"] = $name;
  310. }
  311. public function getName()
  312. {
  313. return $this->name;
  314. }
  315. public function setNickname($nickname)
  316. {
  317. $this->nickname = $nickname;
  318. $this->apiParas["nickname"] = $nickname;
  319. }
  320. public function getNickname()
  321. {
  322. return $this->nickname;
  323. }
  324. public function setOrgEmail($orgEmail)
  325. {
  326. $this->orgEmail = $orgEmail;
  327. $this->apiParas["org_email"] = $orgEmail;
  328. }
  329. public function getOrgEmail()
  330. {
  331. return $this->orgEmail;
  332. }
  333. public function setOrgEmailType($orgEmailType)
  334. {
  335. $this->orgEmailType = $orgEmailType;
  336. $this->apiParas["org_email_type"] = $orgEmailType;
  337. }
  338. public function getOrgEmailType()
  339. {
  340. return $this->orgEmailType;
  341. }
  342. public function setOuterExclusiveCorpid($outerExclusiveCorpid)
  343. {
  344. $this->outerExclusiveCorpid = $outerExclusiveCorpid;
  345. $this->apiParas["outer_exclusive_corpid"] = $outerExclusiveCorpid;
  346. }
  347. public function getOuterExclusiveCorpid()
  348. {
  349. return $this->outerExclusiveCorpid;
  350. }
  351. public function setOuterExclusiveUserid($outerExclusiveUserid)
  352. {
  353. $this->outerExclusiveUserid = $outerExclusiveUserid;
  354. $this->apiParas["outer_exclusive_userid"] = $outerExclusiveUserid;
  355. }
  356. public function getOuterExclusiveUserid()
  357. {
  358. return $this->outerExclusiveUserid;
  359. }
  360. public function setRemark($remark)
  361. {
  362. $this->remark = $remark;
  363. $this->apiParas["remark"] = $remark;
  364. }
  365. public function getRemark()
  366. {
  367. return $this->remark;
  368. }
  369. public function setSeniorMode($seniorMode)
  370. {
  371. $this->seniorMode = $seniorMode;
  372. $this->apiParas["senior_mode"] = $seniorMode;
  373. }
  374. public function getSeniorMode()
  375. {
  376. return $this->seniorMode;
  377. }
  378. public function setTelephone($telephone)
  379. {
  380. $this->telephone = $telephone;
  381. $this->apiParas["telephone"] = $telephone;
  382. }
  383. public function getTelephone()
  384. {
  385. return $this->telephone;
  386. }
  387. public function setTitle($title)
  388. {
  389. $this->title = $title;
  390. $this->apiParas["title"] = $title;
  391. }
  392. public function getTitle()
  393. {
  394. return $this->title;
  395. }
  396. public function setUserid($userid)
  397. {
  398. $this->userid = $userid;
  399. $this->apiParas["userid"] = $userid;
  400. }
  401. public function getUserid()
  402. {
  403. return $this->userid;
  404. }
  405. public function setWorkPlace($workPlace)
  406. {
  407. $this->workPlace = $workPlace;
  408. $this->apiParas["work_place"] = $workPlace;
  409. }
  410. public function getWorkPlace()
  411. {
  412. return $this->workPlace;
  413. }
  414. public function getApiMethodName()
  415. {
  416. return "dingtalk.oapi.v2.user.create";
  417. }
  418. public function getApiParas()
  419. {
  420. return $this->apiParas;
  421. }
  422. public function check()
  423. {
  424. RequestCheckUtil::checkMaxListSize($this->deptIdList,100,"deptIdList");
  425. RequestCheckUtil::checkMaxLength($this->email,50,"email");
  426. RequestCheckUtil::checkMinValue($this->hiredDate,1,"hiredDate");
  427. RequestCheckUtil::checkMaxLength($this->jobNumber,50,"jobNumber");
  428. RequestCheckUtil::checkMaxLength($this->loginEmail,64,"loginEmail");
  429. RequestCheckUtil::checkNotNull($this->name,"name");
  430. RequestCheckUtil::checkMaxLength($this->name,80,"name");
  431. RequestCheckUtil::checkMaxLength($this->orgEmail,100,"orgEmail");
  432. RequestCheckUtil::checkMaxLength($this->remark,2000,"remark");
  433. RequestCheckUtil::checkMaxLength($this->telephone,50,"telephone");
  434. RequestCheckUtil::checkMaxLength($this->title,200,"title");
  435. RequestCheckUtil::checkMaxLength($this->userid,64,"userid");
  436. RequestCheckUtil::checkMaxLength($this->workPlace,100,"workPlace");
  437. }
  438. public function putOtherTextParam($key, $value) {
  439. $this->apiParas[$key] = $value;
  440. $this->$key = $value;
  441. }
  442. }