初始化代码

This commit is contained in:
2025-12-22 14:32:54 +08:00
parent e27ab90d9f
commit d02b31a8b9
1459 changed files with 240973 additions and 0 deletions

View File

@@ -0,0 +1,389 @@
<?php
namespace app\shop\controller;
use app\ApiRest;
use app\farm\model\ShopGoods;
use app\massage\model\Coupon;
use app\massage\model\CouponRecord;
use app\Rest;
use app\shop\model\Cap;
use app\shop\model\Car;
use app\shop\model\Goods;
use app\shop\model\GoodsCate;
use app\shop\model\GoodsSpe;
use app\shop\model\GoodsSpePrice;
use app\shop\model\Integral;
use app\shop\model\LuckConfig;
use app\shop\model\LuckDraw;
use app\shop\model\LuckRecord;
use app\shop\model\OrderGoods;
use app\shop\model\SeckillConfig;
use app\shop\model\SeckillGoods;
use app\shop\model\SeckillInfo;
use app\shop\model\SeckillList;
use app\shop\model\User;
use think\App;
use think\facade\Db;
use think\Request;
class IndexGoods extends ApiRest
{
protected $model;
protected $cate_model;
protected $kill_model;
public function __construct(App $app) {
parent::__construct($app);
$this->model = new ShopGoods();
$this->kill_model = new SeckillList();
}
/**
* @author chenniang
* @DataTime: 2022-07-22 16:33
* @功能说明:秒杀活动
*/
public function killAtvList(){
$this->kill_model->initAtv();
$dis[] = ['uniacid','=',$this->_uniacid];
$dis[] = ['status','=',1];
$dis[] = ['end_time','>',time()];
$data = $this->kill_model->where($dis)->order('start_time,id desc')->select()->toArray();
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2022-07-25 11:38
* @功能说明:热门商品列表
*/
public function hotGoodsList(){
$input = $this->_param;
$goods_model = new ShopGoods();
$dis[] = ['uniacid','=',$this->_uniacid];
$dis[] = ['index_show','=',1];
$dis[] = ['status','=',1];
if(!empty($input['goods_name'])){
$dis[] = ['goods_name','like','%'.$input['goods_name'].'%'];
}
$data = $goods_model->where($dis)->order('top desc,id desc')->paginate(10)->toArray();
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2022-07-25 15:51
* @功能说明:秒杀商品列表
*/
public function killGoodsList(){
$input = $this->_param;
$goods_model = new SeckillGoods();
$dis[] = ['a.atv_id','=',$input['atv_id']];
$dis[] = ['b.status','=',1];
$dis[] = ['a.status','=',1];
$dis[] = ['e.status','=',1];
$dis[] = ['d.status','=',2];
$dis[] = ['d.business_status','=',1];
if(!empty($input['goods_name'])){
$dis[] = ['b.goods_name','like','%'.$input['goods_name'].'%'];
}
$data = $goods_model->goodsList($dis);
if(!empty($data['data'])){
$info_model = new SeckillInfo();
foreach ($data['data'] as &$v){
$dis = [
'uniacid' => $this->_uniacid,
'goods_id' => $v['goods_id'],
'kill_id' => $v['atv_id'],
'user_id' => $this->getUserId()
];
$find = $info_model->dataInfo($dis);
$v['have_notice'] = !empty($find)?1:0;
}
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2022-08-24 15:10
* @功能说明:秒杀活动提醒
*/
public function killNotice(){
$input = $this->_input;
$dis = [
'uniacid' => $this->_uniacid,
'goods_id' => $input['goods_id'],
'kill_id' => $input['atv_id'],
'user_id' => $this->getUserId()
];
$info_model = new SeckillInfo();
$find = $info_model->dataInfo($dis);
if(empty($find)){
$info_model->dataAdd($dis);
}else{
$info_model->where($dis)->delete();
}
return $this->success(true);
}
/**
* @author chenniang
* @DataTime: 2022-07-26 14:03
* @功能说明:抽奖详情
*/
public function luckInfo(){
$input = $this->_param;
$dis[] = ['uniacid','=',$this->_uniacid];
$dis[] = ['start_time','<',time()];
$dis[] = ['end_time','>',time()];
$dis[] = ['status','=',1];
$luck_model = new LuckDraw();
$atv= $luck_model->dataInfo($dis);
if(empty($atv)){
return $this->success($atv);
$this->errorMsg('活动已经结束');
}
$config_model = new LuckConfig();
$record_model = new LuckRecord();
$user_model = new \app\farm\model\User();
$list = $config_model->where(['luck_id'=>$atv['id']])->order('top,id desc')->select()->toArray();
$user_num = $record_model->where(['user_id'=>$this->getUserId(),'atv_id'=>$atv['id']])->whereTime('create_time','today')->count();
$arr['data'] = $list;
$arr['user_num'] = ($atv['day_times'] - $user_num)>0?$atv['day_times'] - $user_num:0;
$arr['integral'] = $atv['integral'];
$arr['atv_id'] = $atv['id'];
$arr['cover'] = $atv['cover'];
$arr['text'] = $atv['text'];
$arr['day_times']= $atv['day_times'];
$arr['user_integral'] = $user_model->where(['id'=>$this->getUserId()])->sum('integral');
return $this->success($arr);
}
/**
* @author chenniang
* @DataTime: 2022-07-26 16:12
* @功能说明:中奖记录
*/
public function luckRecord(){
$input = $this->_param;
$record_model = new LuckRecord();
$dis = [
'a.atv_id' => $input['id'],
'a.is_luck'=> 1
];
$data = $record_model->recordList($dis);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2022-08-25 11:04
* @功能说明:用户中奖记录
*/
public function userLuckRecord(){
$input = $this->_param;
$record_model = new LuckRecord();
$dis = [
'a.user_id' => $this->getUserId(),
// 'a.is_luck'=> 1
];
if(!empty($input['id'])){
$dis['a.atv_id'] = $input['id'];
}
$data = $record_model->recordList($dis);
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
}
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2022-07-26 14:09
* @功能说明:用户抽奖
*/
public function luckDraw(){
$input = $this->_input;
$luck_model = new LuckDraw();
$record_model = new LuckRecord();
$dis[] = ['id','=',$input['id']];
$dis[] = ['start_time','<',time()];
$dis[] = ['end_time','>',time()];
$data = $luck_model->dataInfo($dis);
if(empty($data)){
$this->errorMsg('活动未在规则时间内');
}
$user_num = $record_model->where(['user_id'=>$this->getUserId(),'atv_id'=>$input['id']])->whereTime('create_time','today')->count();
if($user_num>=$data['day_times']){
$this->errorMsg('超过每日抽奖次数,你今日已抽'.$user_num.'次');
}
$user_model = new \app\farm\model\User();
$user_integral= $user_model->where(['id'=>$this->getUserId()])->sum('integral');
if($data['integral']>$user_integral){
$this->errorMsg('积分不足');
}
//抽奖
$res = $luck_model->luckDraw($input['id'],$this->getUserId(),$data['integral'],$user_num);
return $this->success($res);
}
}