Api.php 13.4 KB
<?php
/**
 * Created by PhpStorm.
 * User: wxd1061
 * Date: 2017-05-02
 * Time: 11:31
 */
namespace app\mobile\controller;

use think\Db;
use think\Page;
use think\Cookie;

class Api extends MobileBase
{

    public $user_id = 0;
    public $user = array();

    /** 初始化操作**/
    public function _initialize()
    {
        parent::_initialize();
        if (session('?user')) {
            $user = session('user');
            $user = M('users')->where("user_id", $user['user_id'])->find();
            session('user', $user);  //覆盖session 中的 user
            $this->user = $user;
            $this->user_id = $user['user_id'];
        } else {
            $uid = Cookie::get('user_id');
            if ($uid) {
                $user = M('users')->where("user_id", $uid)->where("store_id", getMobileStoId())->find();
                session('user', $user);  //覆盖session 中的 user
                $this->user = $user;
                $this->user_id = $user['user_id'];
                $this->assign('user', $user); //存储用户信息
            }
        }
    }

//获取优惠券信息
    public function getQuan()
    {
        $store = I('stoid');         //商家ID
        $user = $this->user;

        $kyquannum = 0;      //可用券的数量
        $nkyquannum = 0;     //不可用券的数量
        $allnum = 0;         //可用券的总量
        $kyquanlist = [];  //可用券列表
        $nkyquanlist = [];//不可用券列表

        $now = time();
        //包邮券
        $wh['a.isuse'] = 0;
        //$wh['b.use_start_time']=['<',$now];
        //$wh['b.use_end_time']=['>',$now];
        $wh['a.store_id'] = $store;
        $wh['a.user_id'] = $user['user_id'];

        $bylist = M("user_feemail")->alias('a')
            ->join("(SELECT a.title,a.id AS area_feemail_id,(SELECT GROUP_CONCAT(c.id SEPARATOR ',') FROM wxd_feemail_region b LEFT JOIN wxd_region c ON c.id = b.region_id WHERE b.area_feemail_id = a.id) AS region_list FROM wxd_area_feemail a WHERE  a.store_id=" . $store . ") d", 'a.exparea=d.area_feemail_id', 'left')
            ->where($wh)
            ->field("a.no,a.condition,a.use_start_time,a.use_end_time,d.region_list,a.billdate")
            ->select();

        $allnum += count($bylist);
        foreach ($bylist as $k => $v) {
            $v['CashRepNo'] = $v['no'];
            $v['Remark'] = "购买礼包得优惠券【消费满" . $v['condition'] . "元可用】";
            $v['isby'] = 1;
            $v['validtime'] = $v['use_end_time'];
            if ($v['use_end_time'] > 0) $v['ValidDate'] = date('Y-m-d', $v['use_end_time']);
            else $v['ValidDate'] = "不限";
            if ($v['use_start_time'] > 0) $v['BeginDate'] = date('Y-m-d', $v['use_start_time']);
            else $v['BeginDate'] = "";
            $t = $v['use_end_time'];
            $idlist = $v['region_list'];
            $ary = explode(',', $idlist);
            $name = "";
            foreach ($ary as $v1) {
                if ($v1) $name = getRgName($v1) . "," . $name;
            }
            $v['region_list_name'] = $name;

            if ($t != "" && $t < $now) {
                $nkyquannum++;
                $nkyquanlist[] = $v;
            } else {
                $kyquannum++;
                $kyquanlist[] = $v;
            }
        }

        if ($this->pm_erpid)//ERP
        {
            $accdb=tpCache("shop_info.ERPId",$store);
            $where['VIPId']=urlencode($user['erpvipid']);
            $where['IsUse']=3;
            $re1 = getApiData_java_p("/api/erp/vip/cash/page",  $accdb, $where, 1, 1000);
            $qlist = json_decode($re1, true);

            if ($qlist && $qlist['code']==0) {
                $data = $qlist["data"]['pageData'];
                //$allnum += $qlist["count"];
                $allnum += count($data);
                if ($qlist["code"] == 0 && !empty($data)) {
                    foreach ($data as $K => $v) {
                        $v['Remark'] = urldecode($v['Remark']);
                        $v['Sum'] = number_format($v['Sum'], 2);

                        if ($v['ValidDate'] != "") {
                            $v['ValidDate'] = date('Y-m-d', strtotime($v['ValidDate']));
                            $v1 = date('Y-m-d 23:59:59', strtotime($v['ValidDate']));
                            $t = strtotime($v1);
                        } else {
                            $v['ValidDate'] = "不限";
                            $t = "";
                        }

                        if ($v['BeginDate'] != "") {
                            $v['BeginDate'] = date('Y-m-d', strtotime($v['BeginDate']));

                        } else {
                            $v['BeginDate'] = "";

                        }

                        $v['BillDate'] = date('Y-m-d', strtotime($v['BillDate']));


                        if ($t != "" && $t < $now) {
                            $nkyquannum++;
                            $nkyquanlist[] = $v;
                        } else {
                            $kyquannum++;
                            $kyquanlist[] = $v;
                        }

                    }
                    $result = ["code" => 1,
                        "msg" => "ok",
                        "allnum" => $allnum,
                        "kynum" => $kyquannum,
                        "nkynum" => $nkyquannum,
                        "kyquanlist" => $kyquanlist,
                        "nkyquanlist" => $nkyquanlist
                    ];
                    return json($result);
                } else {
                  if(!$allnum)  return json(["code" => -1, "msg" => "无相关记录"]);
                }
            }

            $result = ["code" => 1,
                "msg" => "ok",
                "allnum" => $allnum,
                "kynum" => $kyquannum,
                "nkynum" => $nkyquannum,
                "kyquanlist" => $kyquanlist,
                "nkyquanlist" => $nkyquanlist
            ];
            return json($result);

        } else {
            $qlist = M('coupon_list')->where(array('store_id' => $store, 'uid' => $user['user_id'], 'is_user' => 0))->select();
            if (empty($qlist)) {
                if(!$allnum)  return json(["code" => -1, "msg" => "无相关记录"]);
            }

            $allnum += count($qlist);
            foreach ($qlist as $K => $v) {

                $new_v['Remark'] = urldecode($v['remark']);
                $new_v['Sum'] = number_format($v['sum'], 2);

                if ($v['validtime']) {
                    $new_v['ValidDate'] = date('Y-m-d', $v['validtime']);
                    $v1 = date('Y-m-d 23:59:59', $v['validtime']);
                    $t = $v['validtime'];
                } else {
                    $new_v['ValidDate'] = "不限";
                    $t = "";
                }

                if ($v['begintime']) {
                    $new_v['BeginDate'] = date('Y-m-d', $v['begintime']);

                } else {
                    $new_v['BeginDate'] = "";

                }

                $new_v['BillDate'] = date('Y-m-d', $v['send_time']);
                $new_v['CashRepNo'] = $v['code'];

                if ($t != "" && $t < $now) {
                    $nkyquannum++;
                    $nkyquanlist[] = $new_v;
                } else {
                    $kyquannum++;
                    $kyquanlist[] = $new_v;
                }
            }
            //
            $result = ["code" => 1,
                "msg" => "ok",
                "allnum" => $allnum,
                "kynum" => $kyquannum,
                "nkynum" => $nkyquannum,
                "kyquanlist" => $kyquanlist,
                "nkyquanlist" => $nkyquanlist
            ];
            return json($result);

        }


    }

    //获取会员中心余额等信息1
    public function getindnum()
    {
        $user = $this->user;
        $integ = 0;
        $vsum = 0;
        $qnum = 0;
        $qnum1 = 0;
        $kyquannum = 0;      //可用券的数量
        $nkyquannum = 0;     //不可用券的数量
        $allnum = 0;         //可用券的总量
        $kyquanlist = [];  //可用券列表
        $nkyquanlist = [];//不可用券列表
        $now = time();
        $wh['a.isuse'] = 0;
        $wh['a.store_id'] = getMobileStoId();
        $wh['a.user_id'] = $user['user_id'];
        $qnum1 = M("user_feemail")->alias('a')->join('coupon b', 'a.fmid=b.id')->where($wh)->count();
        $now = time();
        //包邮券
        $wh['a.isuse'] = 0;
        //$wh['b.use_start_time']=['<',$now];
        //$wh['b.use_end_time']=['>',$now];
        $wh['a.store_id'] = getMobileStoId();
        $wh['a.user_id'] = $user['user_id'];

        $bylist = M("user_feemail")->alias('a')
            ->join("(SELECT a.title,a.id AS area_feemail_id,(SELECT GROUP_CONCAT(c.id SEPARATOR ',') FROM wxd_feemail_region b LEFT JOIN wxd_region c ON c.id = b.region_id WHERE b.area_feemail_id = a.id) AS region_list FROM wxd_area_feemail a WHERE  a.store_id=" . getMobileStoId() . ") d", 'a.exparea=d.area_feemail_id', 'left')
            ->where($wh)
            ->field("a.no,a.condition,a.use_start_time,a.use_end_time,d.region_list,a.billdate")
            ->select();

        $allnum += count($bylist);
        foreach ($bylist as $k => $v) {
            $v['CashRepNo'] = $v['no'];
            $v['Remark'] = "购买礼包得优惠券【消费满" . $v['condition'] . "元可用】";
            $v['isby'] = 1;
            $v['validtime'] = $v['use_end_time'];
            if ($v['use_end_time'] > 0) $v['ValidDate'] = date('Y-m-d', $v['use_end_time']);
            else $v['ValidDate'] = "不限";
            if ($v['use_start_time'] > 0) $v['BeginDate'] = date('Y-m-d', $v['use_start_time']);
            else $v['BeginDate'] = "";
            $t = $v['use_end_time'];
            $idlist = $v['region_list'];
            $ary = explode(',', $idlist);
            $name = "";
            foreach ($ary as $v1) {
                if ($v1) $name = getRgName($v1) . "," . $name;
            }
            $v['region_list_name'] = $name;

            if ($t != "" && $t < $now) {
                $nkyquannum++;
                $nkyquanlist[] = $v;
            } else {
                $kyquannum++;
                $kyquanlist[] = $v;
            }
        }
        if ($this->pm_erpid)//有ERP账套
        {

            if ($user['erpvipid']) {

                $data['VIPId'] = urlencode($user['erpvipid']);
                $rs = getApiData_java("/api/erp/vip/assets/list", $this->pm_erpid, $data, 1, 100);

                mlog("获取值:" . json_encode($rs), "getindnum/" . getMobileStoId());
                $d = json_decode($rs, true);
                $getlistdata = $d['data'];
                if ($d['code'] == 0 && $getlistdata) {
                    $integ = $getlistdata['Integral'];
                    $integ = number_format(empty($integ) ? 0 : $integ, 0);

                    $vsum = $getlistdata['Balance'];
                    $vsum = number_format(empty($vsum) ? 0 : $vsum, 2);

                    $qnum = $getlistdata['CashCount'];
                    $qnum = number_format(empty($qnum) ? 0 : $qnum, 0);


                    $kyquannum += $qnum;
                }
                //会员卡号获取
                if (empty($user['erpvipno']) && $user['erpvipid'])//线下会员卡为空时
                {
                    mlog("执行线下接口,线下ID:" . $user['erpvipid'], "getindnum/" . getMobileStoId());
                    //$mapuser['Id'] = $user['erpvipid'];
                    //$user_rs = getApiData('wxd.vip.vipinfo.list.get', $user['api_token'], null, $mapuser);
                    //mlog("会员基本信息返回值:" . json_encode($user_rs), "getindnum/" . getMobileStoId());
                    //$user_rs = json_decode($user_rs, true);
                    $user_rs=get_erpvipinfo($user['erpvipid'],$this->pm_erpid);
                    //调用接口错误,提示错误信息
                    if ($user_rs) {
                        $new_user_info = $user_rs;
                        $updateuser['erpvipno'] = $new_user_info['VIPNo'];
                        //地址、生日、身份证、地址、所属门店
                        $updateuser['sex'] = $new_user_info['Sex'] == '男' ? 1 : $new_user_info['Sex'] == '女' ? 2 : 0;
                        $updateuser['birthday'] = strtotime($new_user_info['BirthDate']);
                        $updateuser['idcard'] = $new_user_info['IDCard'];
                        $updateuser['address'] = $new_user_info['Address'];

                        if ($new_user_info['StoragesId']) {
                            $pick = M("pick_up")->where("keyid", $new_user_info['StoragesId'])->where('store_id', getMobileStoId())->find();
                            if ($pick) {
                                $updateuser['pickup_id'] = $pick['pickup_id'];
                            }
                        }
                        $falg = M('users')->where('user_id', $user['user_id'])->save($updateuser);
                    }
                }


                $result = ["code" => 1, 'vsum' => $vsum, 'qnum' => $kyquannum, 'integ' => $integ];
                return json($result);
            }
        } else {
            $integ = $user['pay_points'];
            $qnum = M('coupon_list')->where(array('store_id' => getMobileStoId(), 'uid' => $user['user_id']))
                ->where('is_user', 0)
                ->count();
            $qnum = $qnum + $qnum1;
            $result = ["code" => 1, 'vsum' => $vsum, 'qnum' => $qnum, 'integ' => $integ];
            return json($result);
        }
    }

}