<?php
namespace eapie\source\request\brand;
use eapie\main;
use eapie\error;
class admin extends \eapie\source\request\brand
{
public function api_add($data = array())
{
object(parent::REQUEST_ADMIN)->check(parent::AUTHORITY_BRAND_ADD);
object(parent::ERROR)->check($data, 'brand_name', parent::TABLE_BRAND, array('args'));
object(parent::ERROR)->check($data, 'brand_info', parent::TABLE_BRAND, array('args'));
object(parent::ERROR)->check($data, 'brand_sort', parent::TABLE_BRAND, array('args'));
object(parent::ERROR)->check($data, 'brand_state', parent::TABLE_BRAND, array('args'));
object(parent::ERROR)->check($data, 'brand_json', parent::TABLE_BRAND, array('args'));
$whitelist = array(
'brand_name',
'brand_info',
'brand_json',
'brand_sort',
'brand_state',
);
$insert_data = cmd(array($data, $whitelist), 'arr whitelist');
if (!empty($_FILES)) {
$qiniu_image = object(parent::REQUEST_APPLICATION)->qiniu_image_upload();
$insert_data['brand_logo_image_id'] = $qiniu_image['image_id'];
}
$insert_data['brand_id'] = object(parent::TABLE_BRAND)->get_unique_id();
$insert_data['user_id'] = $_SESSION['user_id'];
$insert_data['brand_insert_time'] = time();
if (object(parent::TABLE_BRAND)->insert($insert_data)) {
object(parent::TABLE_ADMIN_LOG)->insert($data, $insert_data);
return $insert_data['brand_id'];
} else {
if (!empty($qiniu_image))
object(parent::REQUEST_APPLICATION)->qiniu_image_remove($qiniu_image);
throw new error('操作失败');
}
}
public function api_remove($input = array())
{
object(parent::REQUEST_ADMIN)->check(parent::AUTHORITY_BRAND_REMOVE);
object(parent::ERROR)->check($input, 'brand_id', parent::TABLE_BRAND, array('args'));
$original = object(parent::TABLE_BRAND)->find($input['brand_id']);
if (empty($original))
throw new error('数据不存在');
if (object(parent::TABLE_BRAND)->remove($input['brand_id'])) {
if (!empty($original['brand_logo_image_id']))
object(parent::REQUEST_APPLICATION)->qiniu_image_remove(array('image_id' => $original['brand_logo_image_id']));
object(parent::TABLE_ADMIN_LOG)->insert($input, $original);
return $input['brand_id'];
} else {
throw new error('删除失败');
}
}
public function api_edit($data = array())
{
object(parent::REQUEST_ADMIN)->check(parent::AUTHORITY_BRAND_EDIT);
object(parent::ERROR)->check($input, 'brand_id', parent::TABLE_BRAND, array('args'));
if (isset($input['brand_name']))
object(parent::ERROR)->check($data, 'brand_name', parent::TABLE_BRAND, array('args'));
if (isset($input['brand_info']))
object(parent::ERROR)->check($data, 'brand_info', parent::TABLE_BRAND, array('args'));
if (isset($input['brand_sort']))
object(parent::ERROR)->check($data, 'brand_sort', parent::TABLE_BRAND, array('args'));
if (isset($input['brand_state']))
object(parent::ERROR)->check($data, 'brand_state', parent::TABLE_BRAND, array('args'));
if (isset($input['brand_json']))
object(parent::ERROR)->check($data, 'brand_json', parent::TABLE_BRAND, array('args'));
$original = object(parent::TABLE_BRAND)->find($input['brand_id']);
if (empty($original))
throw new error('数据不存在');
$whitelist = array(
'brand_name',
'brand_info',
'brand_json',
'brand_sort',
'brand_state',
);
$update_data = cmd(array($data, $whitelist), 'arr whitelist');
foreach ($update_data as $key => &$val) {
if (isset($original[$key]) && $original[$key] == $val)
unset($update_data[$key]);
}
if (!empty($_FILES)) {
$qiniu_image = object(parent::REQUEST_APPLICATION)->qiniu_image_upload();
$update_data['brand_logo_image_id'] = $qiniu_image['image_id'];
}
if (empty($update_data))
throw new error('没有需要更新的数据');
$update_data['brand_update_time'] = time();
$update_where = array(array('brand_id=[+]', $input['brand_id']));
if (object(parent::TABLE_BRAND)->update($update_where, $update_data) ){
if (!empty($original['brand_logo_image_id']) && !empty($qiniu_image)) {
$qiniu_image['image_id'] = $original['brand_logo_image_id'];
object(parent::REQUEST_APPLICATION)->qiniu_image_remove($qiniu_image);
}
object(parent::TABLE_ADMIN_LOG)->insert($input, $update_data);
return $data['brand_id'];
} else {
if (!empty($qiniu_image))
object(parent::REQUEST_APPLICATION)->qiniu_image_remove($qiniu_image);
throw new error('操作失败');
}
}
public function api_list($input = array())
{
object(parent::REQUEST_ADMIN)->check(parent::AUTHORITY_BRAND_READ);
$config = array(
'orderby' => array(),
'where' => array(),
'limit' => object(parent::REQUEST)->limit($input, parent::REQUEST_ADMIN),
);
$config["orderby"] = object(parent::REQUEST)->orderby($input, array(
'name_desc' => array('brand_name', true),
'name_asc' => array('brand_name', false),
'state_desc' => array('brand_state', true),
'state_asc' => array('brand_state', false),
'insert_time_desc' => array('brand_insert_time', true),
'insert_time_asc' => array('brand_insert_time', false),
'update_time_desc' => array('brand_update_time', true),
'update_time_asc' => array('brand_update_time', false),
'sort_desc' => array('brand_sort', true),
'sort_asc' => array('brand_sort', false),
));
$config['orderby'][] = array('b.brand_id', false);
if (isset($input['search']['brand_name']) && is_string($input['search']['brand_name'])) {
$config['where'][] = array('[and] b.brand_name LIKE "%[-]%"', $data['search']['brand_name']);
}
if (isset($input['search']['brand_id']) && is_string($input['search']['brand_id'])) {
$config['where'][] = array('[and] b.brand_id=[+]', $data['search']['brand_id']);
}
return object(parent::TABLE_BRAND)->select_page($config);
}
public function api_get($input = array())
{
object(parent::REQUEST_ADMIN)->check(parent::AUTHORITY_BRAND_READ);
object(parent::ERROR)->check($input, 'brand_id', parent::TABLE_BRAND, array('args'));
$data = object(parent::TABLE_TYPE)->find($input['brand_id']);
if (empty($data))
throw new error('数据不存在');
return $data;
}
public function api_edit_check()
{
object(parent::REQUEST_ADMIN)->check(parent::AUTHORITY_BRAND_EDIT);
return true;
}
}