Browse Source

merge payment

stanley-king 9 years ago
parent
commit
2f9b9bf1a0
43 changed files with 1247 additions and 615 deletions
  1. 40 20
      admin/control/bonus.php
  2. 263 0
      admin/templates/default/bonus.bonus_type_add_random_form.php
  3. 4 4
      core/framework/function/core.php
  4. 4 7
      data/logic/buy.logic.php
  5. 2 2
      data/logic/buy_1.logic.php
  6. 3 3
      data/logic/buy_virtual.logic.php
  7. 4 4
      data/logic/order.logic.php
  8. 1 0
      data/logic/payment.logic.php
  9. 1 1
      data/model/arrival_notice.model.php
  10. 2 2
      data/model/buy.model.php
  11. 1 1
      data/model/circle_member.model.php
  12. 1 1
      data/model/consult.model.php
  13. 3 3
      data/model/goods.model.php
  14. 15 5
      data/model/mb_user_token.model.php
  15. 29 31
      data/model/member.model.php
  16. 2 2
      data/model/order.model.php
  17. 3 3
      data/model/p_xianshi.model.php
  18. 6 6
      data/model/p_xianshi_goods.model.php
  19. 1 1
      data/model/predeposit.model.php
  20. 4 0
      helper/func.php
  21. 11 1
      mobile/control/app_pay.php
  22. 32 53
      mobile/control/bonus.php
  23. 83 68
      mobile/control/control.php
  24. 1 1
      mobile/control/crash_log.php
  25. 14 9
      mobile/control/logout.php
  26. 36 5
      mobile/control/member_address.php
  27. 6 1
      mobile/control/member_bonus.php
  28. 47 22
      mobile/control/member_buy.php
  29. 26 1
      mobile/control/member_cart.php
  30. 156 117
      mobile/control/member_chat.php
  31. 63 45
      mobile/control/member_favorites.php
  32. 16 9
      mobile/control/member_feedback.php
  33. 16 9
      mobile/control/member_index.php
  34. 3 5
      mobile/control/member_info.php
  35. 48 23
      mobile/control/member_invoice.php
  36. 3 6
      mobile/control/member_login.php
  37. 157 50
      mobile/control/member_order.php
  38. 16 9
      mobile/control/member_payment.php
  39. 15 7
      mobile/control/member_voucher.php
  40. 51 33
      mobile/control/member_vr_buy.php
  41. 35 17
      mobile/control/member_vr_order.php
  42. 21 27
      mobile/templates/default/express_info.php
  43. 2 1
      mobile/util/errcode.php

+ 40 - 20
admin/control/bonus.php

@@ -6,9 +6,11 @@
  *
  ***/
 defined('InShopNC') or exit('Access Invalid!');
+
 class bonusControl extends SystemControl
 {
-    public function __construct(){
+    public function __construct()
+    {
         parent::__construct();
     }
 
@@ -16,19 +18,28 @@ class bonusControl extends SystemControl
     {
         $bonus_type = Model('bonus_type');
         $bonus_list = $bonus_type->getAll();
-        Tpl::output('bonus_list', $bonus_list) ;
-        $this->show_menu('bonus','bonus_type_list');
+        Tpl::output('bonus_list', $bonus_list);
+        $this->show_menu('bonus', 'bonus_type_list');
         Tpl::showpage('bonus.bonus_type_list');
     }
 
-    public function bonus_type_addOp() {
-        $this->show_menu('bonus','bonus_type_add');
+    public function bonus_type_addOp()
+    {
+        $this->show_menu('bonus', 'bonus_type_add');
         $this->bonus_form();
     }
 
-    public function bonus_type_editOp() {
+    // 添加随机红包
+    public function bonus_type_add_randomOp()
+    {
+        $this->show_menu('bonus', 'bonus_type_add_random');
+        $this->bonus_add_random_form();
+    }
+
+    public function bonus_type_editOp()
+    {
         $id = $_GET['id'];
-        $this->show_menu('type','bonus_type_edit');
+        $this->show_menu('type', 'bonus_type_edit');
         $this->bonus_form($id);
     }
 
@@ -45,12 +56,10 @@ class bonusControl extends SystemControl
         );
         $bonus_type = Model('bonus_type');
         $bonus_type->save($bonus_value, $type_id);
-        if(intval($_POST['send_type']) === 1)
-        {
+        if (intval($_POST['send_type']) === 1) {
             $bonus_file = $_FILES['bonus_file'];
-            if($bonus_file && !empty($bonus_file['name']))
-            {
-                if ($bonus_file['tmp_name'] == ""){
+            if ($bonus_file && !empty($bonus_file['name'])) {
+                if ($bonus_file['tmp_name'] == "") {
                     $this->setError('上传失败,请联系服务器管理员。');
                     return false;
                 }
@@ -65,7 +74,7 @@ class bonusControl extends SystemControl
     private function bonus_form($id = 0)
     {
         Tpl::output('id', $id);
-        if($id > 0){
+        if ($id > 0) {
             $bonus_type = Model('bonus_type');
             $bonus_type_data = $bonus_type->get($id);
             Tpl::output('data', $bonus_type_data[0]);
@@ -73,24 +82,35 @@ class bonusControl extends SystemControl
         Tpl::showpage('bonus.bonus_type_form');
     }
 
-    private function show_menu($menu_type,$menu_key='')
+    private function bonus_add_random_form($id = 0)
+    {
+        Tpl::output('id', $id);
+        if ($id > 0) {
+            $bonus_type = Model('bonus_type');
+            $bonus_type_data = $bonus_type->get($id);
+            Tpl::output('data', $bonus_type_data[0]);
+        }
+        Tpl::showpage('bonus.bonus_type_add_random_form');
+    }
+
+    private function show_menu($menu_type, $menu_key = '')
     {
         $menu_array = array();
         switch ($menu_type) {
             case 'bonus':
                 $menu_array = array(
-                    1=>array('menu_key'=>'bonus_type_list','menu_name'=>'已发红包', 'menu_url'=>'index.php?act=bonus&op=bonus_type'),
-                    2=>array('menu_key'=>'bonus_type_add','menu_name'=>'添加定向红包', 'menu_url'=>'index.php?act=bonus&op=bonus_type_add'),
-                    3=>array('menu_key'=>'bonus_type_add_random','menu_name'=>'添加随机红包', 'menu_url'=>'index.php?act=bonus&op=bonus_type_add_random'),
+                    1 => array('menu_key' => 'bonus_type_list', 'menu_name' => '已发红包', 'menu_url' => 'index.php?act=bonus&op=bonus_type'),
+                    2 => array('menu_key' => 'bonus_type_add', 'menu_name' => '添加定向红包', 'menu_url' => 'index.php?act=bonus&op=bonus_type_add'),
+                    3 => array('menu_key' => 'bonus_type_add_random', 'menu_name' => '添加随机红包', 'menu_url' => 'index.php?act=bonus&op=bonus_type_add_random'),
                 );
                 break;
             case 'type':
                 $menu_array = array(
-                    1=>array('menu_key'=>'bonus_type_edit','menu_name'=>'编辑红包', 'menu_url'=>'index.php?act=bonus&op=bonus_type_edit')
+                    1 => array('menu_key' => 'bonus_type_edit', 'menu_name' => '编辑红包', 'menu_url' => 'index.php?act=bonus&op=bonus_type_edit')
                 );
                 break;
         }
-        Tpl::output('menu',$menu_array);
-        Tpl::output('menu_key',$menu_key);
+        Tpl::output('menu', $menu_array);
+        Tpl::output('menu_key', $menu_key);
     }
 }

+ 263 - 0
admin/templates/default/bonus.bonus_type_add_random_form.php

@@ -0,0 +1,263 @@
+<?php defined('InShopNC') or exit('Access Invalid!'); ?>
+
+<div class="page">
+    <!-- 页面导航 -->
+    <div class="fixed-bar">
+        <div class="item-title">
+            <h3>红包管理</h3>
+            <ul class="tab-base">
+                <?php foreach ($output['menu'] as $menu) {
+                    if ($menu['menu_key'] == $output['menu_key']) { ?>
+                        <li><a href="JavaScript:void(0);" class="current"><span><?php echo $menu['menu_name']; ?></span></a>
+                        </li>
+                    <?php } else { ?>
+                        <li>
+                            <a href="<?php echo $menu['menu_url']; ?>"><span><?php echo $menu['menu_name']; ?></span></a>
+                        </li>
+                    <?php }
+                } ?>
+            </ul>
+            </ul>
+        </div>
+    </div>
+
+    <div class="fixed-empty"></div>
+    <form id="type_form" method="post" enctype="multipart/form-data" action="index.php?act=bonus&op=bonus_type_save">
+        <input type="hidden" name="type_id" value="<?php echo $output['id']; ?>"/>
+        <table class="table tb-type2">
+            <tbody>
+
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="sender">发送者名称</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="sender" name="sender" class="txt"
+                                                 value="<?php echo isset($output['data']) ? $output['data']['sender'] : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="hb_words">祝福语</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="hb_words" name="hb_words" class="txt"
+                                                 value="<?php echo isset($output['data']) ? $output['data']['hb_words'] : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="h5_link">H5链接</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="h5_link" name="h5_link" class="txt"
+                                                 value="<?php echo isset($output['data']) ? $output['data']['h5_link'] : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="link_param">链接参数</label></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="link_param" name="link_param" class="txt"
+                                                 value="<?php echo isset($output['data']) ? $output['data']['link_param'] : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+
+
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="link_param">发放总金额</label></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="link_param" name="link_param" class="txt"
+                                                 value="<?php echo isset($output['data']) ? $output['data']['link_param'] : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="link_param">红包最大金额</label></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="link_param" name="link_param" class="txt"
+                                                 value="<?php echo isset($output['data']) ? $output['data']['link_param'] : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="send_start_date">开始发放时间</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="send_start_date" name="send_start_date"
+                                                 class="txt date" readonly="readonly"
+                                                 value="<?php echo isset($output['data']) ? date('Y-m-d', $output['data']['send_start_date']) : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="send_end_date">结束发放时间</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="send_end_date" name="send_end_date" class="txt date"
+                                                 readonly="readonly"
+                                                 value="<?php echo isset($output['data']) ? date('Y-m-d', $output['data']['send_end_date']) : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="use_start_date">开始使用时间</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="use_start_date" name="use_start_date" class="txt date"
+                                                 readonly="readonly"
+                                                 value="<?php echo isset($output['data']) ? date('Y-m-d', $output['data']['use_start_date']) : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+            <tr class="noborder">
+                <td class="required" colspan="2"><label class="validation" for="use_end_date">结束使用时间</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="use_end_date" name="use_end_date" class="txt date"
+                                                 readonly="readonly"
+                                                 value="<?php echo isset($output['data']) ? date('Y-m-d', $output['data']['use_end_date']) : ''; ?>">
+                </td>
+                <td class="vatop tips"></td>
+            </tr>
+            </tbody>
+            <tfoot>
+            <tr class="tfoot">
+                <td colspan="15"><a href="JavaScript:void(0);" class="btn"
+                                    id="submitBtn"><span><?php echo $lang['nc_submit']; ?></span></a></td>
+            </tr>
+            </tfoot>
+        </table>
+    </form>
+</div>
+<link type="text/css" rel="stylesheet"
+      href="<?php echo RESOURCE_SITE_URL . "/js/jquery-ui/themes/ui-lightness/jquery.ui.css"; ?>"/>
+<script src="<?php echo RESOURCE_SITE_URL . "/js/jquery-ui/jquery.ui.js"; ?>"></script>
+<script src="<?php echo RESOURCE_SITE_URL . "/js/jquery-ui/i18n/zh-CN.js"; ?>" charset="utf-8"></script>
+<script>
+    //按钮先执行验证再提交表单
+    $(function () {
+        $("#submitBtn").click(function () {
+            if ($("#type_form").valid()) {
+                $("#type_form").submit();
+            }
+        });
+    });
+    $(document).ready(function () {
+        $("#send_start_date").datepicker();
+        $("#send_end_date").datepicker();
+        $("#use_start_date").datepicker();
+        $("#use_end_date").datepicker();
+        $("#pass_name").datepicker();
+        $("#h5").datepicker();
+        $("#h5_url").datepicker();
+
+        $("#type_form").validate({
+            errorPlacement: function (error, element) {
+                error.appendTo(element.parent().parent().prev().find('td:first'));
+            },
+            rules: {
+                sender: {
+                    required: true
+                },
+                hb_words: {
+                    required: true
+                },
+                h5_link: {
+                    required: true
+                },
+                link_param: {
+                    required: true
+                },
+                type_name: {
+                    required: true
+                },
+                send_start_date: {
+                    required: true,
+                    date: false
+                },
+                send_end_date: {
+                    required: true,
+                    date: false
+                },
+                use_start_date: {
+                    required: true,
+                    date: false
+                },
+                use_end_date: {
+                    required: true,
+                    date: false
+                },
+                _name: {
+                    required: true,
+                    date: false
+                },
+                h5: {
+                    required: true,
+                    date: false
+                },
+                h5_url: {
+                    required: true,
+                    date: false
+                }
+            },
+            messages: {
+                sender: {
+                    required: '发送者名称不能为空'
+                },
+                hb_words: {
+                    required: '祝福语不能为空'
+                },
+                h5_link: {
+                    required: 'H5链接不能为空'
+                },
+                link_param: {
+                    required: '链接参数不能为空'
+                },
+                type_name: {
+                    required: '红包名称不能为空'
+                },
+                send_start_date: {
+                    required: '开始发放时间不能为空'
+                },
+                send_end_date: {
+                    required: '结束发放时间不能为空>'
+                },
+                use_start_date: {
+                    required: '开始使用时间不能为空'
+                },
+                use_end_date: {
+                    required: '结束使用时间不能为空'
+                },
+                pass_name: {
+                    required: '发送者不能为空'
+                },
+                h5: {
+                    required: 'h5链接不能为空'
+                },
+                h5_url: {
+                    required: '链接参数不能为空'
+                }
+            }
+        });
+    });
+
+    $(function () {
+        var textButton = "<input type='text' name='textfield' id='textfield1' class='type-file-text' /><input type='button' name='button' id='button1' value='' class='type-file-button' />"
+        $(textButton).insertBefore("#bonus_file");
+        $("#bonus_file").change(function () {
+            $("#textfield1").val($("#bonus_file").val());
+        });
+    });
+</script>

+ 4 - 4
core/framework/function/core.php

@@ -1716,7 +1716,7 @@ function rcache($key = null, $prefix = '', $fields = '*')
         $data = array($fields => $cache_info);
     }
     // 验证缓存是否过期
-    if (isset($data['cache_expiration_time']) && $data['cache_expiration_time'] < TIMESTAMP) {
+    if (isset($data['cache_expiration_time']) && $data['cache_expiration_time'] < time()) {
         $data = array();
     }
     return $data;
@@ -1739,7 +1739,7 @@ function wcache($key = null, $data = array(), $prefix, $period = 0)
 
     $period = intval($period);
     if ($period != 0) {
-        $data['cache_expiration_time'] = TIMESTAMP + $period * 60;
+        $data['cache_expiration_time'] = time() + $period * 60;
     }
     $ins = Cache::getInstance('cacheredis');
     return $ins->hset($key, $prefix, $data);
@@ -2317,9 +2317,9 @@ function getStoreStateClassName($store_info) {
     if (intval($store_info['store_state']) === 1) {
         $store_end_time = intval($store_info['store_end_time']);
         if ($store_end_time > 0) {
-            if ($store_end_time < TIMESTAMP) {
+            if ($store_end_time < time()) {
                 $result = 'expired';
-            } elseif (($store_end_time - 864000) < TIMESTAMP) {
+            } elseif (($store_end_time - 864000) < time()) {
                 //距离到期10天
                 $result = 'expire';
             }

+ 4 - 7
data/logic/buy.logic.php

@@ -653,7 +653,7 @@ class buyLogic {
             $order['buyer_id'] = $member_id;
             $order['buyer_name'] = $member_name;
             $order['buyer_email'] = $member_email;
-            $order['add_time'] = TIMESTAMP;
+            $order['add_time'] = time();
             $order['payment_code'] = $store_pay_type_list[$store_id];
             $order['order_state'] = $store_pay_type_list[$store_id] == 'online' ? ORDER_STATE_NEW : ORDER_STATE_PAY;
             $order['order_amount'] = $store_final_order_total[$store_id];
@@ -821,12 +821,9 @@ class buyLogic {
      *
      */
     private function _createOrderStep5() {
-        
-        if (is_mobile() == false) {
-            if (empty($this->_post_data['password'])) return ;
-            $buyer_info = Model('member')->getMemberInfoByID($this->_member_info['member_id']);
-            if ($buyer_info['member_paypwd'] == '' || $buyer_info['member_paypwd'] != md5($this->_post_data['password'])) return ;
-        }
+        if (empty($this->_post_data['password'])) return ;
+        $buyer_info	= Model('member')->getMemberInfoByID($this->_member_info['member_id']);
+        if ($buyer_info['member_paypwd'] == '' || $buyer_info['member_paypwd'] != md5($this->_post_data['password'])) return ;
 
         $order_list = $this->_post_data;
 

+ 2 - 2
data/logic/buy_1.logic.php

@@ -527,7 +527,7 @@ class buy_1Logic {
                 //订单状态 置为已支付
                 $data_order = array();
                 $order_list[$key]['order_state'] = $data_order['order_state'] = ORDER_STATE_PAY;
-                $data_order['payment_time'] = TIMESTAMP;
+                $data_order['payment_time'] = time();
                 $data_order['payment_code'] = 'predeposit';
                 $data_order['rcb_amount'] = $order_amount;
                 $result = $model_order->editOrder($data_order,array('order_id'=>$order_info['order_id']));
@@ -621,7 +621,7 @@ class buy_1Logic {
                 //订单状态 置为已支付
                 $data_order = array();
                 $data_order['order_state'] = ORDER_STATE_PAY;
-                $data_order['payment_time'] = TIMESTAMP;
+                $data_order['payment_time'] = time();
                 $data_order['payment_code'] = 'predeposit';
                 $data_order['pd_amount'] = $order_amount;
                 $result = $model_order->editOrder($data_order,array('order_id'=>$order_info['order_id']));

+ 3 - 3
data/logic/buy_virtual.logic.php

@@ -170,7 +170,7 @@ class buy_virtualLogic {
         $order['buyer_name'] = $member_info['member_name'];
         $order['buyer_phone'] = $input['buyer_phone'];
         $order['buyer_msg'] = $input['buyer_msg'];
-        $order['add_time'] = TIMESTAMP;
+        $order['add_time'] = time();
         $order['order_state'] = ORDER_STATE_NEW;
         $order['order_amount'] = $pay_total;
         $order['goods_id'] = $goods_info['goods_id'];
@@ -258,7 +258,7 @@ class buy_virtualLogic {
             // 订单状态 置为已支付
             $data_order = array();
             $order_info['order_state'] = $data_order['order_state'] = ORDER_STATE_PAY;
-            $data_order['payment_time'] = TIMESTAMP;
+            $data_order['payment_time'] = time();
             $data_order['payment_code'] = 'predeposit';
             $data_order['rcb_amount'] = $order_info['order_amount'];
             $result = $model_vr_order->editOrder($data_order,array('order_id'=>$order_info['order_id']));
@@ -328,7 +328,7 @@ class buy_virtualLogic {
             // 订单状态 置为已支付
             $data_order = array();
             $data_order['order_state'] = ORDER_STATE_PAY;
-            $data_order['payment_time'] = TIMESTAMP;
+            $data_order['payment_time'] = time();
             $data_order['payment_code'] = 'predeposit';
             $data_order['pd_amount'] = $order_amount;
             $result = $model_vr_order->editOrder($data_order,array('order_id'=>$order_info['order_id']));

+ 4 - 4
data/logic/order.logic.php

@@ -105,7 +105,7 @@ class orderLogic {
 
             //更新订单状态
             $update_order = array();
-            $update_order['finnshed_time'] = TIMESTAMP;
+            $update_order['finnshed_time'] = time();
             $update_order['order_state'] = ORDER_STATE_SUCCESS;
             $update = $model_order->editOrder($update_order,array('order_id'=>$order_id));
             if (!$update) {
@@ -249,7 +249,7 @@ class orderLogic {
             $data['deliver_explain'] = $post['deliver_explain'];
             $data['daddress_id'] = intval($post['daddress_id']);
             $data['shipping_express_id'] = intval($post['shipping_express_id']);
-            $data['shipping_time'] = TIMESTAMP;
+            $data['shipping_time'] = time();
 
             $condition = array();
             $condition['order_id'] = $order_id;
@@ -262,7 +262,7 @@ class orderLogic {
             $data = array();
             $data['shipping_code']  = $post['shipping_code'];
             $data['order_state'] = ORDER_STATE_SEND;
-            $data['delay_time'] = TIMESTAMP;
+            $data['delay_time'] = time();
             $update = $model_order->editOrder($data,$condition);
             if (!$update) {
                 throw new Exception('操作失败');
@@ -358,7 +358,7 @@ class orderLogic {
             //更新订单状态
             $update_order = array();
             $update_order['order_state'] = ORDER_STATE_PAY;
-            $update_order['payment_time'] = ($post['payment_time'] ? strtotime($post['payment_time']) : TIMESTAMP);
+            $update_order['payment_time'] = ($post['payment_time'] ? strtotime($post['payment_time']) : time());
             $update_order['payment_code'] = $post['payment_code'];
             $update = $model_order->editOrder($update_order,array('pay_sn'=>$order_info['pay_sn'],'order_state'=>ORDER_STATE_NEW));
             if (!$update) {

+ 1 - 0
data/logic/payment.logic.php

@@ -46,6 +46,7 @@ class paymentLogic
             $model_pd = Model('predeposit');
 
             $member_id = intval($member_id);
+
             $usebonus = $_GET['usebonus'];
 
             foreach ($order_list as $order_info)

+ 1 - 1
data/model/arrival_notice.model.php

@@ -55,7 +55,7 @@ class arrival_noticeModel extends Model{
      * @return int
      */
     public function addArrivalNotice($insert) {
-        $insert['an_addtime'] = TIMESTAMP;
+        $insert['an_addtime'] = time();
         return $this->insert($insert);
     }
     

+ 2 - 2
data/model/buy.model.php

@@ -431,7 +431,7 @@ class buyModel {
             $order['buyer_id'] = $member_id;
             $order['buyer_name'] = $member_name;
             $order['buyer_email'] = $member_email;
-            $order['add_time'] = TIMESTAMP;
+            $order['add_time'] = time();
             $order['payment_code'] = $store_pay_type_list[$store_id];
             $order['order_state'] = $store_pay_type_list[$store_id] == 'online' ? ORDER_STATE_NEW : ORDER_STATE_PAY;
             $order['order_amount'] = $store_final_order_total[$store_id];
@@ -672,7 +672,7 @@ class buyModel {
                 //订单状态 置为已支付
                 $data_order = array();
                 $data_order['order_state'] = ORDER_STATE_PAY;
-                $data_order['payment_time'] = TIMESTAMP;
+                $data_order['payment_time'] = time();
                 $data_order['payment_code'] = 'predeposit';
                 $data_order['pd_amount'] = $order_amount;
                 $result = $model_order->editOrder($data_order,array('order_id'=>$order_info['order_id']));

+ 1 - 1
data/model/circle_member.model.php

@@ -66,7 +66,7 @@ class circle_memberModel extends Model {
      * @return boolean
      */
     public function addCircleMember($insert) {
-        $insert['cm_jointime'] = TIMESTAMP;
+        $insert['cm_jointime'] = time();
         $result = $this->insert($insert);
         if ($result) {
             dcache($insert['circle_id'], 'circle_managelist');

+ 1 - 1
data/model/consult.model.php

@@ -63,7 +63,7 @@ class consultModel extends Model{
      * @param unknown_type $input
      */
     public function editConsult($condition, $update){
-        $update['consult_reply_time'] = TIMESTAMP;
+        $update['consult_reply_time'] = time();
         return $this->where($condition)->update($update);
     }
 }

+ 3 - 3
data/model/goods.model.php

@@ -353,7 +353,7 @@ class goodsModel extends Model
             return true;
         }
         $condition['goods_id'] = array('in', $goodsid_array);
-        $update['goods_edittime'] = TIMESTAMP;
+        $update['goods_edittime'] = time();
         $result = $this->table('goods')->where($condition)->update($update);
         if ($result) {
             foreach ((array)$goodsid_array as $value) {
@@ -389,7 +389,7 @@ class goodsModel extends Model
             }
             foreach ($val as $k => $v) {
                 // 查询限时折扣时候进行
-                $xianshigoods = $model_xianshigoods->getXianshiGoodsInfo(array('goods_id' => $k, 'start_time' => array('lt', TIMESTAMP), 'end_time' => array('gt', TIMESTAMP)));
+                $xianshigoods = $model_xianshigoods->getXianshiGoodsInfo(array('goods_id' => $k, 'start_time' => array('lt', time()), 'end_time' => array('gt', time())));
                 if (!empty($xianshigoods)) {
                     // 更新价格
                     $this->editGoodsById(array('goods_promotion_price' => $xianshigoods['xianshi_price'], 'goods_promotion_type' => 2), $k);
@@ -1007,7 +1007,7 @@ class goodsModel extends Model
     public function getVirtualGoodsOnlineInfoByID($goods_id)
     {
         $goods_info = $this->getGoodsInfoByID($goods_id, '*');
-        return $goods_info['is_virtual'] == 1 && $goods_info['virtual_indate'] >= TIMESTAMP ? $goods_info : array();
+        return $goods_info['is_virtual'] == 1 && $goods_info['virtual_indate'] >= time() ? $goods_info : array();
     }
 
     /**

+ 15 - 5
data/model/mb_user_token.model.php

@@ -11,8 +11,6 @@ defined('InShopNC') or exit('Access Invalid!');
 
 class mb_user_tokenModel extends Model
 {
-    const token_expire = 3;     // 单位:分钟
-
     public function __construct()
     {
         parent::__construct('mb_user_token');
@@ -58,11 +56,11 @@ class mb_user_tokenModel extends Model
     {
         //生成新的token
         $mb_user_token_info = array();
-        $token = md5($member_name . strval(TIMESTAMP) . strval(rand(0, 999999)));
+        $token = md5($member_name . strval(time()) . strval(rand(0, 999999)));
         $mb_user_token_info['member_id'] = $member_id;
         $mb_user_token_info['member_name'] = $member_name;
         $mb_user_token_info['token'] = $token;
-        $mb_user_token_info['login_time'] = TIMESTAMP;
+        $mb_user_token_info['login_time'] = time();
         $mb_user_token_info['client_type'] = $client;
 
         $condition['member_id'] = $member_id;
@@ -76,7 +74,7 @@ class mb_user_tokenModel extends Model
         $ret = $this->addMbUserToken($mb_user_token_info);
         if ($ret) {
             $key = func::gen_token_key($token);
-            wcache($key, array('info' => serialize($mb_user_token_info)),'',self::token_expire);
+            wcache($key, array('info' => serialize($mb_user_token_info)),'',func::token_expire);
 
             return $token;
         } else {
@@ -85,6 +83,18 @@ class mb_user_tokenModel extends Model
     }
 
     /**
+     * 删除token
+     *
+     * @param $token
+     * @return mixed
+     */
+    public function del_token($token){
+        $key = func::gen_token_key($token);
+        dcache($key);
+        return $this->where(array('token'=>$token))->delete();
+    }
+
+    /**
      * 删除
      *
      * @param int $condition 条件

+ 29 - 31
data/model/member.model.php

@@ -287,7 +287,7 @@ class memberModel extends Model
         if (!empty($member_info['member_login_time'])) {
             $update_info = array(
                 'member_login_num' => ($member_info['member_login_num'] + 1),
-                'member_login_time' => TIMESTAMP,
+                'member_login_time' => time(),
                 'member_old_login_time' => $member_info['member_login_time'],
                 'member_login_ip' => getIp(),
                 'member_old_login_ip' => $member_info['member_login_ip']
@@ -384,7 +384,7 @@ class memberModel extends Model
             $insert['ac_des'] = '买家秀默认相册';
             $insert['ac_sort'] = 1;
             $insert['is_default'] = 1;
-            $insert['upload_time'] = TIMESTAMP;
+            $insert['upload_time'] = time();
             $this->table('sns_albumclass')->insert($insert);
 
             $member_info['member_id'] = $insert_id;
@@ -403,9 +403,9 @@ class memberModel extends Model
         $passwd = trim($param['member_passwd']);
         $member['member_passwd'] = empty($passwd) ? $passwd : md5($passwd);
 
-        $member['member_time'] = TIMESTAMP;
-        $member['member_login_time'] = TIMESTAMP;
-        $member['member_old_login_time'] = TIMESTAMP;
+        $member['member_time'] = time();
+        $member['member_login_time'] = time();
+        $member['member_old_login_time'] = time();
         $member['member_login_ip'] = getIp();
         $member['member_old_login_ip'] = $member['member_login_ip'];
 
@@ -433,9 +433,9 @@ class memberModel extends Model
                     $passwd = trim($param['member_passwd']);
                     $member_info['member_passwd'] = empty($passwd) ? $passwd : md5($passwd);
                 } elseif ($key == 'member_time') {
-                    $member_info['member_time'] = TIMESTAMP;
+                    $member_info['member_time'] = time();
                 } elseif ($key == 'member_login_time') {
-                    $member_info['member_login_time'] = TIMESTAMP;
+                    $member_info['member_login_time'] = time();
                 } elseif ($key == 'member_login_ip') {
                     $member_info['member_login_ip'] = getIp();
                 } else {
@@ -768,14 +768,14 @@ class memberModel extends Model
         }
 
         // 预存款订单查询条件
-        $condition = 'lg_freeze_amount<>0.0 or lg_av_amount<0.0 and lg_member_name=\'' . $member_info['member_name'] . '\'';
+        $condition = 'lg_freeze_amount<>0.0 or lg_av_amount<0.0 and lg_member_id=\'' . $member_info['member_id'] . '\'';
         
         $model_pd = Model('predeposit');
         $tmp_log_list = array();
-        $pd_log_list = $model_pd->getPdLogList($condition,'','*','lg_id desc');
+        $pd_log_list = $model_pd->getPdLogList($condition,'','*','lg_id asc');
 
         // 订单数据查询条件(只查询已完成订单), 生成订单查询语句, 在详细查询阶段进行批量查询
-        $condition_order = "refund_state=0 and delete_state=0 and order_id in(";
+        $condition_order = "refund_state=0 and delete_state=0 and order_sn in(";
         foreach ($pd_log_list as $key => $value) {
             $use_list = array();
             $match = '';
@@ -800,31 +800,29 @@ class memberModel extends Model
         $order_list = $model_order->getOrderList($condition_order, '', '*', 'order_id desc','', array('order_common','order_goods','store'));
 
         // 订单列表处理
+        $pd_result_list = array();
         foreach ($order_list as $key => $value) {
-            $item = array();
-            // 查询订单
-            // 图片, 名字, 数量
-            $order_id = $value['order_id'];
+
+            $order_id = $value['order_sn'];
             $use_list = $tmp_log_list[$order_id];
             if (empty($use_list)) continue; // 该订单为其他消耗, 非购买商品
 
-            $item['goods_name'] = $value['goods_name'];
-            $item['goods_num'] = $value['goods_num'];
-            $item['goods_image'] = $value['goods_image'];
-            array_push($use_list['item'], $item);
-            array_push($tmp_log_list[$order_id], $item);
-        }
-
-        // 最终结果组装
-        $pd_result_list = array();
-        foreach ($tmp_log_list as $key => $value) {
-            $use_list = array();
-            $use_list['order_id']= $value['order_id'];
-            $use_list['order_add_time']= $value['order_add_time'];
-            $use_list['order_value']= $value['order_value'];
-            $use_list['item']= $value['item'];
-
-            array_push($pd_result_list, $use_list);
+            $result_list = array();
+            $result_list['order_id']= $use_list['order_id'];
+            $result_list['order_add_time']= $use_list['order_add_time'];
+            $result_list['order_value']= $use_list['order_value'];
+            $result_list['item'] = array();
+
+            // 查询订单goods数据, 图片, 名字, 数量
+            foreach ($value['extend_order_goods'] as $keyitem => $valueitem) {
+                $item = array();
+                $item['goods_name'] = $valueitem['goods_name'];
+                $item['goods_num'] = $valueitem['goods_num'];
+                $item['goods_image'] = cthumb($valueitem['goods_image'], 60, $valueitem['store_id']);
+                array_push($result_list['item'], $item);
+            }
+            
+            array_push($pd_result_list, $result_list);
         }
 
         return $pd_result_list;

+ 2 - 2
data/model/order.model.php

@@ -373,7 +373,7 @@ class orderModel extends Model {
 	 */
 	public function addOrderLog($data) {
 	    $data['log_role'] = str_replace(array('buyer','seller','system','admin'),array('买家','商家','系统','管理员'), $data['log_role']);
-	    $data['log_time'] = TIMESTAMP;
+	    $data['log_time'] = time();
 	    return $this->table('order_log')->insert($data);
 	}
 
@@ -483,7 +483,7 @@ class orderModel extends Model {
 	       //买家投诉
 	       case 'complain':
 	           $state = in_array($order_info['order_state'],array(ORDER_STATE_PAY,ORDER_STATE_SEND)) ||
-	               intval($order_info['finnshed_time']) > (TIMESTAMP - C('complain_time_limit'));
+	               intval($order_info['finnshed_time']) > (time() - C('complain_time_limit'));
 	           break;
 
 	       case 'payment':

+ 3 - 3
data/model/p_xianshi.model.php

@@ -166,13 +166,13 @@ class p_xianshiModel extends Model{
      *
      */
     public function getXianshiExtendInfo($xianshi_info) {
-        if($xianshi_info['end_time'] > TIMESTAMP) {
+        if($xianshi_info['end_time'] > time()) {
             $xianshi_info['xianshi_state_text'] = $this->xianshi_state_array[$xianshi_info['state']];
         } else {
             $xianshi_info['xianshi_state_text'] = '已结束';
         }
 
-        if($xianshi_info['state'] == self::XIANSHI_STATE_NORMAL && $xianshi_info['end_time'] > TIMESTAMP) {
+        if($xianshi_info['state'] == self::XIANSHI_STATE_NORMAL && $xianshi_info['end_time'] > time()) {
             $xianshi_info['editable'] = true;
         } else {
             $xianshi_info['editable'] = false;
@@ -185,7 +185,7 @@ class p_xianshiModel extends Model{
      * 过期修改状态
      */
     public function editExpireXianshi($condition) {
-        $condition['end_time'] = array('lt', TIMESTAMP);
+        $condition['end_time'] = array('lt', time());
         
         // 更新商品促销价格
         $xianshigoods_list = Model('p_xianshi_goods')->getXianshiGoodsList($condition);

+ 6 - 6
data/model/p_xianshi_goods.model.php

@@ -169,8 +169,8 @@ class p_xianshi_goodsModel extends Model{
     public function getXianshiGoodsCommendList($count = 4) {
         $condition = array();
         $condition['state'] = self::XIANSHI_GOODS_STATE_NORMAL;
-        $condition['start_time'] = array('lt', TIMESTAMP);
-        $condition['end_time'] = array('gt', TIMESTAMP);
+        $condition['start_time'] = array('lt', time());
+        $condition['end_time'] = array('gt', time());
         $xianshi_list = $this->getXianshiGoodsExtendList($condition, null, 'xianshi_recommend desc', '*', $count);
         return $xianshi_list;
     }
@@ -186,14 +186,14 @@ class p_xianshi_goodsModel extends Model{
         $info = $this->_rGoodsXianshiCache($goods_id);
         if(empty($info)) {
             $condition['state'] = self::XIANSHI_GOODS_STATE_NORMAL;
-            $condition['end_time'] = array('gt', TIMESTAMP);
+            $condition['end_time'] = array('gt', time());
             $condition['goods_id'] = $goods_id;
             $xianshi_goods_list = $this->getXianshiGoodsExtendList($condition, null, 'start_time asc', '*', 1);
             $info['info'] = serialize($xianshi_goods_list[0]);
             $this->_wGoodsXianshiCache($goods_id, $info);
         }
         $xianshi_goods_info = unserialize($info['info']);
-        if (!empty($xianshi_goods_info) && ($xianshi_goods_info['start_time'] > TIMESTAMP || $xianshi_goods_info['end_time'] < TIMESTAMP)) {
+        if (!empty($xianshi_goods_info) && ($xianshi_goods_info['start_time'] > time() || $xianshi_goods_info['end_time'] < time())) {
             $xianshi_goods_info = array();
         }
         return $xianshi_goods_info;
@@ -220,8 +220,8 @@ class p_xianshi_goodsModel extends Model{
     private function _getXianshiGoodsListByGoods($goods_id_string) {
         $condition = array();
         $condition['state'] = self::XIANSHI_GOODS_STATE_NORMAL;
-        $condition['start_time'] = array('lt', TIMESTAMP);
-        $condition['end_time'] = array('gt', TIMESTAMP);
+        $condition['start_time'] = array('lt', time());
+        $condition['end_time'] = array('gt', time());
         $condition['goods_id'] = array('in', $goods_id_string);
         $xianshi_goods_list = $this->getXianshiGoodsExtendList($condition, null, 'xianshi_goods_id desc', '*');
         return $xianshi_goods_list;

+ 1 - 1
data/model/predeposit.model.php

@@ -255,7 +255,7 @@ class predepositModel extends Model {
 
         $data_log['lg_member_id'] = $data['member_id'];
         $data_log['lg_member_name'] = $data['member_name'];
-        $data_log['lg_add_time'] = TIMESTAMP;
+        $data_log['lg_add_time'] = time();//TIMESTAMP;//手机端有bug, 不能用宏
         $data_log['lg_type'] = $change_type;
 
         $data_msg['time'] = date('Y-m-d H:i:s');

+ 4 - 0
helper/func.php

@@ -8,6 +8,10 @@
 
 class func
 {
+
+    const auth_code_expire = 5;   // 单位:分钟
+    const token_expire = 3;     // 单位:分钟
+
     // 生成验证码key
     public static function gen_auth_code_key($mobile)
     {

+ 11 - 1
mobile/control/app_pay.php

@@ -15,7 +15,7 @@ require_once(WXPAY_PATH . '/lib/WxPay.Exception.php');
 require_once(WXPAY_PATH . '/lib/WxPay.Notify.php');
 
 
-class app_payControl extends mobileMemberControl
+class app_payControl extends mbMemberControl
 {
     private static $pay_types = array('wxpay', 'alipay');
 
@@ -32,6 +32,11 @@ class app_payControl extends mobileMemberControl
      */
     public function uniorderOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $pay_sn = $_GET['paysn'];
         $payment = $_GET['payment'];
 
@@ -76,6 +81,11 @@ class app_payControl extends mobileMemberControl
      */
     public function orderqueryOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $pay_sn = $_GET['paysn'];
         $payment = $_GET['payment'];
         $tractid = $_GET['transaction_id'];

+ 32 - 53
mobile/control/bonus.php

@@ -7,7 +7,7 @@
  ***/
 defined('InShopNC') or exit('Access Invalid!');
 
-class bonusControl extends mobileMemberExControl
+class bonusControl extends mbMemberControl
 {
     public function __construct()
     {
@@ -15,9 +15,10 @@ class bonusControl extends mobileMemberExControl
     }
 
     /**
-    * 获取红包类型
-    */
-    private function getBonusType($type_id) {
+     * 获取红包类型
+     */
+    private function getBonusType($type_id)
+    {
         static $bonustype;
         if (empty($bonustype)) {
             $result = Model()->table('bonus_type')->select();
@@ -31,25 +32,18 @@ class bonusControl extends mobileMemberExControl
     }
 
     /**
-    * 获取红包列表, 红包使用列表数据
-    */
+     * 获取红包列表, 红包使用列表数据
+     */
     public function bonus_listOp()
     {
-        // 检验token
-        $token = $_GET['key'];
-
-        if (empty($token)) {
-            return joutput_error(errcode::ErrInputParam, '输入参数有误');
-        }
-
-        if ($this->checkToken($token) != errcode::Success) {
-            return joutput_error($this->err_code, errcode::msg($this->err_code));
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
         }
 
         // 根据token获取用户ID
+        $condition = array();
         $condition['user_id'] = $this->member_info['member_id'];
-        //$condition['user_id'] = 36455;
-
         if (!empty($condition['user_id'])) {
 
             $ret = Model()->table("user_bonus")->where($condition)->select();
@@ -92,35 +86,36 @@ class bonusControl extends mobileMemberExControl
     /**
      * 添加余额
      */
-    private function _add_money_ex($member_id, $pointsnum, $order_sn, $pointsdesc){
-        
+    private function _add_money_ex($member_id, $pointsnum, $order_sn, $pointsdesc)
+    {
+
         $obj_validate = new Validate();
         $obj_validate->validateparam = array(
-            array("input"=>$member_id, "require"=>"true", "message"=>Language::get('admin_points_member_error_again')),
-            array("input"=>$pointsnum, "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=>1,"message"=>Language::get('admin_points_points_min_error'))
+            array("input" => $member_id, "require" => "true", "message" => Language::get('admin_points_member_error_again')),
+            array("input" => $pointsnum, "require" => "true", 'validator' => 'Compare', 'operator' => ' >= ', 'to' => 1, "message" => Language::get('admin_points_points_min_error'))
         );
         $error = $obj_validate->validate();
-        if ($error != ''){
+        if ($error != '') {
             return -1;
         }
-        
+
         $money = abs(floatval($pointsnum));
-        $memo=trim($pointsdesc);
+        $memo = trim($pointsdesc);
         if ($money <= 0) {
             return -2;  // 输入的金额必需大于0
         }
         //查询会员信息
         $obj_member = Model('member');
         $member_id = intval($member_id);
-        $member_info = $obj_member->getMemberInfo(array('member_id'=>$member_id));
+        $member_info = $obj_member->getMemberInfo(array('member_id' => $member_id));
 
-        if (!is_array($member_info) || count($member_info)<=0){
+        if (!is_array($member_info) || count($member_info) <= 0) {
             return -3;  // 用户信息不对
         }
-        $available_predeposit=floatval($member_info['available_predeposit']);
-        $freeze_predeposit=floatval($member_info['freeze_predeposit']);
+        $available_predeposit = floatval($member_info['available_predeposit']);
+        $freeze_predeposit = floatval($member_info['freeze_predeposit']);
         $model_pd = Model('predeposit');
-       
+
         try {
             //扣除冻结的预存款
             $data = array();
@@ -131,7 +126,7 @@ class bonusControl extends mobileMemberExControl
             $data['admin_name'] = $admininfo['name'];
             $data['pdr_sn'] = $order_sn;
             $data['lg_desc'] = $memo;
-            $model_pd->changePd("bonus_add_money",$data);
+            $model_pd->changePd("bonus_add_money", $data);
             return 0; // 操作成功
         } catch (Exception $e) {
             return -7;  // 操作异常
@@ -142,32 +137,20 @@ class bonusControl extends mobileMemberExControl
     // 红包绑定
     public function bind_bonusOp()
     {
-        // 检验token
-        $token = $_GET['key'];
-
-        if (empty($token)) {
-            return joutput_error(errcode::ErrInputParam, '输入参数有误');
-        }
-
-        if ($this->checkToken($token) != errcode::Success) {
-            return joutput_error($this->err_code, errcode::msg($this->err_code));
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
         }
-
-        // 技术债务
-        //$this->member_info['member_id'] = 36455;
-
         // 获取user_id
+        $condition = array();
         $condition['member_id'] = $this->member_info['member_id'];
-
         if (!empty($condition['member_id'])) {
 
             // get member_mobile 获取用户手机号
             $member = Model()->table("member")->field("member_mobile")->where($condition)->select();
-
             if (!empty($member)) {
 
                 $user_bonus = Model()->table("user_bonus")->where(array('user_mobile' => $member[0]['member_mobile'], 'user_id' => 0))->select();
-
                 // 更新user_bonus
                 if (!empty($user_bonus)) {
 
@@ -190,27 +173,23 @@ class bonusControl extends mobileMemberExControl
                     $ret = $this->_add_money_ex($data['user_id'], $user_bonus[0]['bonus_value'], $user_bonus[0]["bonus_sn"]);
                     if (0 != $ret) {
                         Model::rollback();
-                        return joutput_error(errcode::ErrDB, "数据库错误");
+                        return joutput_error(errcode::ErrDB);
                     }
 
                     $ret = Model()->table('user_bonus')->where(array('user_mobile' => $member[0]['member_mobile']))->update($data);
 
                     if (0 == $ret) {
                         Model::rollback();
-                        return joutput_error(errcode::ErrDB, "数据库错误");
+                        return joutput_error(errcode::ErrDB);
                     }
 
                     Model::commit();
-
-                    // 返回存在红包
                     joutput_data(array('have_bonus' => 1, 'bonus_info' => $bonus_info));
-
                 } else {
                     joutput_data(array('have_bonus' => 0, 'bonus_info' => null));
                 }
-
             } else {
-                return joutput_error(errcode::ErrTokenExpire, "用户手机号没绑定");
+                return joutput_error(errcode::ErrMobileNotBinded);
             }
         }
     }

+ 83 - 68
mobile/control/control.php

@@ -38,77 +38,76 @@ class mobileHomeControl extends mobileControl
     }
 }
 
-class mobileMemberControl extends mobileControl
-{
-    protected $member_info = array();
-
-    public function __construct()
-    {
-        parent::__construct();
-
-        $model_mb_user_token = Model('mb_user_token');
-        $key = $_POST['key'];
-        if (empty($key)) {
-            $key = $_GET['key'];
-        }
-        $mb_user_token_info = $model_mb_user_token->getMbUserTokenInfoByToken($key);
-        if (empty($mb_user_token_info)) {
-            return joutput_error(errcode::ErrLogin, '请登录');
-        }
-
-        $model_member = Model('member');
-        $this->member_info = $model_member->getMemberInfoByID($mb_user_token_info['member_id']);
-        $this->member_info['client_type'] = $mb_user_token_info['client_type'];
-        if (empty($this->member_info)) {
-            return joutput_error(errcode::ErrLogin, '请登录');
-        } else {
-            //读取卖家信息
-            $seller_info = Model('seller')->getSellerInfo(array('member_id' => $this->member_info['member_id']));
-            $this->member_info['store_id'] = $seller_info['store_id'];
-        }
-    }
-}
+//class mobileMemberControl extends mobileControl
+//{
+//    protected $member_info = array();
+//
+//    public function __construct()
+//    {
+//        parent::__construct();
+//
+//        $model_mb_user_token = Model('mb_user_token');
+//        $key = $_POST['key'];
+//        if (empty($key)) {
+//            $key = $_GET['key'];
+//        }
+//        $mb_user_token_info = $model_mb_user_token->getMbUserTokenInfoByToken($key);
+//        if (empty($mb_user_token_info)) {
+//            return joutput_error(errcode::ErrLogin, '请登录');
+//        }
+//
+//        $model_member = Model('member');
+//        $this->member_info = $model_member->getMemberInfoByID($mb_user_token_info['member_id']);
+//        $this->member_info['client_type'] = $mb_user_token_info['client_type'];
+//        if (empty($this->member_info)) {
+//            return joutput_error(errcode::ErrLogin, '请登录');
+//        } else {
+//            //读取卖家信息
+//            $seller_info = Model('seller')->getSellerInfo(array('member_id' => $this->member_info['member_id']));
+//            $this->member_info['store_id'] = $seller_info['store_id'];
+//        }
+//    }
+//}
 
 /**
  * Class mobileMemberControl
  */
-class mobileMemberExControl extends mobileControl
-{
-    protected $member_info = array();
-    public $err_code = errcode::Success;
-
-    public function __construct()
-    {
-        parent::__construct();
-    }
-
-    public function checkToken($token)
-    {
-        $model_mb_user_token = Model('mb_user_token');
-        $mb_user_token_info = $model_mb_user_token->getMbUserTokenInfoByToken($token);
-        if (empty($mb_user_token_info)) {
-            $this->err_code = errcode::ErrLogin;
-            return false;
-        }
-
-        // 读取买家信息
-        $model_member = Model('member');
-        $this->member_info = $model_member->getMemberInfoByID($mb_user_token_info['member_id']);
-        $this->member_info['client_type'] = $mb_user_token_info['client_type'];
-        if (empty($this->member_info)) {
-            $this->err_code = errcode::ErrMemberNotExist;
-            return false;
-        }
-
-        //读取卖家信息
-        $seller_info = Model('seller')->getSellerInfo(array('member_id' => $this->member_info['member_id']));
-        $this->member_info['store_id'] = $seller_info['store_id'];
-
-        $this->err_code = errcode::Success;
-
-        return true;
-    }
-}
+//class mobileMemberExControl extends mobileControl
+//{
+//    protected $member_info = array();
+//    public $err_code = errcode::Success;
+//
+//    public function __construct()
+//    {
+//        parent::__construct();
+//    }
+//
+//    public function checkToken($token)
+//    {
+//        $model_mb_user_token = Model('mb_user_token');
+//        $mb_user_token_info = $model_mb_user_token->getMbUserTokenInfoByToken($token);
+//        if (empty($mb_user_token_info)) {
+//            $this->err_code = errcode::ErrLogin;
+//            return false;
+//        }
+//
+//        // 读取买家信息
+//        $model_member = Model('member');
+//        $this->member_info = $model_member->getMemberInfoByID($mb_user_token_info['member_id']);
+//        $this->member_info['client_type'] = $mb_user_token_info['client_type'];
+//        if (empty($this->member_info)) {
+//            $this->err_code = errcode::ErrMemberNotExist;
+//            return false;
+//        }
+//
+//        //读取卖家信息
+//        $seller_info = Model('seller')->getSellerInfo(array('member_id' => $this->member_info['member_id']));
+//        $this->member_info['store_id'] = $seller_info['store_id'];
+//
+//        $this->err_code = errcode::Success;
+//        return true;
+//    }
+//}
 
 
 /**
@@ -125,8 +124,19 @@ class mbMemberControl extends mobileControl
         parent::__construct();
     }
 
+    /**
+     * 校验token
+     *
+     * @param $token
+     * @return bool
+     */
     public function checkToken($token)
     {
+        if (empty($token)) {
+            $this->err_code = errcode::ErrInputParam;
+            return false;
+        }
+
         $key = func::gen_token_key($token);
         $ret = rcache($key);
         if (empty($ret)) {
@@ -136,6 +146,12 @@ class mbMemberControl extends mobileControl
                 $this->err_code = errcode::ErrLogin;
                 return false;
             }
+            // 判断过期
+            if (time() - $mb_user_token_info['login_time'] > func::token_expire*60) {
+//                $model_mb_user_token->del_token($token);
+                $this->err_code = errcode::ErrTokenExpire;
+                return false;
+            }
         } else {
             $mb_user_token_info = unserialize($ret['info']);
         }
@@ -154,7 +170,6 @@ class mbMemberControl extends mobileControl
         $this->member_info['store_id'] = $seller_info['store_id'];
 
         $this->err_code = errcode::Success;
-
         return true;
     }
 }

+ 1 - 1
mobile/control/crash_log.php

@@ -36,7 +36,7 @@ class crash_logControl extends mobileHomeControl
             }
 
             if (!is_dir($path)) mkdir($path);
-            $file_name = date('Ymd', TIMESTAMP) . '-' . random(4) . '.crash.log';
+            $file_name = date('Ymd', time()) . '-' . random(4) . '.crash.log';
             file_put_contents($path . $file_name, $crash_content, FILE_APPEND);
         } else {
             return joutput_error(errcode::ErrInputParam, '无crash内容');

+ 14 - 9
mobile/control/logout.php

@@ -11,25 +11,31 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class logoutControl extends mobileMemberControl 
+class logoutControl extends mbMemberControl
 {
 
-	public function __construct(){
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 注销
      */
-	public function indexOp()
+    public function indexOp()
     {
-        if(empty($_POST['username']) || !in_array($_POST['client'], $this->client_type_array)) {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        if (empty($_POST['username']) || !in_array($_POST['client'], $this->client_type_array)) {
             output_error('参数错误');
         }
 
         $model_mb_user_token = Model('mb_user_token');
 
-        if($this->member_info['member_name'] == $_POST['username']) {
+        if ($this->member_info['member_name'] == $_POST['username']) {
             $condition = array();
             $condition['member_id'] = $this->member_info['member_id'];
             $condition['client_type'] = $_POST['client'];
@@ -38,6 +44,5 @@ class logoutControl extends mobileMemberControl
         } else {
             output_error('参数错误');
         }
-	}
-
+    }
 }

+ 36 - 5
mobile/control/member_address.php

@@ -11,7 +11,7 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_addressControl extends mobileMemberControl
+class member_addressControl extends mbMemberControl
 {
     const MAX_ADDRESS_COUNT = 10;
 
@@ -25,6 +25,11 @@ class member_addressControl extends mobileMemberControl
      */
     public function address_listOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $model_address = Model('address');
         $address_list = $model_address->getAddressList(array('member_id' => $this->member_info['member_id']));
         joutput_data(array('address_list' => $address_list));
@@ -35,8 +40,12 @@ class member_addressControl extends mobileMemberControl
      */
     public function address_infoOp()
     {
-        $address_id = intval($_POST['address_id']);
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $address_id = intval($_POST['address_id']);
         if (empty($_POST['address_id']) || $address_id < 0) {
             return joutput_error(errcode::ErrParamter, "address_id = {$address_id}. must > 0.");
         }
@@ -58,8 +67,12 @@ class member_addressControl extends mobileMemberControl
      */
     public function address_delOp()
     {
-        $address_id = intval($_POST['address_id']);
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $address_id = intval($_POST['address_id']);
         if (empty($_POST['address_id']) || $address_id < 0) {
             return joutput_error(errcode::ErrParamter, "address_id = {$address_id}. must > 0.");
         }
@@ -82,8 +95,12 @@ class member_addressControl extends mobileMemberControl
      */
     public function address_addOp()
     {
-        $model_address = Model('address');
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $model_address = Model('address');
         $err = '';
         $address_info = $this->_address_valid($err, $err_code);
         if ($err != '') {
@@ -113,6 +130,11 @@ class member_addressControl extends mobileMemberControl
      */
     public function address_editOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $address_id = intval($_POST['address_id']);
         if (empty($_POST['address_id']) || $address_id < 0) {
             return joutput_error(errcode::ErrParamter, "address_id = {$address_id}. must > 0.");
@@ -170,6 +192,11 @@ class member_addressControl extends mobileMemberControl
      */
     public function set_defaultOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $address_id = intval($_POST['address_id']);
         $is_default = intval($_POST['is_default']);
 
@@ -212,6 +239,11 @@ class member_addressControl extends mobileMemberControl
      */
     public function area_listOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $area_id = intval($_POST['area_id']);
         $from = $_POST['from'];
         if ($from === 'app') {
@@ -249,5 +281,4 @@ class member_addressControl extends mobileMemberControl
         }
         return $area_list;
     }
-
 }

+ 6 - 1
mobile/control/member_bonus.php

@@ -10,7 +10,7 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_bonusControl extends mobileMemberControl
+class member_bonusControl extends mbMemberControl
 {
     public function __construct()
     {
@@ -19,6 +19,11 @@ class member_bonusControl extends mobileMemberControl
 
     public function get_bonusOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $bonus_type = $_POST['type'];
         $bonus = Model($bonus_type);
 

+ 47 - 22
mobile/control/member_buy.php

@@ -5,52 +5,59 @@
  *
  *
  *
- 
+
  */
 
 //use Shopnc\Tpl;
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_buyControl extends mobileMemberControl {
+class member_buyControl extends mbMemberControl
+{
 
-	public function __construct() {
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 购物车、直接购买第一步:选择收获地址和配置方式
      */
     public function buy_step1Op()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $cart_id = explode(',', urldecode($_POST['cart_id']));
-        Log::record('Create cart_id list'. urldecode($_POST['cart_id']),Log::DEBUG);
+        Log::record('Create cart_id list' . urldecode($_POST['cart_id']), Log::DEBUG);
 
         $logic_buy = logic('buy');
-        Log::record('Create buy logic model',Log::DEBUG);
+        Log::record('Create buy logic model', Log::DEBUG);
 
         //得到购买数据
         $result = $logic_buy->buyStep1($cart_id, $_POST['ifcart'], $this->member_info['member_id'], $this->member_info['store_id']);
-        if(!$result['state']) {
+        if (!$result['state']) {
             return joutput_error(errcode::ErrOrder, $result['msg']);
         } else {
             $result = $result['data'];
         }
-        Log::record('Get buy data',Log::DEBUG);
+        Log::record('Get buy data', Log::DEBUG);
         //整理数据
         $store_cart_list = array();
         foreach ($result['store_cart_list'] as $key => $value) {
             $store_cart_item = array();
             $store_cart_item['goods_list'] = $value;
             $store_cart_item['store_goods_total'] = $result['store_goods_total'][$key];
-            if(!empty($result['store_premiums_list'][$key])) {
+            if (!empty($result['store_premiums_list'][$key])) {
                 $result['store_premiums_list'][$key][0]['premiums'] = true;
                 $result['store_premiums_list'][$key][0]['goods_total'] = 0.00;
                 $store_cart_item['goods_list'][] = $result['store_premiums_list'][$key][0];
             }
             $store_cart_item['store_mansong_rule_list'] = $result['store_mansong_rule_list'][$key];
             $store_cart_item['store_voucher_list'] = $result['store_voucher_list'][$key];
-            if(!empty($result['cancel_calc_sid_list'])) {
+            if (!empty($result['cancel_calc_sid_list'])) {
                 $store_cart_item['freight'] = '0';
                 $store_cart_item['freight_message'] = $result['cancel_calc_sid_list'][$key]['desc'];
             } else {
@@ -78,11 +85,18 @@ class member_buyControl extends mobileMemberControl {
      * 购物车、直接购买第二步:保存订单入库,产生订单号,开始选择支付方式
      *
      */
-    public function buy_step2Op() {
+    public function buy_step2Op()
+    {
+
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $param = array();
         $param['ifcart'] = $_POST['ifcart'];
-        $param['cart_id']  = explode(',', urldecode($_POST['cart_id']));
-        Log::record('Create cart_id list'. urldecode($_POST['cart_id']),Log::DEBUG);
+        $param['cart_id'] = explode(',', urldecode($_POST['cart_id']));
+        Log::record('Create cart_id list' . urldecode($_POST['cart_id']), Log::DEBUG);
         $param['address_id'] = $_POST['address_id'];
         $param['vat_hash'] = $_POST['vat_hash'];
         $param['offpay_hash'] = $_POST['offpay_hash'];
@@ -93,7 +107,7 @@ class member_buyControl extends mobileMemberControl {
         //处理代金券
         $voucher = array();
         $post_voucher = explode(',', $_POST['voucher']);
-        if(!empty($post_voucher)) {
+        if (!empty($post_voucher)) {
             foreach ($post_voucher as $value) {
                 list($voucher_t_id, $store_id, $voucher_price) = explode('|', $value);
                 $voucher[$store_id] = $value;
@@ -111,7 +125,7 @@ class member_buyControl extends mobileMemberControl {
         $logic_buy = logic('buy');
 
         $result = $logic_buy->buyStep2($param, $this->member_info['member_id'], $this->member_info['member_name'], $this->member_info['member_email']);
-        if(!$result['state']) {
+        if (!$result['state']) {
             return joutput_error(errcode::ErrOrder, $result['msg']);
         }
 
@@ -121,15 +135,21 @@ class member_buyControl extends mobileMemberControl {
     /**
      * 验证密码
      */
-    public function check_passwordOp() {
-        if(empty($_POST['password'])) {
+    public function check_passwordOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        if (empty($_POST['password'])) {
             return joutput_error(errcode::ErrOrder, '参数错误');
         }
 
         $model_member = Model('member');
 
         $member_info = $model_member->getMemberInfoByID($this->member_info['member_id']);
-        if($member_info['member_paypwd'] == md5($_POST['password'])) {
+        if ($member_info['member_paypwd'] == md5($_POST['password'])) {
             joutput_data(array('result' => '1'));
         } else {
             return joutput_error(errcode::ErrOrder, '密码错误');
@@ -139,11 +159,16 @@ class member_buyControl extends mobileMemberControl {
     /**
      * 更换收货地址
      */
-    public function change_addressOp() {
-        $logic_buy = Logic('buy');
+    public function change_addressOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $logic_buy = Logic('buy');
         $data = $logic_buy->changeAddr($_POST['freight_hash'], $_POST['city_id'], $_POST['area_id'], $this->member_info['member_id']);
-        if(!empty($data) && $data['state'] == 'success' ) {
+        if (!empty($data) && $data['state'] == 'success') {
             joutput_data($data);
         } else {
             return joutput_error(errcode::ErrOrder, '地址修改失败');

+ 26 - 1
mobile/control/member_cart.php

@@ -12,7 +12,7 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_cartControl extends mobileMemberControl
+class member_cartControl extends mbMemberControl
 {
     public function __construct()
     {
@@ -24,6 +24,11 @@ class member_cartControl extends mobileMemberControl
      */
     public function cart_listOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $model_cart = Model('cart');
         $model_goods = Model('goods');
 
@@ -68,6 +73,11 @@ class member_cartControl extends mobileMemberControl
      */
     public function cart_addOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $goods_id = intval($_POST['goods_id']);
         $quantity = intval($_POST['quantity']);
         if ($goods_id <= 0 || $quantity <= 0) {
@@ -117,6 +127,11 @@ class member_cartControl extends mobileMemberControl
 
     public function cart_editOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $cart_list = explode(',', urldecode($_POST['cart_list']));
         $new_cart_list = array();
         if (is_array($cart_list)) {
@@ -170,6 +185,11 @@ class member_cartControl extends mobileMemberControl
      */
     public function cart_delOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $cart_id = intval($_POST['cart_id']);
 
         $model_cart = Model('cart');
@@ -190,6 +210,11 @@ class member_cartControl extends mobileMemberControl
      */
     public function cart_edit_quantityOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $cart_id = intval(abs($_POST['cart_id']));
         $quantity = intval(abs($_POST['quantity']));
         if (empty($cart_id) || empty($quantity)) {

+ 156 - 117
mobile/control/member_chat.php

@@ -5,131 +5,170 @@
  *
  *
  *
- 
+
  */
 defined('InShopNC') or exit('Access Invalid!');
+
 //use Shopnc\Tpl;
-class member_chatControl extends mobileMemberControl {
+class member_chatControl extends mbMemberControl
+{
 
-	public function __construct(){
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 最近联系人
      */
-	public function get_user_listOp() {
-		$member_list = array();
-		$model_chat	= Model('web_chat');
-
-		$member_id = $this->member_info['member_id'];
-		$member_name = $this->member_info['member_name'];
-		$n = intval($_POST['n']);
-		if ($n < 1) $n = 50;
-		$member_list = $model_chat->getFriendList(array('friend_frommid'=> $member_id),$n,$member_list);
-		$add_time = date("Y-m-d");
-		$add_time30 = strtotime($add_time)-60*60*24*30;
-		$member_list = $model_chat->getRecentList(array('f_id'=> $member_id,'add_time'=>array('egt',$add_time30)),10,$member_list);
-		$member_list = $model_chat->getRecentFromList(array('t_id'=> $member_id,'add_time'=>array('egt',$add_time30)),10,$member_list);
-		$member_info = array();
-		$member_info = $model_chat->getMember($member_id);
-		$node_info = array();
-		$node_info['node_chat'] = C('node_chat');
-		$node_info['node_site_url'] = NODE_SITE_URL;
-        output_data(array('node_info' => $node_info,'member_info' => $member_info,'list' => $member_list));
-	}
-
-	/**
-	 * 会员信息
-	 *
-	 */
-	public function get_infoOp(){
-		$val = '';
-		$member = array();
-		$model_chat	= Model('web_chat');
-		$types = array('member_id','member_name','store_id','member');
-		$key = $_POST['t'];
-		$member_id = intval($_POST['u_id']);
-		if(trim($key) != '' && in_array($key,$types)){
-			$member_info = $model_chat->getMember($member_id);
-			output_data(array('member_info' => $member_info));
-		}
-	}
-
-	/**
-	 * 发消息
-	 *
-	 */
-	public function send_msgOp(){
-		$member = array();
-		$model_chat	= Model('web_chat');
-		$member_id = $this->member_info['member_id'];
-		$member_name = $this->member_info['member_name'];
-		$t_id = intval($_POST['t_id']);
-		$t_name = trim($_POST['t_name']);
-		$member = $model_chat->getMember($t_id);
-		if ($t_name != $member['member_name']) output_error('接收消息会员账号错误');
-
-		$msg = array();
-		$msg['f_id'] = $member_id;
-		$msg['f_name'] = $member_name;
-		$msg['t_id'] = $t_id;
-		$msg['t_name'] = $t_name;
-		$msg['t_msg'] = trim($_POST['t_msg']);
-		if ($msg['t_msg'] != '') $chat_msg = $model_chat->addMsg($msg);
-		if ($chat_msg['m_id']) {
-			output_data(array('msg' => $chat_msg));
-		} else {
-			output_error('发送失败,请稍后重新发送');
-		}
-	}
-
-	/**
-	 * 商品图片和名称
-	 *
-	 */
-	public function get_goods_infoOp(){
-	    $model_chat	= Model('web_chat');
-	    $goods_id = intval($_POST['goods_id']);
-	    $goods = $model_chat->getGoodsInfo($goods_id);
-	    output_data(array('goods' => $goods));
-	}
-
-	/**
-	 * 聊天记录查询
-	 *
-	 */
-	public function get_chat_logOp(){
-		$member_id = $this->member_info['member_id'];
-		$t_id = intval($_POST['t_id']);
-		$add_time_to = date("Y-m-d");
-		$time_from = array();
-		$time_from['7'] = strtotime($add_time_to)-60*60*24*7;
-		$time_from['15'] = strtotime($add_time_to)-60*60*24*15;
-		$time_from['30'] = strtotime($add_time_to)-60*60*24*30;
-
-		$key = $_POST['t'];
-		if(trim($key) != '' && array_key_exists($key,$time_from)){
-			$model_chat	= Model('web_chat');
-			$list = array();
-			$condition_sql = " add_time >= '".$time_from[$key]."' ";
-			$condition_sql .= " and ((f_id = '".$member_id."' and t_id = '".$t_id."') or (f_id = '".$t_id."' and t_id = '".$member_id."'))";
-			$list = $model_chat->getLogList($condition_sql,$this->page);
-
-			$total_page = $model_chat->gettotalpage();
-			output_data(array('list' => $list), mobile_page($total_page));
-		}
-	}
-
-	/**
-	 * node信息
-	 *
-	 */
-	public function get_node_infoOp(){
-		$member_id = $this->member_info['member_id'];
-		$model_chat	= Model('web_chat');
-		$member_info = $model_chat->getMember($member_id);
+    public function get_user_listOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $member_list = array();
+        $model_chat = Model('web_chat');
+
+        $member_id = $this->member_info['member_id'];
+        $member_name = $this->member_info['member_name'];
+        $n = intval($_POST['n']);
+        if ($n < 1) $n = 50;
+        $member_list = $model_chat->getFriendList(array('friend_frommid' => $member_id), $n, $member_list);
+        $add_time = date("Y-m-d");
+        $add_time30 = strtotime($add_time) - 60 * 60 * 24 * 30;
+        $member_list = $model_chat->getRecentList(array('f_id' => $member_id, 'add_time' => array('egt', $add_time30)), 10, $member_list);
+        $member_list = $model_chat->getRecentFromList(array('t_id' => $member_id, 'add_time' => array('egt', $add_time30)), 10, $member_list);
+        $member_info = array();
+        $member_info = $model_chat->getMember($member_id);
+        $node_info = array();
+        $node_info['node_chat'] = C('node_chat');
+        $node_info['node_site_url'] = NODE_SITE_URL;
+        output_data(array('node_info' => $node_info, 'member_info' => $member_info, 'list' => $member_list));
+    }
+
+    /**
+     * 会员信息
+     *
+     */
+    public function get_infoOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $val = '';
+        $member = array();
+        $model_chat = Model('web_chat');
+        $types = array('member_id', 'member_name', 'store_id', 'member');
+        $key = $_POST['t'];
+        $member_id = intval($_POST['u_id']);
+        if (trim($key) != '' && in_array($key, $types)) {
+            $member_info = $model_chat->getMember($member_id);
+            output_data(array('member_info' => $member_info));
+        }
+    }
+
+    /**
+     * 发消息
+     *
+     */
+    public function send_msgOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $member = array();
+        $model_chat = Model('web_chat');
+        $member_id = $this->member_info['member_id'];
+        $member_name = $this->member_info['member_name'];
+        $t_id = intval($_POST['t_id']);
+        $t_name = trim($_POST['t_name']);
+        $member = $model_chat->getMember($t_id);
+        if ($t_name != $member['member_name']) output_error('接收消息会员账号错误');
+
+        $msg = array();
+        $msg['f_id'] = $member_id;
+        $msg['f_name'] = $member_name;
+        $msg['t_id'] = $t_id;
+        $msg['t_name'] = $t_name;
+        $msg['t_msg'] = trim($_POST['t_msg']);
+        if ($msg['t_msg'] != '') $chat_msg = $model_chat->addMsg($msg);
+        if ($chat_msg['m_id']) {
+            output_data(array('msg' => $chat_msg));
+        } else {
+            output_error('发送失败,请稍后重新发送');
+        }
+    }
+
+    /**
+     * 商品图片和名称
+     *
+     */
+    public function get_goods_infoOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $model_chat = Model('web_chat');
+        $goods_id = intval($_POST['goods_id']);
+        $goods = $model_chat->getGoodsInfo($goods_id);
+        output_data(array('goods' => $goods));
+    }
+
+    /**
+     * 聊天记录查询
+     *
+     */
+    public function get_chat_logOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $member_id = $this->member_info['member_id'];
+        $t_id = intval($_POST['t_id']);
+        $add_time_to = date("Y-m-d");
+        $time_from = array();
+        $time_from['7'] = strtotime($add_time_to) - 60 * 60 * 24 * 7;
+        $time_from['15'] = strtotime($add_time_to) - 60 * 60 * 24 * 15;
+        $time_from['30'] = strtotime($add_time_to) - 60 * 60 * 24 * 30;
+
+        $key = $_POST['t'];
+        if (trim($key) != '' && array_key_exists($key, $time_from)) {
+            $model_chat = Model('web_chat');
+            $list = array();
+            $condition_sql = " add_time >= '" . $time_from[$key] . "' ";
+            $condition_sql .= " and ((f_id = '" . $member_id . "' and t_id = '" . $t_id . "') or (f_id = '" . $t_id . "' and t_id = '" . $member_id . "'))";
+            $list = $model_chat->getLogList($condition_sql, $this->page);
+
+            $total_page = $model_chat->gettotalpage();
+            output_data(array('list' => $list), mobile_page($total_page));
+        }
+    }
+
+    /**
+     * node信息
+     *
+     */
+    public function get_node_infoOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $member_id = $this->member_info['member_id'];
+        $model_chat = Model('web_chat');
+        $member_info = $model_chat->getMember($member_id);
         Tpl::output('member_info', $member_info);
         Tpl::showpage('node_info');
-	}
+    }
 }

+ 63 - 45
mobile/control/member_favorites.php

@@ -5,29 +5,36 @@
  *
  *
  *
- 
+
  */
 
 //use Shopnc\Tpl;
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_favoritesControl extends mobileMemberControl {
+class member_favoritesControl extends mbMemberControl
+{
 
-	public function __construct(){
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 收藏列表
      */
-    public function favorites_listOp() {
-		$model_favorites = Model('favorites');
+    public function favorites_listOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
-        $favorites_list = $model_favorites->getGoodsFavoritesList(array('member_id'=>$this->member_info['member_id']), '*', $this->page);
+        $model_favorites = Model('favorites');
+        $favorites_list = $model_favorites->getGoodsFavoritesList(array('member_id' => $this->member_info['member_id']), '*', $this->page);
         $page_count = $model_favorites->gettotalpage();
         $favorites_id = '';
-        foreach ($favorites_list as $value){
+        foreach ($favorites_list as $value) {
             $favorites_id .= $value['fav_id'] . ',';
         }
         $favorites_id = rtrim($favorites_id, ',');
@@ -35,7 +42,7 @@ class member_favoritesControl extends mobileMemberControl {
         $model_goods = Model('goods');
         $field = 'goods_id,goods_name,goods_price,goods_image,store_id';
         $goods_list = $model_goods->getGoodsList(array('goods_id' => array('in', $favorites_id)), $field);
-        foreach ($goods_list as $key=>$value) {
+        foreach ($goods_list as $key => $value) {
             $goods_list[$key]['fav_id'] = $value['goods_id'];
             $goods_list[$key]['goods_image_url'] = cthumb($value['goods_image'], 240, $value['store_id']);
         }
@@ -46,55 +53,66 @@ class member_favoritesControl extends mobileMemberControl {
     /**
      * 添加收藏
      */
-    public function favorites_addOp() {
-		$goods_id = intval($_POST['goods_id']);
-		if ($goods_id <= 0){
-            output_error('参数错误');
-		}
+    public function favorites_addOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
-		$favorites_model = Model('favorites');
+        $goods_id = intval($_POST['goods_id']);
+        if ($goods_id <= 0) {
+            output_error('参数错误');
+        }
 
-		//判断是否已经收藏
-        $favorites_info = $favorites_model->getOneFavorites(array('fav_id'=>$goods_id,'fav_type'=>'goods','member_id'=>$this->member_info['member_id']));
-		if(!empty($favorites_info)) {
+        $favorites_model = Model('favorites');
+        //判断是否已经收藏
+        $favorites_info = $favorites_model->getOneFavorites(array('fav_id' => $goods_id, 'fav_type' => 'goods', 'member_id' => $this->member_info['member_id']));
+        if (!empty($favorites_info)) {
             output_error('您已经收藏了该商品');
-		}
+        }
 
-		//判断商品是否为当前会员所有
-		$goods_model = Model('goods');
-		$goods_info = $goods_model->getGoodsInfoByID($goods_id);
-		$seller_info = Model('seller')->getSellerInfo(array('member_id'=>$this->member_info['member_id']));
-		if ($goods_info['store_id'] == $seller_info['store_id']) {
+        //判断商品是否为当前会员所有
+        $goods_model = Model('goods');
+        $goods_info = $goods_model->getGoodsInfoByID($goods_id);
+        $seller_info = Model('seller')->getSellerInfo(array('member_id' => $this->member_info['member_id']));
+        if ($goods_info['store_id'] == $seller_info['store_id']) {
             output_error('您不能收藏自己发布的商品');
-		}
-
-		//添加收藏
-		$insert_arr = array();
-		$insert_arr['member_id'] = $this->member_info['member_id'];
-		$insert_arr['fav_id'] = $goods_id;
-		$insert_arr['fav_type'] = 'goods';
-		$insert_arr['fav_time'] = TIMESTAMP;
-		$result = $favorites_model->addFavorites($insert_arr);
-
-		if ($result){
-			//增加收藏数量
-			$goods_model->editGoodsById(array('goods_collect' => array('exp', 'goods_collect + 1')), $goods_id);
+        }
+
+        //添加收藏
+        $insert_arr = array();
+        $insert_arr['member_id'] = $this->member_info['member_id'];
+        $insert_arr['fav_id'] = $goods_id;
+        $insert_arr['fav_type'] = 'goods';
+        $insert_arr['fav_time'] = time();
+        $result = $favorites_model->addFavorites($insert_arr);
+
+        if ($result) {
+            //增加收藏数量
+            $goods_model->editGoodsById(array('goods_collect' => array('exp', 'goods_collect + 1')), $goods_id);
             output_data('1');
-		}else{
+        } else {
             output_error('收藏失败');
-		}
+        }
     }
 
     /**
      * 删除收藏
      */
-    public function favorites_delOp() {
-		$fav_id = intval($_POST['fav_id']);
-		if ($fav_id <= 0){
+    public function favorites_delOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $fav_id = intval($_POST['fav_id']);
+        if ($fav_id <= 0) {
             output_error('参数错误');
-		}
+        }
 
-		$model_favorites = Model('favorites');
+        $model_favorites = Model('favorites');
 
         $condition = array();
         $condition['fav_id'] = $fav_id;

+ 16 - 9
mobile/control/member_feedback.php

@@ -5,35 +5,42 @@
  *
  *
  *
- 
+
  */
 
 //use Shopnc\Tpl;
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_feedbackControl extends mobileMemberControl {
+class member_feedbackControl extends mbMemberControl
+{
 
-	public function __construct() {
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 添加反馈
      */
-    public function feedback_addOp() {
-        $model_mb_feedback = Model('mb_feedback');
+    public function feedback_addOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $model_mb_feedback = Model('mb_feedback');
         $param = array();
         $param['content'] = $_POST['feedback'];
         $param['type'] = $this->member_info['client_type'];
-        $param['ftime'] = TIMESTAMP;
+        $param['ftime'] = time();
         $param['member_id'] = $this->member_info['member_id'];
         $param['member_name'] = $this->member_info['member_name'];
 
         $result = $model_mb_feedback->addMbFeedback($param);
 
-        if($result) {
+        if ($result) {
             output_data('1');
         } else {
             output_error('保存失败');

+ 16 - 9
mobile/control/member_index.php

@@ -12,25 +12,32 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_indexControl extends mobileMemberControl {
+class member_indexControl extends mbMemberControl
+{
 
-	public function __construct(){
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 我的商城
      */
-	public function indexOp() {
+    public function indexOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $member_info = array();
         $member_info['user_name'] = $this->member_info['member_name'];
         $member_info['avator'] = getMemberAvatarForID($this->member_info['member_id']);
         $member_info['point'] = $this->member_info['member_points'];
         $member_info['predepoit'] = $this->member_info['available_predeposit'];
-	//v3-b11 显示充值卡
-		$member_info['available_rc_balance'] = $this->member_info['available_rc_balance'];
+        //v3-b11 显示充值卡
+        $member_info['available_rc_balance'] = $this->member_info['available_rc_balance'];
 
         output_data(array('member_info' => $member_info));
-	}
-
+    }
 }

+ 3 - 5
mobile/control/member_info.php

@@ -19,13 +19,11 @@ class member_infoControl extends mbMemberControl
      */
     public function getinfoOp()
     {
-        $token = $_GET['key'];
-        if (empty($token)) {
-            return joutput_error(errcode::ErrInputParam);
-        }
-        if ($this->checkToken($token) != errcode::Success) {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
             return joutput_error($this->err_code);
         }
+
         $member_id = $this->member_info['member_id'];
         $model = Model('member');
         $member_info = $model->getMemberInfoByID($member_id, 'member_name,member_sex');

+ 48 - 23
mobile/control/member_invoice.php

@@ -5,46 +5,56 @@
  *
  *
  *
- 
+
  */
 
 //use Shopnc\Tpl;
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_invoiceControl extends mobileMemberControl {
+class member_invoiceControl extends mbMemberControl
+{
 
-	public function __construct() {
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 发票信息列表
      */
-    public function invoice_listOp() {
-        $model_invoice = Model('invoice');
+    public function invoice_listOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $model_invoice = Model('invoice');
         $condition = array();
         $condition['member_id'] = $this->member_info['member_id'];
-
-	    $invoice_list = $model_invoice->getInvList($condition, 10, 'inv_id,inv_title,inv_content');
-
+        $invoice_list = $model_invoice->getInvList($condition, 10, 'inv_id,inv_title,inv_content');
         joutput_data(array('invoice_list' => $invoice_list));
     }
 
     /**
      * 发票信息删除
      */
-    public function invoice_delOp() {
+    public function invoice_delOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $inv_id = intval($_POST['inv_id']);
-        if($inv_id <= 0) {
+        if ($inv_id <= 0) {
             return joutput_error(errcode::ErrInvoice, '参数错误');
         }
 
         $model_invoice = Model('invoice');
-
-        $result = $model_invoice->delInv(array('inv_id'=>$inv_id, 'member_id'=>$this->member_info['member_id']));
-        if($result) {
+        $result = $model_invoice->delInv(array('inv_id' => $inv_id, 'member_id' => $this->member_info['member_id']));
+        if ($result) {
             joutput_data(array('result' => '1'));
         } else {
             return joutput_error(errcode::ErrInvoice, '删除失败');
@@ -54,16 +64,21 @@ class member_invoiceControl extends mobileMemberControl {
     /**
      * 发票信息添加
      */
-    public function invoice_addOp() {
-        $model_invoice = Model('invoice');
+    public function invoice_addOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $model_invoice = Model('invoice');
         $data = array();
         $data['inv_state'] = 1;
         $data['inv_title'] = $_POST['inv_title_select'] == 'person' ? '个人' : urldecode($_POST['inv_title']);
         $data['inv_content'] = urldecode($_POST['inv_content']);
         $data['member_id'] = $this->member_info['member_id'];
         $result = $model_invoice->addInv($data);
-        if($result) {
+        if ($result) {
             joutput_data(array('inv_id' => $result));
         } else {
             return joutput_error(errcode::ErrInvoice, '添加失败');
@@ -73,16 +88,20 @@ class member_invoiceControl extends mobileMemberControl {
     /**
      * 发票信息添加
      */
-    public function invoice_editOp() {
-        $model_invoice = Model('invoice');
+    public function invoice_editOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $model_invoice = Model('invoice');
         $condition = array();
         $condition['inv_id'] = $_POST['inv_id'];
-
         $data = array();
         $data['inv_title'] = urldecode($_POST['inv_title']);
         $result = $model_invoice->editInv($condition, $data);
-        if($result) {
+        if ($result) {
             joutput_data(array('result' => 1));
         } else {
             return joutput_error(errcode::ErrInvoice, '添加失败');
@@ -92,7 +111,13 @@ class member_invoiceControl extends mobileMemberControl {
     /**
      * 发票内容列表
      */
-    public function invoice_content_listOp() {
+    public function invoice_content_listOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $invoice_content_list = array(
             '明细',
             '酒',

+ 3 - 6
mobile/control/member_login.php

@@ -16,9 +16,6 @@ class LoginType extends SplEnum
 
 class member_loginControl extends mbMemberControl
 {
-    const auth_code_expire = 5;   // 单位:分钟
-    const token_expire = 3;     // 单位:分钟
-
     public function __construct()
     {
         parent::__construct();
@@ -44,7 +41,7 @@ class member_loginControl extends mbMemberControl
         $status = $sms->send($mobile, array('code' => $code, 'type' => Sms::register_code, 'time' => '5'));
         if ($status == 0) {
             $key = func::gen_auth_code_key($mobile);
-            wcache($key, array('code' => $code, 'mobile' => $mobile), '', self::auth_code_expire);
+            wcache($key, array('code' => $code, 'mobile' => $mobile), '', func::auth_code_expire);
         } else {
             return joutput_error(errcode::ErrSms, "send error={$status}.");
         }
@@ -136,7 +133,7 @@ class member_loginControl extends mbMemberControl
                     } else {
                         $ret_val = array();
                         $ret_val['token'] = $token;
-                        $ret_val['cache_expiration_time'] = time() + self::token_expire * 60;
+                        $ret_val['cache_expiration_time'] = time() + func::token_expire * 60;
                         $ret_val['systime'] = time();
                         return joutput_data($ret_val);
                     }
@@ -157,7 +154,7 @@ class member_loginControl extends mbMemberControl
                     } else {
                         $ret_val = array();
                         $ret_val['token'] = $token;
-                        $ret_val['cache_expiration_time'] = time() + self::token_expire * 60;
+                        $ret_val['cache_expiration_time'] = time() + func::token_expire * 60;
                         $ret_val['systime'] = time();
                         return joutput_data($ret_val);
                     }

+ 157 - 50
mobile/control/member_order.php

@@ -12,7 +12,7 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_orderControl extends mobileMemberControl
+class member_orderControl extends mbMemberControl
 {
 
     public function __construct()
@@ -25,13 +25,15 @@ class member_orderControl extends mobileMemberControl
      */
     public function order_listOp()
     {
-        $model_order = Model('order');
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $model_order = Model('order');
         $condition = array();
         $condition['buyer_id'] = $this->member_info['member_id'];
-
         $order_list_array = $model_order->getNormalOrderList($condition, 30, '*', 'order_id desc', '', array('order_address', 'order_goods'));
-
         $order_group_list = array();
         $order_pay_sn_array = array();
         foreach ($order_list_array as $value) {
@@ -82,9 +84,6 @@ class member_orderControl extends mobileMemberControl
             }
             $array_data['payment_list'] = $payment_array;
         }
-
-
-        //output_data(array('order_group_list' => $array_data), mobile_page($page_count));
         joutput_data($array_data, mobile_page($page_count));
     }
 
@@ -93,16 +92,18 @@ class member_orderControl extends mobileMemberControl
      */
     public function order_infoOp()
     {
-        $model_order = Model('order');
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $model_order = Model('order');
         $condition = array();
         $condition['buyer_id'] = $this->member_info['member_id'];
         $condition['pay_sn'] = $_POST['pay_sn'];
-
         $order_list_array = $model_order->getNormalOrderList($condition, $this->page, '*', 'order_id desc', '', array('order_address', 'order_goods'));
 
-        $array_data = [];
-
+        $array_data = array();
         foreach ($order_list_array as $value) {
 
             //显示取消订单
@@ -128,11 +129,16 @@ class member_orderControl extends mobileMemberControl
      */
     public function order_cancelOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $condition = array();
-        if(!empty($_POST['order_id'])) {
+        if (!empty($_POST['order_id'])) {
             $order_id = intval($_POST['order_id']);
             $condition['order_id'] = $order_id;
-        } else if(!empty($_POST['order_sn'])) {
+        } else if (!empty($_POST['order_sn'])) {
             $condition['order_sn'] = trim($_POST['order_sn']);
         } else {
             return joutput_error(errcode::ErrParamter, "请传入order_sn.");
@@ -142,15 +148,15 @@ class member_orderControl extends mobileMemberControl
         $logic_order = Logic('order');
 
         $condition['buyer_id'] = $this->member_info['member_id'];
-        Log::record("buyer_id = {$condition['buyer_id']}",Log::DEBUG);
+        Log::record("buyer_id = {$condition['buyer_id']}", Log::DEBUG);
 
         $order_info = $model_order->getOrderInfo($condition);
 //        $if_allow = $model_order->getOrderOperateState('buyer_cancel', $order_info);
 //        if (!$if_allow) {
 //            return joutput_error(errcode::ErrOrder, '无权操作');
 //        }
-        if($order_info['order_state'] != ORDER_STATE_NEW) {
-            Log::record("order_state = {$order_info['order_state']}.",Log::ERR);
+        if ($order_info['order_state'] != ORDER_STATE_NEW) {
+            Log::record("order_state = {$order_info['order_state']}.", Log::ERR);
             return joutput_error(errcode::ErrOrder, "已支付和已发货订单不能取消.");
         }
 
@@ -167,6 +173,11 @@ class member_orderControl extends mobileMemberControl
      */
     public function order_receiveOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $model_order = Model('order');
         $logic_order = Logic('order');
         $order_id = intval($_POST['order_id']);
@@ -193,44 +204,67 @@ class member_orderControl extends mobileMemberControl
      */
     public function search_deliverOp()
     {
-//        $order_id = intval($_POST['order_id']);
-//        if ($order_id <= 0) {
-//            return joutput_error(errcode::ErrOrder, '订单不存在');
-//        }
-//        $model_order = Model('order');
-//        $condition['order_id'] = $order_id;
-//        $condition['buyer_id'] = $this->member_info['member_id'];
-//        $order_info = $model_order->getOrderInfo($condition, array('order_common', 'order_goods'));
-//
-//        if (empty($order_info) || !in_array($order_info['order_state'], array(ORDER_STATE_SEND, ORDER_STATE_SUCCESS))) {
-//            return joutput_error(errcode::ErrOrder, '订单不存在');
-//        }
-//
-//        $express = rkcache('express', true);
-//        $e_code = $express[$order_info['extend_order_common']['shipping_express_id']]['e_code'];
-//        $e_name = $express[$order_info['extend_order_common']['shipping_express_id']]['e_name'];
-//
-//        $key = "express_" . $order_info['shipping_code'];
-//        $deliver_info = rkcache($key);
-//        if(empty($deliver_info))
-//        {
-//            $deliver_info = $this->_get_express($e_code, $order_info['shipping_code']);
-//            if ($deliver_info === false) {
-//                return;
-//            }
-//            wkcache($key,$deliver_info,3600);
-//        }
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
-        $e_name = '韵达';
-        $deliver_info = $this->_get_express('shentong', '3304531668888');
+        $order_id = intval($_POST['order_id']);
+        if ($order_id <= 0) {
+            return joutput_error(errcode::ErrOrder, '订单不存在');
+        }
+        /*
+         * TODO:后台有合适的订单后,开启此注释进行调试
+         *
+        $model_order = Model('order');
+        $condition['order_id'] = $order_id;
+        $condition['buyer_id'] = $this->member_info['member_id'];
+        $order_info = $model_order->getOrderInfo($condition, array('order_common', 'order_goods'));
 
+        if (empty($order_info) || !in_array($order_info['order_state'], array(ORDER_STATE_SEND, ORDER_STATE_SUCCESS))) {
+            return joutput_error(errcode::ErrOrder, '订单不存在');
+        }
 
-        //print_r($deliver_info);
-        //joutput_data(array('express_name' => $e_name, 'shipping_code' => $order_info['shipping_code'], 'deliver_info' => $deliver_info));
+        $express = rkcache('express', true);
+        $e_code = $express[$order_info['extend_order_common']['shipping_express_id']]['e_code'];
+        $e_name = $express[$order_info['extend_order_common']['shipping_express_id']]['e_name'];
+
+        $key = "express_" . $order_info['shipping_code'];
+        $deliver_info = rkcache($key);
+        if(empty($deliver_info))
+        {
+            $deliver_info = $this->_get_express($e_code, $order_info['shipping_code']);
+            if ($deliver_info === false) {
+                return;
+            }
+            wkcache($key,$deliver_info,3600);
+        }
+       */
+
+        /*
+         * TODO: 需要将shopnc后台的物流公司简称与快递鸟中物流公司的简称进行一一映射
+         */
+        $deliver_info = $this->getOrderTracesByJson('STO', '3304699247030');
+        $deliver_info = json_decode($deliver_info, true);
+        $routes = $deliver_info['Traces'];
+        krsort($routes);
+        switch ($deliver_info['State']) {
+            case '1':
+                break;
+            case '2':
+                $msg = '在途中';
+                break;
+            case '3':
+                $msg = '已签收';
+                break;
+            case '4':
+                $msg = '问题件';
+                break;
+        }
 
-        Tpl::output('express_name', $e_name);
-        Tpl::output('shipping_code', '3100969587588');//$order_info['shipping_code']);
-        Tpl::output('deliver_info', $deliver_info);
+        Tpl::output('msg_statu', $msg);
+        Tpl::output('LogisticCode', $deliver_info['LogisticCode']);
+        Tpl::output('routes', $routes);
         Tpl::showpage('express_info');
     }
 
@@ -270,10 +304,83 @@ class member_orderControl extends mobileMemberControl
      */
     public function orderCountStateOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $condition = array();
         $condition['buyer_id'] = $this->member_info['member_id'];
         $result = Model()->table('order')->field('order_state, count(*) as count')->where($condition)->group('order_state')->select();
 
         joutput_data(array('order_count' => $result));
     }
+
+    /**
+     * 快递鸟接口方式
+     * Json方式 查询订单物流轨迹
+     */
+    public function getOrderTracesByJson($shipperCode, $logisticCode)
+    {
+        $requestData = "{\"OrderCode\":\"\",\"ShipperCode\":\"" . $shipperCode . "\",\"LogisticCode\":\"" . $logisticCode . "\"}";
+        $datas = array(
+            'EBusinessID' => '1256051',
+            'RequestType' => '1002',
+            'RequestData' => urlencode($requestData),
+            'DataType' => '2',
+        );
+        $datas['DataSign'] = $this->encrypt($requestData, '6718d260-e2b6-4329-ad78-daff173309ac');
+        $result = $this->sendPost('http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx', $datas);
+        return $result;
+    }
+
+
+    /**
+     * 快递鸟接口方式
+     * post提交数据
+     * @param  string $url 请求Url
+     * @param  array $datas 提交的数据
+     * @return url响应返回的html
+     */
+    public function sendPost($url, $datas)
+    {
+        $temps = array();
+        foreach ($datas as $key => $value) {
+            $temps[] = sprintf('%s=%s', $key, $value);
+        }
+        $post_data = implode('&', $temps);
+        $url_info = parse_url($url);
+        $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
+        $httpheader .= "Host:" . $url_info['host'] . "\r\n";
+        $httpheader .= "Content-Type:application/x-www-form-urlencoded\r\n";
+        $httpheader .= "Content-Length:" . strlen($post_data) . "\r\n";
+        $httpheader .= "Connection:close\r\n\r\n";
+        $httpheader .= $post_data;
+        $fd = fsockopen($url_info['host'], 80);
+        fwrite($fd, $httpheader);
+        $gets = "";
+        while (!feof($fd)) {
+            if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) {
+                break;
+            }
+        }
+        while (!feof($fd)) {
+            $gets .= fread($fd, 128);
+        }
+        fclose($fd);
+        return $gets;
+    }
+
+
+    /**
+     * 快递鸟接口方式
+     * 电商Sign签名生成
+     * @param data
+     * @param appkey Appkey
+     * @return DataSign签名
+     */
+    public function encrypt($data, $appkey)
+    {
+        return urlencode(base64_encode(md5($data . $appkey)));
+    }
 }

+ 16 - 9
mobile/control/member_payment.php

@@ -12,7 +12,7 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_paymentControl extends mobileMemberControl
+class member_paymentControl extends mbMemberControl
 {
 
     private $payment_code = 'alipay';
@@ -28,24 +28,25 @@ class member_paymentControl extends mobileMemberControl
      */
     public function payOp()
     {
-        $pay_sn = $_GET['pay_sn'];
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $pay_sn = $_GET['pay_sn'];
         $model_mb_payment = Model('mb_payment');
         $logic_payment = Logic('payment');
-
         $condition = array();
         $condition['payment_code'] = $this->payment_code;
         $mb_payment_info = $model_mb_payment->getMbPaymentOpenInfo($condition);
         if (!$mb_payment_info) {
             output_error('系统不支持选定的支付方式');
         }
-
         //重新计算所需支付金额
         $result = $logic_payment->getRealOrderInfo($pay_sn, $this->member_info['member_id']);
         if (!$result['state']) {
             output_error($result['msg']);
         }
-
         //第三方API支付
         $this->_api_pay($result['data'], $mb_payment_info);
     }
@@ -55,25 +56,26 @@ class member_paymentControl extends mobileMemberControl
      */
     public function vr_payOp()
     {
-        $order_sn = $_GET['pay_sn'];
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
+        $order_sn = $_GET['pay_sn'];
         $model_mb_payment = Model('mb_payment');
         $logic_payment = Logic('payment');
-
         $condition = array();
         $condition['payment_code'] = $this->payment_code;
         $mb_payment_info = $model_mb_payment->getMbPaymentOpenInfo($condition);
         if (!$mb_payment_info) {
             output_error('系统不支持选定的支付方式');
         }
-
         //重新计算所需支付金额
         $result = $logic_payment->getVrOrderInfo($order_sn, $this->member_info['member_id']);
 
         if (!$result['state']) {
             output_error($result['msg']);
         }
-
         //第三方API支付
         $this->_api_pay($result['data'], $mb_payment_info);
     }
@@ -111,6 +113,11 @@ class member_paymentControl extends mobileMemberControl
      */
     public function payment_listOp()
     {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $model_mb_payment = Model('mb_payment');
         $payment_list = $model_mb_payment->getMbPaymentOpenList();
         $payment_array = array();

+ 15 - 7
mobile/control/member_voucher.php

@@ -5,24 +5,32 @@
  *
  *
  *
- 
+
  */
 
 //use Shopnc\Tpl;
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_voucherControl extends mobileMemberControl {
+class member_voucherControl extends mbMemberControl
+{
 
-	public function __construct() {
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 代金券列表
      */
-    public function voucher_listOp() {
-		$model_voucher = Model('voucher');
+    public function voucher_listOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
+        $model_voucher = Model('voucher');
         $voucher_list = $model_voucher->getMemberVoucherList($this->member_info['member_id'], $_POST['voucher_state'], $this->page);
         $page_count = $model_voucher->gettotalpage();
 

+ 51 - 33
mobile/control/member_vr_buy.php

@@ -5,51 +5,63 @@
  *
  *
  *
- 
+
  */
 
 //use Shopnc\Tpl;
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_vr_buyControl extends mobileMemberControl {
+class member_vr_buyControl extends mbMemberControl
+{
 
-	public function __construct() {
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
-	/**
-	 * 虚拟商品购买第一步,设置购买数量
-	 * POST
-	 * 传入:cart_id:商品ID,quantity:购买数量
-	 */
-	public function buy_step1Op() {
-	    $_POST['goods_id'] = $_POST['cart_id'];
+    /**
+     * 虚拟商品购买第一步,设置购买数量
+     * POST
+     * 传入:cart_id:商品ID,quantity:购买数量
+     */
+    public function buy_step1Op()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
-	    $logic_buy_virtual = Logic('buy_virtual');
-	    $result = $logic_buy_virtual->getBuyStep2Data($_POST['goods_id'], $_POST['quantity'], $this->member_info['member_id']);
-	    if(!$result['state']) {
-	        output_error($result['msg']);
-	    } else {
-	        $result = $result['data'];
-	    }
-	    unset($result['member_info']);
-	    output_data($result);
-	}
+        $_POST['goods_id'] = $_POST['cart_id'];
+        $logic_buy_virtual = Logic('buy_virtual');
+        $result = $logic_buy_virtual->getBuyStep2Data($_POST['goods_id'], $_POST['quantity'], $this->member_info['member_id']);
+        if (!$result['state']) {
+            output_error($result['msg']);
+        } else {
+            $result = $result['data'];
+        }
+        unset($result['member_info']);
+        output_data($result);
+    }
 
     /**
      * 虚拟商品购买第二步,设置接收手机号
-	 * POST
-	 * 传入:goods_id:商品ID,quantity:购买数量
-	 */
-    public function buy_step2Op() {
+     * POST
+     * 传入:goods_id:商品ID,quantity:购买数量
+     */
+    public function buy_step2Op()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
         $logic_buy_virtual = Logic('buy_virtual');
         $result = $logic_buy_virtual->getBuyStep2Data($_POST['goods_id'], $_POST['quantity'], $this->member_info['member_id']);
-        if(!$result['state']) {
+        if (!$result['state']) {
             output_error($result['msg']);
         } else {
-	        $result = $result['data'];
+            $result = $result['data'];
             $member_info = array();
             $member_info['member_mobile'] = $result['member_info']['member_mobile'];
             $member_info['available_predeposit'] = $result['member_info']['available_predeposit'];
@@ -62,10 +74,16 @@ class member_vr_buyControl extends mobileMemberControl {
 
     /**
      * 虚拟订单第三步,产生订单
-	 * POST
-	 * 传入:goods_id:商品ID,quantity:购买数量,buyer_phone:接收手机,buyer_msg:下单留言,pd_pay:是否使用预存款支付0否1是,password:支付密码
-	 */
-    public function buy_step3Op() {
+     * POST
+     * 传入:goods_id:商品ID,quantity:购买数量,buyer_phone:接收手机,buyer_msg:下单留言,pd_pay:是否使用预存款支付0否1是,password:支付密码
+     */
+    public function buy_step3Op()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $logic_buy_virtual = Logic('buy_virtual');
         $input = array();
         $input['goods_id'] = $_POST['goods_id'];
@@ -82,7 +100,7 @@ class member_vr_buyControl extends mobileMemberControl {
         $input['pd_pay'] = intval($_POST['pd_pay']);
 
         $input['order_from'] = 2;
-        $result = $logic_buy_virtual->buyStep3($input,$this->member_info['member_id']);
+        $result = $logic_buy_virtual->buyStep3($input, $this->member_info['member_id']);
         if (!$result['state']) {
             output_error($result['msg']);
         } else {

+ 35 - 17
mobile/control/member_vr_order.php

@@ -5,36 +5,42 @@
  *
  *
  *
- 
+
  */
 
 //use Shopnc\Tpl;
 
 defined('InShopNC') or exit('Access Invalid!');
 
-class member_vr_orderControl extends mobileMemberControl {
+class member_vr_orderControl extends mbMemberControl
+{
 
-	public function __construct(){
-		parent::__construct();
-	}
+    public function __construct()
+    {
+        parent::__construct();
+    }
 
     /**
      * 订单列表
      */
-    public function order_listOp() {
+    public function order_listOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
 
         $model_vr_order = Model('vr_order');
-        
         $condition = array();
         $condition['buyer_id'] = $this->member_info['member_id'];
         $order_list = $model_vr_order->getOrderList($condition, $this->page, '*', 'order_id desc');
 
         foreach ($order_list as $key => $order) {
             //显示取消订单
-            $order_list[$key]['if_cancel'] = $model_vr_order->getOrderOperateState('buyer_cancel',$order);
-        
+            $order_list[$key]['if_cancel'] = $model_vr_order->getOrderOperateState('buyer_cancel', $order);
+
             //显示支付
-            $order_list[$key]['if_pay'] = $model_vr_order->getOrderOperateState('payment',$order);
+            $order_list[$key]['if_pay'] = $model_vr_order->getOrderOperateState('payment', $order);
 
             $order_list[$key]['goods_image_url'] = cthumb($order['goods_image'], 240, $order['store_id']);
         }
@@ -44,7 +50,13 @@ class member_vr_orderControl extends mobileMemberControl {
         output_data(array('order_list' => $order_list), mobile_page($page_count));
     }
 
-    public function indate_code_listOp() {
+    public function indate_code_listOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $order_id = intval($_POST['order_id']);
         if ($order_id <= 0) {
             output_error('订单不存在');
@@ -61,7 +73,7 @@ class member_vr_orderControl extends mobileMemberControl {
         $order_list[$order_id] = $order_info;
         $order_list = $model_vr_order->getCodeRefundList($order_list);//没有使用的兑换码列表
         $code_list = array();
-        if(!empty($order_list[$order_id]['code_list'])) {
+        if (!empty($order_list[$order_id]['code_list'])) {
             foreach ($order_list[$order_id]['code_list'] as $value) {
                 $code = array();
                 $code['vr_code'] = $value['vr_code'];
@@ -75,22 +87,28 @@ class member_vr_orderControl extends mobileMemberControl {
     /**
      * 取消订单
      */
-    public function order_cancelOp() {
+    public function order_cancelOp()
+    {
+        $token = trim($_GET['key']);
+        if (false == $this->checkToken($token)) {
+            return joutput_error($this->err_code);
+        }
+
         $model_vr_order = Model('vr_order');
         $condition = array();
         $condition['order_id'] = intval($_POST['order_id']);
         $condition['buyer_id'] = $this->member_info['member_id'];
-        $order_info	= $model_vr_order->getOrderInfo($condition);
+        $order_info = $model_vr_order->getOrderInfo($condition);
 
-        $if_allow = $model_vr_order->getOrderOperateState('buyer_cancel',$order_info);
+        $if_allow = $model_vr_order->getOrderOperateState('buyer_cancel', $order_info);
         if (!$if_allow) {
             output_data('无权操作');
         }
 
         $logic_vr_order = Logic('vr_order');
-        $result = $logic_vr_order->changeOrderStateCancel($order_info,'buyer', '其它原因');
+        $result = $logic_vr_order->changeOrderStateCancel($order_info, 'buyer', '其它原因');
 
-        if(!$result['state']) {
+        if (!$result['state']) {
             output_data($result['msg']);
         } else {
             output_data('1');

+ 21 - 27
mobile/templates/default/express_info.php

@@ -1,7 +1,5 @@
-<?php defined('InShopNC') or exit('Access Invalid!');
-//<?php echo RESOURCE_SITE_URL;
-?>
 
+<?php defined('InShopNC') or exit('Access Invalid!'); ?>
 <!doctype html>
 <html lang="en">
 <head>
@@ -10,23 +8,23 @@
     <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
     <meta content="email=no" name="format-detection" />
     <meta name="format-detection" content="telephone=no" />
-    <link rel="stylesheet" type="text/css" href="http://localhost/wap/css/express.css">
+    <link rel="stylesheet" type="text/css" href="/wap/css/express.css">
 </head>
 <body>
 <header>
     <div class="status">
-        <p class="wl_status">物流状态<span class="status_1">已签收</span></p>
-        <p>运单号:<span class="number"><?php echo $output['shipping_code']; ?></span></p>
+        <p class="wl_status">物流状态<span class="status_1"><?php echo $output['msg_statu']; ?></span></p>
+        <p>运单号:<span class="number"><?php echo $output['LogisticCode']; ?></span></p>
     </div>
 </header>
 <article>
     <div class="rote "></div>
     <div class="list_box">
         <div class="list">
-            <?php foreach($output['deliver_info'] AS $info){ ?>
+            <?php foreach($output['routes'] AS $info){ ?>
             <div class="msg">
-                <p></p>
-                <p class="time">121212&nbsp;&nbsp;17:23:17</p>
+                <p><?php echo $info['AcceptStation']; ?></p>
+                <p class="time"><?php echo $info['AcceptTime']; ?></p>
                 <div class="dian"></div>
             </div>
             <?php } ?>
@@ -34,23 +32,19 @@
     </div>
 </article>
 
-<script src="js/zepto.min.js"></script>
-<script type="text/javascript">
-    $(function()
-    {
-        var bottom_html='<div class="bottom_rote"></div>', twinkle='<div class="twinkle" dateAnimate="twinkle_1"></div>';
-        $('.msg').first().addClass("this").append(twinkle);
-        $('.msg').last().append(bottom_html);
-        function width(id,sex)
-        {
-            var object=$('.rote').offset(), width=object.width;
-            margin=-width-sex+"px";
-            $(id).css("margin-left",margin);
-        }
-        width(".dian",10);
-        width(".bottom_rote",10);
-        width(".twinkle",14);
-    })
-</script>
+    <script src="js/zepto.min.js"></script>
+    <script type="text/javascript">
+        $(function(){
+            var bottom_html='<div class="bottom_rote"></div>',
+                    twinkle='<div class="twinkle" dateAnimate="twinkle_1"></div>';
+            $('.msg').first().addClass("this").append(twinkle);
+            $('.msg').last().append(bottom_html);
+            setTimeout(function(){
+                var Animate=$(".twinkle").attr('dateAnimate');
+                $(".twinkle").addClass(Animate);
+            },1000)
+
+        })
+    </script>
 </body>
 </html>

+ 2 - 1
mobile/util/errcode.php

@@ -18,8 +18,8 @@ class errcode extends SplEnum
     const ErrSmscode = 10007;
     const ErrIDbinded = 10008;
     const ErrUserExisted = 10009;
-
     const ErrPasswd    = 10010;
+    const ErrMobileNotBinded    = 10011;
 
     const ErrSpecial  = 10100;
     const ErrCart  = 10200;
@@ -61,6 +61,7 @@ class errcode extends SplEnum
             case errcode::ErrSmscodeExpire : return 'ErrSmscodeExpire';
             case errcode::ErrSmscode: return 'ErrSmscode';
             case errcode::ErrIDbinded: return 'ErrIDbinded id has been binded.';
+            case errcode::ErrMobileNotBinded: return 'mobile has been binded.';
             case errcode::ErrSpecial: return 'ErrSpecial.';
             case errcode::ErrPayment: return 'ErrPayment.';
             case errcode::ErrGoodsNotExist: return 'ErrGoodsNotExist.';