Files
Smart-Farm/app/massage/controller/AdminOrder.php
2025-12-22 14:32:54 +08:00

630 lines
13 KiB
PHP

<?php
namespace app\massage\controller;
use app\AdminRest;
use app\massage\model\CarAtvRecord;
use app\massage\model\Comment;
use app\massage\model\CommentLable;
use app\massage\model\Lable;
use app\massage\model\NoticeList;
use app\massage\model\Order;
use app\massage\model\Printer;
use app\massage\model\RefundOrder;
use app\massage\model\User;
use app\shop\model\OrderGoods;
use app\shop\model\Wallet;
use think\App;
use app\shop\model\Order as Model;
use think\facade\Db;
class AdminOrder extends AdminRest
{
protected $model;
protected $order_goods_model;
protected $refund_order_model;
protected $comment_model;
public function __construct(App $app) {
parent::__construct($app);
$this->model = new Order();
$this->order_goods_model = new OrderGoods();
$this->refund_order_model = new RefundOrder();
}
/**
* @author chenniang
* @DataTime: 2021-03-15 14:43
* @功能说明:列表
*/
public function orderList(){
$input = $this->_param;
//超时自动取消订单
// $this->model->autoCancelOrder($this->_uniacid);
$dis[] = ['a.uniacid','=',$this->_uniacid];
//时间搜素
if(!empty($input['start_time'])&&!empty($input['end_time'])){
$start_time = $input['start_time'];
$end_time = $input['end_time'];
$dis[] = ['a.create_time','between',"$start_time,$end_time"];
}
//商品名字搜索
if(!empty($input['goods_name'])){
$dis[] = ['b.goods_name','like','%'.$input['goods_name'].'%'];
}
//手机号搜索
if(!empty($input['mobile'])){
$dis[] = ['a.mobile','like','%'.$input['mobile'].'%'];
}
if(!empty($input['pay_type'])){
//订单状态搜索
$dis[] = ['a.pay_type','=',$input['pay_type']];
}
// //除开删除的
$dis[] = ['a.is_show','=',1];
if(!empty($input['order_code'])){
$dis[] = ['a.order_code','like','%'.$input['order_code'].'%'];
}
$data = $this->model->adminDataList($dis,$input['limit']);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-15 14:58
* @功能说明:订单详情
*/
public function orderInfo(){
$input = $this->_param;
$dis = [
'id' => $input['id']
];
$data = $this->model->dataInfo($dis);
$user_model = new User();
$data['nickName'] = $user_model->where(['id'=>$data['user_id']])->value('nickName');
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 17:50
* @功能说明:退款订单详情
*/
public function refundOrderInfo(){
$input = $this->_param;
$dis = [
'id' => $input['id']
];
$data = $this->refund_order_model->dataInfo($dis);
$data['pay_order_code'] = $this->model->where(['id'=>$data['order_id']])->value('order_code');
$data['create_time'] = date('Y-m-d H:i:s',$data['create_time']);
$data['refund_time'] = date('Y-m-d H:i:s',$data['refund_time']);
$user_model = new User();
$data['nickName'] = $user_model->where(['id'=>$data['user_id']])->value('nickName');
$data['mobile'] = $this->model->where(['id'=>$data['order_id']])->value('mobile');
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-17 17:44
* @功能说明:退款订单列表
*/
public function refundOrderList(){
$input = $this->_param;
$dis[] = ['a.uniacid','=',$this->_uniacid];
//商品名字搜索
if(!empty($input['goods_name'])){
$dis[] = ['c.goods_name','like','%'.$input['goods_name'].'%'];
}
//订单状态搜索
if(!empty($input['status'])){
$dis[] = ['a.status','=',$input['status']];
}else{
$dis[] = ['a.status','>',-1];
}
$where = [];
if(!empty($input['order_code'])){
$where[] = ['a.order_code','like','%'.$input['order_code'].'%'];
$where[] = ['d.order_code','like','%'.$input['order_code'].'%'];
}
$data = $this->refund_order_model->adminDataList($dis,$input['limit'],$where);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-18 09:21
* @功能说明:拒绝退款
*/
public function noPassRefund(){
$input = $this->_input;
$res = $this->refund_order_model->noPassRefund($input['id']);
if(!empty($res['code'])){
$this->errorMsg($res['msg']);
}
return $this->success($res);
}
/**\
* @author chenniang
* @DataTime: 2021-03-18 09:28
* @功能说明:同意退款
*/
public function passRefund(){
$input = $this->_input;
$res = $this->refund_order_model->passOrder($input['id'],$input['price'],$this->payConfig(),0,$input['text']);
if(!empty($res['code'])){
$this->errorMsg($res['msg']);
}
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-07-05 23:16
* @功能说明:评价列表
*/
public function commentList(){
$input = $this->_param;
$dis[] = ['a.uniacid','=',$this->_uniacid];
$dis[] = ['a.status','>',-1];
if(!empty($input['star'])){
$dis[] = ['a.star','=',$input['star']];
}
if(!empty($input['coach_name'])){
$dis[] = ['d.coach_name','like','%'.$input['coach_name'].'%'];
}
if(!empty($input['goods_name'])){
$dis[] = ['c.goods_name','like','%'.$input['goods_name'].'%'];
}
$data = $this->comment_model->dataList($dis,$input['limit']);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-05 23:31
* @功能说明:编辑评价
*/
public function commentUpdate(){
$input = $this->_input;
$dis = [
'id' => $input['id']
];
$data = $this->comment_model->dataUpdate($dis,$input);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-04 18:53
* @功能说明:评价标签列表
*/
public function commentLableList(){
$input = $this->_param;
$lable_model = new Lable();
$dis[] = ['uniacid','=',$this->_uniacid];
$dis[] = ['status','>',-1];
$data = $lable_model->dataList($dis,$input['limit']);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-04 18:56
* @功能说明:添加评价标签
*/
public function commentLableAdd(){
$input = $this->_input;
$input['uniacid'] = $this->_uniacid;
$lable_model = new Lable();
$res = $lable_model->dataAdd($input);
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-07-04 18:57
* @功能说明:编辑评价标签
*/
public function commentLableUpdate(){
$input = $this->_input;
$dis = [
'id' => $input['id']
];
$lable_model = new Lable();
$res = $lable_model->dataUpdate($dis,$input);
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-07-04 18:59
* @功能说明:评价标签详情
*/
public function commentLableInfo(){
$input = $this->_input;
$dis = [
'id' => $input['id']
];
$lable_model = new Lable();
$res = $lable_model->dataInfo($dis);
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-07-16 10:27
* @功能说明:提示列表
*/
public function noticeList(){
$input = $this->_param;
$notice_model = new NoticeList();
$dis[] = ['uniacid','=',$this->_uniacid];
if(!empty($input['type'])){
$dis[] = ['type','=',$input['type']];
}
if(isset($input['have_look'])){
$dis[] = ['have_look','=',$input['have_look']];
}else{
$dis[] = ['have_look','>',-1];
}
if(!empty($input['start_time'])){
$dis[] = ['create_time','between',"{$input['start_time']},{$input['end_time']}"];
}
$data = $notice_model->dataList($dis,$input['limit']);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-16 10:38
* @功能说明:未查看的数量
*/
public function noLookCount(){
$input = $this->_param;
$dis[] = ['uniacid','=',$this->_uniacid];
$dis[] = ['have_look','=',0];
$notice_model = new NoticeList();
$data = $notice_model->where($dis)->count();
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-16 10:41
* @功能说明:全部已读
*/
public function allLook(){
$input = $this->_param;
$dis[] = ['uniacid','=',$this->_uniacid];
$dis[] = ['have_look','=',0];
$notice_model = new NoticeList();
$data = $notice_model->dataUpdate($dis,['have_look'=>1]);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-16 10:28
* @功能说明:
*/
public function noticeUpdate(){
$input = $this->_input;
$notice_model = new NoticeList();
$data = $notice_model->dataUpdate(['id'=>$input['id']],$input);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-11-11 16:26
* @功能说明:订单打印
*/
public function orderPrinter(){
$input = $this->_input;
$printer_model = new Printer();
$res = $printer_model->printer($input['id'],0,$input['type']);
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-11-12 15:25
* @功能说明:后台数据统计
*/
public function dataStatistics(){
$input = $this->_input;
$car_order_model = new Order();
$record_model = new CarAtvRecord();
$shop_order_model = new \app\shop\model\Order();
$restaurant_order_model = new \app\restaurant\model\Order();
$dis[] =['pay_type','>',1];
$dis[] =['uniacid','=',$this->_uniacid];
$car_order_price = $car_order_model->where($dis)->sum('pay_price');
$record_price = $record_model->where($dis)->sum('pay_price');
$data['car_price'] = round($car_order_price+$record_price,2);
$shop_price = $shop_order_model->where($dis)->sum('true_price');
$restaurant_price = $restaurant_order_model->where($dis)->sum('true_price');
$data['shop_price'] = round($shop_price,2);
$data['restaurant_price'] = round($restaurant_price,2);
$data['all_price'] = round($car_order_price+$record_price+$shop_price+$restaurant_price,2);
$arr['price'] = $data;
while ($input['date_start_time']<=$input['date_end_time']){
$date[] = date('Y-m-d',$input['date_start_time']);
$input['date_start_time'] +=86400;
}
if(!empty($date)){
foreach ($date as $k=> $value){
$dis = [];
$dis[] =['pay_type','>',1];
$dis[] =['uniacid','=',$this->_uniacid];
$car_order_price = $car_order_model->where($dis)->whereDay('pay_time',$value)->sum('pay_price');
$record_price = $record_model->where($dis)->whereDay('pay_time',$value)->sum('pay_price');
$arr['date'][$k]['car_price']= round($car_order_price+$record_price,2);
$shop_price = $shop_order_model->where($dis)->whereDay('pay_time',$value)->sum('true_price');
$restaurant_price = $restaurant_order_model->where($dis)->whereDay('pay_time',$value)->sum('true_price');
$arr['date'][$k]['shop_price'] = round($shop_price,2);
$arr['date'][$k]['restaurant_price'] = round($restaurant_price,2);
$arr['date'][$k]['all_price'] = round($car_order_price+$record_price+$shop_price+$restaurant_price,2);
$arr['date'][$k]['date'] = $value;
}
}
$arr['date'] = array_values($arr['date']);
$dis[] =['pay_type','>',1];
$dis[] =['uniacid','=',$this->_uniacid];
if(!empty($input['start_time'])){
$dis[] =['pay_time','between',"{$input['start_time']},{$input['end_time']}"];
}
if($input['type']==1){
$arr['order_list'] = $car_order_model->where($dis)->field('id,order_code,pay_price,pay_time')->order('id desc')->paginate($input['limit'])->toArray();
}elseif($input['type']==2){
$arr['order_list'] = $shop_order_model->where($dis)->field('id,order_code,true_price as pay_price,pay_time')->order('id desc')->paginate($input['limit'])->toArray();
}else{
$arr['order_list'] = $restaurant_order_model->where($dis)->field('id,order_code,true_price as pay_price,pay_time')->order('id desc')->paginate($input['limit'])->toArray();
}
return $this->success($arr);
}
}