You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wkcrm/application/oa/model/ExamineData.php

91 lines
3.1 KiB

4 years ago
<?php
// +----------------------------------------------------------------------
// | Description: 公告
// +----------------------------------------------------------------------
// | Author: Michael_xu | gengxiaoxu@5kcrm.com
// +----------------------------------------------------------------------
namespace app\oa\model;
use think\Db;
use app\admin\model\Common;
use think\Request;
use think\Validate;
use think\helper\Time;
class ExamineData extends Common
{
/**
* 为了数据库的整洁同时又不影响Model和Controller的名称
* 我们约定每个模块的数据表都加上相同的前缀比如CRM模块用crm作为数据表前缀
*/
protected $name = 'oa_examine_data';
/**
* 存储自定义字段数据
* @author Michael_xu
* @param
* @return
*/
public function createData($param, $examine_id)
{
if (!$examine_id) {
$this->error = '参数错误';
return false;
}
$fieldList = db('admin_field')->where(['types' => 'oa_examine','types_id' => $param['category_id']])->select();
//过滤掉固定字段
$unField = ['content','remark','start_time','end_time','duration','cause','money','category_id','check_user_id','check_status','flow_id','order_id','create_user_id'];
$data = [];
foreach ($fieldList as $k=>$v) {
if (!in_array($v['field'], $unField)) {
3 years ago
$data[$k]['examine_id'] = $examine_id;
$data[$k]['field'] = $v['field'];
// 处理数据格式是对象的字段position 地址、location 定位、date_interval 日期区间、detail_table 明细表格
if (in_array($v['form_type'], ['position', 'location', 'date_interval', 'detail_table'])) {
$data[$k]['value'] = !empty($param[$v['field']]) ? json_encode($param[$v['field']], JSON_NUMERIC_CHECK) : '';
} else {
$data[$k]['value'] = !empty($param[$v['field']]) ? $param[$v['field']] : '';
}
// 处理手写签名
if ($v['form_type'] == 'handwriting_sign') {
$data[$k]['value'] = !empty($param[$v['field']]['file_id']) ? $param[$v['field']]['file_id'] : '';
}
// 处理附件
if ($v['form_type'] == 'file') {
$data[$k]['value'] = !empty($param[$v['field']]) ? arrayToString($param[$v['field']]) : '';
}
4 years ago
}
}
if ($data) {
3 years ago
db('oa_examine_data')->where('examine_id', $examine_id)->delete();
// print_r($data);exit;
4 years ago
$resData = db('oa_examine_data')->insertAll($data);
if (!$resData) {
$this->error = '添加失败';
return false;
}
}
return true;
}
/**
* 读取自定义字段数据
* @author Michael_xu
* @param
* @return
*/
public function getDataById($examine_id)
{
if (!$examine_id) {
$this->error = '参数错误';
return false;
}
$dataList = db('oa_examine_data')->where(['examine_id' => $examine_id])->select();
$newData = [];
foreach ($dataList as $k=>$v) {
$newData[$v['field']] = $v['value'];
}
return $newData ? : [];
}
}