作者 郭文星

13

@@ -22,14 +22,15 @@ class Specificaddress extends Backend @@ -22,14 +22,15 @@ class Specificaddress extends Backend
22 * @var \app\admin\model\Specificaddress 22 * @var \app\admin\model\Specificaddress
23 */ 23 */
24 protected $model = null; 24 protected $model = null;
  25 + protected $routemodel = null;
25 26
26 public function _initialize() 27 public function _initialize()
27 { 28 {
28 parent::_initialize(); 29 parent::_initialize();
29 $this->model = new \app\admin\model\Specificaddress; 30 $this->model = new \app\admin\model\Specificaddress;
  31 + $this->routemodel=new \app\admin\model\Route();
30 $route_id = $this->request->param("route_id"); 32 $route_id = $this->request->param("route_id");
31 $this->view->assign("route_id", $route_id); 33 $this->view->assign("route_id", $route_id);
32 -  
33 } 34 }
34 35
35 36
@@ -60,9 +61,15 @@ class Specificaddress extends Backend @@ -60,9 +61,15 @@ class Specificaddress extends Backend
60 } 61 }
61 [$where, $sort, $order, $offset, $limit] = $this->buildparams(); 62 [$where, $sort, $order, $offset, $limit] = $this->buildparams();
62 $list = $this->model 63 $list = $this->model
  64 + ->with(['route'])
63 ->where($where) 65 ->where($where)
64 ->order($sort, $order) 66 ->order($sort, $order)
65 ->paginate($limit); 67 ->paginate($limit);
  68 + foreach ($list as $row) {
  69 + $row->visible(['id','specific_address','route_id']);
  70 + $row->visible(['route']);
  71 + $row->getRelation('route')->visible(['name']);
  72 + }
66 $result = ['total' => $list->total(), 'rows' => $list->items()]; 73 $result = ['total' => $list->total(), 'rows' => $list->items()];
67 return json($result); 74 return json($result);
68 } 75 }
@@ -74,7 +81,11 @@ class Specificaddress extends Backend @@ -74,7 +81,11 @@ class Specificaddress extends Backend
74 */ 81 */
75 public function add() 82 public function add()
76 { 83 {
  84 +
77 if (false === $this->request->isPost()) { 85 if (false === $this->request->isPost()) {
  86 + $route_id = $this->request->param("route_id");
  87 + $route=$this->routemodel->find($route_id);
  88 + $this->view->assign("route", $route);
78 return $this->view->fetch(); 89 return $this->view->fetch();
79 } 90 }
80 $params = $this->request->post('row/a'); 91 $params = $this->request->post('row/a');
@@ -104,7 +115,57 @@ class Specificaddress extends Backend @@ -104,7 +115,57 @@ class Specificaddress extends Backend
104 if ($result === false) { 115 if ($result === false) {
105 $this->error(__('No rows were inserted')); 116 $this->error(__('No rows were inserted'));
106 } 117 }
  118 +
  119 + $this->success();
  120 + }
  121 + /**
  122 + * 编辑
  123 + *
  124 + * @param $ids
  125 + * @return string
  126 + * @throws DbException
  127 + * @throws \think\Exception
  128 + */
  129 + public function edit($ids = null)
  130 + {
  131 + $row = $this->model->get($ids);
  132 + if (!$row) {
  133 + $this->error(__('No Results were found'));
  134 + }
  135 + $adminIds = $this->getDataLimitAdminIds();
  136 + if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) {
  137 + $this->error(__('You have no permission'));
  138 + }
  139 + if (false === $this->request->isPost()) {
  140 + $this->view->assign('row', $row);
  141 + $route_id = $this->request->param("route_id");
  142 + $route=$this->routemodel->find($route_id);
  143 + $this->view->assign("route", $route);
  144 + return $this->view->fetch();
  145 + }
  146 + $params = $this->request->post('row/a');
  147 + if (empty($params)) {
  148 + $this->error(__('Parameter %s can not be empty', ''));
  149 + }
  150 + $params = $this->preExcludeFields($params);
  151 + $result = false;
  152 + Db::startTrans();
  153 + try {
  154 + //是否采用模型验证
  155 + if ($this->modelValidate) {
  156 + $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
  157 + $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
  158 + $row->validateFailException()->validate($validate);
  159 + }
  160 + $result = $row->allowField(true)->save($params);
  161 + Db::commit();
  162 + } catch (ValidateException|PDOException|Exception $e) {
  163 + Db::rollback();
  164 + $this->error($e->getMessage());
  165 + }
  166 + if (false === $result) {
  167 + $this->error(__('No rows were updated'));
  168 + }
107 $this->success(); 169 $this->success();
108 } 170 }
109 -  
110 } 171 }
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 return [ 3 return [
4 'Id' => 'ID', 4 'Id' => 'ID',
5 - 'Route_id' => '线路', 5 + 'Route_id' => '线路编号',
  6 + 'Route.name' => '线路',
6 'Specific_address' => '详细地址' 7 'Specific_address' => '详细地址'
7 ]; 8 ];
@@ -32,7 +32,10 @@ class Specificaddress extends Model @@ -32,7 +32,10 @@ class Specificaddress extends Model
32 32
33 33
34 34
35 - 35 + public function route()
  36 + {
  37 + return $this->belongsTo('Route', 'route_id', 'id', [], 'LEFT')->setEagerlyType(0);
  38 + }
36 39
37 40
38 41
@@ -8,7 +8,11 @@ @@ -8,7 +8,11 @@
8 8
9 </div> 9 </div>
10 <div class="form-group"> 10 <div class="form-group">
11 - <label class="control-label col-xs-12 col-sm-2">{:__('Specific_address')}:</label> 11 + {if $route.type==1}
  12 + <label class="control-label col-xs-12 col-sm-2">目的地:</label>
  13 + {else}
  14 + <label class="control-label col-xs-12 col-sm-2">上车点:</label>
  15 + {/if}
12 <div class="col-xs-12 col-sm-8"> 16 <div class="col-xs-12 col-sm-8">
13 <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text"> 17 <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text">
14 </div> 18 </div>
@@ -7,7 +7,11 @@ @@ -7,7 +7,11 @@
7 </div> 7 </div>
8 </div> 8 </div>
9 <div class="form-group"> 9 <div class="form-group">
10 - <label class="control-label col-xs-12 col-sm-2">{:__('Specific_address')}:</label> 10 + {if $route.type==1}
  11 + <label class="control-label col-xs-12 col-sm-2">目的地:</label>
  12 + {else}
  13 + <label class="control-label col-xs-12 col-sm-2">上车点:</label>
  14 + {/if}
11 <div class="col-xs-12 col-sm-8"> 15 <div class="col-xs-12 col-sm-8">
12 <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text" value="{$row.specific_address|htmlentities}"> 16 <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text" value="{$row.specific_address|htmlentities}">
13 </div> 17 </div>
@@ -90,6 +90,7 @@ class Car extends Base @@ -90,6 +90,7 @@ class Car extends Base
90 $phone = $this->request->param("phone");//联系手机号码 90 $phone = $this->request->param("phone");//联系手机号码
91 $user_name = $this->request->param("user_name");//联系人 91 $user_name = $this->request->param("user_name");//联系人
92 $position = $this->request->param("position");//上车地址 92 $position = $this->request->param("position");//上车地址
  93 + $specificaddress_id = $this->request->param("specificaddress_id");//上车地址
93 $seat_no = $this->request->param("seat_no");//座位 94 $seat_no = $this->request->param("seat_no");//座位
94 $lat = $this->request->param("lat");//经度 95 $lat = $this->request->param("lat");//经度
95 $lng = $this->request->param("lng");//维度 96 $lng = $this->request->param("lng");//维度
@@ -150,6 +151,7 @@ class Car extends Base @@ -150,6 +151,7 @@ class Car extends Base
150 "car_id"=>$car_id, 151 "car_id"=>$car_id,
151 "order_review_id"=>$order_review_id, 152 "order_review_id"=>$order_review_id,
152 "route_id"=>$route_id, 153 "route_id"=>$route_id,
  154 + "specificaddress_id"=>$specificaddress_id,
153 "user_id"=>$this->auth->id, 155 "user_id"=>$this->auth->id,
154 "phone"=>$phone, 156 "phone"=>$phone,
155 "user_name"=>$user_name, 157 "user_name"=>$user_name,
@@ -961,6 +963,7 @@ class Car extends Base @@ -961,6 +963,7 @@ class Car extends Base
961 $route_id = $this->request->param("route_id");//线路 963 $route_id = $this->request->param("route_id");//线路
962 $position = $this->request->param("position");//上车地址 964 $position = $this->request->param("position");//上车地址
963 $lat = $this->request->param("lat");//经度 965 $lat = $this->request->param("lat");//经度
  966 + $specificaddress_id = $this->request->param("specificaddress_id");//区域id
964 $lng = $this->request->param("lng");//维度 967 $lng = $this->request->param("lng");//维度
965 $number = $this->request->param("number");//乘车人数 968 $number = $this->request->param("number");//乘车人数
966 $carmodel_id = $this->request->param("carmodel_id");//乘车人数 969 $carmodel_id = $this->request->param("carmodel_id");//乘车人数
@@ -978,6 +981,7 @@ class Car extends Base @@ -978,6 +981,7 @@ class Car extends Base
978 "price"=>$price, 981 "price"=>$price,
979 "driver_id"=>$driver['id'], 982 "driver_id"=>$driver['id'],
980 "is_qrcode"=>$is_qrcode, 983 "is_qrcode"=>$is_qrcode,
  984 + "specificaddress_id"=>$specificaddress_id,
981 "reservation_time"=>$reservation_time, 985 "reservation_time"=>$reservation_time,
982 "is_pay"=>"2",//未支付 986 "is_pay"=>"2",//未支付
983 "route_id"=>$route_id, 987 "route_id"=>$route_id,
@@ -1025,6 +1029,7 @@ class Car extends Base @@ -1025,6 +1029,7 @@ class Car extends Base
1025 $carmodel_id = $this->request->param("carmodel_id");//乘车人数 1029 $carmodel_id = $this->request->param("carmodel_id");//乘车人数
1026 $reservation_time = $this->request->param("reservation_time");//预约时间 1030 $reservation_time = $this->request->param("reservation_time");//预约时间
1027 $phone = $this->request->param("phone");//联系电话 1031 $phone = $this->request->param("phone");//联系电话
  1032 + $specificaddress_id = $this->request->param("specificaddress_id");//区域id
1028 $intended_driver_id = $this->request->param("intended_driver_id");//意向司机 1033 $intended_driver_id = $this->request->param("intended_driver_id");//意向司机
1029 $remarks = $this->request->param("remarks");//备注 1034 $remarks = $this->request->param("remarks");//备注
1030 $driver=Db::name("driver")->where("id",$intended_driver_id)->find(); 1035 $driver=Db::name("driver")->where("id",$intended_driver_id)->find();
@@ -1036,6 +1041,7 @@ class Car extends Base @@ -1036,6 +1041,7 @@ class Car extends Base
1036 "order_no"=>getOrderSn(), 1041 "order_no"=>getOrderSn(),
1037 "price"=>$price, 1042 "price"=>$price,
1038 "is_qrcode"=>$is_qrcode, 1043 "is_qrcode"=>$is_qrcode,
  1044 + "specificaddress_id"=>$specificaddress_id,
1039 "reservation_time"=>$reservation_time, 1045 "reservation_time"=>$reservation_time,
1040 "is_pay"=>"1",//未支付 1046 "is_pay"=>"1",//未支付
1041 "route_id"=>$route_id, 1047 "route_id"=>$route_id,
@@ -1144,10 +1150,8 @@ class Car extends Base @@ -1144,10 +1150,8 @@ class Car extends Base
1144 $indexList = array_keys($charArray); 1150 $indexList = array_keys($charArray);
1145 $itemArr = array_values($charArray); 1151 $itemArr = array_values($charArray);
1146 } 1152 }
1147 -  
1148 array_unshift($indexList, "*"); 1153 array_unshift($indexList, "*");
1149 $this->success("数据获取成功", ["indexList" => $indexList, "itemArr" => $itemArr]); 1154 $this->success("数据获取成功", ["indexList" => $indexList, "itemArr" => $itemArr]);
1150 -  
1151 } 1155 }
1152 1156
1153 1157
@@ -1208,14 +1212,15 @@ class Car extends Base @@ -1208,14 +1212,15 @@ class Car extends Base
1208 "order_no"=>getOrderSn(), 1212 "order_no"=>getOrderSn(),
1209 ]; 1213 ];
1210 $res=Db::name("order")->where("id",$order['id'])->update($data); 1214 $res=Db::name("order")->where("id",$order['id'])->update($data);
  1215 + $order=Db::name("order")->where("order_no",$order_no)->find();
1211 $userinfo = Db::name('user') 1216 $userinfo = Db::name('user')
1212 ->where(['id' => $this->auth->id]) 1217 ->where(['id' => $this->auth->id])
1213 ->field('id,wx_xcx_openid') 1218 ->field('id,wx_xcx_openid')
1214 ->find(); 1219 ->find();
1215 $notifyURI = $this->doman . '/addons/epay/api/OrderPayNtf'; 1220 $notifyURI = $this->doman . '/addons/epay/api/OrderPayNtf';
1216 $params = [ 1221 $params = [
1217 - 'amount' => $data['price'],  
1218 - 'orderid' => $data['order_no'], 1222 + 'amount' => $order['price'],
  1223 + 'orderid' => $order['order_no'],
1219 'type' => 'wechat', 1224 'type' => 'wechat',
1220 'notifyurl' => $notifyURI, 1225 'notifyurl' => $notifyURI,
1221 'method' => 'miniapp', 1226 'method' => 'miniapp',
@@ -29,6 +29,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin @@ -29,6 +29,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
29 [ 29 [
30 {checkbox: true}, 30 {checkbox: true},
31 {field: 'id', title: __('Id')}, 31 {field: 'id', title: __('Id')},
  32 + {field: 'route_id', title: __('Route_id')},
  33 + {field: 'route.name', title: __('Route.name')},
32 {field: 'specific_address', title: __('Specific_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, 34 {field: 'specific_address', title: __('Specific_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
33 {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} 35 {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
34 ] 36 ]