Files
advertising/application/models/admin/Vacancy_model.php

274 lines
5.7 KiB
PHP
Raw Permalink Normal View History

2019-04-11 15:54:34 +08:00
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Vacancy_model extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->database();
}
/*
解析广告位信息
*/
public function setVacancyMsg($row)
{
$where = array('id' => $row->cityid);
$cityinfor = $this->Db_model->getSpecificData("city",$where);
$city = "";
if (count($cityinfor) > 0)
$city = $cityinfor[0]->name;
$where = array('id' => $row->areaid);
$areainfor = $this->Db_model->getSpecificData("area",$where);
$area = "";
if (count($areainfor) > 0)
$area = $areainfor[0]->name;
$where = array('id' => $row->communityid);
$communityinfor = $this->Db_model->getSpecificData("community",$where);
$community = "";
if (count($communityinfor) > 0)
$community = $communityinfor[0]->name;
$where = array('id' => $row->signid);
$adinfor = $this->Db_model->getSpecificData("advertisement",$where);
$adnumber = "";
if (count($adinfor) > 0)
$adnumber = $adinfor[0]->number;
$data=array(
'id' => $row->id,
'number' => $row->number,
'signid' => $row->signid,
'adnumber' => $adnumber,
'cityid' => $row->cityid,
'city' => $city,
'areaid' => $row->areaid,
'area' => $area,
'communityid' => $row->communityid,
'community' => $community,
'cost' => $row->cost,
'design' => $row->design,
'addtime' => $row->addtime,
'state' => $row->state
);
return $data;
}
/*
接收广告位信息
*/
public function receiveVacancyMsg()
{
date_default_timezone_set("Asia/Shanghai");
$number = isset($_POST['vnumber'])?$_POST['vnumber']:"";
$cost = isset($_POST['vcost'])?$_POST['vcost']:"";
$design = isset($_POST['vdesign'])?$_POST['vdesign']:"";
$signid = isset($_POST['adid'])?$_POST['adid']:"";
$where = array('id' => $signid);
$adinfor = $this->Db_model->getSpecificData("advertisement",$where);
$cityid = "";
$areaid = "";
$communityid = "";
if (count($adinfor) > 0)
{
$cityid = $adinfor[0]->cityid;
$areaid = $adinfor[0]->areaid;
$communityid = $adinfor[0]->communityid;
}
$data = array(
'number' => $number,
'signid' => $signid,
'cityid' => $cityid,
'areaid' => $areaid,
'communityid' => $communityid,
'cost' => $cost,
'design' => $design,
'addtime' => date("m/d/Y")
);
return $data;
}
/*
取广告位
$type = 0
$type = 1 非空
*/
public function getVacancy($id, $type = 0)
{
$where = array('signid' => $id);
$infor = $this->Db_model->getSpecificData("vacancy",$where);
$data = array();
if (count($infor) <= 0)
{
return $data;
}
foreach ($infor as $row)
{
$state = $row->state;
if ($state == $type)
{
$vid = $row->id;
$tmp = $this->setVacancyMsg($row);
$tmp['surplus'] = $this->getDay($vid);
array_push($data,$tmp);
}
}
return $data;
}
/*
设置广告位状态
*/
public function setState($vid,$state)
{
$where = array('id' => $vid);
$data = array('state' => $state);
$this->Db_model->updateData("vacancy",$data,$where);
}
/*
更新广告位的当前订单(结束 / 退钱)
*/
public function updateOrder($vid, $oid, $type="add")
{
$where = array('id' => $vid);
$infor = $this->Db_model->getSpecificData("vacancy",$where);
$list = "";
if (count($infor) > 0)
{
$list = $infor[0]->orderid;
}
$arr = array();
if ($list != "" && $list != 0)
$arr = explode("_", $list);
if ($type == "add")
{
$arr[] = $oid;
}else if ($type == "remove")
{
$tmp = array();
foreach($arr as $k=>$v)
{
if ($v == $oid)
{
$_i = ($k-1) >= 0 ? ($k-1) : 0;
$tmp = array_splice($arr, $_i);
foreach($tmp as $i=>$j)
{
$_data = array('state' => 3);
$_where = array('id' => $j);
$this->Db_model->updateData("reserve",$_data,$_where);
}
break;
}
}
}
$data = array('orderid' => implode("_",$arr));
$this->Db_model->updateData("vacancy",$data,$where);
return count($arr);
}
/*
取广告位剩余时间
$vid:广告位id
*/
public function getDay($vid)
{
date_default_timezone_set("Asia/Shanghai");
$day = 0;
$where = array('id' => $vid);
$infor = $this->Db_model->getSpecificData("vacancy",$where);
if (count($infor) <= 0)
{
$day = 0;
}else
{
$_orderid = $infor[0]->orderid;
$_arr = explode("_", $_orderid);
$_len = count($_arr);
$_oid = $_arr[$_len - 1];
$where = array('id' => $_oid);
$infor = $this->Db_model->getSpecificData("reserve",$where);
if (count($infor) <= 0)
return ;
$_endtime = $infor[0]->endtime;
if ($_endtime != 0 && $_endtime != "")
{
$_now = date("m/d/Y");
$time1 = strtotime($_now);
$time2 = strtotime($_endtime);
$_time = (($time2-$time1)/3600/24);
if ($_time >= 0)
{
$day = $_time;
}
else
$day = 0;
}else
{
$day = 0;
}
}
return $day;
}
/*
取广告位到期时间
$vid:广告位id
*/
public function getEndTime($vid)
{
date_default_timezone_set("Asia/Shanghai");
$day = 0;
$where = array('id' => $vid);
$infor = $this->Db_model->getSpecificData("vacancy",$where);
if (count($infor) <= 0)
{
$day = 0;
//过期制动修改
//$data = array('state' => 3);
// $this->Db_model->updateData("reserve",$where);
}else
{
$_orderid = $infor[0]->orderid;
$_arr = explode("_", $_orderid);
$_len = count($_arr);
$_oid = $_arr[$_len - 1];
$where = array('id' => $_oid);
$infor = $this->Db_model->getSpecificData("reserve",$where);
if (count($infor) <= 0)
$day = 0;
else
{
$_endtime = $infor[0]->endtime;
$day = $_endtime;
}
}
return $day;
}
}