ProductController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. class ProductController extends AdminController{
  3. public function actionIndex()
  4. {
  5. $status_option = Product::$status_option;
  6. $status = CommonFn::getComboboxData($status_option, 100, true, 100);
  7. $type = CommonFn::getComboboxData(Yii::app()->params['o2o_service'], 100, true, 100);
  8. $this->render('index', array(
  9. 'status' => $status,
  10. 'type'=>$type
  11. ));
  12. }
  13. public function actionGet(){
  14. $id = Yii::app()->request->getParam('id', '');
  15. $criteria = new EMongoCriteria();
  16. $criteria->_id = new MongoId($id);
  17. $product = Product::model()->find($criteria);
  18. $data = $product->parseRow($product->attributes);
  19. echo json_encode($data);exit;
  20. }
  21. public function actionList(){
  22. $params = CommonFn::getPageParams();
  23. $id = Yii::app()->request->getParam('id', '');
  24. $status = intval(Yii::app()->request->getParam('status', 100));
  25. $criteria = new EMongoCriteria($params);
  26. if($status!=100){
  27. $criteria->status('==', $status);
  28. }
  29. if ($id != ''){
  30. $product_id = new MongoId($id);
  31. $criteria->_id('==', $product_id);
  32. }
  33. $cursor = Product::model()->findAll($criteria);
  34. $total = $cursor->count();
  35. $rows = CommonFn::getRowsFromCursor($cursor);
  36. $parsedRows = Product::model()->parse($rows);
  37. echo CommonFn::composeDatagridData($parsedRows, $total);
  38. }
  39. public function actionEdit(){
  40. $id = Yii::app()->request->getParam('id', '');
  41. $status = intval(Yii::app()->request->getParam('status', 1));
  42. $order = intval(Yii::app()->request->getParam('order',1));
  43. $pics = Yii::app()->request->getParam('pics',array());
  44. $extra = Yii::app()->request->getParam('extra',array());
  45. $extra = json_decode($extra);
  46. $name = Yii::app()->request->getParam('name','');
  47. $desc = Yii::app()->request->getParam('desc','');
  48. $price = Yii::app()->request->getParam('price',0);
  49. $type = Yii::app()->request->getParam('type', 0);
  50. if( !$type || !$name ||!$desc){
  51. CommonFn::requestAjax(false, '服务/名称/简介类型不能为空');
  52. }
  53. if($status == 100|| $type == 100){
  54. CommonFn::requestAjax(false, '必须指定状态和服务类型!');
  55. }
  56. if(mb_strlen($desc,'utf-8')>4000 || mb_strlen($desc,'utf-8')==0 ||is_null(json_decode($desc))){
  57. CommonFn::requestAjax(false, '请输入4000字以内的Json格式的图文介绍');
  58. }
  59. $new_pics = array();
  60. foreach($pics as $picStr){
  61. $pic = json_decode($picStr,true);
  62. if(isset($pic) && $pic){
  63. $new_pics[] = $pic;
  64. }
  65. }
  66. $pics = $new_pics;
  67. if(count($pics)>0)
  68. {
  69. foreach($pics as $k=>$v)
  70. {
  71. if(CommonFn::checkPicFormat($v['url'])){
  72. $pics[$k]=$v;
  73. }
  74. }
  75. }
  76. $status=$status>1?1:$status;
  77. if(!$id){
  78. $product = new Product();
  79. }else{
  80. $criteria = new EMongoCriteria();
  81. $criteria->_id = new MongoId($id);
  82. $product = Product::model()->find($criteria);
  83. if (empty($product)){
  84. CommonFn::requestAjax(false, '产品/服务 不存在');
  85. }
  86. }
  87. $product->name = $name;
  88. $product->desc = $desc;
  89. $product->status = $status;
  90. $product->order = $order;
  91. $product->price = $price;
  92. $product->type = $type;
  93. $product->pics = $pics;
  94. $product->extra = $extra;
  95. $arr_addProduct = array('status','order','price','name','desc','pics','type','extra');
  96. $success = $product->save(true,$arr_addProduct);
  97. CommonFn::requestAjax($success, '', array());
  98. }
  99. }