123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace app\data\controller\api\auth;
- use app\data\controller\api\Auth;
- use app\data\model\DataUserAddress;
- use hg\apidoc\annotation\Title;
- use think\admin\extend\CodeExtend;
- /**
- * @Title("用户收货地址管理")
- */
- class Address extends Auth
- {
- /**
- * @Title("添加收货地址")
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function set()
- {
- $data = $this->_vali([
- 'uuid.value' => $this->uuid,
- 'type.default' => 0,
- 'code.default' => '',
- 'idcode.default' => '', // 身份证号码
- 'idimg1.default' => '', // 身份证正面
- 'idimg2.default' => '', // 身份证反面
- 'type.in:0,1' => '地址状态不在范围!',
- 'name.require' => '收货姓名不能为空!',
- 'phone.mobile' => '收货手机格式错误!',
- 'phone.require' => '收货手机不能为空!',
- 'province.require' => '地址省份不能为空!',
- 'city.require' => '地址城市不能为空!',
- 'area.require' => '地址区域不能为空!',
- 'address.require' => '详情地址不能为空!',
- 'deleted.value' => 0,
- ]);
- if (empty($data['code'])) {
- unset($data['code']);
- $count = DataUserAddress::mk()->where($data)->count();
- if ($count > 0) $this->error('抱歉,该地址已经存在!');
- $data['code'] = CodeExtend::uniqidDate(20, 'A');
- if (DataUserAddress::mk()->insert($data) === false) {
- $this->error('添加地址失败!');
- }
- } else {
- $map = ['uuid' => $this->uuid, 'code' => $data['code']];
- $addr = DataUserAddress::mk()->where($map)->find();
- if (empty($addr)) $this->error('修改地址不存在!');
- DataUserAddress::mk()->where($map)->update($data);
- }
- // 去除其它默认选项
- if (isset($data['type']) && $data['type'] > 0) {
- $map = [['uuid', '=', $this->uuid], ['code', '<>', $data['code']]];
- DataUserAddress::mk()->where($map)->update(['type' => 0]);
- }
- $this->success('地址保存成功!', $this->getAddress($data['code']));
- }
- /**
- * 获取收货地址
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function get()
- {
- $query = DataUserAddress::mQuery()->withoutField('deleted');
- $query->equal('code')->where(['uuid' => $this->uuid, 'deleted' => 0]);
- $result = $query->order('type desc,id desc')->page(false, false, false, 15);
- $this->success('获取地址数据!', $result);
- }
- /**
- * 修改地址状态
- */
- public function state()
- {
- $data = $this->_vali([
- 'uuid.value' => $this->uuid,
- 'type.in:0,1' => '地址状态不在范围!',
- 'type.require' => '地址状态不能为空!',
- 'code.require' => '地址编号不能为空!',
- ]);
- // 检查地址是否存在
- $map = ['uuid' => $data['uuid'], 'code' => $data['code']];
- if (DataUserAddress::mk()->where($map)->count() < 1) {
- $this->error('修改的地址不存在!');
- }
- // 更新默认地址状态
- $data['type'] = intval($data['type']);
- DataUserAddress::mk()->where($map)->update(['type' => $data['type']]);
- // 去除其它默认选项
- if ($data['type'] > 0) {
- $map = [['uuid', '=', $this->uuid], ['code', '<>', $data['code']]];
- DataUserAddress::mk()->where($map)->update(['type' => 0]);
- }
- $this->success('默认设置成功!', $this->getAddress($data['code']));
- }
- /**
- * 删除收货地址
- */
- public function remove()
- {
- $map = $this->_vali([
- 'uuid.value' => $this->uuid,
- 'code.require' => '地址不能为空!',
- ]);
- $item = DataUserAddress::mk()->where($map)->findOrEmpty();
- if ($item->isEmpty()) $this->error('需要删除的地址不存在!');
- if ($item->save(['deleted' => 1]) !== false) {
- $this->success('删除地址成功!');
- } else {
- $this->error('删除地址失败!');
- }
- }
- /**
- * 获取指定的地址
- * @param string $code
- * @return null|array
- */
- private function getAddress(string $code): array
- {
- $map = ['code' => $code, 'uuid' => $this->uuid, 'deleted' => 0];
- return DataUserAddress::mk()->withoutField('deleted')->where($map)->findOrEmpty()->toArray();
- }
- }
|