0){ $where['s.areaIdPath'] = ['like',"$areaId1%"]; $areaId2 = (int)input("areaId1_".$areaId1); if($areaId2>0)$where['s.areaIdPath'] = ['like',$areaId1."_"."$areaId2%"]; $areaId3 = (int)input("areaId1_".$areaId1."_".$areaId2); if($areaId3>0)$where['s.areaId'] = $areaId3; } if($startDate!='' && $endDate!=''){ $where['oc.complainTime'] = ['between',[$startDate.' 00:00:00',$endDate.' 23:59:59']]; }else if($startDate!=''){ $where['oc.complainTime'] = ['>=',$startDate.' 00:00:00']; }else if($endDate!=''){ $where['oc.complainTime'] = ['<=',$endDate.' 23:59:59']; } if($complainStatus>-1)$where['oc.complainStatus']=$complainStatus; if($orderNo!='')$where['o.orderNo']=['like',"%$orderNo%"]; $where['o.dataFlag']=1; $sort = input('sort'); $order = []; if($sort!=''){ $sortArr = explode('.',$sort); $order = $sortArr[0].' '.$sortArr[1]; } $rs = Db::name('orders')->alias('o') ->field('oc.complainId,o.orderId,o.orderNo,o.orderSrc,s.shopName,u.userName,u.loginName,oc.complainTime,oc.complainStatus,oc.complainType,o.orderCode') ->join('__SHOPS__ s','o.shopId=s.shopId','inner','left') ->join('__USERS__ u','o.userId=u.userId','inner') ->join('__ORDER_COMPLAINS__ oc','oc.orderId=o.orderId','inner') ->where($where) ->order($order) ->order('complainId desc') ->paginate() ->toArray(); if(count($rs['Rows'])>0){ foreach ($rs['Rows'] as $key => $v){ $rs['Rows'][$key]['orderCodeTitle'] = WSTOrderCodeTitle($v['orderCode']); } } return $rs; } /** * 获取订单详细信息 */ public function getDetail(){ $complainId = (int)Input('cid'); $data = $this->alias('oc') ->field('oc.*,u.userName,u.loginName') ->join('__USERS__ u','oc.complainTargetId=u.userId','inner') ->where("oc.complainId=$complainId") ->find(); if($data){ if($data['complainAnnex']!='')$data['complainAnnex'] = explode(',',$data['complainAnnex']); if($data['respondAnnex']!='')$data['respondAnnex'] = explode(',',$data['respondAnnex']); $data['userName'] = ($data['userName']=='')?$data['loginName']:$data['userName']; $rs = Db::name('orders')->alias('o') ->field('o.orderStatus,o.areaId,o.userAddress,o.orderNo,o.userName,s.shopName,o.userAddress') ->join('__SHOPS__ s','o.shopId=s.shopId','left') ->where(['o.dataFlag'=>1, 'o.orderId'=>$data['orderId']]) ->find(); //获取日志信息 $rs['log'] = Db::name('log_orders')->alias('lo') ->field('lo.*,u.loginName,u.userType,s.shopName') ->join('__USERS__ u','lo.logUserId=u.userId','left') ->join('__SHOPS__ s','u.userType=1 and s.userId=u.userId','left') ->where(['orderId'=>$data['orderId']]) ->select(); //获取相关商品 $rs['goodslist'] = Db::name('order_goods')->where(['orderId'=>$data['orderId']])->select(); $data['order'] = $rs; } return $data; } /** * 转交给应诉人应诉 */ public function deliverRespond(){ $id = (int)Input('id'); if($id==0){ return WSTReturn('无效的投诉信息',-1); } //判断是否已经处理过了 $rs = $this->alias('oc') ->field('oc.complainStatus,oc.respondTargetId,o.orderNo,s.userId,o.shopId') ->join('__ORDERS__ o','oc.orderId=o.orderId','inner') ->join('__SHOPS__ s','o.shopId = s.shopId','left') ->where("complainId=$id") ->find(); if($rs['complainStatus']==0){ $data = array(); $data['needRespond'] = 1; $data['complainStatus'] = 1; $data['deliverRespondTime'] = date('Y-m-d H:i:s'); Db::startTrans(); try{ $ers = $this->where('complainId='.$id)->update($data); if($ers!==false){ //发站内信息提醒 $tpl = WSTMsgTemplates('ORDER_NEW_COMPLAIN'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $find = ['${ORDER_NO}']; $replace = [$rs['orderNo']]; $msg = array(); $msg["shopId"] = $rs["shopId"]; $msg["tplCode"] = $tpl["tplCode"]; $msg["msgType"] = 1; $msg["content"] = str_replace($find,$replace,$tpl['tplContent']) ; $msg["msgJson"] = ['from'=>3,'dataId'=>$id]; model("common/MessageQueues")->add($msg); } Db::commit(); return WSTReturn('操作成功',1); } }catch (\Exception $e) { Db::rollback();errLog($e); return WSTReturn('操作失败',-1); } }else{ return WSTReturn('操作失败,该投诉状态已发生改变,请刷新后重试!',-1); } return $rd; } /** * 仲裁 */ public function finalHandle(){ $rd = array('status'=>-1,'msg'=>'无效的投诉信息'); $complainId = (int)Input('cid'); if($complainId==0){ return WSTReturn('无效的投诉信息',-1); } //判断是否已经处理过了 $rs = $this->alias('oc') ->field('oc.complainStatus,s.userId shopUserId,o.shopId,o.userId,o.orderNo,o.orderId,oc.needRespond') ->join('__ORDERS__ o','oc.orderId=o.orderId','inner') ->join('__SHOPS__ s','o.shopId=s.shopId','left') ->where("complainId=$complainId") ->find(); if($rs['complainStatus']!=4){ $data = array(); $data['finalHandleStaffId'] = session('WST_STAFF.staffId'); $data['complainStatus'] = 4; $data['finalResult'] = Input('finalResult'); $data['finalResultTime'] = date('Y-m-d H:i:s'); Db::startTrans(); try{ $ers = $this->where('complainId='.$complainId)->update($data); if($ers!==false){ //需要卖家回应的话则给卖家也一条消息 $tpl = WSTMsgTemplates('ORDER_HANDLED_COMPLAIN'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ //发站内商家信息提醒 $find = ['${ORDER_NO}']; $replace = [$rs['orderNo']]; $content = str_replace($find,$replace,$tpl['tplContent']) ; if($rs['needRespond']==1){ $msg = array(); $msg["shopId"] = $rs["shopId"]; $msg["tplCode"] = $tpl["tplCode"]; $msg["msgType"] = 1; $msg["content"] = $content ; $msg["msgJson"] = ['from'=>3,'dataId'=>$complainId]; model("common/MessageQueues")->add($msg); } //发站内用户信息提醒 WSTSendMsg($rs['userId'],$content,['from'=>3,'dataId'=>$complainId]); } Db::commit(); return WSTReturn('操作成功',1); } }catch(\Exception $e){ Db::rollback();errLog($e); return WSTReturn('操作失败',-1); } }else{ return WSTReturn('操作失败,该投诉状态已发生改变,请刷新后重试!',-1); } } }