Procházet zdrojové kódy

frontend model fix

Charlie před 8 roky
rodič
revize
6a8dc40e5b

+ 0 - 22
www/protected/modules/o2o/models/BuyRechargeLog.php

@@ -1,22 +0,0 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: PHP
- * Date: 2016/9/26
- * Time: 11:57
- * 会员充值日志
- */
-class BuyRechargeLog extends MongoAr
-{
-    public $_id;
-
-    public $user_id;//充值用户id
-
-    public $time;//充值时间
-
-    public $Denomination;//充值面额
-
-    public $type;//赠送类型 1 赠送优惠券  2 返现
-
-
-}

+ 66 - 6
www/protected/modules/o2o/models/Recharge.php

@@ -4,22 +4,82 @@
  * User: PHP
  * Date: 2016/9/26
  * Time: 11:57
- * 会员充值模型
+ * 会员充值模型
  */
 class Recharge extends MongoAr
 {
     public $_id;
 
-    public $Denomination;//充值面额
+    public $denomination;//充值面额
 
-    public $time;//充值时间
+    public $coupons = array();//赠送的优惠券
 
-    public $presentation;//赠送方式  1 赠送优惠券  2 返现
+    public $cash_back;//返现的金额
 
-    public $coupon = array();//赠送的优惠券
+    public $status=1;//充值卡状态  1 正常使用   0 暂停使用   -1 已删除
 
-    public $cash_back;//返现
+    public function __construct($scenario='insert'){
+        $this->setMongoDBComponent(Yii::app()->getComponent('mongodb_o2o'));
+        parent::__construct($scenario);
+    }
 
+    public static $status_option = array(
+        1 => array('name' => '正常'),
+        0 => array('name' => '暂停'),
+        -1 => array('name' => '删除')
+    );
+
+    public static function model($className=__CLASS__)
+    {
+        return parent::model($className);
+    }
+
+    public function getCollectionName()
+    {
+        return 'recharge';
+    }
+
+    public static function get($_id) {
+        if(CommonFn::isMongoId($_id)){
+            $criteria = new EMongoCriteria();
+            $criteria->_id('==', $_id);
+            $model = self::model()->find($criteria);
+            return $model;
+        }else{
+            return false;
+        }
+    }
+
+    public function parseRow($row,$output=array()){
+        $newRow = array();
+        $newRow['id'] = (string)$row['_id'];
+        $newRow['denomination'] = CommonFn::get_val_if_isset($row,'denomination',0);
+        $newRow['cash_back'] = CommonFn::get_val_if_isset($row,'cash_back',0);
+
+        $coupons = array();
+        if(isset($row['coupons'])&&is_array($row['coupons'])&&!empty($row['coupons'])){
+            $where = array('_id' => array('$in' => array_values($row['coupons'])));
+            $cursor = Coupon::model()->getCollection()->find($where, array('_id','name'));
+            foreach ($cursor as $v){
+                $_id = (array)$v['_id'];
+                unset($v['_id']);
+                $v['id'] = $_id['$id'];
+                $coupons[] = $v;
+            }
+        }
+        $newRow['coupons'] = $coupons;
+
+        $newRow['status'] = CommonFn::get_val_if_isset($row,'status',1);
+        $newRow['action_user'] = CommonFn::get_val_if_isset($row,'action_user',"");
+        $newRow['action_time'] = CommonFn::get_val_if_isset($row,'action_time',"");
+        $newRow['action_log'] = CommonFn::get_val_if_isset($row,'action_log',"");
+        if(APPLICATION=='api'||APPLICATION=='common'){
+            unset($newRow['action_user']);
+            unset($newRow['action_time']);
+            unset($newRow['action_log']);
+        }
+        return $this->output($newRow,$output);
+    }
 
 
 }

+ 44 - 0
www/protected/modules/o2o/models/RechargeLog.php

@@ -0,0 +1,44 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: PHP
+ * Date: 2016/9/26
+ * Time: 11:57
+ * 会员充值日志
+ */
+class RechargeLog extends MongoAr
+{
+    public $_id;
+
+    public $user;//充值用户 mongoid
+
+    public $time;//充值时间
+
+    public $recharge;//充值卡  mongoid
+
+    public function __construct($scenario='insert'){
+        $this->setMongoDBComponent(Yii::app()->getComponent('mongodb_o2o'));
+        parent::__construct($scenario);
+    }
+
+    public static function model($className=__CLASS__)
+    {
+        return parent::model($className);
+    }
+
+    public function getCollectionName()
+    {
+        return 'recharge_log';
+    }
+
+    public static function get($_id) {
+        if(CommonFn::isMongoId($_id)){
+            $criteria = new EMongoCriteria();
+            $criteria->_id('==', $_id);
+            $model = self::model()->find($criteria);
+            return $model;
+        }else{
+            return false;
+        }
+    }
+}

+ 1 - 1
www/webapp/o2o/js/build/.cache/success/index.js

@@ -1,4 +1,4 @@
-/*TMODJS:{"version":2,"md5":"74bc9c6ef2591cfdf6c4a8b2bd0c4c8f"}*/
+/*TMODJS:{"version":6,"md5":"74bc9c6ef2591cfdf6c4a8b2bd0c4c8f"}*/
 template('success/index',function($data,$filename
 /**/) {
 'use strict';var $utils=this,$helpers=$utils.$helpers,showNavBar=$data.showNavBar,WX=$data.WX,$out='';if(showNavBar ){

+ 1 - 1
www/webapp/o2o/js/build/template.js

@@ -41,6 +41,6 @@ a("product/info",function(a){"use strict";var b=this,c=(b.$helpers,a.showNavBar)
 a("product/option",function(a){"use strict";var b=this,c=(b.$helpers,b.$each),d=a.pets,e=(a.pet,a.$index,b.$escape),f="";return f+='<div class="box box-container box-align-end"> <div class="product-option-container"> ',c(d,function(a){f+=' <div class="option-group" data-id="',f+=e(a.id),f+='" data-weight="',f+=e(a.min_weight),f+="-",f+=e(a.max_weight),f+='kg" data-name="',f+=e(a.pet_types[0].name),f+='" data-price="',f+=e(a.price),f+='" data-weight-max="',f+=e(a.max_weight),f+='" data-weight-min="',f+=e(a.min_weight),f+='"> ',f+=e(a.pet_types[0].name),f+=" (",f+=e(a.min_weight),f+="-",f+=e(a.max_weight),f+="kg) </div> "}),f+=' <div class="btn-container"> <a class="btn btn-cancle btn-block btn-next">\u53d6\u6d88</a> </div> </div> </div> ',new k(f)}),/*v:1*/
 a("product/price",function(a){"use strict";var b=this,c=(b.$helpers,b.$each),d=a.petTypes,e=(a.petType,a.$index,b.$escape),f="";return f+="<tr> <th>\u7c7b\u578b</th> ",c(d,function(a){f+=' <th colspan="" class="pet-type">',f+=e(a.pet_types[0].name),f+="</th> "}),f+=" </tr> <tr> <th>\u4f53\u91cd</th> ",c(d,function(a){f+=" <td>",f+=e(a.min_weight),f+=" ~ ",f+=e(a.max_weight),f+="kg</td> "}),f+=" </tr> <tr> <th>\u4ef7\u683c</th> ",c(d,function(a){f+=" <td>",f+=e(a.price),f+="\u5143</td> "}),f+=" </tr>",new k(f)}),/*v:1*/
 a("product/reviewList",function(a,b){"use strict";var c=this,d=(c.$helpers,c.$each),e=a.reviews,f=(a.review,a.i,c.$escape),g=function(d,e){e=e||a;var f=c.$include(d,e,b);return i+=f},h=a.imgW,i=(a.pic,"");return d(e,function(a){i+=' <li class="table-view-cell"> <div> <div class="user-info-container"> <div class="user-info-btn" data-id="',i+=f(a.user.id),i+='"> <img class="user-avatar" src="',i+=f(a.user.avatar),i+='?imageView2/2/w/60/h/60"/> <span class="user-name">',i+=f(a.user.user_name),i+='</span> </div> </div> <div class="box"> <div class="box-flex-1"> <span class="star-label">\u8bc4\u5206:</span> ',g("../common/star",a),i+=' </div> <div class="box-flex-1 review-time"> ',i+=f(a.time_str),i+=' </div> </div> <div class="review-content"> ',i+=f(a.content),i+=' </div> <div class="img-preview-list" ',a.pics.length>0&&(i+='style="height:',i+=f(h),i+='px"'),i+="> ",a.pics.length>0&&(i+=" ",d(a.pics,function(b,c){i+=" ",3>c&&(i+=' <div class="width-percent-33"> <div class="img-preview" data-src="',i+=f(b.url),i+='" style="width: ',i+=f(h),i+='px"> <img src="',i+=f(b.url),i+="?imageView2/5/w/",i+=f(2*h),i+="/h/",i+=f(2*h),i+='" alt="" class="img-preview-item"> ',a.pics.length>3&&2==c&&(i+=' <span class="img-count">',i+=f(a.pics.length),i+="</span> "),i+=" </div> </div> "),i+=" "}),i+=" "),i+=" </div> ",""!==a.reply&&(i+=' <div class="reply-content"> \u58f9\u7ba1\u5bb6\u56de\u590d\uff1a',i+=f(a.reply),i+=" </div> "),i+=" </div> </li> "}),i+=" ",new k(i)}),/*v:1*/
-a("review/post",function(a,b){"use strict";var c=this,d=(c.$helpers,function(d,e){e=e||a;var f=c.$include(d,e,b);return i+=f}),e=a.showUpload,f=a.showInput,g=c.$escape,h=a.cacheReview,i="";return i+='<div class="box box-container box-align-end"> <div class="review-container"> <div class="review-star-container"> <span>\u6ee1\u610f\u5ea6\u8bc4\u5206\uff1a</span> ',d("../common/star"),i+=" </div> ",e&&(i+=' <div class="review-star-container review-img-content"> <div class="width-percent-25 img-upload"> <div class="img-upload-btn"> ',f&&(i+=' <input type="file" name="" id="wx-upload" multiple="multiple" accept="image/gif, image/png, image/jpeg, image/x-png, image.jpg"> '),i+=" </div> </div> </div> "),i+=' <div class="review-content-container"> <textarea class="review-content enable-scroll" placeholder="\u4eb2\uff0c\u4e94\u661f\u597d\u8bc4\uff0c\u7acb\u8fd43~10\u5143\u968f\u673a\u4ee3\u91d1\u5238\u54e6\uff01">',i+=g(h),i+='</textarea> <p>\u8bc4\u8bba\u5185\u5bb9\u81f3\u5c1110\u4e2a\u5b57~</p> </div> <a class="btn btn-main btn-block btn-main btn-post disable">\u53d1\u8868\u8bc4\u4ef7</a> </div> </div> ',new k(i)}),/*v:2*/
+a("review/post",function(a,b){"use strict";var c=this,d=(c.$helpers,function(d,e){e=e||a;var f=c.$include(d,e,b);return i+=f}),e=a.showUpload,f=a.showInput,g=c.$escape,h=a.cacheReview,i="";return i+='<div class="box box-container box-align-end"> <div class="review-container"> <div class="review-star-container"> <span>\u6ee1\u610f\u5ea6\u8bc4\u5206\uff1a</span> ',d("../common/star"),i+=" </div> ",e&&(i+=' <div class="review-star-container review-img-content"> <div class="width-percent-25 img-upload"> <div class="img-upload-btn"> ',f&&(i+=' <input type="file" name="" id="wx-upload" multiple="multiple" accept="image/gif, image/png, image/jpeg, image/x-png, image.jpg"> '),i+=" </div> </div> </div> "),i+=' <div class="review-content-container"> <textarea class="review-content enable-scroll" placeholder="\u4eb2\uff0c\u4e94\u661f\u597d\u8bc4\uff0c\u7acb\u8fd43~10\u5143\u968f\u673a\u4ee3\u91d1\u5238\u54e6\uff01">',i+=g(h),i+='</textarea> <p>\u8bc4\u8bba\u5185\u5bb9\u81f3\u5c1110\u4e2a\u5b57~</p> </div> <a class="btn btn-main btn-block btn-main btn-post disable">\u53d1\u8868\u8bc4\u4ef7</a> </div> </div> ',new k(i)}),/*v:6*/
 a("success/index",function(a){"use strict";var b=this,c=(b.$helpers,a.showNavBar),d=a.WX,e="";return c&&(e+=' <header class="bar bar-nav"> <h1 class="title">\u652f\u4ed8\u6210\u529f</h1> </header> '),e+=" ",e+=d?' <div class="content content-padded"> <div class="padding-top-bottom"> <p> <svg version="1.1" id="icon-success" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve"> <circle fill="#87C34B" cx="15" cy="15" r="15"/> <polygon fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" points="12.791,18.624 6.604,12.437 4.571,14.469 10.758,20.656 12.791,22.689 14.824,20.656 25.828,9.652 23.795,7.619 "/> </svg> \u652f\u4ed8\u5b8c\u6210\uff0c\u7b49\u5f85\u4fdd\u6d01\u5e08\u4e0a\u95e8\u4e3a\u60a8\u670d\u52a1\u5427\uff01 </p> </div> <div class="border-top"> <p>\u670d\u52a1\uff1a<span class="order-name">\u5bb6\u653f\u670d\u52a1</span></p> <p>\u65f6\u95f4\uff1a<span class="order-time">2015\u5e747\u670810\u65e5 10:00</span></p> </div> <div class="border-top"> <p>\u5b9e\u4ed8\uff1a <span class="order-result">58\u5143</span></p> </div> <div class="box-center btn-group"> <a class="btn btn-positive my-order">\u6211\u7684\u9884\u7ea6</a> <a class="btn btn-positive btn-home">\u7ee7\u7eed\u8d2d\u4e70</a> </div> </div> ':' <div class="content content-padding"> <div class="box-center"> <p>\u8ba2\u5355\u652f\u4ed8\u6210\u529f\uff0c\u7a0d\u540e\u4f1a\u6709\u58f9\u7ba1\u5bb6\u5de5\u4f5c\u4eba\u5458\u8054\u7cfb\u4f60~</p> </div> <a class="btn btn-positive btn-block my-order">\u67e5\u770b\u6211\u7684\u9884\u7ea6</a> </div> ',new k(e)}),/*v:1*/
 a("success/refund",function(a){"use strict";var b=this,c=(b.$helpers,a.showNavBar),d="";return c&&(d+=' <header class="bar bar-nav"> <a class="left-button back-button"> <div class="icon icon-left-nav"></div> </a> <h1 class="title">\u7533\u8bf7\u6210\u529f</h1> </header> '),d+=' <div class="content content-padding"> <div class="text-center"> <p class="title-msg text-danger">\u7533\u8bf7\u5df2\u63d0\u4ea4\u6210\u529f</p> <p>\u9884\u8ba1\u57283-10\u5de5\u4f5c\u65e5\u5185\u5230\u8d26</p> <p>\u5982\u6709\u7591\u95ee\u8bf7\u62e8\u6253 ',d+=c?' <span class="service-telephone text-danger">400-032-8170</span> ':' <a href="tel:400-032-8170">400-032-8170</a> ',d+=' </p> </div> <div class="btn-box"> <div class="btn btn-block back-button">\u8fd4\u56de\u9996\u9875</div> </div> </div> ',new k(d)})}();

+ 2 - 4
www/webapp/o2o/js/model/cart.js

@@ -83,11 +83,9 @@ define(['base', '$', 'native', 'product'], function(base, $, native, product) {
 			}
 		});
 		this.petInfo = this.getCache('petInfo', null, {
-			petID: '',
+			id: '',
 			productID: '',
-			petName: '',
-			petWeight: '',
-			petPrice: ''
+			price: ''
 		});
 	};
 

+ 4 - 8
www/webapp/o2o/js/model/order.js

@@ -17,19 +17,14 @@ define(['base', '$', 'native', 'product', 'api'], function (base, $, native, pro
     this.productType = '';
     this.productID = '';
     this.productCount = 1;
-    this.petID = '';
-    this.petName = '';
-    this.petWeight = '';
-    this.petPrice = '';
+    this.price = '';
     this.couponID = '';
     this.stationID = this.getCache('stationID', null, '');
     this.cacheReview = this.getCache('cacheReview', null, '');
     this.precedence = ''; // 是否加急
     this.extraService = [];
     this.extraServiceType = [];
-    // this.bath = '';     // 药浴
-    // this.desinsectization = ''; // 驱虫
-    // this.barbering = ''; // 剃毛
+
     this.serviceName = '';
     this.servicePrice = '';
     this.appendID = '';
@@ -48,7 +43,6 @@ define(['base', '$', 'native', 'product', 'api'], function (base, $, native, pro
     this.bookingDate = '';
     this.productType = '';
     this.productID = '';
-    this.petID = '';
     this.extraService = [];
     this.serviceName = '';
     this.servicePrice = '';
@@ -96,6 +90,8 @@ define(['base', '$', 'native', 'product', 'api'], function (base, $, native, pro
       coupons: JSON.stringify(coupons),
       station: this.stationID,
       type: this.productType,
+      counts:this.counts,
+      extra:this.extra,
       tech_id: this.beautician.id,
       user_id: userID,
       order_channel: channel