microshop.php 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097
  1. <?php
  2. /**
  3. * 微商城
  4. *
  5. *
  6. *
  7. ***/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class microshopControl extends SystemControl{
  10. const MICROSHOP_CLASS_LIST = 'index.php?act=microshop&op=goodsclass_list';
  11. const GOODS_FLAG = 1;
  12. const PERSONAL_FLAG = 2;
  13. const ALBUM_FLAG = 3;
  14. const STORE_FLAG = 4;
  15. public function __construct(){
  16. parent::__construct();
  17. Language::read('store');
  18. Language::read('microshop');
  19. }
  20. // public function indexOp() {
  21. // $this->manageOp();
  22. // }
  23. /**
  24. * 微商城管理
  25. */
  26. public function manageOp() {
  27. $model_setting = Model('setting');
  28. $setting_list = $model_setting->getListSetting();
  29. Tpl::output('setting',$setting_list);
  30. $this->show_menu('manage');
  31. Tpl::showpage('microshop_manage');
  32. }
  33. /**
  34. * 微商城管理保存
  35. */
  36. public function manage_saveOp() {
  37. $model_setting = Model('setting');
  38. $update_array = array();
  39. $update_array['microshop_isuse'] = intval($_POST['microshop_isuse']);
  40. $update_array['microshop_style'] = trim($_POST['microshop_style']);
  41. $update_array['microshop_personal_limit'] = intval($_POST['microshop_personal_limit']);
  42. $old_image = array();
  43. if(!empty($_FILES['microshop_logo']['name'])) {
  44. $upload = new UploadFile();
  45. $upload->set('default_dir',ATTACH_MICROSHOP);
  46. $result = $upload->upfile('microshop_logo');
  47. if(!$result) {
  48. showMessage($upload->error);
  49. }
  50. $update_array['microshop_logo'] = $upload->file_name;
  51. $old_image[] = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.C('microshop_logo');
  52. }
  53. if(!empty($_FILES['microshop_header_pic']['name'])) {
  54. $upload = new UploadFile();
  55. $upload->set('default_dir',ATTACH_MICROSHOP);
  56. $result = $upload->upfile('microshop_header_pic');
  57. if(!$result) {
  58. showMessage($upload->error);
  59. }
  60. $update_array['microshop_header_pic'] = $upload->file_name;
  61. $old_image[] = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.C('microshop_header_pic');
  62. }
  63. $update_array['taobao_api_isuse'] = intval($_POST['taobao_api_isuse']);
  64. $update_array['taobao_app_key'] = $_POST['taobao_app_key'];
  65. $update_array['taobao_secret_key'] = $_POST['taobao_secret_key'];
  66. $update_array['microshop_seo_keywords'] = $_POST['microshop_seo_keywords'];
  67. $update_array['microshop_seo_description'] = $_POST['microshop_seo_description'];
  68. $result = $model_setting->updateSetting($update_array);
  69. if ($result === true){
  70. if(!empty($old_image)) {
  71. foreach ($old_image as $value) {
  72. if(is_file($value)) {
  73. unlink($value);
  74. }
  75. }
  76. }
  77. showMessage(Language::get('nc_common_save_succ'));
  78. }else {
  79. showMessage(Language::get('nc_common_save_fail'));
  80. }
  81. }
  82. /**
  83. * 微商城商品(随心看)分类管理
  84. **/
  85. public function goodsclass_listOp() {
  86. $this->class_list('goods');
  87. }
  88. /**
  89. * 微商城商品(随心看)分类管理
  90. **/
  91. public function personalclass_listOp() {
  92. $this->class_list('personal');
  93. }
  94. private function class_list($type) {
  95. $model_class = Model("micro_{$type}_class");
  96. $list = $model_class->getList(TRUE);
  97. Tpl::output('list',$list);
  98. $menu_function = "show_menu_{$type}_class";
  99. $this->{$menu_function}("{$type}_class_list");
  100. Tpl::showpage("microshop_{$type}_class.list");
  101. }
  102. /**
  103. * 微商城商品(随心看)分类添加
  104. **/
  105. public function goodsclass_addOp() {
  106. //取得一级分类列表
  107. $model_microshop_goods_class = Model('micro_goods_class');
  108. $condition = array();
  109. $condition['class_parent_id'] = 0;
  110. $goods_class_list = $model_microshop_goods_class->getList($condition);
  111. Tpl::output('list',$goods_class_list);
  112. $class_parent_id = intval($_GET['class_parent_id']);
  113. if(!empty($class_parent_id)) {
  114. Tpl::output('class_parent_id',$class_parent_id);
  115. }
  116. $this->show_menu_goods_class('goods_class_add');
  117. Tpl::showpage('microshop_goods_class.add');
  118. }
  119. /**
  120. * 微商城个人秀分类添加
  121. **/
  122. public function personalclass_addOp() {
  123. $this->show_menu_personal_class('personal_class_add');
  124. Tpl::showpage('microshop_personal_class.add');
  125. }
  126. /**
  127. * 微商城商品(随心看)分类编辑
  128. **/
  129. public function goodsclass_editOp() {
  130. $this->class_edit('goods');
  131. }
  132. /**
  133. * 微商城商品(随心看)分类编辑
  134. **/
  135. public function personalclass_editOp() {
  136. $this->class_edit('personal');
  137. }
  138. private function class_edit($type) {
  139. $class_id = intval($_GET['class_id']);
  140. if(empty($class_id)) {
  141. showMessage(Language::get('param_error'),'','','error');
  142. }
  143. $model_class = Model("micro_{$type}_class");
  144. $condition = array();
  145. $condition['class_id'] = $class_id;
  146. $class_info = $model_class->getOne($condition);
  147. Tpl::output('class_info',$class_info);
  148. $menu_function = "show_menu_{$type}_class";
  149. $this->{$menu_function}("{$type}_class_edit");
  150. Tpl::showpage("microshop_{$type}_class.add");
  151. }
  152. /**
  153. * 微商城商品(随心看)分类保存
  154. **/
  155. public function goodsclass_saveOp() {
  156. $this->class_save('goods');
  157. }
  158. /**
  159. * 微商城个人秀分类保存
  160. **/
  161. public function personalclass_saveOp() {
  162. $this->class_save('personal');
  163. }
  164. /**
  165. * 微商城商品(随心看)分类保存
  166. **/
  167. private function class_save($type) {
  168. $obj_validate = new Validator();
  169. $validate_array = array(
  170. array('input'=>$_POST['class_name'],'require'=>'true',"validator"=>"Length","min"=>"1","max"=>"10",'message'=>Language::get('class_name_error')),
  171. array('input'=>$_POST['class_sort'],'require'=>'true','validator'=>'Range','min'=>0,'max'=>255,'message'=>Language::get('class_sort_error')),
  172. );
  173. if($type == 'goods') {
  174. $validate_array[] = array('input'=>$_POST['class_parent_id'],'require'=>'true','validator'=>'Number','message'=>Language::get('parent_id_error'));
  175. }
  176. $obj_validate->validateparam = $validate_array;
  177. $error = $obj_validate->validate();
  178. if ($error != ''){
  179. showMessage(Language::get('error').$error,'','','error');
  180. }
  181. $param = array();
  182. $param['class_name'] = trim($_POST['class_name']);
  183. if(isset($_POST['class_parent_id']) && intval($_POST['class_parent_id']) > 0) {
  184. $param['class_parent_id'] = $_POST['class_parent_id'];
  185. }
  186. if(isset($_POST['class_keyword'])) {
  187. $param['class_keyword'] = $_POST['class_keyword'];
  188. }
  189. $param['class_sort'] = intval($_POST['class_sort']);
  190. if(!empty($_FILES['class_image']['name'])) {
  191. $upload = new UploadFile();
  192. $upload->set('default_dir',ATTACH_MICROSHOP);
  193. $result = $upload->upfile('class_image');
  194. if(!$result) {
  195. showMessage($upload->error);
  196. }
  197. $param['class_image'] = $upload->file_name;
  198. //删除老图片
  199. if(!empty($_POST['old_class_image'])) {
  200. $old_image = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.$_POST['old_class_image'];
  201. if(is_file($old_image)) {
  202. unlink($old_image);
  203. }
  204. }
  205. }
  206. $model_class = Model("micro_{$type}_class");
  207. if(isset($_POST['class_id']) && intval($_POST['class_id']) > 0) {
  208. $result = $model_class->modify($param,array('class_id'=>$_POST['class_id']));
  209. } else {
  210. $result = $model_class->save($param);
  211. }
  212. if($result) {
  213. showMessage(Language::get('class_add_success'),"index.php?act=microshop&op={$type}class_list");
  214. } else {
  215. showMessage(Language::get('class_add_fail'),"index.php?act=microshop&op={$type}class_list",'','error');
  216. }
  217. }
  218. /*
  219. * ajax修改分类排序
  220. */
  221. public function goodsclass_sort_updateOp() {
  222. $this->update_class_sort('goods');
  223. }
  224. public function personalclass_sort_updateOp() {
  225. $this->update_class_sort('personal');
  226. }
  227. private function update_class_sort($type) {
  228. if(intval($_GET['id']) <= 0) {
  229. echo json_encode(array('result'=>FALSE,'message'=>Language::get('param_error')));
  230. die;
  231. }
  232. $new_sort = intval($_GET['value']);
  233. if ($new_sort > 255){
  234. echo json_encode(array('result'=>FALSE,'message'=>Language::get('class_sort_error')));
  235. die;
  236. } else {
  237. $model_class = Model("micro_{$type}_class");
  238. $result = $model_class->modify(array('class_sort'=>$new_sort),array('class_id'=>$_GET['id']));
  239. if($result) {
  240. echo json_encode(array('result'=>TRUE,'message'=>'class_add_success'));
  241. die;
  242. } else {
  243. echo json_encode(array('result'=>FALSE,'message'=>Language::get('class_add_fail')));
  244. die;
  245. }
  246. }
  247. }
  248. /*
  249. * ajax修改分类名称
  250. */
  251. public function goodsclass_name_updateOp() {
  252. $this->update_class_name('goods');
  253. }
  254. public function personalclass_name_updateOp() {
  255. $this->update_class_name('personal');
  256. }
  257. private function update_class_name($type) {
  258. $class_id = intval($_GET['id']);
  259. if($class_id <= 0) {
  260. echo json_encode(array('result'=>FALSE,'message'=>Language::get('param_error')));
  261. die;
  262. }
  263. $new_name = trim($_GET['value']);
  264. $obj_validate = new Validator();
  265. $obj_validate->validateparam = array(
  266. array('input'=>$new_name,'require'=>'true',"validator"=>"Length","min"=>"1","max"=>"10",'message'=>Language::get('class_name_error')),
  267. );
  268. $error = $obj_validate->validate();
  269. if ($error != ''){
  270. echo json_encode(array('result'=>FALSE,'message'=>Language::get('class_name_error')));
  271. die;
  272. } else {
  273. $model_class = Model("micro_{$type}_class");
  274. $result = $model_class->modify(array('class_name'=>$new_name),array('class_id'=>$class_id));
  275. if($result) {
  276. echo json_encode(array('result'=>TRUE,'message'=>'class_add_success'));
  277. die;
  278. } else {
  279. echo json_encode(array('result'=>FALSE,'message'=>Language::get('class_add_fail')));
  280. die;
  281. }
  282. }
  283. }
  284. /**
  285. * 随心看分类删除
  286. **/
  287. public function goodsclass_dropOp() {
  288. $class_id = trim($_POST['class_id']);
  289. $model_microshop_goods_class = Model('micro_goods_class');
  290. $condition = array();
  291. $condition['class_parent_id'] = array('in',$class_id);
  292. $goods_class_list = $model_microshop_goods_class->getList($condition,'','','class_id');
  293. if(!empty($goods_class_list) && is_array($goods_class_list)) {
  294. foreach($goods_class_list as $val) {
  295. $class_id .= ','.$val['class_id'];
  296. }
  297. }
  298. $class_id = rtrim($class_id,',');
  299. $condition = array();
  300. $condition['class_id'] = array('in',$class_id);
  301. //删除分类图片
  302. $list = $model_microshop_goods_class->getList($condition);
  303. if(!empty($list)) {
  304. foreach ($list as $value) {
  305. if(!empty($value['class_image'])) {
  306. //删除老图片
  307. $old_image = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.$value['class_image'];
  308. if(is_file($old_image)) {
  309. unlink($old_image);
  310. }
  311. }
  312. }
  313. }
  314. //删除绑定关系
  315. $model_microshop_goods_relation = Model('micro_goods_relation');
  316. $model_microshop_goods_relation->drop($condition);
  317. //删除分类
  318. $result = $model_microshop_goods_class->drop($condition);
  319. if($result) {
  320. showMessage(Language::get('class_drop_success'),'');
  321. } else {
  322. showMessage(Language::get('class_drop_fail'),'','','error');
  323. }
  324. }
  325. /**
  326. * 个人秀分类删除
  327. **/
  328. public function personalclass_dropOp() {
  329. $class_id = trim($_POST['class_id']);
  330. $model_class = Model('micro_personal_class');
  331. $condition = array();
  332. $condition['class_id'] = array('in',$class_id);
  333. //删除分类图片
  334. $list = $model_class->getList($condition);
  335. if(!empty($list)) {
  336. foreach ($list as $value) {
  337. //删除老图片
  338. if(!empty($value['class_image'])) {
  339. $old_image = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.$value['class_image'];
  340. if(is_file($old_image)) {
  341. unlink($old_image);
  342. }
  343. }
  344. }
  345. }
  346. $result = $model_class->drop($condition);
  347. if($result) {
  348. showMessage(Language::get('class_drop_success'),'');
  349. } else {
  350. showMessage(Language::get('class_drop_fail'),'','','error');
  351. }
  352. }
  353. /**
  354. * 分类关键字和商品分类的绑定
  355. **/
  356. public function goodsclass_bindingOp() {
  357. $class_id = intval($_GET['class_id']);
  358. if($class_id <= 0) {
  359. showMessage(Language::get('param_error'),'','','error');
  360. }
  361. Tpl::output('class_id',$class_id);
  362. $goods_class_list = Model('goods_class')->getGoodsClassForCacheModel();
  363. $goods_class_root = array();
  364. foreach($goods_class_list as $val) {
  365. if($val['gc_parent_id'] == '0') {
  366. $goods_class_root[] = $val;
  367. }
  368. }
  369. Tpl::output('goods_class_root',$goods_class_root);
  370. Tpl::output('goods_class',$goods_class_list);
  371. $model_goods_relation = Model('micro_goods_relation');
  372. $class_binding_list = $model_goods_relation->getList(array('class_id'=>$class_id));
  373. Tpl::output('class_binding_list',$class_binding_list);
  374. $class_binding_string = '';
  375. if(!empty($class_binding_list)) {
  376. foreach ($class_binding_list as $val) {
  377. $class_binding_string .= $val['shop_class_id'].',';
  378. }
  379. }
  380. Tpl::output('class_binding_string',rtrim($class_binding_string,','));
  381. $this->show_menu_goods_class('goods_class_binding');
  382. Tpl::showpage('microshop_goods_class.binding');
  383. }
  384. /**
  385. * 分类关键字和商品分类的绑定保存
  386. **/
  387. public function goodsclass_binding_saveOp() {
  388. $class_id = intval($_POST['class_id']);
  389. $shop_class_id = trim($_POST['shop_class_id']);
  390. $shop_class_array = explode(',',$shop_class_id);
  391. $param = array();
  392. foreach($shop_class_array as $val) {
  393. if(!empty($val)) {
  394. $param[] = array('class_id'=>$class_id,'shop_class_id'=>$val);
  395. }
  396. }
  397. $model_goods_relation = Model('micro_goods_relation');
  398. $model_goods_relation->drop(array('class_id'=>$class_id));
  399. $result = $model_goods_relation->saveAll($param);
  400. if($result) {
  401. showMessage(Language::get('goods_relation_save_success'),self::MICROSHOP_CLASS_LIST);
  402. } else {
  403. showMessage(Language::get('goods_relation_save_fail'),self::MICROSHOP_CLASS_LIST,'','error');
  404. }
  405. }
  406. /**
  407. * 设为默认分类
  408. **/
  409. public function goodsclass_defaultOp() {
  410. $class_id = intval($_GET['class_id']);
  411. if($class_id <= 0) {
  412. showMessage(Language::get('param_error'),'','','error');
  413. }
  414. $model_goods_class = Model('micro_goods_class');
  415. $model_goods_class->modify(array('class_default'=>0),TRUE);
  416. $result = $model_goods_class->modify(array('class_default'=>1),array('class_id'=>$class_id));
  417. if($result) {
  418. showMessage(Language::get('nc_common_op_succ'),'');
  419. } else {
  420. showMessage(Language::get('nc_common_op_fail'),'','','error');
  421. }
  422. }
  423. public function goodsclass_getOp() {
  424. $goods_class_id = intval($_GET['class_id']);
  425. $goods_class_list = Model('goods_class')->getGoodsClassForCacheModel();
  426. if(empty($goods_class_list[$goods_class_id]['childchild'])) {
  427. if(empty($goods_class_list[$goods_class_id]['child'])) {
  428. $goods_class_child = $goods_class_id;
  429. } else {
  430. $goods_class_child = $goods_class_list[$goods_class_id]['child'];
  431. }
  432. } else {
  433. $goods_class_child = $goods_class_list[$goods_class_id]['childchild'];
  434. }
  435. $goods_class_child = explode(',',$goods_class_child);
  436. $model_goods_relation = Model('micro_goods_relation');
  437. $goods_relation_list = $model_goods_relation->getList(TRUE);
  438. $goods_id_list = array();
  439. $goods_class_selected_list = array();
  440. if(!empty($goods_relation_list) && is_array($goods_relation_list)) {
  441. foreach($goods_relation_list as $val) {
  442. $goods_class_selected_list[] = $val['shop_class_id'];
  443. }
  444. }
  445. $goods_class_child_array = array();
  446. if(!empty($goods_class_child) && is_array($goods_class_child)) {
  447. foreach($goods_class_child as $val) {
  448. if(in_array($val,$goods_class_selected_list)) {
  449. $goods_class_list[$val]['selected'] = TRUE;
  450. }
  451. $goods_class_child_array[] = $goods_class_list[$val];
  452. }
  453. }
  454. echo json_encode($goods_class_child_array);
  455. die;
  456. }
  457. /**
  458. * 随心看管理
  459. */
  460. public function goods_manageOp() {
  461. $model_microshop_goods = Model('micro_goods');
  462. $condition = array();
  463. if(!empty($_GET['commend_id']) && intval($_GET['commend_id']) > 0 ) {
  464. $condition['commend_id'] = $_GET['commend_id'];
  465. }
  466. if(!empty($_GET['member_name'])) {
  467. $condition['member_name'] = array('like','%'.trim($_GET['member_name']).'%');
  468. }
  469. if(!empty($_GET['commend_goods_name'])) {
  470. $condition['commend_goods_name'] = array('like','%'.trim($_GET['commend_goods_name']).'%');
  471. }
  472. if(!empty($_GET['commend_time_from']) && !empty($_GET['commend_time_to'])) {
  473. $condition['commend_time'] = array('between',strtotime($_GET['commend_time_from']).','.strtotime($_GET['commend_time_to']));
  474. }
  475. $field = 'micro_goods.*,member.member_name,member.member_avatar';
  476. $list = $model_microshop_goods->getListWithUserInfo($condition,10,'commend_time desc',$field);
  477. Tpl::output('show_page',$model_microshop_goods->showpage(2));
  478. Tpl::output('list',$list);
  479. $this->show_menu('goods_manage');
  480. Tpl::showpage('microshop_goods.manage');
  481. }
  482. /**
  483. * 随心看删除
  484. */
  485. public function goods_dropOp() {
  486. $model = Model('micro_goods');
  487. $condition = array();
  488. $condition['commend_id'] = array('in',trim($_POST['commend_id']));
  489. //删除随心看图片
  490. $list = $model->getList($condition);
  491. if(!empty($list)) {
  492. foreach ($list as $info) {
  493. //计数
  494. $model_micro_member_info = Model('micro_member_info');
  495. $model_micro_member_info->updateMemberGoodsCount($info['commend_member_id'],'-');
  496. }
  497. }
  498. $result = $model->drop($condition);
  499. if($result) {
  500. showMessage(Language::get('nc_common_del_succ'),'');
  501. } else {
  502. showMessage(Language::get('nc_common_del_fail'),'','','error');
  503. }
  504. }
  505. /**
  506. * 个人秀管理
  507. */
  508. public function personal_manageOp() {
  509. $model_personal = Model('micro_personal');
  510. $condition = array();
  511. if(!empty($_GET['personal_id']) && intval($_GET['personal_id']) > 0 ) {
  512. $condition['personal_id'] = $_GET['personal_id'];
  513. }
  514. if(!empty($_GET['member_name'])) {
  515. $condition['member_name'] = array('like','%'.trim($_GET['member_name']).'%');
  516. }
  517. if(!empty($_GET['commend_time_from']) && !empty($_GET['commend_time_to'])) {
  518. $condition['commend_time'] = array('between',strtotime($_GET['commend_time_from']).','.strtotime($_GET['commend_time_to']));
  519. }
  520. $field = 'micro_personal.*,member.member_name,member.member_avatar';
  521. $list = $model_personal->getListWithUserInfo($condition,10,'commend_time desc',$field);
  522. Tpl::output('show_page',$model_personal->showpage(2));
  523. Tpl::output('list',$list);
  524. $this->show_menu('personal_manage');
  525. Tpl::showpage('microshop_personal.manage');
  526. }
  527. /**
  528. * 随心看删除
  529. */
  530. public function personal_dropOp() {
  531. $model = Model('micro_personal');
  532. $condition = array();
  533. $condition['personal_id'] = array('in',trim($_POST['personal_id']));
  534. //删除随心看图片
  535. $list = $model->getList($condition);
  536. if(!empty($list)) {
  537. foreach ($list as $personal_info) {
  538. //计数
  539. $model_micro_member_info = Model('micro_member_info');
  540. $model_micro_member_info->updateMemberPersonalCount($personal_info['commend_member_id'],'-');
  541. $image_array = explode(',',$personal_info['commend_image']);
  542. foreach ($image_array as $value) {
  543. //删除原始图片
  544. $image_name = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.$personal_info['commend_member_id'].DS.$value;
  545. if(is_file($image_name)) {
  546. unlink($image_name);
  547. }
  548. //删除列表图片
  549. $ext = explode('.', $value);
  550. $ext = $ext[count($ext) - 1];
  551. $image_name = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.$personal_info['commend_member_id'].DS.$value.'_list.'.$ext;
  552. if(is_file($image_name)) {
  553. unlink($image_name);
  554. }
  555. $image_name = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.$personal_info['commend_member_id'].DS.$value.'_tiny.'.$ext;
  556. if(is_file($image_name)) {
  557. unlink($image_name);
  558. }
  559. }
  560. }
  561. }
  562. $result = $model->drop($condition);
  563. if($result) {
  564. showMessage(Language::get('nc_common_del_succ'),'');
  565. } else {
  566. showMessage(Language::get('nc_common_del_fail'),'','','error');
  567. }
  568. }
  569. /**
  570. * 店铺管理
  571. */
  572. public function store_manageOp(){
  573. $model_store = Model('micro_store');
  574. $condition = array();
  575. if(!empty($_GET['owner_and_name'])) {
  576. $condition['member_name'] = array('like','%'.trim($_GET['owner_and_name']).'%');
  577. }
  578. if(!empty($_GET['store_name'])) {
  579. $condition['store_name'] = array('like','%'.trim($_GET['store_name']).'%');
  580. }
  581. $store_list = $model_store->getListWithStoreInfo($condition,10);
  582. Tpl::output('store_list',$store_list);
  583. $this->show_menu_store('store_manage');
  584. Tpl::output('show_page',$model_store->showpage(2));
  585. Tpl::showpage('microshop_store.manage');
  586. }
  587. /**
  588. * 店铺街添加列表
  589. */
  590. public function store_addOp(){
  591. $model_store = Model('store');
  592. $model_microshop_store = Model('micro_store');
  593. $microshop_store_list = $model_microshop_store->getList(TRUE);
  594. $microshop_store_array = array();
  595. if(!empty($microshop_store_list)) {
  596. foreach($microshop_store_list as $value) {
  597. $microshop_store_array[] = $value['shop_store_id'];
  598. }
  599. }
  600. Tpl::output('microshop_store_array',$microshop_store_array);
  601. $page = new Page();
  602. $page->setEachNum(10);
  603. $page->setStyle('admin');
  604. $condition = array();
  605. $condition['member_name'] = array('like', '%'.$_GET['owner_and_name'].'%');
  606. $condition['store_name'] = array('like', '%'.$_GET['store_name'].'%');
  607. $store_list = $model_store->getStoreOnlineList($condition,$page);
  608. Tpl::output('store_list',$store_list);
  609. Tpl::output('page',$page->show());
  610. $this->show_menu_store('store_add');
  611. Tpl::showpage('microshop_store.add');
  612. }
  613. /**
  614. * 店铺街添加保存
  615. */
  616. public function store_add_saveOp() {
  617. $store_id_array = explode(',',$_POST['store_id']);
  618. $param = array();
  619. if(!empty($store_id_array)) {
  620. foreach ($store_id_array as $value) {
  621. if(intval($value) > 0) {
  622. $microshop_store['shop_store_id'] = $value;
  623. $microshop_store['microshop_sort'] = 255;
  624. $microshop_store['microshop_commend'] = 0;
  625. $param[] = $microshop_store;
  626. }
  627. }
  628. }
  629. $model_store = Model('micro_store');
  630. $result = $model_store->saveAll($param);
  631. if($result) {
  632. showMessage(Language::get('nc_common_op_succ'),'');
  633. } else {
  634. showMessage(Language::get('nc_common_op_fail'),'','','error');
  635. }
  636. }
  637. /**
  638. * 店铺街删除保存
  639. */
  640. public function store_drop_saveOp() {
  641. $model_store = Model('micro_store');
  642. $condition = array();
  643. $condition['shop_store_id'] = array('in',trim($_POST['store_id']));
  644. $result = $model_store->drop($condition);
  645. if($result) {
  646. showMessage(Language::get('nc_common_del_succ'),'');
  647. } else {
  648. showMessage(Language::get('nc_common_del_fail'),'','','error');
  649. }
  650. }
  651. /**
  652. * 更新微商城店铺排序
  653. */
  654. public function store_sort_updateOp() {
  655. $this->update_microshop_sort('micro_store','shop_store_id');
  656. }
  657. /**
  658. * 更新微商城随心看排序
  659. */
  660. public function goods_sort_updateOp() {
  661. $this->update_microshop_sort('micro_goods','commend_id');
  662. }
  663. /**
  664. * 更新微商城个人秀排序
  665. */
  666. public function personal_sort_updateOp() {
  667. $this->update_microshop_sort('micro_personal','personal_id');
  668. }
  669. private function update_microshop_sort($model_name,$key_name) {
  670. if(intval($_GET['id']) <= 0) {
  671. echo json_encode(array('result'=>FALSE,'message'=>Language::get('param_error')));
  672. die;
  673. }
  674. $new_sort = intval($_GET['value']);
  675. if ($new_sort > 255){
  676. echo json_encode(array('result'=>FALSE,'message'=>Language::get('microshop_sort_error')));
  677. die;
  678. } else {
  679. $model_class = Model($model_name);
  680. $result = $model_class->modify(array('microshop_sort'=>$new_sort),array($key_name=>$_GET['id']));
  681. if($result) {
  682. echo json_encode(array('result'=>TRUE,'message'=>'nc_common_op_succ'));
  683. die;
  684. } else {
  685. echo json_encode(array('result'=>FALSE,'message'=>Language::get('nc_common_op_fail')));
  686. die;
  687. }
  688. }
  689. }
  690. /**
  691. * 评论管理
  692. */
  693. public function comment_manageOp() {
  694. $condition = array();
  695. if(!empty($_GET['comment_id'])) {
  696. $condition['comment_id'] = intval($_GET['comment_id']);
  697. }
  698. if(!empty($_GET['member_name'])) {
  699. $condition['member_name'] = array('like','%'.trim($_GET['member_name']).'%');
  700. }
  701. if(!empty($_GET['comment_type'])) {
  702. $condition['comment_type'] = intval($_GET['comment_type']);
  703. }
  704. if(!empty($_GET['comment_object_id'])) {
  705. $condition['comment_object_id'] = intval($_GET['comment_object_id']);
  706. }
  707. if(!empty($_GET['comment_message'])) {
  708. $condition['comment_message'] = array('like','%'.trim($_GET['comment_message']).'%');
  709. }
  710. $model_comment = Model("micro_comment");
  711. $comment_list = $model_comment->getListWithUserInfo($condition,10,'comment_time desc');
  712. Tpl::output('list',$comment_list);
  713. Tpl::output('show_page',$model_comment->showpage(2));
  714. $this->get_channel_array();
  715. $this->show_menu('comment_manage');
  716. Tpl::showpage('microshop_comment.manage');
  717. }
  718. /**
  719. * 评论删除
  720. */
  721. public function comment_dropOp() {
  722. $model = Model('micro_comment');
  723. $condition = array();
  724. $condition['comment_id'] = array('in',trim($_POST['comment_id']));
  725. $result = $model->drop($condition);
  726. if($result) {
  727. showMessage(Language::get('nc_common_del_succ'),'');
  728. } else {
  729. showMessage(Language::get('nc_common_del_fail'),'','','error');
  730. }
  731. }
  732. /**
  733. * 广告管理
  734. */
  735. public function adv_manageOp() {
  736. $model_personal = Model('micro_adv');
  737. $condition = array();
  738. if(!empty($_GET['adv_type'])) {
  739. $condition['adv_type'] = array('like','%'.trim($_GET['adv_type']).'%');
  740. }
  741. if(!empty($_GET['adv_name'])) {
  742. $condition['adv_name'] = array('like','%'.trim($_GET['adv_name']).'%');
  743. }
  744. $list = $model_personal->getList($condition,10,'','*');
  745. Tpl::output('show_page',$model_personal->showpage(2));
  746. Tpl::output('list',$list);
  747. $this->get_adv_type_list();
  748. $this->show_menu_adv('adv_manage');
  749. Tpl::showpage('microshop_adv.manage');
  750. }
  751. /**
  752. * 微商城广告添加
  753. **/
  754. public function adv_addOp() {
  755. $this->get_adv_type_list();
  756. $this->show_menu_adv('adv_add');
  757. Tpl::showpage('microshop_adv.add');
  758. }
  759. public function adv_editOp() {
  760. $adv_id = intval($_GET['adv_id']);
  761. if(empty($adv_id)) {
  762. showMessage(Language::get('param_error'),'','','error');
  763. }
  764. $model_adv = Model("micro_adv");
  765. $condition = array();
  766. $condition['adv_id'] = $adv_id;
  767. $adv_info = $model_adv->getOne($condition);
  768. Tpl::output('adv_info',$adv_info);
  769. $this->get_adv_type_list();
  770. $this->show_menu_adv('adv_add');
  771. Tpl::showpage("microshop_adv.add");
  772. }
  773. public function adv_saveOp() {
  774. $obj_validate = new Validator();
  775. $validate_array = array(
  776. array('input'=>$_POST['adv_sort'],'require'=>'true','validator'=>'Range','min'=>0,'max'=>255,'message'=>Language::get('class_sort_error')),
  777. );
  778. $obj_validate->validateparam = $validate_array;
  779. $error = $obj_validate->validate();
  780. if ($error != ''){
  781. showMessage(Language::get('error').$error,'','','error');
  782. }
  783. $param = array();
  784. $param['adv_type'] = trim($_POST['adv_type']);
  785. $param['adv_name'] = trim($_POST['adv_name']);
  786. $param['adv_url'] = trim($_POST['adv_url']);
  787. $param['adv_sort'] = intval($_POST['adv_sort']);
  788. if(!empty($_FILES['adv_image']['name'])) {
  789. $upload = new UploadFile();
  790. $upload->set('default_dir',ATTACH_MICROSHOP.DS.'adv');
  791. $result = $upload->upfile('adv_image');
  792. if(!$result) {
  793. showMessage($upload->error);
  794. }
  795. $param['adv_image'] = $upload->file_name;
  796. //删除老图片
  797. if(!empty($_POST['old_adv_image'])) {
  798. $old_image = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.'adv'.DS.$_POST['old_adv_image'];
  799. if(is_file($old_image)) {
  800. unlink($old_image);
  801. }
  802. }
  803. } else {
  804. if(empty($_POST['adv_id'])) {
  805. showMessage(Language::get('microshop_adv_image_error'),'','','error');
  806. }
  807. }
  808. $model_adv = Model("micro_adv");
  809. if(isset($_POST['adv_id']) && intval($_POST['adv_id']) > 0) {
  810. $result = $model_adv->modify($param,array('adv_id'=>$_POST['adv_id']));
  811. } else {
  812. $result = $model_adv->save($param);
  813. }
  814. if($result) {
  815. showMessage(Language::get('nc_common_save_succ'),"index.php?act=microshop&op=adv_manage");
  816. } else {
  817. showMessage(Language::get('nc_common_save_fail'),"index.php?act=microshop&op=adv_manage",'','error');
  818. }
  819. }
  820. /**
  821. * 广告删除
  822. */
  823. public function adv_dropOp() {
  824. $model = Model('micro_adv');
  825. $condition = array();
  826. $condition['adv_id'] = array('in',trim($_POST['adv_id']));
  827. //删除图片
  828. $list = $model->getList($condition);
  829. if(!empty($list)) {
  830. foreach ($list as $adv_info) {
  831. //删除原始图片
  832. $image_name = BASE_UPLOAD_PATH.DS.ATTACH_MICROSHOP.DS.'adv'.DS.$adv_info['adv_image'];
  833. if(is_file($image_name)) {
  834. unlink($image_name);
  835. }
  836. }
  837. }
  838. $result = $model->drop($condition);
  839. if($result) {
  840. showMessage(Language::get('nc_common_del_succ'),'');
  841. } else {
  842. showMessage(Language::get('nc_common_del_fail'),'','','error');
  843. }
  844. }
  845. /**
  846. * 广告排序
  847. */
  848. public function adv_sort_updateOp() {
  849. if(intval($_GET['id']) <= 0) {
  850. echo json_encode(array('result'=>FALSE,'message'=>Language::get('param_error')));
  851. die;
  852. }
  853. $new_sort = intval($_GET['value']);
  854. if ($new_sort > 255){
  855. echo json_encode(array('result'=>FALSE,'message'=>Language::get('class_sort_error')));
  856. die;
  857. } else {
  858. $model_class = Model("micro_adv");
  859. $result = $model_class->modify(array('adv_sort'=>$new_sort),array('adv_id'=>$_GET['id']));
  860. if($result) {
  861. echo json_encode(array('result'=>TRUE,'message'=>''));
  862. die;
  863. } else {
  864. echo json_encode(array('result'=>FALSE,'message'=>''));
  865. die;
  866. }
  867. }
  868. }
  869. //微商城广告类型列表
  870. private function get_adv_type_list() {
  871. $adv_type_list = array();
  872. $adv_type_list['index'] = Language::get('microshop_adv_type_index');
  873. $adv_type_list['store_list'] = Language::get('microshop_adv_type_store_list');
  874. Tpl::output('adv_type_list',$adv_type_list);
  875. }
  876. /**
  877. * ajax操作
  878. */
  879. public function ajaxOp(){
  880. switch ($_GET['branch']){
  881. //随心看推荐
  882. case 'goods_commend':
  883. if(intval($_GET['id']) > 0) {
  884. $model= Model('micro_goods');
  885. $condition['commend_id'] = intval($_GET['id']);
  886. $update[$_GET['column']] = trim($_GET['value']);
  887. $model->modify($update,$condition);
  888. echo 'true';die;
  889. } else {
  890. echo 'false';die;
  891. }
  892. break;
  893. //个人秀推荐
  894. case 'personal_commend':
  895. if(intval($_GET['id']) > 0) {
  896. $model= Model('micro_personal');
  897. $condition['personal_id'] = intval($_GET['id']);
  898. $update[$_GET['column']] = trim($_GET['value']);
  899. $model->modify($update,$condition);
  900. echo 'true';die;
  901. } else {
  902. echo 'false';die;
  903. }
  904. break;
  905. //店铺街推荐
  906. case 'store_commend':
  907. if(intval($_GET['id']) > 0) {
  908. $model= Model('micro_store');
  909. $condition['shop_store_id'] = intval($_GET['id']);
  910. $update[$_GET['column']] = trim($_GET['value']);
  911. $model->modify($update,$condition);
  912. echo 'true';die;
  913. } else {
  914. echo 'false';die;
  915. }
  916. break;
  917. //随心看分类推荐
  918. case 'class_commend':
  919. if(intval($_GET['id']) > 0) {
  920. $model= Model('micro_goods_class');
  921. $condition['class_id'] = intval($_GET['id']);
  922. $update[$_GET['column']] = trim($_GET['value']);
  923. $model->modify($update,$condition);
  924. echo 'true';die;
  925. } else {
  926. echo 'false';die;
  927. }
  928. break;
  929. }
  930. }
  931. /**
  932. * 获取频道数组
  933. */
  934. private function get_channel_array() {
  935. $channel_array = array();
  936. $channel_array[self::GOODS_FLAG] = array('name'=>Language::get('nc_microshop_goods'),'key'=>'goods');
  937. $channel_array[self::PERSONAL_FLAG] = array('name'=>Language::get('nc_microshop_personal'),'key'=>'personal');
  938. $channel_array[self::STORE_FLAG] = array('name'=>Language::get('nc_microshop_store'),'key'=>'store');
  939. Tpl::output('channel_array',$channel_array);
  940. }
  941. /**
  942. * 微商城菜单
  943. */
  944. private function show_menu($menu_key) {
  945. $menu_array = array(
  946. "{$menu_key}"=>array('menu_type'=>'link','menu_name'=>Language::get('nc_manage'),'menu_url'=>'index.php?act=microshop&op='.$menu_key),
  947. );
  948. $menu_array[$menu_key]['menu_type'] = 'text';
  949. Tpl::output('menu',$menu_array);
  950. }
  951. private function show_menu_goods_class($menu_key) {
  952. $menu_array = array(
  953. 'goods_class_list'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_manage'),'menu_url'=>'index.php?act=microshop&op=goodsclass_list'),
  954. 'goods_class_add'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_new'),'menu_url'=>'index.php?act=microshop&op=goodsclass_add'),
  955. );
  956. if($menu_key == 'goods_class_edit') {
  957. $menu_array['goods_class_edit'] = array('menu_type'=>'link','menu_name'=>Language::get('nc_edit'),'menu_url'=>'###');
  958. }
  959. if($menu_key == 'goods_class_binding') {
  960. $menu_array['goods_class_binding'] = array('menu_type'=>'link','menu_name'=>Language::get('microshop_goods_class_binding'),'menu_url'=>'###');
  961. }
  962. $menu_array[$menu_key]['menu_type'] = 'text';
  963. Tpl::output('menu',$menu_array);
  964. }
  965. private function show_menu_personal_class($menu_key) {
  966. $menu_array = array(
  967. 'personal_class_list'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_manage'),'menu_url'=>'index.php?act=microshop&op=personalclass_list'),
  968. 'personal_class_add'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_new'),'menu_url'=>'index.php?act=microshop&op=personalclass_add'),
  969. );
  970. if($menu_key == 'personal_class_edit') {
  971. $menu_array['personal_class_edit'] = array('menu_type'=>'link','menu_name'=>Language::get('nc_edit'),'menu_url'=>'###');
  972. }
  973. $menu_array[$menu_key]['menu_type'] = 'text';
  974. Tpl::output('menu',$menu_array);
  975. }
  976. private function show_menu_store($menu_key) {
  977. $menu_array = array(
  978. 'store_manage'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_manage'),'menu_url'=>'index.php?act=microshop&op=store_manage'),
  979. 'store_add'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_new'),'menu_url'=>'index.php?act=microshop&op=store_add'),
  980. );
  981. $menu_array[$menu_key]['menu_type'] = 'text';
  982. Tpl::output('menu',$menu_array);
  983. }
  984. private function show_menu_adv($menu_key) {
  985. $menu_array = array(
  986. 'adv_manage'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_manage'),'menu_url'=>'index.php?act=microshop&op=adv_manage'),
  987. 'adv_add'=>array('menu_type'=>'link','menu_name'=>Language::get('nc_new'),'menu_url'=>'index.php?act=microshop&op=adv_add'),
  988. );
  989. if($menu_key == 'adv_edit') {
  990. $menu_array['adv_edit'] = array('menu_type'=>'link','menu_name'=>Language::get('nc_edit'),'menu_url'=>'###');
  991. unset($menu_array['adv_add']);
  992. }
  993. $menu_array[$menu_key]['menu_type'] = 'text';
  994. Tpl::output('menu',$menu_array);
  995. }
  996. }