yifengyide/application/api/controller/backend/AdditionAndSubtractionRecords.php

305 lines
10 KiB
PHP
Raw Normal View History

<?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('审核失败');
}
}