180 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			180 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| namespace app\api\controller;
 | |
| 
 | |
| use app\api\logic\DistributionLogic;
 | |
| use app\common\basics\Api;
 | |
| use app\common\server\JsonServer;
 | |
| use think\exception\ValidateException;
 | |
| use app\api\validate\DistributionValidate;
 | |
| use app\common\model\user\User;
 | |
| use think\response\Json;
 | |
| use app\common\model\distribution\Distribution as DistributionModel;
 | |
| 
 | |
| class Distribution extends Api
 | |
| {
 | |
|     public $like_not_need_login = ['fixAncestorRelation'];
 | |
|     /**
 | |
|      * 申请分销会员
 | |
|      */
 | |
|     public function apply()
 | |
|     {
 | |
|         if($this->request->isPost()){
 | |
|             $post = $this->request->post();
 | |
|             $post['user_id'] = $this->user_id;
 | |
|             try{
 | |
|                 validate(DistributionValidate::class)->scene('apply')->check($post);
 | |
|             }catch(ValidateException $e) {
 | |
|                 return JsonServer::error($e->getError());
 | |
|             }
 | |
|             $result = DistributionLogic::apply($post);
 | |
|             if($result) {
 | |
|                 return JsonServer::success('申请成功');
 | |
|             }
 | |
|             return JsonServer::error('申请失败');
 | |
|         }else{
 | |
|             return JsonServer::error('请求方式错误');
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 判断是否为分销会员
 | |
|      */
 | |
|     public function check()
 | |
|     {
 | |
|         $distribution = DistributionModel::where('user_id', $this->user_id)->findOrEmpty()->toArray();
 | |
|         if (!empty($distribution) && $distribution['is_distribution'] == 1) {
 | |
|             return JsonServer::success('分销会员', [], 10001);
 | |
|         }
 | |
|         return JsonServer::success('非分销会员', [], 20001);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 最新分销申请详情
 | |
|      */
 | |
|     public function applyDetail()
 | |
|     {
 | |
|         return JsonServer::success('获取成功', DistributionLogic::applyDetail($this->user_id));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 分销主页
 | |
|      */
 | |
|     public function index()
 | |
|     {
 | |
|         return JsonServer::success('获取成功', DistributionLogic::index($this->user_id));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 填写邀请码
 | |
|      */
 | |
|     public function code()
 | |
|     {
 | |
|         $code = $this->request->post('code');
 | |
|         $data = [
 | |
|             'user_id' => $this->user_id,
 | |
|             'code' => $code,
 | |
|         ];
 | |
| 
 | |
|         try{
 | |
|             validate(DistributionValidate::class)->scene('code')->check($data);
 | |
|         }catch(ValidateException $e){
 | |
|             return JsonServer::error($e->getError(), [], 0, 0);
 | |
|         }
 | |
|         $result = DistributionLogic::code($data);
 | |
|         if($result) {
 | |
|             return JsonServer::success('绑定上级成功');
 | |
|         }
 | |
|         return JsonServer::error(DistributionLogic::getError(), [], 0, 0);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 分销订单
 | |
|      */
 | |
|     public function order()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $get['user_id'] = $this->user_id;
 | |
|         $get['page_no'] = $this->page_no;
 | |
|         $get['page_size'] = $this->page_size;
 | |
|         return JsonServer::success('获取成功', DistributionLogic::order($get));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 月度账单
 | |
|      */
 | |
|     public function monthBill()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $get['page_no'] = $this->page_no;
 | |
|         $get['page_size'] = $this->page_size;
 | |
|         $get['user_id'] = $this->user_id;
 | |
|         return JsonServer::success('获取成功', DistributionLogic::monthBill($get));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 月度账单明细
 | |
|      */
 | |
|     public function monthDetail()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         if(!isset($get['year'])) {
 | |
|             return JsonServer::error('年份参数不存在');
 | |
|         }
 | |
|         if(!isset($get['month'])) {
 | |
|             return JsonServer::error('月份参数不存在');
 | |
|         }
 | |
|         $get['page_no'] = $this->page_no;
 | |
|         $get['page_size'] = $this->page_size;
 | |
|         $get['user_id'] = $this->user_id;
 | |
|         return JsonServer::success('获取成功', DistributionLogic::monthDetail($get));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 自身及上级信息
 | |
|      */
 | |
|     public function myLeader()
 | |
|     {
 | |
|         return JsonServer::success('获取成功', DistributionLogic::myLeader($this->user_id));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @Notes: 佣金明细
 | |
|      * @Author: 张无忌
 | |
|      */
 | |
|     public function commission()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $lists = DistributionLogic::commission($get, $this->user_id);
 | |
|         if ($lists === false) {
 | |
|             $message = DistributionLogic::getError() ?: '获取失败';
 | |
|             return JsonServer::error($message);
 | |
|         }
 | |
| 
 | |
|         return JsonServer::success('获取成功', $lists);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 修复旧的关系链
 | |
|      */
 | |
|     public function fixAncestorRelation()
 | |
|     {
 | |
|         $result = DistributionLogic::fixAncestorRelation();
 | |
|         if ($result) {
 | |
|             return JsonServer::success('修复成功');
 | |
|         }
 | |
|         return JsonServer::error(DistributionLogic::getError());
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取背景海报
 | |
|      * @return Json
 | |
|      * @author cjhao
 | |
|      * @date 2021/11/29 11:35
 | |
|      */
 | |
|     public function getPoster()
 | |
|     {
 | |
|         $result = DistributionLogic::getPoster();
 | |
|         return JsonServer::success('',$result);
 | |
|     }
 | |
| 
 | |
| } |