You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			588 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			588 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| namespace wstmart\admin\model;
 | |
| use think\Db;
 | |
| use think\Loader;
 | |
| /**
 | |
|  * ============================================================================
 | |
|  * 会员业务处理
 | |
|  */
 | |
| class Users extends Base{
 | |
|     /**
 | |
|      * 个体认证审核列表
 | |
|      * @param int $isPersonal  是否是个体认证
 | |
|      * @return array
 | |
|      * @throws \think\exception\DbException
 | |
|      */
 | |
|     public function getReview($isPersonal=1){
 | |
| 
 | |
|         if(1 == $isPersonal){
 | |
|             $m = Db::name('auth_personal a');
 | |
|         }else{
 | |
|             $m = Db::name('auth_company a');
 | |
|         }
 | |
|         $where=[];
 | |
|         $loginName = input('post.loginName');
 | |
|         if($loginName) $where['u.loginName|u.userPhone'] = $loginName;
 | |
|         $rs = $m->join('__USERS__ u','a.userId=u.userId')
 | |
|                 ->where($where)
 | |
|                 ->field('u.loginName,u.userPhone,a.*')
 | |
|                 ->order('status ASC,createTime ASC')
 | |
|                 ->paginate(input('limit/d'))
 | |
|                 ->toArray();
 | |
|         return $rs;
 | |
|     }
 | |
|     /**个体认证操作
 | |
|      * @param int $isPersonal 是否是个体认证
 | |
|      * @return array
 | |
|      * @throws \think\Exception
 | |
|      * @throws \think\exception\PDOException
 | |
|      */
 | |
|     public function authAction($isPersonal=1){
 | |
|         $data = input('post.');
 | |
|         $id = $data['id'];
 | |
|         if(1 == $data['status']){
 | |
|             unset($data['reasonsForRefusal']);
 | |
|         }
 | |
|         $field = '*';
 | |
|         $user_data = [];
 | |
|         if(1 == $isPersonal){
 | |
|             $field = 'userId,householdName trueName,userPhone';
 | |
|             $user_data['authType'] = 1;
 | |
|             $m = Db::name('auth_personal a');
 | |
|         }else{
 | |
|             $user_data['authType'] = 2;
 | |
|             $field = 'userId,trueName,userPhone';
 | |
|             $m = Db::name('auth_company a');
 | |
|         }
 | |
|         $where['id'] = $id;
 | |
|         $authInfo = $m->where($where)->field($field)->find();
 | |
|         if(!$authInfo){
 | |
|         	return WSTReturn('认证不存在');
 | |
|         }else{
 | |
|             if(1 == $data['status']) {
 | |
|             	$user_data['userPhone'] = $authInfo['userPhone'];
 | |
|                 $user_data['trueName'] = $authInfo['trueName'];
 | |
|                 $user_data['userName'] = $authInfo['trueName'];
 | |
|             }else{
 | |
|                 $user_data['authType'] = 0;
 | |
|             }
 | |
|             Db::name('users')->where(['userId' => $authInfo['userId']])->update($user_data);
 | |
|         }
 | |
|         $data['updateTime'] = time();
 | |
|         $rs = $m->where($where)->update($data);
 | |
|         if(false !== $rs){
 | |
| 
 | |
|             return WSTReturn('操作成功',1);
 | |
|         }
 | |
|         return WSTReturn('操作失败,请重试',-1);
 | |
|     }
 | |
|     /**
 | |
|      * 获取申请列表
 | |
|      */
 | |
|     public function getUserUpdateList(){
 | |
|         $where=[];
 | |
|         $loginName = input('post.loginName');
 | |
|         if($loginName) $where['u.loginName|u.userPhone'] = $loginName;
 | |
|         $rs = Db::name('user_update d')
 | |
|                     ->join('__USERS__ u','d.userId=u.userId')
 | |
|                     ->join('__SHOPS__ s','d.shopId=s.shopId')
 | |
|                     ->where($where)
 | |
|                     ->field('u.loginName,u.userPhone,u.trueName,s.userName,s.phone,s.shopName,s.provinceId,s.cityId,s.countyId,s.townId,s.villageId,d.userId,d.shopId,d.id,d.applyLevel,d.confirmImg,d.shopImg,d.status,d.reasonsForRefusal,d.createTime,d.updateTime')
 | |
|                     ->order('status ASC,createTime ASC')
 | |
|                     ->paginate(input('limit/d'))
 | |
|                     ->toArray();
 | |
|         $m = Model('common/Position');
 | |
|         foreach ($rs['Rows'] as &$v) {
 | |
|         	$m->initData(1);
 | |
|         	$v['province'] = $m->getAreaName($v['provinceId']);
 | |
| 
 | |
|         	$m->initData(2);
 | |
|         	$v['city'] = $m->getAreaName($v['cityId']);
 | |
| 
 | |
|         	$m->initData(3);
 | |
|         	$v['county'] = $m->getAreaName($v['countyId']);
 | |
| 
 | |
|         	$m->initData(4);
 | |
|         	$v['town'] = $m->getAreaName($v['townId']);
 | |
| 
 | |
|         	$m->initData(5);
 | |
|         	$v['village'] = $m->getAreaName($v['villageId']);
 | |
|         }
 | |
|         return $rs;
 | |
|     }
 | |
|     /**
 | |
|      * 申请操作
 | |
|      */
 | |
|     public function setUserUpdate(){
 | |
| 
 | |
|         $data   = input('post.');
 | |
|         $id     = $data['id'];
 | |
|         $applyInfo = Db::name('user_update')->where(['id'=>$id])->field('userId,shopId,applyLevel')->find();
 | |
|         if(!$applyInfo){
 | |
|             return WSTReturn('此数据不存在');
 | |
|         }
 | |
|         $applyLevel = $applyInfo['applyLevel'];
 | |
|         if(!in_array($applyLevel,[2,3,4])) return WSTReturn('请正确输入等级!');
 | |
|         if(1 == $data['status']){
 | |
|             unset($data['reasonsForRefusal']);
 | |
|             //店铺位置信息
 | |
| 		    $shopInfo = Model('common/shops')->getFieldsById($applyInfo['shopId'],'provinceId,cityId,countyId,townId,villageId');	
 | |
| 		    $shopInfo = $shopInfo->toArray();	    
 | |
| 			//检查是否已有代理
 | |
| 			$applyArea='';
 | |
| 			switch ($applyLevel) {
 | |
| 				case 2:
 | |
| 					$applyArea = 'countyId';
 | |
| 					break;
 | |
| 				case 3:
 | |
| 					$applyArea = 'townId';
 | |
| 					break;
 | |
| 				case 4:
 | |
| 					$applyArea = 'villageId';
 | |
| 					break;
 | |
| 			}
 | |
| 			if(Db::name('user_update')->where(['status'=>1,'applyLevel'=>$applyLevel,$applyArea=>$shopInfo[$applyArea]])->value('id')){
 | |
| 				 return WSTReturn('当前区域代理已存在');
 | |
| 			}
 | |
| 			$data = array_merge($data,$shopInfo);
 | |
|         }        
 | |
|         Db::startTrans();
 | |
|         try{
 | |
|             $data['updateTime'] = time();
 | |
| 			if(1 == $data['status']){
 | |
| 				//升级会员等级,没啥用了,留着吧
 | |
| 				$userInfo = getUserInfo(['userId'=>$applyInfo['userId']],'userLevel');
 | |
| 				if($applyLevel > $userInfo['userLevel']){
 | |
| 					Db::name('users')->where(['userId'=>$applyInfo['userId']])->update(['userLevel'=>$applyLevel]);
 | |
| 				}
 | |
| 			}            
 | |
|             if(false !== Db::name('user_update')->where(['id'=>$id])->update($data)){
 | |
|                	Db::commit();
 | |
|             	return WSTReturn('操作成功',1);
 | |
|             }
 | |
|             
 | |
|         }catch (\Exception $e) {
 | |
|             Db::rollback();errLog($e);
 | |
|         }
 | |
|         return WSTReturn('操作失败',-1);
 | |
| 
 | |
|     }
 | |
| 	/**
 | |
| 	 * 分页
 | |
| 	 */
 | |
| 	public function pageQuery(){
 | |
| 		/******************** 查询 ************************/
 | |
| 		$where = [];
 | |
| 		$where['u.dataFlag'] = 1;
 | |
| 		$lName = input('loginName1');
 | |
| 		$phone = input('loginPhone');
 | |
| 		$email = input('loginEmail');
 | |
| 		$uType = input('userType');
 | |
| 		$uStatus = input('userStatus1');
 | |
| 		$sort = input('sort');
 | |
| 		if(!empty($lName))
 | |
| 			$where['loginName|s.shopName'] = ['like',"%$lName%"];
 | |
| 		if(!empty($phone))
 | |
| 			$where['userPhone'] = ['like',"%$phone%"];
 | |
| 		if(!empty($email))
 | |
| 			$where['userEmail'] = ['like',"%$email%"];
 | |
| 		if(is_numeric($uType))
 | |
| 			$where['userType'] = ['=',"$uType"];
 | |
| 		if(is_numeric($uStatus))
 | |
| 			$where['userStatus'] = ['=',"$uStatus"];
 | |
| 		$order = 'u.userId desc';
 | |
| 		if($sort){
 | |
| 			//$sort =  str_replace('.',' ',$sort);
 | |
| 			//$order = $sort;
 | |
| 		}
 | |
| 		/********************* 取数据 *************************/
 | |
| 		$rs = $this->alias('u')->join('__SHOPS__ s','u.userId=s.userId and s.dataFlag=1','left')->join('__USER_TREES__ t','u.userId=t.uid','left')->where($where)
 | |
| 					->field(['u.userId','u.regConfirmImg','loginName','u.userName','userType','userPhone','userEmail','userECT','userScore','u.createTime','u.productNum','u.couponsNum','u.wangNum','userStatus','lastTime','s.shopId','userMoney','u.lockMoney','t.pid'])
 | |
| 					->order($order)
 | |
| 					->group('u.userId')
 | |
| 					->paginate(input('limit/d'))
 | |
| 					->toArray();
 | |
| 		$m = Model('Table');
 | |
| 	    foreach ($rs['Rows'] as &$v) {	 
 | |
| 	    	if($v['pid']){
 | |
| 	    		$m->setTable('users');		
 | |
| 	    		$v['pName'] = $m->getField(['userId'=>$v['pid']],'loginName');
 | |
| 	    	}else{
 | |
| 	    		$v['pName'] = '';
 | |
| 	    	}
 | |
| 			$m->setTable('user_vouchers_summary');
 | |
| 	    	$sInfo = $m->getInfo(['userId'=>$v['userId']],'expectedProductNum,expectedCouponsNum');
 | |
| 	    	$v['expectedProductNum'] = (float)$sInfo['expectedProductNum'];
 | |
| 	    	$v['expectedCouponsNum'] = (float)$sInfo['expectedCouponsNum'];
 | |
| 	    	$r = WSTUserRank($v['userScore']);
 | |
| 	    	$v['rank'] = $r['rankName'];
 | |
| 	    }
 | |
| 		return $rs;
 | |
| 	}
 | |
| 	public function getById($id){
 | |
| 		return $this->get(['userId'=>$id]);
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 新增
 | |
| 	 */
 | |
| 	public function add(){
 | |
| 		$data = input('post.');
 | |
| 		$data['createTime'] = date('Y-m-d H:i:s');
 | |
| 		$data["loginSecret"] = rand(1000,9999);
 | |
|     	$data['loginPwd'] = md5($data['loginPwd'].$data['loginSecret']);
 | |
|     	WSTUnset($data,'userId,userType,userScore,userTotalScore,lastIP,lastTime,userMoney,lockMoney,dataFlag,rechargeMoney');
 | |
|     	Db::startTrans();
 | |
| 		try{
 | |
| 			$result = $this->validate('Users.add')->allowField(true)->save($data);
 | |
| 			$id = $this->userId;
 | |
| 	        if(false !== $result){
 | |
| 	        	hook("adminAfterAddUser",["userId"=>$id]);
 | |
| 	        	WSTUseImages(1, $id, $data['userPhoto']);
 | |
| 	        	Db::commit();
 | |
| 	        	return WSTReturn("新增成功", 1);
 | |
| 	        }
 | |
| 		}catch (\Exception $e) {
 | |
|             Db::rollback();errLog($e);
 | |
|             return WSTReturn('新增失败',-1);
 | |
|         }	
 | |
| 	}
 | |
|     /**
 | |
| 	 * 编辑
 | |
| 	 */
 | |
| 	public function edit(){
 | |
| 		$Id = (int)input('post.userId');
 | |
| 		$data = input('post.');
 | |
| 		$u = $this->where('userId',$Id)->field('loginSecret')->find();
 | |
| 		if(empty($u))return WSTReturn('无效的用户');
 | |
| 		//判断是否需要修改密码
 | |
| 		if(empty($data['loginPwd'])){
 | |
| 			unset($data['loginPwd']);
 | |
| 		}else{
 | |
| 			//修改联盟登录密码
 | |
| 			$password = $data['loginPwd'];
 | |
|     		$data['loginPwd'] = md5($data['loginPwd'].$u['loginSecret']);
 | |
| 		}
 | |
| 		Db::startTrans();
 | |
| 		try{
 | |
| 			if(isset($data['userPhoto'])){
 | |
| 			    WSTUseImages(1, $Id, $data['userPhoto'], 'users', 'userPhoto');
 | |
| 			}
 | |
| 			
 | |
| 			WSTUnset($data,'loginName,createTime,userId,userType,userScore,userTotalScore,lastIP,lastTime,userMoney,lockMoney,dataFlag,rechargeMoney');
 | |
| 		    $result = $this->allowField(true)->save($data,['userId'=>$Id]);
 | |
| 	        if(false !== $result){
 | |
| 	        	// 同步修改联盟密码
 | |
| 	        	// if(!empty($password)){
 | |
| 	        	// 	Db::table('rd_users')->where(['shop_id'=>$Id])->setField('password',md5($password));
 | |
| 	        	// }
 | |
| 	        	hook("adminAfterEditUser",["userId"=>$Id]);
 | |
| 	        	Db::commit();
 | |
| 	        	return WSTReturn("编辑成功", 1);
 | |
| 	        }
 | |
| 		}catch (\Exception $e) {
 | |
|             Db::rollback();errLog($e);
 | |
|             return WSTReturn('编辑失败',-1);
 | |
|         }
 | |
| 	}
 | |
| 	/**
 | |
|      * 查看会员定返数据
 | |
|      */
 | |
| 	public function viewUserDayData(){
 | |
| 
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 充值
 | |
| 	 */
 | |
| 	public function recharge(){
 | |
| 		$userId = (int)input('post.userId');
 | |
| 		$loginName = input('post.loginName');
 | |
| 		$rechargeCurrency = input('post.rechargeCurrency');//充值币种,1为ECT
 | |
| 		$rechargeType = (int)input('post.rechargeType');//1充值0扣除
 | |
| 		$rechargeNum = (float)input('post.rechargeNum');
 | |
| 		if($rechargeNum <=0){
 | |
| 			return WSTReturn('请正确输入充值数量!');
 | |
| 		}
 | |
| 		$rechargeNames = ['0'=>'扣除','1'=>'充值'];
 | |
| 		if(!$rechargeCurrency) return WSTReturn('请正确输入币种!');
 | |
| 		if(!$userId) $userId = $this->where('loginName',$loginName)->value('userId');
 | |
| 		if(!$userId) return WSTReturn('未找到此会员');
 | |
| 		Db::startTrans();
 | |
| 		try{
 | |
| 			switch ($rechargeCurrency) {
 | |
| 				case 1://预获产品券
 | |
| 					Model('common/UserVouchers')->insertVouchersNotice($userId,0,$rechargeNum,0,'系统'.$rechargeNames[$rechargeType],$rechargeType);
 | |
| 					break;
 | |
| 				case 2://预获优惠券
 | |
| 					Model('common/UserVouchers')->insertVouchersNotice($userId,0,0,$rechargeNum,'系统'.$rechargeNames[$rechargeType],$rechargeType);
 | |
| 					break;
 | |
| 				case 3://产品券
 | |
| 				case 4://优惠券
 | |
| 				case 5://旺旺券
 | |
| 					$rechargeCurrency-=2;
 | |
| 					Model('common/LogMoneys')->addMoneyLog(0,$userId,0,2,'系统'.$rechargeNames[$rechargeType],$rechargeType,$rechargeNum,'system',$rechargeCurrency);
 | |
| 					break;
 | |
| 				default:				
 | |
| 					break;
 | |
| 			}
 | |
| 			Db::commit();
 | |
| 	        return WSTReturn("操作成功", 1);
 | |
| 		}catch (\Exception $e) {
 | |
|             Db::rollback();errLog($e);
 | |
|             return WSTReturn('操作失败',-1);
 | |
|         }	
 | |
| 		// if($userId){
 | |
| 		// 	$u = $this->where('userId',$userId)->field('userId,loginSecret,userECT')->find();
 | |
| 		// }else{
 | |
| 		// 	$u = $this->where('loginName',$loginName)->field('userId,loginSecret,userECT')->find();
 | |
| 		// }
 | |
| 
 | |
| 		// if(empty($u))return WSTReturn('无效的用户');
 | |
| 		// $userId = $u['userId'];
 | |
| 		// if($rechargeType == 2){//扣除
 | |
| 		// 	if($rechargeCurrency == 1){
 | |
| 		// 		if($u['userECT'] < $rechargeNum ){
 | |
| 		// 			return WSTReturn('余额不足以扣除!当前余额:'.$u['userECT']);	
 | |
| 		// 		}
 | |
| 		// 	}
 | |
| 		// }
 | |
| 		// Db::startTrans();
 | |
| 		// try{
 | |
| 		// 	if($rechargeCurrency == 1){//ECT
 | |
| 		// 		if($rechargeType == 1){//充值
 | |
| 		// 			ectLog($userId,$rechargeNum,10,'',['userECT'=>['exp','userECT+'.$rechargeNum]],1);					
 | |
| 		// 		}else{
 | |
| 		// 			ectLog($userId,$rechargeNum,10,'',['userECT'=>['exp','userECT-'.$rechargeNum]],2);
 | |
| 		// 		}
 | |
| 		// 	}
 | |
| 	 //        Db::commit();
 | |
| 	 //        return WSTReturn("操作成功", 1);
 | |
| 		// }catch (\Exception $e) {
 | |
|   //           Db::rollback();errLog($e);
 | |
|   //           return WSTReturn('操作失败',-1);
 | |
|   //       }
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 删除
 | |
| 	 */
 | |
|     public function del(){
 | |
| 	    $id = (int)input('post.id');
 | |
| 	    if($id==1){
 | |
| 	    	return WSTReturn('无法删除自营店铺账号',-1);
 | |
| 	    }
 | |
| 	    Db::startTrans();
 | |
| 	    try{
 | |
| 		    $data = [];
 | |
| 			$data['dataFlag'] = -1;
 | |
| 		    $result = $this->update($data,['userId'=>$id]);
 | |
| 	        if(false !== $result){
 | |
| 	        	//删除店铺信息
 | |
| 	        	model('shops')->delByUserId($id);
 | |
| 	        	hook("adminAfterDelUser",["userId"=>$id]);
 | |
| 	        	WSTUnuseImage('users','userPhoto',$id);
 | |
| 	        	Db::commit();
 | |
| 	        	return WSTReturn("删除成功", 1);
 | |
| 	        }
 | |
| 	    }catch (\Exception $e) {
 | |
|             Db::rollback();errLog($e);
 | |
|             return WSTReturn('删除失败',-1);
 | |
|         }
 | |
| 	}
 | |
| 	/**
 | |
| 	* 是否启用
 | |
| 	*/
 | |
| 	public function changeUserStatus($id, $status){
 | |
| 		Db::startTrans();
 | |
|         try{
 | |
| 
 | |
|         	$this->update(['userStatus'=>(int)$status],['userId'=>(int)$id]);
 | |
|         	if(0 == $status){
 | |
|         		$lockTime =(int)input('post.lockTime');
 | |
|         		$lockReason =input('post.lockReason');
 | |
|         		Db::name('user_lock')->insert(['userId'=>$id,'lockTime'=>$lockTime,'lockReason'=>$lockReason,'createTime'=>time()]);
 | |
|         		$this->update(['userStatus'=>(int)$status],['userId'=>(int)$id]);
 | |
|         	}
 | |
| 			
 | |
| 	    	Db::commit();
 | |
| 			return WSTReturn("操作成功",1); 
 | |
|         }catch (\Exception $e) {
 | |
|         	//dump($e);
 | |
|             Db::rollback();errLog($e);
 | |
|         }
 | |
| 		return WSTReturn("操作失败,请刷新后再重试"); 
 | |
| 	}
 | |
| 	/**
 | |
| 	* 根据用户名查找用户
 | |
| 	*/
 | |
| 	public function getByName($name){
 | |
| 		return $this->field(['userId','loginName'])->where(['loginName'=>['like',"%$name%"]])->select();
 | |
| 	}
 | |
| 	/**
 | |
| 	* 获取所有用户id
 | |
| 	*/
 | |
| 	public function getAllUserId()
 | |
| 	{
 | |
| 		return $this->where('dataFlag',1)->column('userId');
 | |
| 	}
 | |
| 	/**
 | |
| 	* 重置支付密码
 | |
| 	*/
 | |
| 	public function resetPayPwd(){
 | |
| 		$Id = (int)input('post.userId');
 | |
| 		$loginSecret = $this->where('userId',$Id)->value('loginSecret');
 | |
| 		// 重置支付密码为6个6
 | |
| 		$payPwd = md5('666666'.$loginSecret);
 | |
| 		$result = $this->where('userId',$Id)->setField('payPwd',$payPwd);
 | |
| 		if(false !== $result){
 | |
|         	return WSTReturn("重置成功", 1);
 | |
|         }else{
 | |
|         	return WSTReturn($this->getError(),-1);
 | |
|         }
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * 根据用户账号查找用户信息
 | |
| 	 */
 | |
| 	public function getUserByKey(){
 | |
| 		$key = input('key');
 | |
| 		$user = $this->where(['loginName|userPhone|userEmail'=>['=',$key],'dataFlag'=>1])->find();
 | |
|         if(empty($user))return WSTReturn('找不到用户',-1);
 | |
|         $shop = model('shops')->where(['userId'=>$user->userId,'dataFlag'=>1])->find();
 | |
|         if(!empty($shop))return WSTReturn('该用户已存在关联的店铺信息',-1);
 | |
|         return WSTReturn('',1,['loginName'=>$user->loginName,'userId'=>$user->userId]);
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 导出订单 --林莉
 | |
| 	 */
 | |
| 	public function toExport(){
 | |
| 		$name="会员管理表";
 | |
| 		$where = [];
 | |
| 		$where['u.dataFlag'] = 1;
 | |
| 		$lName = input('loginName1');
 | |
| 		$phone = input('loginPhone');
 | |
| 		$email = input('loginEmail');
 | |
| 		$uType = input('userType');
 | |
| 		$uStatus = input('userStatus1');
 | |
| 		$sort = input('sort');
 | |
| 		if(!empty($lName))
 | |
| 			$where['loginName|s.shopName'] = ['like',"%$lName%"];
 | |
| 		if(!empty($phone))
 | |
| 			$where['userPhone'] = ['like',"%$phone%"];
 | |
| 		if(!empty($email))
 | |
| 			$where['userEmail'] = ['like',"%$email%"];
 | |
| 		if(is_numeric($uType))
 | |
| 			$where['userType'] = ['=',"$uType"];
 | |
| 		if(is_numeric($uStatus))
 | |
| 			$where['userStatus'] = ['=',"$uStatus"];
 | |
| 		$order = 'u.userId desc';
 | |
| 		/********************* 取数据 *************************/
 | |
| 		$page = db('users')->alias('u')->join('__SHOPS__ s','u.userId=s.userId and s.dataFlag=1','left')->where($where)
 | |
| 				->field(['u.userId','loginName','userName','userType','userPhone','userEmail','userECT','userScore','u.createTime','userStatus','lastTime','s.shopId','userMoney','u.lockMoney'])
 | |
| 				->order($order)
 | |
| 				->select();
 | |
| 		foreach ($page as $key => $v) {
 | |
| 			$r = WSTUserRank($v['userScore']);
 | |
| 			$page[$key]['rank'] = $r['rankName'];
 | |
| 		}
 | |
| 		Loader::import('phpexcel.PHPExcel.IOFactory');
 | |
| 		$objPHPExcel = new \PHPExcel();
 | |
| 		// 设置excel文档的属性
 | |
| 		$objPHPExcel->getProperties()->setCreator("heyuanhui")//创建人
 | |
| 		->setLastModifiedBy("heyuanhui")//最后修改人
 | |
| 		->setTitle($name)//标题
 | |
| 		->setSubject($name)//题目
 | |
| 		->setDescription($name)//描述
 | |
| 		->setKeywords("会员")//关键字
 | |
| 		->setCategory("Test result file");//种类
 | |
| 
 | |
| 		// 开始操作excel表
 | |
| 		$objPHPExcel->setActiveSheetIndex(0);
 | |
| 		// 设置工作薄名称
 | |
| 		$objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet'));
 | |
| 		// 设置默认字体和大小
 | |
| 		$objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', ''));
 | |
| 		$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
 | |
| 		$styleArray = array(
 | |
| 				'font' => array(
 | |
| 						'bold' => true,
 | |
| 						'color'=>array(
 | |
| 								'argb' => 'ffffffff',
 | |
| 						)
 | |
| 				),
 | |
| 				'borders' => array (
 | |
| 						'outline' => array (
 | |
| 								'style' => \PHPExcel_Style_Border::BORDER_THIN,  //设置border样式
 | |
| 								'color' => array ('argb' => 'FF000000'),     //设置border颜色
 | |
| 						)
 | |
| 				)
 | |
| 		);
 | |
| 		//设置宽
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(25);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(8);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(8);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(8);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(12);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(8);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(25);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(25);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('R')->setWidth(25);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('S')->setWidth(35);
 | |
| 		$objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth(25);
 | |
| 		$objPHPExcel->getActiveSheet()->getStyle('A1:T1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
 | |
| 		$objPHPExcel->getActiveSheet()->getStyle('A1:T1')->getFill()->getStartColor()->setARGB('333399');
 | |
| 
 | |
| 		$objPHPExcel->getActiveSheet()
 | |
| 				->setCellValue('A1', '账号')
 | |
| 				->setCellValue('B1', '用户名')
 | |
| 				->setCellValue('C1', '手机号码')
 | |
| 				->setCellValue('D1', '电子邮箱')
 | |
| 				->setCellValue('E1', '可用金额')
 | |
| 				->setCellValue('F1', '冻结金额')
 | |
| 				->setCellValue('G1', '积分')
 | |
| 				->setCellValue('H1', 'ECT')
 | |
| 				->setCellValue('I1', '等级')
 | |
| 				->setCellValue('J1', '注册时间')
 | |
| 				->setCellValue('K1', '状态');
 | |
| 		$objPHPExcel->getActiveSheet()->getStyle('A1:R1')->applyFromArray($styleArray);
 | |
| 
 | |
| 		for ($row = 0; $row < count($page); $row++){
 | |
| 			$i = $row+2;
 | |
| 			$objPHPExcel->getActiveSheet()
 | |
| 					->setCellValue('A'.$i, $page[$row]['loginName'])
 | |
| 					->setCellValue('B'.$i, $page[$row]['userName'])
 | |
| 					->setCellValue('C'.$i, $page[$row]['userPhone'])
 | |
| 					->setCellValue('D'.$i, $page[$row]['userEmail'])
 | |
| 					->setCellValue('E'.$i, $page[$row]['userMoney'])
 | |
| 					->setCellValue('F'.$i, $page[$row]['lockMoney'])
 | |
| 					->setCellValue('G'.$i, $page[$row]['userScore'])
 | |
| 					->setCellValue('H'.$i, $page[$row]['userECT'])
 | |
| 					->setCellValue('I'.$i, $page[$row]['rank'])
 | |
| 					->setCellValue('J'.$i, $page[$row]['createTime'])
 | |
| 					->setCellValue('K'.$i, $page[$row]['userStatus']);
 | |
| 		}
 | |
| 
 | |
| 		//输出EXCEL格式
 | |
| 		$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
 | |
| 		// 从浏览器直接输出$filename
 | |
| 		header('Content-Type:application/csv;charset=UTF-8');
 | |
| 		header("Pragma: public");
 | |
| 		header("Expires: 0");
 | |
| 		header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
 | |
| 		header("Content-Type:application/force-download");
 | |
| 		header("Content-Type:application/vnd.ms-excel;");
 | |
| 		header("Content-Type:application/octet-stream");
 | |
| 		header("Content-Type:application/download");
 | |
| 		header('Content-Disposition: attachment;filename="'.$name.'.xls"');
 | |
| 		header("Content-Transfer-Encoding:binary");
 | |
| 		$objWriter->save('php://output');
 | |
| 	}
 | |
| }
 |