95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
<?php
 | 
						|
 | 
						|
namespace app\controller\api;
 | 
						|
 | 
						|
use app\repository\CommonRepository;
 | 
						|
use app\repository\OperationRepository;
 | 
						|
use app\repository\OrderRepository;
 | 
						|
use app\validate\CommonValidate;
 | 
						|
use think\Collection;
 | 
						|
use think\db\exception\DataNotFoundException;
 | 
						|
use think\db\exception\DbException;
 | 
						|
use think\db\exception\ModelNotFoundException;
 | 
						|
use think\response\Json;
 | 
						|
 | 
						|
class Common extends Base
 | 
						|
{
 | 
						|
    protected $noNeedLogin = [
 | 
						|
        'slidePositions',
 | 
						|
        'slides',
 | 
						|
    ];
 | 
						|
 | 
						|
    /**
 | 
						|
     * 发送短信验证码
 | 
						|
     *
 | 
						|
     * @OA\Post(
 | 
						|
     *     path="/common/send-code",
 | 
						|
     *     tags={"common"},
 | 
						|
     *     operationId="sendCode",
 | 
						|
     * )
 | 
						|
     */
 | 
						|
    public function sendCode(): Json
 | 
						|
    {
 | 
						|
        $input    = input('post.');
 | 
						|
        $validate = new CommonValidate();
 | 
						|
        if (!$validate->scene('send_sms')->check($input)) {
 | 
						|
            return $this->json(4001, '参数错误');
 | 
						|
        }
 | 
						|
        if (!in_array($input['type'], ['register', 'login', 'binding'])) {
 | 
						|
            return $this->json(4002, '参数错误');
 | 
						|
        }
 | 
						|
 | 
						|
        CommonRepository::getInstance()->sendSms($input['phone'], $input['type']);
 | 
						|
        return $this->json();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 查看轮播图可视位置配置信息
 | 
						|
     */
 | 
						|
    public function slidePositions(): Json
 | 
						|
    {
 | 
						|
        $repo = OperationRepository::getInstance();
 | 
						|
        $list = $repo->slidePositions();
 | 
						|
        return $this->json(0, 'success', $list);
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * 轮播图
 | 
						|
     */
 | 
						|
    public function slides(): Json
 | 
						|
    {
 | 
						|
        $size     = $this->request->param('size/d', 0);
 | 
						|
        $position = trim($this->request->param('position/s', ''));
 | 
						|
        if (empty($position)) {
 | 
						|
            return $this->json();
 | 
						|
        }
 | 
						|
 | 
						|
        try {
 | 
						|
            $repo = OperationRepository::getInstance();
 | 
						|
            $list = $repo->slideListByPosition($position, $size);
 | 
						|
        } catch (\Exception $e) {
 | 
						|
            $list = new Collection();
 | 
						|
        }
 | 
						|
 | 
						|
        foreach ($list as &$item) {
 | 
						|
            $item["src"] = resourceJoin($item["src"], $this->request->domain());
 | 
						|
        }
 | 
						|
 | 
						|
        return $this->json(0, 'success', $list);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 获取快递公司列表
 | 
						|
     *
 | 
						|
     * @throws ModelNotFoundException
 | 
						|
     * @throws DbException
 | 
						|
     * @throws DataNotFoundException
 | 
						|
     */
 | 
						|
    public function expressList(): Json
 | 
						|
    {
 | 
						|
        $list = OrderRepository::getInstance()->allExpress();
 | 
						|
        return $this->json(0, 'success', $list);
 | 
						|
    }
 | 
						|
 | 
						|
} |