123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505 |
- <?php
- /**
- * 自营店铺
- ***/
- defined('InShopNC') or exit('Access Invalid!');
- class ownshopControl extends SystemControl
- {
- public function __construct()
- {
- parent::__construct();
- }
- public function indexOp()
- {
- $this->listOp();
- }
- public function listOp()
- {
- $model = model('store');
- $condition = array(
- 'is_own_shop' => 1,
- );
- $storeName = trim($_GET['store_name']);
- if (strlen($storeName) > 0) {
- $condition['store_name'] = array('like', "%$storeName%");
- Tpl::output('store_name', $storeName);
- }
- $storeList = $model->where($condition)->page(10)->select();
- $storeIds = array();
- foreach ($storeList as $s)
- $storeIds[$s['store_id']] = null;
- $storeIds = array_keys($storeIds);
- $storesWithGoods = model('goods')->where(array(
- 'store_id' => array('in', $storeIds),
- ))->field('distinct store_id')->key('store_id')->select();
- Tpl::output('store_list', $storeList);
- Tpl::output('page', $model->showpage());
- Tpl::output('storesWithGoods', $storesWithGoods);
- Tpl::showpage('ownshop.list');
- }
- public function addOp()
- {
- if (chksubmit())
- {
- $memberName = $_POST['member_name'];
- $memberPasswd = (string) $_POST['member_passwd'];
- if (strlen($memberName) < 3 || strlen($memberName) > 15
- || strlen($_POST['seller_name']) < 3 || strlen($_POST['seller_name']) > 15)
- showMessage('账号名称必须是3~15位', '', 'html', 'error');
- if (strlen($memberPasswd) < 6)
- showMessage('登录密码不能短于6位', '', 'html', 'error');
- if (!$this->checkMemberName($memberName))
- showMessage('店主账号已被占用', '', 'html', 'error');
- if (!$this->checkSellerName($_POST['seller_name']))
- showMessage('店主卖家账号名称已被其它店铺占用', '', 'html', 'error');
- try
- {
- $memberId = model('member')->addMember(array(
- 'member_name' => $memberName,
- 'member_passwd' => $memberPasswd,
- 'member_email' => '',
- ));
- }
- catch (Exception $ex)
- {
- showMessage('店主账号新增失败', '', 'html', 'error');
- }
- $storeModel = model('store');
- $saveArray = array();
- $saveArray['store_name'] = $_POST['store_name'];
- $saveArray['member_id'] = $memberId;
- $saveArray['member_name'] = $memberName;
- $saveArray['seller_name'] = $_POST['seller_name'];
- $saveArray['bind_all_gc'] = 1;
- $saveArray['store_state'] = 1;
- $saveArray['store_time'] = time();
- $saveArray['is_own_shop'] = 1;
- $storeId = $storeModel->addStore($saveArray);
- model('seller')->addSeller(array(
- 'seller_name' => $_POST['seller_name'],
- 'member_id' => $memberId,
- 'store_id' => $storeId,
- 'seller_group_id' => 0,
- 'is_admin' => 1,
- ));
- // 添加相册默认
- $album_model = Model('album');
- $album_arr = array();
- $album_arr['aclass_name'] = '默认相册';
- $album_arr['store_id'] = $storeId;
- $album_arr['aclass_des'] = '';
- $album_arr['aclass_sort'] = '255';
- $album_arr['aclass_cover'] = '';
- $album_arr['upload_time'] = time();
- $album_arr['is_default'] = '1';
- $album_model->addClass($album_arr);
- //插入店铺扩展表
- $model = Model();
- $model->table('store_extend')->insert(array('store_id'=>$storeId));
- // 删除自营店id缓存
- Model('store')->dropCachedOwnShopIds();
- $this->log("新增自营店铺: {$saveArray['store_name']}");
- showMessage('操作成功', urlAdmin('ownshop', 'list'));
- return;
- }
- Tpl::showpage('ownshop.add');
- }
- public function delOp()
- {
- $storeId = (int) $_GET['id'];
- $storeModel = model('store');
- $storeArray = $storeModel->field('is_own_shop,store_name')->find($storeId);
- if (empty($storeArray)) {
- showMessage('自营店铺不存在', '', 'html', 'error');
- }
- if (!$storeArray['is_own_shop']) {
- showMessage('不能在此删除非自营店铺', '', 'html', 'error');
- }
- $condition = array(
- 'store_id' => $storeId,
- );
- if ((int) model('goods')->getGoodsCount($condition) > 0)
- showMessage('已经发布商品的自营店铺不能被删除', '', 'html', 'error');
- // 完全删除店铺
- $storeModel->delStoreEntirely($condition);
- // 删除自营店id缓存
- Model('store')->dropCachedOwnShopIds();
- $this->log("删除自营店铺: {$storeArray['store_name']}");
- showMessage('操作成功', getReferer());
- }
- public function editOp()
- {
- $storeModel = model('store');
- $storeArray = $storeModel->find($_GET['id']);
- if (!$storeArray['is_own_shop']) {
- showMessage('不能在此管理非自营店铺', '', 'html', 'error');
- }
- if (chksubmit()) {
- if (!$this->checkSellerName($_POST['seller_name'], $_GET['id']))
- showMessage('店主卖家账号名称已被其它店铺占用', '', 'html', 'error');
- $saveArray = array();
- $saveArray['store_name'] = $_POST['store_name'];
- $saveArray['seller_name'] = $_POST['seller_name'];
- $saveArray['bind_all_gc'] = $_POST['bind_all_gc'] ? 1 : 0;
- $saveArray['store_state'] = $_POST['store_state'] ? 1 : 0;
- $saveArray['store_close_info'] = $_POST['store_close_info'];
- $storeModel->editStore($saveArray, array(
- 'store_id' => $_GET['id'],
- ));
- if ($saveArray['seller_name'] != $storeArray['seller_name']) {
- model('seller')->editSeller(array(
- 'seller_name' => $_POST['seller_name'],
- ), array(
- 'store_id' => $_GET['id'],
- 'seller_group_id' => 0,
- 'is_admin' => 1,
- ));
- }
- /* 自营店不下架商品
- if ($storeArray['bind_all_gc'] == '1' && $saveArray['bind_all_gc'] == '0' && $_POST['offshelf'] == '1') {
- // 全部商品下架
- Model('goods')->editProducesLockUp(array(
- 'goods_stateremark' => '管理员编辑经营类目',
- ), array(
- 'store_id' => $_GET['id'],
- ));
- }
- */
- // 删除自营店id缓存
- Model('store')->dropCachedOwnShopIds();
- $this->log("编辑自营店铺: {$saveArray['store_name']}");
- showMessage('操作成功', urlAdmin('ownshop', 'list'));
- }
- if (empty($storeArray))
- showMessage('店铺不存在', '', 'html', 'error');
- Tpl::output('store_array', $storeArray);
- Tpl::showpage('ownshop.edit');
- }
- public function check_seller_nameOp()
- {
- echo json_encode($this->checkSellerName($_GET['seller_name'], $_GET['id']));
- exit;
- }
- private function checkSellerName($sellerName, $storeId = 0)
- {
- // 判断store_joinin是否存在记录
- $count = (int) Model('store_joinin')->getStoreJoininCount(array(
- 'seller_name' => $sellerName,
- ));
- if ($count > 0)
- return false;
- $seller = Model('seller')->getSellerInfo(array(
- 'seller_name' => $sellerName,
- ));
- if (empty($seller))
- return true;
- if (!$storeId)
- return false;
- if ($storeId == $seller['store_id'] && $seller['seller_group_id'] == 0 && $seller['is_admin'] == 1)
- return true;
- return false;
- }
- public function check_member_nameOp()
- {
- echo json_encode($this->checkMemberName($_GET['member_name']));
- exit;
- }
- private function checkMemberName($memberName)
- {
- // 判断store_joinin是否存在记录
- $count = (int) Model('store_joinin')->getStoreJoininCount(array(
- 'member_name' => $memberName,
- ));
- if ($count > 0)
- return false;
- return ! Model('member')->getMemberCount(array(
- 'member_name' => $memberName,
- ));
- }
- public function bind_classOp()
- {
- //批量删除分类
- if (chksubmit()) {
- if (!empty($_POST['bid'])) {
- foreach ($_POST['bid'] as $bid) {
- $this->_bind_class_del($bid);
- }
- }
- }
- $store_id = intval($_GET['id']);
- $model_store = Model('store');
- $model_store_bind_class = Model('store_bind_class');
- $model_goods_class = Model('goods_class');
- $gc_list = $model_goods_class->getGoodsClassListByParentId(0);
- Tpl::output('gc_list',$gc_list);
- $store_info = $model_store->getStoreInfoByID($store_id);
- if(empty($store_info)) {
- showMessage(L('param_error'),'','','error');
- }
- Tpl::output('store_info', $store_info);
- $store_bind_class_list = $model_store_bind_class->getStoreBindClassList(array('store_id'=>$store_id), 30);
- $goods_class = Model('goods_class')->getGoodsClassIndexedListAll();
- for($i = 0, $j = count($store_bind_class_list); $i < $j; $i++) {
- $store_bind_class_list[$i]['class_1_name'] = $goods_class[$store_bind_class_list[$i]['class_1']]['gc_name'];
- $store_bind_class_list[$i]['class_2_name'] = $goods_class[$store_bind_class_list[$i]['class_2']]['gc_name'];
- $store_bind_class_list[$i]['class_3_name'] = $goods_class[$store_bind_class_list[$i]['class_3']]['gc_name'];
- }
- Tpl::output('store_bind_class_list', $store_bind_class_list);
- Tpl::output('showpage',$model_store_bind_class->showpage());
- Tpl::showpage('ownshop.bind_class');
- }
- /**
- * 添加经营类目
- */
- public function bind_class_addOp()
- {
- $store_id = intval($_POST['store_id']);
- $commis_rate = intval($_POST['commis_rate']);
- if($commis_rate < 0 || $commis_rate > 100) {
- showMessage(L('param_error'), '');
- }
- list($class_1, $class_2, $class_3) = explode(',', $_POST['goods_class']);
- $model_store_bind_class = Model('store_bind_class');
- $model_goods_class = Model('goods_class');
- $param = array();
- $param['store_id'] = $store_id;
- $param['class_1'] = $class_1;
- $param['state'] = 2;
- $param['commis_rate'] = $commis_rate;
- if (empty($class_2)) {
- //如果没选 二级
- $class_2_list = $model_goods_class->getGoodsClassList(array('gc_parent_id'=>$class_1));
- if (!empty($class_2_list)) {
- foreach ($class_2_list as $class_2_info) {
- $class_3_list = $model_goods_class->getGoodsClassList(array('gc_parent_id'=>$class_2_info['gc_id']));
- if (!empty($class_3_list)) {
- $param['class_2'] = $class_2_info['gc_id'];
- foreach ($class_3_list as $class_3_info) {
- $param['class_3'] = $class_3_info['gc_id'];
- $result = $this->_add_bind_class($param);
- }
- }
- }
- } else {
- //只有一级分类
- $param['class_2'] = $param['class_3'] = 0;
- $result = $this->_add_bind_class($param);
- }
- } else if (empty($class_3)) {
- //如果没选二没选三级
- $param['class_2'] = $class_2;
- $class_3_list = $model_goods_class->getGoodsClassList(array('gc_parent_id'=>$class_2));
- if (!empty($class_3_list)) {
- foreach ($class_3_list as $class_3_info) {
- $param['class_3'] = $class_3_info['gc_id'];
- // 检查类目是否已经存在
- $store_bind_class_info = $model_store_bind_class->getStoreBindClassInfo($param);
- if(empty($store_bind_class_info)) {
- $result = $this->_add_bind_class($param);
- }
- }
- } else {
- //二级就是最后一级
- $param['class_3'] = 0;
- $result = $this->_add_bind_class($param);
- }
- } else {
- $param['class_2'] = $class_2;
- $param['class_3'] = $class_3;
- $result = $this->_add_bind_class($param);
- }
- if($result) {
- // 删除自营店id缓存
- Model('store')->dropCachedOwnShopIds();
- $this->log('增加自营店铺经营类目,类目编号:'.$result.',店铺编号:'.$store_id);
- showMessage(L('nc_common_save_succ'), '');
- } else {
- showMessage(L('nc_common_save_fail'), '');
- }
- }
- private function _add_bind_class($param) {
- $model_store_bind_class = Model('store_bind_class');
- // 检查类目是否已经存在
- $store_bind_class_info = $model_store_bind_class->getStoreBindClassInfo($param);
- if(!empty($store_bind_class_info)) return true;
- return $model_store_bind_class->addStoreBindClass($param);
- }
- /**
- * 删除经营类目
- */
- public function bind_class_delOp()
- {
- $bid = intval($_POST['bid']);
- $result = $this->_bind_class_del($bid);
- echo json_encode($result);
- }
- private function _bind_class_del($bid)
- {
- $data = array();
- $data['result'] = true;
- $model_store_bind_class = Model('store_bind_class');
- $model_goods = Model('goods');
- $store_bind_class_info = $model_store_bind_class->getStoreBindClassInfo(array('bid' => $bid));
- if(empty($store_bind_class_info)) {
- $data['result'] = false;
- $data['message'] = '经营类目删除失败';
- return $data;
- }
- /* 自营店不下架商品
- // 商品下架
- $condition = array();
- $condition['store_id'] = $store_bind_class_info['store_id'];
- $gc_id = $store_bind_class_info['class_1'].','.$store_bind_class_info['class_2'].','.$store_bind_class_info['class_3'];
- $update = array();
- $update['goods_stateremark'] = '管理员删除经营类目';
- $condition['gc_id'] = array('in', rtrim($gc_id, ','));
- $model_goods->editProducesLockUp($update, $condition);
- */
- $result = $model_store_bind_class->delStoreBindClass(array('bid'=>$bid));
- if(!$result) {
- $data['result'] = false;
- $data['message'] = '经营类目删除失败';
- }
- // 删除自营店id缓存
- Model('store')->dropCachedOwnShopIds();
- $this->log('删除自营店铺经营类目,类目编号:'.$bid.',店铺编号:'.$store_bind_class_info['store_id']);
- return $data;
- }
- public function bind_class_updateOp()
- {
- $bid = intval($_GET['id']);
- if($bid <= 0) {
- echo json_encode(array('result'=>FALSE,'message'=>Language::get('param_error')));
- die;
- }
- $new_commis_rate = intval($_GET['value']);
- if ($new_commis_rate < 0 || $new_commis_rate >= 100) {
- echo json_encode(array('result'=>FALSE,'message'=>Language::get('param_error')));
- die;
- } else {
- $update = array('commis_rate' => $new_commis_rate);
- $condition = array('bid' => $bid);
- $model_store_bind_class = Model('store_bind_class');
- $result = $model_store_bind_class->editStoreBindClass($update, $condition);
- if($result) {
- // 删除自营店id缓存
- Model('store')->dropCachedOwnShopIds();
- $this->log('更新自营店铺经营类目,类目编号:'.$bid);
- echo json_encode(array('result'=>TRUE));
- die;
- } else {
- echo json_encode(array('result'=>FALSE,'message'=>L('nc_common_op_fail')));
- die;
- }
- }
- }
- /**
- * 验证店铺名称是否存在
- */
- public function ckeck_store_nameOp() {
- /**
- * 实例化卖家模型
- */
- $where = array();
- $where['store_name'] = $_GET['store_name'];
- if (isset($_GET['store_id'])) {
- $where['store_id'] = array('neq', $_GET['store_id']);
- }
- $store_info = Model('store')->getStoreInfo($where);
- if(!empty($store_info['store_name'])) {
- echo 'false';
- } else {
- echo 'true';
- }
- }
- }
|