goods.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <?php
  2. /**
  3. * 商品栏目管理
  4. *
  5. *
  6. ***/
  7. defined('InShopNC') or exit('Access Invalid!');
  8. class goodsControl extends SystemControl{
  9. const EXPORT_SIZE = 5000;
  10. public function __construct() {
  11. parent::__construct ();
  12. Language::read('goods');
  13. }
  14. /**
  15. * 商品设置
  16. */
  17. public function goods_setOp() {
  18. $model_setting = Model('setting');
  19. if (chksubmit()){
  20. $update_array = array();
  21. $update_array['goods_verify'] = $_POST['goods_verify'];
  22. $result = $model_setting->updateSetting($update_array);
  23. if ($result === true){
  24. $this->log(L('nc_edit,nc_goods_set'),1);
  25. showMessage(L('nc_common_save_succ'));
  26. }else {
  27. $this->log(L('nc_edit,nc_goods_set'),0);
  28. showMessage(L('nc_common_save_fail'));
  29. }
  30. }
  31. $list_setting = $model_setting->getListSetting();
  32. Tpl::output('list_setting',$list_setting);
  33. Tpl::showpage('goods.setting');
  34. }
  35. /**
  36. * 商品管理
  37. */
  38. public function goodsOp() {
  39. $model_goods = Model ( 'goods' );
  40. /**
  41. * 处理商品分类
  42. */
  43. $choose_gcid = ($t = intval($_REQUEST['choose_gcid']))>0?$t:0;
  44. $gccache_arr = Model('goods_class')->getGoodsclassCache($choose_gcid,3);
  45. Tpl::output('gc_json',json_encode($gccache_arr['showclass']));
  46. Tpl::output('gc_choose_json',json_encode($gccache_arr['choose_gcid']));
  47. /**
  48. * 查询条件
  49. */
  50. $where = array();
  51. if ($_GET['search_goods_name'] != '') {
  52. $where['goods_name'] = array('like', '%' . trim($_GET['search_goods_name']) . '%');
  53. }
  54. if (intval($_GET['search_commonid']) > 0) {
  55. $where['goods_commonid'] = intval($_GET['search_commonid']);
  56. }
  57. if ($_GET['search_store_name'] != '') {
  58. $where['store_name'] = array('like', '%' . trim($_GET['search_store_name']) . '%');
  59. }
  60. if (intval($_GET['b_id']) > 0) {
  61. $where['brand_id'] = intval($_GET['b_id']);
  62. }
  63. if ($choose_gcid > 0){
  64. $where['gc_id_'.($gccache_arr['showclass'][$choose_gcid]['depth'])] = $choose_gcid;
  65. }
  66. if (in_array($_GET['search_state'], array('0','1','10'))) {
  67. $where['goods_state'] = $_GET['search_state'];
  68. }
  69. if (in_array($_GET['search_verify'], array('0','1','10'))) {
  70. $where['goods_verify'] = $_GET['search_verify'];
  71. }
  72. switch ($_GET['type']) {
  73. // 禁售
  74. case 'lockup':
  75. $goods_list = $model_goods->getGoodsCommonLockUpList($where);
  76. break;
  77. // 等待审核
  78. case 'waitverify':
  79. $goods_list = $model_goods->getGoodsCommonWaitVerifyList($where, '*', 10, 'goods_verify desc, goods_commonid desc');
  80. break;
  81. // 全部商品
  82. default:
  83. $goods_list = $model_goods->getGoodsCommonList($where);
  84. break;
  85. }
  86. Tpl::output('goods_list', $goods_list);
  87. Tpl::output('page', $model_goods->showpage(2));
  88. $storage_array = $model_goods->calculateStorage($goods_list);
  89. Tpl::output('storage_array', $storage_array);
  90. // 品牌
  91. $brand_list = Model('brand')->getBrandPassedList(array());
  92. Tpl::output('search', $_GET);
  93. Tpl::output('brand_list', $brand_list);
  94. Tpl::output('state', array('1' => '出售中', '0' => '仓库中', '10' => '违规下架'));
  95. Tpl::output('verify', array('1' => '通过', '0' => '未通过', '10' => '等待审核'));
  96. Tpl::output('ownShopIds', array_fill_keys(Model('store')->getOwnShopIds(), true));
  97. switch ($_GET['type']) {
  98. // 禁售
  99. case 'lockup':
  100. Tpl::showpage('goods.close');
  101. break;
  102. // 等待审核
  103. case 'waitverify':
  104. Tpl::showpage('goods.verify');
  105. break;
  106. // 全部商品
  107. default:
  108. Tpl::showpage('goods.index');
  109. break;
  110. }
  111. }
  112. /**
  113. * 违规下架
  114. */
  115. public function goods_lockupOp() {
  116. if (chksubmit()) {
  117. $commonids = $_POST['commonids'];
  118. $commonid_array = explode(',', $commonids);
  119. foreach ($commonid_array as $value) {
  120. if (!is_numeric($value)) {
  121. showDialog(L('nc_common_op_fail'), 'reload');
  122. }
  123. }
  124. $update = array();
  125. $update['goods_stateremark'] = trim($_POST['close_reason']);
  126. $where = array();
  127. $where['goods_commonid'] = array('in', $commonid_array);
  128. Model('goods')->editProducesLockUp($update, $where);
  129. showDialog(L('nc_common_op_succ'), 'reload', 'succ');
  130. }
  131. Tpl::output('commonids', $_GET['id']);
  132. Tpl::showpage('goods.close_remark', 'null_layout');
  133. }
  134. /**
  135. * 删除商品
  136. */
  137. public function goods_delOp() {
  138. $common_id = intval($_GET['goods_id']);
  139. if ($common_id <= 0) {
  140. showDialog(L('nc_common_op_fail'), 'reload');
  141. }
  142. Model('goods')->delGoodsAll(array('goods_commonid' => $common_id));
  143. showDialog(L('nc_common_op_succ'), 'reload', 'succ');
  144. }
  145. /**
  146. * 审核商品
  147. */
  148. public function goods_verifyOp(){
  149. if (chksubmit()) {
  150. $commonids = $_POST['commonids'];
  151. $commonid_array = explode(',', $commonids);
  152. foreach ($commonid_array as $value) {
  153. if (!is_numeric($value)) {
  154. showDialog(L('nc_common_op_fail'), 'reload');
  155. }
  156. }
  157. $update2 = array();
  158. $update2['goods_verify'] = intval($_POST['verify_state']);
  159. $update1 = array();
  160. $update1['goods_verifyremark'] = trim($_POST['verify_reason']);
  161. $update1 = array_merge($update1, $update2);
  162. $where = array();
  163. $where['goods_commonid'] = array('in', $commonid_array);
  164. $model_goods = Model('goods');
  165. if (intval($_POST['verify_state']) == 0) {
  166. $model_goods->editProducesVerifyFail($where, $update1, $update2);
  167. } else {
  168. $model_goods->editProduces($where, $update1, $update2);
  169. }
  170. showDialog(L('nc_common_op_succ'), 'reload', 'succ');
  171. }
  172. Tpl::output('commonids', $_GET['id']);
  173. Tpl::showpage('goods.verify_remark', 'null_layout');
  174. }
  175. /**
  176. * ajax获取商品列表
  177. */
  178. public function get_goods_list_ajaxOp() {
  179. $commonid = $_GET['commonid'];
  180. if ($commonid <= 0) {
  181. echo 'false';exit();
  182. }
  183. $model_goods = Model('goods');
  184. $goodscommon_list = $model_goods->getGoodeCommonInfoByID($commonid, 'spec_name');
  185. if (empty($goodscommon_list)) {
  186. echo 'false';exit();
  187. }
  188. $goods_list = $model_goods->getGoodsList(array('goods_commonid' => $commonid), 'goods_id,goods_spec,store_id,goods_price,goods_serial,goods_storage,goods_image');
  189. if (empty($goods_list)) {
  190. echo 'false';exit();
  191. }
  192. $spec_name = array_values((array)unserialize($goodscommon_list['spec_name']));
  193. foreach ($goods_list as $key => $val) {
  194. $goods_spec = array_values((array)unserialize($val['goods_spec']));
  195. $spec_array = array();
  196. foreach ($goods_spec as $k => $v) {
  197. $spec_array[] = '<div class="goods_spec">' . $spec_name[$k] . L('nc_colon') . '<em title="' . $v . '">' . $v .'</em>' . '</div>';
  198. }
  199. $goods_list[$key]['goods_image'] = thumb($val, '60');
  200. $goods_list[$key]['goods_spec'] = implode('', $spec_array);
  201. $goods_list[$key]['url'] = urlShop('goods', 'index', array('goods_id' => $val['goods_id']));
  202. }
  203. /**
  204. * 转码
  205. */
  206. if (strtoupper(CHARSET) == 'GBK') {
  207. Language::getUTF8($goods_list);
  208. }
  209. echo json_encode($goods_list);
  210. }
  211. }