You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			169 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
namespace wstmart\admin\model;
 | 
						|
/**
 | 
						|
 * ============================================================================
 | 
						|
 * 地区业务处理
 | 
						|
 */
 | 
						|
class Areas extends Base{
 | 
						|
	/**
 | 
						|
	 * 分页
 | 
						|
	 */
 | 
						|
	public function pageQuery(){
 | 
						|
		$parentId = input('get.parentId/d',0);
 | 
						|
		return $this->where(['dataFlag'=>1,'parentId'=>$parentId])->order('areaId desc')->paginate(input('post.limit/d'));
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 获取指定对象
 | 
						|
	 */
 | 
						|
	public function getById($id){
 | 
						|
		return $this->get(['dataFlag'=>1,'areaId'=>$id]);
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 获取地区
 | 
						|
	 */
 | 
						|
	public function getFieldsById($id,$fileds){
 | 
						|
		return $this->where(['dataFlag'=>1,'areaId'=>$id])->field($fileds)->find();
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 显示是否显示/隐藏
 | 
						|
	 */
 | 
						|
	public function editiIsShow(){
 | 
						|
		//获取子集
 | 
						|
		$ids = array();
 | 
						|
		$ids[] = input('post.id/d',0);
 | 
						|
		$ids = $this->getChild($ids,$ids);
 | 
						|
		$isShow = input('post.isShow/d',0)?0:1;
 | 
						|
		$result = $this->where("areaId in(".implode(',',$ids).")")->update(['isShow' => $isShow]);
 | 
						|
		if(false !== $result){
 | 
						|
			return WSTReturn("操作成功", 1);
 | 
						|
		}else{
 | 
						|
			return WSTReturn($this->getError(),-1);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 迭代获取下级
 | 
						|
	 */
 | 
						|
	public function getChild($ids = array(),$pids = array()){
 | 
						|
		$result = $this->where("dataFlag=1 and parentId in(".implode(',',$pids).")")->select();
 | 
						|
		if(count($result)>0){
 | 
						|
			$cids = array();
 | 
						|
			foreach ($result as $key =>$v){
 | 
						|
				$cids[] = $v['areaId'];
 | 
						|
			}
 | 
						|
			$ids = array_merge($ids,$cids);
 | 
						|
			return $this->getChild($ids,$cids);
 | 
						|
		}else{
 | 
						|
			return $ids;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
    /**
 | 
						|
	 * 根据子分类获取其父级分类
 | 
						|
	 */
 | 
						|
	public function getParentIs($id,$data = array()){
 | 
						|
		$data[] = $id;
 | 
						|
		$parentId = $this->where('areaId',$id)->value('parentId');
 | 
						|
		if($parentId==0){
 | 
						|
			krsort($data);
 | 
						|
			return $data;
 | 
						|
		}else{
 | 
						|
			return $this->getParentIs($parentId, $data);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 获取自己以及父级的地区名称
 | 
						|
	 */
 | 
						|
	public function getParentNames($id,$data = array()){
 | 
						|
		$areas = $this->where('areaId',$id)->field('parentId,areaName')->find();
 | 
						|
		$data[] = $areas['areaName'];
 | 
						|
		if((int)$areas['parentId']==0){
 | 
						|
			krsort($data);
 | 
						|
			return $data;
 | 
						|
		}else{
 | 
						|
			return $this->getParentNames((int)$areas['parentId'], $data);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 排序字母
 | 
						|
	 */
 | 
						|
	public function letterObtain(){
 | 
						|
		$areaName =  input('code');
 | 
						|
		if($areaName =='')return WSTReturn("", 1);
 | 
						|
		$areaName = WSTGetFirstCharter($areaName);
 | 
						|
		if($areaName){
 | 
						|
			return WSTReturn($areaName, 1);
 | 
						|
		}else{
 | 
						|
			return WSTReturn("", 1);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 新增
 | 
						|
	 */
 | 
						|
	public function add(){
 | 
						|
		$areaType = 0;
 | 
						|
		$parentId = input('post.parentId/d',0);
 | 
						|
		if($parentId>0){
 | 
						|
			$prs = $this->getFieldsById($parentId,['areaType']);
 | 
						|
			$areaType = $prs['areaType']+1;
 | 
						|
		}
 | 
						|
		$data = input('post.');
 | 
						|
		WSTUnset($data,'areaId,dataFlag');
 | 
						|
		$data['areaType'] = $areaType;
 | 
						|
		$data['createTime'] = date('Y-m-d H:i:s');
 | 
						|
		$result = $this->validate('Areas.add')->allowField(true)->save($data);
 | 
						|
		if(false !== $result){
 | 
						|
			return WSTReturn("新增成功", 1);
 | 
						|
		}else{
 | 
						|
			return WSTReturn($this->getError(),-1);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 编辑
 | 
						|
	 */
 | 
						|
	public function edit(){
 | 
						|
		$areaId = input('post.areaId/d');
 | 
						|
		$result = $this->validate('Areas.edit')->allowField(['areaName','isShow','areaSort','areaKey'])->save(input('post.'),['areaId'=>$areaId]);
 | 
						|
		$ids = array();
 | 
						|
		$ids[] = $areaId;
 | 
						|
		$ids = $this->getChild($ids,$ids);
 | 
						|
		$this->where("areaId in(".implode(',',$ids).")")->update(['isShow' => input('post.')['isShow']]);
 | 
						|
		if(false !== $result){
 | 
						|
			return WSTReturn("修改成功", 1);
 | 
						|
		}else{
 | 
						|
			return WSTReturn($this->getError(),-1);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * 删除
 | 
						|
	 */
 | 
						|
	public function del(){
 | 
						|
		$ids = array();
 | 
						|
		$ids[] = input('post.id/d');
 | 
						|
		$ids = $this->getChild($ids,$ids);
 | 
						|
		$data = [];
 | 
						|
		$data['dataFlag'] = -1;
 | 
						|
		$result = $this->where("areaId in(".implode(',',$ids).")")->update($data);
 | 
						|
		if(false !== $result){
 | 
						|
			return WSTReturn("删除成功", 1);
 | 
						|
		}else{
 | 
						|
			return WSTReturn($this->getError(),-1);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 *  获取地区列表
 | 
						|
	 */
 | 
						|
	public function listQuery($parentId){
 | 
						|
		return $this->where(['dataFlag'=>1,'parentId'=>$parentId,'isShow'=>1])->field('areaId,areaName,parentId')->order('areaSort desc')->select();
 | 
						|
	}
 | 
						|
} |