why.xingtongworld.com项目
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.
 
 
 
 
 

372 lines
14 KiB

<?php
/**
* Created by ETEDU.
* User: Leo Chu
* Date: 2017/3/28 0028
* Time: 15:45
*/
namespace app\cult4\model;
use think\Model;
use think\Db;
/**
* 文化四板申请流程
* @package app\admin\model
*/
class Cult4apply extends Model
{
/**
* 增加申请
* @return int 0或申请id
*/
public static function apply_add($status=1,$user_id,$member_list_id,$usertype,$apply_admin_id)
{
//status默认初审中(已提交):1
$sldata=array(
'user_id' => $user_id,
'status'=>$status,
'user_type'=>$usertype,
'apply_admin_id'=>$apply_admin_id,
'create_time'=>time(),
);
$member=self::create($sldata);
if($member){
return $member['apply_id'];
}else{
return 0;
}
}
/**
* 申请受理
* @param int $apply_id 申请id
* @param int $apply_admin_id 受理用户id
* @return int 影响行数0或1
*/
public static function applyed($apply_id,$apply_admin_id,$seq,$status)
{
$sldata=array(
'update_time'=>time(),
'update_user_type'=>1,
'seq'=>$seq+1,
);
$where=array(
'apply_id'=>$apply_id,
'seq'=>$seq,
'status'=>$status,
);
$role=session('admin_auth.role');
if($role!=1){
$sldata['apply_admin_id']=$apply_admin_id;
$where['apply_admin_id']=array('EQ', 0);
}
$apply=self::where($where)->update($sldata);
return $apply;
}
/**
* 根据用户id获取用户信息,返回值为数组
* @param int $uid 用户id
* @return array 用户所属的用户组 array(根据前后台不同,对应不同用户组)
*/
public static function getUserInfos($uid,$utype)
{
if($utype==1)//前台用户
{
$db=db()->name('member_list');
$uids=[];
if(strpos($uid,',')===false){
$db->where("member_list_id='$uid'");
}else{
$db->where('member_list_id','in',$uid);
}
$frontUserInfos =$db->field('member_list_id,member_list_nickname,member_list_username,member_list_open')->select();
if(count($uids)){
$data=[];
foreach ($frontUserInfos as $row){
$mid=$row['member_list_id'];
$data[$mid]=$row;
}
foreach ($uids as $row){
if(!isset($data[$row]))$data[$row]=array();
}
return $data;
}else{
$frontUserInfos[$uid]=$frontUserInfos?:array();
return $frontUserInfos[$uid];
}
}elseif ($utype==2)//后台用户
{
$db=db()->name('admin');
$uids=[];
if(strpos($uid,',')===false){
$db->where("admin_id='$uid'");
}else{
$uids=explode(',', $uid);
$db->where('admin_id','in',$uids);
}
$backUserInfos = $db
->field('admin_id,admin_realname,admin_username,admin_open')->select();
if(count($uids)){
$data=[];
foreach ($backUserInfos as $row){
$mid=$row['admin_id'];
$data[$mid]=$row;
}
foreach ($uids as $row){
if(!isset($data[$row]))$data[$row]=array();
}
return $data;
}else{
$backUserInfos[$uid]=$backUserInfos?:array();
return $backUserInfos[$uid];
}
}
return array();
}
/**
* 根据角色id获取角色信息,返回值为数组
* @param int $rid 角色id
* @return array 角色所属的用户组 array(根据前后台不同,对应不同角色组)
*/
public static function getRoleInfos($rid,$utype)
{
if($utype==1)//前台角色
{
$frontRoleInfos = db()->name('member_group')
->where("member_group_id='$rid'")
->field('member_group_id,member_group_name,member_group_open')->select();
$frontRoleInfos[$rid]=$frontRoleInfos?:array();
return $frontRoleInfos[$rid];
}
elseif ($utype==2)//后台角色
{
$backRoleInfos = db()->name('auth_group')
->where("id='$rid'")
->field('id,title,status')->select();
$backRoleInfos[$rid]=$backRoleInfos?:array();
return $backRoleInfos[$rid];
}
return array();
}
/**
* 申请列表
* @param array
* @param string $search_name 查询条件(公司名称)
* @param int $status 后台查询的操作用户状态
* @param int $admin_id 后台查询的操作用户ID
* @param string $order 结果排序
* @return mixed
*/
public static function getListAll($search_name=null,$admin_id,$order='a.apply_id',$applytype='')
{
$map=array();
if($search_name){
//(b.c_name or b.p_name or b.t_apply_username) and b.new_flag
$data=array();
$where=['b.c_name|b.p_name|b.t_apply_username|b.p_com_name'=>array('like',['%'.$search_name.'%',$search_name.'%','%'.$search_name],'or') ,'b.new_flag'=>1];
if($applytype&&count($applytype)){
$where['b.apply_type'] = array('in',$applytype);
}
$where['b.new_flag']=1;
$data=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')
->where($where)->order('a.apply_id')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
return $data;
}
$where=array();
$where['a.status'] = array('egt',0);
if($order){
$orders=explode(',', $order);
foreach ($orders as $k=>$jow){
if(strpos($jow,'a.')===false)$orders[$k]='a.'.$jow;
}
$order=implode(',', $orders);
}
if($applytype&&count($applytype)){
$where['b.apply_type'] = array('in',$applytype);
}
$where['b.new_flag']=1;
//取得apply_admin_id为0或者当前用户的数据
//$where['apply_admin_id']=array(array('eq',0),array('eq',$admin_id),'or');
$list=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')
->where($where)->order($order)->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
return $list;
}
/**
* 申请列表
* @param array
* @param string $search_name 查询条件(公司名称)
* @param int $status 后台查询的操作用户状态
* @param int $admin_id 后台查询的操作用户ID
* @param string $order 结果排序
* @return mixed
*/
public static function getList($search_name=null,$status=-1,$admin_id,$order='apply_id',$status2=-1,$applytype='')
{
$adminarr=array(array('eq',0),array('eq',$admin_id),'or');
if($admin_id==1){
$adminarr=array('neq','0');
}
$map=array();
if($search_name){
if($status2>0)
$statusStr=$status;
else
$statusStr=$status.','.$status2;;
if($status==31){
$statusStr=$status.','.$status2;;
}
$where=['b.c_name|b.p_name|b.p_com_name|b.t_apply_username'=>array('like',['%'.$search_name.'%',$search_name.'%','%'.$search_name],'or') ,'b.new_flag'=>1,'a.status'=>array('in',$statusStr)];
if($admin_id!=1){
$where['a.apply_admin_id']=$adminarr;
}
if($applytype&&count($applytype)){
$where['b.apply_type'] = array('in',$applytype);
}
$where['b.new_flag']=1;
$data=array();
$data=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')
->where($where)->order('a.apply_id')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
return $data;
}
$where=array();
$where['b.new_flag']=1;
if($order){
$orders=explode(',', $order);
foreach ($orders as $k=>$jow){
if(strpos($jow,'a.')===false)$orders[$k]='a.'.$jow;
}
$order=implode(',', $orders);
}
//根据状态值取出对应状态的数据
if($status != -1){
if($status2 != -1){
$where['a.status'] = array(array('eq',$status),array('eq',$status2), 'or');
if($status2==9)
$order='a.status desc,a.apply_id';
elseif($status2==12)
$order='a.status,a.apply_id';
elseif($status2==14)
$order='a.status desc,a.apply_id';
}else{
$where['a.status'] = array('eq',$status);
}
}
//取得apply_admin_id为0或者当前用户的数据
if($admin_id!=1){
$where['a.apply_admin_id']=$adminarr;
}
if($applytype&&count($applytype)){
$where['b.apply_type'] = array('in',$applytype);
}
$list=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')
->where($where)->order($order)->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
return $list;
}
/**
* 申请列表数组
* @param array
* @param string $search_name 查询条件(公司名称)
* @param int $status 后台查询的操作主用户状态
* @param int $admin_id 后台查询的操作用户ID
* @param string $statusStr 状态序列1,2,3,4
* @return mixed
*/
public static function getList2($status,$search_name=null,$admin_id,$statusStr,$applytype='')
{
$adminarr=array(array('eq',0),array('eq',$admin_id),'or');
if($admin_id==1){
$adminarr=array('neq','0');
}
$map=array();
if($search_name){
$data=array();
$where=['b.c_name|b.p_name|b.p_com_name|b.t_apply_username'=>array('like',['%'.$search_name.'%',$search_name.'%','%'.$search_name],'or') ,'b.new_flag'=>1,'a.status'=>array('in',$statusStr)];
if($admin_id!=1){
$where['a.apply_admin_id']=$adminarr;
}
if($applytype&&count($applytype)){
$where['b.apply_type'] = array('in',$applytype);
}
$data=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')
->where($where)->order('a.apply_id')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
return $data;
}
$where=array();
$where['b.new_flag']=1;
//根据状态值取出对应状态的数据
if($status==12)
$order='a.status desc,a.apply_id';
elseif($status==9)
$order='a.status,a.apply_id';
elseif($status==15)
$order='a.status desc,a.apply_id';
else
$order='a.update_time';
$where['a.status'] = array('in',$statusStr);
//取得apply_admin_id为0或者当前用户的数据
if($admin_id!=1){
$where['a.apply_admin_id']=$adminarr;
}
if($applytype&&count($applytype)){
$where['b.apply_type'] = array('in',$applytype);
}
//$res=self::where($where)->order($order)->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
$list=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')
->where($where)->order($order)->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
return $list;
}
/**
* 申请列表联席会
* @param array
* @param string $search_name 查询条件(公司名称)
* @param int $admin_id 后台查询的操作用户ID
* @return mixed
*/
public static function getListjc($search_name=null,$admin_id)
{
$adminarr=array(array('eq',0),array('eq',$admin_id),'or');
if($admin_id==1){
$adminarr=array('neq','0');
}
$map=array();
if($search_name){
//(b.c_name or b.p_name or b.t_apply_username) and b.new_flag
$data=array();
$data=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')
->where(['b.c_name|b.p_name|b.t_apply_username'=>array('like','%'.$search_name.'%') ,'b.new_flag'=>1,'a.status'=>array('in','4,8,11,13,17,34,16'),'a.apply_admin_id'=>$adminarr])->order('a.apply_id')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
return $data;
}
$where=array();
//根据状态值取出对应状态的数据
//上报中(初审未通过):4
//上报中(尽调未通过):34
//上报中(复审未通过):8
//上报中(风控审核未通过):11
//上报中(未缴费未通过):13
//上报中(专家审核未通过):17
//联席会审核中(已确认专家审核):16
$where['status'] = array('in','4,8,11,13,17,34,16');
//取得apply_admin_id为0或者当前用户的数据
if($admin_id!=1){
$where['apply_admin_id']=$adminarr;
}
$order='update_time';
return self::where($where)->order($order)->paginate(config('paginate.list_rows'),false,['query'=>get_query()]);
}
}