Browse Source

Merge branch 'phoenix' of http://120.24.33.109:11081/hyzjshwo/lanzu_api_hyperf into phoenix

master
Lemon 5 years ago
parent
commit
a89d970b65
  1. 30
      app/Controller/v3/CommunityController.php
  2. 45
      app/Request/v3/CommunityBindRequest.php
  3. 36
      app/Service/v3/Implementations/UserCommunityBindService.php
  4. 48
      app/Service/v3/Interfaces/UserRelationBindServiceInterface.php
  5. 1
      config/autoload/dependencies.php
  6. 1
      config/routes.php

30
app/Controller/v3/CommunityController.php

@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace App\Controller\v3;
use App\Controller\BaseController;
use App\Model\v3\UserRelationBind;
use App\Request\v3\CommunityBindRequest;
use App\Service\v3\Interfaces\UserRelationBindServiceInterface;
use Hyperf\Di\Annotation\Inject;
class CommunityController extends BaseController
{
/**
* @Inject
* @var UserRelationBindServiceInterface
*/
protected $userCommunityService;
public function bind(CommunityBindRequest $request)
{
$data = $request->validated();
$jsonData = $data['json_data'] ?? json_encode([]);
$res = $this->userCommunityService->bindLimitByUser(UserRelationBind::BIND_TYPE_COMMUNITY, $data['source_id'], $data['user_id'], $jsonData);
return $this->success(['id' => $res->id]);
}
}

45
app/Request/v3/CommunityBindRequest.php

@ -0,0 +1,45 @@
<?php
declare(strict_types=1);
namespace App\Request\v3;
use App\Request\BaseFormRequest;
class CommunityBindRequest extends BaseFormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*/
public function rules(): array
{
return [
'source_id' => 'required|nonempty',
'user_id' => 'required|nonempty|exists_enable:ims_cjdc_user,id',
'json_data' => 'json',
];
}
public function messages(): array
{
return [
'*.nonempty' => ':attribute参数异常',
'user_id.exists_enable' => '用户不存在',
];
}
public function attributes(): array
{
return [
];
}
}

36
app/Service/v3/Implementations/UserCommunityBindService.php

@ -0,0 +1,36 @@
<?php
namespace App\Service\v3\Implementations;
use App\Model\v3\UserRelationBind;
use App\Service\v3\Interfaces\UserRelationBindServiceInterface;
class UserCommunityBindService implements UserRelationBindServiceInterface
{
/**
* @inheritDoc
*/
public function bindLimitByUser($bind_type, $source_id, $user_id, $extra_data)
{
return UserRelationBind::query()->updateOrCreate(
['bind_type' => $bind_type, 'user_id' => $user_id],
['source_id' => $source_id, 'json_data' => $extra_data]
);
}
public function bindLimitBySource($bind_type, $source_id, $user_id, $extra_data)
{
// TODO: Implement bindLimitBySource() method.
}
public function bind($bind_type, $source_id, $user_id, $extra_data)
{
// TODO: Implement bind() method.
}
public function isBinded($bind_type, $source_id, $user_id)
{
// TODO: Implement isBinded() method.
}
}

48
app/Service/v3/Interfaces/UserRelationBindServiceInterface.php

@ -0,0 +1,48 @@
<?php
namespace App\Service\v3\Interfaces;
interface UserRelationBindServiceInterface
{
/**
* 绑定
* 依据用户绑定一个关系,即每次都是新的绑定关系,原来的绑定关系解除(user_id不变,更新其他)
* @param $bind_type
* @param $source_id
* @param $user_id
* @param $extra_data
* @return mixed
*/
public function bindLimitByUser($bind_type, $source_id, $user_id, $extra_data);
/**
* 绑定
* 依据绑定人(根据bind_type确定)绑定一个关系,即每次都是新的绑定关系,原来的绑定关系解除(source_id不变,更新其他)
* @param $bind_type
* @param $source_id
* @param $user_id
* @param $extra_data
* @return mixed
*/
public function bindLimitBySource($bind_type, $source_id, $user_id, $extra_data);
/**
* 绑定
* 始终绑定一个新的关系,如果这个关系(source_id=》user_id)存在则更新其他数据
* @param $bind_type
* @param $source_id
* @param $user_id
* @param $extra_data
* @return mixed
*/
public function bind($bind_type, $source_id, $user_id, $extra_data);
/**
* 是否已经存在绑定关系
* @param $bind_type
* @param $source_id
* @param $user_id
* @return mixed
*/
public function isBinded($bind_type, $source_id, $user_id);
}

1
config/autoload/dependencies.php

@ -82,4 +82,5 @@ return [
\App\JsonRpc\PrintServiceInterface::class => \App\JsonRpc\FeieService::class, \App\JsonRpc\PrintServiceInterface::class => \App\JsonRpc\FeieService::class,
\App\JsonRpc\LocationServiceInterface::class => \App\JsonRpc\LocationService::class, \App\JsonRpc\LocationServiceInterface::class => \App\JsonRpc\LocationService::class,
\App\Service\v3\Interfaces\OrderStatisticsServiceInterface::class => \App\Service\v3\Implementations\OrderStatisticsService::class, \App\Service\v3\Interfaces\OrderStatisticsServiceInterface::class => \App\Service\v3\Implementations\OrderStatisticsService::class,
\App\Service\v3\Interfaces\UserRelationBindServiceInterface::class => \App\Service\v3\Implementations\UserCommunityBindService::class,
]; ];

1
config/routes.php

@ -140,6 +140,7 @@ Router::addGroup('/v3/', function () {
Router::post('withdraw/pageByStore', 'App\Controller\v3\WithdrawController@pageByStore'); Router::post('withdraw/pageByStore', 'App\Controller\v3\WithdrawController@pageByStore');
Router::post('userAddress/getAddressAndDistributionPrice', 'App\Controller\v3\UserAddressController@getAddressAndDistributionPrice'); Router::post('userAddress/getAddressAndDistributionPrice', 'App\Controller\v3\UserAddressController@getAddressAndDistributionPrice');
Router::post('withdraw/applyByStore', 'App\Controller\v3\WithdrawController@applyByStore'); Router::post('withdraw/applyByStore', 'App\Controller\v3\WithdrawController@applyByStore');
Router::post('community/bind', 'App\Controller\v3\CommunityController@bind');
},['middleware' => [\App\Middleware\Auth\ApiMiddleware::class, \App\Middleware\Auth\UserMiddleware::class]]); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class, \App\Middleware\Auth\UserMiddleware::class]]);
// 微信支付回调 // 微信支付回调

Loading…
Cancel
Save