groupbuy.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  1. <?php
  2. /**
  3. * 抢购管理
  4. *
  5. *
  6. *
  7. ***/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class groupbuyControl extends SystemControl{
  10. public function __construct(){
  11. parent::__construct();
  12. Language::read('groupbuy');
  13. //如果是执行开启抢购操作,直接返回
  14. if ($_GET['groupbuy_open'] == 1) return true;
  15. //检查抢购功能是否开启
  16. if (C('groupbuy_allow') != 1){
  17. $url = array(
  18. array(
  19. 'url'=>'index.php?act=dashboard&op=welcome',
  20. 'msg'=>Language::get('close'),
  21. ),
  22. array(
  23. 'url'=>'index.php?act=groupbuy&op=groupbuy_template_list&groupbuy_open=1',
  24. 'msg'=>Language::get('open'),
  25. ),
  26. );
  27. showMessage(Language::get('admin_groupbuy_unavailable'),$url,'html','succ',1,6000);
  28. }
  29. }
  30. public function indexOp() {
  31. $this->groupbuy_listOp();
  32. }
  33. /**
  34. * 进行中抢购列表,只可推荐
  35. *
  36. */
  37. public function groupbuy_listOp(){
  38. $model_groupbuy = Model('groupbuy');
  39. $condition = array();
  40. if(!empty($_GET['groupbuy_name'])) {
  41. $condition['groupbuy_name'] = array('like', '%'.$_GET['groupbuy_name'].'%');
  42. }
  43. if(!empty($_GET['store_name'])) {
  44. $condition['store_name'] = array('like', '%'.$_GET['store_name'].'%');
  45. }
  46. if(!empty($_GET['groupbuy_state'])) {
  47. $condition['state'] = $_GET['groupbuy_state'];
  48. }
  49. $groupbuy_list = $model_groupbuy->getGroupbuyExtendList($condition, 10);
  50. Tpl::output('groupbuy_list',$groupbuy_list);
  51. Tpl::output('show_page',$model_groupbuy->showpage());
  52. Tpl::output('groupbuy_state_array', $model_groupbuy->getGroupbuyStateArray());
  53. $this->show_menu('groupbuy_list');
  54. // 输出自营店铺IDS
  55. Tpl::output('flippedOwnShopIds', array_flip(model('store')->getOwnShopIds()));
  56. Tpl::showpage('groupbuy.list');
  57. }
  58. /**
  59. * 审核通过
  60. */
  61. public function groupbuy_review_passOp(){
  62. $groupbuy_id = intval($_POST['groupbuy_id']);
  63. $model_groupbuy = Model('groupbuy');
  64. $result = $model_groupbuy->reviewPassGroupbuy($groupbuy_id);
  65. if($result) {
  66. $this->log('通过抢购活动申请,抢购编号'.$groupbuy_id,null);
  67. // 添加队列
  68. $groupbuy_info = $model_groupbuy->getGroupbuyInfo(array('groupbuy_id' => $groupbuy_id));
  69. $this->addcron(array('exetime' => $groupbuy_info['start_time'], 'exeid' => $groupbuy_info['goods_commonid'], 'type' => 5));
  70. $this->addcron(array('exetime' => $groupbuy_info['end_time'], 'exeid' => $groupbuy_info['goods_commonid'], 'type' => 6));
  71. showMessage(L('nc_common_op_succ'), '');
  72. } else {
  73. showMessage(L('nc_common_op_fail'), '');
  74. }
  75. }
  76. /**
  77. * 审核失败
  78. */
  79. public function groupbuy_review_failOp(){
  80. $groupbuy_id = intval($_POST['groupbuy_id']);
  81. $model_groupbuy = Model('groupbuy');
  82. $result = $model_groupbuy->reviewFailGroupbuy($groupbuy_id);
  83. if($result) {
  84. $this->log('拒绝抢购活动申请,抢购编号'.$groupbuy_id,null);
  85. showMessage(L('nc_common_op_succ'), '');
  86. } else {
  87. showMessage(L('nc_common_op_fail'), '');
  88. }
  89. }
  90. /**
  91. * 取消
  92. */
  93. public function groupbuy_cancelOp() {
  94. $groupbuy_id = intval($_POST['groupbuy_id']);
  95. $model_groupbuy = Model('groupbuy');
  96. $result = $model_groupbuy->cancelGroupbuy($groupbuy_id);
  97. if($result) {
  98. $this->log('取消抢购活动,抢购编号'.$groupbuy_id,null);
  99. showMessage(L('nc_common_op_succ'), '');
  100. } else {
  101. showMessage(L('nc_common_op_fail'), '');
  102. }
  103. }
  104. /**
  105. * 删除
  106. */
  107. public function groupbuy_delOp(){
  108. $groupbuy_id = intval($_POST['groupbuy_id']);
  109. $model_groupbuy = Model('groupbuy');
  110. $result = $model_groupbuy->delGroupbuy(array('groupbuy_id' => $groupbuy_id));
  111. if($result) {
  112. $this->log('删除抢购活动,抢购编号'.$groupbuy_id,null);
  113. showMessage(L('nc_common_op_succ'), '');
  114. } else {
  115. showMessage(L('nc_common_op_fail'), '');
  116. }
  117. }
  118. /**
  119. * ajax修改抢购信息
  120. */
  121. public function ajaxOp(){
  122. $result = true;
  123. $update_array = array();
  124. $where_array = array();
  125. switch ($_GET['branch']){
  126. case 'class_sort':
  127. $model= Model('groupbuy_class');
  128. $update_array['sort'] = $_GET['value'];
  129. $where_array['class_id'] = $_GET['id'];
  130. $result = $model->update($update_array,$where_array);
  131. // 删除抢购分类缓存
  132. Model('groupbuy')->dropCachedData('groupbuy_classes');
  133. break;
  134. case 'class_name':
  135. $model= Model('groupbuy_class');
  136. $update_array['class_name'] = $_GET['value'];
  137. $where_array['class_id'] = $_GET['id'];
  138. $result = $model->update($update_array,$where_array);
  139. // 删除抢购分类缓存
  140. Model('groupbuy')->dropCachedData('groupbuy_classes');
  141. $this->log(L('groupbuy_class_edit_success').'[ID:'.$_GET['id'].']', null);
  142. break;
  143. case 'recommended':
  144. $model= Model('groupbuy');
  145. $update_array['recommended'] = $_GET['value'];
  146. $where_array['groupbuy_id'] = $_GET['id'];
  147. $result = $model->editGroupbuy($update_array, $where_array);
  148. break;
  149. }
  150. if($result) {
  151. echo 'true';exit;
  152. }
  153. else {
  154. echo 'false';exit;
  155. }
  156. }
  157. /**
  158. * 套餐管理
  159. **/
  160. public function groupbuy_quotaOp() {
  161. $model_groupbuy_quota = Model('groupbuy_quota');
  162. $condition = array();
  163. $condition['store_name'] = array('like', '%'.$_GET['store_name'].'%');
  164. $list = $model_groupbuy_quota->getGroupbuyQuotaList($condition, 10, 'end_time desc');
  165. Tpl::output('list',$list);
  166. Tpl::output('show_page',$model_groupbuy_quota->showpage());
  167. $this->show_menu('groupbuy_quota');
  168. Tpl::showpage('groupbuy_quota.list');
  169. }
  170. /**
  171. * 抢购类别列表
  172. */
  173. public function class_listOp() {
  174. $model_groupbuy_class = Model('groupbuy_class');
  175. $param = array();
  176. $param['order'] = 'sort asc';
  177. $groupbuy_class_list = $model_groupbuy_class->getTreeList($param);
  178. $this->show_menu('class_list');
  179. Tpl::output('list',$groupbuy_class_list);
  180. Tpl::showpage('groupbuy_class.list');
  181. }
  182. /**
  183. * 添加抢购分类页面
  184. */
  185. public function class_addOp() {
  186. $model_groupbuy_class = Model('groupbuy_class');
  187. $param = array();
  188. $param['order'] = 'sort asc';
  189. $param['class_parent_id'] = 0;
  190. $groupbuy_class_list = $model_groupbuy_class->getList($param);
  191. Tpl::output('list',$groupbuy_class_list);
  192. $this->show_menu('class_add');
  193. Tpl::output('parent_id',$_GET['parent_id']);
  194. Tpl::showpage('groupbuy_class.add');
  195. }
  196. /**
  197. * 保存添加的抢购类别
  198. */
  199. public function class_saveOp() {
  200. $class_id = intval($_POST['class_id']);
  201. $param = array();
  202. $param['class_name'] = trim($_POST['input_class_name']);
  203. if(empty($param['class_name'])) {
  204. showMessage(Language::get('class_name_error'),'');
  205. }
  206. $param['sort'] = intval($_POST['input_sort']);
  207. $param['class_parent_id'] = intval($_POST['input_parent_id']);
  208. $model_groupbuy_class = Model('groupbuy_class');
  209. // 删除抢购分类缓存
  210. Model('groupbuy')->dropCachedData('groupbuy_classes');
  211. if(empty($class_id)) {
  212. //新增
  213. if($model_groupbuy_class->save($param)) {
  214. $this->log(L('groupbuy_class_add_success').'[ID:'.$class_id.']', null);
  215. showMessage(Language::get('groupbuy_class_add_success'),'index.php?act=groupbuy&op=class_list');
  216. }
  217. else {
  218. showMessage(Language::get('groupbuy_class_add_fail'),'index.php?act=groupbuy&op=class_list');
  219. }
  220. }
  221. else {
  222. //编辑
  223. if($model_groupbuy_class->update($param,array('class_id'=>$class_id))) {
  224. $this->log(L('groupbuy_class_edit_success').'[ID:'.$class_id.']', null);
  225. showMessage(Language::get('groupbuy_class_edit_success'),'index.php?act=groupbuy&op=class_list');
  226. }
  227. else {
  228. showMessage(Language::get('groupbuy_class_edit_fail'),'index.php?act=groupbuy&op=class_list');
  229. }
  230. }
  231. }
  232. /**
  233. * 删除抢购类别
  234. */
  235. public function class_dropOp() {
  236. $class_id = trim($_POST['class_id']);
  237. if(empty($class_id)) {
  238. showMessage(Language::get('param_error'),'');
  239. }
  240. $model_groupbuy_class = Model('groupbuy_class');
  241. //获得所有下级类别编号
  242. $all_class_id = $model_groupbuy_class->getAllClassId(explode(',',$class_id));
  243. $param = array();
  244. $param['in_class_id'] = implode(',',$all_class_id);
  245. if($model_groupbuy_class->drop($param)) {
  246. // 删除抢购分类缓存
  247. Model('groupbuy')->dropCachedData('groupbuy_classes');
  248. $this->log(L('groupbuy_class_drop_success').'[ID:'.$param['in_class_id'].']',null);
  249. showMessage(Language::get('groupbuy_class_drop_success'),'');
  250. }
  251. else {
  252. showMessage(Language::get('groupbuy_class_drop_fail'),'');
  253. }
  254. }
  255. /**
  256. * 抢购价格区间列表
  257. */
  258. public function price_listOp() {
  259. $model= Model('groupbuy_price_range');
  260. $groupbuy_price_list = $model->getList();
  261. Tpl::output('list',$groupbuy_price_list);
  262. $this->show_menu('price_list');
  263. Tpl::showpage('groupbuy_price.list');
  264. }
  265. /**
  266. * 添加抢购价格区间页面
  267. */
  268. public function price_addOp() {
  269. $this->show_menu('price_add');
  270. Tpl::showpage('groupbuy_price.add');
  271. }
  272. /**
  273. * 编辑抢购价格区间页面
  274. */
  275. public function price_editOp() {
  276. $range_id = intval($_GET['range_id']);
  277. if(empty($range_id)) {
  278. showMessage(Language::get('param_error'),'');
  279. }
  280. $model = Model('groupbuy_price_range');
  281. $price_info = $model->getOne($range_id);
  282. if(empty($price_info)) {
  283. showMessage(Language::get('param_error'),'');
  284. }
  285. Tpl::output('price_info',$price_info);
  286. $this->show_menu('price_edit');
  287. Tpl::showpage('groupbuy_price.add');
  288. }
  289. /**
  290. * 保存添加的抢购价格区间
  291. */
  292. public function price_saveOp() {
  293. $range_id = intval($_POST['range_id']);
  294. $param = array();
  295. $param['range_name'] = trim($_POST['range_name']);
  296. if(empty($param['range_name'])) {
  297. showMessage(Language::get('range_name_error'),'');
  298. }
  299. $param['range_start'] = intval($_POST['range_start']);
  300. $param['range_end'] = intval($_POST['range_end']);
  301. $model = Model('groupbuy_price_range');
  302. if(empty($range_id)) {
  303. //新增
  304. if($model->save($param)) {
  305. dkcache('groupbuy_price');
  306. $this->log(L('groupbuy_price_range_add_success').'['.$_POST['range_name'].']',null);
  307. showMessage(Language::get('groupbuy_price_range_add_success'),'index.php?act=groupbuy&op=price_list');
  308. }
  309. else {
  310. showMessage(Language::get('groupbuy_price_range_add_fail'),'index.php?act=groupbuy&op=price_list');
  311. }
  312. }
  313. else {
  314. //编辑
  315. if($model->update($param,array('range_id'=>$range_id))) {
  316. dkcache('groupbuy_price');
  317. $this->log(L('groupbuy_price_range_edit_success').'['.$_POST['range_name'].']',null);
  318. showMessage(Language::get('groupbuy_price_range_edit_success'),'index.php?act=groupbuy&op=price_list');
  319. }
  320. else {
  321. showMessage(Language::get('groupbuy_price_range_edit_fail'),'index.php?act=groupbuy&op=price_list');
  322. }
  323. }
  324. }
  325. /**
  326. * 删除抢购价格区间
  327. */
  328. public function price_dropOp() {
  329. $range_id = trim($_POST['range_id']);
  330. if(empty($range_id)) {
  331. showMessage(Language::get('param_error'),'');
  332. }
  333. $model = Model('groupbuy_price_range');
  334. $param = array();
  335. $param['in_range_id'] = "'".implode("','", explode(',', $range_id))."'";
  336. if($model->drop($param)) {
  337. dkcache('groupbuy_price');
  338. $this->log(L('groupbuy_price_range_drop_success').'[ID:'.$range_id.']',null);
  339. showMessage(Language::get('groupbuy_price_range_drop_success'),'');
  340. }
  341. else {
  342. showMessage(Language::get('groupbuy_price_range_drop_fail'),'');
  343. }
  344. }
  345. /**
  346. * 设置
  347. **/
  348. public function groupbuy_settingOp() {
  349. $model_setting = Model('setting');
  350. $setting = $model_setting->GetListSetting();
  351. Tpl::output('setting',$setting);
  352. $this->show_menu('groupbuy_setting');
  353. Tpl::showpage('groupbuy.setting');
  354. }
  355. public function groupbuy_setting_saveOp() {
  356. $groupbuy_price = intval($_POST['groupbuy_price']);
  357. if($groupbuy_price < 0) {
  358. $groupbuy_price = 0;
  359. }
  360. $groupbuy_review_day = intval($_POST['groupbuy_review_day']);
  361. if($groupbuy_review_day< 0) {
  362. $groupbuy_review_day = 0;
  363. }
  364. $model_setting = Model('setting');
  365. $update_array = array();
  366. $update_array['groupbuy_price'] = $groupbuy_price;
  367. $update_array['groupbuy_review_day'] = $groupbuy_review_day;
  368. $result = $model_setting->updateSetting($update_array);
  369. if ($result){
  370. $this->log('修改抢购套餐价格为'.$groupbuy_price.'元');
  371. showMessage(Language::get('nc_common_op_succ'),'');
  372. }else {
  373. showMessage(Language::get('nc_common_op_fail'),'');
  374. }
  375. }
  376. /**
  377. * 幻灯片设置
  378. */
  379. public function sliderOp()
  380. {
  381. $model_setting = Model('setting');
  382. if (chksubmit()) {
  383. $update = array();
  384. if (!empty($_FILES['live_pic1']['name'])) {
  385. $upload = new UploadFile();
  386. $upload->set('default_dir',ATTACH_LIVE);
  387. $result = $upload->upfile('live_pic1');
  388. if ($result) {
  389. $update['live_pic1'] = $upload->file_name;
  390. }else {
  391. showMessage($upload->error, '', '', 'error');
  392. }
  393. }
  394. if (!empty($_POST['live_link1'])) {
  395. $update['live_link1'] = $_POST['live_link1'];
  396. }
  397. if (!empty($_FILES['live_pic2']['name'])) {
  398. $upload = new UploadFile();
  399. $upload->set('default_dir',ATTACH_LIVE);
  400. $result = $upload->upfile('live_pic2');
  401. if ($result) {
  402. $update['live_pic2'] = $upload->file_name;
  403. } else {
  404. showMessage($upload->error, '', '', 'error');
  405. }
  406. }
  407. if (!empty($_POST['live_link2'])) {
  408. $update['live_link2'] = $_POST['live_link2'];
  409. }
  410. if (!empty($_FILES['live_pic3']['name'])) {
  411. $upload = new UploadFile();
  412. $upload->set('default_dir',ATTACH_LIVE);
  413. $result = $upload->upfile('live_pic3');
  414. if ($result) {
  415. $update['live_pic3'] = $upload->file_name;
  416. } else {
  417. showMessage($upload->error, '', '', 'error');
  418. }
  419. }
  420. if (!empty($_POST['live_link3'])) {
  421. $update['live_link3'] = $_POST['live_link3'];
  422. }
  423. if (!empty($_FILES['live_pic4']['name'])) {
  424. $upload = new UploadFile();
  425. $upload->set('default_dir',ATTACH_LIVE);
  426. $result = $upload->upfile('live_pic4');
  427. if ($result) {
  428. $update['live_pic4'] = $upload->file_name;
  429. } else {
  430. showMessage($upload->error, '', '', 'error');
  431. }
  432. }
  433. if (!empty($_POST['live_link4'])) {
  434. $update['live_link4'] = $_POST['live_link4'];
  435. }
  436. $list_setting = $model_setting->getListSetting();
  437. $result = $model_setting->updateSetting($update);
  438. if ($result) {
  439. if($list_setting['live_pic1'] != '' && isset($update['live_pic1'])){
  440. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_LIVE.DS.$list_setting['live_pic1']);
  441. }
  442. if($list_setting['live_pic2'] != '' && isset($update['live_pic2'])){
  443. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_LIVE.DS.$list_setting['live_pic2']);
  444. }
  445. if($list_setting['live_pic3'] != '' && isset($update['live_pic3'])){
  446. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_LIVE.DS.$list_setting['live_pic3']);
  447. }
  448. if($list_setting['live_pic4'] != '' && isset($update['live_pic4'])){
  449. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_LIVE.DS.$list_setting['live_pic4']);
  450. }
  451. dkcache('setting');
  452. $this->log('修改抢购幻灯片设置', 1);
  453. showMessage('编辑成功', '', '', 'succ');
  454. } else {
  455. showMessage('编辑失败', '', '', 'error');
  456. }
  457. }
  458. $list_setting = $model_setting->getListSetting();
  459. Tpl::output('list_setting', $list_setting);
  460. $this->show_menu('slider');
  461. Tpl::showpage('groupbuy.slider');
  462. }
  463. /**
  464. * 幻灯片清空
  465. */
  466. public function slider_clearOp()
  467. {
  468. $model_setting = Model('setting');
  469. $update = array();
  470. $update['live_pic1'] = '';
  471. $update['live_link1'] = '';
  472. $update['live_pic2'] = '';
  473. $update['live_link2'] = '';
  474. $update['live_pic3'] = '';
  475. $update['live_link3'] = '';
  476. $update['live_pic4'] = '';
  477. $update['live_link4'] = '';
  478. $res = $model_setting->updateSetting($update);
  479. if ($res) {
  480. dkcache('setting');
  481. $this->log('清空抢购幻灯片设置', 1);
  482. echo json_encode(array('result'=>'true'));
  483. } else {
  484. echo json_encode(array('result'=>'false'));
  485. }
  486. exit;
  487. }
  488. /**
  489. * 页面内导航菜单
  490. *
  491. * @param string $menu_key 当前导航的menu_key
  492. * @param array $array 附加菜单
  493. * @return
  494. */
  495. private function show_menu($menu_key) {
  496. $menu_array = array(
  497. 'groupbuy_list'=>array('menu_type'=>'link','menu_name'=>'抢购活动','menu_url'=>'index.php?act=groupbuy&op=groupbuy_list'),
  498. 'groupbuy_quota'=>array('menu_type'=>'link','menu_name'=>'套餐管理','menu_url'=>'index.php?act=groupbuy&op=groupbuy_quota'),
  499. 'class_list'=>array('menu_type'=>'link','menu_name'=>Language::get('groupbuy_class_list'),'menu_url'=>'index.php?act=groupbuy&op=class_list'),
  500. 'class_add'=>array('menu_type'=>'link','menu_name'=>Language::get('groupbuy_class_add'),'menu_url'=>'index.php?act=groupbuy&op=class_add'),
  501. 'price_list'=>array('menu_type'=>'link','menu_name'=>Language::get('groupbuy_price_list'),'menu_url'=>'index.php?act=groupbuy&op=price_list'),
  502. 'price_add'=>array('menu_type'=>'link','menu_name'=>Language::get('groupbuy_price_add'),'menu_url'=>'index.php?act=groupbuy&op=price_add'),
  503. 'price_edit'=>array('menu_type'=>'link','menu_name'=>Language::get('groupbuy_price_edit'),'menu_url'=>'index.php?act=groupbuy&op=price_edit'),
  504. 'groupbuy_setting'=>array('menu_type'=>'link','menu_name'=>'设置','menu_url'=>urlAdmin('groupbuy', 'groupbuy_setting')),
  505. 'slider'=>array('menu_type'=>'link','menu_name'=>'幻灯片管理','menu_url'=>urlAdmin('groupbuy', 'slider')),
  506. );
  507. switch ($menu_key) {
  508. case 'class_add':
  509. unset($menu_array['price_add']);
  510. unset($menu_array['price_edit']);
  511. break;
  512. case 'price_add':
  513. unset($menu_array['class_add']);
  514. unset($menu_array['price_edit']);
  515. break;
  516. case 'price_edit':
  517. unset($menu_array['class_add']);
  518. unset($menu_array['price_add']);
  519. break;
  520. default:
  521. unset($menu_array['class_add']);
  522. unset($menu_array['price_add']);
  523. unset($menu_array['price_edit']);
  524. break;
  525. }
  526. $menu_array[$menu_key]['menu_type'] = 'text';
  527. Tpl::output('menu',$menu_array);
  528. }
  529. }