序列号导出到csv的实现
//导出到csv
public function exportCsvByIds($ids){
header("Content-type:text/html;charset=utf-8");
$license = M('license');
$where ="id in($ids) and status=1 ";
//获取序列号列表
$list = $license->field('id,license,sku_id,if_sku,version_id,store_id,user_id,create_time as generate_time,concat(concat(left(effective_start,10),"~"),left(effective_end,10)) as effective,IFNULL(act_status,1) as act_status,if(act_status=1,"待审核",review_time) as review_time,IFNULL(use_status,1) as use_status,if(use_status=1,"未使用",use_time) as use_time')
->where($where)
->order('id desc')
->select();
if(!empty($list)){
//商品sku_id
$sku_ids=array_unique(array_column($list,'sku_id'));
//蜂店版本id
$version_ids=array_unique(array_column($list,'version_id'));
//蜂店id
$store_ids=array_unique(array_column($list,'store_id'));
//用户id
$user_ids=array_unique(array_column($list,'user_id')); //获取商品信息
$goods_where['sku_id']=array('in',$sku_ids);
$goods_list=M('goods_sku')->field('sku_id,title')->where($goods_where)->select();
foreach($goods_list as $k=>$v){
$goods_info[$v['sku_id']]=$v['title'];
}
//获取蜂店版本信息
$version_where['id']=array('in',$version_ids);
$version_list=M('store_version')->field('id,name')->where($version_where)->select();
foreach($version_list as $k=>$v){
$version_info[$v['id']]=$v['name'];
}
//获取用户手机号
$user_where['user_id']=array('in',$user_ids);
$user_list=M('user')->field('user_id,username')->where($user_where)->select();
foreach($user_list as $k=>$v){
$user_info[$v['user_id']]=$v['username'];
}
//获取店铺名称
$store_where['id']=array('in',$store_ids);
$store_list=M('store')->field('id,user_id,name')->where($store_where)->select();
foreach($store_list as $k=>$v){
$store_info[$v['user_id']]=$v['name'];
}
//获取蜂店服务时间
$store_extend_where['user_id']=array('in',$user_ids);
$store_extend_list=M('store_extend')->field('user_id,store_id,add_time as start_time,end_time,IFNULL(active_status,1) as active_status,active_time')->where($store_extend_where)->select();
foreach($store_extend_list as $k=>$v){
$store_extend_info[$v['user_id']]['start']=$v['start_time'];
$store_extend_info[$v['user_id']]['end']=$v['end_time'];
$store_extend_info[$v['user_id']]['active_status']=$v['active_status'];
$store_extend_info[$v['user_id']]['active_time']=$v['active_time'];
}
//序列号列表拼装数据
foreach($list as $k=>$v){
if($v['if_sku']==){
$list[$k]['goods_title']="无赠品";
}else{
$list[$k]['goods_title']=$goods_info[$v['sku_id']];
}
if(empty($v['user_id'])){
$list[$k]['store_name']=null;
}else{
$list[$k]['store_name']=$store_info[$v['user_id']];
}
$list[$k]['store_version']=$version_info[$v['version_id']];
$list[$k]['phone']=$user_info[$v['user_id']];
$list[$k]['start_time']=$store_extend_info[$v['user_id']]['start'];
$list[$k]['end_time']=$store_extend_info[$v['user_id']]['end'];
$active_status=$store_extend_info[$v['user_id']]['active_status'];
if($active_status==){
$active_status="未激活";
}else{
$active_status=$store_extend_info[$v['user_id']]['active_time'];
}
if(empty($active_status)){
$active_status="未激活";
}
$list[$k]['active_time']=$active_status;
unset($list[$k]['sku_id']);
unset($list[$k]['if_sku']);
unset($list[$k]['version_id']);
unset($list[$k]['store_id']);
unset($list[$k]['user_id']);
}
}else{
$list=array();
}
$public=D("Public");
$string=$public->getutf8("序列号,蜂店版本,生成时间,有效期,审核时间,使用时间,激活时间,店铺名称,店主手机号,店铺服务时间,赠品")."\n";
//状态转变为中文
foreach ($list as $k=>$v){
$t3=null;
if($v['start_time']==null && $v['end_time'] !=null){
$t3=$v['end_time'];
}
if($v['start_time'] !=null && $v['end_time']==null){
$t3=$v['start_time'];
}
if($v['start_time'] !=null && $v['end_time'] !=null){
$t3=$v['start_time']."~".$v['end_time'];
}
$string .=$public->getutf8($v['license'])."\t,".$public->getutf8($v['store_version'])."\t,".$public->getutf8($v['generate_time'])."\t,".$public->getutf8($v['effective'])."\t,".$public->getutf8($v['review_time'])."\t,".$public->getutf8($v['use_time'])."\t,".$public->getutf8($v['active_time'])."\t,".$public->getutf8($v['store_name'])."\t,".$public->getutf8($v['phone'])."\t,".$public->getutf8($t3)."\t,".$public->getutf8($v['goods_title'])."\n";
}
$fileName=date('YmdHis').rand(, ).".csv";//文件名
$path='./Public/Data/Tmall/License/';
if(!is_dir($path)){
mkdir($path,);
}
$sh=file_put_contents($path.$fileName, $string);
//根据id获取渠道id
$re2=$license->alias("A")->field('cate_id')->where($where)->find();
if(!$sh){
$params=array(
'message'=>$_SESSION['user']['true_name'].":导出序列号到csv失败,".$sh,
'userid'=>$_SESSION['user']['personnel_code'],
'created'=>date('Y-m-d H:i:s')
);
$res=$this->writeLog('log_error',$params);
if(!$res){
return ;
}
return ;
}
$params=array(
'message'=>$_SESSION['user']['true_name'].":导出序列号[".$ids."]到EXCEL",
'create_time'=>date('Y-m-d H:i:s',time()),
'create_id'=>$_SESSION['user']['personnel_code'],
'cate_id'=>$re2['cate_id']
);
$this->writeLog('license_log',$params);
$base_url="http://".$_SERVER['SERVER_NAME'];
return array('path'=>$base_url.trim($path,'.').$fileName);
}
序列号导出到csv的实现的更多相关文章
- 将mysql的查询结果导出为csv
要将mysql的查询结果导出为csv,一般会使用php连接mysql执行查询,将返回的查询结果使用php生成csv格式再导出. 但这样比较麻烦,需要服务器安装php才可以实现. 直接使用mysql导出 ...
- c#自带压缩类实现数据库表导出到CSV压缩文件的方法
在导出大量CSV数据的时候,常常体积较大,采用C#自带的压缩类,可以方便的实现该功能,并且压缩比例很高,该方法在我的开源工具DataPie中已经经过实践检验.我的上一篇博客<功能齐全.效率一流的 ...
- QTableWidget 导出到csv表格
跳槽到了新的公司,开始苦逼的出差现场开发,接触到了新的应用.有很多应用需要将Table导出成表格,可以把table导出成csv格式的文件.跟大伙分享一下: lass TableToExcle : pu ...
- c#自带压缩类实现数据库表导出到CSV压缩文件
c#自带压缩类实现数据库表导出到CSV压缩文件的方法 在导出大量CSV数据的时候,常常体积较大,采用C#自带的压缩类,可以方便的实现该功能,并且压缩比例很高,该方法在我的开源工具DataPie中已经经 ...
- java导出生成csv文件
首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...
- 如何处理导出的csv无法查看身份证后三位的情况?
如何处理导出的csv无法查看身份证后三位的情况? 原因:excel中如果是常规格式无法显示那么多位数,改成文本格式就可以. 简单步骤,导入数据------>选择数据来源------>选择编 ...
- 将sqlserver导出的csv数据导入到ubuntu和mac上的mysql
最近在捣鼓一些数据相关的东西.将sql server里的数据导入到ubuntu和mac上的mysql,方法有很多.不过我选择了最简单的一种:将sql server的数据导成csv,然后将csv导入到m ...
- mysql 查询导出(txt,csv,xls)
1 简介 工作中产品经常会临时找我导出一些数据,导出mysql查询结果数据有几种方法,下面介绍3种. ① mysql -u -p -e "sql" db > filep ...
- 淘宝助理导出的csv文件使用的是什么编码,您猜?
今天下午用Java读取从淘宝助理 V4.3 Beta1导出的csv文件,出现中文乱码情况. 一看就是文件编码引起的,不清楚淘宝助理导出的csv文件使用了什么编码,到百度搜索了一下,看到一些相关文章,但 ...
随机推荐
- flask exception
flask exception 1.1. abort 概念:flask中的异常处理语句,功能类似于python中raise语句,只要触发abort,后面的代码不会执行,abort只能抛出符合ht ...
- HDU 5587:Array
Array Accepts: 118 Submissions: 232 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/ ...
- ORACLE CPU过高的sql查询
1. 根据占用CPU高的进程号来查询这个进程执行的SQL语句: CPU过高的进程号: #首先找到CPU过高的进程号 # top -bn1 是静态找到占用最高的进程 [root@localhost ...
- python绘制疫情图
python中进行图表绘制的库主要有两个:matplotlib 和 pyecharts, 相比较而言: matplotlib中提供了BaseMap可以用于地图的绘制,但是个人觉得其绘制的地图不太美观, ...
- mysql-e选项
-e Execute command and quit 通过-e选项,可以在命令行中操作mysql 一些mysql设置的有密码,此时可以在my.ini(my.cnf)的[client]下面给出数据库的 ...
- 6(计算机网络) 交换机与VLAN
拓扑结构是怎么形成的? 我们常见到的办公室大多是一排排的桌子,每个桌子都有网口,一排十几个座位就有十几个网口,一个楼层就会有几十个甚至上百个网口.如果算上所有楼层,这个场景自然比你宿舍里的复杂多了.具 ...
- 「NOIP2009」Hankson的趣味题
题目描述 (由于本题是数论题,所以我只把题目大意说一下...) 输入时给定\(a_0,a_1,b_0,b_1\),题目要求你求出满足如下条件的\(x\)的个数: \[\begin{cases}\gcd ...
- 网易云信-新增自定义消息(iOS版)
https://www.jianshu.com/p/2bfb1c4e9f21 前言 公司业务需要,PC端,移动端都用到了第三方 网易云信 IM来实现在线客服咨询.在这当中难免遇到一些需求是网易云信没有 ...
- pycharm安装报错Non-zero exit co?
pycharm安装第三方库时报错Non-zero exit co? 原因:版本找不到 解决思路: 1.用pip install pandas报错,尝试用python -m pip install -- ...
- 字符串替换 (replace)
将文本文件中指定的字符串替换成新字符串. 由于目前的OJ系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的内容,当输入的一行为end时,表示结束.end后面有两个字符串,要求用第二个字符串替 ...