Commit 3029fdf4 by wanggang

修改后台BUG,细节

parent 410fb3a1
......@@ -41,6 +41,87 @@ class Order extends AuthBase
$this->assign("status",$status);
return $this->fetch();
}
public function orderOutput(){
$status = input('get.status','-1');
$start_time = input('get.start_time');
$end_time = input('get.end_time');
$type = input('get.type');
$condition = [];
if($status!='-1'){
$condition['status']=$status;
}
if($type){
$condition['type']=$type;
}
if($start_time&&$end_time){
$condition['created_at'] = ['between',[$start_time.' 00:00:00',$end_time.' 00:00:00']];
}else{
if($start_time){
$condition['created_at'] = ['>',$start_time.' 00:00:00'];
}elseif($end_time){
$condition['created_at'] = ['<',$end_time.' 00:00:00'];
}
}
$order_list = $this->order_model->where($condition)->order('created_at desc')->select();
// 导出用户信息、活动信息、订单信息,如:姓名、手机号、活动名称、价格、家庭组数、大人数量、孩子数量、孩子年龄、备注等
//导出到excel数据处理
$mulit_arr = [];
$mulit_arr['data'] = [];
$cont = [['订单标题','订单来源','用户名','电话','vip购买信息','活动名称','活动价格','家庭组数','大人数量','孩子数量','孩子年龄','订单总价','下单时间','订单状态']];
// [
// 'data'=>
// [
// [
// ['昵称','性别','电话','是否是会员','注册时间','更新时间','会员到期时间'],
// ['a','b','c'],
// ['d','e','f']
// ]
// ],
// 'sheet'=>
// [
// ['title'=>'工作空间1名称'],
// ['title'=>'工作空间2名称'],
// ]
// ];
foreach ($order_list as $vo){
$arr = [];
$arr[] = $vo['title'];
$arr[] = $vo['type']==1?'活动报名':'购买会员卡订单';
$arr[] = $vo->user_info['nickname'];
$arr[] = $vo->user_info['phone'];
$arr[] = isset($vo['extras']['vip_endtime'])?$vo['extras']['vip_endtime'].'到期':'';
$arr[] = $vo->project['title'];
$arr[] = $vo->project['price'];
$arr[] = isset($vo['extras']['sign_limits'])?$vo['extras']['sign_limits']:'';
$arr[] = isset($vo['extras']['adult_number'])?$vo['extras']['adult_number']:'';
$arr[] = isset($vo['extras']['children_number'])?$vo['extras']['children_number']:'';
$arr[] = isset($vo['extras']['children_age'])?$vo['extras']['children_age']:'';
$arr[] = $vo['total_fee'];
$arr[] = $vo['created_at'];
$arr[] = $vo->status_text;
// $arr[] = $vo['extras'];
// $arr[] = $vo['extras'];
// $arr[] = $vo['extras'];
// $arr[] = $vo['extras'];
// $arr[] = $vo['extras'];
$cont[] = $arr;
}
$mulit_arr['data'][] =$cont;
$mulit_arr['sheet'] = [['title'=>'用户信息表']];
// dump($mulit_arr);
// return;
/*调用*/
$title = '订单表';//这是标题
$Subject='';//这是备注
$Description='美行者订单导出';//这是描述;
$Keywords='';//这是关键字
$Category='';//这是分类
$filename = '美行者订单导出';//文件名
$obj = new OutputExcel();
$obj->export($mulit_arr,$filename,$title,$Subject,$Description,$Keywords,$Category);
}
// 退款审核
public function refund(){
$id = input('get.id');
......@@ -96,4 +177,26 @@ class Order extends AuthBase
}
}
public function refundStatus($status,$id){
$refund_model = model('refund');
$res = $refund_model->save(['status'=>$status],['id' => $id]);
if($status==2){
$is_refund = 3;
}elseif($status==3){
$is_refund = 2;
}
$status_str = array(
'2'=>'请求成功,已退款',
'3'=>'请求成功,已驳回该退款申请'
);
if($res){
$refund_info = $refund_model->get($id);
if($refund_info){
$set_order_res = model('order')->save(['is_refund'=>$is_refund],['id'=>$refund_info['order_id']]);
}
$this->success($status_str[$status]);
}else{
$this->error('修改失败,本次审核无效');
}
}
}
<?php
/**
* Created by PhpStorm.
* User: wanggang
* Date: 2018/9/29
* Time: 下午8:23
*/
namespace app\admin\controller;
use PHPExcel_IOFactory,PHPExcel;
class OutputExcel
{
/*存储excel类对象*/
private static $obpe;
/*初始化*/
public function __construct(){self::$obpe = new PHPExcel();}
/**
* 导出
* @param array $mulit_arr
* @param string $filename
* @param string $Title
* @param string $Subject
* @param string $Description
* @param string $Keywords
* @param string $Category
* @param string $type
*/
public function export($mulit_arr = [],$filename = 'mulit_sheet',$Title='',$Subject='',$Description='',$Keywords='',$Category='',$type = 'output')
{
/* @func 设置文档基本属性 */
$obpe_pro = self::$obpe->getProperties();
$obpe_pro->setCreator('美行者')/*设置创建者*/
->setLastModifiedBy(date('Y/m/d H:i'))/*设置时间 2013/2/16 15:00*/
->setTitle($Title)/*设置标题*/
->setSubject($Subject)/*设置备注*/
->setDescription($Description)/*设置描述*/
->setKeywords($Keywords)/*设置关键字 | 标记*/
->setCategory($Category);/*设置类别*/
self::$obpe->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('E')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('G')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('H')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('I')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('J')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('K')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('L')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('M')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('N')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('O')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('p')->setAutoSize(true);
self::$obpe->getActiveSheet()->getColumnDimension('Q')->setAutoSize(true);
/*
* 设置宽度
$obpe->getActiveSheet()->getColumnDimension()->setAutoSize(true);
$obpe->getActiveSheet()->getColumnDimension('B')->setWidth(10);
设置当前sheet索引,用于后续的内容操作
一般用在对个Sheet的时候才需要显示调用
缺省情况下,PHPExcel会自动创建第一个SHEET被设置SheetIndex=0
*/
/*$mulit_arr*/
foreach ($mulit_arr['data'] as $key=>$value)
{
/*下面这一块可以封装后 实现多个工作空间的布局发生变化*/
$next_key = $key+1;
/*设置SHEET*/
self::$obpe->setactivesheetindex($key);
/*设置工作空间名称*/
$sheet = self::$obpe->getActiveSheet();
$sheet->setTitle($mulit_arr['sheet'][$key]['title']);
/*写入数据*/
foreach ($value as $k=>$v)
{
/* @func 设置列 */
$kkup = $k+1;
foreach ($v as $kk=>$vv)
{
$where = self::getLetterByNumber($kk);/*X轴 改变这个位置可以改变文档布局*/
$x = $where.$kkup;
self::$obpe->getactivesheet()->setcellvalue($x,$vv);
}
}
/*是否需要创建下一个工作空间*/
if(isset($mulit_arr['data'][$next_key])) self::$obpe->createSheet();
}
/*写入内容*/
$obwrite = PHPExcel_IOFactory::createWriter(self::$obpe, 'Excel5');
$filename = $filename.'.xls';
if($type == 'output')
{
/**直接在浏览器输出*/
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-execl');
header('Content-Type:application/octet-stream');
header('Content-Type:application/download');
header("Content-Disposition:attachment;filename='$filename'");
header('Content-Transfer-Encoding:binary');
$obwrite->save('php://output');
}else if($type == 'put') {
/*ob_end_clean();*/
/*保存文件*/
$obwrite->save($filename);
}
}
/**
* 确定文件X横轴 # 这里暂时就弄这么多吧
* @param int $number 传进来的就是$model的key
* @return mixed
*/
protected static function getLetterByNumber($number = 1)
{
return ['A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'][$number];
}
}
......@@ -8,7 +8,7 @@
namespace app\admin\controller;
use app\admin\controller\AuthBase;
use app\admin\controller\OutputExcel;
class User extends AuthBase
{
......@@ -45,4 +45,69 @@ class User extends AuthBase
return $this->fetch();
}
public function userOutPut(){
$nickname = input('get.nickname');
$is_vip = input('get.is_vip');
$start_time = input('get.start_time');
$end_time = input('get.end_time');
$condition = [];
if($nickname){
$condition['nickname'] = ['like','%'.$nickname.'%'];
}
if($is_vip){
$condition['is_vip'] = $is_vip;
}
if($start_time&&$end_time){
$condition['created_at'] = ['between',[$start_time.' 00:00:00',$end_time.' 00:00:00']];
}else{
if($start_time){
$condition['created_at'] = ['>',$start_time.' 00:00:00'];
}elseif($end_time){
$condition['created_at'] = ['<',$end_time.' 00:00:00'];
}
}
$user_list = model('user')->where($condition)->field('nickname,gender,phone,is_vip,created_at,updated_at,vip_endtime')->select();
$mulit_arr = [];
$mulit_arr['data'] = [];
$cont = [['昵称','性别','电话','是否是会员','注册时间','更新时间','会员到期时间']];
// [
// 'data'=>
// [
// [
// ['昵称','性别','电话','是否是会员','注册时间','更新时间','会员到期时间'],
// ['a','b','c'],
// ['d','e','f']
// ]
// ],
// 'sheet'=>
// [
// ['title'=>'工作空间1名称'],
// ['title'=>'工作空间2名称'],
// ]
// ];
foreach ($user_list as $vo){
$arr = [];
$arr[] = $vo['nickname'];
$arr[] = $vo['gender']==1?'男':'女';
$arr[] = $vo['phone'];
$arr[] = $vo['is_vip']==0?'否':'是';
$arr[] = $vo['created_at'];
$arr[] = $vo['updated_at'];
$arr[] = $vo['vip_endtime'];
$cont[] = $arr;
}
$mulit_arr['data'][] =$cont;
$mulit_arr['sheet'] = [['title'=>'用户信息表']];
// dump($mulit_arr);
// return;
/*调用*/
$title = '用户表';//这是标题
$Subject='';//这是备注
$Description='美行者用户导出';//这是描述;
$Keywords='';//这是关键字
$Category='';//这是分类
$filename = '美行者用户导出';//文件名
$obj = new OutputExcel();
$obj->export($mulit_arr,$filename,$title,$Subject,$Description,$Keywords,$Category);
}
}
\ No newline at end of file
......@@ -17,7 +17,7 @@
</div>
<!--<button type="submit" class="btn btn-primary">搜索</button>-->
</form>
<div class="pull-right">
<div class="pull-left margin-left">
<a href="{:url('admin/banner/create')}" class="btn btn-success">添加轮播图</a>
</div>
</div>
......
......@@ -13,7 +13,7 @@
</div>
<button type="submit" class="btn btn-primary">搜索</button>
</form>
<div class="pull-right">
<div class="pull-left margin-left">
<a href='<?php echo url("@admin/Guide/create")?>' type="button" class="btn btn-success" style="margin-left:30px;">
发布攻略
</a>
......
......@@ -144,14 +144,18 @@
$("#mymodal").modal();
});
$("#set_status").click(function(){
$("#mymodal").fadeOut();
var status = $("input[name='state']:checked").val();
$.post("{:url('admin/order/commentStatus')}",{id:comment_id,status:status},function(data){
if(data['code']==1){
if(status) {
$.post("{:url('admin/order/commentStatus')}", {id: comment_id, status: status}, function (data) {
if (data['code'] == 1) {
alert(data['msg']);
window.location.reload();
}
});
$("#mymodal").modal('hide');
}else{
alert('请选择要进行的审核操作');
}
});
});
</script>
......@@ -7,7 +7,7 @@
<div class="row margin-bottom">
<div class="col-md-12">
<form class="form-inline" method="GET" id="order-search" action="<?php echo url('@admin/order/index')?>">
<form class="form-inline pull-left" method="GET" id="order-search" action="<?php echo url('@admin/order/index')?>">
<div class="form-group margin-right">
<select name="status" class="form-control" id="status">
<option value="-1" {if condition="$status=='-1'"}selected{/if}>全部订单状态</option>
......@@ -18,7 +18,7 @@
</select>
</div>
<div class="form-group margin-right">
<select name="type" class="form-control">
<select name="type" class="form-control" id="type">
<option value="">全部订单类型</option>
<option value="1" {if condition="input('type')=='1'"}selected{/if}>活动报名订单</option>
<option value="2" {if condition="input('type')=='2'"}selected{/if}>购买会员卡订单</option>
......@@ -26,16 +26,13 @@
</div>
<div class="form-group margin-right">
<label for="">下单时间:</label>
<input class="form-control" type="date" name="start_time" value="{:input('start_time')}" placeholder="起始"/>
<input class="form-control" type="date" name="start_time" id="start_time" value="{:input('start_time')}" placeholder="起始"/>
--
<input class="form-control" type="date" name="end_time" value="{:input('end_time')}" placeholder="结束"/>
</div>
<div class="form-group margin-right">
<label for="output">导出</label>
<input type="checkbox" name="output" id="output">
<input class="form-control" type="date" name="end_time" id="end_time" value="{:input('end_time')}" placeholder="结束"/>
</div>
<button type="submit" class="btn btn-primary">搜索</button>
</form>
<button class="btn btn-success margin-left" id="output">导出</button>
</div>
</div>
......@@ -142,23 +139,37 @@
<script type="text/javascript">
// 文档加载完毕之后,会进入该方法
$(function(){
$(".btn-delete").click(function(){
var _this = $(this);
var url = "delete";
var oid = _this.attr('oid');
showDialog("提示", "确定删除这篇文章吗?", function () {
// ajax post 方法
$.post(url, {id:oid}, function (res) {
var res = JSON.parse(res);
if (res.error == 1) {
// javascript 的默认弹出提示方法
alert(res.msg);
} else {
_this.remove();
$("#tr_"+oid).fadeOut();
}
});
});
// $(".btn-delete").click(function(){
// var _this = $(this);
// var url = "delete";
// var oid = _this.attr('oid');
// showDialog("提示", "确定删除这篇文章吗?", function () {
// // ajax post 方法
// $.post(url, {id:oid}, function (res) {
// var res = JSON.parse(res);
// if (res.error == 1) {
// // javascript 的默认弹出提示方法
// alert(res.msg);
// } else {
// _this.remove();
// $("#tr_"+oid).fadeOut();
// }
// });
// });
// });
$("#output").click(function () {
$(this).attr("disabled",true);
// $nickname = input('get.nickname');
// $is_vip = input('get.is_vip');
// $start_time = input('get.start_time');
// $end_time = input('get.end_time');
var status = $("#status").val();
var type = $("#type").val();
var start_time = $("#start_time").val();
var end_time = $("#end_time").val();
window.location.href="{:url('admin/order/orderOutput')}"+'?status='+status+'&type='+type+'&start_time='+start_time+'&end_time='+end_time;
$(this).removeAttr('disabled');
});
});
</script>
......@@ -155,14 +155,18 @@
$("#mymodal").modal();
});
$("#set_status").click(function(){
$("#mymodal").fadeOut();
var status = $("input[name='state']:checked").val();
$.post("{:url('admin/order/commentStatus')}",{id:comment_id,status:status},function(data){
if(status){
$.post("{:url('admin/order/refundStatus')}",{id:comment_id,status:status},function(data){
if(data['code']==1){
alert(data['msg']);
window.location.reload();
}
});
$("#mymodal").modal();
}else{
alert('请选择要进行的审核操作');
}
});
});
</script>
......@@ -13,7 +13,7 @@
</div>
<button type="submit" class="btn btn-primary">搜索</button>
</form>
<div class=" pull-right">
<div class=" pull-left margin-left">
<a href="{:url('admin/project/addCatalogs')}" class="btn btn-success">添加分类</a>
</div>
</div>
......
......@@ -63,7 +63,7 @@
<div class="form-group">
<label for="title" class="col-sm-2 control-label text-right">活动时间</label>
<div class="col-sm-20 col-md-8 col-lg-6">
<input type="text" class="form-control validate[required,custom[dateTime]]" name="time_period" id="start" placeholder="请填写活动时间">
<input type="text" class="form-control validate[required]" name="time_period" id="start" placeholder="请填写活动时间">
</div>
</div>
<div class="form-group">
......@@ -192,11 +192,11 @@ $("#peoject_type").change(function(){
$("#qrcode").hide();
}
});
$("#start").datetimepicker({
language: 'zh-CN',
autoclose: true,
format: 'yyyy-mm-dd hh:ii:00'
});
// $("#start").datetimepicker({
// language: 'zh-CN',
// autoclose: true,
// format: 'yyyy-mm-dd hh:ii:00'
// });
$("#end").datetimepicker({
language: 'zh-CN',
autoclose: true,
......
......@@ -29,7 +29,7 @@
</div>
<button type="submit" class="btn btn-primary">搜索</button>
</form>
<div class=" pull-right">
<div class=" pull-left margin-left">
<a href="{:url('admin/project/create')}" class="btn btn-success">创建活动/商家</a>
</div>
</div>
......
......@@ -16,7 +16,7 @@
</style>
<section class="wrapper">
<h3 class="">
<i class="fa fa-angle-right"></i> 修改活动/商家
<i class="fa fa-angle-right"></i> <a href="{:url('admin/project/index')}">活动/商家列表</a> <i class="fa fa-angle-right"></i> 修改活动/商家
</h3>
<hr>
......@@ -62,7 +62,7 @@
<div class="form-group">
<label for="title" class="col-sm-2 control-label text-right">活动时间</label>
<div class="col-sm-10 col-md-8 col-lg-6">
<input type="text" class="form-control validate[required,custom[dateTime]]" name="time_period" id="start" placeholder="请填写活动时间" value="{$project_info.time_period}">
<input type="text" class="form-control validate[required]" name="time_period" id="start" placeholder="请填写活动时间" value="{$project_info.time_period}">
</div>
</div>
<div class="form-group">
......@@ -193,11 +193,11 @@ $("#peoject_type").change(function(){
}
});
// 初始化时间选择器
$("#start").datetimepicker({
language: 'zh-CN',
autoclose: true,
format: 'yyyy-mm-dd hh:ii:00'
});
// $("#start").datetimepicker({
// language: 'zh-CN',
// autoclose: true,
// format: 'yyyy-mm-dd hh:ii:00'
// });
$("#end").datetimepicker({
language: 'zh-CN',
autoclose: true,
......
......@@ -30,12 +30,9 @@
<span>活动管理</span>
</a>
<ul class="sub">
<li <?php if(CONTROLLER_NAME == 'Project'&&ACTION_NAME=='index'){echo 'class="active"';}?>>
<li <?php if(CONTROLLER_NAME == 'Project'&&(ACTION_NAME=='index'||ACTION_NAME=='create'||ACTION_NAME=='updateproject')){echo 'class="active"';}?>>
<a href="<?php echo url("@admin/Project/index")?>">活动/商家列表</a>
</li>
<li <?php if(CONTROLLER_NAME == 'Project'&&ACTION_NAME=='create'){echo 'class="active"';}?>>
<a href="<?php echo url("@admin/Project/create")?>">创建活动/商家</a>
</li>
<li <?php if(CONTROLLER_NAME == 'Project'&&(ACTION_NAME=='catalogs'||ACTION_NAME=='editcatalogs'||ACTION_NAME=='addcatalogs')){echo 'class="active"';}?>>
<a href="<?php echo url("@admin/Project/catalogs")?>">分类管理</a>
</li>
......
......@@ -9,10 +9,10 @@
<div class="col-md-12">
<form class="form-inline pull-left" method="GET" action="{:url('admin/user/index')}" >
<div class="form-group margin-right">
<input class="form-control" type="text" name="nickname" value="{:input('nickname')}" placeholder="昵称"/>
<input class="form-control" type="text" name="nickname" id="nickname" value="{:input('nickname')}" placeholder="昵称"/>
</div>
<div class="form-group margin-right">
<select name="is_vip" id="" class="form-control">
<select name="is_vip" id="is_vip" class="form-control">
<option value="">是否会员</option>
<option value="1" {if condition="input('is_vip')==1"}selected{/if}>会员</option>
<option value="0" {if condition="input('is_vip')==='0'"}selected{/if}>非会员</option>
......@@ -20,18 +20,13 @@
</div>
<div class="form-group margin-right">
<label for="">注册时间:</label>
<input class="form-control" type="date" name="start_time" value="{:input('start_time')}" placeholder="起始"/>
<input class="form-control" type="date" name="start_time" id="start_time" value="{:input('start_time')}" placeholder="起始"/>
--
<input class="form-control" type="date" name="end_time" value="{:input('end_time')}" placeholder="结束"/>
</div>
<div class="form-group margin-right">
<label for="output">导出</label>
<input type="checkbox" name="output" id="output">
<input class="form-control" type="date" name="end_time" id="end_time" value="{:input('end_time')}" placeholder="结束"/>
</div>
<button type="submit" class="btn btn-primary">搜索</button>
</form>
<div class=" pull-right">
</div>
<button class="btn btn-success margin-left" id="output">导出</button>
</div>
</div>
......@@ -113,23 +108,36 @@
<script type="text/javascript">
// 文档加载完毕之后,会进入该方法
$(function(){
$(".btn-delete").click(function(){
var _this = $(this);
var url = "{:url('admin/project/deleteTag')}";
var oid = _this.attr('oid');
showDialog("提示", "确定删除该标签吗?", function(){
// ajax post 方法
$.post(url, {id:oid}, function (res) {
// var res = JSON.parse(res);
if(res.code == 1){
// javascript 的默认弹出提示方法
_this.remove();
$("#tr_"+oid).fadeOut();
}else{
alert(res.msg);
}
});
});
// $(".btn-delete").click(function(){
// var _this = $(this);
// var url = "{:url('admin/project/deleteTag')}";
// var oid = _this.attr('oid');
// showDialog("提示", "确定删除该标签吗?", function(){
// // ajax post 方法
// $.post(url, {id:oid}, function (res) {
// // var res = JSON.parse(res);
// if(res.code == 1){
// // javascript 的默认弹出提示方法
// _this.remove();
// $("#tr_"+oid).fadeOut();
// }else{
// alert(res.msg);
// }
// });
// });
// });
$("#output").click(function () {
$(this).attr("disabled",true);
// $nickname = input('get.nickname');
// $is_vip = input('get.is_vip');
// $start_time = input('get.start_time');
// $end_time = input('get.end_time');
var nickname = $("#nickname").val();
var is_vip = $("#is_vip").val();
var start_time = $("#start_time").val();
var end_time = $("#end_time").val();
window.location.href="{:url('admin/user/userOutput')}"+'?nickname='+nickname+'&is_vip='+is_vip+'&start_time='+start_time+'&end_time='+end_time;
$(this).removeAttr('disabled');
});
});
</script>
......@@ -20,7 +20,7 @@
"topthink/framework": "^5.0",
"qiniu/php-sdk": "^7.1",
"jiguang/jmessage": "1.0.*",
"phpoffice/phpexcel": "1.8.*",
"phpoffice/phpexcel": "^1.8",
"topthink/think-captcha":"1.0.7"
},
"extra": {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment