271 lines
4.9 KiB
PHP
Executable File
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);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|