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

452 lines
9.6 KiB
PHP

<?php
namespace app\farm\controller;
use app\AdminRest;
use app\ApiRest;
use app\farm\model\Config;
use app\farm\model\Coupon;
use app\farm\model\CouponRecord;
use app\farm\model\ShopOrder;
use app\farm\model\ShopOrderGoods;
use app\farm\model\ShopRefund;
use app\farm\model\Goods;
use app\farm\model\MsgConfig;
use app\farm\model\Order;
use app\farm\model\OrderAddress;
use app\farm\model\OrderGoods;
use app\farm\model\RefundOrder;
use app\farm\model\SystemInfo;
use app\shfarmop\model\User;
use longbingcore\wxcore\PushMsgModel;
use think\App;
use think\facade\Db;
use think\Request;
class AdminOrder extends AdminRest
{
protected $model;
protected $refund_model;
protected $order_goods_model;
public function __construct(App $app) {
parent::__construct($app);
$this->model = new ShopOrder();
$this->refund_model = new ShopRefund();
$this->order_goods_model = new ShopOrderGoods();
autoCancelOrder($this->_uniacid);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 15:48
* @功能说明:个人中心
*/
public function orderList(){
$input = $this->_param;
$dis[] = ['a.uniacid','=',$this->_uniacid];
if(!empty($input['goods_name'])){
$dis[] = ['c.goods_name','like','%'.$input['goods_name'].'%'];
}
if(!empty($input['order_code'])){
$dis[] = ['a.order_code','like','%'.$input['order_code'].'%'];
}
if(!empty($input['mobile'])){
$dis[] = ['d.mobile','like','%'.$input['mobile'].'%'];
}
if(!empty($input['pay_type'])){
$dis[] = ['a.pay_type','=',$input['pay_type']];
}
if(!empty($input['store_id'])){
$dis[] = ['a.store_id','=',$input['store_id']];
}
if(!empty($input['start_time'])&&!empty($input['end_time'])){
$dis[] = ['a.create_time','between',"{$input['start_time']},{$input['end_time']}"];
}
$data = $this->model->adminDataList($dis,$input['limit']);
$arr = [
//未支付
'no_pay_count' => 1,
//未发货
'no_send_count' => 2,
//已经发货
'have_send_count'=> 3
];
foreach ($arr as $ks=>$vs){
$map = [
'pay_type'=> $vs
];
$data[$ks] = $this->model->where($map)->count();
}
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);
$data['over_time'] -= time();
$data['create_time'] = date('Y-m-d H:i:s',$data['create_time']);
$data['hx_time'] = date('Y-m-d H:i:s',$data['hx_time']);
//剩余可申请退款数量
$can_refund_num = array_sum(array_column($data['order_goods'],'can_refund_num'));
//是否可以申请退款
if(($data['pay_type']==7&&$data['can_refund_time']>time()&&$can_refund_num>0)||($data['pay_type']==2&&$can_refund_num>0)){
$data['can_refund'] = 1;
}else{
$data['can_refund'] = 0;
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 17:29
* @功能说明:退款订单详情
*
*/
public function refundOrderList(){
$input = $this->_param;
$dis[] = ['a.uniacid','=',$this->_uniacid];
$where = [];
if(!empty($input['order_code'])){
$where[] = ['a.order_code','like','%'.$input['order_code'].'%'];
$where[] = ['d.order_code','like','%'.$input['order_code'].'%'];
}
if(!empty($input['goods_name'])){
$dis[] = ['c.goods_name','like','%'.$input['goods_name'].'%'];
}
// if(!empty($input['order_code'])){
//
// $dis[] = ['d.order_code','like','%'.$input['order_code'].'%'];
//
// }
if(!empty($input['status'])){
$dis[] = ['a.status','=',$input['status']];
}else{
$dis[] = ['a.status','>',-1];
}
$data = $this->refund_model->indexDataList($dis,$where,$input['limit']);
$map = [
'status' => 1,
// 'user_id'=> $this->getUserId()
];
//退款中数量
$data['ing_count'] = $this->refund_model->where($map)->count();
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_model->dataInfo($dis);
$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']);
$order_model = new ShopOrder();
$data['pay_order_code'] = $order_model->where(['id'=>$data['order_id']])->value('order_code');
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-25 17:14
* @功能说明:楼长核销订单
*/
public function endOrder(){
$input = $this->_input;
$order_model= new ShopOrder();
$order = $order_model->dataInfo(['id'=>$input['id']]);
if(empty($order)){
$this->errorMsg('订单未找到');
}
if(empty($order)){
$this->errorMsg('订单未找到');
}
//自提
if($order['send_type']==1&&$order['pay_type']!=2){
$this->errorMsg('订单状态错误');
}
//快递
if($order['send_type']==2&&$order['pay_type']!=3){
$this->errorMsg('订单状态错误');
}
if($order['send_type']==1){
$user_model = new \app\massage\model\User();
$role = $user_model->where(['id'=>$this->getUserId()])->value('role');
if($role!=1){
$this->errorMsg('只有管理员才能核销');
}
}
$refund_model = new ShopRefund();
//判断有无申请中的退款订单
$refund_order = $refund_model->dataInfo(['order_id'=>$order['id'],'status'=>1]);
if(!empty($refund_order)){
$this->errorMsg('该订单正在申请退款,请先处理再核销');
}
$res = $order_model->hxOrder($input['id'],$this->getUserId());
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-03-18 09:21
* @功能说明:拒绝退款
*/
public function noPassRefund(){
$input = $this->_input;
$refund_order_model = new ShopRefund();
$res = $refund_order_model->noPassRefund($input['id'],$this->_user['id'],1);
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;
$refund_order_model = new ShopRefund();
$res = $refund_order_model->passOrder($input['id'],$input['price'],$this->payConfig(),$this->_user['id'],$input['text'],1);
if(!empty($res['code'])){
$this->errorMsg($res['msg']);
}
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2022-03-07 11:08
* @功能说明:地主商城订单发货
*/
public function shopOrderSend(){
$input = $this->_input;
$dis = [
'id' => $input['id']
];
$order_model = new ShopOrder();
$order = $order_model->dataInfo($dis);
if(empty($order)||$order['pay_type']!=2){
$this->errorMsg('订单状态错误');
}
$refund_model = new ShopRefund();
//判断有无申请中的退款订单
$refund_order = $refund_model->dataInfo(['order_id'=>$input['id'],'status'=>1]);
if(!empty($refund_order)){
$this->errorMsg('该订单正在申请退款,请先处理再核销');
}
$config_model = new Config();
$config = $config_model->dataInfo(['uniacid'=>$this->_uniacid]);
$update = [
'pay_type' => 3,
// 'express_company' => $input['express_company'],
//
// 'express_code' => $input['express_code'],
//
// 'express_mobile' => $input['express_mobile'],
//
// 'express_user' => $input['express_user'],
'send_time' => time(),
'hx_over_time' => time()+$config['auto_hx_time']*86400,
];
$data = $order_model->dataUpdate($dis,$update);
// $water_model = new FinanceWater();
// //商城订单农场主获得运费
// $water_model->addWater($order['id'],16,1,0);
$order = $order_model->dataInfo($dis);
$order_model->sendOrderService($order);
$sys_model = new PushMsgModel($order['uniacid']);
$sys_model->sendMsg($order,4);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2022-07-29 15:27
* @功能说明:上传视频
*/
public function uploadVideo(){
$input = $this->_input;
$res = $this->model->dataUpdate(['id'=>$input['id']],['video'=>$input['video']]);
return $this->success($res);
}
}