123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771 |
- <?php
- namespace app\api\controller;
- use think\facade\Db;
- class Subcard extends MobileMember
- {
- /**
- * 消费卡券绑定相关
- */
- public function testAbc()
- {
- $member_model = model('member');
- $where = [];
- $where['member_id'] = ['=', 1];
- // $list = $member_model->where($where)->select();
- $list = Db::name('seller')->where([['member_id', '=', 1]])->find();
- echo json_encode($list);
- }
- /**
- * 卡绑定的接口
- */
- public function bindCard()
- {
- $originParam = $this->request->param();
- $param = $originParam['card'];
- // ds_json_encode(10001, lang('ds_common_op_fail')); 10000成功, 10001失败
- if (empty($param['card_no'])) {
- ds_json_encode(10001, '卡号不能为空!');
- }
- if (empty($param['card_pwd'])) {
- ds_json_encode(10001, '卡号密码不能为空');
- }
- $cardNo = $param['card_no'];
- $cardPwd = $param['card_pwd'];
- $checkHost = config('ds_config.do_net_card_url');
- $url = $checkHost . '/api/card.number/verify';
- $checkCard = common_curl($url,
- [
- 'cardNo' => $cardNo,
- 'cardPassword' => $cardPwd,
- "userId" => $this->member_info['member_id'],
- ]
- );
- if ($checkCard['code']) {
- ds_json_encode(10001, $checkCard['msg']);
- }
- $resData = $checkCard['data'];
- if (!$resData) {
- ds_json_encode(10000, '绑定失败!');
- }
- if (empty($resData['balance']) || $resData['balance'] == 0) {
- ds_json_encode(10001, '这是空的卡券');
- }
- //$checkCard = [
- // 'balance' => 121,
- // 'amount' => 121,
- // 'goodsClassIds' => '5|10|15'
- // ];
- if (empty($resData['goodsClassIds'])) {
- $isLimit = 0; //不限制
- $bindCate = '';
- } else if ($resData['goodsClassIds'] == 9999) {
- $bindCate = 9999;
- $isLimit = 1; //有限制
- } else {
- $bindCate = '';
- $cateIds = explode('|', $resData['goodsClassIds']);
- if (empty($cateIds)) {
- $isLimit = 0;
- } else {
- $isLimit = 1; //有限制
- $bindCate = $this->getBindCate($cateIds);
- }
- }
- if (empty($resData['storeClassIds'])) {
- $storeLimit = 0;
- $bindStore = '';
- } else {
- $storeLimit = 1;
- $bindStore = $resData['storeClassIds'];
- }
- $cardInfo = Db::name('sub_card')->where([
- ['card_no', '=', $cardNo],
- ])->find();
- if (!empty($cardInfo)) {
- ds_json_encode(10001, '卡号已绑定,请勿重复操作!');
- }
- $time = time();
- $insertData = [
- 'card_no' => $cardNo,
- 'card_type' => 1,
- 'member_id' => $this->member_info['member_id'],
- 'balance' => $resData['balance'],
- 'worth' => $resData['amount'],
- 'start_date' => empty($resData['startDateTime']) ? 'NULL' : strtotime($resData['startDateTime']),
- 'end_date' => empty($resData['endDateTime']) ? 'NULL' : strtotime($resData['endDateTime']),
- 'goods_cate_ids' => empty($resData['goodsClassIds']) ? '' : $resData['goodsClassIds'],
- 'is_limit' => $isLimit, //是否有限制分类使用
- 'bind_cate' => $bindCate, //绑定的分类id列表
- 'store_limit' => $storeLimit,
- 'bind_store' => $bindStore,
- 'create_time' => $time,
- 'update_time' => $time,
- ];
- $res = Db::name('sub_card')->insertGetId($insertData);
- if ($res) {
- if (!$this->member_info['member_cardbind']) {
- $member_model = model('member');
- $condition = [];
- $condition[] = ['member_id', '=', $this->member_info['member_id']];
- $result = $member_model->editMember($condition, ['member_cardbind' => 1], $this->member_info['member_id']);
- }
- $count = Db::name('sub_card')->where(['member_id' => $this->member_info['member_id'], 'card_status' => ['neq', 3]])->count();
- ds_json_encode(10000, '绑定成功', ['id' => $res, 'count' => $count]);
- } else {
- ds_json_encode(10000, '绑定失败!');
- }
- }
- /**
- * 获取用户的卡券列表
- */
- public function cardListByUser()
- {
- $param = $this->request->param();
- $userId = $this->member_info['member_id'];
- $page = empty($param['page']) ? 1 : $param['page'];
- $limit = empty($param['limit']) ? 10 : $param['limit'];
- // $where = $where_or = [];
- $where = "member_id = " . $userId;
- // $where[] = ['member_id', '=', $userId];
- $isAll = 0;
- if (!empty($param['state'])) {
- if ($param['state'] == 3) {
- $where .= ' and (card_status in (3,5) or end_date < ' . time() . ')';
- // $where[] = ['card_status', 'in', [3, 5]];
- // $where_or[] = ['end_date','<',time()];
- } else {
- $where .= ' and card_status = ' . $param['state'] . ' and end_date > ' . time();
- // $where[] = ['card_status', '=', $param['state']];
- // $where[] = ['end_date','>',time()];
- }
- } else {
- $isAll = 1;
- $where .= ' and card_status not in (3,5) and end_date > ' . time();
- }
- $list = Db::name('sub_card')
- ->where($where)
- // ->whereOr($where_or)
- ->page($page)
- ->limit($limit)
- ->order('create_time desc')
- ->select()->toArray();
- // if ($this->member_info['member_id'] == 109) {
- // var_dump(Db::getLastsql());exit();
- // }
- $count = Db::name('sub_card')->where($where)->count();
- if (!empty($list)) {
- $cateIds = [];
- foreach ($list as $v) {
- if (!empty($v['goods_cate_ids'])) {
- $cateData = explode('|', $v['goods_cate_ids']);
- if (!empty($cateData)) {
- foreach ($cateData as $c) {
- $cateIds[] = $c;
- }
- }
- }
- }
- $showCateList = [];
- if (!empty($cateIds)) {
- $showCateList = Db::name('goodsclass')
- ->where([['gc_id', 'in', $cateIds]])->column('gc_name', 'gc_id');
- }
- foreach ($list as $k => $v) {
- $list[$k]['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
- $list[$k]['update_time'] = date('Y-m-d H:i:s', $v['update_time']);
- $list[$k]['start_date'] = date('Y-m-d H:i:s', $v['start_date']);
- $list[$k]['end_date'] = date('Y-m-d H:i:s', $v['end_date']);
- if ($isAll || $param['state'] == 3) {
- switch ($v['card_status']) {
- case 1:
- $list[$k]['status_name'] = '未使用';
- break;
- case 2:
- $list[$k]['status_name'] = '使用中';
- break;
- case 3:
- $list[$k]['status_name'] = '已失效';
- break;
- case 5:
- $list[$k]['status_name'] = '已冻结';
- $list[$k]['reasons'] = '卡被系统冻结,请联系负责人';
- break;
- default:
- $list[$k]['status_name'] = '';
- break;
- }
- }
- //卡片使用范围展示
- if (empty($v['goods_cate_ids'])) {
- $list[$k]['using_range'] = '所有';
- $list[$k]['is_check'] = 1; //是否可以被用
- } else if ($v['bind_cate'] == '9999') {
- $list[$k]['using_range'] = '电影票';
- $list[$k]['is_check'] = 1; //是否可以被用
- } else {
- $cateIds = explode('|', $v['goods_cate_ids']);
- $rangeList = [];
- foreach ($cateIds as $c) {
- if (!empty($showCateList[$c])) {
- $rangeList[] = $showCateList[$c];
- }
- }
- $list[$k]['using_range'] = str_replace(' ', '', implode('、', $rangeList));
- }
- }
- }
- // var_dump(1);exit();
- if (count($list) < $limit) {
- $hasMore = false;
- } else {
- $hasMore = true;
- }
- $data = [
- 'count' => $count,
- 'list' => $list,
- 'hasmore' => $hasMore,
- ];
- ds_json_encode(10000, '查询成功', $data);
- }
- /**
- * 获取用户的卡券列表(绑卡那个页面用的)
- */
- public function cardListByMember()
- {
- $param = $this->request->param();
- $is_vir = $param['is_vir'];
- $gcIds = [];
- $store_id = 0;
- if ($is_vir == 3) {
- //到店
- $store_id = $param['store_id'];
- } else {
- //商品
- if (!empty($param['goods_data'])) {
- if ($is_vir == 1) {
- //虚拟商品
- $goodsList = [$param['goods_data']];
- } else {
- //实物商品
- $goodsData = $param['goods_data'];
- $goodsList = [];
- if (!empty($goodsData)) {
- foreach ($goodsData as $v) {
- foreach ($v['goods_list'] as $good) {
- $goodsList[] = $good;
- }
- }
- }
- }
- } else {
- $goodsList = [];
- }
- $gcIds = array_column($goodsList, 'gc_id');
- if ($is_vir == 2) {
- //购物车中, 所有尚品的分类id
- $gcIds = [9999];
- }
- }
- //搜索条件
- $userId = $this->member_info['member_id'];
- $where = [];
- $where[] = ['member_id', '=', $userId];
- $isAll = 0;
- $where[] = ['card_status', 'in', [1, 2]]; //过滤已失效的卡
- $where[] = ['end_date', '>=', time()];
- if ($is_vir == 3) {
- //到店付款
- $class_id = Db::name('store')->where('store_id', $store_id)->value('storeclass_id');
- $list = Db::name('sub_card')->where(function ($query) use ($where, $class_id) {
- $query->where($where)->where(function ($query) use ($class_id) {
- $query->where([['store_limit', '=', 0]])->whereOr(function ($query) use ($class_id) {
- if (!empty($class_id)) {
- $query->where('find_in_set(:id,bind_store)', ['id' => $class_id]);
- }
- });
- });
- })->order('create_time desc')->select()->toArray();
- } else {
- //正常商品
- $list = Db::name('sub_card')->where(function ($query) use ($where, $gcIds) {
- $query->where($where)->where(function ($query) use ($gcIds) {
- $query->where([['is_limit', '=', 0]])->whereOr(function ($query) use ($gcIds) {
- if (!empty($gcIds)) {
- foreach ($gcIds as $v) {
- $query->where('find_in_set(:id,bind_cate)', ['id' => $v]);
- }
- }
- });
- });
- })->order('create_time desc')->select()->toArray();
- }
- if (!empty($list)) {
- if ($is_vir == 3) {
- //到店
- $showStoreIds = [];
- //变更$list的格式
- foreach ($list as $k => $v) {
- if ($v['bind_store']) {
- $showStoreIds = array_merge($showStoreIds, explode(',', $v['bind_store'])); //拆分要用的分类id
- $list[$k]['bind_store'] = explode(',', $v['bind_store']);
- }
- }
- //展示卡券使用范围的数据
- if (!empty($showStoreIds)) {
- $showStoreIds = array_values(array_unique($showStoreIds));
- $showClassList = Db::name('storeclass')
- ->where('storeclass_id', 'in', $showStoreIds)->column('storeclass_name', 'storeclass_id');
- }
- } else {
- //商品
- $goodsShowCateIds = [];
- //变更$list的格式
- foreach ($list as $k => $v) {
- if ($v['bind_cate']) {
- $list[$k]['bind_cateIds'] = explode(',', $v['bind_cate']); //拆分要用的分类id
- }
- if ($v['goods_cate_ids']) {
- $goodsCateIds = explode('|', $v['goods_cate_ids']); //拆分初始的几个分类id
- $list[$k]['goods_cate_ids'] = $goodsCateIds;
- $goodsShowCateIds = array_merge($goodsShowCateIds, $goodsCateIds);
- }
- }
- //展示卡券使用范围的数据
- if (!empty($goodsShowCateIds)) {
- $showCateIds = array_values(array_unique($goodsShowCateIds));
- $showCateList = Db::name('goodsclass')
- ->where([['gc_id', 'in', $showCateIds]])->column('gc_name', 'gc_id');
- }
- }
- foreach ($list as $k => $v) {
- $list[$k]['type'] = $k % 5;
- $list[$k]['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
- $list[$k]['balance'] = number_format($v['balance'], 2);
- $list[$k]['worth'] = number_format($v['worth'], 2);
- if ($isAll) {
- switch ($v['card_status']) {
- case 1:
- $list[$k]['status_name'] = '未使用';
- break;
- case 2:
- $list[$k]['status_name'] = '使用中';
- break;
- default:
- $list[$k]['status_name'] = '';
- break;
- }
- }
- if ($is_vir == 3) {
- //到店
- $list[$k]['is_check'] = 1;
- if (empty($v['bind_store'])) {
- $list[$k]['store_range'] = '所有';
- } else {
- $bind_store = $v['bind_store'];
- $rangeList = [];
- foreach ($bind_store as $id) {
- if (!empty($showClassList[$id])) {
- $rangeList[] = $showClassList[$id];
- }
- }
- $list[$k]['store_range'] = str_replace(' ', '', implode(',', $rangeList));
- }
- } else {
- //卡片使用范围展示
- if (empty($v['goods_cate_ids'])) {
- $list[$k]['using_range'] = '所有';
- $list[$k]['is_check'] = 1; //是否可以被用
- } else if ($v['bind_cate'] == '9999') {
- $list[$k]['using_range'] = '电影票';
- $list[$k]['is_check'] = 1; //是否可以被用
- } else {
- $cateIds = $v['goods_cate_ids'];
- $rangeList = [];
- foreach ($cateIds as $c) {
- if (!empty($showCateList[$c])) {
- $rangeList[] = $showCateList[$c];
- }
- }
- $list[$k]['using_range'] = str_replace(' ', '', implode(',', $rangeList));
- $list[$k]['is_check'] = 1;
- }
- }
- }
- }
- $data = [
- 'list' => $list,
- ];
- ds_json_encode(10000, '查询成功', $data);
- }
- /**
- * 获取默认卡片
- */
- public function defaultCard()
- {
- //初始化参数
- $goods_id = $this->request->param('goods_id', 0);
- $is_vir = $this->request->param('is_vir', 0);
- $cate_id = 0;
- if ($is_vir == 2) {
- //电影票
- $cate_id = 9999;
- } elseif (!empty($goods_id)) {
- $gc_id = Db::name('goods')->where('goods_id', $goods_id)->value('gc_id');
- $cate_id = $gc_id ?: 0;
- }
- //获取卡券数据
- $userId = $this->member_info['member_id'];
- $where = [];
- $where[] = ['member_id', '=', $userId];
- $where[] = ['card_status', 'in', [1, 2]]; //过滤已失效的卡
- $where[] = ['end_date', '>=', time()];
- if ($is_vir == 3) {
- $store_id = $this->request->param('store_id', 0);
- //到店付款
- $class_id = Db::name('store')->where('store_id', $store_id)->value('storeclass_id');
- $info = Db::name('sub_card')->where(function ($query) use ($where, $class_id) {
- $query->where($where)->where(function ($query) use ($class_id) {
- $query->where([['store_limit', '=', 0]])->whereOr(function ($query) use ($class_id) {
- if (!empty($class_id)) {
- $query->where('find_in_set(:id,bind_store)', ['id' => $class_id]);
- }
- });
- });
- })->find();
- } else {
- //商品
- $info = Db::name('sub_card')->where(function ($query) use ($where, $cate_id) {
- $query->where($where)->where(function ($query) use ($cate_id) {
- $query->where([['is_limit', '=', 0]])->whereOr(function ($query) use ($cate_id) {
- $query->where('find_in_set(:id,bind_cate)', ['id' => $cate_id]);
- });
- });
- })->find();
- }
- //处理参数
- $res = '';
- if (!empty($info)) {
- $res = [
- 'card_id' => (string)$info['id'],
- 'card_balance' => sprintf("%.2f", $info['balance']),
- 'card_total_balance' => sprintf("%.2f", $info['worth']),
- 'card_content' => $info['card_no'],
- ];
- }
- $data = [
- 'cardInfo' => $res,
- ];
- ds_json_encode(10000, '查询成功', $data);
- }
- /**
- * 卡片详情接口
- */
- public function cardInfoByUser()
- {
- $param = $this->request->param();
- if (empty($param['id'])) {
- ds_json_encode(10001, '卡券已被下架,请刷新后重试!');
- }
- $userId = $this->member_info['member_id'];
- // echo $userId;exit;
- $id = $param['id'];
- $where = [];
- $where[] = ['id', '=', $id];
- $where[] = ['member_id', '=', $userId];
- $info = Db::name('sub_card')->where($where)->find();
- if (!empty($info)) {
- $info['create_time'] = date('Y-m-d H:i:s', $info['create_time']);
- $info['end_date'] = date('Y-m-d H:i:s', $info['end_date']);
- } else {
- ds_json_encode(10001, '卡券已失效!');
- }
- $info['expense'] = $info['worth'] - $info['balance'];
- if (empty($info['goods_cate_ids'])) {
- $info['using_range'] = '所有';
- $info['is_check'] = 1; //是否可以被用
- } else if ($info['bind_cate'] == '9999') {
- $info['using_range'] = '电影票';
- $info['is_check'] = 1; //是否可以被用
- } else {
- $cateIds = explode('|', $info['goods_cate_ids']);
- $showCateList = [];
- if (!empty($cateIds)) {
- $showCateList = Db::name('goodsclass')
- ->where([['gc_id', 'in', $cateIds]])->column('gc_name', 'gc_id');
- }
- $rangeList = [];
- foreach ($cateIds as $c) {
- if (!empty($showCateList[$c])) {
- $rangeList[] = $showCateList[$c];
- }
- }
- $info['using_range'] = str_replace(' ', '', implode('、', $rangeList));
- }
- if (empty($info['bind_store'])) {
- $info['store_range'] = '所有';
- } else {
- $storeIds = explode(',', $info['bind_store']);
- $showStoreList = Db::name('storeclass')->where('storeclass_id', 'in', $storeIds)->column('storeclass_name', 'storeclass_id');
- $storeRangeList = [];
- foreach ($storeIds as $id) {
- if (!empty($showStoreList[$id])) {
- $storeRangeList[] = $showStoreList[$id];
- }
- }
- $info['store_range'] = str_replace(' ', '', implode('、', $storeRangeList));
- }
- ds_json_encode(10000, '查询成功', ['info' => $info]);
- }
- /**
- * 卡片消费记录
- */
- public function expenseList()
- {
- $param = $this->request->param();
- $page = empty($param['page']) ? 1 : $param['page'];
- $limit = empty($param['limit']) ? 10 : $param['limit'];
- $member_id = $this->member_info['member_id'];
- $card_id = $param['card_id'];
- if (empty($card_id)) {
- ds_json_encode(10001, '卡券不存在或已下架!');
- }
- $where['expense_status'] = [1, 3];
- $where['card_id'] = $card_id;
- $where['member_id'] = $member_id;
- $count = Db::name('sub_card_expense')->where($where)->count();
- $list = Db::name('sub_card_expense')->where($where)
- ->page($page)
- ->limit($limit)->order('id desc')
- ->select()->toArray();
- if (count($list) < $limit) {
- $hasMore = false;
- } else {
- $hasMore = true;
- }
- $order = [];
- if (!empty($list)) {
- foreach ($list as $key => $value) {
- $condition = [];
- $condition['order_id'] = $value['order_id'];
- $is_vir = $value['is_vir'];
- if ($is_vir == 1) {
- $Vrorder = model('Vrorder');
- $order = $Vrorder->getVrorderInfo($condition);
- if (empty($order)) {
- continue;
- }
- $order['goods_image_url'] = goods_cthumb($order['goods_image'], 240, $order['store_id']);
- } elseif ($is_vir == 0) {
- $Order = model('Order');
- $order = $Order->getOrderInfo($condition, ['order_goods']);
- if (empty($order)) {
- continue;
- }
- if (count($order['extend_order_goods']) > 0) {
- $goods = $order['extend_order_goods'][0];
- $order['goods_name'] = $goods['goods_name'];
- $order['goods_image_url'] = goods_cthumb($goods['goods_image'], 240, $order['store_id']);
- }
- $state_text_arr = [0 => '已取消', 10 => '未支付', 14 => '待付定金', 15 => '待付定金', 20 => '已支付', 30 => '已发货', 35 => '待自提', 40 => '已收货,交易成功'];
- $order['order_state_text'] = isset($state_text_arr[$order['order_state']]) ? $state_text_arr[$order['order_state']] : $order['order_state'];
- } elseif ($is_vir == 2) {
- $TicketOrder = model('TicketOrder');
- $order = $TicketOrder->detail(['id' => $value['order_id']]);
- $order['goods_name'] = '电影票';
- $order['goods_image_url'] = 'https://www.jucai.gov.cn/storage/ueditor/uploads/image/2022/02/07/d29a7d4b33277f445b2826c434374d06.jpg';
- if (empty($order)) {
- continue;
- }
- }
- $list[$key]['expense_time'] = date('Y-m-d H:i:s', $value['expense_time']);
- $list[$key]['orderInfo']['order_name'] = $order['goods_name'];
- $list[$key]['orderInfo']['order_image'] = $order['goods_image_url'];
- $list[$key]['image'] = $order['goods_image_url'];
- $list[$key]['real_amount'] = $value['order_amount'];
- $list[$key]['expense_amount'] = $value['expense_amount'];
- $list[$key]['order_amount'] = $value['order_amount'];
- $list[$key]['order_state'] = $order['order_state'];
- $list[$key]['order_status_name'] = $order['order_state_text'];
- }
- }
- ds_json_encode(10000, '查询成功', ['count' => $count, 'list' => $list, 'hasmore' => $hasMore]);
- }
- /**
- * 获取绑定的分类数据
- */
- private function getBindCate($cateIds)
- {
- //拿到的是一个id的数组列表
- $allCate = [];
- if (!empty($cateIds)) {
- foreach ($cateIds as $v) {
- $allCate[] = $v;
- $cateData = $this->get_child_all($v);
- if (!empty($cateData)) {
- $cateList = $cateData['class_list'];
- }
- if (!empty($cateList)) {
- foreach ($cateList as $v1) {
- $allCate[] = $v1['gc_id'];
- if (!empty($v1['child'])) {
- $childIds = array_column($v1['child'], 'gc_id');
- if (!empty($childIds)) {
- foreach ($childIds as $v2) {
- $allCate[] = $v2;
- }
- }
- }
- }
- }
- }
- }
- if (!empty($allCate)) {
- $bindCate = implode(',', $allCate);
- } else {
- $bindCate = '';
- }
- return $bindCate;
- }
- /**
- * 获取全部子集分类
- */
- public function get_child_all($gcId)
- {
- $gc_id = $gcId;
- $data = [];
- if ($gc_id > 0) {
- $prefix = 'api-goodsclass-all-';
- $data = rcache($gc_id, $prefix);
- if (empty($data)) {
- $data = $this->_get_class_list($gc_id);
- if (!empty($data['class_list'])) {
- foreach ($data['class_list'] as $key => $val) {
- $d = $this->_get_class_list($val['gc_id']);
- $data['class_list'][$key]['child'] = $d['class_list'];
- }
- }
- wcache($gc_id, $data, $prefix, 3600);
- }
- }
- return $data;
- }
- /**
- * 根据分类编号返回下级分类列表
- */
- private function _get_class_list($gc_id)
- {
- $goods_class_array = model('goodsclass')->getGoodsclassForCacheModel();
- $goods_class['child'] = '';
- if (!empty($goods_class_array[$gc_id])) {
- $goods_class = $goods_class_array[$gc_id];
- }
- if (empty($goods_class['child'])) {
- //无下级分类返回0
- return ['class_list' => []];
- } else {
- //返回下级分类列表
- $class_list = [];
- $child_class_string = $goods_class_array[$gc_id]['child'];
- $child_class_array = explode(',', $child_class_string);
- foreach ($child_class_array as $child_class) {
- $class_item = [];
- $class_item['gc_id'] = '';
- $class_item['gc_name'] = '';
- $class_item['gc_id'] .= $goods_class_array[$child_class]['gc_id'];
- $class_item['gc_name'] .= $goods_class_array[$child_class]['gc_name'];
- $class_item['image'] = ds_get_pic(ATTACH_COMMON, $goods_class_array[$child_class]['gc_image']);
- $class_list[] = $class_item;
- }
- return ['class_list' => $class_list];
- }
- }
- }
|