2019-09-06 23:53:10 +08:00

271 lines
4.9 KiB
PHP
Executable File

<?php
namespace wstmart\admin\model;
use wstmart\admin\model\Goods as M;
use think\Db;
/**
* ============================================================================
* 订单投诉业务处理
*/
class Informs extends Base{
/**
* 获取举报列表
*/
public function pageQuery(){
$informStatus = (int)Input('informStatus',-1);
if($informStatus>-1)$where['o.informStatus']=$informStatus;
$where['o.dataFlag']=1;
$order = [];
$rs = Db::name('informs')->alias('o')
->field('o.*,s.shopId,s.shopName,u.userName,u.loginName,oc.goodsImg,oc.goodsId,oc.goodsName')
->join('__SHOPS__ s','o.shopId=s.shopId','inner','left')
->join('__USERS__ u','o.informTargetId=u.userId','inner')
->join('__GOODS__ oc','oc.goodsId=o.goodId','inner')
->where($where)
->order('informId desc')
->paginate()
->toArray();
$reason = WSTDatas('INFORMS_TYPE');
for($i=1;$i<=count($reason);$i++){
for($j=0;$j<count($rs['Rows']);$j++)
if($rs['Rows'][$j]['informType'] == $i){
$rs['Rows'][$j]['informType'] = $reason[$i]['dataName'];
}
}
return $rs;
}
/**
* 获取举报信息
*/
public function getDetail(){
$informId = (int)Input('cid');
$data = $this->alias('oc')
->join('__SHOPS__ s','oc.shopId=s.shopId','inner','left')
->join('__USERS__ u','oc.informTargetId=u.userId','inner')
->where("oc.informId=$informId")
->find();
if($data){
if($data['informAnnex']!='')$data['informAnnex'] = explode(',',$data['informAnnex']);
$data['userName'] = ($data['userName']=='')?$data['loginName']:$data['userName'];
}
return $data;
}
/**
* 处理
*/
public function finalHandle(){
$rd = array('status'=>-1,'msg'=>'无效的举报信息');
$informId = (int)Input('cid');
$finalResult = Input('finalResult');
$informStatus = Input('informStatus');
if($informId==0){
return WSTReturn('无效的举报信息',-1);
}
//判断是否已经处理过了
$rs = Db::name('informs')->alias('oc')
->field('oc.informTargetId,oc.informStatus,oc.goodId,oc.shopId,oc.informTargetId')
->where("oc.informId=$informId")
->find();
if($informStatus == 3){
try{
$data['isInform'] = 0;
$ers = Db::name('informs')->where('informTargetId='.$rs['informTargetId'])->delete();
$res = Db::name('users')->where('userId='.$rs['informTargetId'])->update($data);
if($ers!==false){
//发站内用户信息提醒
WSTSendMsg($rs['informTargetId'],"由于您被检验出恶意举报,您所有未处理举报商品已被取消并且已被禁止举报!",['from'=>3,'dataId'=>$informId]);
Db::commit();
return WSTReturn('操作成功',2);
}
}catch(\Exception $e){
Db::rollback();errLog($e);
return WSTReturn('操作失败',-1);
}
}
if($rs['informStatus']!=1 && $rs['informStatus']!=2){
if($informStatus == 2){
$m = new M();
$m->illegal($rs['goodId'],1);
}
$data = array();
$data['finalHandleStaffId'] = session('WST_STAFF.staffId');
$data['informStatus'] = $informStatus;
$data['respondContent'] = Input('finalResult');
$data['finalHandleTime'] = date('Y-m-d H:i:s');
Db::startTrans();
try{
$ers = Db::name('informs')->where('informId='.$informId)->update($data);
if($ers!==false){
//发站内商家信息提醒
$shopId = $rs["shopId"];
$tpl = WSTMsgTemplates('SHOP_GOODS_INFORM');
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
$goodId = $rs['goodId'];
$goods = Db::name("goods")->where(["goodsId"=>$goodId])->field("goodsName")->find();
$find = ['${GOODS}'];
$replace = [$goods['goodsName']];
$msg = array();
$msg["shopId"] = $shopId;
$msg["tplCode"] = $tpl["tplCode"];
$msg["msgType"] = 1;
$msg["content"] = str_replace($find,$replace,$tpl['tplContent']);
$msg["msgJson"] = ['from'=>3,'dataId'=>$informId];
model("common/MessageQueues")->add($msg);
}
//发站内用户信息提醒
WSTSendMsg($rs['informTargetId'],"您举报的商品已有回复,请查看违规举报详情。",['from'=>3,'dataId'=>$informId]);
Db::commit();
return WSTReturn('操作成功',1);
}
}catch(\Exception $e){
Db::rollback();errLog($e);
return WSTReturn('操作失败',-1);
}
}else{
return WSTReturn('操作失败,该举报状态已发生改变,请刷新后重试!',-1);
}
}
}