123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- <?php
- namespace app\controller\api\project\yoga;
-
- use app\controller\api\AuthController;
- use app\controller\store\project\yoga\logic\OrderLogic;
- use app\model\store\yoga\CoursePackageModel;
- use app\model\store\yoga\MemberCoursePackageModel;
- use app\model\store\yoga\CoursePackageItemModel;
- use app\model\store\logs\ProjectWriteOffModel;
- use think\facade\Db;
-
- class CoursePackage extends AuthController{
-
- //获取我的课程包列表
- public function getMemberCoursePackageList(){
- $type = $this->request->param('type/d');
- $page = $this->request->param('page/d',1);
- $limit = $this->request->param('limit/d',15);
- $where = [
-
- ['member_id','=', $this->request->memberId]
- ];
- $today = date('Y-m-d',time());
-
- if($type == 0){
- $where[] = ['status','=',1];
- $where[] = ['valid_end_time','>=',$today];
- $query = MemberCoursePackageModel::where($where);
- }else{
-
- $where1 = $where;
- $where2 = $where;
- $where1[] = ['status','=',8];
- $where2[] = ['valid_end_time','<',$today];
-
- $query = MemberCoursePackageModel::whereOr([$where1,$where2]);
- }
- $datas = $query->order(['member_course_package_id'=>'desc'])->page($page)->limit($limit)->select()->append(['status_another'])->toArray();
- return $this->success(['datas'=>$datas]);
- }
-
- public function getMemberCoursePackageDetail(){
-
- $member_course_package_id = $this->request->param('member_course_package_id/d');
- if(empty($member_course_package_id)){
- return $this->fail('请选择要查看的课程包');
- }
- if(null === $card = MemberCoursePackageModel::find($member_course_package_id)){
- return $this->fail('请选择要查看的课程包');
- }
-
- $card->items;
- $card->append(['status_means','status_another','pay_time_format','pay_type_mean'])->toArray();
- return $this->success([
- 'detail' => $card
- ]);
- }
- public function getMemberCoursePackageLogs(){
- $member_course_package_id = $this->request->param('member_course_package_id/d');
- if(empty($member_course_package_id)){
- return $this->fail('请选择要查看的课程包');
- }
- if(null === $card = MemberCoursePackageModel::find($member_course_package_id)){
- return $this->fail('请选择要查看的课程包');
- }
-
- $where = [
- ['member_id','=', $this->request->memberId],
- ['source','=','course_package'],
- ['member_course_package_id','=',$member_course_package_id]
- ];
- $datas = ProjectWriteOffModel::where($where)->select()->append(['add_time_format'])->toArray();
- return $this->success([
- 'datas' => $datas
- ]);
- }
-
-
- public function getCoursePackageList()
- {
- $where=[
-
- ['is_delete','=',0],
- ['status','=',1],
- ];
- $page = $this->request->param('page/d',1);
- $limit = $this->request->param('limit/d',15);
-
- $course_package_model = new CoursePackageModel();
- $order=['sort'=>'desc','add_time'=>'desc'];
- $field='course_package_id,name,cover_img,price,worth,is_flash_sale,flash_price,flash_num,start_time,end_time,fictitious_take_count';
- $append=['is_flash_sale_expire','flash_sale_djs','save_money'];
- $datas=$course_package_model->where($where)->order($order)
- ->field($field)
- ->limit($limit)
- ->page($page)
- ->select()
- ->append($append)
- ->toArray();
- $return['datas']=$datas;
- return $this->success($return);
-
- }
-
-
- public function getCoursePackageDetail()
- {
- $course_package_id=$this->request->param('course_package_id/d',0);
- if($course_package_id==0) return $this->fail('课程包不存在');
-
- if(null === $course_package = CoursePackageModel::find($course_package_id)) return $this->fail('课程包不存在');
- if($course_package->is_delete != 0) return $this->fail('课程包不存在');
-
- $items= CoursePackageItemModel::with(['project'=>function($query){
- $query->field('project_id,type,cover_img,abbreviation,market_price');
- }])->where([
- ['course_package_id','=',$course_package->course_package_id],
- ['is_delete','=',0]
- ])->field('project_id,num')->select()->toArray();
-
-
- $detail=[
- 'name'=>$course_package->name,
- 'price'=>$course_package->price,
- 'is_flash_sale'=>$course_package->is_flash_sale,
- 'flash_price'=>$course_package->flash_price,
- 'is_flash_sale_expire'=>$course_package->is_flash_sale_expire,
- 'flash_sale_djs'=>$course_package->flash_sale_djs,
- 'save_money'=>$course_package->save_money,
- 'valid_time'=>$course_package->valid_time,
- 'valid_unit'=>$course_package->valid_unit,
- 'fictitious_take_count'=>$course_package->fictitious_take_count,
- 'cover_img'=>$course_package->cover_img,
- 'rotation'=>$course_package->rotation,
- 'items'=>$items,
- 'use_info'=>$course_package->use_info,
- ];
-
- return $this->success(['detail'=>$detail]);
- }
-
- public function createOrder()
- {
- $course_package_id=$this->request->param('course_package_id/d',0);
- $total_price = $this->request->param('total_price/f',0);
- $use_integral = $this->request->param('use_integral/d',0);
- $coupon_id = $this->request->param('coupon_id/d',0);
- $params=[
- 'member_id'=>$this->request->memberId,
- 'total_price'=>$total_price,
- 'use_integral'=>$use_integral,
- 'coupon_id'=>$coupon_id,
- 'course_package_id'=>$course_package_id,
- ];
- Db::startTrans();
- try{
- $order_logic = OrderLogic::init();
- $order_id=$order_logic['course_package']->createOrder($params);
- Db::commit();
- return $this->success(['order_id'=>$order_id]);
- } catch (\Exception $e){
- Db::rollback();
- return $this->fail($e->getMessage());
- }
- }
-
- public function moneyPay()
- {
- $course_package_order_id=$this->request->param('course_package_order_id/d',0);
- $params=[
- 'member_id'=>$this->request->memberId,
- 'course_package_order_id'=>$course_package_order_id,
- ];
- Db::startTrans();
- try{
- $order_logic = OrderLogic::init();
- $order_logic['course_package']->moneyPay($params);
- Db::commit();
- return $this->success('余额支付成功');
- } catch (\Exception $e){
- Db::rollback();
- return $this->fail($e->getMessage());
- }
- }
-
- public function cancelOrder()
- {
- $course_package_order_id=$this->request->param('course_package_order_id/d',0);
- $params=[
- 'member_id'=>$this->request->memberId,
- 'course_package_order_id'=>$course_package_order_id,
- ];
- Db::startTrans();
- try{
- $order_logic = OrderLogic::init();
- $order_logic['course_package']->cancelOrder($params);
- Db::commit();
- return $this->success('取消订单成功');
- } catch (\Exception $e){
- Db::rollback();
- return $this->fail($e->getMessage());
- }
- }
- }
|