305 lines
10 KiB
PHP
305 lines
10 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\api\controller\backend;
|
||
|
|
||
|
use app\common\controller\Api;
|
||
|
use app\api\model\Admin as AdminModel;
|
||
|
use think\Db;
|
||
|
|
||
|
/**
|
||
|
* 加减分控制器
|
||
|
*/
|
||
|
class AdditionAndSubtractionRecords extends Api
|
||
|
{
|
||
|
protected $noNeedLogin = ['*'];
|
||
|
protected $noNeedRight = ['*'];
|
||
|
protected $user_id = '';
|
||
|
protected $auth_group = '';
|
||
|
|
||
|
public function _initialize()
|
||
|
{
|
||
|
parent::_initialize();
|
||
|
$id = $this->request->header('Token');
|
||
|
if(!$id){
|
||
|
return $this->error('缺少参数');
|
||
|
}
|
||
|
$user = Db::name('user')->where('token', $id)->find();
|
||
|
if(!$user){
|
||
|
return $this->error('用户不存在');
|
||
|
}
|
||
|
$this->user_id = $user['id'];
|
||
|
$this->auth_group = $user['auth_group_id'];
|
||
|
}
|
||
|
/**
|
||
|
* Undocumented function
|
||
|
*列表
|
||
|
* @return void
|
||
|
*/
|
||
|
public function index() {
|
||
|
$page = $this->request->post('page', 1);
|
||
|
$limit = $this->request->post('size', 10);
|
||
|
$status= $this->request->post('status');
|
||
|
$where = [];
|
||
|
//判断该用户有没有权限审核
|
||
|
if($status){
|
||
|
$where['a.status'] = $status;
|
||
|
}
|
||
|
$where['a.tb_user_id'] = $this->user_id;
|
||
|
// return $this->success('查询成功',$where);
|
||
|
$date = Db::name('addition_and_subtraction_records')
|
||
|
->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria')
|
||
|
->alias('a')
|
||
|
->join('user u','a.user_id = u.id','LEFT')
|
||
|
->join('user_group g','a.group_id = g.id','LEFT')
|
||
|
->join('user w','a.zm_user_id = w.id','LEFT')
|
||
|
->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT')
|
||
|
->where($where)
|
||
|
->order('a.id', 'desc')
|
||
|
->page($page, $limit)
|
||
|
->select();
|
||
|
$count = Db::name('addition_and_subtraction_records')
|
||
|
->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname')
|
||
|
->alias('a')
|
||
|
->join('user u','a.user_id = u.id','LEFT')
|
||
|
->join('user_group g','a.group_id = g.id','LEFT')
|
||
|
->join('user w','a.zm_user_id = w.id','LEFT')
|
||
|
->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT')
|
||
|
->where($where)
|
||
|
->count();
|
||
|
|
||
|
$res = [
|
||
|
'count' => $count,
|
||
|
'data' => $date
|
||
|
];
|
||
|
return $this->success('查询成功',$res);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 详情查询
|
||
|
* @return void
|
||
|
*/
|
||
|
public function find(){
|
||
|
$id = $this->request->request('id');
|
||
|
if(!$id){
|
||
|
return $this->error('缺少参数');
|
||
|
}
|
||
|
$date = Db::name('addition_and_subtraction_records')
|
||
|
->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria')
|
||
|
->alias('a')
|
||
|
->join('user u','a.user_id = u.id','LEFT')
|
||
|
->join('user_group g','a.group_id = g.id','LEFT')
|
||
|
->join('user w','a.zm_user_id = w.id','LEFT')
|
||
|
->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT')
|
||
|
->where('a.id', $id)
|
||
|
->find();
|
||
|
if($date){
|
||
|
return $this->success('查询成功',$date);
|
||
|
}
|
||
|
return $this->error('查询失败');
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 新增记录
|
||
|
*/
|
||
|
public function create()
|
||
|
{
|
||
|
$data = $this->request->post();
|
||
|
$data['createtime'] = date('Y-m-d H:i:s');
|
||
|
$result = Db::name('addition_and_subtraction_records')->strict(false)->insert($data);
|
||
|
if ($result) {
|
||
|
return $this->success('添加成功',$result);
|
||
|
} else {
|
||
|
return $this->error('添加失败',$result);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 更新记录
|
||
|
*
|
||
|
* @param Request $request
|
||
|
* @param int $id
|
||
|
* @return \think\Response
|
||
|
*/
|
||
|
public function update()
|
||
|
{
|
||
|
$id = $this->request->post('id');
|
||
|
$data = $this->request->post();
|
||
|
if(!$id){
|
||
|
return $this->error('缺少参数');
|
||
|
}
|
||
|
$if = Db::name('addition_and_subtraction_records')
|
||
|
->where('id', $id)
|
||
|
->value('status');
|
||
|
if($if != 1){
|
||
|
return $this->error('该记录已审核,不能修改');
|
||
|
}
|
||
|
|
||
|
|
||
|
$result = Db::name('addition_and_subtraction_records')->where('id', $id)->strict(false)->update($data);
|
||
|
if ($result) {
|
||
|
return $this->success('更新成功',$result);
|
||
|
} else {
|
||
|
return $this->error('更新失败',$result);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 删除记录
|
||
|
*
|
||
|
* @param int $id
|
||
|
* @return \think\Response
|
||
|
*/
|
||
|
public function delete()
|
||
|
{
|
||
|
$id = $this->request->post('id');
|
||
|
if(!$id){
|
||
|
return $this->error('缺少参数');
|
||
|
}
|
||
|
$result = Db::name('addition_and_subtraction_records')->delete($id);
|
||
|
if ($result) {
|
||
|
return $this->success('删除成功',$result);
|
||
|
} else {
|
||
|
return $this->error('删除失败',$result);
|
||
|
}
|
||
|
}
|
||
|
// --------------------------------------------------------------------------------------------------------------
|
||
|
// 管理部分
|
||
|
|
||
|
public function index_manage(){
|
||
|
$group = $this->request->post('group_id');
|
||
|
$page = $this->request->post('page', 1);
|
||
|
$limit = $this->request->post('size', 10);
|
||
|
$status= $this->request->post('status');
|
||
|
$fsdate= $this->request->post('fsdate');
|
||
|
$user_id= $this->request->post('user_id');
|
||
|
if(!$group){
|
||
|
return $this->error('缺少参数');
|
||
|
}
|
||
|
$where = [];
|
||
|
if($group){
|
||
|
$where['a.group_id'] = $group;
|
||
|
}
|
||
|
if($status){
|
||
|
$where['a.status'] = $status;
|
||
|
}
|
||
|
if($fsdate){
|
||
|
$where['a.fsdate'] = $fsdate;
|
||
|
}
|
||
|
if($user_id){
|
||
|
$where['a.user_id'] = $user_id;
|
||
|
}
|
||
|
// 获取指定科室及其子科室的ID
|
||
|
$groupIds = $this->getGroupAndSubGroupIds($group);
|
||
|
if($groupIds){
|
||
|
$where['a.group_id'] = ['in', $groupIds];
|
||
|
}
|
||
|
// return $this->success('查询成功',$where);
|
||
|
$date = Db::name('addition_and_subtraction_records')
|
||
|
->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria,s.nickname as tb_nickname')
|
||
|
->alias('a')
|
||
|
->join('user u','a.user_id = u.id','LEFT')
|
||
|
->join('user_group g','a.group_id = g.id','LEFT')
|
||
|
->join('user w','a.zm_user_id = w.id','LEFT')
|
||
|
->join('user s','a.tb_user_id = s.id','LEFT')
|
||
|
->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT')
|
||
|
->where($where)
|
||
|
->order('a.id', 'desc')
|
||
|
->page($page, $limit)
|
||
|
->select();
|
||
|
$count = Db::name('addition_and_subtraction_records')
|
||
|
->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria')
|
||
|
->alias('a')
|
||
|
->join('user u','a.user_id = u.id','LEFT')
|
||
|
->join('user_group g','a.group_id = g.id','LEFT')
|
||
|
->join('user w','a.zm_user_id = w.id','LEFT')
|
||
|
->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT')
|
||
|
->where($where)
|
||
|
->order('a.id', 'desc')
|
||
|
->count();
|
||
|
|
||
|
//获取该用户是否有审核权限
|
||
|
$level = Db::name('auth_group')
|
||
|
->where('id', $this->auth_group)
|
||
|
->value('level');
|
||
|
foreach($date as $k => $v){
|
||
|
$date[$k]['level'] = $level;
|
||
|
}
|
||
|
$res = [
|
||
|
'count' => $count,
|
||
|
'data' => $date
|
||
|
];
|
||
|
return $this->success('查询成功',$res);
|
||
|
}
|
||
|
|
||
|
private function getGroupAndSubGroupIds($groupId) {
|
||
|
if (!$groupId) {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
// 获取指定科室及其子科室的ID
|
||
|
$groupIds = Db::name('user_group')
|
||
|
->where('id', $groupId)
|
||
|
->whereOr('pid', $groupId)
|
||
|
->column('id');
|
||
|
|
||
|
return $groupIds;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 详情查询
|
||
|
* @return void
|
||
|
*/
|
||
|
public function find_manage(){
|
||
|
$id = $this->request->request('id');
|
||
|
if(!$id){
|
||
|
return $this->error('缺少参数');
|
||
|
}
|
||
|
$date = Db::name('addition_and_subtraction_records')
|
||
|
->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria,s.nickname as tb_nickname')
|
||
|
->alias('a')
|
||
|
->join('user u','a.user_id = u.id','LEFT')
|
||
|
->join('user_group g','a.group_id = g.id','LEFT')
|
||
|
->join('user w','a.zm_user_id = w.id','LEFT')
|
||
|
->join('user s','a.tb_user_id = s.id','LEFT')
|
||
|
->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT')
|
||
|
->where('a.id', $id)
|
||
|
->find();
|
||
|
if($date){
|
||
|
return $this->success('查询成功',$date);
|
||
|
}
|
||
|
return $this->error('查询失败');
|
||
|
}
|
||
|
/**
|
||
|
* 审核
|
||
|
*/
|
||
|
public function examine(){
|
||
|
$id = $this->request->post('id');
|
||
|
$status = $this->request->post('status');
|
||
|
//获取该用户是否有审核权限
|
||
|
$level = Db::name('auth_group')
|
||
|
->where('id', $this->auth_group)
|
||
|
->value('level');
|
||
|
if($level == 2){
|
||
|
return $this->error('您没有权限');
|
||
|
}
|
||
|
if(!$id || !$status){
|
||
|
return $this->error('缺少参数');
|
||
|
}
|
||
|
$where = [
|
||
|
'id' => $id,
|
||
|
];
|
||
|
$update = [
|
||
|
'status' => $status,
|
||
|
];
|
||
|
$res = Db::name('addition_and_subtraction_records')->where($where)->update($update);
|
||
|
if($res){
|
||
|
return $this->success('审核成功');
|
||
|
}
|
||
|
return $this->error('审核失败');
|
||
|
}
|
||
|
|
||
|
}
|