You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			168 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| namespace wstmart\common\model;
 | |
| /**
 | |
|  * ============================================================================
 | |
|  * 商品咨询类
 | |
|  */
 | |
| class GoodsConsult extends Base{
 | |
| 	/**
 | |
| 	* 根据商品id获取商品咨询
 | |
| 	*/
 | |
| 	public function listQuery(){
 | |
| 		$goodsId = (int)input('goodsId');
 | |
| 		$type = (int)input('type');
 | |
| 		$consultKey = input('consultKey');
 | |
| 		$where = [];
 | |
| 		$where['gc.dataFlag'] = 1;
 | |
| 		$where['gc.isShow'] = 1;
 | |
| 		$where['gc.goodsId'] = $goodsId;
 | |
| 		// 筛选类别
 | |
| 		if($type>0){$where['gc.consultType'] = $type;}
 | |
| 		// 关键字搜索
 | |
| 		if($consultKey!=''){$where['gc.consultContent'] = ['like',"%$consultKey%"];}
 | |
|         $rs = $this->alias('gc')
 | |
|         		   ->join('__USERS__ u','u.userId=gc.userId','left')
 | |
|         		   ->field('gc.*,u.loginName')
 | |
|         		   ->where($where)
 | |
|         		   ->order('gc.createTime desc')
 | |
|         		   ->paginate(input('pagesize/d',5))->toArray();
 | |
|         if(!empty($rs['Rows'])){
 | |
|         	foreach($rs['Rows'] as $k=>&$v){
 | |
|         		// 解义
 | |
|         		$v['consultContent'] = htmlspecialchars_decode($v['consultContent']);
 | |
|         		// 处理匿名
 | |
|         		if($v['userId']>0){
 | |
|         			// 替换中间两个字符
 | |
|         			$start = floor((strlen($v['loginName'])/2))-1;
 | |
| 					$v['loginName'] = substr_replace($v['loginName'],'**',$start,2);
 | |
|         		}
 | |
|         	}
 | |
|         }
 | |
|         return WSTReturn('', 1,$rs);
 | |
|     }
 | |
|     /**
 | |
|      * 根据商品id获取一条最新商品咨询
 | |
|      */
 | |
|     public function firstQuery($id){
 | |
|     	$where = [];
 | |
|     	$where['gc.dataFlag'] = 1;
 | |
|     	$where['gc.isShow'] = 1;
 | |
|     	$where['gc.goodsId'] = $id;
 | |
|     	$rs = $this->alias('gc')->join('__USERS__ u','u.userId=gc.userId','left')
 | |
|     	->where($where)->field('gc.*,u.loginName')->order('gc.createTime desc')->find();
 | |
|     	if(!empty($rs)){
 | |
|     		// 解义
 | |
|     		$rs['consultContent'] = htmlspecialchars_decode($rs['consultContent']);
 | |
|     		// 处理匿名
 | |
|     		if($rs['userId']>0){
 | |
|     			// 替换中间两个字符
 | |
|     			$start = floor((strlen($rs['loginName'])/2))-1;
 | |
|     			$rs['loginName'] = substr_replace($rs['loginName'],'**',$start,2);
 | |
|     		}
 | |
|     	}
 | |
|     	return $rs;
 | |
|     }
 | |
|     /**
 | |
|     * 添加
 | |
|     */
 | |
|     public function add($uId=0){
 | |
|     	$userId = ($uId==0)?(int)session('WST_USER.userId'):$uId;
 | |
|     	$data = input('param.');
 | |
|     	$data['userId'] = $userId;
 | |
|     	// 检测是否含有系统禁用关键字
 | |
|     	if(!WSTCheckFilterWords($data['consultContent'],WSTConf("CONF.limitWords"))){
 | |
| 				return WSTReturn("咨询内容包含非法字符");
 | |
| 		}
 | |
|     	// 转义,防止xss攻击
 | |
|     	$data['consultContent'] = htmlspecialchars($data['consultContent']);
 | |
|     	$rs = $this->validate('GoodsConsult.add')->allowField(true)->save($data);
 | |
|     	if($rs===false){
 | |
|     		return WSTReturn($this->getError(),-1);
 | |
|     	}
 | |
|     	return WSTReturn('提交成功', 1);
 | |
|     }
 | |
|     /**
 | |
|     * 根据店铺id获取商品咨询
 | |
|     */
 | |
|     public function pageQuery(){
 | |
|     	// 查询条件
 | |
|     	$type = (int)input('consultType');
 | |
|     	$consultKey = (int)input('consultKey');
 | |
|     	$shopId = (int)session('WST_USER.shopId');
 | |
|     	$where = [];
 | |
|     	$where['g.shopId'] = $shopId;
 | |
|     	if($type>0){$where['consultType'] = $type;}
 | |
|     	if($consultKey!=0){$where['consultContent'] = ['like',"%$consultKey%"];}
 | |
|     	$rs = $this->alias('gc')
 | |
|         		   ->join('__USERS__ u','u.userId=gc.userId','left')
 | |
|         		   ->join('__GOODS__ g','g.goodsId=gc.goodsId','inner')
 | |
|         		   ->field('gc.*,u.loginName,g.goodsName,g.goodsImg')
 | |
|         		   ->where($where)
 | |
|         		   ->order('gc.replyTime asc,gc.createTime desc')
 | |
|         		   ->paginate(5)->toArray();
 | |
|         if(!empty($rs['Rows'])){
 | |
|         	foreach($rs['Rows'] as $k=>&$v){
 | |
|         		// 解义
 | |
|         		$v['consultContent'] = htmlspecialchars_decode($v['consultContent']);
 | |
|         		$v['reply'] = htmlspecialchars_decode($v['reply']);
 | |
|         		// 处理匿名
 | |
|         		if($v['userId']>0){
 | |
|         			// 替换中间两个字符
 | |
|         			$start = floor((strlen($v['loginName'])/2))-1;
 | |
| 					$v['loginName'] = substr_replace($v['loginName'],'**',$start,2);
 | |
|         		}
 | |
|         	}
 | |
|         }
 | |
|        	return WSTReturn('', 1,$rs);
 | |
|     }
 | |
|     /**
 | |
|     * 商家回复
 | |
|     */
 | |
|     public function reply(){
 | |
|     	$data = input('param.');
 | |
|     	// 检测是否含有系统禁用关键字
 | |
|     	if(!WSTCheckFilterWords($data['reply'],WSTConf("CONF.limitWords"))){
 | |
| 				return WSTReturn("回复内容包含非法字符");
 | |
| 		}
 | |
|     	// 转义,防止xss攻击
 | |
|     	$data['reply'] = htmlspecialchars($data['reply']);
 | |
|         $data['replyTime'] = date('Y-m-d H:i:s');
 | |
|     	// 检测是否已经回复过了
 | |
|     	$hasReply = $this->where(['id'=>(int)$data['id']])->value('reply');
 | |
|     	if($hasReply!='')return WSTReturn('该咨询已回复,请刷新页面后重试~');
 | |
|     	$rs = $this->validate('GoodsConsult.edit')->allowField(true)->update($data);
 | |
|     	if($rs===false){
 | |
|     		return WSTReturn($this->getError(),-1);
 | |
|     	}
 | |
|     	return WSTReturn('提交成功', 1);
 | |
|     }
 | |
|     /**
 | |
|     * 根据用户id获取商品咨询
 | |
|     */
 | |
|     public function myConsultByPage(){
 | |
|         $userId = (int)session('WST_USER.userId');
 | |
|         $where = [];
 | |
|         $where['gc.userId'] = $userId;
 | |
|         $where['gc.dataFlag'] = 1;
 | |
|         $where['gc.isShow'] = 1;
 | |
|         $rs = $this->alias('gc')
 | |
|                    ->join('__GOODS__ g','g.goodsId=gc.goodsId')
 | |
|                    ->field('gc.*,g.goodsName,g.goodsImg')
 | |
|                    ->where($where)
 | |
|                    ->order('gc.createTime desc')
 | |
|                    ->paginate(input('pagesize/d'))->toArray();
 | |
|         if(!empty($rs['Rows'])){
 | |
|             foreach($rs['Rows'] as $k=>&$v){
 | |
|                 // 解义
 | |
|                 $v['consultContent'] = htmlspecialchars_decode($v['consultContent']);
 | |
|             }
 | |
|         }
 | |
|         return WSTReturn('', 1,$rs);
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |