예제 #1
0
파일: addNew.php 프로젝트: 453111208/bbc
 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);
 }
예제 #2
0
파일: list.php 프로젝트: 453111208/bbc
 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;
 }
예제 #3
0
파일: update.php 프로젝트: 453111208/bbc
 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']]);
 }
예제 #4
0
파일: dlytmpl.php 프로젝트: 453111208/bbc
 /**
  * 根据运费模板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;
 }