Bladeren bron

Merge branch 'goods' of 121.43.114.153:/home/git/repositories/shopnc into goods

# Conflicts:
#	shop/control/h5_hb.php
songjiyuan 9 jaren geleden
bovenliggende
commit
055ced2d5b

+ 6 - 6
data/logic/buy.logic.php

@@ -821,12 +821,12 @@ 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 (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 ;
+        }
 
         $order_list = $this->_post_data;
 

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

@@ -42,8 +42,34 @@ class paymentLogic
         //计算本次需要在线支付的订单总金额
         $pay_amount = 0;
         if (!empty($order_list)) {
+            $model_order = Model('order');
+            $model_pd = Model('predeposit');
+            $obj_member = Model('member');
+
+            $member_id = intval($member_id);
+            $member_info = $this->getMemberInfo(array('member_id'=>$member_id));
+
             foreach ($order_list as $order_info) {
-                
+                if (intval($usebonus) === 1) {  // 使用全部预存款(红包逻辑)
+                    if (floatval($pd_amount) > floatval($order_info['order_amount'])) {
+                        // 余额大于订单金额的情况
+                        $order_info['pd_amount'] = floatval($order_info['order_amount']);
+                        $pd_amount = floatval($pd_amount) - floatval($order_info['pd_amount']);
+                    } else if (floatval($pd_amount) > 0) {    // 余额小于等于订单金额的情况, $pd_amount不能等于0
+                        $order_info['pd_amount'] = floatval($pd_amount);
+                        $pd_amount = 0;
+                    }
+                    $data_pd = array();
+                    $data_pd['member_id'] = $member_id;
+                    $data_pd['member_name'] = $member_info['member_name'];
+                    $data_pd['amount'] = $order_info['pd_amount'];
+                    $data_pd['order_sn'] = $order_info['order_sn'];
+                    //预存款立即支付,订单支付完成
+                    $model_pd->changePd('order_pay',$data_pd);
+                    // 修改订单
+                    $data_order = array("pd_amount" => $order_info['pd_amount']);
+                    $model_order->editOrder($data_order,array('order_id'=>$order_info['order_id']));
+                }
                 $pay_amount += ncPriceFormat(floatval($order_info['order_amount']) - floatval($order_info['pd_amount']));
             }
         }

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

@@ -75,8 +75,8 @@ class mb_user_tokenModel extends Model
         $this->where($condition)->delete();
         $ret = $this->addMbUserToken($mb_user_token_info);
         if ($ret) {
-            $key = $this->gen_token_key($token);
-            wcache($key, array('token' => serialize($mb_user_token_info)),'',self::token_expire);
+            $key = func::gen_token_key($token);
+            wcache($key, array('info' => serialize($mb_user_token_info)),'',self::token_expire);
 
             return $token;
         } else {

+ 3 - 2
data/model/member.model.php

@@ -183,12 +183,13 @@ class memberModel extends Model
     /**
      * 绑定微信账号
      */
-    public function bindwx($member_id, $openid)
+    public function bindwx($member_id, $openid,$wx_info)
     {
         $condition = array();
         $condition['member_id'] = $member_id;
         $data = array();
-        $conditions['member_wxopenid'] = $openid;
+        $data['member_wxopenid'] = $openid;
+        $data['wx_info'] = $wx_info;
 
         $ret = $this->table('member')->where($condition)->update($data);
         if (!$ret) {

+ 0 - 0
mobile/api/payment/alipay/key/rsa_private_key_1.pem


+ 18 - 6
mobile/control/delivery.php

@@ -25,24 +25,36 @@ class deliveryControl extends mobileHomeControl
         //获取物流单号
         //$order_sn = $_GET['order_sn'];
         //$condition = ['order_sn' => $order_sn];
-        //$postid = model()->table('goods')->where($condition)->field('shipping_code')->find();
+        //$postid = Model()->table('goods')->where($condition)->field('shipping_code')->find();
         $postid = '227270508536';
 
+
+        //查询本地是否有
+            //取参数
+            //请求快递100
+            //取得json
+            //存数据库
         //获取物流公司
+
         $com = 'shentong';
         //key
         $key = '5b634ac27f4c1a82';
         //组装URL查询
-        $url = "http://api.kuaidi100.com/api?id={$key}&com={$com}&nu={$postid}&show=0&muti=1&order=desc";
+        $url = "http://api.kuaidi100.com/api";//?id={$key}&com={$com}&nu={$postid}&show=0&muti=1&order=desc";
         $params = array();
+        {
+            $params['id'] = $key;
+            $params['com'] = $com;
+            $params['nu'] = $postid;
+            $params['show'] = 0;
+            $params['muti'] = 1;
+            $params['order'] = 'desc';
+        }
+
         $response = http_request($url, $params, 'GET');
         $data = json_decode($response);
 
         Tpl::output('info', $data);
         Tpl::showpage('express_info');
     }
-
-
-
-
 }

+ 0 - 1
mobile/control/efficacy.php

@@ -25,7 +25,6 @@ class efficacyControl extends mobileHomeControl
 
         $result = array();
         foreach ($efficacy_list as $value) {
-
             $item['efficacy_id'] = $value['efficacy_id'];
             $item['efficacy_name']=$value['efficacy_name'];
 

+ 48 - 13
mobile/control/member_login.php

@@ -110,7 +110,7 @@ class member_loginControl extends mbMemberControl
     {
         $login_type = trim($_GET['type']);
         $client = trim($_GET['client']);
-        if (empty($login_type) || empty($client)) {
+        if (!isset($login_type) || !isset($client)) {
             return joutput_error(errcode::ErrInputParam);
         }
         switch ($login_type) {
@@ -134,7 +134,11 @@ class member_loginControl extends mbMemberControl
                     if (empty($token)) {
                         return joutput_error(errcode::ErrLogin);
                     } else {
-                        return joutput_data(array('token' => $token));
+                        $ret_val = array();
+                        $ret_val['token'] = $token;
+                        $ret_val['cache_expiration_time'] = time() + self::token_expire * 60;
+                        $ret_val['systime'] = time();
+                        return joutput_data($ret_val);
                     }
                 }
                 break;
@@ -151,7 +155,11 @@ class member_loginControl extends mbMemberControl
                     if (empty($token)) {
                         return joutput_error(errcode::ErrLogin);
                     } else {
-                        return joutput_data(array('token' => $token));
+                        $ret_val = array();
+                        $ret_val['token'] = $token;
+                        $ret_val['cache_expiration_time'] = time() + self::token_expire * 60;
+                        $ret_val['systime'] = time();
+                        return joutput_data($ret_val);
                     }
                 }
                 break;
@@ -165,21 +173,48 @@ class member_loginControl extends mbMemberControl
      *
      * 输入参数:
      * wx_openid 微信id
-     * token:需要修改为token
      * user_info: 用户信息
+     * mobile: 手机号
+     * code: 验证码
      */
     public function bindOp()
     {
         $wx_openid = trim($_GET['wx_openid']);
-        $token = trim($_GET['key']);
-        $user_info = trim($_GET['user_info']);
+        $wx_info = trim($_GET['user_info']);
+        $mobile = trim($_GET['mobile']);
+        $acode = trim($_GET['code']);
 
-        $key = func::gen_token_key($token);
-        $ret = rcache($key);
-        $member_info = unserialize($ret);
+        // 输入内容判断
+        $validator = new Validate();
+        $validator->setValidate(Validate::verify_mobile($mobile));
+        $err = $validator->validate();
+        if ($err != '' || empty($acode)) {
+            return joutput_error(errcode::ErrInputParam);
+        }
+
+        // 校验验证码
+        if (!$this->checkacode($mobile, $acode)) {
+            return joutput_error(errcode::ErrVerifyCode);
+        }
+
+        // 判断是否已经注册
         $model = Model('member');
-        $ret = $model->bindwx($member_info['member_id'], $wx_openid);
-        if($ret != 0){
+        $ret = $model->where(array('member_mobile' => $mobile))->find();
+        if (empty($ret)) {
+            // 添加注册
+            $member_info = array();
+            $member_info['member_mobile'] = $mobile;
+            $member_id = $model->addMember($member_info);
+            if (!$member_id) {
+                return joutput_error(errcode::ErrDB);
+            }
+        }else{
+            $member_id = $ret['member_id'];
+        }
+
+        // 判断是否处理
+        $ret = $model->bindwx($member_id, $wx_openid,serialize($wx_info));
+        if ($ret != 0) {
             return joutput_error(errcode::ErrDB);
         }
 
@@ -265,8 +300,8 @@ class member_loginControl extends mbMemberControl
 
     /**
      * 检验校验码
-     * @param $mobile: 手机号
-     * @param $acode:验证码
+     * @param $mobile : 手机号
+     * @param $acode :验证码
      * @return bool
      */
     public function checkacode($mobile, $acode)

+ 23 - 8
mobile/control/member_order.php

@@ -196,13 +196,12 @@ class member_orderControl extends mobileMemberControl
         $order_id = intval($_POST['order_id']);
         if ($order_id <= 0) {
             return joutput_error(errcode::ErrOrder, '订单不存在');
-            return;
         }
-
         $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, '订单不存在');
         }
@@ -211,11 +210,28 @@ class member_orderControl extends mobileMemberControl
         $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'];
 
-        $deliver_info = $this->_get_express($e_code, $order_info['shipping_code']);
-        if ($deliver_info === false) {
-            return;
+        $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);
         }
-        joutput_data(array('express_name' => $e_name, 'shipping_code' => $order_info['shipping_code'], 'deliver_info' => $deliver_info));
+
+        $e_name = '韵达';
+        $deliver_info = $this->_get_express('shentong', '3304531668888');
+
+
+        //print_r($deliver_info);
+        //joutput_data(array('express_name' => $e_name, 'shipping_code' => $order_info['shipping_code'], 'deliver_info' => $deliver_info));
+
+        Tpl::output('express_name', $e_name);
+        Tpl::output('shipping_code', '3100969587588');//$order_info['shipping_code']);
+        Tpl::output('deliver_info', $deliver_info);
+        Tpl::showpage('express_info');
     }
 
     /**
@@ -224,8 +240,7 @@ class member_orderControl extends mobileMemberControl
      */
     public function _get_express($e_code, $shipping_code)
     {
-
-        $url = BASE_SITE_URL . 'http://www.kuaidi100.com/query?type=' . $e_code . '&postid=' . $shipping_code . '&id=1&valicode=&temp=' . random(4) . '&sessionid=&tmp=' . random(4);
+        $url = 'http://www.kuaidi100.com/query?type=' . $e_code . '&postid=' . $shipping_code . '&id=1&valicode=&temp=' . random(4) . '&sessionid=&tmp=' . random(4);
         import('function.ftp');
         $content = dfsockopen($url);
         $content = json_decode($content, true);

+ 12 - 1
mobile/dispatch_notify.php

@@ -15,7 +15,15 @@ try
     $status = intval($_POST['status']);
     //$consign_time = $_POST['consign_time'];
     $logistics_no = trim($_POST['logistics_no']);
-    //$logistics_company = $_POST['logistics_company'];
+    $logistics_company = $_POST['logistics_company'];
+
+    $express = Model('express')->field('id')->where(array('e_code' => $logistics_company))->select();
+    if(empty($express) || count($express) == 0) {
+        echo 'FAIL';
+        return;
+    }
+
+    $shipping_express_id = $express[0]['id'];
 
     Log::record("dispatch notify value: order_sn = {$order_sn},status={$status},consign_time = {$consign_time} logistics_no = {$logistics_no} logistics_company = {$logistics_company}.",Log::DEBUG);
 
@@ -25,7 +33,10 @@ try
     {
         if($status == 1)
         {
+            //,'shipping_time' => )
+            Model()->table('order_common')->where(array('order_sn' => $order_sn))->update(array('shipping_express_id' => $shipping_express_id));
             $ret = Model()->table('order')->where(array('order_sn' => $order_sn))->update(array('order_state' => ORDER_STATE_SEND,'shipping_code' => $logistics_no));
+
             if($ret) {
                 echo 'SUCCESS';
             } else {

+ 53 - 9
mobile/templates/default/express_info.php

@@ -1,10 +1,54 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 16/2/22
- * Time: 上午11:54
- */
-defined('InShopNC') or exit('Access Invalid!');
+<?php defined('InShopNC') or exit('Access Invalid!'); ?>
 
-var_dump( $out['info'] );
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>物流查询</title>
+    <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="<?php echo RESOURCE_SITE_URL; ?>/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>
+    </div>
+</header>
+<article>
+    <div class="rote "></div>
+    <div class="list_box">
+        <div class="list">
+            <?php foreach($output['deliver_info'] AS $info){ ?>
+            <div class="msg">
+                <p></p>
+                <p class="time">121212&nbsp;&nbsp;17:23:17</p>
+                <div class="dian"></div>
+            </div>
+            <?php } ?>
+        </div>
+    </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>
+</body>
+</html>

+ 116 - 0
wap/css/express.css

@@ -0,0 +1,116 @@
+body {
+    margin: 0;
+    padding: 0;
+    color: #333;
+    font-size: 14px;
+    font-family: "Microsoft Yahei", Helvetica, Arial, STXihei, SimSun, sans-serif;
+    background: #f3f3f3;
+    position: relative;
+}
+.wl_status {
+    font-size: 16px;
+}
+.list_box {
+    width: 100%;
+}
+span.status_1 {
+    color: #50ce90;
+    padding: 0 6%;
+    font-size: 14px;
+}
+.clear {
+    overflow: hidden;
+}
+header{
+    display: block;
+    padding:3% 7%;
+    background: #fff;
+}
+article {
+    display: table;
+    color: #959085;
+    width: 82%;
+    margin-top: 3%;
+    background: #fff;
+    padding-left: 10%;
+    padding-right: 8%;
+    padding-bottom: 5%;
+}
+.msg {
+    border-bottom: 1px solid #e8e8e8;
+    position: relative;
+    width: 100%;
+}
+.msg p {
+    line-height: 130%;
+}
+.dian {
+    position: absolute;
+    left: 0;
+    top: 0;
+    background: #50cc90;
+    width: 20px;
+    height: 20px;
+    border-radius: 10px;
+    -webkit-border-radius:10px;
+    z-index: 999;
+}
+.rote {
+    display: table-cell;
+    width: 10%;
+    border-left: 2px solid #e8e8e8;
+}
+.twinkle_1 {
+    animation: twinkle .8s  infinite;
+    -webkit-animation: twinkle .8s  infinite;
+    -moz-animation: twinkle .8s  infinite;
+    -o-animation: twinkle .8s  infinite;
+}
+.twinkle {
+    position: absolute;
+    left: 0;
+    top: -5%;
+    width: 28px;
+    height: 28px;
+    border-radius: 14px;
+    -webkit-border-radius: 14px;
+    background: #bff4da;
+}
+@keyframes twinkle {
+    0%{background: #50cc90}
+    100%{background: #bff4da}
+}
+.bottom_rote {
+    position: absolute;
+    left: 0;
+    bottom:-1%;
+    width: 20px;
+    height: 20px;
+    border-radius: 10px;
+    -webkit-border-radius:10px;
+    background: #e7e7e7;
+}
+.time {
+    font-size: 12px;
+}
+.this {
+    color: #50ce90;
+}
+.list {
+    display: table-cell;
+    width: 100%;
+}
+.error {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    width: 300px;
+    height: 100px;
+    margin-left: -150px;
+    background: url("../images/empty.png") no-repeat;
+    background-size: 100% 100%;
+    margin-top: 16%;
+}
+.red {
+    background: #50cc90;
+}

BIN
wap/images/empty.png