OaAdmin.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace huolib\oa;
  3. use huolib\tool\Math;
  4. class OaAdmin extends Oa {
  5. public function __construct() {
  6. parent::__construct();
  7. }
  8. /**
  9. *
  10. * oa登录跳转接口
  11. *
  12. * @param string $user_login
  13. * @param int $role_type
  14. *
  15. * @return bool
  16. *
  17. */
  18. public function adminOaLogin($user_login = '', $role_type = 0) {
  19. $func = 'ADMIN_LOGIN_URL';
  20. $_time = time();
  21. $_query_param = array();
  22. $_query_param['username'] = $user_login;
  23. $_query_param['group_id'] = $this->roleToNodeGroup($role_type);
  24. $_query_param['time'] = $_time;
  25. $_data = array();
  26. $_data['tc'] = $_time;
  27. $_data['data'] = $this->aesEnCode(json_encode($_query_param), $_time);
  28. $this->jumpOa($func, $_data);
  29. }
  30. /**
  31. * oa跳转过来的登陆
  32. *
  33. * @param string $tc
  34. * @param string $data
  35. * @param int $group_id
  36. *
  37. * @return bool
  38. */
  39. public function oaAdminLogin($tc = '', $data = '', $group_id = 0) {
  40. if (empty($tc) || empty($data) || empty($group_id)) {
  41. return '';
  42. }
  43. $_data_str = $this->aesDeCode($data, $tc);
  44. if (!$_data_str) {
  45. return '';
  46. }
  47. $_user_info = json_decode($_data_str, true);
  48. if (empty($_user_info)) {
  49. return '';
  50. }
  51. $_user_login = $this->getVal($_user_info, 'username');
  52. $_group_id = $this->getVal($_user_info, 'group_id');
  53. $_time = $this->getVal($_user_info, 'time');
  54. if ($group_id != $_group_id) {
  55. return '';
  56. }
  57. if (time() > Math::addBigNum($_time, 20)) {
  58. return '';
  59. }
  60. return $_user_login;
  61. }
  62. /**
  63. *
  64. * 自定义错误处理
  65. *
  66. * @param $msg 输出的信息
  67. * @param string $level 输出等级
  68. */
  69. private function _error($msg, $level = 'error') {
  70. $_info = 'huosdk\oa\Oalogin Error:'.$msg;
  71. \think\Log::write($_info, $level);
  72. }
  73. }