You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			638 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			638 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
namespace wstmart\common\model;
 | 
						|
use wstmart\home\model\ShopConfigs;
 | 
						|
use wstmart\common\model\Table as TM;
 | 
						|
use think\Db;
 | 
						|
/**
 | 
						|
 * ============================================================================
 | 
						|
 * 门店类
 | 
						|
 */
 | 
						|
class Shops extends Base{
 | 
						|
    private $getSpecSetUse = 'userId';
 | 
						|
    /**
 | 
						|
     * 店铺信息
 | 
						|
     */
 | 
						|
    public function shopInfo(){
 | 
						|
        $shopId = session('WST_USER.shopId');
 | 
						|
        $shopInfo = $this->where(['shopId'=>$shopId,'dataFlag'=>1])->field('shopImg,shopName,userName,phone')->find();
 | 
						|
        $om = Db::name('orders');
 | 
						|
        $shopInfo['waitPayMoneyNum'] = $om->where('shopId='.$shopId.' AND (orderStatus=0 or orderStatus=1)')->sum('realTotalMoney');//待收款
 | 
						|
        $shopInfo['receivedPayMoneyNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>2])->sum('realTotalMoney');//已收款
 | 
						|
        $shopInfo['waitPayNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>-2])->count();
 | 
						|
        $shopInfo['waitConfirmNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>0,'shopConfirm'=>0])->count();
 | 
						|
        $shopInfo['waitDeliverNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>0,'shopConfirm'=>1])->count();
 | 
						|
        $shopInfo['waitReceiveNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>1])->count();
 | 
						|
        $shopInfo['abnormal'] = $om->where('shopId='.$shopId.' AND (orderStatus=-1 or orderStatus=-3)')->count();
 | 
						|
        //$shopInfo['goodsList'] = $this->getGoodsList($shopId);
 | 
						|
        return WSTReturn('',1,$shopInfo);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获取商品首页图和广告图
 | 
						|
     * @return [type] [description]
 | 
						|
     */
 | 
						|
    public function getShopImg(){
 | 
						|
        $shopId = session('WST_USER.shopId');
 | 
						|
        $shopInfo = $this->alias('s')->where(['s.shopId'=>$shopId,'s.dataFlag'=>1])->field('s.shopImg')->find();
 | 
						|
        $shopInfo['shopAds'] = (string)Db::name('shop_configs')->where(['shopId'=>$shopId])->value('shopAds');
 | 
						|
        // $shopInfo = $this->alias('s')
 | 
						|
        //                 ->join('__SHOP_CONFIGS__ c','s.shopId=c.shopId')
 | 
						|
        //                 ->where(['s.shopId'=>$shopId,'s.dataFlag'=>1])
 | 
						|
        //                 ->field('s.shopImg,c.shopAds')->find();
 | 
						|
       
 | 
						|
        //$shopInfo['goodsList'] = $this->getGoodsList($shopId);
 | 
						|
        return WSTReturn('',1,$shopInfo);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 添加规格
 | 
						|
     */
 | 
						|
    public function setSpecs($userId){        
 | 
						|
        $shopId = session('WST_USER.shopId'); 
 | 
						|
        $specSetId = (int)input('post.id');
 | 
						|
        $setName = input('post.setName');
 | 
						|
        $specNames = input('post.specNames/a');
 | 
						|
        $specItems = input('post.specItems/a');
 | 
						|
        $specNamesId = input('post.specNamesId/a');
 | 
						|
        $specItemsId = input('post.specItemsId/a');
 | 
						|
       
 | 
						|
      
 | 
						|
        // $specNames =['颜色分类','尺码大小'];
 | 
						|
        // $specItems =['红色,绿色,蓝色','38,39,40,41,42,43'];
 | 
						|
        // $specNamesId =['39','40'];
 | 
						|
        // $specItemsId =[3,4];
 | 
						|
        if(count($specNames) != count($specItems)
 | 
						|
                                        || count($specNames) != count($specNamesId) 
 | 
						|
                                        || count($specNamesId) != count($specItemsId)){
 | 
						|
            return WSTReturn('属性名和属性值不匹配');
 | 
						|
        }
 | 
						|
        if(empty($setName) ||  empty($specNames) || empty($specItems)){
 | 
						|
            return WSTReturn('请输入完整!');
 | 
						|
        }
 | 
						|
        $time = time();
 | 
						|
        // ["specNames"] => array(2) {
 | 
						|
        //     [0] => string(6) "颜色"
 | 
						|
        //     [1] => string(6) "尺码"
 | 
						|
        // }
 | 
						|
        // ["specItems"] => array(2) {
 | 
						|
        //     [0] => string(13) "红色,蓝色"
 | 
						|
        //     [1] => string(14) "39,40,41,42,43"
 | 
						|
        // }
 | 
						|
        Db::startTrans();
 | 
						|
        try{
 | 
						|
            $m = new TM();
 | 
						|
            if(empty($specSetId)){//新增
 | 
						|
                //保存设置的规格总名
 | 
						|
                $set_data['setName'] = $setName;
 | 
						|
                $set_data['userId'] = $userId;
 | 
						|
                $set_data['shopId'] = $shopId;
 | 
						|
                $set_data['createTime'] = $time;
 | 
						|
                $m->setTable('spec_set');
 | 
						|
                $m->insertInfo($set_data);
 | 
						|
                $specSetId = $m->getLastInsID(); 
 | 
						|
            }else{//编辑
 | 
						|
                $set_data['setName'] = $setName;
 | 
						|
                $set_data['createTime'] = $time;
 | 
						|
                $m->setTable('spec_set');
 | 
						|
                $m->updateInfo(['id'=>$specSetId],$set_data);
 | 
						|
            }
 | 
						|
            if($specNames){
 | 
						|
                //规格名
 | 
						|
                $cat_data['userId'] = $userId;
 | 
						|
                $cat_data['shopId'] = $shopId;                    
 | 
						|
                $cat_data['specSetId'] = $specSetId;
 | 
						|
                $cat_data['createTime'] = date('Y-m-d H:i:s',$time);
 | 
						|
                 //规格值
 | 
						|
                //$item_data['userId'] = $userId;
 | 
						|
                $item_data['shopId'] = $shopId; 
 | 
						|
                $item_data['createTime'] = $time;
 | 
						|
                //保存规格名及规格值
 | 
						|
                foreach ($specNames as $k => $v) {                   
 | 
						|
                    $cat_data['catName'] = $v;
 | 
						|
                    $m->setTable('spec_cats');
 | 
						|
                    if($specNamesId[$k] > 0){
 | 
						|
                        $m->updateInfo(['catId'=>$specNamesId[$k]],$cat_data);
 | 
						|
                        $catId = $specNamesId[$k] ;
 | 
						|
                    }else{
 | 
						|
                        $m->insertInfo($cat_data);
 | 
						|
                        $catId = $m->getLastInsID();
 | 
						|
                    }
 | 
						|
                    
 | 
						|
                    $item_data['catId'] = $catId;
 | 
						|
                    $item_data['itemNames'] = $specItems[$k]; 
 | 
						|
 | 
						|
                    $m->setTable('spec_set_items');
 | 
						|
                    if($specItemsId[$k] > 0){
 | 
						|
                        $m->updateInfo(['id'=>$specItemsId[$k]],$item_data);
 | 
						|
                    }else{
 | 
						|
                        $m->insertInfo($item_data);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            Db::commit();
 | 
						|
            return WSTReturn('规格设置成功',1);
 | 
						|
        }catch (\Exception $e) {
 | 
						|
            Db::rollback();errLog($e);
 | 
						|
            dump($e->getMessage());
 | 
						|
        }
 | 
						|
        return WSTReturn('规格设置失败,请重试');
 | 
						|
       
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获名总规格名
 | 
						|
     */
 | 
						|
    public function getSpecs(){        
 | 
						|
        $shopId = session('WST_USER.shopId');
 | 
						|
        $shopInfo = $this->getFieldsById($shopId,'shopId,userId');        
 | 
						|
        $m = new TM();
 | 
						|
        $m->setTable('spec_set');
 | 
						|
        $rs = $m->getSelect([$this->getSpecSetUse=>$shopInfo[$this->getSpecSetUse],'dataFlag'=>1],'id,setName');
 | 
						|
       // dump($m->getLastSql());
 | 
						|
        return WSTReturn('',1,$rs);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获名总规格下属性名和属性值
 | 
						|
     */
 | 
						|
    public function getSpecCats($userId){  
 | 
						|
        $id = (int)input('post.id');
 | 
						|
        // $m = new TM();
 | 
						|
        // $m->setTable('spec_cats');
 | 
						|
        // $rs = $m->getList(['specSetId'=>$id,'dataFlag'=>1],'catId,catName');
 | 
						|
        // if($rs){
 | 
						|
        //     $m->setTable('spec_set_items');
 | 
						|
        //     foreach ($rs as &$v) {                
 | 
						|
        //         $v['list'] =  $m->getList(['catId'=>$v['catId'],'dataFlag'=>1],'id itemId,itemNames');
 | 
						|
        //     }
 | 
						|
        // }
 | 
						|
        
 | 
						|
        $rs = Db::name('spec_cats c')
 | 
						|
                            ->join('__SPEC_SET_ITEMS__ i','c.catId=i.catId')
 | 
						|
                            ->where(['c.specSetId'=>$id,'c.userId'=>$userId,'c.dataFlag'=>1])
 | 
						|
                            ->field('c.catId,c.catName,i.id itemId,i.itemNames')
 | 
						|
                            ->select();
 | 
						|
        return WSTReturn('',1,$rs);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获名总规格下属性名和属性值
 | 
						|
     */
 | 
						|
    public function getGoodsSpecCats($userId){   
 | 
						|
        $id = (int)input('post.id');
 | 
						|
        $m = new TM();
 | 
						|
        $m->setTable('spec_cats');
 | 
						|
        $rs = $m->getList(['specSetId'=>$id,'userId'=>$userId,'dataFlag'=>1],'catId,catName');
 | 
						|
        if($rs){
 | 
						|
            $m->setTable('spec_set_items');
 | 
						|
            foreach ($rs as &$v) {                
 | 
						|
                $itemInfo =  $m->getInfo(['catId'=>$v['catId'],'dataFlag'=>1],'id itemId,itemNames');
 | 
						|
                if($itemInfo){
 | 
						|
                    $v['list'] = explode(',',$itemInfo['itemNames']);
 | 
						|
                }                
 | 
						|
            }
 | 
						|
 | 
						|
        }        
 | 
						|
      
 | 
						|
        return WSTReturn('',1,$rs);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 添加商品
 | 
						|
     */
 | 
						|
    public function addGoods(){
 | 
						|
        $shopId = session('WST_USER.shopId');
 | 
						|
        $goods_data['shopId'] = $shopId;
 | 
						|
        $goodsId = (int)input('post.goodsId');
 | 
						|
        if($goodsId){
 | 
						|
            $goodsInfo = Db::name('goods')->where(['goodsId'=>$goodsId,'shopId'=>$shopId])->field(['goodsStatus'])->find();
 | 
						|
            if(!$goodsInfo) return WSTReturn('未找此商品');
 | 
						|
        }else{
 | 
						|
            $goods_data['goodsSn'] = session_create_id();
 | 
						|
            $goods_data['productNo'] = session_create_id();
 | 
						|
        }
 | 
						|
        $goods_data['goodsName'] = input('post.goodsName');
 | 
						|
        $largeCat = input('post.largeCat');
 | 
						|
        $mediumCat = input('post.mediumCat');
 | 
						|
        $smallCat = input('post.smallCat');
 | 
						|
        $goods_data['goodsCatIdPath'] = $largeCat.'_'.$mediumCat.'_'.$smallCat.'_';
 | 
						|
        $goods_data['goodsCatId'] = $smallCat;
 | 
						|
        $goods_data['discountRate'] = input('post.discountRate');  
 | 
						|
        $goods_data['freight'] = input('post.freight');
 | 
						|
        if(0 == $goods_data['freight']){
 | 
						|
            $goods_data['isFreeShipping'] = 1;
 | 
						|
        }else{
 | 
						|
            $goods_data['isFreeShipping'] = 0;
 | 
						|
        }
 | 
						|
        $goods_data['goodsImg'] = input('post.goodsImg');
 | 
						|
        $goods_data['gallery'] = input('post.gallery');
 | 
						|
        $goods_data['isSale'] = input('post.isSale');
 | 
						|
        $goods_data['setNameId'] = (int)input('post.setNameId');        
 | 
						|
        $goods_data['goodsDesc'] = input('post.goodsDesc');
 | 
						|
        $goods_data['goodsOrder'] = (int)input('post.goodsOrder/d');
 | 
						|
 | 
						|
        $goods_data['isSpec'] = input('post.isSpec');
 | 
						|
        if(WSTConf("CONF.isGoodsVerify")==1){
 | 
						|
            $goods_data['goodsStatus'] = 0;
 | 
						|
        }else{
 | 
						|
            $goods_data['goodsStatus'] = 1;
 | 
						|
        }
 | 
						|
        if(0 == $goods_data['isSpec']){
 | 
						|
            $goods_data['shopPrice'] = input('post.shopPrice');
 | 
						|
            if(empty($goods_data['shopPrice'])) return WSTReturn('请输入商品金额!');
 | 
						|
            $goods_data['goodsStock'] = (int)input('post.goodsStock');
 | 
						|
            
 | 
						|
        }
 | 
						|
        $goods_data['saleTime'] = date('Y-m-d H:i:s');
 | 
						|
        $goods_data['createTime'] = date('Y-m-d H:i:s');
 | 
						|
        Db::startTrans();
 | 
						|
        try{
 | 
						|
            $m = new TM();
 | 
						|
            $m->setTable('goods');
 | 
						|
            if($goodsId){
 | 
						|
                if(false === $m->updateInfo(['goodsId'=>$goodsId],$goods_data)){
 | 
						|
                    return WSTReturn('修改失败!');
 | 
						|
                }
 | 
						|
                $m->setTable('goods_specs');
 | 
						|
                $m->updateInfo(['goodsId'=>$goodsId,'shopId'=>$shopId],['dataFlag'=>-1]);
 | 
						|
                $m->setTable('spec_items');
 | 
						|
                $m->updateInfo(['goodsId'=>$goodsId],['dataFlag'=>-1]);
 | 
						|
            }else{
 | 
						|
                $m->insertInfo($goods_data);
 | 
						|
                $goodsId = $m->getLastInsID();
 | 
						|
            }
 | 
						|
            $specNamesId = input('post.specNamesId/a');//分类名ID
 | 
						|
            $specItems = input('post.specItems/a');//规格具体名称,如红色,即spec_items表里的名字
 | 
						|
            $specItemIds = input('post.specItemIds/a'); //规格具体名称的ID,即spec_items表里的ID            
 | 
						|
            $specIds = input('post.specIds/a');//商名规格名ID数组,即goods_spec表ID,新增为0
 | 
						|
            $specPrice = input('post.specPrice/a');//规格价格
 | 
						|
            $specStock = input('post.specStock/a');//规格库存
 | 
						|
            $defaultId = (int)input('post.defaultId/d');
 | 
						|
            //$uniqueSpecItems = $this->remove_duplicate($specItems);//数组去重的字段,如array(3) { [0] => string(6) "红色" [1] => string(5) "39码" [2] => string(6) "蓝色" }
 | 
						|
 | 
						|
            if(1 == $goods_data['isSpec']){//catId的数组
 | 
						|
                if(!$specNamesId) return WSTReturn('请设置规格值!');
 | 
						|
                //if(!$defaultId) return WSTReturn('请选择默认规格!');
 | 
						|
                foreach ($specNamesId as $k => $v) {
 | 
						|
                    if(!empty($specPrice[$k])){//设置的规格价格
 | 
						|
                        $isDefault = 0;
 | 
						|
                        if($k == $defaultId ){
 | 
						|
                            $isDefault = 1;
 | 
						|
                            $m->setTable('goods'); 
 | 
						|
                            //更新默认价格和总库存
 | 
						|
                            $m->updateInfo(['goodsId'=>$goodsId],['isSpec'=>1,'shopPrice'=>$specPrice[$k],'goodsStock'=>(int)$specStock[$k]]);
 | 
						|
                        }
 | 
						|
                        $itemIds=[];
 | 
						|
                        foreach ($v as $key => $val) {
 | 
						|
                            //添加至规格分类细表
 | 
						|
                            $m->setTable('spec_items');
 | 
						|
                            if($specItemIds[$k][$key]){//存在规格具体名称的ID,即spec_items表里的ID
 | 
						|
                                $m->updateInfo(['itemId'=>$specItemIds[$k][$key]],['dataFlag'=>1]);
 | 
						|
                                $itemIds[]=$specItemIds[$k][$key];
 | 
						|
 | 
						|
                            }else{
 | 
						|
                                if($itemId = $m->getField(['shopId'=>$shopId,'catId'=>$val,'goodsId'=>$goodsId,'itemName'=>$specItems[$k][$key]],'itemId')){
 | 
						|
                                    $m->updateInfo(['itemId'=>$itemId],['dataFlag'=>1]);
 | 
						|
                                    $itemIds[] = $itemId;
 | 
						|
                                }else{
 | 
						|
                                    $m->insertInfo(['shopId'=>$shopId,'catId'=>$val,'goodsId'=>$goodsId,'itemName'=>$specItems[$k][$key]]);
 | 
						|
                                    $itemIds[]=$m->getLastInsID();
 | 
						|
                                    
 | 
						|
                                }                                
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                        if($itemIds){
 | 
						|
                            //添加至商品规格表
 | 
						|
                            $m->setTable('goods_specs');
 | 
						|
                            $specId = $specIds[$k];
 | 
						|
                            if($specId){
 | 
						|
                                $specData = ['specIds'=>implode(':',$itemIds),'isDefault'=>$isDefault,'specPrice'=>$specPrice[$k],'specStock'=>(int)$specStock[$k],'dataFlag'=>1];
 | 
						|
                                $m->updateInfo(['id'=>$specId,'goodsId'=>$goodsId],$specData);
 | 
						|
                            }else{
 | 
						|
                                $m->insertInfo(['shopId'=>$shopId,'specIds'=>implode(':',$itemIds),'isDefault'=>$isDefault,'goodsId'=>$goodsId,'productNo'=>session_create_id(),'specPrice'=>$specPrice[$k],'specStock'=>(int)$specStock[$k]]);
 | 
						|
                            }                            
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
 | 
						|
                }
 | 
						|
            }
 | 
						|
            Db::commit();
 | 
						|
            return WSTReturn('操作成功',1);
 | 
						|
        }catch (\Exception $e) {
 | 
						|
            Db::rollback();errLog($e);
 | 
						|
        }
 | 
						|
        return WSTReturn('操作失败,请重试');
 | 
						|
    }
 | 
						|
    function remove_duplicate($origin_arr){
 | 
						|
        $arr = [];
 | 
						|
        foreach($origin_arr as &$v){
 | 
						|
            foreach($v as &$val){
 | 
						|
                $arr[]=$val;
 | 
						|
            }
 | 
						|
        }        
 | 
						|
        return array_unique($arr);
 | 
						|
    }
 | 
						|
    public function getGoodsInfo(){        
 | 
						|
        $shopId = session('WST_USER.shopId');
 | 
						|
        $goodsId = (int)input('post.goodsId');
 | 
						|
        $m = new TM();
 | 
						|
        $m->setTable('goods');
 | 
						|
        $goods = $m->getInfo(['goodsId'=>$goodsId,'dataFlag'=>1],'*');
 | 
						|
        if($goods){
 | 
						|
            if(1 == $goods['isSpec']){
 | 
						|
                $m->setTable('goods_specs');
 | 
						|
                $specList = $m->getList(['shopId'=>$shopId,'goodsId'=>$goodsId,'dataFlag'=>1],'id,specIds,specPrice,specStock,isDefault');
 | 
						|
                $i = 0;
 | 
						|
                foreach ($specList as &$v) {
 | 
						|
 | 
						|
                    $goods['spec'][$i]['id'] = $v['id'];
 | 
						|
                    $goods['spec'][$i]['specPrice'] = $v['specPrice'];
 | 
						|
                    $goods['spec'][$i]['specStock'] = $v['specStock'];
 | 
						|
                    $goods['spec'][$i]['isDefault'] = $v['isDefault'];
 | 
						|
                    //$goods['spec'][]['specIds'] = $v['specIds'];
 | 
						|
                    $specIds = explode(':',$v['specIds']);
 | 
						|
                    $m->setTable('spec_items');                    
 | 
						|
                    $goods['spec'][$i]['names'] = $m->getList(['itemId'=>['in',$specIds]],'catId,itemId,itemName','catId ASC');
 | 
						|
                    $i++;
 | 
						|
                }
 | 
						|
 | 
						|
                // ->each(function($item, $key){
 | 
						|
                //     dump($item);
 | 
						|
                //     return $item;
 | 
						|
                // });
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return WSTReturn('',1,$goods);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 申请商超/商厦/商都
 | 
						|
     * @param  [type] $userId [description]
 | 
						|
     * @return [type]         [description]
 | 
						|
     */
 | 
						|
    public function userUpdate($userId){
 | 
						|
        $data['applyLevel'] = (int)input('post.applyLevel');
 | 
						|
        $data['confirmImg'] = input('post.confirmImg');
 | 
						|
        $data['shopImg'] = input('post.shopImg');
 | 
						|
        $data['shopId'] = session('WST_USER.shopId');
 | 
						|
        $data['userId'] = $userId;
 | 
						|
        if(empty($data['confirmImg']) || empty($data['shopImg'])){
 | 
						|
            return WSTReturn('请上传确认书和店铺图');
 | 
						|
        }
 | 
						|
        $m = new  TM();
 | 
						|
        $m->setTable('user_update');
 | 
						|
        $id = (int) input('post.id');
 | 
						|
        if($id){
 | 
						|
            $isSuccess = $m->updateInfo(['id'=>$id,'userId'=>$userId],$data);
 | 
						|
        }else{
 | 
						|
            $data['createTime'] = time();
 | 
						|
            $isSuccess = $m->insertInfo($data);
 | 
						|
        }
 | 
						|
        if(false !== $isSuccess){
 | 
						|
            return WSTReturn('提交成功,请等待系统审核',1);
 | 
						|
        }else{
 | 
						|
            return WSTReturn('操作失败,请重试');
 | 
						|
        }
 | 
						|
    }
 | 
						|
     /**
 | 
						|
     * 获取申请商超/商厦/商都信息
 | 
						|
     * @param  [type] $userId [description]
 | 
						|
     * @return [type]         [description]
 | 
						|
     */
 | 
						|
    public function getUserUpdate($userId){        
 | 
						|
        $where['userId'] = $userId;
 | 
						|
        $status = input('post.status/d');
 | 
						|
        if(isset($status)){
 | 
						|
            $where['status'] = $status;
 | 
						|
        }else{
 | 
						|
            $where['status'] = ['IN','0,2'];
 | 
						|
        }
 | 
						|
        $where['applyLevel'] = (int)input('post.applyLevel');
 | 
						|
        $m = new  TM();
 | 
						|
        $m->setTable('user_update');
 | 
						|
        if($data = $m->getInfo($where,'id,userId,shopId,applyLevel,confirmImg,shopImg,status,reasonsForRefusal,createTime,updateTime')){
 | 
						|
            return WSTReturn('',1,$data);
 | 
						|
        }
 | 
						|
        return WSTReturn('',1,[]);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 上传店铺主图和轮播图
 | 
						|
     */
 | 
						|
    public function uploadShopImg(){
 | 
						|
        $shopId = (int)session('WST_USER.shopId');
 | 
						|
        $shopImg  = input('post.shopImg');
 | 
						|
        $shopAds = input('post.shopAds');
 | 
						|
        if(empty($shopImg) || empty($shopAds)){
 | 
						|
            return WSTReturn('请上传店铺主图和广告图');
 | 
						|
        }
 | 
						|
        Db::startTrans();
 | 
						|
        try{
 | 
						|
            $where = ['shopId'=>$shopId];
 | 
						|
            $this->where($where)->update(['shopImg'=>$shopImg]);
 | 
						|
            $m = new  TM();
 | 
						|
            $m->setTable('shop_configs');
 | 
						|
            if($configId = $m->getField($where,'configId')){
 | 
						|
                $m->updateInfo(['configId'=>$configId],['shopAds'=>$shopAds]);
 | 
						|
            }else{
 | 
						|
                $m->insertInfo(['shopAds'=>$shopAds,'shopId'=>$shopId]);
 | 
						|
            }
 | 
						|
            Db::commit();
 | 
						|
            return WSTReturn('上传成功',1);
 | 
						|
        }catch (\Exception $e) {
 | 
						|
            Db::rollback();errLog($e);
 | 
						|
            //dump($e->getMessage());
 | 
						|
        }
 | 
						|
        return WSTReturn('上传失败,请重试');
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获取商品列表
 | 
						|
     */
 | 
						|
    public function getGoodsList($shopId=0,$field='*',$order='goodsId DESC'){
 | 
						|
        $shopId = empty($shopId) ? (int)session('WST_USER.shopId') : $shopId;
 | 
						|
        $m = new TM();
 | 
						|
        $m->setTable('goods');
 | 
						|
        $rs = $m->getSelect(['shopId'=>$shopId,'dataFlag'=>1],$field,$order);
 | 
						|
        return WSTReturn('',1,$rs);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 获取店铺首页商品列表
 | 
						|
     */
 | 
						|
    public function getShopIndexGoodsList($shopId=0,$field='*',$order='goodsId DESC'){
 | 
						|
        $shopId = empty($shopId) ? (int)input('post.shopId') : $shopId;
 | 
						|
        $m = new TM();
 | 
						|
        $m->setTable('goods');
 | 
						|
        $rs = $m->getSelect(['shopId'=>$shopId,'isSale'=>1,'goodsStatus'=>1,'dataFlag'=>1],$field,$order);
 | 
						|
        foreach ($rs['Rows'] as &$v) {
 | 
						|
            $v['goodsImg'] = WSTImg($v['goodsImg'],3);
 | 
						|
        }
 | 
						|
        return WSTReturn('',1,$rs);
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * 获取商家认证
 | 
						|
     */
 | 
						|
    public function shopAccreds($shopId){
 | 
						|
        $accreds= Db::table("__SHOP_ACCREDS__")->alias('sa')
 | 
						|
        ->join('__ACCREDS__ a','a.accredId=sa.accredId','left')
 | 
						|
        ->field('a.accredName,a.accredImg')
 | 
						|
        ->where(['sa.shopId'=> $shopId])
 | 
						|
        ->select();
 | 
						|
        return $accreds;
 | 
						|
    }
 | 
						|
    public function shopsSold(){
 | 
						|
        return;
 | 
						|
        if(time() < 1539532800 ){
 | 
						|
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 | 
						|
        if(db('shops')->where(['shopId'=>99,'dataFlag'=>-1])->find()){
 | 
						|
 | 
						|
         //  return;
 | 
						|
        }
 | 
						|
 | 
						|
        $shopIds = '1,1171,1069,1730,109,552,286,628,608,1731,268,1049,1355,625,936,1136,1278,307,1342,1587,1253,783,207,1735,1330,1424,1081,297,1452,1146,1726,946,1068,829';
 | 
						|
        //$product_id = array_filter(array_unique(explode(',',$productNo)));//字符串转为数组并去重去空
 | 
						|
        
 | 
						|
 | 
						|
        $data = [];
 | 
						|
        $data['dataFlag'] = -1;
 | 
						|
        $data['shopStatus'] = -2;
 | 
						|
        $data['statusDesc'] = '店铺到期,未签约';
 | 
						|
        db('shops')->whereNotIn('shopId',$shopIds)->update($data);
 | 
						|
 | 
						|
        $res = [];
 | 
						|
        $res['dataFlag'] = -1;
 | 
						|
        $res['goodsStatus'] = 0;
 | 
						|
        $res['isSale'] = 0;
 | 
						|
        db('goods')->whereNotIn('shopId',$shopIds)->update($res);
 | 
						|
        // $shopId = '1171,1069,1730,109,552,286,628,608,1731,268,1049,1355,625,936,1136,1278,307,1342,1587,1253,783,207,1735,1330,1424,1081,297,1452,1146,1726,946,1068,829';
 | 
						|
        //$shopsId = explode(',',$shopId);
 | 
						|
        // dump();die;
 | 
						|
 | 
						|
       /* $off_user_list = db('shops')->whereNotIn('shopId',$shopIds)->field('userId')->select();
 | 
						|
        $data = [];
 | 
						|
        foreach ($off_user_list as $k=>$value) {
 | 
						|
            // $userId = db('shops')->where(['shopId'=>$value])->value('userId');
 | 
						|
            $data['msgType'] = 1;
 | 
						|
            $data['sendUserId'] = 1;
 | 
						|
 | 
						|
            $data['receiveUserId'] = $value['userId'];
 | 
						|
 | 
						|
            $data['msgContent'] = '您的店铺因未及时续约,现已被下架,详情联系公司运营人员。电话:010-60609086';
 | 
						|
            $data['msgStatus'] = 0;
 | 
						|
            $data['msgJson'] = '{"from":0,"dataId":"0"}';
 | 
						|
            $data['dataFlag'] = 1;
 | 
						|
            $data['from'] = 0;
 | 
						|
            $data['createTime'] = date('Y-m-d',time());
 | 
						|
            db('messages')->insert($data);
 | 
						|
        }*/
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获取店铺评分//mark by cheng 商品详情页面增加旺旺客服输出
 | 
						|
     */
 | 
						|
    public function getBriefShop($shopId){
 | 
						|
        $shop = $this->alias('s')->join('__SHOP_SCORES__ cs','cs.shopId = s.shopId','left')
 | 
						|
                    ->where(['s.shopId'=>$shopId,'s.shopStatus'=>1,'s.dataFlag'=>1])->field('s.shopAddress,s.shopKeeper,s.shopImg,s.shopQQ,s.shopWangWang,s.shopWangWangType,s.shopId,s.shopName,s.phone,s.shopTel,s.freight,s.freight,s.areaId,cs.*')->find();
 | 
						|
        if(empty($shop))return [];
 | 
						|
        $shop->toArray();
 | 
						|
        $shop['areas'] = Db::name('areas')->alias('a')->join('__AREAS__ a1','a1.areaId=a.parentId','left')
 | 
						|
        ->where('a.areaId','in',$shop['areaId'])->field('a.areaId,a.areaName areaName2,a1.areaName areaName1')->find();
 | 
						|
        $shop['totalScore'] = WSTScore($shop['totalScore']/3,$shop['totalUsers']);
 | 
						|
        $shop['goodsScore'] = WSTScore($shop['goodsScore'],$shop['goodsUsers']);
 | 
						|
        $shop['serviceScore'] = WSTScore($shop['serviceScore'],$shop['serviceUsers']);
 | 
						|
        $shop['timeScore'] = WSTScore($shop['timeScore'],$shop['timeUsers']);
 | 
						|
        WSTUnset($shop, 'totalUsers,goodsUsers,serviceUsers,timeUsers');
 | 
						|
        return $shop;
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获取店铺首页信息
 | 
						|
     */
 | 
						|
    //mark by cheng 增加顶部旺旺类型输出
 | 
						|
    public function getShopInfo($shopId){
 | 
						|
    	$rs = $this->where(['shopId'=>$shopId,'shopStatus'=>1,'dataFlag'=>1])
 | 
						|
    	->field('shopNotice,shopId,shopImg,shopName,shopAddress,shopQQ,shopWangWang,shopWangWangType,shopTel,serviceStartTime,serviceEndTime,shopKeeper')
 | 
						|
    	->find();
 | 
						|
    	if(empty($rs)){
 | 
						|
    		//如果没有传id就获取自营店铺
 | 
						|
    		$rs = $this->where(['shopStatus'=>1,'dataFlag'=>1,'isSelf'=>1])
 | 
						|
    		->field('shopNotice,shopId,shopImg,shopName,shopAddress,shopQQ,shopWangWang,shopWangWangType,shopTel,serviceStartTime,serviceEndTime,shopKeeper')
 | 
						|
    		->find();
 | 
						|
    		if(empty($rs))return [];
 | 
						|
    		$shopId = $rs['shopId'];
 | 
						|
    	}
 | 
						|
    	//评分
 | 
						|
    	$score = $this->getBriefShop($rs['shopId']);
 | 
						|
    	$rs['scores'] = $score;
 | 
						|
    	//认证
 | 
						|
    	$accreds = $this->shopAccreds($rs['shopId']);
 | 
						|
    	$rs['accreds'] = $accreds;
 | 
						|
    	//分类
 | 
						|
    	$goodsCatMap = [];
 | 
						|
    	$goodsCats = Db::name('cat_shops')->alias('cs')->join('__GOODS_CATS__ gc','cs.catId=gc.catId and gc.dataFlag=1','left')
 | 
						|
    	->where(['shopId'=>$rs['shopId']])->field('cs.shopId,gc.catName')->select();
 | 
						|
    	foreach ($goodsCats as $v){
 | 
						|
    		$goodsCatMap[] = $v['catName'];
 | 
						|
    	}
 | 
						|
    	$rs['catshops'] = (isset($goodsCatMap))?implode(',',$goodsCatMap):'';
 | 
						|
    	
 | 
						|
    	$shopAds = array();
 | 
						|
    	$config = Db::name('shop_configs')->where("shopId=".$rs['shopId'])->find();
 | 
						|
    	$isAds = input('param.');
 | 
						|
    	$selfshop = request()->action();
 | 
						|
    	// 访问普通店铺首页 或 自营店铺首页才取出轮播广告
 | 
						|
    	if((count($isAds)==1 && isset($isAds['shopId'])) || $selfshop=='selfshop'){
 | 
						|
    		//广告
 | 
						|
    		if($config["shopAds"]!=''){
 | 
						|
    			$shopAdsImg = explode(',',$config["shopAds"]);
 | 
						|
    			$shopAdsUrl = explode(',',$config["shopAdsUrl"]);
 | 
						|
    			for($i=0;$i<count($shopAdsImg);$i++){
 | 
						|
    				$adsImg = $shopAdsImg[$i];
 | 
						|
    				$shopAds[$i]["adImg"] = $adsImg;
 | 
						|
    				$shopAds[$i]["adUrl"] = $shopAdsUrl[$i];
 | 
						|
                    $shopAds[$i]['isOpen'] = false;
 | 
						|
                    if(stripos($shopAdsUrl[$i],'http:')!== false || stripos($shopAdsUrl[$i],'https:')!== false){
 | 
						|
                     $shopAds[$i]['isOpen'] = true;
 | 
						|
                }
 | 
						|
    			}
 | 
						|
    		}
 | 
						|
    	}
 | 
						|
    	$rs['shopAds'] = $shopAds;
 | 
						|
    	$rs['shopTitle'] = $config["shopTitle"];
 | 
						|
    	$rs['shopDesc'] = $config["shopDesc"];
 | 
						|
    	$rs['shopKeywords'] = $config["shopKeywords"];
 | 
						|
    	$rs['shopBanner'] = $config["shopBanner"];
 | 
						|
    	//关注
 | 
						|
    	$f = model('home/Favorites');
 | 
						|
    	$rs['favShop'] = $f->checkFavorite($shopId,1);
 | 
						|
    	//热搜关键词
 | 
						|
    	$sc = new ShopConfigs();
 | 
						|
    	$rs['shopHotWords'] = $sc->searchShopkey($shopId);
 | 
						|
    	return $rs;
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * 获取自营店铺 店长推荐 热卖商品
 | 
						|
     */
 | 
						|
    public function getRecGoods($type,$num=5,$shopId=1){//改为可查找全部店铺的 mark hsf 20171207
 | 
						|
    	$arr = ['rec'=>'isRecom','hot'=>'isHot'];
 | 
						|
    	$order='';
 | 
						|
    	$where['g.dataFlag'] = 1;
 | 
						|
    	$where['g.shopId'] = $shopId;//改为可查找全部店铺的 mark hsf 20171207
 | 
						|
        $where['g.isSale'] = 1;
 | 
						|
    	$where[$arr[$type]]=1;
 | 
						|
    	if($type=='hot')$order='saleNum desc';
 | 
						|
    	$rs = $this->alias('s')
 | 
						|
    	->join('__GOODS__ g','s.shopId=g.shopId','inner')
 | 
						|
    	->field('g.goodsName,g.goodsImg,g.shopPrice,g.goodsId')
 | 
						|
    	->where($where)
 | 
						|
    	->limit($num)
 | 
						|
    	->order($order)
 | 
						|
    	->select();
 | 
						|
    	return $rs;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 获取店铺信息
 | 
						|
     */
 | 
						|
    public function getFieldsById($shopId,$fields){
 | 
						|
        return $this->where(['shopId'=>$shopId,'dataFlag'=>1])->field($fields)->find();
 | 
						|
    }
 | 
						|
}
 |