Promotionxianshi.php 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <?php
  2. /**
  3. * 秒杀
  4. */
  5. namespace app\admin\controller;
  6. use think\facade\View;
  7. use think\facade\Lang;
  8. use think\facade\Db;
  9. /**
  10. * ============================================================================
  11. * DSMall多用户商城
  12. * ============================================================================
  13. * 版权所有 2014-2028 长沙德尚网络科技有限公司,并保留所有权利。
  14. * 网站地址: http://www.csdeshang.com
  15. * ----------------------------------------------------------------------------
  16. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
  17. * 不允许对程序代码以任何形式任何目的的再发布。
  18. * ============================================================================
  19. * 控制器
  20. */
  21. class Promotionxianshi extends AdminControl
  22. {
  23. public function initialize()
  24. {
  25. parent::initialize();
  26. Lang::load(base_path() . 'admin/lang/'.config('lang.default_lang').'/promotionxianshi.lang.php');
  27. }
  28. /**
  29. * 活动列表
  30. **/
  31. public function index()
  32. {
  33. //自动开启秒杀
  34. if (intval(input('param.promotion_allow')) === 1) {
  35. $config_model = model('config');
  36. $update_array = array();
  37. $update_array['promotion_allow'] = 1;
  38. $config_model->editConfig($update_array);
  39. }
  40. $xianshi_model = model('pxianshi');
  41. $condition = array();
  42. if (!empty(input('param.xianshi_name'))) {
  43. $condition[]=array('xianshi_name','like', '%' . input('param.xianshi_name') . '%');
  44. }
  45. if (!empty(input('param.store_name'))) {
  46. $condition[]=array('store_name','like', '%' . input('param.store_name') . '%');
  47. }
  48. if (!empty(input('param.state'))) {
  49. $condition[]=array('xianshi_state','=',intval(input('param.state')));
  50. }
  51. $xianshi_list = $xianshi_model->getXianshiList($condition, 10, Db::raw('FIELD(xianshi_state, 1,0,2,3), xianshi_end_time desc'));
  52. View::assign('xianshi_list', $xianshi_list);
  53. View::assign('show_page', $xianshi_model->page_info->render());
  54. View::assign('xianshi_state_array', $xianshi_model->getXianshiStateArray());
  55. $this->setAdminCurItem('xianshi_list');
  56. // 输出自营店铺IDS
  57. View::assign('filtered', $condition ? 1 : 0); //是否有查询条件
  58. View::assign('flippedOwnShopIds', array_flip(model('store')->getOwnShopIds()));
  59. return View::fetch();
  60. }
  61. /**
  62. * 秒杀活动取消
  63. **/
  64. public function xianshi_cancel()
  65. {
  66. $xianshi_id = intval(input('param.xianshi_id'));
  67. $xianshi_model = model('pxianshi');
  68. $result = $xianshi_model->cancelXianshi(array('xianshi_id' => $xianshi_id));
  69. if ($result) {
  70. $this->log('取消秒杀活动,活动编号' . $xianshi_id);
  71. ds_json_encode(10000, lang('ds_common_op_succ'));
  72. }
  73. else {
  74. ds_json_encode(10001, lang('ds_common_op_fail'));
  75. }
  76. }
  77. /**
  78. * 秒杀活动删除
  79. **/
  80. public function xianshi_del()
  81. {
  82. $xianshi_model = model('pxianshi');
  83. $xianshi_id = input('param.xianshi_id');
  84. $xianshi_id_array = ds_delete_param($xianshi_id);
  85. if($xianshi_id_array === FALSE){
  86. ds_json_encode(10001, lang('param_error'));
  87. }
  88. $condition = array(array('xianshi_id' ,'in', $xianshi_id_array));
  89. $result = $xianshi_model->delXianshi($condition);
  90. if ($result) {
  91. $this->log('删除秒杀活动,活动编号' . $xianshi_id);
  92. ds_json_encode(10000, lang('ds_common_op_succ'));
  93. }
  94. else {
  95. ds_json_encode(10001, lang('ds_common_op_fail'));
  96. }
  97. }
  98. /**
  99. * 活动详细信息
  100. **/
  101. public function xianshi_detail()
  102. {
  103. $xianshi_id = intval(input('param.xianshi_id'));
  104. $xianshi_model = model('pxianshi');
  105. $xianshigoods_model = model('pxianshigoods');
  106. $xianshi_info = $xianshi_model->getXianshiInfoByID($xianshi_id);
  107. if (empty($xianshi_info)) {
  108. $this->error(lang('param_error'));
  109. }
  110. View::assign('xianshi_info', $xianshi_info);
  111. //获取秒杀商品列表
  112. $condition = array();
  113. $condition[] = array('xianshi_id','=',$xianshi_id);
  114. $xianshigoods_list = $xianshigoods_model->getXianshigoodsExtendList($condition,5);
  115. View::assign('xianshigoods_list', $xianshigoods_list);
  116. View::assign('show_page',$xianshigoods_model->page_info->render());
  117. return View::fetch();
  118. }
  119. /**
  120. * 套餐管理
  121. **/
  122. public function xianshi_quota()
  123. {
  124. $xianshiquota_model = model('pxianshiquota');
  125. $condition = array();
  126. $condition[]=array('store_name','like', '%' . input('param.store_name') . '%');
  127. $xianshiquota_list = $xianshiquota_model->getXianshiquotaList($condition, 10, 'xianshiquota_endtime desc');
  128. View::assign('xianshiquota_list', $xianshiquota_list);
  129. View::assign('show_page', $xianshiquota_model->page_info->render());
  130. $this->setAdminCurItem('xianshi_quota');
  131. return View::fetch();
  132. }
  133. /**
  134. * 设置
  135. **/
  136. public function xianshi_setting() {
  137. if (!(request()->isPost())) {
  138. $setting = rkcache('config', true);
  139. View::assign('setting', $setting);
  140. return View::fetch();
  141. } else {
  142. $promotion_xianshi_price = intval(input('post.promotion_xianshi_price'));
  143. if ($promotion_xianshi_price < 0) {
  144. $this->error(lang('param_error'));
  145. }
  146. $config_model = model('config');
  147. $update_array = array();
  148. $update_array['promotion_xianshi_price'] = $promotion_xianshi_price;
  149. $result = $config_model->editConfig($update_array);
  150. if ($result) {
  151. $this->log('修改秒杀价格为' . $promotion_xianshi_price . '元');
  152. dsLayerOpenSuccess(lang('setting_save_success'));
  153. } else {
  154. $this->error(lang('setting_save_fail'));
  155. }
  156. }
  157. }
  158. /**
  159. * ajax修改抢购信息
  160. */
  161. public function ajax()
  162. {
  163. $result = true;
  164. $update_array = array();
  165. $condition = array();
  166. switch (input('param.branch')) {
  167. case 'recommend':
  168. $pxianshigoods_model = model('pxianshigoods');
  169. $update_array['xianshigoods_recommend'] = input('param.value');
  170. $condition[] = array('xianshigoods_id','=',input('param.id'));
  171. $result = $pxianshigoods_model->editXianshigoods($update_array, $condition);
  172. break;
  173. }
  174. if ($result) {
  175. echo 'true';
  176. exit;
  177. }
  178. else {
  179. echo 'false';
  180. exit;
  181. }
  182. }
  183. /*
  184. * 发送消息
  185. */
  186. private function send_message($member_id, $member_name, $message)
  187. {
  188. $param = array();
  189. $param['from_member_id'] = 0;
  190. $param['member_id'] = $member_id;
  191. $param['to_member_name'] = $member_name;
  192. $param['message_type'] = '1';//表示为系统消息
  193. $param['msg_content'] = $message;
  194. $message_model = model('message');
  195. return $message_model->addMessage($param);
  196. }
  197. /**
  198. * 页面内导航菜单
  199. *
  200. * @param string $menu_key 当前导航的menu_key
  201. * @param array $array 附加菜单
  202. * @return
  203. */
  204. protected function getAdminItemList()
  205. {
  206. $menu_array = array(
  207. array(
  208. 'name' => 'xianshi_list', 'text' => lang('xianshi_list'), 'url' => (string)url('Promotionxianshi/index')
  209. ), array(
  210. 'name' => 'xianshi_quota', 'text' => lang('xianshi_quota'),
  211. 'url' => (string)url('Promotionxianshi/xianshi_quota')
  212. ), array(
  213. 'name' => 'xianshi_setting',
  214. 'text' => lang('xianshi_setting'),
  215. 'url' => "javascript:dsLayerOpen('".(string)url('Promotionxianshi/xianshi_setting')."','".lang('xianshi_setting')."')"
  216. ),
  217. );
  218. if (request()->action() == 'xianshi_detail')
  219. $menu_array[] = array(
  220. 'name' => 'xianshi_detail', 'text' => lang('xianshi_detail'),
  221. 'url' => (string)url('Promotionxianshi/xianshi_detail')
  222. );
  223. return $menu_array;
  224. }
  225. }