Browse Source

Merge branch 'master' of http://git.bjzxtw.org.cn:3000/zxt/admin_consumer

LiuJ 4 days ago
parent
commit
5197f49d62

+ 13 - 6
app/Controller/LoginController.php

@@ -252,6 +252,7 @@ class LoginController extends AbstractController
         $checkUserInfo = $this->userServiceClient->verifyUserInfo([
         $checkUserInfo = $this->userServiceClient->verifyUserInfo([
             'user_name' => $response['phone_info']['purePhoneNumber'],
             'user_name' => $response['phone_info']['purePhoneNumber'],
         ]);
         ]);
+        var_dump("检测返回值用户信息:",$checkUserInfo);
         if ($checkUserInfo['code'] == 0) {
         if ($checkUserInfo['code'] == 0) {
             $salt = rand(1, 999999);
             $salt = rand(1, 999999);
             $createUserData = [
             $createUserData = [
@@ -259,9 +260,14 @@ class LoginController extends AbstractController
                 'salt' => $salt,
                 'salt' => $salt,
                 'password' => $openInfoData['openid'],
                 'password' => $openInfoData['openid'],
                 'type_id' => 20000,
                 'type_id' => 20000,
+                'mobile'=>$response['phone_info']['purePhoneNumber'],
+                'other'=>[],
+                'city_arr_id'=>[],
+                'address_arr_id'=>[]
             ];
             ];
             $checkUserInfo = $this->userServiceClient->createUser($createUserData);
             $checkUserInfo = $this->userServiceClient->createUser($createUserData);
         }
         }
+        var_dump("返回值用户信息:",$checkUserInfo);
         //根据openid和手机号判断是否注册,未注册直接注册
         //根据openid和手机号判断是否注册,未注册直接注册
         $wechatReqData = [
         $wechatReqData = [
             'openid' => $openInfoData['openid'],
             'openid' => $openInfoData['openid'],
@@ -275,19 +281,20 @@ class LoginController extends AbstractController
                 'purePhoneNumber' => $response['phone_info']['purePhoneNumber'],
                 'purePhoneNumber' => $response['phone_info']['purePhoneNumber'],
                 'countryCode' => $response['phone_info']['countryCode'],
                 'countryCode' => $response['phone_info']['countryCode'],
                 'watermark' => json_encode($response['phone_info']['watermark']),
                 'watermark' => json_encode($response['phone_info']['watermark']),
-                'user_id' => $checkUserInfo['data']['id'],
+                'user_id' => $checkUserInfo['data']['id'] ?? 0,
             ];
             ];
+            var_dump("##插入的值:",$wechatData);
             $this->userServiceClient->addWechatInfo($wechatData);
             $this->userServiceClient->addWechatInfo($wechatData);
         }
         }
         var_dump($checkUserInfo);
         var_dump($checkUserInfo);
         $userData = [
         $userData = [
-            'uid' => $checkUserInfo['data']['id'], // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
-            'user_name' => $response['phone_info']['phoneNumber'],
+            'uid' => $checkUserInfo['data']['id'] ?? 0, // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
+            'user_name' => $response['phone_info']['phoneNumber'] ?? '',
             'mobile' => $checkUserInfo['data']['mobile'] ?? '',
             'mobile' => $checkUserInfo['data']['mobile'] ?? '',
-            'email' => $checkUserInfo['data']['email'],
+            'email' => $checkUserInfo['data']['email'] ?? '',
 //            'rong_token' => $userInfos['data']['rong_token'],
 //            'rong_token' => $userInfos['data']['rong_token'],
-            'level_id' => $checkUserInfo['data']['level_id'],
-            'type_id' => $checkUserInfo['data']['type_id'],
+            'level_id' => $checkUserInfo['data']['level_id'] ?? '',
+            'type_id' => $checkUserInfo['data']['type_id'] ?? '',
         ];
         ];
         // 使用默认场景登录
         // 使用默认场景登录
         $token = $jwt->getToken('default', $userData);
         $token = $jwt->getToken('default', $userData);

+ 204 - 0
app/Controller/NewsController.php

@@ -1913,4 +1913,208 @@ class NewsController extends AbstractController
     }
     }
 
 
     //20250422  书刊音像
     //20250422  书刊音像
+
+
+    // 20250623  项目管理
+    /**
+     * 项目列表
+     * @return array
+     */
+    public function getProjectList()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'page' => 'required|integer',
+                'pageSize' => 'required|integer',
+                'status' => 'required|integer',
+            ],
+            [
+                'page.required' => 'page不能为空',
+                'page.integer' => 'page必须是整数',
+                'pageSize.required' => 'page_size不能为空',
+                'pageSize.integer' => 'page_size必须是整数',
+                'status.required' => 'status不能为空',
+                'status.integer' => 'status必须是整数',
+            ]
+
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $requireData['user_id'] = Context::get('UserId');
+        $result = $this->newsServiceClient->getProjectList($requireData);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
+    }    
+    /**
+     * 添加项目
+     * @return array
+     */
+    public function addProject(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'website_id' => 'required|integer',
+                'category_id' => 'required|integer',
+                'cat_arr_id' => 'required',
+                'title' => 'required',
+                'business_name' => 'required',
+                'content_person' => 'required',
+                'telephone' => 'required',
+                'city_id' => 'required',
+                'city_arr_id' => 'required',
+                'introduce' => 'required',
+                'franchise_details' => 'required',
+            ],
+            [
+                'website_id.required' => '网站id不能为空',
+                'website_id.integer' => '网站id必须是整数',
+                'category_id.required' => '栏目id不能为空',
+                'category_id.integer' => '栏目id必须是整数',
+                'cat_arr_id.required' => '栏目集合不能为空',
+                'title.required' => '标题不能为空',
+                'business_name.required' => '企业名称不能为空',
+                'content_person.required' => '联系人不能为空',
+                'telephone.required' => '联系电话不能为空',
+                'city_id.required' => '城市id不能为空',
+                'city_id.integer' => '城市id必须是整数',
+                'city_arr_id.required' => '城市不能为空',
+                'introduce.required' => '企业介绍不能为空',
+                'franchise_details.required' => '加盟详情不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $requireData['user_id'] = Context::get('UserId');
+        $result = $this->newsServiceClient->addProject($requireData);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    /**
+     * 更新项目
+     * @return array
+     */
+    public function upProject(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required|integer',
+                'website_id' => 'required|integer',
+                'category_id' => 'required|integer',
+                'cat_arr_id' => 'required',
+                'title' => 'required',
+                'business_name' => 'required',
+                'content_person' => 'required',
+                'telephone' => 'required',
+                'city_id' => 'required',
+                'city_arr_id' => 'required',
+                'introduce' => 'required',
+                'franchise_details' => 'required',
+            ],
+            [
+                'id.required' => 'id不能为空',
+                'id.integer' => 'id必须是整数',
+                 'website_id.required' => '网站id不能为空',
+                'website_id.integer' => '网站id必须是整数',
+                'category_id.required' => '栏目id不能为空',
+                'category_id.integer' => '栏目id必须是整数',
+                'cat_arr_id.required' => '栏目集合不能为空',
+                'title.required' => '标题不能为空',
+                'business_name.required' => '企业名称不能为空',
+                'content_person.required' => '联系人不能为空',
+                'telephone.required' => '联系电话不能为空',
+                'city_id.required' => '城市id不能为空',
+                'city_id.integer' => '城市id必须是整数',
+                'city_arr_id.required' => '城市不能为空',
+                'introduce.required' => '企业介绍不能为空',
+                'franchise_details.required' => '加盟详情不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $requireData['user_id'] = Context::get('UserId');
+        $result = $this->newsServiceClient->upProject($requireData);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    /**
+     * 删除项目
+     * @return array
+     */
+    public function delProject(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required',
+            ],
+            [
+                'id.required' => 'id不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $requireData['user_id'] = Context::get('UserId');
+        $result = $this->newsServiceClient->delProject($requireData);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    /**
+     * 审核项目
+     * @return array
+     */
+    public function checkProject(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required|integer',
+                'status' => 'required|integer',
+            ],
+            [
+                'id.required' => 'id不能为空',
+                'id.integer' => 'id必须是整数',
+                'status.required' => '状态不能为空',
+                'status.integer' => '状态必须是整数',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $requireData['user_id'] = Context::get('UserId');
+        $result = $this->newsServiceClient->checkProject($requireData);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
+    } 
+    /**
+     * 获取项目详情
+     * @return array
+     */
+    public function getProjectInfo(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required|integer',
+            ],
+            [
+                'id.required' => 'id不能为空',
+                'id.integer' => 'id必须是整数',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->newsServiceClient->getProjectInfo($requireData);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+
 }
 }

+ 23 - 17
app/Controller/PublicController.php

@@ -1007,20 +1007,6 @@ class PublicController extends AbstractController
     public function getAllTemplate()
     public function getAllTemplate()
     {
     {
         $requireData = $this->request->all();
         $requireData = $this->request->all();
-        $validator = $this->validationFactory->make(
-            $requireData,
-            [
-                'template_name' => 'required|string',
-            ],
-            [
-                'template_name.required' => '请输入皮肤名称',
-                'template_name.string' => '请输入字符串',
-            ]
-        );
-         if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
         $requireData['user_id'] = Context::get("UserId");
         $requireData['user_id'] = Context::get("UserId");
         $result = $this->publicServiceClient->getAllTemplate($requireData);
         $result = $this->publicServiceClient->getAllTemplate($requireData);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
@@ -1325,12 +1311,32 @@ class PublicController extends AbstractController
      */
      */
     public function getIpInfo()
     public function getIpInfo()
     {
     {
-
-        $result = $this->publicServiceClient->getIpInfo([]);
-        var_dump("========",$result);
+        $ip = $this->getClientIp();
+        $result = $this->publicServiceClient->getIpInfo(['ip' => $ip]);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
     }
     }
 
 
+    /**
+     * 获取客户端IP地址.
+     * @return string
+     */
+    private function getClientIp(): string
+    {
+        if ($this->request->hasHeader('x-forwarded-for')) {
+            $ip = trim(explode(',', $this->request->getHeaderLine('x-forwarded-for'))[0]);
+            if ($ip) {
+                return $ip;
+            }
+        }
+        if ($this->request->hasHeader('x-real-ip')) {
+            $ip = $this->request->getHeaderLine('x-real-ip');
+            if ($ip) {
+                return $ip;
+            }
+        }
+        return $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
+    }
+
     /**
     /**
      * 获取天气信息
      * 获取天气信息
      * @return array
      * @return array

+ 2 - 1
app/Controller/WebsiteController.php

@@ -2250,7 +2250,8 @@ class WebsiteController extends AbstractController
      */
      */
     public function getSiteCategory()
     public function getSiteCategory()
     {
     {
-        $requireData['website_id'] = Context::get("SiteId");
+        $requireData = $this->request->all();
+        $requireData['website_id'] = $requireData['website_id']??Context::get("SiteId");
         $result = $this->websiteServiceClient->getWebsiteAllCategory($requireData);
         $result = $this->websiteServiceClient->getWebsiteAllCategory($requireData);
         return $result['code'] == 200 ? Result::success(PublicData::buildCategoryTree($result['data'])) : Result::error($result['message']);
         return $result['code'] == 200 ? Result::success(PublicData::buildCategoryTree($result['data'])) : Result::error($result['message']);
     }
     }

+ 24 - 0
app/JsonRpc/NewsService.php

@@ -795,4 +795,28 @@ class NewsService extends AbstractServiceClient implements NewsServiceInterface
     {
     {
         return $this->__request(__FUNCTION__, $data);
         return $this->__request(__FUNCTION__, $data);
     }
     }
+    public function getProjectList(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function addProject(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function checkProject(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function delProject(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function upProject(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function getProjectInfo(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
 }
 }

+ 14 - 0
app/JsonRpc/NewsServiceInterface.php

@@ -425,4 +425,18 @@ interface NewsServiceInterface
     public function checkCompany(array $data);
     public function checkCompany(array $data);
     // 获取企业信息
     // 获取企业信息
     public function getCompanyInfo(array $data);
     public function getCompanyInfo(array $data);
+
+    //  项目管理
+    // 获取项目列表
+    public function getProjectList(array $data);
+    // 添加项目
+    public function addProject(array $data);
+    // 更新项目
+    public function upProject(array $data);
+    // 删除项目
+    public function delProject(array $data);
+    // 审核项目
+    public function checkProject(array $data);
+    // 获取项目详情
+    public function getProjectInfo(array $data);
 }
 }

+ 119 - 0
app/Middleware/Auth/ComplaintMiddleware.php

@@ -0,0 +1,119 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Middleware\Auth;
+use App\Controller\LoginController;
+use App\Controller\UserController;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\HttpServer\Contract\RequestInterface;
+use Hyperf\HttpServer\Contract\ResponseInterface as HttpResponse;
+use Psr\Container\ContainerInterface;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\MiddlewareInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+use Hyperf\Context\Context;
+use App\JsonRpc\WebsiteServiceInterface;
+use Phper666\JWTAuth\JWT;
+class ComplaintMiddleware implements MiddlewareInterface
+{
+    protected ContainerInterface $container;
+
+    protected RequestInterface $request;
+
+    protected HttpResponse $response;
+    protected JWT $JWT;
+    /**
+     * @var WebsiteServiceInterface
+     */
+    #[Inject]
+    private $websiteServiceClient;
+    /**
+     * @var LoginController
+     */
+    #[Inject]
+    protected $loginController;
+
+    /**
+     * @var UserController
+     */
+    #[Inject]
+    protected $userController;
+    public function __construct(ContainerInterface $container, HttpResponse $response, RequestInterface $request,Jwt $JWT)
+    {
+        $this->container = $container;
+        $this->response = $response;
+        $this->request = $request;
+        $this->JWT = $JWT;
+
+    }
+
+    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
+    {
+
+        $header = $request->getHeaders();
+        try {
+
+            if($header &&  isset($header['token']) && $header['token'][0]!='null' && $header['token'][0]!='' && isset($header['token'][0])){
+//                var_dump("token类型:",$header['token'][0]);
+                $ver = $this->JWT->getClaimsByToken($header['token'][0]);
+                $tokenTime =  $this->JWT->getTokenDynamicCacheTime($header['token'][0]);
+                $this->JWT->verifyToken($header['token'][0]);
+                if($tokenTime==0){
+                   return $this->response->json(
+                       [
+                           'code' => -1,
+                           'data' => [],
+                           'message' => 'token无效,请重新登录',
+                       ]
+                   );
+                }
+                if(isset($header['userurl']) && $header['userurl'] && $header['userurl'][0]){
+                    $origin = $header['userurl'][0];
+                    $data = [
+                        'website_url'=>$origin
+                    ];
+
+                    $result = $this->websiteServiceClient->getWebsiteId($data);
+                    if(!isset($result['data']['id']) || !$result['data']['id']){
+                        return $this->response->json(
+                            [
+                                'code' => -1,
+                                'data' => [],
+
+                                'message' => '网站不存在...',
+                            ]
+                        );
+                    }
+                    Context::set("SiteId",$result['data']['id']);
+                }
+                var_dump("中间件:",$ver);
+                Context::set("UserId",$ver['uid']);
+                Context::set("TypeId",$ver['type_id']);
+                if ($ver) {
+                    return $handler->handle($request);
+                }
+            }else{
+                return $this->response->json(
+                    [
+                        'code' => -1,
+                        'data' => [],
+                        'message' => 'token无效,请重新登录',
+                    ]
+                );
+            }
+
+        }catch (\Exception $e){
+            var_dump("错误消息1:",$e->getMessage(),$e->getCode());
+            return $this->response->json(
+                [
+                    'code' => $e->getCode(),
+                    'data' => [],
+                    'message' => $e->getMessage(),
+                ]
+            );
+        }
+        return false;
+    }
+}

+ 8 - 0
config/api/news.php

@@ -132,6 +132,14 @@ Router::addGroup(
 
 
 
 
         // 20250306 招聘
         // 20250306 招聘
+
+        // 20250623  项目管理
+        Router::post('/getProjectList', [NewsController::class, 'getProjectList']);
+        Router::post('/addProject', [NewsController::class, 'addProject']);
+        Router::post('/upProject', [NewsController::class, 'upProject']);
+        Router::post('/delProject', [NewsController::class, 'delProject']);
+        Router::post('/checkProject', [NewsController::class, 'checkProject']);
+        Router::post('/getProjectInfo', [NewsController::class, 'getProjectInfo']);
     },
     },
     ['middleware' => [FooMiddleware::class, \App\Middleware\Auth\SensitiveMiddleware::class]]
     ['middleware' => [FooMiddleware::class, \App\Middleware\Auth\SensitiveMiddleware::class]]
 );
 );

+ 13 - 10
config/api/public.php

@@ -17,17 +17,8 @@ Router::addGroup(
         Router::post('/delUserLevel', [PublicController::class, 'delUserLevel']);
         Router::post('/delUserLevel', [PublicController::class, 'delUserLevel']);
         Router::post('/updateUserLevel', [PublicController::class, 'updateUserLevel']);
         Router::post('/updateUserLevel', [PublicController::class, 'updateUserLevel']);
         Router::get('/getCityList', [PublicController::class, 'getCityList']);
         Router::get('/getCityList', [PublicController::class, 'getCityList']);
-        //添加投诉举报
-        Router::post('/addComplaint', [PublicController::class, 'addComplaint']);
-
-        //修改投诉举报
-        Router::addRoute(['GET', 'POST'], '/upComplaint', [PublicController::class, 'upComplaint']);
-        //投诉举报列表
-        Router::addRoute(['GET', 'POST'], '/getComplaint', [PublicController::class, 'getComplaint']);
-        //查看投诉举报信息
-        Router::addRoute(['GET', 'POST'], '/getLetterOfComplaintInfo', [PublicController::class, 'getLetterOfComplaintInfo']);
-        //删除投诉举报信息
 
 
+        //删除投诉举报信息
         Router::post('/delLetterOfComplaint', [PublicController::class, 'delLetterOfComplaint']);
         Router::post('/delLetterOfComplaint', [PublicController::class, 'delLetterOfComplaint']);
 
 
         //下载文件
         //下载文件
@@ -121,6 +112,18 @@ Router::addGroup(
     ['middleware' => [FooMiddleware::class]]
     ['middleware' => [FooMiddleware::class]]
 );
 );
 
 
+Router::addGroup(
+    '/public', function () {
+    //添加投诉举报
+    Router::post('/addComplaint', [PublicController::class, 'addComplaint']);
+    //修改投诉举报
+    Router::addRoute(['GET', 'POST'], '/upComplaint', [PublicController::class, 'upComplaint']);
+    //投诉举报列表
+    Router::addRoute(['GET', 'POST'], '/getComplaint', [PublicController::class, 'getComplaint']);
+    //查看投诉举报信息
+    Router::addRoute(['GET', 'POST'], '/getLetterOfComplaintInfo', [PublicController::class, 'getLetterOfComplaintInfo']);
+},
+    ['middleware' => [\App\Middleware\Auth\ComplaintMiddleware::class]]);
 Router::addGroup(
 Router::addGroup(
     '/public', function () {
     '/public', function () {
         //获取所有的职能部门
         //获取所有的职能部门