...
|
...
|
@@ -140,6 +140,39 @@ class Order extends Backend |
|
|
if ($order['is_pay'] != 1) {
|
|
|
$this->error("该订单无法退款");
|
|
|
}
|
|
|
$create_time=$order['create_time'];
|
|
|
$refund_time=substr($order['reservation_time'],0,16);
|
|
|
//下单五分钟后五收取手续费
|
|
|
$newtime=time()-$create_time;
|
|
|
|
|
|
if($newtime<300){
|
|
|
print_r("小于五分钟");
|
|
|
print_r([$create_time,$newtime]);
|
|
|
}else {
|
|
|
$refund_time=strtotime($refund_time);
|
|
|
$newrefund_time=$refund_time-time();
|
|
|
if($newrefund_time<0){
|
|
|
$this->error("该订单无法退款,时间过期");
|
|
|
}
|
|
|
if($newrefund_time<3600){
|
|
|
$pay_fee = $order['price'];
|
|
|
$refund_fee = $pay_fee;
|
|
|
}else if($newrefund_time>3600 & $newrefund_time<7200){
|
|
|
$pay_fee = $order['price']*0.7;
|
|
|
$refund_fee = $pay_fee;
|
|
|
}else if($newrefund_time>7200 & $newrefund_time<28800){
|
|
|
$pay_fee = $order['price']*0.8;
|
|
|
$refund_fee = $pay_fee;
|
|
|
}else if($newrefund_time>28800 & $newrefund_time<43200){
|
|
|
$pay_fee = $order['price']*0.9;
|
|
|
$refund_fee = $pay_fee;
|
|
|
}else if($newrefund_time<43200){
|
|
|
$pay_fee = $order['price'];
|
|
|
$refund_fee = $pay_fee;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
print_r($refund_fee);return;
|
|
|
if($order['pay_type']=="offlinepay" || $order['pay_type']=="background"){
|
|
|
$relogs['update_time'] = time();
|
|
|
$relogs['is_pay'] = 3;
|
...
|
...
|
@@ -154,10 +187,8 @@ class Order extends Backend |
|
|
}
|
|
|
$this->success("退款成功");
|
|
|
}
|
|
|
|
|
|
//拼接退款参数
|
|
|
$pay_fee = $order['price'];
|
|
|
$refund_fee = $pay_fee;
|
|
|
|
|
|
$order_sn = $order['order_no'];
|
|
|
$pay_type = 'wechat';
|
|
|
$reason = '订单退款';
|
...
|
...
|
@@ -275,6 +306,94 @@ class Order extends Backend |
|
|
$this->success();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 编辑
|
|
|
*
|
|
|
* @param $ids
|
|
|
* @return string
|
|
|
* @throws DbException
|
|
|
* @throws \think\Exception
|
|
|
*/
|
|
|
public function editrebook($ids = null)
|
|
|
{
|
|
|
$row = $this->model->get($ids);
|
|
|
if (!$row) {
|
|
|
$this->error(__('No Results were found'));
|
|
|
}
|
|
|
$adminIds = $this->getDataLimitAdminIds();
|
|
|
if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) {
|
|
|
$this->error(__('You have no permission'));
|
|
|
}
|
|
|
if (false === $this->request->isPost()) {
|
|
|
$car=Db::name("car")
|
|
|
->alias("a")
|
|
|
->join("driver b","a.driver_id=b.id")
|
|
|
->where("a.route_id",$row['route_id'])
|
|
|
->field("b.id,car_model,name,license_plate")
|
|
|
->select();
|
|
|
$this->view->assign('row', $car);
|
|
|
return $this->view->fetch();
|
|
|
}
|
|
|
$params = $this->request->post('row/a');
|
|
|
if (empty($params)) {
|
|
|
$this->error(__('Parameter %s can not be empty', ''));
|
|
|
}
|
|
|
$params = $this->preExcludeFields($params);
|
|
|
$result = false;
|
|
|
Db::startTrans();
|
|
|
try {
|
|
|
//是否采用模型验证
|
|
|
if ($this->modelValidate) {
|
|
|
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
|
|
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
|
|
|
$row->validateFailException()->validate($validate);
|
|
|
}
|
|
|
$driver = Db::name("driver")->where("id", $ids)->find();
|
|
|
$car = Db::name("car")->where("driver_id", $driver['id'])->find();
|
|
|
$carmodel = Db::name("carmodel")->where("id", $car['carmodel_id'])->find();
|
|
|
$route = Db::name("route")->where("id", $car['route_id'])->find();
|
|
|
//判断总表
|
|
|
$time = strtotime(date("Y-m-d", time()));
|
|
|
$params["order_review_id"]="";
|
|
|
if($car){
|
|
|
$order_review = Db::name("order_review")
|
|
|
->where("car_id", $car["id"])
|
|
|
->where("route_id", $route['id'])
|
|
|
->where("driver_id", $driver['id'])
|
|
|
->where("createtime", ">", $time)
|
|
|
->find();
|
|
|
|
|
|
if (!$order_review) {
|
|
|
$order_review_id = Db::name("order_review")
|
|
|
->insertGetId([
|
|
|
"car_id" => $car["id"],
|
|
|
"route_id" => $route['id'],
|
|
|
"driver_id" => $driver['id'],
|
|
|
"type" => 2,
|
|
|
"order_status" => 3,
|
|
|
"createtime" => time()
|
|
|
]);
|
|
|
} else {
|
|
|
$order_review_id = $order_review['id'];
|
|
|
}
|
|
|
$params["order_review_id"]=$order_review_id;
|
|
|
}
|
|
|
$params["driver_id"]=$params['intended_driver_id'];
|
|
|
$params["driver_name"]=$driver['name'];
|
|
|
$result = $row->allowField(true)->save($params);
|
|
|
$index = new Index();
|
|
|
$index->senWxmsgToDriverUser($ids);
|
|
|
Db::commit();
|
|
|
} catch (ValidateException|PDOException|Exception $e) {
|
|
|
Db::rollback();
|
|
|
$this->error($e->getMessage());
|
|
|
}
|
|
|
if (false === $result) {
|
|
|
$this->error(__('No rows were updated'));
|
|
|
}
|
|
|
$this->success();
|
|
|
}
|
|
|
|
|
|
public function orderinfo($ids){
|
|
|
$row = Db::name("order")->field("id,passengers,driver_id,starting_point,end_point,order_no,pay_type,price,route_id,is_pay,phone,type")->find(['id' => $ids]);
|
|
|
|
...
|
...
|
|