...
|
...
|
@@ -6,11 +6,13 @@ use app\common\controller\Api; |
|
|
use fast\Tree;
|
|
|
use think\Config;
|
|
|
use think\Db;
|
|
|
use WeMini\Template;
|
|
|
use WeChat\Exceptions\InvalidResponseException;
|
|
|
use WeChat\Exceptions\LocalCacheException;
|
|
|
use WeMini\Newtmpl;
|
|
|
|
|
|
/**
|
|
|
* 课程接口
|
|
|
*/
|
|
|
* 课程接口
|
|
|
*/
|
|
|
class Course extends Api
|
|
|
{
|
|
|
protected $noNeedLogin = ['*'];
|
...
|
...
|
@@ -114,7 +116,11 @@ class Course extends Api |
|
|
|
|
|
if(!empty($date)){
|
|
|
$courseStore = new \app\admin\model\CourseStore();
|
|
|
$courseStore = $courseStore->where(['date'=>$date])->select();
|
|
|
$where1['status'] = 'confirmed';
|
|
|
$where1['is_end'] = false;
|
|
|
$where1['end'] = ['>',date('Y-m-d H:i:s')];
|
|
|
$where1['date'] = $date;
|
|
|
$courseStore = $courseStore->where($where1)->select();
|
|
|
if(empty($courseStore)){
|
|
|
$this->success('请求成功',[]);
|
|
|
}
|
...
|
...
|
@@ -132,6 +138,53 @@ class Course extends Api |
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得课程列表(日历)
|
|
|
*
|
|
|
* @ApiTitle (获得课程列表(日历))
|
|
|
* @ApiSummary (获得课程列表(日历))
|
|
|
* @ApiMethod (POST)
|
|
|
* @ApiParams (name="start", type="string", required=false, description="开始时间")
|
|
|
* @ApiParams (name="end", type="string", required=false, description="结束时间")
|
|
|
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
|
|
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
|
|
|
* @ApiReturnParams (name="data", type="object", sample="{'prepay_id':'123','options':{},'order':{}}", description="扩展数据返回")
|
|
|
* @ApiReturn ({'code':'1','msg':'返回成功'})
|
|
|
*/
|
|
|
public function get_date_list()
|
|
|
{
|
|
|
$start= $this->request->request('start');
|
|
|
$end = $this->request->request('end');
|
|
|
|
|
|
if(empty($start)){
|
|
|
$start = date('Y-m-1',time());
|
|
|
}
|
|
|
if(empty($end)){
|
|
|
$end = date('Y-m-d',mktime(23,59,59,date('m'),date('t'),date('Y')));
|
|
|
}
|
|
|
|
|
|
for($i = strtotime($start); $i <= strtotime($end); $i += 86400)
|
|
|
{
|
|
|
$return[date("Y-m-d",$i)] = [];
|
|
|
}
|
|
|
|
|
|
|
|
|
$where['status'] = 'confirmed';
|
|
|
$where['is_end'] = false;
|
|
|
$where['end'] = ['>',date('Y-m-d H:i:s')];
|
|
|
$where['date'] = ['between',[$start,$end]];
|
|
|
|
|
|
$courseStore = new \app\admin\model\CourseStore();
|
|
|
$courseStore = $courseStore->with('course')->where($where)->select();
|
|
|
if(!empty($courseStore)){
|
|
|
foreach ($courseStore as $k){
|
|
|
$return[$k['date']][$k['course_id']] = $k['course'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$this->success('请求成功',$return);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得课程
|
|
|
*
|
|
|
* @ApiTitle (获得课程)
|
...
|
...
|
@@ -139,15 +192,17 @@ class Course extends Api |
|
|
* @ApiMethod (POST)
|
|
|
* @ApiParams (name="id", type="string", required=true, description="ID")
|
|
|
* @ApiParams (name="store_id", type="string", required=false, description="门店id")
|
|
|
* @ApiParams (name="user_id", type="string", required=false, description="用户id")
|
|
|
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
|
|
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
|
|
|
* @ApiReturnParams (name="data", type="object", sample="{'prepay_id':'123','options':{},'order':{}}", description="扩展数据返回")
|
|
|
* @ApiReturn ({'code':'1','msg':'返回成功'})
|
|
|
*/
|
|
|
public function ge_id()
|
|
|
public function get_id()
|
|
|
{
|
|
|
$id = $this->request->request('id');
|
|
|
$store_id = $this->request->request('store_id');
|
|
|
$user_id = $this->request->request('user_id');
|
|
|
if(!$id){
|
|
|
$this->error(__('Invalid parameters'));
|
|
|
}
|
...
|
...
|
@@ -160,44 +215,66 @@ class Course extends Api |
|
|
$course = $course->toArray();
|
|
|
$course['cover'] = cdnurl($course['cover'],true);
|
|
|
$banner = explode(",", $course['banner']);
|
|
|
foreach ($banner as &$k){
|
|
|
$k = cdnurl($k,true);
|
|
|
foreach ($banner as &$m){
|
|
|
$m = cdnurl($m,true);
|
|
|
}
|
|
|
$course['banner'] = $banner;
|
|
|
//查询门店课程
|
|
|
$courseStore = new \app\admin\model\CourseStore();
|
|
|
$where['course_id'] = $id;
|
|
|
$where['status'] = 'confirmed';
|
|
|
$where['is_end'] = false;
|
|
|
$where['end'] = ['>',date('Y-m-d H:i:s')];
|
|
|
if(!empty($store_id)){
|
|
|
$where['store_id'] = $store_id;
|
|
|
}
|
|
|
$courseStore = $courseStore->with('store')->where($where)->order('date','desc')->select();
|
|
|
$courseStore = $courseStore->where($where)->order('date','asc')->select();
|
|
|
$store = [];
|
|
|
foreach ($courseStore as $k){
|
|
|
$k['enable'] = true;
|
|
|
if(!empty($user_id)){
|
|
|
$sign = new \app\admin\model\CourseSign();
|
|
|
$sign = $sign->where(['course_store_id'=>$k['id'],'user_id'=>$user_id])->find();
|
|
|
if(!empty($sign)){
|
|
|
$k['enable'] = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(!isset($store[$k['store_id']])){
|
|
|
$k['store']['start'] = $k['date'];
|
|
|
$k['store']['end'] = $k['date'];
|
|
|
$store1 = new \app\admin\model\Store();
|
|
|
$store1 = $store1->where(['id'=>$k['store_id']])->find();
|
|
|
if(empty($store1)){
|
|
|
continue;
|
|
|
}
|
|
|
$store1 = $store1->toArray();
|
|
|
$store1['start'] = $k['start'];
|
|
|
$store1['end'] = $k['end'];
|
|
|
$store1['course'] = [];
|
|
|
$sign = new \app\admin\model\CourseSign();
|
|
|
$k['store']['sign_count'] = $sign->where(['course_id'=>$id,'store_id'=>$k['store_id'],'publish_time'=>['>',date('Y-m-d H:i:s')]])->count();
|
|
|
$store[$k['store_id']] = $k['store'];
|
|
|
$k['sign_count'] = $sign->where(['course_store_id'=>$k['id']])->count();
|
|
|
$store[$k['store_id']] = $store1;
|
|
|
}
|
|
|
if( $k['date'] < $store[$k['store_id']]['start']){
|
|
|
$store[$k['store_id']]['start'] = $k['date'];
|
|
|
if( $k['start'] < $store[$k['store_id']]['start']){
|
|
|
$store[$k['store_id']]['start'] = $k['start'];
|
|
|
}
|
|
|
if( $k['date'] > $store[$k['store_id']]['end']){
|
|
|
$store[$k['store_id']]['end'] = $k['date'];
|
|
|
if( $k['end'] > $store[$k['store_id']]['end']){
|
|
|
$store[$k['store_id']]['end'] = $k['end'];
|
|
|
}
|
|
|
|
|
|
$store[$k['store_id']]['course'][] = $k;
|
|
|
}
|
|
|
|
|
|
$course['store'] = array_values($store);
|
|
|
|
|
|
foreach ($course['store'] as &$k){
|
|
|
/* foreach ($course['store'] as &$k){
|
|
|
$courseStore = new \app\admin\model\CourseStore();
|
|
|
$where['course_id'] = $id;
|
|
|
$where['store_id'] = $k['id'];
|
|
|
$where['status'] = 'confirmed';
|
|
|
$where['is_end'] = false;
|
|
|
$where['end'] = ['>',date('Y-m-d H:i:s')];
|
|
|
$k['course'] = $courseStore->with('store')->where($where)->order('date','desc')->select();
|
|
|
}
|
|
|
}*/
|
|
|
|
|
|
//查询评价
|
|
|
$star = new \app\admin\model\CourseSignStart();
|
...
|
...
|
@@ -346,7 +423,7 @@ class Course extends Api |
|
|
}
|
|
|
|
|
|
$courseStore = new \app\admin\model\CourseStore();
|
|
|
$courseStore = $courseStore->with(['course','store'])->where(['id'=>$course_store_id,'status'=>'confirmed'])->find();
|
|
|
$courseStore = $courseStore->with(['course','store'])->where(['id'=>$course_store_id,'status'=>'confirmed','is_end'=>false,'end'=>['>',date('Y-m-d H:i:s')]])->find();
|
|
|
if(empty($courseStore)){
|
|
|
$this->error(__('Invalid parameters'));
|
|
|
}
|
...
|
...
|
@@ -358,7 +435,12 @@ class Course extends Api |
|
|
$this->error('已经报名了');
|
|
|
}
|
|
|
|
|
|
$user = new \app\admin\model\User;
|
|
|
$user = $user->where(['id'=>$user_id])->field('password,salt',true)->find();
|
|
|
if(empty($user)){
|
|
|
|
|
|
}
|
|
|
$user = $user->toArray();
|
|
|
|
|
|
//查看支付情况
|
|
|
/*$order = new \app\admin\model\Order();
|
...
|
...
|
@@ -406,11 +488,12 @@ class Course extends Api |
|
|
$order->save(['remain'=>$remain-1],['id'=>$order_id]);
|
|
|
|
|
|
//开课人数够了
|
|
|
$sign_count = $sign->where(['course_store_id'=>$course_store_id])->count();
|
|
|
if($sign_count >= $courseStore['notify_count']){
|
|
|
$template = new Template(Config::get('weChat'));
|
|
|
$sign = new \app\admin\model\CourseSign();
|
|
|
$sign_data = $sign->with('user')->where(['course_store_id'=>$course_store_id,'notify'=>false])->select();
|
|
|
$signCount = $sign->where(['course_store_id'=>$course_store_id])->count();
|
|
|
if($signCount >= $courseStore['notify_count']){
|
|
|
$template = new Newtmpl(Config::get('weChat'));
|
|
|
$sign = new \app\admin\model\CourseSign();
|
|
|
$sign_data = $sign->with(['user','CourseStore'])->where(['course_store_id'=>$course_store_id,'notify'=>false])->select();
|
|
|
$notice = new \app\admin\model\UserNotice();
|
|
|
foreach ($sign_data as $k){
|
|
|
|
...
|
...
|
@@ -426,19 +509,24 @@ class Course extends Api |
|
|
|
|
|
|
|
|
//小程序通知
|
|
|
/* $data = [
|
|
|
$data = [
|
|
|
'touser' => $k['user']['openid'],
|
|
|
'template_id' => '',
|
|
|
'form_id'=>'',
|
|
|
'page'=>'pages/index/index',
|
|
|
'template_id' => Config::get('course_sign_tmp'),
|
|
|
'form_id'=>$k['id'],
|
|
|
'page'=>'pages/classReserve/classReserve',
|
|
|
'data'=>[
|
|
|
"keyword1"=>["value"=> "1", "color"=> "#173177"],
|
|
|
"keyword2"=>["value"=> "2", "color"=> "#173177"],
|
|
|
"keyword3"=>["value"=> "3", "color"=> "#173177"]
|
|
|
"thing1" => ["value" => $courseStore['course']['name']],
|
|
|
"date2" => ["value" => $k['CourseStore']['start']],
|
|
|
"name3" => ["value" => $k['user']['nickname']],
|
|
|
"thing4" => ["value" => "课程预约成功"],
|
|
|
],
|
|
|
];
|
|
|
|
|
|
$template->send($data);*/
|
|
|
try {
|
|
|
$template->send($data);
|
|
|
} catch (InvalidResponseException $e) {
|
|
|
} catch (LocalCacheException $e) {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
...
|
...
|
|