📖 File Reader
<?php
namespace app\admin\controller;
use adminCreate\form\Form;
use app\common\Common_excel;
use app\common\Common_weixinpay;
use think\facade\Db;
use think\facade\View;
class Order extends Base
{
/*订单列表*/
public function order_list()
{
//快递公司
$courier = db::name("courier")->order("sort desc")->select();
$region = db::name("region")->where("level = 1")->order("first asc")->select()->toArray();
View::assign([
'courier'=>$courier,
'region'=>$region,
]);
return View::fetch();
}
/*订单列表数据*/
public function order_list_ajax()
{
$keyword = input("param.keyword");
$state = input("param.state");
$time_ks = input("param.time_ks");
$time_js = input("param.time_js");
$province = input("param.province");
$city = input("param.city");
$district = input("param.district");
$where = 1;
/*角色权限*/
$admin_role_type = $this->admin_info["role_type"];
$admin_shop_id = $this->admin_info["shop_id"];
if($admin_role_type == 2){ //店铺管理员
$where .= " and a.shop_id = $admin_shop_id";
}
$where .= " and a.is_chai = 0";
if (!empty($keyword)){
$where .= " and (a.order_sn like '%".$keyword."%' or a.address_name like '%".$keyword."%' or a.address_phone like '%".$keyword."%')";
}
if ($state != ''){
$where .= " and a.state = $state";
}
if (!empty($time_ks)){
$time_ks = strtotime($time_ks);
$where .= " and a.add_time >= $time_ks";
}
if (!empty($time_js)){
$time_js = strtotime($time_js);
$where .= " and a.add_time <= $time_js";
}
if (!empty($province)){
$where .= " and a.province = $province";
}
if (!empty($city)){
$where .= " and a.city = $city";
}
if (!empty($district)){
$where .= " and a.district = $district";
}
$list = db::name("order")->alias("a")
->join("shop b","a.shop_id = b.id","left")
->join("region d","a.province = d.id","LEFT")
->join("region f","a.city = f.id","LEFT")
->join("region j","a.district = j.id","LEFT")
->field("a.order_id,a.order_sn,a.price,a.price_vip_discount,a.type_courier,a.address_name,a.address_phone,a.pay_way,d.name as province_name,f.name as city_name,j.name as district_name,a.address,a.state,a.state_refund,a.add_time,b.name as shop_name")
->where($where)
->order("a.order_id desc")
->page($this->page,$this->limit)
->select()
->toArray();
foreach ($list as $k => $v){
$type_courier = '';
if ($v["type_courier"] == 0){$type_courier = '正常配送';}
if ($v["type_courier"] == 1){$type_courier = '用户自提';}
$list[$k]["type_courier"] = $type_courier;
$pay_way = '';
if ($v["pay_way"] == 0){$pay_way = '余额支付';}
if ($v["pay_way"] == 1){$pay_way = '微信支付';}
if ($v["pay_way"] == 2){$pay_way = '支付宝支付';}
if ($v["pay_way"] == 3){$pay_way = '积分支付';}
if ($v["pay_way"] == 4){$pay_way = '汇付支付';}
$list[$k]["pay_way"] = $pay_way;
$state = '';
if ($v["state"] == 0 && $v["state_refund"] != 2){$state = '待付款';}
if ($v["state"] == 1 && $v["state_refund"] != 2){$state = '已付款';}
if ($v["state"] == 2 && $v["state_refund"] != 2){$state = '已发货';}
if ($v["state"] == 3 && $v["state_refund"] != 2){$state = '已完成';}
if ($v["state"] == 4 && $v["state_refund"] != 2){$state = '已取消';}
if ($v["state_refund"] == 2){$state = '已退款';}
$list[$k]["state"] = $state;
$list[$k]["address"] = $v["province_name"].$v["city_name"].$v["district_name"].$v["address"];
$list[$k]["shop_name"] = $v["shop_name"] != ''?$v["shop_name"]:'';
$list[$k]["add_time"] = date("Y-m-d H:i",$v["add_time"]);
}
$count = db::name("order")->alias("a")
->join("shop b","a.shop_id = b.id","left")
->join("region d","a.province = d.id","LEFT")
->join("region f","a.city = f.id","LEFT")
->join("region j","a.district = j.id","LEFT")
->where($where)
->count();
return $this->layui_json($count,$list);
}
/*订单数据导出处理*/
public function order_list_export(Common_excel $common_excel)
{
$is_detection = input("param.is_detection");//是否检测1是 0否
$keyword = input("param.keyword");
$state = input("param.state");
$time_ks = input("param.time_ks");
$time_js = input("param.time_js");
$province = input("param.province");
$city = input("param.city");
$district = input("param.district");
$where = 1;
/*角色权限*/
$admin_role_type = $this->admin_info["role_type"];
$admin_shop_id = $this->admin_info["shop_id"];
if($admin_role_type == 2){ //店铺管理员
$where .= " and a.shop_id = $admin_shop_id";
}
$where .= " and a.is_chai = 0";
if (!empty($keyword)){
$where .= " and (a.order_sn like '%".$keyword."%' or a.address_name like '%".$keyword."%' or a.address_phone like '%".$keyword."%')";
}
if ($state != ''){
$where .= " and a.state = $state";
}
if (!empty($time_ks)){
$time_ks = strtotime($time_ks);
$where .= " and a.add_time >= $time_ks";
}
if (!empty($time_js)){
$time_js = strtotime($time_js);
$where .= " and a.add_time <= $time_js";
}
if (!empty($province)){
$where .= " and a.province = $province";
}
if (!empty($city)){
$where .= " and a.city = $city";
}
if (!empty($district)){
$where .= " and a.district = $district";
}
$list = db::name("order")->alias("a")
->join("region d","a.province = d.id","LEFT")
->join("region f","a.city = f.id","LEFT")
->join("region j","a.district = j.id","LEFT")
->field("a.order_id,a.order_sn,a.price,a.price_vip_discount,a.type_courier,a.address_name,a.address_phone,a.pay_way,a.describe as order_describe,d.name as province_name,f.name as city_name,j.name as district_name,a.address,a.state,a.state_refund,a.add_time")
->where($where)
->order("a.order_id desc")
->select()
->toArray();
if ($is_detection == 1) {//检测
$list_count = count($list);
if ($list_count > 100000) {
return $this->error_json("导出数量大于上限(100000)不可导出!");
}
return $this->succeed_json("ok");
} else {
// 设置表格的表头数据
$header = [
'A1'=>'ID',
'B1'=>'订单编号',
'C1'=>'配送方式',
'D1'=>'收货人姓名',
'E1'=>'收货人手机号',
'F1'=>'收货人地址',
'G1'=>'订单总价',
'H1'=>'支付方式',
'I1'=>'状态',
'J1'=>'商品名称',
'K1'=>'商品图片',
'L1'=>'商品单价',
'M1'=>'商品下单数量',
'N1'=>'订单备注',
'O1'=>'下单时间',
];
$xlsData = array();
$i_hang = 1;//初始行数
foreach ($list as $k => $v) {
$order_goods = db::name("order_goods")->alias("a")
->join("goods_guige_value b","a.goods_guige_id = b.id","LEFT")
->field("a.*,b.img as guige_img")
->where("a.order_id = $v[order_id]")
->order("a.id dasc")
->select()
->toArray();
$i_hang_kaishi = $i_hang + 1;//计算开始行数
$i_hang_jieshu = $i_hang+count($order_goods);//计算末尾行数
/*订单商品处理*/
foreach ($order_goods as $k2 => $v2){
$goods_name = $v2["goods_name"];//商品名称
if (!empty($v2["goods_guige_name"])){
$goods_name .= "(".$v2["goods_guige_name"].")";
}
$xlsData[] = [
'',
'',
'',
'',
'',
'',
'',
'',
'',
$goods_name,
'',
$v2["price_one"],
$v2["num"],
];
//产品缩略图
$goods_img = [];
$img = $v2["goods_guige_id"]>0?$v2["guige_img"]:$v2["goods_img"];
$goods_img[] = $_SERVER['DOCUMENT_ROOT'].$img;
$i_hang_kaishi_img = $i_hang_kaishi+$k2;
$xlsData[] = [$goods_img, 'K'.$i_hang_kaishi_img, $i_hang_kaishi_img, 'img'];
}
/*合并单元格*/
$xlsData[] = [$k+1, 'A'.$i_hang_kaishi.':A'.$i_hang_jieshu, 'A'.$i_hang_kaishi, 'merge_lie'];//序号
$xlsData[] = [$v["order_sn"], 'B'.$i_hang_kaishi.':B'.$i_hang_jieshu, 'B'.$i_hang_kaishi, 'merge_lie'];//订单编号
$type_courier = '';//配送方式
if ($v["type_courier"] == 0){$type_courier = '正常配送';}
if ($v["type_courier"] == 1){$type_courier = '用户自提';}
$xlsData[] = [$type_courier, 'C'.$i_hang_kaishi.':C'.$i_hang_jieshu, 'C'.$i_hang_kaishi, 'merge_lie'];
$xlsData[] = [$v["address_name"], 'D'.$i_hang_kaishi.':D'.$i_hang_jieshu, 'D'.$i_hang_kaishi, 'merge_lie'];//收货人姓名
$xlsData[] = [$v["address_phone"], 'E'.$i_hang_kaishi.':E'.$i_hang_jieshu, 'E'.$i_hang_kaishi, 'merge_lie'];//收货人手机号
$address = '';//收货地址
if (!empty($v["province_name"])){
$address .= $v["province_name"].'、';
}
if (!empty($v["city_name"])){
$address .= $v["city_name"].'、';
}
if (!empty($v["district_name"])){
$address .= $v["district_name"].'、';
}
if (!empty($v["address"])){
$address .= $v["address"].'、';
}
$address = $address != ''?substr($address,0,strlen($address)-3):'';
$xlsData[] = [$address, 'F'.$i_hang_kaishi.':F'.$i_hang_jieshu, 'F'.$i_hang_kaishi, 'merge_lie'];
$xlsData[] = [$v["price"], 'G'.$i_hang_kaishi.':G'.$i_hang_jieshu, 'G'.$i_hang_kaishi, 'merge_lie'];//订单总价
$pay_way = '';//支付方式
if ($v["pay_way"] == 0){$pay_way = '余额支付';}
if ($v["pay_way"] == 1){$pay_way = '微信支付';}
if ($v["pay_way"] == 2){$pay_way = '支付宝支付';}
if ($v["pay_way"] == 3){$pay_way = '积分支付';}
if ($v["pay_way"] == 4){$pay_way = '汇付支付';}
$xlsData[] = [$pay_way, 'H'.$i_hang_kaishi.':H'.$i_hang_jieshu, 'H'.$i_hang_kaishi, 'merge_lie'];
$state = '';//状态
if ($v["state"] == 0 && $v["state_refund"] != 2){$state = '待付款';}
if ($v["state"] == 1 && $v["state_refund"] != 2){$state = '已付款';}
if ($v["state"] == 2 && $v["state_refund"] != 2){$state = '已发货';}
if ($v["state"] == 3 && $v["state_refund"] != 2){$state = '已完成';}
if ($v["state"] == 4 && $v["state_refund"] != 2){$state = '已取消';}
if ($v["state_refund"] == 2){$state = '已退款';}
$xlsData[] = [$state, 'I'.$i_hang_kaishi.':I'.$i_hang_jieshu, 'I'.$i_hang_kaishi, 'merge_lie'];
$xlsData[] = [$v["order_describe"], 'N'.$i_hang_kaishi.':N'.$i_hang_jieshu, 'N'.$i_hang_kaishi, 'merge_lie'];//订单备注
$add_time = date("Y-m-d H:i",$v["add_time"]);
$xlsData[] = [$add_time,'O'.$i_hang_kaishi.':O'.$i_hang_jieshu, 'O'.$i_hang_kaishi, 'merge_lie'];//下单时间
//更新行数
$i_hang = $i_hang_jieshu;
}
// 设置下载文件保存的名称
$fileName = '订单导出'.date("Y-m-d",time());
// 调用方法导出excel
Common_excel::export_order($header,true,$xlsData,$fileName);
}
}
/*订单详情*/
public function order_info()
{
$order_id = input("param.order_id");
//订单详情
$order_info = db::name("order")->alias("a")
->join("region c","a.province = c.id","LEFT")
->join("region d","a.city = d.id","LEFT")
->join("region e","a.district = e.id","LEFT")
->field("a.order_id,a.order_sn,a.price,a.price_vip_discount,a.address_name,a.address_phone,a.pay_way,a.add_time,a.pay_time,a.state,a.user_id, c.name as province_name, d.name as city_name, e.name as district_name,a.address")
->where("a.order_id = $order_id")
->order("a.order_id desc")
->find();
$order_info["add_time"] = date("Y-m-d H:i",$order_info["add_time"]);
if (!empty($order_info["pay_time"])){
$order_info["pay_time"] = date("Y-m-d H:i",$order_info["pay_time"]);
}else{
$order_info["pay_time"] = '';
}
//收货地址
$dizhi = '<div class="shou_xin_box1">姓名:'.$order_info["address_name"].'</div>
<div class="shou_xin_box1">手机号:'.$order_info["address_phone"].'</div>
<div class="shou_xin_box1">收货地址:'.$order_info["province_name"].'、'.$order_info["city_name"].'、'.$order_info["district_name"].'、'.$order_info["address"].'</div>
';
//订单详情
$state = '';
if ($order_info["state"] == 0){
$state = '待付款';
}else if($order_info["state"] == 1){
$state = '已付款';
}else if($order_info["state"] == 2) {
$state = '已发货';
}else if($order_info["state"] == 3){
$state = '已完成';
}else{
$state = '已取消';
}
$pay_way = '';
if ($order_info["pay_way"] == 0){
$pay_way = '余额支付';
}else if($order_info["pay_way"] == 1){
$pay_way = '微信支付';
}else if($order_info["pay_way"] == 2){
$pay_way = '支付宝支付';
}else if($order_info["pay_way"] == 3){
$pay_way = '积分支付';
}else if($order_info["pay_way"] == 4){
$pay_way = '汇付支付';
}
$xiangqing = '<div class="shou_xin_box2">订单编号:'.$order_info["order_sn"].'</div>
<div class="shou_xin_box2">订单状态:'.$state.'</div>
<div class="shou_xin_box2">订单总价:'.$order_info["price"].'</div>
<div class="shou_xin_box2">会员折扣:'.$order_info["price_vip_discount"].'</div>
<div class="shou_xin_box2">支付方式:'.$pay_way.'</div>
<div class="shou_xin_box2">创建时间:'.$order_info["add_time"].'</div>
<div class="shou_xin_box2">付款时间:'.$order_info["pay_time"].'</div>
';
/*商品信息*/
$goods_list = db::name("order_goods")->alias("a")
->join("goods_guige_value b","a.goods_guige_id = b.id","LEFT")
->field("a.*,b.img as guige_img")
->where("a.order_id = $order_info[order_id]")
->order("a.id dasc")
->select()
->toArray();
$goods = '';
foreach($goods_list as $k1 => $v1){
$img = $v1["goods_guige_id"]>0?$v1["guige_img"]:$v1["goods_img"];
$goods_name = $v1["goods_name"];
if (!empty($v1["goods_guige_id"])){
$goods_name .= '('.$v1["goods_guige_name"].')';
}
$goods .= '<div class="shou_gai">
<div class="shou_xin_box1">
<img src="'.$img.'" style="width: 40px;height: 40px;"/>
</div>
<div class="shou_gai_box2">
<div class="shou_gai_box2_font1">'.$goods_name.'</div>
<div class="shou_gai_box2_font3">
¥'.$v1["price_one"].'<span>数量:X'.$v1["num"].'</span>
</div>
</div>
</div>';
}
$data = [
'order_info'=>$order_info,
'dizhi'=>$dizhi,
'xiangqing'=>$xiangqing,
'goods'=>$goods,
];
return $this->succeed_json("ok",$data);
}
/*订单发货处理*/
public function form_deliver_update()
{
$order_id = input("param.order_id");
if (input("post.")){
$courier_id = input("param.courier_id");
$courier_name = db::name("courier")->where("id = $courier_id")->value("name");
$info = [
'courier_id'=>$courier_id,
'courier_name'=>$courier_name,
'courier_number'=>input("param.courier_number"),
'price_yunfei'=>input("param.price_yunfei"),
'state'=>input("param.state"),
];
db::name("order")->where("order_id = $order_id")->data($info)->update();
return $this->succeed_json("发货成功");
}else{
$order_info = db::name("order")->alias("a")
->join("region b","a.province = b.id","LEFT")
->join("region c","a.city = c.id","LEFT")
->join("region d","a.district = d.id","LEFT")
->field("a.order_sn,a.address_name,a.address_phone,b.name as province_name,c.name as city_name,d.name as district_name,a.address,a.courier_id,a.courier_number,a.state,a.price_yunfei")
->where("a.order_id = $order_id")
->find();
$order_info["courier_id"] = $order_info["courier_id"] == 0?'':$order_info["courier_id"];
$address = '';
if (!empty($order_info["province_name"])){
$address .= $order_info["province_name"].'、';
}
if (!empty($order_info["city_name"])){
$address .= $order_info["city_name"].'、';
}
if (!empty($order_info["district_name"])){
$address .= $order_info["district_name"].'、';
}
if (!empty($order_info["address"])){
$address .= $order_info["address"];
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('order_sn', '订单编号',$order_info["order_sn"])->disabled(true)->tabs('tabs1');
$form->input('address_name', '收货人姓名',$order_info["address_name"])->disabled(true)->tabs('tabs1');
$form->input('address_phone', '收货人电话',$order_info["address_phone"])->disabled(true)->tabs('tabs1');
$form->input('address', '收货人地址',$address)->disabled(true)->tabs('tabs1');
$form->input('courier_number', '快递单号',$order_info["courier_number"])->required()->tabs('tabs1');
$form->selectOne('courier_id', '快递公司',$order_info["courier_id"])->setOptions(function(){
$list = db::name("courier")->order("sort desc")->select()->toArray();
$menus = [];
foreach ($list as $k =>$v){
$menus[$k] = ['label'=>$v["name"],'value'=>$v["id"]];
}
return $menus;
})->multiple(false)->filterable(false)->required()->tabs('tabs1');
$form->number('price_yunfei', '运费',$order_info["price_yunfei"])->tabs('tabs1');
$form->selectOne('state', '订单状态',$order_info["state"])->setOptions(function(){
$menus[] = ['label'=>'待付款','value'=>0];
$menus[] = ['label'=>'已付款,待发货','value'=>1];
$menus[] = ['label'=>'已发货,待收货','value'=>2];
$menus[] = ['label'=>'已完成','value'=>3];
$menus[] = ['label'=>'已取消','value'=>4];
return $menus;
})->multiple(false)->filterable(false)->required()->tabs('tabs1');
$form->button('/admin/Order/form_deliver_update');
$form->hidden('order_id',$order_id);
return $form;
}
}
/*退款订单*/
public function order_refund()
{
return View::fetch();
}
/*订单列表数据*/
public function order_refund_ajax()
{
$keyword = input("param.keyword");
$where = 1;
if (!empty($keyword)){
$where .= " and (a.order_sn like '%".$keyword."%' or a.address_name like '%".$keyword."%' or a.address_phone like '%".$keyword."%')";
}
$where .= " and a.state_refund != 0";
$list = db::name("order")->alias("a")
->join("region d","a.province = d.id","LEFT")
->join("region f","a.city = f.id","LEFT")
->join("region j","a.district = j.id","LEFT")
->field("a.order_id,a.order_sn,a.price,a.price_vip_discount,a.address_name,a.address_phone,a.pay_way,d.name as province_name,f.name as city_name,j.name as district_name,a.address,a.state,a.state_refund,a.describe_refund,a.price_refund,a.add_time,a.time_refund")
->where($where)
->order("a.time_refund desc")
->page($this->page,$this->limit)
->select()
->toArray();
foreach ($list as $k => $v){
$pay_way = '';
if ($v["pay_way"] == 0){$pay_way = '余额支付';}
if ($v["pay_way"] == 1){$pay_way = '微信支付';}
if ($v["pay_way"] == 2){$pay_way = '支付宝支付';}
if ($v["pay_way"] == 3){$pay_way = '积分支付';}
$list[$k]["pay_way"] = $pay_way;
$state_refund = '';
if ($v["state_refund"] == 1){$state_refund = '退款申请中';}
if ($v["state_refund"] == 2){$state_refund = '退款成功';}
if ($v["state_refund"] == 3){$state_refund = '取消退款';}
$list[$k]["state_refund"] = $state_refund;
$list[$k]["address"] = $v["province_name"].$v["city_name"].$v["district_name"].$v["address"];
$list[$k]["time_refund"] = date("Y-m-d H:i",$v["time_refund"]);
}
$count = db::name("order")->alias("a")
->join("region d","a.province = d.id","LEFT")
->join("region f","a.city = f.id","LEFT")
->join("region j","a.district = j.id","LEFT")
->where($where)
->count();
return $this->layui_json($count,$list);
}
/*订单退款处理*/
public function order_refund_update(Common_weixinpay $common_weixinpay)
{
$order_id = input("param.order_id");
$order_info = db::name("order")->where("order_id = $order_id")->order("order_id desc")->find();
if (input("post.")){
$price_refund = input("param.price_refund");
if (empty($price_refund)){
return $this->error_json("请输入退款金额");
}
$info = [
'state_refund'=>2,
'price_refund'=>$order_info["price_refund"]+$price_refund,
];
if ($info['price_refund'] > $order_info["price"]){
return $this->error_json("退款金额不可超过订单支付金额");
}
if ($order_info["pay_way"] == 0){//余额支付
$this->record_log("订单退款-订单编号:".$order_info["order_sn"],1,$order_info["user_id"],$price_refund);
}else if($order_info["pay_way"] == 1){//微信支付
$data = $common_weixinpay->payment_refund($order_info["price"],$order_info["order_sn"],$order_info["order_sn"],$price_refund);
if ($data["return_code"] != 'SUCCESS'){
return $this->error_json($data["return_msg"]);
}
}else{
return $this->error_json("该支付方式暂不支持退款");
}
db::name("order")->where("order_id = $order_id")->update($info);
return $this->succeed_json("操作成功");
}else{
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('describe_refund', '退款申请描述',$order_info["describe_refund"])->type("textarea")->readonly(true)->tabs('tabs1');
$imgdata_refund = explode(',',$order_info['imgdata_refund']);
$form->upload('imgdata_refund', '退款凭证', '/admin/ad/uploads', $imgdata_refund)->nultiple(false)->disabled(true)->tabs('tabs1');
$form->number('price_refund', '退款金额', 0)->required('','number')->tips("小提示:订单支付金额".$order_info["price"]."元")->tabs('tabs1');
$form->button('/admin/Order/order_refund_update');
$form->hidden('order_id',$order_id);
return $form;
}
}
/*充值订单*/
public function money_chongzhi()
{
return View::fetch();
}
/*提现订单*/
public function money_request()
{
return View::fetch();
}
/*充值提现订单获取*/
public function money_request_ajax()
{
$name = input("param.name");
$type = input("param.type");
$where = 1;
if ($type != ''){
$where .= " and a.type = $type";
}
if (!empty($name)){
$where .= " and (b.mobile like '%".$name."%' or b.user_name like '%".$name."%' or a.order_sn like '%".$name."%')";
}
$count = db::name("money_request")->alias("a")
->join("user b","a.user_id = b.user_id","LEFT")
->where($where)
->count();
$list = db::name("money_request")->alias("a")
->join("user b","a.user_id = b.user_id","LEFT")
->field("a.*,b.user_name,b.name,b.mobile")
->where($where)
->order("a.id desc")
->page($this->page,$this->limit)
->select()
->toArray();
foreach ($list as $k => $v){
$state = '';
if ($v["state"] == 0){$state='待审核';}
if ($v["state"] == 1){$state='已通过';}
if ($v["state"] == 2){$state='已驳回';}
$list[$k]["state"] = $state;
$list[$k]["add_time"] = date("Y-m-d H:i",$v["add_time"]);
}
return $this->layui_json($count,$list);
}
/*导出处理*/
public function money_request_export(Common_excel $common_excel)
{
$is_detection = input("param.is_detection");//是否检测1是 0否
$name = input("param.name");
$type = input("param.type");
$where = 1;
if ($type != '') {
$where .= " and a.type = $type";
}
if (!empty($name)) {
$where .= " and (b.mobile like '%" . $name . "%' or b.user_name like '%" . $name . "%' or a.order_sn like '%" . $name . "%')";
}
$list = db::name("money_request")->alias("a")
->join("user b", "a.user_id = b.user_id", "LEFT")
->field("a.*,b.user_name,b.name,b.mobile")
->where($where)
->order("a.id desc")
->select()
->toArray();
if ($is_detection == 1) {//检测
$list_count = count($list);
if ($list_count > 100000) {
return $this->error_json("导出数量大于上限(100000)不可导出!");
}
return $this->succeed_json("ok");
} else {
// 设置表格的表头数据
if ($type == 1){
$header = [
'A1'=>'ID',
'B1'=>'姓名',
'C1'=>'电话',
'D1'=>'开户行',
'E1'=>'卡号',
'F1'=>'提现金额',
'G1'=>'审核状态',
'H1'=>'驳回描述',
'I1'=>'时间',
];
}else{
$header = [
'A1'=>'ID',
'B1'=>'姓名',
'C1'=>'电话',
'D1'=>'充值金额',
'E1'=>'审核状态',
'F1'=>'驳回描述',
'G1'=>'时间',
];
}
$xlsData = array();
foreach ($list as $k => $v) {
$state = '';
if ($v["state"] == 0){$state='待审核';}
if ($v["state"] == 1){$state='已通过';}
if ($v["state"] == 2){$state='已驳回';}
$add_time = date("Y-m-d H:i",$v["add_time"]);
if ($type == 1){
$data = [
$v["id"],
$v["name"],
$v["mobile"],
$v["bank"],
$v["bank_card"].' ',
$v["money"],
$state,
$v["describe"],
$add_time,
];
}else{
$data = [
$v["id"],
$v["name"],
$v["mobile"],
$v["money"],
$state,
$v["describe"],
$add_time,
];
}
$xlsData[$k] = $data;
}
if ($type == 1){
// 设置下载文件保存的名称
$fileName = '提现导出'.date("Y-m-d",time());
// 调用方法导出excel
Common_excel::export_tixian($header,true,$xlsData,$fileName);
}else{
// 设置下载文件保存的名称
$fileName = '充值导出'.date("Y-m-d",time());
// 调用方法导出excel
Common_excel::export_chongzhi($header,true,$xlsData,$fileName);
}
}
}
/*充值提现订单查询*/
public function money_request_info()
{
$id = input("param.id");
$request_info = db::name("money_request")->alias("a")
->join("user b","a.user_id = b.user_id","LEFT")
->field("a.*,b.user_name,b.name,b.mobile")
->where("a.id = $id")
->order("a.id desc")
->find();
$data = [
'request_info'=>$request_info,
];
return $this->succeed_json("ok",$data);
}
/*充值审核订单*/
public function chongzhi_upload()
{
$id = input("param.id");
if (input("post.")){
$money_request = db::name("money_request")->where("id = $id")->find();
if ($money_request["state"] != 0){
return $this->error_json("该订单已处理,不可操作!");
}
$money = input("param.money");
$info = [
'audit_time' => time(),
'state' =>input("param.state"),
'describe'=>input("param.describe"),
];
if (input("param.state") == 1){
$info["describe"] = '';
$this->record_log("充值",7,$money_request["user_id"],$money,0);
}
db::name("money_request")->where("id = $id")->data($info)->update();
return $this->succeed_json("操作成功");
}else{
$info = ['order_sn'=>'','name'=>'','mobile'=>'','bank'=>'','bank_card'=>'','money'=>0,'state'=>1,'describe'=>''];
if (!empty($id)){
$info = db::name("money_request")->where("id = $id")->find();
$user_info = db::name("user")->where("user_id = $info[user_id]")->find();
$info["name"] = $user_info["name"];
$info["mobile"] = $user_info["mobile"];
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('order_sn', '订单编号',$info["order_sn"])->disabled(true)->tabs('tabs1');
$form->input('name', '会员姓名',$info["name"])->disabled(true)->tabs('tabs1');
$form->input('mobile', '会员手机号',$info["mobile"])->disabled(true)->tabs('tabs1');
$form->input('money', '金额',$info["money"])->disabled(true)->tabs('tabs1');
$form->upload('img_evidence', '凭证图', '/admin/ad/uploads', [$info['img_evidence']])->nultiple(false)->disabled(true)->tabs('tabs1');
$form->hr()->tabs('tabs1');
$form->radio('state', '审核状态',1)->setOptions(function(){
$menus[] = ['label'=>'审核通过','value'=>'1'];
$menus[] = ['label'=>'审核驳回','value'=>'2'];
return $menus;
})->tabs('tabs1')->required();
$form->input('describe', '驳回原因','')->type('textarea')->tabs('tabs1')->required()->show(['state2']);
$form->hidden('id',$id);
$form->hidden('user_id',$info["user_id"]);
$form->hidden('money',$info["money"]);
$form->button('/admin/Order/chongzhi_upload');
return $form;
}
}
/*提现审核订单*/
public function request_upload()
{
$id = input("param.id");
if (input("post.")){
$money_request = db::name("money_request")->where("id = $id")->find();
if ($money_request["state"] != 0){
return $this->error_json("该订单已处理,不可操作!");
}
$money = input("param.money");
$info = [
'audit_time' => time(),
'state' =>input("param.state"),
];
if (input("param.state") == 2){//驳回申请
$info["describe"] = input("param.describe");
$this->record_log("提现驳回",10,input("param.user_id"),0,$money);
}
db::name("money_request")->where("id = $id")->data($info)->update();
return $this->succeed_json("操作成功");
}else{
$info = ['order_sn'=>'','name'=>'','mobile'=>'','bank'=>'','bank_card'=>'','money'=>0,'state'=>1,'describe'=>''];
if (!empty($id)){
$info = db::name("money_request")->where("id = $id")->find();
$user_info = db::name("user")->where("user_id = $info[user_id]")->find();
$info["name"] = $user_info["name"];
$info["mobile"] = $user_info["mobile"];
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('order_sn', '订单编号',$info["order_sn"])->disabled(true)->tabs('tabs1');
$form->input('name', '会员姓名',$info["name"])->disabled(true)->tabs('tabs1');
$form->input('mobile', '会员手机号',$info["mobile"])->disabled(true)->tabs('tabs1');
$form->input('bank', '开户行',$info["bank"])->disabled(true)->tabs('tabs1');
$form->input('bank_card', '开户行账号',$info["bank_card"])->disabled(true)->tabs('tabs1');
$form->input('money', '金额',$info["money"])->disabled(true)->tabs('tabs1');
$form->hr()->tabs('tabs1');
$form->radio('state', '审核状态',1)->setOptions(function(){
$menus[] = ['label'=>'审核通过','value'=>'1'];
$menus[] = ['label'=>'审核驳回','value'=>'2'];
return $menus;
})->tabs('tabs1')->required();
$form->input('describe', '驳回原因','')->type('textarea')->tabs('tabs1')->required()->show(['state2']);
$form->hidden('id',$id);
$form->hidden('user_id',$info["user_id"]);
$form->hidden('money',$info["money"]);
$form->button('/admin/Order/request_upload');
return $form;
}
}
}