| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
- declare (strict_types=1);
- namespace app\api\controller;
- use app\BaseController;
- use app\model\api\UserAddress;
- use app\Request;
- use library\services\UtilService;
- use think\facade\Db;
- class Address extends BaseController
- {
- /**
- * 获取地址列表
- * @param Request $request
- */
- public function list(Request $request)
- {
- $list = (new UserAddress())->getAddressList($request->user['uid']);
- return app('json')->success($list);
- }
- /**
- * 获取地址详情
- * @param Request $request
- */
- public function detail(Request $request)
- {
- $post = UtilService::getMore([
- ['id', '', 'empty', '参数错误'],
- ], $request);
- $address = Db::name('user_address')
- ->where('id', $post['id'])
- ->where('uid', $request->user['uid'])
- ->find();
- if (!$address) {
- return app('json')->fail('地址不存在');
- }
- return app('json')->success($address);
- }
- /**
- * 添加地址
- * @param Request $request
- */
- public function add(Request $request)
- {
- $post = UtilService::getMore([
- ['real_name', '', 'empty', '请输入收货人姓名'],
- ['phone', '', 'empty', '请输入联系电话'],
- ['province', '', 'empty', '请选择省份'],
- ['city', '', 'empty', '请选择城市'],
- ['district', '', 'empty', '请选择区县'],
- ['detail', '', 'empty', '请输入详细地址'],
- ['is_default', 0],
- ], $request);
- // 验证手机号
- if (!preg_match('/^1[3-9]\d{9}$/', $post['phone'])) {
- return app('json')->fail('手机号格式不正确');
- }
- $data = [
- 'uid' => $request->user['uid'],
- 'real_name' => $post['real_name'],
- 'phone' => $post['phone'],
- 'province' => $post['province'],
- 'city' => $post['city'],
- 'district' => $post['district'],
- 'detail' => $post['detail'],
- 'is_default' => $post['is_default'] == 1 ? 1 : 0,
- 'time' => time(),
- ];
- // 如果设置为默认地址,先取消其他默认地址
- if ($data['is_default'] == 1) {
- Db::name('user_address')->where('uid', $request->user['uid'])->update(['is_default' => 0]);
- }
- $id = Db::name('user_address')->insertGetId($data);
- if ($id) {
- return app('json')->success('添加成功');
- } else {
- return app('json')->fail('添加失败');
- }
- }
- /**
- * 编辑地址
- * @param Request $request
- */
- public function edit(Request $request)
- {
- $post = UtilService::getMore([
- ['id', '', 'empty', '参数错误'],
- ['real_name', '', 'empty', '请输入收货人姓名'],
- ['phone', '', 'empty', '请输入联系电话'],
- ['province', '', 'empty', '请选择省份'],
- ['city', '', 'empty', '请选择城市'],
- ['district', '', 'empty', '请选择区县'],
- ['detail', '', 'empty', '请输入详细地址'],
- ['is_default', 0],
- ], $request);
- // 验证手机号
- if (!preg_match('/^1[3-9]\d{9}$/', $post['phone'])) {
- return app('json')->fail('手机号格式不正确');
- }
- $data = [
- 'real_name' => $post['real_name'],
- 'phone' => $post['phone'],
- 'province' => $post['province'],
- 'city' => $post['city'],
- 'district' => $post['district'],
- 'detail' => $post['detail'],
- 'is_default' => $post['is_default'] == 1 ? 1 : 0,
- ];
- // 如果设置为默认地址,先取消其他默认地址
- if ($data['is_default'] == 1) {
- Db::name('user_address')->where('uid', $request->user['uid'])->update(['is_default' => 0]);
- }
- $result = Db::name('user_address')
- ->where('id', $post['id'])
- ->where('uid', $request->user['uid'])
- ->update($data);
- if ($result) {
- return app('json')->success('修改成功');
- } else {
- return app('json')->fail('修改失败');
- }
- }
- /**
- * 删除地址
- * @param Request $request
- */
- public function delete(Request $request)
- {
- $post = UtilService::getMore([
- ['id', '', 'empty', '参数错误'],
- ], $request);
- $result = Db::name('user_address')
- ->where('id', $post['id'])
- ->where('uid', $request->user['uid'])
- ->delete();
- if ($result) {
- return app('json')->success('删除成功');
- } else {
- return app('json')->fail('删除失败');
- }
- }
- /**
- * 设置默认地址
- * @param Request $request
- */
- public function setDefault(Request $request)
- {
- $post = UtilService::getMore([
- ['id', '', 'empty', '参数错误'],
- ], $request);
- $result = (new UserAddress())->setDefault($post['id'], $request->user['uid']);
- if ($result) {
- return app('json')->success('设置成功');
- } else {
- return app('json')->fail('设置失败');
- }
- }
- }
|