php怎么搭建员工信息管理系统

php怎么搭建员工信息管理系统,第1张

下载MYSQL 安装 创建数据库 下载PHP环境 WAMP并安装,下载编辑器例如sublime text,下载熟悉的php框架例如CI 将CI包解压至wamp的www文件夹下,使用sublime text 打开文件夹,配置CI框架内的数据库等信息,使用CI框架编写程序;

1、打开软件,登录好越达系统,进入组织管理模块。

2、在组织架构界面中,选择要添加员工信息的部门,并点击右侧的“添加员工”按钮,进入员工信息编辑页面。

3、在员工信息编辑页面,填写员工的详细信息,如姓名、性别、联系方式等。同时,可以上传员工的照片和相关证件照片,以便于后续的管理和审核。

4、在填写完员工信息后,点击“保存”按钮,系统将自动为该员工分配一份个人档案,并将其信息存储在系统数据库中。

5、在添加员工之后,系统管理员可以对员工信息进行修改、删除、查询等 *** 作,以便于更好地管理企业人力资源。

做过一个E应用,使用lumen框架,和你的思路是一样的,新用户点进去就自动授权注册应用,数据存到我们自己的数据库中,不依赖钉钉,我们还同步了部门信息,如果粘贴复制和下面的那个同学一样,看上去你也会觉得懵,方法都是封装好了的。

建议你这样试试看:

 获取AccessToken:

后端通过corpid,corpsecret请求接口gettoken?corpid=id&corpsecret=secrect获取AccessToken

获取钉钉用户userid:

前端需要相应的处理,携带authCode请求,加上AccessToken这两个参数请求接口/user/getuserinfo?access_token=access_token&code=authCode这个

获取钉钉用户详情:

使用access_token和上一步的钉钉userid 请求接口 /user/get?access_token=ACCESS_TOKEN&userid=

插入钉钉用户的数据到你的 数据库中

我们这样做的:

/**

* 钉钉免登陆获获取用信息

* @param $authCode

* @param $url

* @return array

*/

static function outhLogin($authCode, $url)

{

if (empty($authCode) || empty($url)) {

return self::returnError('1101', self::$errorArray['1101'])

}

$accessToken = ComponentDingtalk::getPcAccessToken()

if ($accessToken['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '获取access_token失败')

return self::returnError('1102', self::$errorArray['1102'])

}

$dingUserId = ComponentDingtalk::getDingUserid($accessToken['data'], $authCode)

if ($dingUserId['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用户userid获取失败(调用钉钉API)')

return self::returnError('1103', self::$errorArray['1103'])

}

$dinguserInfo = ComponentDingtalk::getDingUserInfo($accessToken['data'], $dingUserId['data'])

if ($dinguserInfo['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用户信息获取失败(调用钉钉API)')

return self::returnError('1104', self::$errorArray['1004'])

}

$userInfo = $dinguserInfo['data']

return self::transaction(function () use ($accessToken, $userInfo, $url) {

if (\count($userInfo['department']) >1) {

$departIdArr = []

$departNameArr = []

for ($i = 0, $iMax = \count($userInfo['department'])$i <$iMax$i++) {

$departInfo[$i] = ServerDepartment::getByDdDepartid($userInfo['department'][$i])

$departIdArr[] = $departInfo[$i]['id']

$departNameArr[] = $departInfo[$i]['name']

}

$depart['id'] = implode(',', $departIdArr)

$depart['name'] = implode(',', $departNameArr)

} else {

$ddDepartmentId = implode(',', $userInfo['department'])

$depart = ServerDepartment::getByDdDepartid($ddDepartmentId)

}

//插入用户

$user = ServerEmployee::getByDdUserid($userInfo['userid'])

if ($user &&$user['status'] == 2) {

return self::returnError('1105', self::$errorArray['1105'])

}

if (empty($user)) {

$roleId = 0

$departId = $depart['id']

$name = $userInfo['name']

$mobile = $userInfo['mobile']

$departName = $depart['name']

$position = $userInfo['position']

$ddUserid = $userInfo['userid']

$ddStatus = $userInfo['active'] ? 1 : 2

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE)

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime'])

$token = self::_createToken($userInfo['userid'], $tokenOverAt)

$status = 1

$userId = ServerEmployee::insert($roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status)

if (!$userId) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用户初始化创建失败')

return self::returnError('1106', self::$errorArray['1106'])

}

}

$userId = $userId ?? $user['id']

// 更新Token

$id = $userId

$roleId = $user['roleId']

$departId = $depart['id']

$name = $userInfo['name']

$mobile = $userInfo['mobile']

$departName = $depart['name']

$position = $userInfo['position']

$ddUserid = $userInfo['userid']

$ddStatus = $userInfo['active'] ? 1 : 2

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE)

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime'])

$token = self::_createToken($userInfo['userid'], $tokenOverAt)

$status = 1

$updateParams = ServerEmployee::update($id, $roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status)

if (!$updateParams) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用户信息更新失败' . json_encode($updateParams, JSON_UNESCAPED_UNICODE) . '/' . json_encode([$id, $roleId, $departId, $name, $mobile, $depart, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status]))

return self::returnError('1107', self::$errorArray['1107'])

}

// 前端的配置信息

// 获取jsTicket

$jsTicket = ComponentDingtalk::getPcJsTicket($accessToken['data'])

if ($jsTicket['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '获取jsTicket失败(调用钉钉API)')

return self::returnError('1111', self::$errorArray['1111'])

}

// 组装签名数据

$curUrl = $url

$nonceStr = uniqid('', true)

$agentId = $_ENV['PROJECT_ddInterfaceAgentID']

$timeStamp = time()

$corpId = $_ENV['PROJECT_ddInterfaceCorpId']

$signature = ComponentDingtalk::getSign($jsTicket['data'], $nonceStr, $timeStamp, $curUrl)

$config = array(

'url' =>urldecode($curUrl),

'nonceStr' =>$nonceStr,

'agentId' =>$agentId,

'timeStamp' =>$timeStamp,

'corpId' =>$corpId,

'signature' =>$signature

)

// 获取当前角色的权限

$roleInfo = ServerRole::getById($roleId)

// 当前用户的顶级部门(不含根部门)

$departInfo = ServerDepartment::getById($departId)

if ($departInfo['parentid'] == 1) {  // 二级部门(总经办)

$departRootId = $departId

$departRootName = $departName

} else {

$sonDepart = ServerDepartment::getById($departInfo['parentid'])//分组

if ($sonDepart['parentid'] == 1) {

$departRootId = $sonDepart['id']

$departRootName = $sonDepart['name']

} else {

$grandsonDepart = ServerDepartment::getById($sonDepart['parentid'])//部门

if ($grandsonDepart['parentid'] == 1) {

$departRootId = $grandsonDepart['id']

$departRootName = $grandsonDepart['name']

} else {

$grandchildDepart = ServerDepartment::getById($grandsonDepart['parentid'])//分公司

$departRootId = $grandchildDepart['id']

$departRootName = $grandchildDepart['name']

}

}

}

$company = ServerDepartment::get(['parentid' =>0, 'dd_departid' =>1])

return self::returnSuccess(array(

'id' =>$userId,

'name' =>$name,

'token' =>$token,

'tokenOverAt' =>$tokenOverAt,

'config' =>$config,

'power' =>$roleInfo['power'] ?? '',

'departId' =>$departId,

'departName' =>$departName,

'departRootId' =>$departRootId,

'departRootName' =>$departRootName,

'company' =>$company['name'],

))

}, function (\Exception $e) {

echo $e->getMessage()

self::logError(__CLASS__ . '->' . __FUNCTION__, $e->getMessage())

return self::returnError('1108', self::$errorArray['1108'])

})

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11735121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存