You've already forked qlg.tsgz.moe
addons
app_download_files
extend
hyhproject
admin
behavior
common
conf
controller
model
Accreds.php
AdPositions.php
Addons.php
Adgoods.php
Ads.php
Alipays.php
Areas.php
ArticleCats.php
Articles.php
Attributes.php
Banks.php
Base.php
Brands.php
Carts.php
CashDraws.php
ChargeItems.php
CronJobs.php
DataCats.php
Datas.php
EctDay.php
EctDeal.php
EctTarget.php
Express.php
Friendlinks.php
Goods.php
GoodsAppraises.php
GoodsCats.php
GoodsClassify.php
GoodsConsult.php
HomeMenus.php
Hooks.php
Images.php
Index.php
Informs.php
LogMoneys.php
LogOperates.php
LogSms.php
LogStaffLogins.php
Member.php
Menus.php
Messages.php
MobileBtns.php
Navs.php
OrderComplains.php
OrderRefunds.php
Orders.php
Payments.php
Privileges.php
Recommends.php
Reports.php
Roles.php
Settlements.php
Shops.php
SpecCats.php
Staffs.php
Styles.php
SysConfigs.php
TemplateMsgs.php
UserRanks.php
UserScores.php
Users.php
Weixinpays.php
WeixinpaysApp.php
WxPassiveReplys.php
WxTemplateParams.php
Wxmenus.php
Wxusers.php
validate
view
app
common
home
home2
mobile2
wechat2
.htaccess
command.php
mobile
oss
static
thinkphp
upload
vendor
wxtmp
.gitignore
.htaccess
.user.ini
404.html
H5B854518.wgt
admin.php
app-release.apk
app_download.html
cash.lock
demo.php
get_startup.php
get_version.php
get_version_new.php
index.html
index.php
reg.lock
robots.txt
877 lines
14 KiB
PHP
Executable File
877 lines
14 KiB
PHP
Executable File
<?php
|
|
|
|
namespace wstmart\admin\model;
|
|
|
|
use think\Validate;
|
|
|
|
/**
|
|
|
|
* ============================================================================
|
|
|
|
* 商品分类业务处理
|
|
|
|
*/
|
|
|
|
use think\Db;
|
|
|
|
class GoodsClassify extends Base{
|
|
|
|
/**
|
|
|
|
* 获取树形分类
|
|
|
|
*/
|
|
|
|
public function pageQuery(){
|
|
|
|
return Db::name('goods_classify')->order('orderby desc')->paginate(15)->toArray();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取指定对象
|
|
|
|
*/
|
|
|
|
public function getById($goodsclassifyId){
|
|
|
|
$obj = null;
|
|
|
|
if($goodsclassifyId>0){
|
|
|
|
$obj = Db::name('goods_classify')->where(['goodsclassifyId'=>$goodsclassifyId])->find();
|
|
|
|
}else{
|
|
|
|
$obj = self::getEModel("goods_classify");
|
|
|
|
}
|
|
|
|
return $obj;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 新增
|
|
|
|
*/
|
|
|
|
public function add(){
|
|
|
|
$data = input('post.');
|
|
|
|
$data['create_time'] = date('Y-m-d H:i:s');
|
|
|
|
$validate = Validate::make([
|
|
|
|
'goodsclassifyName' => 'require',
|
|
|
|
]);
|
|
|
|
$msg = [
|
|
|
|
'goodsclassifyName.require' => '商品总名称不能为空',
|
|
|
|
];
|
|
|
|
|
|
|
|
$info = [
|
|
|
|
'goodsclassifyName' => $data['goodsclassifyName'],
|
|
|
|
];
|
|
|
|
if (!$validate->check($info)) {
|
|
|
|
return WSTReturn ($validate->getError());
|
|
|
|
}
|
|
|
|
$find=$this->where('goodsclassifyName',$data['goodsclassifyName'])->find();
|
|
|
|
if($find) return WSTReturn('此总分类名称已存在');
|
|
|
|
$result = $this->allowField(true)->save($data);
|
|
|
|
if(false !== $result){
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("新增成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn($this->getError(),-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 编辑
|
|
|
|
*/
|
|
|
|
public function edit(){
|
|
|
|
$goodsclassifyId = input('post.goodsclassifyId/d');
|
|
|
|
$data = input('post.');
|
|
|
|
$result=$this->allowField(true)->save($data,['goodsclassifyId'=>$goodsclassifyId]);
|
|
|
|
if(false !== $result){
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("新增成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn($this->getError(),-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 删除
|
|
|
|
*/
|
|
|
|
public function del(){
|
|
|
|
$id = input('post.goodsclassifyId/d');
|
|
|
|
$see=db('cat_classify')->where('classifyId',$id)->find();
|
|
|
|
$recom=db('recom_classify')->where('classifyId',$id)->find();
|
|
|
|
if($see!==NUll) return WSTReturn ('商品有子分类,不能删除');
|
|
|
|
if($recom) return WSTReturn ('此商品分类有活动,不能删除');
|
|
|
|
$result=$this->where('goodsclassifyId',$id)->delete();
|
|
|
|
if($result!=false){
|
|
|
|
return WSTReturn("删除成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn('删除失败',-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取指定对象
|
|
|
|
*/
|
|
|
|
public function getByIds($catId){
|
|
|
|
$obj = null;
|
|
|
|
if($catId>0){
|
|
|
|
$obj = Db::name('cat_classify')->where(['catId'=>$catId])->find();
|
|
|
|
}else{
|
|
|
|
$obj = self::getEModel("cat_classify");
|
|
|
|
}
|
|
|
|
return $obj;
|
|
|
|
}
|
|
|
|
// 添加商品分类
|
|
|
|
public function add_cat(){
|
|
|
|
$data=input('post.');
|
|
|
|
$result = db('cat_classify')->insert($data);
|
|
|
|
if(false !== $result){
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("新增成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn("新增失败",-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//获取商品分类
|
|
|
|
public function catdetail(){
|
|
|
|
$id=input('goodsclassifyId');
|
|
|
|
$result=db('cat_classify')->where('classifyId',$id)->field('catId')->select();
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
//获取商品分类列表
|
|
|
|
public function catdetailPage(){
|
|
|
|
$id=input('classifyId');
|
|
|
|
$pagesize = input('limit/d');
|
|
|
|
$result=db('cat_classify')->alias('a')
|
|
|
|
->join('goods_cats g','g.catId=a.catId','left')
|
|
|
|
->where('classifyId',$id)->field('g.catName,createTime,a.catId')
|
|
|
|
->paginate($pagesize)->toArray();
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 删除商品分类
|
|
|
|
*/
|
|
|
|
public function catdel(){
|
|
|
|
$catId = input('catId');
|
|
|
|
$classifyId = input('classifyId');
|
|
|
|
$result=db('cat_classify')->where(['catId'=>$catId,'classifyId'=>$classifyId])->delete();
|
|
|
|
if($result!=false){
|
|
|
|
return WSTReturn("删除成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn('删除失败',-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
详情
|
|
|
|
*/
|
|
|
|
public function detail(){
|
|
|
|
$id=input('catId');
|
|
|
|
$result=db('cat_classify')->where('catId',$id)->field('catId')->select();
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
//详情分页
|
|
|
|
public function detailByPage(){
|
|
|
|
$catId=input('catId');
|
|
|
|
$pagesize = input('limit/d');
|
|
|
|
$get_child=$this->getChild('',$catId);
|
|
|
|
$goods_result=db('goods')->alias('a')->join('shops s','s.shopId=a.shopId','left')
|
|
|
|
->whereIn('goodsCatId',$get_child)->order('saleNum desc')
|
|
|
|
->where(['isSale'=>1,'a.dataFlag'=>1,'a.goodsStatus'=>1,'isHot'=>1])
|
|
|
|
->field('goodsId,goodsName,goodsImg,shopPrice,saleNum,goodsSn,s.shopName,a.shopId,goodsCatIdPath')
|
|
|
|
->paginate($pagesize)->toArray();
|
|
|
|
$keyCats = model('GoodsCats')->listKeyAll();
|
|
|
|
foreach ($goods_result['Rows'] as $key => $v){
|
|
|
|
$goods_result['Rows'][$key]['verfiycode'] = WSTShopEncrypt($v['shopId']);
|
|
|
|
$goods_result['Rows'][$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
|
|
|
}
|
|
|
|
return $goods_result;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getGoodsCatNames($goodsCatPath, $keyCats){
|
|
|
|
$catIds = explode("_",$goodsCatPath);
|
|
|
|
$catNames = array();
|
|
|
|
for($i=0,$k=count($catIds);$i<$k;$i++){
|
|
|
|
if($catIds[$i]=='')continue;
|
|
|
|
if(isset($keyCats[$catIds[$i]]))$catNames[] = $keyCats[$catIds[$i]];
|
|
|
|
}
|
|
|
|
return implode("→",$catNames);
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 迭代获取下级
|
|
|
|
* 获取一个分类下的所有子级分类id
|
|
|
|
*/
|
|
|
|
public function getChild($data,$pid){
|
|
|
|
$childId = db('goods_cats')->where("dataFlag=1")->where('parentId',$pid)->field('catId,parentId')->select();
|
|
|
|
//获取该分类id下的所有子级分类id
|
|
|
|
foreach($childId as $key=>$value){
|
|
|
|
$child[]=$value['catId'];
|
|
|
|
}
|
|
|
|
static $ids = array();
|
|
|
|
foreach($childId as $k=>$v){
|
|
|
|
//dump($childId);
|
|
|
|
$ids[] = $v['catId'];//将找到的下级分类id放入静态数组
|
|
|
|
//再找下当前id是否还存在下级id
|
|
|
|
$this->getChild($childId, $v['catId']);
|
|
|
|
}
|
|
|
|
return $ids;
|
|
|
|
}
|
|
|
|
//活动详情分页
|
|
|
|
public function setdetailPage(){
|
|
|
|
$recomId=input('recomId');
|
|
|
|
$goodsId=input('goodsId');
|
|
|
|
$where=[];
|
|
|
|
//dump($recomId);
|
|
|
|
if($recomId)$where['rg.recomId'] = $recomId;
|
|
|
|
if($goodsId)$where['rg.goodsId'] = ['like','%'.$goodsId.'%'];
|
|
|
|
$classifyId=input('classifyId');
|
|
|
|
$pagesize = input('limit/d');
|
|
|
|
$goods_result=db('recom_classify')->alias('rc')
|
|
|
|
->join('recom_goods rg','rg.recomId =rc.recomId','left')
|
|
|
|
->join('goods a','a.goodsId=rg.goodsId','left')
|
|
|
|
->where(['isSale'=>1,'a.dataFlag'=>1,'a.goodsStatus'=>1,'rc.classifyId'=>$classifyId])->where($where)
|
|
|
|
->field('recomGoodsId,a.goodsId,a.goodsName,goodsImg,rc.recomId,rc.recomName,rg.goodsOrder,from_unixtime(rg.createTime)createTime,a.shopPrice')
|
|
|
|
->order('goodsOrder desc')
|
|
|
|
->paginate($pagesize)->toArray();
|
|
|
|
return $goods_result;
|
|
|
|
}
|
|
|
|
//更改活动商品的排序号
|
|
|
|
public function changeSet(){
|
|
|
|
$id=(int)input('id');
|
|
|
|
$goodsOrder=(int)input('goodsOrder');
|
|
|
|
$result=db('recom_goods')->where('recomGoodsId',$id)->update(['goodsOrder'=>$goodsOrder]);
|
|
|
|
if($result!==false){
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("新增成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn("新增失败",-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//活动详情分页
|
|
|
|
public function recomPage(){
|
|
|
|
$classifyId=input('classifyId');
|
|
|
|
$goodsId=(int)input('goodsId');
|
|
|
|
$where=[];
|
|
|
|
if($goodsId)$where['ra.goodsId'] = ['like','%'.$goodsId.'%'];
|
|
|
|
$pagesize = input('limit/d');
|
|
|
|
$goods_result=db('recom_active')->alias('ra')
|
|
|
|
->join('goods a','a.goodsId=ra.goodsId','left')
|
|
|
|
->where(['isSale'=>1,'a.dataFlag'=>1,'a.goodsStatus'=>1,'ra.classifyId'=>$classifyId])->where($where)
|
|
|
|
->field('recomActiveId,a.goodsId,a.goodsName,goodsImg,ra.goodsOrder,from_unixtime(ra.createTime)createTime,a.shopPrice')
|
|
|
|
->order('goodsOrder desc')
|
|
|
|
->paginate($pagesize)->toArray();
|
|
|
|
return $goods_result;
|
|
|
|
}
|
|
|
|
//更改活动商品的排序号
|
|
|
|
public function changeRecom(){
|
|
|
|
$id=(int)input('id');
|
|
|
|
$goodsOrder=(int)input('goodsOrder');
|
|
|
|
$result=db('recom_active')->where('recomActiveId',$id)->update(['goodsOrder'=>$goodsOrder]);
|
|
|
|
if($result!==false){
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("新增成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn("新增失败",-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//删除推荐商品
|
|
|
|
public function recomActiveDel(){
|
|
|
|
$recomGoodsId=input('recomActiveId');
|
|
|
|
$result=db('recom_active')->where('recomActiveId',$recomGoodsId)->delete();
|
|
|
|
if($result!=false){
|
|
|
|
return WSTReturn("删除成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn('删除失败',-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 获取指定对象
|
|
|
|
*/
|
|
|
|
public function getrecomActiveId($recomActiveId){
|
|
|
|
$obj = null;
|
|
|
|
if($recomActiveId>0){
|
|
|
|
$obj = Db::name('recom_active')->where(['recomActiveId'=>$recomActiveId])->find();
|
|
|
|
}else{
|
|
|
|
$obj = self::getEModel("recom_active");
|
|
|
|
}
|
|
|
|
return $obj;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 新增
|
|
|
|
*/
|
|
|
|
public function addrecomActive(){
|
|
|
|
Db::startTrans();
|
|
|
|
try{
|
|
|
|
$data=input('post.');
|
|
|
|
$data['createTime']=time();
|
|
|
|
$goodsId = trim(input('goodsId'));
|
|
|
|
$product_id = explode(',',$goodsId);
|
|
|
|
$arr=[];
|
|
|
|
foreach ($product_id as $k=>$value) {
|
|
|
|
$goods=db('goods')->where('goodsId',$value)->where('dataFlag=1 and isSale=1 and goodsStatus=1')->find();
|
|
|
|
if(!$goods) return WSTReturn('无效商品 '.$value);
|
|
|
|
$arr[$k]['goodsId'] = $value;
|
|
|
|
$arr[$k]['classifyId'] = $data['classifyId'];
|
|
|
|
$arr[$k]['createTime'] = $data['createTime'];
|
|
|
|
if($arr[$k]['goodsId']=="," || $arr[$k]['goodsId']==""){
|
|
|
|
unset($arr[$k]);
|
|
|
|
}
|
|
|
|
$find=db('recom_active')->where(['goodsId'=>$arr[$k]['goodsId']])->find();
|
|
|
|
if($find) return WSTReturn('此商品已存在 '.$arr[$k]['goodsId']);
|
|
|
|
}
|
|
|
|
$result=Db::name('recom_active')->insertAll($arr);
|
|
|
|
Db::commit();
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("新增成功", 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
catch(\Exception $e) {
|
|
|
|
Db::rollback();errLog($e);
|
|
|
|
}
|
|
|
|
return WSTReturn("添加失败",-1);
|
|
|
|
}
|
|
|
|
//查看活动页活动分类
|
|
|
|
public function catsPage(){
|
|
|
|
$classifyId=input('classifyId');
|
|
|
|
$goods_result=db('recom_classify')->alias('rc')
|
|
|
|
->join('goods_classify gc','gc.goodsclassifyId=rc.classifyId','left')
|
|
|
|
->where('classifyId',$classifyId)
|
|
|
|
->field('recomId,recomName,classifyId,goodsclassifyName,recomOrder,from_unixtime(startTime) startTime,from_unixtime(endTime)endTime')
|
|
|
|
->order('recomOrder desc')
|
|
|
|
->paginate()->toArray();
|
|
|
|
return $goods_result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取指定对象
|
|
|
|
*/
|
|
|
|
public function getCatsId($recomId){
|
|
|
|
$obj = null;
|
|
|
|
if($recomId>0){
|
|
|
|
$obj = Db::name('recom_classify')->where(['recomId'=>$recomId])->find();
|
|
|
|
$obj['startTime']=date('Y-m-d H:i:s',$obj['startTime']);
|
|
|
|
$obj['endTime']=date('Y-m-d H:i:s',$obj['endTime']);
|
|
|
|
}else{
|
|
|
|
$obj = self::getEModel("recom_classify");
|
|
|
|
}
|
|
|
|
return $obj;
|
|
|
|
}
|
|
|
|
// 添加商品活动分类
|
|
|
|
public function addCats(){
|
|
|
|
$data=input('post.');
|
|
|
|
$data['startTime']=strtotime(input('startTime'));
|
|
|
|
$data['endTime']=strtotime(input('endTime'));
|
|
|
|
$find=db('recom_classify')->where('recomName',$data['recomName'])->find();
|
|
|
|
if($find) return WSTReturn('此分类名称已存在');
|
|
|
|
$result = db('recom_classify')->insert($data);
|
|
|
|
if(false !== $result){
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("新增成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn("新增失败",-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 修改商品活动分类
|
|
|
|
public function editCats(){
|
|
|
|
$data=input('post.');
|
|
|
|
$data['startTime']=strtotime(input('startTime'));
|
|
|
|
$data['endTime']=strtotime(input('endTime'));
|
|
|
|
$result = db('recom_classify')->where('recomId',$data['recomId'])->update($data);
|
|
|
|
if(false !== $result){
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("操作成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn("操作失败",-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//删除分类活动
|
|
|
|
public function catsDel(){
|
|
|
|
$recomId=input('recomId');
|
|
|
|
$m=input('m');
|
|
|
|
Db::startTrans();
|
|
|
|
try{
|
|
|
|
if($m==2){
|
|
|
|
db('recom_goods')->where('recomId',$recomId)->delete();
|
|
|
|
db('recom_classify')->where('recomId',$recomId)->delete();
|
|
|
|
}else{
|
|
|
|
$find_goods=db('recom_goods')->where('recomId',$recomId)->find();
|
|
|
|
if($find_goods) return WSTReturn('此分类有活动商品',2);
|
|
|
|
db('recom_classify')->where('recomId',$recomId)->delete();
|
|
|
|
}
|
|
|
|
Db::commit();
|
|
|
|
return WSTReturn("操作成功", 1);
|
|
|
|
}catch (\Exception $e) {
|
|
|
|
Db::rollback();errLog($e);
|
|
|
|
return WSTReturn('删除失败',-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 获取指定对象
|
|
|
|
*/
|
|
|
|
public function getGoodsId($recomId){
|
|
|
|
$obj = null;
|
|
|
|
if($recomId>0){
|
|
|
|
$obj = Db::name('recom_goods')->where(['id'=>$recomId])->find();
|
|
|
|
}else{
|
|
|
|
$obj = self::getEModel("recom_goods");
|
|
|
|
}
|
|
|
|
return $obj;
|
|
|
|
}
|
|
|
|
// 添加活动商品
|
|
|
|
public function addGoods(){
|
|
|
|
Db::startTrans();
|
|
|
|
try{
|
|
|
|
$data=input('post.');
|
|
|
|
$data['createTime']=time();
|
|
|
|
$goodsId = trim(input('goodsId'));
|
|
|
|
$product_id = explode(',',$goodsId);
|
|
|
|
$arr=[];
|
|
|
|
foreach ($product_id as $k=>$value) {
|
|
|
|
$goods=db('goods')->where('goodsId',$value)->where('dataFlag=1 and isSale=1 and goodsStatus=1')->find();
|
|
|
|
if(!$goods) return WSTReturn('无效商品 '.$value);
|
|
|
|
$arr[$k]['goodsId'] = $value;
|
|
|
|
$arr[$k]['recomId'] = $data['recomId'];
|
|
|
|
$arr[$k]['createTime'] = $data['createTime'];
|
|
|
|
if($arr[$k]['goodsId']=="," || $arr[$k]['goodsId']==""){
|
|
|
|
unset($arr[$k]);
|
|
|
|
}
|
|
|
|
$find=db('recom_goods')->where(['goodsId'=>$arr[$k]['goodsId'],'recomId'=>$arr[$k]['recomId']])->find();
|
|
|
|
if($find) return WSTReturn('此商品已存在 '.$arr[$k]['goodsId']);
|
|
|
|
}
|
|
|
|
$result=Db::name('recom_goods')->insertAll($arr);
|
|
|
|
Db::commit();
|
|
|
|
WSTClearAllCache();
|
|
|
|
return WSTReturn("添加成功", 1);
|
|
|
|
}
|
|
|
|
catch(\Exception $e) {
|
|
|
|
Db::rollback();errLog($e);
|
|
|
|
}
|
|
|
|
return WSTReturn("添加失败",-1);
|
|
|
|
}
|
|
|
|
//删除分类活动商品
|
|
|
|
public function goodsDel(){
|
|
|
|
$recomGoodsId=input('recomGoodsId');
|
|
|
|
$result=db('recom_goods')->where('recomGoodsId',$recomGoodsId)->delete();
|
|
|
|
if($result!=false){
|
|
|
|
return WSTReturn("删除成功", 1);
|
|
|
|
}else{
|
|
|
|
return WSTReturn('删除失败',-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} |