first commit
This commit is contained in:
338
pgserver/application/admin/controller/MessageRemind.php
Normal file
338
pgserver/application/admin/controller/MessageRemind.php
Normal file
@@ -0,0 +1,338 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\model\Message;
|
||||
use app\model\Notice;
|
||||
use app\model\Attachment;
|
||||
use think\Db;
|
||||
use think\facade\Request;
|
||||
use think\facade\Log;
|
||||
|
||||
class MessageRemind extends Base
|
||||
{
|
||||
private $type =array(1=>'询价待处理',2=>"订单进度",3=>"调价待处理",4=>"查勘待派单",5=>"查勘待跟进",6=>"报告待制作",7=>"报告待审核",8=>"工作流待处理",9=>"工作流进度");
|
||||
private $message_type =array(1=>'询价待处理',2=>"订单进度",3=>"调价待处理",4=>"查勘待派单",5=>"查勘待跟进",6=>"报告待制作",
|
||||
7=>"报告待审核",8=>"工作流待处理",9=>"工作流进度",10=>'询价待处理',11=>"订单进度",12=>"调价待处理",13=>"查勘待派单",
|
||||
14=>"查勘待跟进",15=>"报告待制作",16=>"报告待审核",17=>"工作流待处理",18=>"工作流进度",18=>"查勘待跟进",19=>"报告待制作",
|
||||
20=>"报告待审核",21=>"工作流待处理",22=>"工作流进度",23=>"查勘待跟进",24=>"报告待制作",25=>"报告待审核");
|
||||
/**
|
||||
* 获取信息列表
|
||||
* @author cavan
|
||||
*/
|
||||
public function MessageRemindList()
|
||||
{
|
||||
if(empty($this->userInfo)){
|
||||
return $this->buildFailed("登录已失效");
|
||||
}
|
||||
$Mdb = new Message();
|
||||
|
||||
$resultData=$Mdb->where(["status"=>1,"user_id"=>$this->userInfo['user_id']])
|
||||
->order("create_time asc")
|
||||
->field('*')
|
||||
->select()
|
||||
->toArray();
|
||||
$data = array();
|
||||
if(!empty($resultData)){
|
||||
$inquiryPending = array();$OrderProgress = array();$ModifyPricePending = array();$SurveyWaitingList = array();$SurveyfollowUp = array();
|
||||
$ReportProduced = array();$ReportReviewed = array();$WorkflowPending = array();$WorkflowProgress = array();
|
||||
$inquiryPendingCount = $OrderProgressCount = $ModifyPricePendingCount = $SurveyWaitingListCount = $SurveyfollowUpCount = $ReportProducedCount = $ReportReviewedCount = $WorkflowPendingCount = $WorkflowProgressCount = 0;
|
||||
$type_arr = array_unique(array_column($resultData,"type"));
|
||||
if(!empty($type_arr)){
|
||||
foreach ($type_arr as $k => $v){
|
||||
foreach ($resultData as $kd => $vd){
|
||||
$vd['create_time'] = date("Y-m-d H:i",strtotime($vd['create_time']));
|
||||
if($v == $vd['type']){
|
||||
if($v == 1){
|
||||
$inquiryPending[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$inquiryPendingCount++;
|
||||
}
|
||||
}else if($v == 2){
|
||||
if($vd['message_type'] == 11 || $vd['message_type'] == 31){ //报告已完成 报告完成时间不是当天的不显示
|
||||
$completion_time = Db::name("report")
|
||||
->where("quot_id",$vd['quot_id'])
|
||||
->value("completion_time");
|
||||
if($completion_time && date("Y-m-d",$completion_time) == date("Y-m-d",time())){
|
||||
$OrderProgress[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$OrderProgressCount++;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$OrderProgress[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$OrderProgressCount++;
|
||||
}
|
||||
}
|
||||
}else if($v == 3){
|
||||
$ModifyPricePending[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$ModifyPricePendingCount++;
|
||||
}
|
||||
}else if($v == 4){
|
||||
$SurveyWaitingList[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$SurveyWaitingListCount++;
|
||||
}
|
||||
}else if($v == 5){
|
||||
$SurveyfollowUp[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$SurveyfollowUpCount++;
|
||||
}
|
||||
}else if($v == 6){
|
||||
$ReportProduced[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$ReportProducedCount++;
|
||||
}
|
||||
}else if($v == 7){
|
||||
$ReportReviewed[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$ReportReviewedCount++;
|
||||
}
|
||||
}else if($v == 8){
|
||||
$WorkflowPending[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$WorkflowPendingCount++;
|
||||
}
|
||||
}else if($v == 9){
|
||||
$WorkflowProgress[] = $vd;
|
||||
if($vd['issee'] == 2){
|
||||
$WorkflowProgressCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$data['inquiryPending'] = $inquiryPending;
|
||||
$data['OrderProgress'] = array_merge($this->arraySort(array_merge($OrderProgress),"create_time","desc"));
|
||||
$data['ModifyPricePending'] = $ModifyPricePending;
|
||||
$data['SurveyWaitingList'] = $SurveyWaitingList;
|
||||
$data['SurveyfollowUp'] = $SurveyfollowUp;
|
||||
$data['ReportProduced'] = $ReportProduced;
|
||||
$data['ReportReviewed'] = $ReportReviewed;
|
||||
$data['WorkflowPending'] = $WorkflowPending;
|
||||
$data['WorkflowProgress'] = $WorkflowProgress;
|
||||
$data['inquiryPendingCount'] = $inquiryPendingCount;
|
||||
$data['OrderProgressCount'] = $OrderProgressCount;
|
||||
$data['ModifyPricePendingCount'] = $ModifyPricePendingCount;
|
||||
$data['SurveyWaitingListCount'] = $SurveyWaitingListCount;
|
||||
$data['SurveyfollowUpCount'] = $SurveyfollowUpCount;
|
||||
$data['ReportProducedCount'] = $ReportProducedCount;
|
||||
$data['ReportReviewedCount'] = $ReportReviewedCount;
|
||||
$data['WorkflowPendingCount'] = $WorkflowPendingCount;
|
||||
$data['WorkflowProgressCount'] = $WorkflowProgressCount;
|
||||
}
|
||||
|
||||
return $this->buildSuccess($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息已读调用方法
|
||||
*
|
||||
* @author cavan
|
||||
*
|
||||
* @param ids //信息表id字符串
|
||||
*/
|
||||
public function MessageRead(){
|
||||
$ids = $this->request->post('ids', '', 'trim'); //信息表id
|
||||
$relsut = array();
|
||||
if(!$ids){
|
||||
$Mdb = new Message();
|
||||
$resultData=$Mdb->where(["status"=>1,"issee"=>2,"user_id"=>$this->userInfo['user_id']])
|
||||
->field('id')
|
||||
->select()
|
||||
->toArray();
|
||||
if(!empty($resultData)){
|
||||
foreach ($resultData as $k => $v){
|
||||
$relsut = MessageRead($v['id']);
|
||||
}
|
||||
}else{
|
||||
return $this->buildSuccess();
|
||||
}
|
||||
}else{
|
||||
$relsut = MessageRead($ids);
|
||||
}
|
||||
if($relsut && $relsut['code'] == 1){
|
||||
return $this->buildSuccess();
|
||||
}else {
|
||||
return $this->buildFailed("操作成功");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* app消息写入方法
|
||||
*
|
||||
* @author cavan
|
||||
*
|
||||
* @param quot_id //询价主表id
|
||||
* @param type //消息归属
|
||||
* @param message_type //消息类型
|
||||
* @param property_cert_info_id //物业表id
|
||||
*/
|
||||
public function publicMessage(){
|
||||
$quot_id = $this->request->post('quot_id', '', 'trim'); //询价主表id
|
||||
$type = $this->request->post('type', '', 'trim'); //消息归属
|
||||
$message_type = $this->request->post('message_type', '', 'trim'); //消息类型
|
||||
$property_cert_info_id = $this->request->post('property_cert_info_id', '', 'trim'); //物业表id
|
||||
|
||||
$relsut = PublicMessage($quot_id,$type,$message_type,$property_cert_info_id);
|
||||
if($relsut['code'] == 1){
|
||||
return $this->buildSuccess();
|
||||
}else {
|
||||
return $this->buildFailed($relsut['msg']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 公告 / 传阅
|
||||
*
|
||||
* @author cavan
|
||||
*
|
||||
*/
|
||||
public function Notice(){
|
||||
if(empty($this->userInfo)){
|
||||
return $this->buildFailed("登录已失效");
|
||||
}
|
||||
$Ndb = new Notice();
|
||||
$Attachment = new Attachment(); //获取图片信息
|
||||
|
||||
$resultData1=$Ndb->where(["type"=>1])
|
||||
->where("status",1)
|
||||
->order(['update_time'=>'desc','create_time'=>'desc'])
|
||||
->field('*')
|
||||
->limit(5)
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
if(!empty($resultData1)){
|
||||
foreach ($resultData1 as $k => $v){
|
||||
//图片列表
|
||||
$resultData1[$k]['fileslist'] = !empty($v['files'])?$Attachment->getUrls($v['files']):array();
|
||||
}
|
||||
}
|
||||
|
||||
$user_id = $this->userInfo['user_id'];
|
||||
$resultData2=$Ndb->where(["type"=>2])
|
||||
->where('FIND_IN_SET(:uid,relevant_personnel_ids)',['uid' => $user_id])
|
||||
->where("status",1)
|
||||
->order(['update_time'=>'desc','create_time'=>'desc'])
|
||||
->field('*')
|
||||
->limit(5)
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
if(!empty($resultData2)){
|
||||
foreach ($resultData2 as $k => $v){
|
||||
//图片列表
|
||||
$resultData2[$k]['fileslist'] = !empty($v['files'])?$Attachment->getUrls($v['files']):array();
|
||||
$resultData2[$k]['propertyDetails'] = Db::name("notice_reply")->where("notice_id",$v['id'])->field("*")->select();
|
||||
}
|
||||
}
|
||||
|
||||
$data['Notice'] = $resultData1;
|
||||
$data['Circulation'] = $resultData2;
|
||||
|
||||
return $this->buildSuccess($data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取信息列表最新 10条
|
||||
* @author cavan
|
||||
*/
|
||||
public function MessageRemindAll()
|
||||
{
|
||||
$min_id = $this->request->post('min_id', '', 'trim'); //分页
|
||||
if(empty($this->userInfo)){
|
||||
return $this->buildFailed("登录已失效");
|
||||
}
|
||||
$Mdb = new Message();
|
||||
$where = array();
|
||||
$where[] = ["status","=",1];
|
||||
$where[] = ["user_id","=",$this->userInfo['user_id']];
|
||||
if($min_id){
|
||||
$where[] = ["id","<",$min_id];
|
||||
}
|
||||
$resultData=$Mdb->where($where)
|
||||
->order(['issee'=>'desc','id'=>'desc'])
|
||||
->field('*')
|
||||
->limit(10)
|
||||
->select()
|
||||
->toArray();
|
||||
$issee_num = $Mdb->where(["status"=>1,'issee'=>2,"user_id"=>$this->userInfo['user_id']])->count();
|
||||
if(!empty($resultData)){
|
||||
foreach ($resultData as $kd => $vd){
|
||||
$resultData[$kd]['create_time'] = date("Y-m-d H:i",strtotime($vd['create_time']));
|
||||
if($vd['type'] == 1){
|
||||
$resultData[$kd]['messageType'] = "inquiryPending";
|
||||
}else if($vd['type'] == 2){
|
||||
if($vd['message_type'] == 11 || $vd['message_type'] == 31){ //报告已完成 报告完成时间不是当天的不显示
|
||||
$completion_time = Db::name("report")
|
||||
->where("quot_id",$vd['quot_id'])
|
||||
->value("completion_time");
|
||||
if(!$completion_time || ($completion_time && date("Y-m-d",$completion_time) != date("Y-m-d",time()))){
|
||||
unset($resultData[$kd]);
|
||||
}else{
|
||||
$resultData[$kd]['messageType'] = "OrderProgress";
|
||||
}
|
||||
}else{
|
||||
$resultData[$kd]['messageType'] = "OrderProgress";
|
||||
}
|
||||
}else if($vd['type'] == 3){
|
||||
$resultData[$kd]['messageType'] = "ModifyPricePending";
|
||||
}else if($vd['type'] == 4){
|
||||
$resultData[$kd]['messageType'] = "SurveyWaitingList";
|
||||
}else if($vd['type'] == 5){
|
||||
$resultData[$kd]['messageType'] = "SurveyfollowUp";
|
||||
}else if($vd['type'] == 6){
|
||||
$resultData[$kd]['messageType'] = "ReportProduced";
|
||||
}else if($vd['type'] == 7){
|
||||
$resultData[$kd]['messageType'] = "ReportReviewed";
|
||||
}else if($vd['type'] == 8){
|
||||
$resultData[$kd]['messageType'] = "WorkflowPending";
|
||||
}else if($vd['type'] == 9){
|
||||
$resultData[$kd]['messageType'] = "WorkflowProgress";
|
||||
}
|
||||
}
|
||||
}
|
||||
$data = array();
|
||||
$data['issee_num'] = $issee_num;
|
||||
$data['list'] = array_merge($resultData);
|
||||
|
||||
return $this->buildSuccess($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息推送
|
||||
*
|
||||
*/
|
||||
public function messagePush(){
|
||||
ignore_user_abort(TRUE); //如果客户端断开连接,不会引起脚本abort
|
||||
set_time_limit(0); //取消脚本执行延时上限
|
||||
|
||||
$request = Request::instance();
|
||||
$par = $request->param();
|
||||
$par = json_decode(urldecode($par['query']), true);
|
||||
if(!empty($par)){
|
||||
$res = sendMessage($par['user_id'],$par['message_content']);
|
||||
Log::write("参数:".json_encode($par)."--返回:".$res,'workermanmsg');
|
||||
}
|
||||
}
|
||||
|
||||
//数组排序
|
||||
function arraySort($array,$keys,$sort='asc') {
|
||||
$newArr = $valArr = array();
|
||||
foreach ($array as $key=>$value) {
|
||||
$valArr[$key] = $value[$keys];
|
||||
}
|
||||
($sort == 'asc') ? asort($valArr) : arsort($valArr);
|
||||
reset($valArr);
|
||||
foreach($valArr as $key=>$value) {
|
||||
$newArr[$key] = $array[$key];
|
||||
}
|
||||
return $newArr;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user