public function create($params) { $objMdlZiti = app::get('syslogistics')->model('ziti'); if (!area::checkArea($params['area_id'])) { throw new LogicException('请选择完整地区'); } $name = $objMdlZiti->getRow('id', ['name' => trim($params['name'])]); if ($name) { throw new LogicException('自提点名称已存在'); } $areaIds = explode(',', $params['area_id']); if (count($areaIds) == 2) { $insertData['area_state_id'] = 1; $insertData['area_city_id'] = $areaIds[0]; $insertData['area_district_id'] = $areaIds[1]; } else { $insertData['area_state_id'] = $areaIds[0]; $insertData['area_city_id'] = $areaIds[1]; $insertData['area_district_id'] = $areaIds[2]; } $insertData['name'] = trim($params['name']); $insertData['area'] = $params['area_id']; $insertData['addr'] = $params['addr']; $insertData['tel'] = $params['tel']; return $objMdlZiti->insert($insertData); }
public function get($params) { if (!area::checkArea($params['area_id'])) { throw new LogicException('请选择正确地区'); } $objMdlZiti = app::get('syslogistics')->model('ziti'); $areaIds = explode(',', $params['area_id']); if (count($areaIds) == 2) { $list = $objMdlZiti->getList('*', ['area_city_id' => $areaIds[0]]); } else { $list = $objMdlZiti->getList('*', ['area_state_id' => $areaIds[0], 'area_city_id' => $areaIds[1]]); } if (empty($list)) { return array(); } $data = array(); $tmpData = array(); foreach ($list as $key => $row) { if (count($areaIds) == 2 && $row['area_district_id'] == $areaIds[1] || $row['area_district_id'] == $areaIds[2]) { $row['area'] = area::getSelectArea($row['area'], ''); $tmpData[$key] = $row; unset($list[$key]); } else { $row['area'] = area::getSelectArea($row['area'], ''); $data[$key] = $row; } } $data = array_merge($tmpData, $data); return $data; }
public function update($params) { $objMdlZiti = app::get('syslogistics')->model('ziti'); $data = $objMdlZiti->getRow('id,name,area', ['id' => $params['id']]); if (empty($data)) { throw new LogicException('更新的自提点不存在'); } if ($params['area_id'] && $data['area'] != $params['area_id'] && !area::checkArea($params['area_id'])) { throw new LogicException('请选择完整地区'); } if (trim($params['name']) && $data['name'] != trim($params['name'])) { $name = $objMdlZiti->getRow('id', ['name' => trim($params['name'])]); if ($name && $name['id'] != $params['id']) { throw new LogicException('更新的自提点名称重复'); } $updata['name'] = trim($params['name']); } if ($params['area_id']) { $areaIds = explode(',', $params['area_id']); if (count($areaIds) == 2) { $updata['area_state_id'] = 1; $updata['area_city_id'] = $areaIds[0]; $updata['area_district_id'] = $areaIds[1]; } else { $updata['area_state_id'] = $areaIds[0]; $updata['area_city_id'] = $areaIds[1]; $updata['area_district_id'] = $areaIds[2]; } $updata['area'] = $params['area_id']; } if (trim($params['addr'])) { $updata['addr'] = $params['addr']; } if (trim($params['tel'])) { $updata['tel'] = $params['tel']; } return $objMdlZiti->update($updata, ['id' => $params['id']]); }
/** * 根据运费模板ID 和传入的重量,地区参数计算运费 * * @param int $templateId 运费模板ID * @param int $weight 重量 * @param string $areaIds 地区ID * * @return int 返回运费值 */ public function countFee($templateId, $weight, $areaIds) { if (!area::checkArea($areaIds)) { return false; } $filter = array('template_id' => $templateId, 'status' => 'on'); $templateData = $this->getRow('*', $filter); if (empty($templateData)) { return false; } $areaIdsArr = explode(',', $areaIds); foreach ($templateData['fee_conf'] as $data) { if (empty($data['area'])) { $defaultConf = $data; } else { $areaSetting = explode(',', $data['area']); $intersect = array_intersect($areaSetting, $areaIdsArr); if ($intersect) { $feeConf = $data; break; } } } $config = $feeConf ? $feeConf : $defaultConf; $fee = $this->__count($config, $weight); return $fee; }