<?php

class PurchaserAction extends CommonAction{
	
	public function _initialize(){
		parent::_initialize();
		$this->data['error'] = '-1';
	}
	//获取采购商列表
	public function index($city=0,$status=-1,$keyword='', $sort='',$serviceId = 0){
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			$map = array();
			if($serviceId > 0)
			{
				$map['t1.followBusiness'] = intval($serviceId);
			}
			switch ($city) {
				case 0:
					$cityarr = M('pf_admin_group')->where('status=1 and officeid='.$this->session['office'])->getField('id,name');
					$city_id = array_keys($cityarr);
					$city = '0,'.implode(',', $city_id);
					$map['t1.agid'] = array('in',$city);
					break;
				case -1:
					
					break;
				default:
					$map['t1.agid'] = array('in',$city);
					break;
			}
			
			switch ($status) {
				case 0:
					$map['t1.status'] = array('eq', 0);
					break;
				case 1:
					$map['t1.status'] = array('eq', 1);
					break;
				case 2:
					$map['t1.status'] = array('eq', 2);
					break;
				case -1:
					break;
				default:
					$map['t1.status'] = array('eq', $status);
					break;
			}
			$keyword = trim($keyword);
			if($keyword){
				$map = "(t1.username like '%".$keyword."%') or (t1.companyname like '%".$keyword."%') or (t1.tel like '%".$keyword."%')" ;
			}

			//分页
			$page = (intval($_REQUEST['page']) == 0) ? 1:intval($_REQUEST['page']);
			$pageSize = (intval($_REQUEST['pageSize']) == 0) ? 20:intval($_REQUEST['pageSize']);
			$pageCount = 0;
			$start = $pageSize * ($page - 1);


			$field = "t1.id,t1.username,t1.sex,t1.tel as mobile,t1.pwdLevel,DATE_FORMAT(t1.lastLoginDate,'%Y-%m-%d') as lastLoginDate,t1.status,t1.remark,DATE_FORMAT(t1.createDate,'%Y-%m-%d %H:%i') as createDate,t1.address,t1.storearea,t1.mainproduct,t1.workyear,t1.stockway,t1.companyname,t1.marketid,t1.agid,t1.followBusiness as serviceId,ifnull(t2.userName,'－－') as serviceName,ifnull(DATE_FORMAT(t1.followDate,'%Y-%m-%d'),'') as followDate,pl.loginappver,pl.loginDate,pl.wxLoginDate";

			$purchaser = M('pf_purchaser t1')
				->field($field)
				->join('view_userdtprofile_pf t2 on t2.id = t1.followBusiness')
				->join('pf_app_login pl on pl.pid=t1.id')
				->where($map)
				->order("t1.status asc,CONVERT(t1.username USING gbk)")
				//->limit($start,$pageSize)
				->select();

			$purCount = M('pf_purchaser t1')
				->field("count(t1.id) as num")
				->join('view_userdtprofile_pf t2 on t2.id = t1.followBusiness')
				->where($map)
				->find();

			$pageCount = intval($purCount["num"] / $pageSize) + 1;
			$dataCount = intval($purCount["num"]);


			if(!$purchaser){
				$this->data['result'] = array();
				$this->data['cnt'] = 0;
				$this->data['error'] = 1;
				exit;
			}
			
			foreach ($purchaser as $k => $v){
				//获取最近登录花商宝app的时间和版本
				//$purchaser[$k]['loginappver'] = $v['loginappver'];
				$purchaser[$k]['lastOpenApp'] = $v['loginDate']?date('Y-m-d H:i', $v['loginDate']):'';

				//最近打开微信小程序
				$purchaser[$k]['lastOpenWx'] = $v['wxLoginDate']?date('Y-m-d H:i', $v['wxLoginDate']):'';

				$purchaser[$k]['lastOpen'] = $v['wxLoginDate'] > $v['loginDate'] ? $v['wxLoginDate'] : $v['loginDate'];
			}

			foreach ($purchaser as $k => $v){
				$purchaser[$k]['areaName'] = getAreaSale($v['agid']);
				$purchaser[$k]['address'] = $purchaser[$k]['address']<>''?$purchaser[$k]['address']:'';
				$purchaser[$k]['remark'] = $purchaser[$k]['remark']<>''?$purchaser[$k]['remark']:'';
				$purchaser[$k]['storearea'] = $purchaser[$k]['storearea']<>''?$purchaser[$k]['storearea']:'';
				$purchaser[$k]['mainproduct'] = $purchaser[$k]['mainproduct']<>''?$purchaser[$k]['mainproduct']:'';
				$purchaser[$k]['workyear'] = $purchaser[$k]['workyear']<>''?$purchaser[$k]['workyear']:'';
				$purchaser[$k]['stockway'] = $purchaser[$k]['stockway']<>''?$purchaser[$k]['stockway']:'';
				$purchaser[$k]['companyname'] = $purchaser[$k]['companyname']<>''?$purchaser[$k]['companyname']:'';
				if($v['marketid'] > 0){
					$purchaser[$k]['marketName'] = M('pf_market')->where('id='.$v['marketid'])->getField('name');
				}else{
					$purchaser[$k]['marketName'] = '';
				}

				$sql ="select sum(total_fee) thisMonthMoney, ordertime from pf_order where uid=".$v['id']." and pay_status=2 AND origin='appcg' and  DATE_FORMAT( ordertime, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )";
				$thisMonthMoney = M()->query($sql);
				$purchaser[$k]['thisMonthMoney'] = $thisMonthMoney[0]['thisMonthMoney']?$thisMonthMoney[0]['thisMonthMoney']:'';

				$sql ="select sum(total_fee) prevMonthMoney, ordertime from pf_order where uid=".$v['id']." and pay_status=2 AND origin='appcg' and  PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( ordertime, '%Y%m' ) ) =1";
				$prevMonthMoney = M()->query($sql);
				$purchaser[$k]['prevMonthMoney'] = $prevMonthMoney[0]['prevMonthMoney']?$prevMonthMoney[0]['prevMonthMoney']:'';

				

				$twoMonthMoney = $prevMonthMoney[0]['prevMonthMoney'] + $thisMonthMoney[0]['thisMonthMoney'];

				$purchaser[$k]['twoMonthMoney'] = (string)($twoMonthMoney?$twoMonthMoney:'')
				;

				$lastVisitsDate =  M('pf_visit')->where(array('purchaser_id' => $v['id']))->order('visitDate desc')->find();
				$purchaser[$k]['lastVisitsDate'] = $lastVisitsDate['visitDate']?$lastVisitsDate['visitDate']:'';
				$visitorName = M('pf_userdt')->where('id='.$lastVisitsDate['visitor'])->getField('name');

				$purchaser[$k]['lastvisitorName'] = $visitorName?$visitorName:$lastVisitsDate['visitorName'];

				/*

				//获取最近登录花商宝app的时间和版本
				$lastLogin = M('pf_app_login')->where(array('pid' => $v['id']))->find();
				$purchaser[$k]['loginappver'] = $lastLogin['loginappver'];
				$purchaser[$k]['lastOpenApp'] = $lastLogin['loginDate']?date('Y-m-d H:i', $lastLogin['loginDate']):'';

				//最近打开微信小程序
				$purchaser[$k]['lastOpenWx'] = $lastLogin['wxLoginDate']?date('Y-m-d H:i', $lastLogin['wxLoginDate']):'';

				$purchaser[$k]['lastOpen'] = $lastLogin['wxLoginDate'] > $lastLogin['loginDate'] ? $lastLogin['wxLoginDate'] : $lastLogin['loginDate'];
				*/
				
				$purchaser[$k]['visits'] = getvisits($v['id'])?getvisits($v['id']): array();

			}

			switch (trim($sort)) {
				case 'twoMonthMoney':
					$purchaser = SorForArraytModel::my_sort($purchaser,'twoMonthMoney',SORT_DESC,SORT_REGULAR);
					break;
				case 'lastOpenDesc':
					$purchaser = SorForArraytModel::my_sort($purchaser,'lastOpen',SORT_DESC,SORT_REGULAR);
					break;
				case 'lastOpenAsc':
					$purchaser = SorForArraytModel::my_sort($purchaser,'lastOpen',SORT_ASC,SORT_REGULAR);
					break;
				case 'lastVisitsDate':
					$purchaser = SorForArraytModel::my_sort($purchaser,'lastVisitsDate',SORT_DESC,SORT_REGULAR);
					break;
				default:
					# code...
					break;
			}			


			//取指定页数据
			$purchaser = $this->page_array($pageSize,$page,$purchaser);


			$pageInfo = array();
			$pageInfo["page"] = $page;
			$pageInfo["pageSize"] = $pageSize;
			$pageInfo["pageCount"] = $pageCount;
			$pageInfo["dataCount"] = $dataCount;

			$this->data['result'] = $purchaser;
			$this->data['cnt'] = count($purchaser);
			$this->data['error'] = 1;
  		    $this->data['pageInfo'] = $pageInfo;

		}else{
			$this->data['msg'] = "请先登陆";
		}
	}

	//某个商户详细页
	function pDetail($pid){
		
		if($pid){
			$map['id'] = $pid;
			$map['status'] = 1;
			$purchaser = M('pf_purchaser')
						->field("id,username,sex,tel as mobile,pwdLevel,DATE_FORMAT(lastLoginDate,'%Y-%m-%d') as lastLoginDate,status,remark,DATE_FORMAT(createDate,'%Y-%m-%d %H:%i') as createDate,address,storearea,mainproduct,workyear,stockway,companyname,marketid,agid")
						->where($map)
						->find();

			$this->data['result']['purchaser'] = $purchaser;
			$this->data['result']['visits'] = getvisits($pid);
			$this->data['result']['purchaser']['areaName'] = getAreaSale($purchaser['agid']);
			if($purchaser['marketid'] > 0){
				$this->data['result']['purchaser']['marketName'] = M('pf_market')->where('id='.$purchaser['marketid'])->getField('name');
			}else{
				$this->data['result']['purchaser']['marketName'] = '';
			}
			$this->data['error'] = 1;
		}

	}
	
	//活跃度
	public function getActiveList($city,$showAllCity = 0,$openDate=''){
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			$city = intval($city) > 0?$city:$this->session['city'];
			$map = array();

			//值为1：显示全国所有城市的数据
			$showAllCity = intval($showAllCity);
			if($showAllCity == 0)
			{
				$map['t2.agid'] = array('in',$city);
			}

			$map['t2.status'] = array('neq',0);
			if($openDate != '')
			{
				
				//$map['lastLoginDate'] = array('like','%'.$openDate.'%');
				$map['t1.openTime'] = array('like','%'.$openDate.'%');

			}
			/*
			$purchaser = M('pf_purchaser')
			->field("id,username,DATE_FORMAT(lastLoginDate,'%Y-%m-%d %H:%i') as lastLoginDate,address,companyname,marketid,agid")
			->where($map)
			->order("DATE_FORMAT(lastLoginDate,'%Y-%m-%d %H:%i') desc")
			->select();
			*/
			
			$purchaser = M('pf_app_statistics t1')
			->field("distinct t1.userId as id,DATE_FORMAT(t1.openTime,'%Y-%m-%d %H:%i') as lastLoginDate,t2.address,t2.companyname,t2.username,t2.marketid,t2.agid,'--' as weixinLastDate")
			->join("pf_purchaser t2 on t1.userId = t2.id")
			->where($map)
		    ->group("date_format(t1.openTime,'%Y-%m-%d'),t1.userId")
			->order("t1.openTime desc")
			->select();
            

			$list = array();
			foreach ($purchaser as $k => $v){
				$purchaser[$k]['areaName'] = getAreaSale($v['agid']);
				$purchaser[$k]['address'] = $purchaser[$k]['address']<>''?$purchaser[$k]['address']:'';
				$purchaser[$k]['companyname'] = $purchaser[$k]['companyname']<>''?$purchaser[$k]['companyname']:'';
				if($v['marketid'] > 0){
					$purchaser[$k]['marketName'] = M('pf_market')->where('id='.$v['marketid'])->getField('name');
				}else{
					$purchaser[$k]['marketName'] = '';
				}
				$list[$v['lastLoginDate']][] = $purchaser[$k];
			}
			$result = array();
			foreach ($list as $k => $v){
				$result[] = array('date'=>$k,'data'=>$v);
			}
			$this->data['openDate'] = $openDate;
			$this->data['result'] = $result;
			$this->data['error'] = 1;
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}
	

	//办事处活跃度列表20201102
	public function getActiveListByCity($city,$showAllCity = 0,$page=0){

		$page = intval($page) > 0?$page:1;
		$size = 30;
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			$city = intval($city) > 0?$city:$this->session['city'];
			$map = array();
			
			if($showAllCity == 0)
			{
				$map['t2.agid'] = array('in',$city);
			}

			$map['t2.status'] = array('neq',0);
			$purchaserSql = M('pf_app_statistics t1')
			->field("distinct t1.userId,date_format(t1.openTime,'%Y-%m-%d') as openTime,0 as weixinNum")
			->join("pf_purchaser t2 on t1.userId = t2.id")
			->where($map)
		    ->group("date_format(t1.openTime,'%Y-%m-%d'),t1.userId")
			->order("t1.openTime desc")
			->select(false);

			$sql = "select aa.openTime,count(aa.userId) as appNum,aa.weixinNum from ".$purchaserSql." aa group by aa.openTime order by aa.openTime desc";

			$purchaser = M()->query($sql);
		
			$list = $this->page_array($size,$page,$purchaser);

			$this->data['page'] = $page;
			$this->data['result'] = $list;
			$this->data['error'] = 1;
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}


	//获取业务员最新权限
	public function getServicepower()
	{
		if($this->session){
			$id = intval($this->session['memberId']);
			$result =  M('view_userdtprofile_pf')->field('id,isService,isDispatcher')->where("status=1 and id=$id")->find();

			if(empty($result))
			{
				$this->data['msg'] = "非法操作";
				die();
			}
			
			$this->data['result'] = $result;
			$this->data['error'] = 1;
		
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}

	//获取列表
	public function getListByMarket($market_id){
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			$city = $this->session['city'];
			$map = array();
			$map['agid'] = array('in',$city);
			$map['status'] = array('neq',0);
			$map['marketid'] = intval($market_id);
			$purchaser = M('pf_purchaser')
			->field("id,username,address,companyname,marketid,agid")
			->where($map)
			->order("CONVERT(username USING gbk)")
			->select();
				
			foreach ($purchaser as $k => $v){
				$purchaser[$k]['areaName'] = getAreaSale($v['agid']);
				$purchaser[$k]['address'] = $purchaser[$k]['address']<>''?$purchaser[$k]['address']:'';
				$purchaser[$k]['companyname'] = $purchaser[$k]['companyname']<>''?$purchaser[$k]['companyname']:'';
				if($v['marketid'] > 0){
					$purchaser[$k]['marketName'] = M('pf_market')->where('id='.$v['marketid'])->getField('name');
				}else{
					$purchaser[$k]['marketName'] = '';
				}
			}
			$this->data['result'] = $purchaser;
			$this->data['error'] = 1;
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}
	
	public function info($id=''){
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			if(intval($id) > 0){
				$purchaser = M('pf_purchaser t1')
				->field("t1.id,t1.username,t1.sex,t1.tel as mobile,t1.pwdLevel,DATE_FORMAT(t1.lastLoginDate,'%Y-%m-%d') as lastLoginDate,DATE_FORMAT(t1.createDate,'%Y-%m-%d %H:%i') as createDate,t1.status,t1.handlersId,t1.handlersDate,t1.remark,t1.address,t1.businesscategory,t1.storearea,t1.mainproduct,t1.workyear,t1.stockway,t1.companyname,t1.marketid,t1.agid,t1.OlQualification,t1.OlAuditor,t1.OlAuditDate,t1.longitudeX,t1.latitudeY,t1.followBusiness as serviceId,ifnull(DATE_FORMAT(t1.followDate,'%Y-%m-%d'),'') as followDate,ifnull(t2.userName,'－－') as serviceName,is_city_delivery,openator")
                ->join('view_userdtprofile_pf t2 on t2.id = t1.followBusiness')
				->where("t1.id=".intval($id))
				->find();
				
				if($purchaser){
					$purchaser['areaName'] = getAreaSale($purchaser['agid']);
					$purchaser['address'] = $purchaser['address']<>''?$purchaser['address']:'';
					$purchaser['remark'] = $purchaser['remark']<>''?$purchaser['remark']:'';
					$purchaser['storearea'] = $purchaser['storearea']<>''?$purchaser['storearea']:'';
					$purchaser['mainproduct'] = $purchaser['mainproduct']<>''?$purchaser['mainproduct']:'';
					$purchaser['workyear'] = $purchaser['workyear']<>''?$purchaser['workyear']:'';
					$purchaser['stockway'] = $purchaser['stockway']<>''?$purchaser['stockway']:'';
					$purchaser['companyname'] = $purchaser['companyname']<>''?$purchaser['companyname']:'';
					if($purchaser['marketid'] > 0){
						$purchaser['marketName'] = M('pf_market')->where('id='.$purchaser['marketid'])->getField('name');
					}else{
						$purchaser['marketName'] = '';
					}

                    $purchaser['openator']=empty($purchaser['openator'])||$purchaser['openator']===null ? '' : $purchaser['openator'];
                    // $purchaser['is_city_delivery']=$purchaser['is_city_delivery']<>''?0:$purchaser['is_city_delivery'];
					//操作人
					$opt = intval($purchaser['handlersId']);
					if($opt){
						$purchaser['handlers'] = M('pf_userdtprofile')->where('uid='.$opt)->getField('name');
					}
					if($purchaser['handlers'] == null ){

                        $purchaser['handlers'] =''; //去除空字符串
                    }


					$OlQualification = intval($purchaser['OlQualification']);
					//网店开通人
					$OlAuditor = intval($purchaser['OlAuditor']);
					if($purchaser['OlAuditor']){
						$purchaser['OlAuditor'] = M('pf_userdt')->where('id='.$OlAuditor)->getField('name');    //获取姓名
					}
					if($purchaser['OlAuditor'] == null){

						$purchaser['OlAuditor'] = '';   //防止数据不同步，去除空字符串
					}

					//网店开通时间
					
					if($purchaser['OlAuditor']){
						$purchaser['OlAuditDate'] = date('Y-m-d', strtotime($purchaser['OlAuditDate']));
					}else{
						$purchaser['OlAuditDate'] = '';
					}

					//禁用原因
					if($purchaser['status'] == 2){
					
						$code = M('pf_purchaser_status')->where('purchaserid='.$purchaser['id'])->getField('code');

						$msg = '';

						//1为非花卉商户，2为原花卉商户不再从业,3为其它原因
						if($code == 1){
							$msg = '非花卉商户';
						}else if($code == 2){
							$msg = '原花卉商户不再从业';
						}else if($code == 3){
							$msg = M('pf_purchaser_statusdetail')->where('purchaserid='.$purchaser['id'])->getField('detail');
						}

						$purchaser['reason'] = $msg;

					}

					//获取最近登录花商宝app的时间和版本
					$lastLogin = M('pf_app_login')->where(array('pid' => $purchaser['id']))->find();
					$purchaser['loginappver'] = $lastLogin['loginappver'];
					$purchaser['lastLogin'] = date('Y-m-d H:i', $lastLogin['loginDate']);
					$purchaser['lastOpenWx'] = $lastLogin['wxLoginDate']?date('Y-m-d H:i', $lastLogin['wxLoginDate']):'';

					$sql ="select sum(total_fee) thisMonthMoney, ordertime from pf_order where uid=".$id." and pay_status=2 AND origin='appcg' and  DATE_FORMAT( ordertime, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )";
					$thisMonthMoney = M()->query($sql);
					$purchaser['thisMonthMoney'] = $thisMonthMoney[0]['thisMonthMoney']?$thisMonthMoney[0]['thisMonthMoney']:'';
	
					$sql ="select sum(total_fee) prevMonthMoney, ordertime from pf_order where uid=".$id." and pay_status=2 AND origin='appcg' and  PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( ordertime, '%Y%m' ) ) =1";
					$prevMonthMoney = M()->query($sql);
					$purchaser['prevMonthMoney'] = $prevMonthMoney[0]['prevMonthMoney']?$prevMonthMoney[0]['prevMonthMoney']:'';

					
					//查看订单记录
					$orderList = M('pf_order t1')->where('uid='.$purchaser['id']." AND origin='appcg' and DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(ordertime)")->select();
					$purchaser['orderList'] = array();
					if($orderList){
						$purchaser['orderList']['orders'] = $this->getPurcharseOrder($purchaser['id']);
						$purchaser['orderList']['ordercnt'] = count($orderList);
						$money = M('pf_order')->field('*,sum(total_fee) as money')->where('uid='.$purchaser['id']." AND origin='appcg' and DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(ordertime)")->select();
						$purchaser['orderList']['orderMoney'] = ($money && $money[0]['money']) ? $money[0]['money'] : 0;
					}else{
						$purchaser['orderList']['orders'] = array();
						$purchaser['orderList']['ordercnt'] = 0;
						$purchaser['orderList']['orderMoney'] = 0;
					}

					//最近30天拜访记录
					$visits = M('pf_visit')->where("purchaser_id=".$purchaser['id']." and DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(visitDate)")->count();
					$purchaser['visits'] = $visits;
					
					
					//获取所有经营类别
					$purchaser['businessClass'] = M('pf_business_category')->select();

					//获取所属的经营类别
					if(!empty($purchaser['businesscategory'])){
						$bs = explode(',',$purchaser['businesscategory']);

						foreach($purchaser['businessClass'] as $k=>$v){
							foreach($bs as $j=>$v2){
								if($v['id'] == $v2){
									$purchaser['businessClass'][$k]['isOn'] = 1;
								}
							}
						}
					}

					$purchaser['businessClass'] = M('pf_business_category')->select();

					$is_wxfriend = M('pf_wx_friend')->where(array('pid' => $purchaser['id'],'did' => $this->session['memberId'],'status' => 1))->find();

					$purchaser['is_wxfriend'] = $is_wxfriend?'1':'0';

					$wxFriendList = M('pf_wx_friend w')
						->field('u.name')
						->where(array('w.pid' => $purchaser['id'], 'w.status' => 1))
						->join('pf_userdt u on w.did = u.id')
						->select();

					$purchaser['wxFriendList'] = $wxFriendList?$wxFriendList:array();

					// 统计 “注册人数” 和 “打开首页数”
					$weekTime = get_week_ime();
					$beginThisweek = $weekTime['beginThisweek'];
					$beginLastweek = $weekTime['beginLastweek'];
					$purchaserSta = M('pf_onlinestore')->alias('po')
					->field('IFNULL(bws.total, 0) AS lastWeekRegisterTotal, IFNULL(hws.total, 0) AS lastWeekVisitHomeTotal,
					IFNULL(bws2.total, 0) AS thisWeekRegisterTotal, IFNULL(hws2.total, 0) AS thisWeekVisitHomeTotal, 
					IFNULL(po.register_total, 0) AS registerTotal')
					->join("sp_user_bind_week_statistics bws ON bws.app_id=po.wx_mini_app_id AND bws.start_time='{$beginLastweek}'")
					->join("sp_visit_home_week_statistics hws ON hws.app_id=po.wx_mini_app_id AND hws.start_time='{$beginLastweek}'")
					->join("sp_user_bind_week_statistics bws2 ON bws2.app_id=po.wx_mini_app_id AND bws2.start_time='{$beginThisweek}'")
					->join("sp_visit_home_week_statistics hws2 ON hws2.app_id=po.wx_mini_app_id AND hws2.start_time='{$beginThisweek}'")
					->where(array('po.pid' => $purchaser['id']))
					->find();
					$purchaser['statistics'] = array(
						"thisWeekRegisterTotal" => $purchaserSta['thisWeekRegisterTotal'] ? $purchaserSta['thisWeekRegisterTotal'] : 0, // 本周新增的注册用户数量
						"lastWeekRegisterTotal" => $purchaserSta['lastWeekRegisterTotal'] ? $purchaserSta['lastWeekRegisterTotal'] : 0, // 上周新增的注册用户数量
						"registerTotal" => $purchaserSta['registerTotal'] ? $purchaserSta['registerTotal'] : 0, // 全部累计注册用户数量
						"thisWeekVisitHomeTotal" => $purchaserSta['thisWeekVisitHomeTotal'] ? $purchaserSta['thisWeekVisitHomeTotal'] : 0, // 本周首页访问统计数
						"lastWeekVisitHomeTotal" => $purchaserSta['lastWeekVisitHomeTotal'] ? $purchaserSta['lastWeekVisitHomeTotal'] : 0, // 上周首页访问统计数
					);
				}
				
				$this->data['result'] = $purchaser;
				$this->data['error'] = 1;
			}else{
				$this->data['msg'] = "非法id";
			}
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}
	
	public function getListByKeys($keys=''){
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			$city = $this->session['city'];
			$map = array();
			$map['agid'] = array('in',$city);
			$map['status'] = array('neq',0);
			$map['username|companyname'] = array('like','%'.$keys.'%');
			$purchaser = M('pf_purchaser')
			->field("id,username,DATE_FORMAT(lastLoginDate,'%Y-%m-%d') as lastLoginDate,address,companyname,marketid,agid")
			->where($map)
			->order("DATE_FORMAT(lastLoginDate,'%Y-%m-%d') desc")
			->select();
				
			$list = array();
			foreach ($purchaser as $k => $v){
				$purchaser[$k]['areaName'] = getAreaSale($v['agid']);
				$purchaser[$k]['address'] = $purchaser[$k]['address']<>''?$purchaser[$k]['address']:'';
				$purchaser[$k]['companyname'] = $purchaser[$k]['companyname']<>''?$purchaser[$k]['companyname']:'';
				if($v['marketid'] > 0){
					$purchaser[$k]['marketName'] = M('pf_market')->where('id='.$v['marketid'])->getField('name');
				}else{
					$purchaser[$k]['marketName'] = '';
				}
				$list[$v['lastLoginDate']][] = $purchaser[$k];
			}
			$result = array();
			foreach ($list as $k => $v){
				$result[] = array('date'=>$k,'data'=>$v);
			}
			$this->data['result'] = $result;
			$this->data['error'] = 1;
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}
	
	//审核或禁止
	//status=1表示审核，status=2表示禁止,$code为禁止代码，$detail禁止理由
	public function doCheck($id='',$status = 1,$code=0,$detail=''){
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			if(intval($id) > 0){
				$d = array();
				$d['status'] = intval($status);
				$d['marketid'] = intval($_POST['marketid']);
				$d['agid'] = intval($_POST['area']);
				if($status == 1){
					$d['address'] = trim($_POST['address']);

					//删除原因
					M('pf_purchaser_status')->where('purchaserid='.$id)->delete();
					M('pf_purchaser_statusdetail')->where('purchaserid='.$id)->delete();
				}

				if($status == 2){
					$d['remark'] = trim($_POST['remark']);

					$code = intval($code);

					if($code){//禁用代码1为非花商户，2为原花卉商户不再从业
						$data = array(
							'purchaserid'	=>	$id,	
							'createDate'	=>	date('Y-m-d H:i:s',time()),
							'updateDate'	=>	date('Y-m-d H:i:s',time()),
							'code'	=>	$code,
						);

						$res = M('pf_purchaser_status')->add($data);

						//如果为3其它原因
						if(($code == 3) && $res){
							$sdata = array(
								'purchaserid'	=>	$id,
								'purchaserstatusid'	=>	$res,
								'createDate'	=>	date('Y-m-d H:i:s',time()),
								'updateDate'	=>	date('Y-m-d H:i:s',time()),
								'detail'	=> $detail
							);
							M('pf_purchaser_statusdetail')->add($sdata);
						}
					}

				}
				if($d['agid'] == 0){
				    //审核时，若没有改变商户所属城市，先获取商户注册时绑定的城市ID
				    $d['agid'] = M('pf_purchaser')->where('id='.intval($id))->getField('agid');

                }

				//添加操作人
				$d['handlersId'] = $this->session['memberId'];
				$d['handlersDate'] = date('Y-m-d H:i:s',time());

				M('pf_purchaser')->where("id=".intval($id))->save($d);
				
				if($status == 2){
					//极光推送唯一登陆
					$rs = M('pf_app_login')->where("pid=".intval($id))->find();
					if($rs){
						if($rs['sid'] != ''){
							$extra = array();
							$extra['sid'] = $rs['sid'];
						
							$this->pushmsg("花卉世界网","stop_logout","账号已被禁用",$rs['sid'],$extra,0);
						}
					}
				}
				
				$this->data['error'] = 1;
				$this->data['msg'] = "保存成功";
			}else{
				$this->data['msg'] = "非法id";
			}
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}
	
	//修改
	public function doEdit(){

        $id = intval($_POST['id']);
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			if(intval($id) > 0){				  
				$d = array();
				$d['address'] = $_POST['address'];
				$d['remark'] = $_POST['remark'];
				$d['storearea'] = $_POST['storearea'];
				$d['mainproduct'] = $_POST['mainproduct'];
				$d['workyear'] = $_POST['workyear'];
				$d['stockway'] = $_POST['stockway'];
				$d['companyname'] = $_POST['companyname'];
				$d['marketid'] = $_POST['marketid'];
				$d['agid'] = $_POST['area'];
				$d['OlQualification'] = $_POST['OlQualification'];
				$d['OlAuditor'] = $this->session['memberId'];
				$d['OlAuditDate'] = date('Y-m-d H:i:s');
				$d['longitudeX'] = $_POST['longitudeX'];
				$d['latitudeY'] = 	$_POST['latitudeY'];
				$d['handlersId'] = $this->session['memberId'];
				$d['updateDate'] = date('Y-m-d H:i:s');
				$d['handlersDate'] = date('Y-m-d H:i:s');
				
				$d['businesscategory'] = (!empty($_POST['bs']) && is_array($_POST['bs'])) ? implode(',',$_POST['bs']) : '';

				$do= array();
				foreach ($d as $k => $v) {
					if ($v === null) {
						$do[$k] = $v;   //记录空值
					}else{
						trim($d[$k]);
					}
				}

				$d = array_diff_assoc($d,$do);//去除空值

				M('pf_purchaser')->where("id=".intval($id))->save($d);

				if (intval($_POST['is_wxfriend']) === 1) {

					$wf = M('pf_wx_friend')->where(array('pid' => $id, 'did' => $this->session['memberId']))->find();
					if (!$wf) {
						M('pf_wx_friend')->add(array('pid' => $id, 'did' => $this->session['memberId'], 'updateDate'=> date('Y-m-d H:i:s'),'createDate'=> date('Y-m-d H:i:s') ));
					}
					
				}elseif(intval($_POST['is_wxfriend']) === 0){
					M('pf_wx_friend')->where(array('pid' => $id, 'did' => $this->session['memberId']))->delete();
				}

				$this->data['error'] = 1;
				$this->data['msg'] = "保存成功";
			}else{
				$this->data['msg'] = "非法id";
			}
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}

    /**
     * 开启同城配送
     * @return bool
     */
    public function doIsCityDeliveryEdit(){
        $id = intval($_POST['id']);
        if (!$this->session) {
            $this->data['msg'] = "请先登陆";
            return false;
        }
        if ($id < 0) {
            $this->data['msg'] = "非法id";
            return false;
		}
        $d = array();
        $d['is_city_delivery'] = $_POST['is_city_delivery'];//开启同城
        $d['openator'] = $this->session['userName'];//操作者
        $d['updateDate'] = date('Y-m-d H:i:s');
        $d['handlersDate'] = date('Y-m-d H:i:s');
        M('pf_purchaser')->where(array('id'=>$id))->save($d);
        $this->data['error'] = 1;
        $this->data['msg'] = "保存成功";
        return true;
    }
	
	public function saveArea(){
		$id = intval($_REQUEST['id']);
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			if(intval($id) > 0){
				$d = array();
				$d['agid'] = intval($_REQUEST['area']);
				M('pf_purchaser')->where("id=".intval($id))->save($d);
				$this->data['error'] = 1;
				$this->data['msg'] = "保存成功";
			}else{
				$this->data['msg'] = "非法id";
			}
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}
	
	public function saveMarket(){
		$id = intval($_REQUEST['id']);
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			if(intval($id) > 0){
				$d = array();
				$d['marketid'] = intval($_REQUEST['marketid']);
				M('pf_purchaser')->where("id=".intval($id))->save($d);
				$this->data['error'] = 1;
				$this->data['msg'] = "保存成功";
			}else{
				$this->data['msg'] = "非法id";
			}
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}
	
	
	/*
	 ** 推送消息
	* */
	public function pushmsg($title,$message,$tag,$alias,$extra,$is_notification){
	
		$_POST['title'] = $title;
		$_POST['message'] = $message;
		$_POST['tag'] = $tag;
		$_POST['alias'] = $alias;
		$_POST['extra'] = $extra;
		$_POST['is_notification'] = $is_notification;
	
		$push = A('Pushmsg');
		$push->push();
	}

	//查询单个商户下的订单记录
	public function getPurcharseOrder($id){
		
		$list = M('pf_order')->where('uid='.$id." and DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(ordertime)")->select();
		$result = array();
		$data = array();
		if($list){
			foreach ($list as $key => $val){
				//查询出地推用户下的单的用户名
				if(!$val['username']){
					$val['username'] = M('pf_userdt')->where('id='.$val['dtuid'])->getField('name');
				}

				$val['areaName'] = getAreaSale($val['area']);
				$val['statusName'] = getOrderStatusName($val['status']);
				$order_item = M('pf_order_item t1')
					->field("t1.id,t1.product_id,t1.qty,t1.del_qty,DATE_FORMAT(t1.del_time,'%Y-%m-%d %H:%i') as del_time,t1.del_user,t2.name,t2.unit,t2.ppAttr,t1.product_price,t1.ext_user,DATE_FORMAT(t1.ext_time,'%Y-%m-%d %H:%i') as ext_time")
					->join('pf_admin_product t2 on t1.product_id=t2.id')
					->where('t1.order_id='.$val['id'])
					->select();
				foreach ($order_item as $k => $v){
					$images = M('pf_admin_product_images')->where('pid='.$v['product_id'])->order('sort asc,id asc')->find();
					$v['pics'] = 'https://'.$_SERVER['HTTP_HOST'].$images['pics'];
					$v['ppAttr'] = $v['ppAttr']<>''?unserialize($v['ppAttr']):array();
					$v['del_user_name'] = intval($v['del_user'])>0?getUserdtName($v['del_user']):'';
					$v['ext_user_name'] = intval($v['ext_user'])>0?getUserdtName($v['ext_user']):'';
					$order_item[$k] = $v;
					//$order_item_del[] = $v;
				}
				$order_item_del = $order_item;
				foreach ($order_item as $k => $v){
					if(intval($v['qty']) == 0){
						unset($order_item[$k]);
					}
				}
				foreach ($order_item_del as $k => $v){
					if(intval($v['del_qty']) == 0){
						unset($order_item_del[$k]);
					}
				}

				$val['children'] = array_values($order_item);
				$val['children_del'] = array_values($order_item_del);
				
				$data[$val['ordertime']][] = $val;
			}
			foreach ($data as $k => $v){
				$result[] = array(
					'ordertime'	=>	$k,
					'data'		=>	$v
				);
			}
		}

		return $result;
	}
	

	public function getArea($office = '')
	{	

		if (!$office) {
			$office = $this->session['office'];
		}
		
		$result = M('pf_admin_group')->where('status=1 and officeid='.$office)->select();
		$this->data['error'] = 1;
		$this->data['msg'] = "";
		$this->data['result'] = $result;
	}

	//获取业务员列表
	public function getServiceList()
	{	
		$result = $this->getService();
		$this->data['error'] = 1;
		$this->data['msg'] = "";
		$this->data['result'] = $result;
	}

	//获取业务员列表含采购商数量
	public function getServiceListNum()
	{	
		$agId = $this->session['area'];
		
		$officeId = intval($this->session['office']);  //同一办事处

		$result = M('pf_purchaser t1')->field('t2.id,t2.userName,count(t1.id) as num')
			->join('INNER JOIN view_userdtprofile_pf t2 on t2.id = t1.followBusiness')
			->where("t2.status=1 and t2.officeId=$officeId")
			->group("t2.id,t2.userName")	
			->order('convert(t2.userName using gbk) COLLATE gbk_chinese_ci asc')->select();

		$totalNum = 0;
		foreach($result as $val)
		{
			$totalNum += $val['num'];
		}

		$this->data['error'] = 1;
		$this->data['msg'] = "";
		$this->data['result'] = $result;
		$this->data['totalNum'] = $totalNum;

	}

	//保存所属业务员
	public function saveService(){
		$id = intval($_REQUEST['id']);
		$data = array('error'=>-1,'msg'=>'');
		if($this->session){
			if(intval($id) > 0){
				$d = array();
				$d['followBusiness'] = intval($_REQUEST['service']);
				$d['followDate'] = date('Y-m-d H:i:s');
				M('pf_purchaser')->where("id=".intval($id))->save($d);
				$this->data['error'] = 1;
				$this->data['msg'] = "保存成功";
			}else{
				$this->data['msg'] = "非法id";
			}
		}else{
			$this->data['msg'] = "请先登陆";
		}
	}




	function getSessionIdById($id=0)
	{
		if(!$this->session){
			$this->data['msg'] = "请先登陆";
			return;
		}
		$id = intval($id);
		if (empty($id)) {
			$this->data['error'] = '-1';
			$this->data['msg'] = '参数错误';
			$this->data['result'] = "";
			return;
		}
		
		$purchaserInfo = M('pf_purchaser')->where(array('id'=>$id))->find();
		if (empty($purchaserInfo)) {
			$this->data['error'] = '-1';
			$this->data['msg'] = '商户不存在';
			$this->data['result'] = "";
			return;
		}

		$sessionId = '';
		$loginInfo = M('pf_app_login')->where(array('pid'=>$id))->find();
		$sessionId = $loginInfo['sessionId'];
		// login没有数据，新增一条
		if (empty($loginInfo)) {
			// $mysessionid = md5(strval(time()) . strval(mt_rand()));
			$this->data['error'] = '-1';
			$this->data['msg'] = '该商户没有登录过';
			$this->data['result'] = $sessionId;
		}
		// 如果过期，续时间
		if ($loginInfo['effectDate'] < (time()+86400)) {
			M('pf_app_login')->where(array('id'=>$loginInfo['id']))->save(array('effectDate'=>time()+86400));
		}
		$this->data['error'] = '1';
		$this->data['msg'] = 'success';
		$this->data['result'] = $sessionId;
	}

   /**
	 * 分页函数
	 * $pageSize   每页多少条数据
	 * $page       当前第几页
	 * $array      要进行分页的数据
	 */
	private function page_array($pageSize,$page,$array){
	    global $countpage;
	    $page=(empty($page))?'1':$page;
	    $start=($page-1)*$pageSize;
	    $totals=count($array);
	    $countpage=ceil($totals/$pageSize);
	    $pagedata=array();
	    $pagedata=array_slice($array,$start,$pageSize);
	    return $pagedata;
	}
}
