基本信息
源码名称:微信小程序后台api接口源码
源码大小:2.06M
文件格式:.rar
开发语言:PHP
更新时间:2018-04-16
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍

此实例为小程序的后端api接口,前端程序在这里 http://www.haolizi.net/example/view_14959.html

appid 数据库名称修改成自己的 就可以了


orders.php

<?php


defined('BASEPATH') OR exit('No direct script access allowed');

use \QCloud_WeApp_SDK\Auth\LoginService as LoginService;
use QCloud_WeApp_SDK\Constants as Constants;

class Orders extends MY_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->driver('cache', array('adapter' => 'file'));
    }

    /**
     * orders
     */
    public function index() {

        $get = $this->input->get(NULL, TRUE);
        $act = isset($get['act']) ? $get['act'] : '';
        if ($act == 'list') {
            $this->get_list();
        } else if ($act == 'add') {
            $this->add();
        } else if ($act == 'info') {
            $this->info();
        } else {
            $this->json([
                'code' => -1,
                'msg' => '参数异常!',
                'data' => []
            ]);
        }
    }
    /**
     * 订单列表
     */
    public function get_list() {
        $get = $this->input->get(NULL, TRUE);
        $session3rd = isset($get['session3rd']) ? $get['session3rd'] : '';
        $sessionid = $this->cache->get($session3rd);
        $page = isset($get['page']) ? $get['page'] : 1;
        $status = isset($get['status']) ? $get['status'] : 'all';
        $limit = isset($get['limit']) ? $get['limit'] : 10;
        if ($sessionid) {
            $dat = explode('-', $sessionid);
            $openid = $dat[0];
            switch ($status){ 
                case 'submitted':  //已提交
                    $map=array('openid' => $openid,'status'=>1);
                    break;
                case 'confirmed':  //已确认,
                    $map=array('openid' => $openid,'status'=>2);
                    break;
                case 'finished':   //已完成
                    $map=array('openid' => $openid,'status'=>3);
                    break;
                case 'canceled':   //已取消
                    $map=array('openid' => $openid,'status'=>4);
                    break;                    
                default:
                    $map=array('openid' => $openid);
            }
            $this->db->where($map);
            $result['total'] = $this->db->count_all_results('orders');
            if ($limit > 0) {
                $this->db->limit($limit, ($page - 1) * $limit);
            }
            $result['items']=array();
            $items= $this->db->get('orders')->result_array();          
            $result['totalPage'] = ceil($result['total'] / $limit);
            foreach($items as $key=>$v){
                $result['items'][$key]=$v;
                $result['items'][$key]['goods']=$this->getOrderGood($v['orderid']);
            }
            $this->json([
                'code' => 0,
                'msg' => '成功!',
                'data' => $result
            ]);
        } else {
            $this->json([
                'code' => -4,
                'msg' => '登录过期!',
                'data' => []
            ]);
        }
    }

    /**
     * 提交订单
     * @return booleant
     */
    public function add() {
        $get = $this->input->get(NULL, TRUE);
        $address_id = isset($get['address_id']) ? $get['address_id'] : '';
        $session3rd = isset($get['session3rd']) ? $get['session3rd'] : '';
        $sessionid = $this->cache->get($session3rd);
        if ($sessionid) {
            $totalprice = 0;
            $dat = explode('-', $sessionid);
            $params = $this->db->where(array('openid' => $dat[0], 'selected' => 1))->get('cart')->result_array();
            if ($params) {
                foreach ($params as $v) {
                    $totalprice = abs($v['price'] * $v['num']);
                    $result = $this->db->where(array('id' => $v['good_id']))->get('product')->row_array();
                    if (empty($result)) {
                        $this->json([ 'code' => -1, 'msg' => '产品不存在!', 'data' => []]);
                        return false;
                    }
                }
                $address = $this->getAddress($address_id, $dat[0]);
                $order = array(
                    'ordersn' => time() . rand(10000, 99999),
                    'openid' => $dat[0],
                    'username' => $dat[0],
                    'totalprice' => $totalprice,
                    'address_id' => $address_id,
                    'address' => $address,
                    'status' =>1,
                    'addtime' => time()
                );
                 $insert=$this->db->insert('orders', $order);
                 $insertid=$this->db->insert_id();
                if ($insert) {
                    $this->addGoods($insertid,$params);
                    $this->json([
                        'code' => 0,
                        'msg' => '成功!',
                        'data' => array('id' =>$insertid)
                    ]);
                } else {
                    $this->json([
                        'code' => -1,
                        'msg' => '失败!',
                        'data' => []
                    ]);
                }
            } else {
                $this->json([
                    'code' => -1,
                    'msg' => '失败!',
                    'data' => []
                ]);
            }
        } else {
            $this->json([
                'code' => -4,
                'msg' => '登录过期!',
                'data' => []
            ]);
        }
    }

    /**
     * 订单详情
     */
    public function info() {
        $get = $this->input->get(NULL, TRUE);
        $orderid = isset($get['id']) ? $get['id'] : '';
        $session3rd = isset($get['session3rd']) ? $get['session3rd'] : '';
        $sessionid = $this->cache->get($session3rd);
        if ($sessionid) {
            $dat = explode('-', $sessionid);
            $result = $this->db->where(array('openid' => $dat[0], 'orderid' => $orderid))->get('orders')->row_array();
            if ($result) {
                $address = $this->db->where(array('openid' => $dat[0], 'id' => $result['address_id']))->get('address')->row_array();
                $result['address'] = $address;
                $result['items'] = $this->getOrderGood($orderid);
                $this->json([
                    'code' => 0,
                    'msg' => '成功!',
                    'data' => $result
                ]);
            } else {
                $this->json([
                    'code' => -1,
                    'msg' => '失败!',
                    'data' => []
                ]);
            }
        } else {
            $this->json([
                'code' => -4,
                'msg' => '登录过期!',
                'data' => []
            ]);
        }
    }
    /**
     * 收货地址
     * @param type $address_id
     * @param type $openid
     * @return type
     */
    protected function getAddress($address_id,$openid) {
        $data = $this->db->where(array('id' => $address_id,'openid'=>$openid))->get('address')->row_array();  
        if($data){
            return $data['name'].'---'.$data['tel'].'---'.$data['address'];   
        }else{
            return '';
        }
          
    }
     /**
     * 订单商品
     * @param type $address_id
     * @param type $openid
     * @return type
     */
    protected function getOrderGood($orderid) {
        $data = $this->db->where(array('orderid' => $orderid))->get('order_info')->result_array();      
        return $data; 
    }
    /**
     * 订单商品添加
     * @param type $orderid   订单id
     * @param type $params    订单商品
     */
    protected function addGoods($orderid, $params) {
        foreach ($params as $v) {
            $data = array(
                'orderid' => $orderid,
                'good_id' => $v['good_id'],
                'good_name' => $v['good_name'],
                'image' => $v['image'],
                'price' => $v['price'],
                'num' => $v['num'],
                'totalprice' => abs($v['price'] * $v['num'])
            );
            $this->db->insert('order_info', $data);
            $this->db->where(array('openid' => $v['openid'], 'good_id' => $v['good_id']))->delete('cart');
        }
    }

}