1、招聘需求

2、审核刚刚创建的招聘需求内容

3、编辑内容

4、简历管理

5、面试记录时间轴

6、offer管理

<?php
namespace app\hrm\model;
use app\admin\controller\ApiCommon;
use app\admin\model\User;
use app\admin\traits\FieldVerificationTrait;
use think\Db;
use app\admin\model\Common;
use think\response\Json;class Offer extends Common
{use FieldVerificationTrait;protected $name = 'hrm_offer';protected $createTime = 'create_time';protected $updateTime = 'update_time';protected $autoWriteTimestamp = true;private $statusArr = ['0'=>'待审核','1'=>'审核中','2'=>'审核通过','3'=>'已拒绝','4'=>'已撤回','5'=>'未提交','6'=>'已作废', '7'=>'正常'];protected $type = [// 'next_time' => 'timestamp',];/*** [getDataList list]* @author Michael_xu* @param     [string]                   $map [查询条件]* @param     [number]                   $page     [当前页数]* @param     [number]                   $limit    [每页数量]* @return    [array]                    [description]*/        public function getDataList($request){$userModel = new \app\admin\model\User();# 格式化参数$request    = $this->fmtRequest( $request );$requestMap = $request['map'] ? : [];# 普通筛选$searchMap = [];# 排序// if ($order_type && $order_field && $order_field != 'owner_user_structure_name') {//     $order = $fieldModel->getOrderByFormtype('crm_customer','customer',$order_field,$order_type);// } else {$order = 'offer.update_time desc';// }$list = db('hrm_offer')->alias('offer')->where($map)->where($searchMap)->limit($request['offset'], $request['length'])// ->field($indexField)->orderRaw($order)->select();$totalRow = db('hrm_offer')->alias('offer')->where($map)->where($searchMap)->count();foreach($list as $key=>$row){$list[$key]['create_time_txt'] = date('Y-m-d H:i:s', $row['create_time']);$nParentId_name = db('crm_customer')->where(['customer_id' => $row['nParentId']])->value('name');$nParentId_info = ['customer_id' => $row['nParentId'],'name' => $nParentId_name,];$list[$key]['nParentId_name'] = $nParentId_name;$nUserId_name = db('admin_user')->where(['id' => $row['nUserId']])->value('realname');$list[$key]['nUserId_name'] = $nUserId_name;$list[$key]['check_status_info'] = $this->statusArr[$row['check_status']];$list[$key]['create_user_id_info'] = isset($row['create_user_id']) ? $userModel->getUserById($row['create_user_id']) : [];}$data = [];$data['list'] = $list ? : [];$data['totalRow'] = $totalRow ? : 0;return $data;}public function getDataById($id = '', $userId = 0, $model=''){  $dataInfo = db('hrm_offer')->where(['id' => $id])->find();if (!$dataInfo) {$this->error = '数据不存在或已删除';return false;}$dataInfo['nParentId_name'] = db('crm_customer')->where(['customer_id' => $dataInfo['nParentId']])->value('name');$dataInfo['create_time_txt'] = date('Y-m-d H:i:s', $dataInfo['create_time']);$dataInfo['zpzyId_name'] = db('admin_user')->where(['id' => $dataInfo['zpzyId']])->value('realname');return $dataInfo;}/*** 创建主表信息* @author Michael_xu* @param  * @return                            */ public function createData($param){unset($param['excel']);if(is_array($param['nParentId'])){$param['nParentId'] = $param['nParentId'][0]['customer_id'];}else{$param['nParentId'] = $param['nParentId'];}// 数据验证$validateResult = $this->fieldDataValidate($param, 'hrm_offer', $userId);if (!empty($validateResult)) {$this->error = $validateResult;return false;}if ($this->data($param)->allowField(true)->isUpdate(false)->save()) {$data['id'] = $this->id;$data['zpzw'] = $param['zpzw'];return $data;} else {$this->error = '添加失败';return false;}           }/*** 编辑客户主表信息* @author Michael_xu* @param  * @return                            */public function updateDataById($param, $id = ''){$dataInfo = $this->get($id);if (!$dataInfo) {$this->error = '数据不存在或已删除';return false;}$id = !empty($param['id']) ? $param['id'] : $id;// 数据权限判断if(isset($param['nParentId'])){if(is_array($param['nParentId'])){$param['nParentId'] = $param['nParentId'][0]['customer_id'];}else{$param['nParentId'] = $param['nParentId'];}}// 数据验证$validateResult = $this->fieldDataValidate($param, 'hrm_offer', $user_id, $id);if (!empty($validateResult)) {$this->error = $validateResult;return false;}// 修改数据if ($this->update($param, ['id' => $id], true)) {$data['id'] = $id;// 修改记录// updateActionLog($user_id, 'crm_customer', $customer_id, $dataInfo->data, $param);// RecordActionLog($user_id, 'crm_customer', 'update',$dataInfo['name'], $dataInfo->data, $param);return $data;} else {$this->error = '编辑失败';return false;}}/*** 导出数据处理*/public function exportHandle($list, $field_list, $type = ''){foreach ($list as &$val) {foreach ($field_list as $field) {switch ($field['field']) {case 'jjcdId':$val[$field['field']] = [1 => '加急',2 => '紧急',3 => '正常',4 => '一般',5 => '暂停'][$val[$field['field']]];break;case 'is_zt':$val[$field['field']] = [0 => '等待审核',1 => '审核中',2 => '通过',3 => '驳回'][$val[$field['field']]];break;}}}return $list;}
}

7、用户的offer管理的详情资料

8、简历分类

9、面试状态

<?php
namespace app\hrm\controller;use app\admin\controller\ApiCommon;
use phpDocumentor\Reflection\Types\False_;
use think\Cache;
use think\Hook;
use think\Request;
use think\Db;class Resume extends ApiCommon
{/*** 用于判断权限* @permission 无限制* @allow 登录用户可访问* @other 其他根据系统设置**/public function _initialize(){$action = ['permission' => ['exceldownload', 'setfollow', 'delete', 'left', 'remind'],'allow' => ['read', 'system', 'count', 'poolauthority', 'level']];Hook::listen('check_auth', $action);$request = Request::instance();$a = strtolower($request->action());if (!in_array($a, $action['permission'])) {parent::_initialize();} else {$param = Request::instance()->param();$this->param = $param;}}/*** 列表* @return* @author Michael_xu*/public function index(){$model = model('Resume');$param = $this->param;$userInfo = $this->userInfo;$param['user_id'] = $userInfo['id'];$data = $model->getDataList($param);return resultArray(['data' => $data]);}/*** 面试提醒* @return* @author Michael_xu*/public function remind(){$data = model('Resume')->alias('r')->join('(select msztId,nParentId,update_time,msrq,sjian,msrqsjian,from_unixtime(msrqsjian,"%Y-%m-%d %H:%i:%s") msrqsjian_txt from 5kcrm_hrm_miansjl where id in (select max(id) from 5kcrm_hrm_miansjl group by nParentId)) ms', 'ms.nParentId=r.id', 'right')->field('r.id, r.xm, r.classId, ms.*')->where('ms.msrq',date('Y-m-d'))->order('ms.msrqsjian desc')// ->where('ms.msztId', 154)->where('ms.msztId', 'in', [150,151])->select();return resultArray(['data' => $data]);}/*** 详情* @param* @return* @author Michael_xu*/public function read(){$model = model('Resume');$param = $this->param;$userInfo = $this->userInfo;$data = $model->getDataById($param['id'], $userInfo['id']);if (!$data) {return resultArray(['error' => $model->getError()]);}return resultArray(['data' => $data]);}/*** 添加* @param* @return* @author Michael_xu*/public function save(){$model = model('Resume');$param = $this->param;$userInfo = $this->userInfo;$param['nUserId'] = $userInfo['id'];if ($res = $model->createData($param)) {return resultArray(['data' => $res]);} else {return resultArray(['error' => $model->getError()]);}}/*** 编辑* @param* @return* @author Michael_xu*/public function update(){$model = model('Resume');$param = $this->param;$userInfo = $this->userInfo;//数据详情$data = $model->getDataById($param['id']);if (!$data) {return resultArray(['error' => $model->getError()]);}if ($model->updateDataById($param, $param['id'])) {return resultArray(['data' => '编辑成功']);} else {return resultArray(['error' => $model->getError()]);}}/*** 删除客户* @param* @return* @author Michael_xu*/public function delete(){$model = model('Resume');$param = $this->param;$userInfo = $this->userInfo;// $permission = checkPerByAction('hrm', 'resume', 'delete');// if ($permission == false) {//     return resultArray(['error' => '无权操作']);// }$delIds = $param['id'];if ($delIds) {$delRes = $model->delDatas($delIds);if (!$delRes) {return resultArray(['error' => $model->getError()]);}}return resultArray(['data' => '删除成功']);}/*** 导入* @param* @return* @author Michael_xu*/public function excelImport(){set_time_limit(0);$model = model('Resume');$param = $this->param;$userInfo = $this->userInfo;$param['nUserId'] = $userInfo['id'];// $rename;$jlwjs = $param['jlwj'];if(!$jlwjs){return resultArray(['error' => '请上传简历']);}foreach ($param['jlwj'] as $key=>$v){$param['xm'] = substr($v['name'], 0, strpos($v['name'], '.'));$param['jlwj'] = [$v];$model->createData($param);}return resultArray(['data' => true]);/*** 导出* @param* @return* @author Michael_xu*/public function excelExport(){$param = $this->param;$userInfo = $this->userInfo;$param['user_id'] = $userInfo['id'];$action_name = '导出';$excelModel = new \app\admin\model\Excel();// 导出的字段列表$fieldModel = new \app\admin\model\Field();$field_list = $param['fieldList'];// 文件名$file_name = '简介_' . date('Ymd');$model = model('Resume');$temp_file = $param['temp_file'];unset($param['temp_file']);$page = $param['page'] ?: 1;unset($param['page']);unset($param['export_queue_index']);RecordActionLog($userInfo['id'], 'hrm_resume', 'excelexport', $action_name, '', '', '导出简介');return $excelModel->batchExportCsv($file_name, $temp_file, $field_list, $page, function ($page, $limit) use ($model, $param, $field_list) {$param['page'] = $page;$param['limit'] = $limit;$data = $model->getDataList($param);$data['list'] = $model->exportHandle($data['list'], $field_list, 'hrm_resume');return $data;});}/*** 客户清单* @return* @author Michael_xu*/public function left(){$model = model('Resume');$customerModel = model('\app\crm\model\Customer');$param = $this->param;$customer_id = $model->column('nParentId');$where = ['deal_status' => '已成交',];$data = $customerModel->where($where)->whereOr('customer_id','in',$customer_id)->field('customer_id, name')->select();return resultArray(['data' => $data]);}}

自主开发悟空crm增加 公文管理功能 二次开发代码披露相关推荐

  1. 悟空crm二次开发增加 公文管理功能

  2. 全面剖析支付宝服务窗功能二次开发

    支付宝服务窗功能二次开发是类似于微信公众号功能二次开发一样的平台,但是支付宝跟微信之间只有区别的,微信可提供给客户发布些个人相关的信息.言论.文章等,也可以提供给单位使用:而且都支持二次开发的.而支付 ...

  3. crm客户关系管理功能有哪些?

    crm客户关系管理功能有哪些?.crm客户关系管理对于企业来说越早使用越好.很多企业负责人认为,中小企业的业务流程不完善,人员不多,不需要使用crm客户关系管理进行管理.从公司管理的角度来看,这相当于 ...

  4. java机动车实验代码要加包吗_机动车整车出厂合格证管理信息系统二次开发套件SDK和Demo----javai程序...

    [实例简介] 机动车整车出厂合格证管理信息系统二次开发套件SDK和Demo----java程序 [实例截图] [核心代码] Demo_UploadJava └── Demo_Upload Java ├ ...

  5. 抖音seo源码二次开发,短视频seo源码二次开发

    抖音seo源码二次开发,短视频seo源码二次开发 开发逻辑及部分代码展示 抖音seo系统前端采用vue 与React技术语言,后端采用jave后台技术语言. 抖音seo是什么技术逻辑呢?seo是搜索引 ...

  6. fastadmin二次开发使用教程php,FastAdmin教程-FastAdmin二次开发快速入门视频教程

    本FastAdmin二次开发视频教程目录如下: FastAdmin开发实战视频第01课FastAdmin的作用.mp4 │  FastAdmin开发实战视频第02课 一起来安装体验fastadmin吧 ...

  7. Mixly第三方库开发的两种方法——U8g2库二次开发

    Mixly第三方库开发的两种方法--U8g2库二次开发 前言 方法一:自定义库 1.创建库文件夹 2.开始编程 2.1.定义图形块的基本信息 2.2.定义图形块的外观样式 2.3.定义图形块与C语言的 ...

  8. ANSA二次开发 - 在PyCharm上搭建ANSA/META二次开发环境

    文章目录 与PyCharm IDE集成 简介 ANSA和META自动补全 安装说明 在PyCharm中工作 与PyCharm IDE集成 简介   PyCharm 是一个集成开发环境(IDE).它是专 ...

  9. cad二次开发 java_应用Java语言进行AutoCAD2000二次开发.PDF

    应用Java语言进行AutoCAD2000二次开发 实用第一 智慧密集 刘良华袁英战朱东海 摘 要 介绍了应用Java语言进行AutoCAD二次开发的方法和思路. 关键字 二次开发,AutoCAD定制 ...

最新文章

  1. 视觉SLAM学习--简易版(B站网友)
  2. 【渝粤题库】陕西师范大学400013 组织行为学 作业(专升本)
  3. ug中模型不见了怎么办_关于UG参数化建模的定义
  4. LeetCode--5.最长回文子串(滑动窗口)
  5. Sublime Text 3已卸载
  6. 信捷plc编程100例梯形图_PLC分类组成与梯形图编程语言
  7. echarts3D使用时会遇到的问题(版本低)
  8. 360电脑网速怎么测试软件,360怎么测试网速,360如何测试网速
  9. 使用outlook邮件服务器,使用OUTLOOK配置邮件服务
  10. 广东工业大学计算机专业课程,广东工业大学在职研究生计算机专业课程安排
  11. 三个因素剖析质量流量计读数不准,应对故障更轻松
  12. linux 脚本设置定时,脚本添加定时任务(Linux)
  13. QGIS/SwatEditor/QSWAT的安装
  14. mysql错误代码145_Mysql中出现errno:145的解决方法
  15. 系统重装后no bootable device
  16. []AT 指令 收发短信和GPRS上网 SIM508/548
  17. 外媒评2013年十大创新社交媒体公司
  18. Windows CE学习几个经验
  19. 2012河北省对口高考计算机答案,2012河北省对口高考计算机专业理论试卷.doc
  20. 新手爬虫——网易云音乐分析

热门文章

  1. 打造全新的在线游戏平台系统,融合音乐聚合搜索和影视在线观看
  2. Python 标准库 zipfile 压缩文件/文件夹
  3. 四川盛迈坤电商:怎么样打造特色网店
  4. warning: ‘p’ may be used uninitialized in this function
  5. 荣耀实力碾压众互联网手机品牌,2017年或是“荣耀年”
  6. 两数相除-kotlin
  7. LEETCODE | PYTHON | 1207 | 独一无二的出现次数
  8. 智慧公安系统的建设意义
  9. NOIP中的数学--关于取模(MOD)第五课(上)
  10. 如何做企业直播的宣传预热阶段呢?