update([ 'is_default' => 0 ], [ [ 'member_id', '=', $data[ 'member_id' ] ], [ 'type', '=', $data[ 'type' ] ] ]); // } $res = model('member_address')->add($data); $cron = new Cron(); $res = $cron->addCron(1, 1, '会员地址添加任务', 'AddCronMemberAddress', time() + 5, $res); // $count = model('member_address')->getCount([ 'member_id' => $data[ 'member_id' ] ],'id'); // if ($count == 1) { //// model('member_address')->update([ 'is_default' => 1 ], [ [ 'member_id', '=', $data[ 'member_id' ] ], [ 'id', '=', $res ], [ 'type', '=', $data[ 'type' ] ] ]); // // 设置会员地址 // model('member')->update([ // 'province_id' => $data[ 'province_id' ], // 'city_id' => $data[ 'city_id' ], // 'district_id' => $data[ 'district_id' ], // 'community_id' => $data[ 'community_id' ], // 'address' => $data[ 'address' ], // 'full_address' => $data[ 'full_address' ], // 'longitude' => $data[ 'longitude' ], // 'latitude' => $data[ 'latitude' ], // ], [ [ 'member_id', '=', $data[ 'member_id' ] ] ]); // } Cache::tag("member_address_" . $data['member_id'])->clear(); return $this->success($res); } /** * 修改会员地址 * @param array $params */ public function editMemberAddress($data) { $info = model('member_address')->getInfo(['id' => $data['id'], 'member_id' => $data['member_id']], 'type'); $type = $info['type'] ?? 1; if (!empty($data['longitude']) && !empty($data['latitude'])) { $data['type'] = 2; } else { $data['type'] = 1; if ($type == 2) { //定位地址不能修改为,非定位地址 return $this->error([], ''); } } if ($data['is_default'] == 1) { model('member_address')->update(['is_default' => 0], [['member_id', '=', $data['member_id']], ['type', '=', $data['type']]]); } $res = model('member_address')->update($data, ['id' => $data['id'], 'member_id' => $data['member_id']]); Cache::tag("member_address_" . $data['member_id'])->clear(); return $this->success($res); } /** * 删除收获地址 * @param array $condition */ public function deleteMemberAddress($condition) { $check_condition = array_column($condition, 2, 0); $member_id = isset($check_condition['member_id']) ? $check_condition['member_id'] : 0; if (empty($member_id)) { return $this->error("", "缺少必填参数会员id"); } $res = model('member_address')->delete($condition); Cache::tag("member_address_" . $member_id)->clear(); if ($res === false) { return $this->error('', 'RESULT_ERROR'); } return $this->success($res); } /** * 设置默认收货地址 * @param $id * @param $member_id * @return \multitype */ public function setMemberDefaultAddress($id, $member_id) { model('member_address')->startTrans(); try { $info = model('member_address')->getInfo(['id' => $id, 'member_id' => $member_id], 'type'); model('member_address')->update(['is_default' => 0], [['member_id', '=', $member_id], ['type', '=', $info['type']]]); $res = model('member_address')->update(['is_default' => 1], ['member_id' => $member_id, 'id' => $id]); model('member_address')->commit(); Cache::tag("member_address_" . $member_id)->clear(); return $this->success($res); } catch (\Exception $e) { model('member_address')->rollback(); return $this->error('', $e->getMessage()); } } /** * 获取详情收获地址 * @param array $condition */ public function getMemberAddressInfo($condition, $field = '*') { $check_condition = array_column($condition, 2, 0); $data = json_encode([$condition, $field]); $cache = Cache::get("member_address_getMemberAddressInfo_" . $data); if (!empty($cache)) { return $this->success($cache); } $res = model('member_address')->getInfo($condition, $field); Cache::tag("member_address_" . $check_condition['member_id'])->set("member_address_getMemberAddressInfo_" . $data, $res); return $this->success($res); } /** * 获取收获地址列表 * @param array $condition * @param string $field * @param string $order * @param string $limit * @return multitype:string mixed */ public function getMemberAddressList($condition = [], $field = '*', $order = 'is_default desc', $limit = null) { $check_condition = array_column($condition, 2, 0); $data = json_encode([$condition, $field, $order, $limit]); $cache = Cache::get("member_address_getMemberAddressList_" . $data); if (!empty($cache)) { return $this->success($cache); } $list = model('member_address')->getList($condition, $field, $order, '', '', '', $limit); Cache::tag("member_address_" . $check_condition['member_id'])->set("member_address_getMemberAddressList_" . $data, $list); return $this->success($list); } /** * 获取收获地址分页列表 * @param array $condition * @param int $page * @param int $page_size * @param string $order * @param string $field * @return \multitype */ public function getMemberAddressPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'is_default desc,id desc', $field = 'id, member_id, name, mobile, telephone, address, full_address, is_default, type') { $check_condition = array_column($condition, 2, 0); $data = json_encode([$condition, $page, $page_size, $order, $field]); $cache = Cache::get("member_address_getMemberAddressList_" . $data); if (!empty($cache)) { return $this->success($cache); } $list = model('member_address')->pageList($condition, $field, $order, $page, $page_size); Cache::tag("member_address_" . $check_condition['member_id'])->set("member_address_getMemberAddressPageList_" . $data, $list); return $this->success($list); } //获取默认地址 public function getMemberDefault($member_id) { return model('member_address')->getInfo(['member_id' => $member_id, 'is_default' => 1, 'type' => 1], 'id'); } }