| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2020/7/27
- * Time: 15:24
- */
- namespace app\backend\modules\order\controllers;
- use app\common\components\BaseController;
- use app\common\events\order\AfterOrderAddressChangeEvent;
- use app\common\exceptions\AppException;
- use app\common\exceptions\ShopException;
- use app\common\models\Address;
- use app\common\models\order\Address as OrderAddress;
- use app\common\models\order\AddressUpdateLog;
- use app\common\models\Street;
- use Illuminate\Support\Facades\DB;
- class AddressUpdateController extends BaseController
- {
- public function index()
- {
- $order_id = intval(request()->input('order_id'));
- $list = AddressUpdateLog::uniacid()->where('order_id', $order_id)->get();
- return $this->successJson('list', $list);
- }
- public function update()
- {
- $data = request()->input('data');
- $orderAddress = OrderAddress::where('order_id', $data['order_id'])->first();
- $old_address = $orderAddress->address;
- $new_address = $this->getAddressName($data);
- $createData = [
- 'uniacid' => \YunShop::app()->uniacid,
- 'user_id' => intval(\YunShop::app()->uid),
- 'order_id' => $data['order_id'],
- 'province_id' => $data['province_id'],
- 'city_id' => $data['city_id'],
- 'district_id' => $data['district_id'],
- 'street_id' => intval($data['street_id']),
- 'realname' => $data['realname'],
- 'phone' => $data['phone'],
- 'old_phone' => $orderAddress->mobile,
- 'old_name' => $orderAddress->realname,
- 'old_address' => $old_address,
- 'new_address' => $new_address,
- ];
- try {
- DB::beginTransaction();
- $updateData = [
- 'realname' => $data['realname'],
- 'mobile' => $data['phone'],
- 'address' => $new_address,
- ];
- $orderAddress->fill($updateData);
- if (!$orderAddress->save()) {
- throw new AppException('修改订单地址失败');
- }
- //保存修改记录
- $addressUpdate = new AddressUpdateLog();
- $addressUpdate->fill($createData);
- $addressUpdate->save();
- event(new AfterOrderAddressChangeEvent($addressUpdate));
- DB::commit();
- return $this->successJson('修改成功');
- }catch (AppException $e){
- DB::rollBack();
- return $this->errorJson($e->getMessage());
- }
- }
- public function getAddressName($data)
- {
- $address['province_name'] = Address::where('id',$data['province_id'])->value('areaname');
- $address['city_name'] = Address::where('id',$data['city_id'])->value('areaname');
- $address['district_name'] = Address::where('id',$data['district_id'])->value('areaname');
- if ($data['street_id']) {
- $address['street_name'] = Street::where('id', $data['street_id'])->value('areaname');
- }
- $address['address'] = $data['address'];
- return implode(' ', $address);
- }
- }
|