123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- <?php
- namespace app\api\controller;
- use think\facade\Lang;
- class Pointprod extends MobileMall {
- public function initialize() {
- parent::initialize();
- Lang::load(base_path() . 'home/lang/' . config('lang.default_lang') . '/pointprod.lang.php');
-
- if (config('ds_config.points_isuse') != 1 || config('ds_config.pointprod_isuse') != 1) {
- ds_json_encode(10001, lang('pointshop_unavailable'));
- }
- }
- public function index() {
- $this->plist();
- }
-
- public function plist() {
- $pointprod_model = model('pointprod');
-
- $pgoodsshowstate_arr = $pointprod_model->getPgoodsShowState();
-
- $pgoodsopenstate_arr = $pointprod_model->getPgoodsOpenState();
- $member_model = model('member');
-
- $membergrade_arr = $member_model->getMemberGradeArr();
-
- $where = array();
- $where[] = array('pgoods_show', '=', $pgoodsshowstate_arr['show'][0]);
- $where[] = array('pgoods_state', '=', $pgoodsopenstate_arr['open'][0]);
-
- $level_filter = array();
- if (input('level')) {
- $level_filter['search'] = intval(input('level'));
- }
- if (input('isable') == 1) {
- if ($memberid = $this->getMemberIdIfExists()) {
- $member_infotmp = model('member')->getMemberInfoByID($memberid);
-
- $membergrade_info = $member_model->getOneMemberGrade($member_infotmp['member_exppoints'], true);
- $this->member_info = array_merge($member_infotmp, $membergrade_info);
- }
- }
- if (input('isable') == 1 && isset($this->member_info['level'])) {
- $level_filter['isable'] = intval($this->member_info['level']);
- }
- if (count($level_filter) > 0) {
- if (isset($level_filter['search']) && isset($level_filter['isable'])) {
- $where[] = array('pgoods_limitmgrade', '=', $level_filter['search']);
- $where[] = array('pgoods_limitmgrade', '<=', $level_filter['isable']);
- } elseif (isset($level_filter['search'])) {
- $where[] = array('pgoods_limitmgrade', '=', $level_filter['search']);
- } elseif (isset($level_filter['isable'])) {
- $where[] = array('pgoods_limitmgrade', '<=', $level_filter['isable']);
- }
- }
-
- $points_filter = array();
- if (input('isable') == 1 && isset($this->member_info['level'])) {
- $points_filter['isable'] = $this->member_info['member_points'];
- }
- if (input('points_min') > 0) {
- $points_filter['min'] = intval(input('points_min'));
- }
- if (input('points_max') > 0) {
- $points_filter['max'] = intval(input('points_max'));
- }
- if (count($points_filter) > 0) {
- asort($points_filter);
- if (count($points_filter) > 1) {
- $points_filter = array_values($points_filter);
- $where[] = array('pgoods_points', 'between', array($points_filter[0], $points_filter[1]));
- } else {
- if ($points_filter['min']) {
- $where[] = array('pgoods_points', '>=', $points_filter['min']);
- } elseif ($points_filter['max']) {
- $where[] = array('pgoods_points', '<=', $points_filter['max']);
- } elseif ($points_filter['isable']) {
- $where[] = array('pgoods_points', '<=', $points_filter['isable']);
- }
- }
- }
-
- switch (input('orderby')) {
- case 'stimedesc':
- $orderby = 'pgoods_starttime desc,';
- break;
- case 'stimeasc':
- $orderby = 'pgoods_starttime asc,';
- break;
- case 'pointsdesc':
- $orderby = 'pgoods_points desc,';
- break;
- case 'pointsasc':
- $orderby = 'pgoods_points asc,';
- break;
- default:
- $orderby = '';
- }
- $orderby .= 'pgoods_sort asc,pgoods_id desc';
- $pageSize = 10;
- $pointprod_list = $pointprod_model->getPointProdList($where, "*", $orderby, '', $pageSize);
- $page_count = $pointprod_model->page_info;
- $result = array_merge(array('goods_list' => $pointprod_list, 'grade_list' => $membergrade_arr, 'ww' => json_encode($where)), mobile_page($page_count));
- ds_json_encode(10000, '', $result);
- }
-
- public function pinfo() {
- $pid = intval(input('id'));
- if (!$pid) {
- ds_json_encode(10001, lang('param_error'));
- }
- $pointprod_model = model('pointprod');
-
- $prodinfo = $pointprod_model->getOnlinePointProdInfo(array(array('pgoods_id' ,'=', $pid)));
- if (empty($prodinfo)) {
- ds_json_encode(10001, lang('pointprod_goodsrecord_error'));
- }
-
- $tm_tm_visite_pgoods = cookie('tm_visite_pgoods');
- $tm_tm_visite_pgoods = $tm_tm_visite_pgoods ? explode(',', $tm_tm_visite_pgoods) : array();
- if (!in_array($pid, $tm_tm_visite_pgoods)) {
- $result = $pointprod_model->editPointProdViewnum($pid);
- if ($result['state'] == true) {
- $tm_tm_visite_pgoods[] = $pid;
- cookie('tm_visite_pgoods', implode(',', $tm_tm_visite_pgoods));
- }
- }
-
- $recommend_pointsprod = $pointprod_model->getRecommendPointProd(5);
- $prodinfo['pgoods_body'] = htmlspecialchars_decode($prodinfo['pgoods_body']);
- ds_json_encode(10000, '', array('goods_commend_list' => $recommend_pointsprod, 'goods_info' => $prodinfo));
- }
-
- public function get_order_list() {
- $pgoods_id = intval(input('param.pgoods_id'));
- $pointorder_model = model('pointorder');
- $pointorderstate_arr = $pointorder_model->getPointorderStateBySign();
- $where = array();
- $where[] = array('point_orderstate', '<>', $pointorderstate_arr['canceled'][0]);
- $where[] = array('pointog_goodsid', '=', $pgoods_id);
- $orderprod_list = $pointorder_model->getPointorderAndGoodsList($where, '*', 'pointsordergoods.pointog_recid desc', $this->pagesize);
- if ($orderprod_list) {
- $buyerid_arr = array();
- foreach ($orderprod_list as $k => $v) {
- $buyerid_arr[] = $v['point_buyerid'];
- }
- $memberlist_tmp = model('member')->getMemberList(array(array('member_id', 'in', $buyerid_arr)), 'member_id,member_avatar');
- $memberlist = array();
- if ($memberlist_tmp) {
- foreach ($memberlist_tmp as $v) {
- $memberlist[$v['member_id']] = $v;
- }
- }
- foreach ($orderprod_list as $k => $v) {
- $v['member_avatar'] = ($t = $memberlist[$v['point_buyerid']]['member_avatar']) ? ds_get_pic( ATTACH_AVATAR , $t) : ds_get_pic( ATTACH_COMMON , config('ds_config.default_user_portrait'));
- $orderprod_list[$k] = $v;
- }
- }
- $result = array_merge(array('order_list' => $orderprod_list), mobile_page(is_object($pointorder_model->page_info) ? $pointorder_model->page_info : 0));
- ds_json_encode(10000, '', $result);
- }
- }
- ?>
|