Commit 20e98654 by 杨树贤

添加好友邀请,好友助力,红包码兑换列表

parent 396ca238
<?php
namespace App\Http\Controllers\Api;
use App\Http\Services\AssistsService;
use App\Http\Transformers\AssistTransformer;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AssistsApiController extends Controller
{
protected $service;
public function __construct(AssistsService $service)
{
$this->service = $service;
}
public function assistListApi(Request $request,AssistTransformer $transformer)
{
$params = $this->getListParams($request);
$params = urldecode(http_build_query($params));
$data = $this->service->getAssistList('/assists/list?' . $params);
$data = $transformer->transform($data);
return $this->apiReturn(0, 'ok', [
'data' => $data['data'],
'count' => $data['count'],
]);
}
private function getListParams(Request $request)
{
//因为数据库没有存mobile,所以要根据mobile去获取userId
$userId = $this->service->getUserIdByMobile($request->mobile);
$params = array_merge($request->toArray(), ['user_id' => $userId]);
if ($request->has('mobile') && $request->mobile) {
$params['user_id'] = $params['user_id'] ?: 0;
}
unset($params['mobile']);
return $params;
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Requests\ExchangeSettingApiRequest;
use App\Http\Services\CheckInService;
use App\Http\Services\ExchangeSettingService;
use App\Http\Transformers\CheckInTransformer;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class CheckInApiController extends Controller
{
protected $service;
public function __construct(CheckInService $service)
{
$this->service = $service;
}
public function checkInListApi(Request $request,CheckInTransformer $transformer)
{
$params = $this->getListParams($request);
$params = urldecode(http_build_query($params));
$data = $this->service->getCheckInList('/check_in/list?' . $params);
$data = $transformer->transform($data);
return $this->apiReturn(0, 'ok', [
'data' => $data['data'],
'count' => $data['count'],
]);
}
private function getListParams(Request $request)
{
//因为数据库没有存mobile,所以要根据mobile去获取userId
$userId = $this->service->getUserIdByMobile($request->mobile);
$params = array_merge($request->toArray(), ['user_id' => $userId]);
if ($request->has('mobile') && $request->mobile) {
$params['user_id'] = $params['user_id'] ?: 0;
}
unset($params['mobile']);
return $params;
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Services\CodeService;
use App\Http\Transformers\CodeTransformer;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class CodesApiController extends Controller
{
protected $service;
public function __construct(CodeService $service)
{
$this->service = $service;
}
public function codeListApi(Request $request,CodeTransformer $transformer)
{
$params = $this->getListParams($request);
$params = urldecode(http_build_query($params));
$data = $this->service->getCodeList('/codes/list?' . $params);
$data = $transformer->transform($data);
return $this->apiReturn(0, 'ok', [
'data' => $data['data'],
'count' => $data['count'],
]);
}
private function getListParams(Request $request)
{
//因为数据库没有存mobile,所以要根据mobile去获取userId
$userId = $this->service->getUserIdByMobile($request->mobile);
$params = array_merge($request->toArray(), ['user_id' => $userId]);
if ($request->has('mobile') && $request->mobile) {
$params['user_id'] = $params['user_id'] ?: 0;
}
unset($params['mobile']);
return $params;
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Services\CodeService;
use App\Http\Services\InviteService;
use App\Http\Transformers\CodeTransformer;
use App\Http\Transformers\InviteTransformer;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class InvitesApiController extends Controller
{
protected $service;
public function __construct(InviteService $service)
{
$this->service = $service;
}
public function inviteListApi(Request $request,InviteTransformer $transformer)
{
$params = $this->getListParams($request);
$params = urldecode(http_build_query($params));
$data = $this->service->getInviteList('/invites/list?' . $params);
$data = $transformer->transform($data);
return $this->apiReturn(0, 'ok', [
'data' => $data['data'],
'count' => $data['count'],
]);
}
private function getListParams(Request $request)
{
//因为数据库没有存mobile,所以要根据mobile去获取userId
$userId = $this->service->getUserIdByMobile($request->mobile);
$params = array_merge($request->toArray(), ['user_id' => $userId]);
if ($request->has('mobile') && $request->mobile) {
$params['user_id'] = $params['user_id'] ?: 0;
}
unset($params['mobile']);
return $params;
}
}
<?php
namespace App\Http\Controllers;
use App\Http\Services\AssistsService;
use Illuminate\Http\Request;
//用户签到
class AssistsController extends Controller
{
protected $service;
public function __construct(AssistsService $service)
{
$this->service = $service;
}
public function Entrance(Request $request, $id = 'index')
{
if ($request->path() == '/') {
$path = 'web/index';
} else {
$path = $request->path();
}
$this->data = [
'menus' => $request->menus,
'header' => $request->user->header,
'username' => $request->user->email,
'useremail' => $request->user->email,
'uri' => '/' . $path,
'id' => $id,
];
return $this->$id($request);
}
public function __call($method, $parameters)
{
return $this->errhtml('NotFind', '没有这个页面');
}
public function assistList()
{
$this->data['title'] = '好友助力';
return $this->view();
}
}
<?php
namespace App\Http\Controllers;
use App\Http\Services\ExchangeSettingService;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
//用户签到
class CheckInController extends Controller
{
protected $service;
public function __construct(ExchangeSettingService $service)
{
$this->service = $service;
}
public function Entrance(Request $request, $id = 'index')
{
if ($request->path() == '/') {
$path = 'web/index';
} else {
$path = $request->path();
}
$this->data = [
'menus' => $request->menus,
'header' => $request->user->header,
'username' => $request->user->email,
'useremail' => $request->user->email,
'uri' => '/' . $path,
'id' => $id,
];
return $this->$id($request);
}
public function __call($method, $parameters)
{
return $this->errhtml('NotFind', '没有这个页面');
}
public function checkInList()
{
$this->data['title'] = '签到列表';
return $this->view();
}
}
<?php
namespace App\Http\Controllers;
use App\Http\Services\CodeService;
use Illuminate\Http\Request;
//用户签到
class CodesController extends Controller
{
protected $service;
public function __construct(CodeService $service)
{
$this->service = $service;
}
public function Entrance(Request $request, $id = 'index')
{
if ($request->path() == '/') {
$path = 'web/index';
} else {
$path = $request->path();
}
$this->data = [
'menus' => $request->menus,
'header' => $request->user->header,
'username' => $request->user->email,
'useremail' => $request->user->email,
'uri' => '/' . $path,
'id' => $id,
];
return $this->$id($request);
}
public function __call($method, $parameters)
{
return $this->errhtml('NotFind', '没有这个页面');
}
public function codeList()
{
$this->data['title'] = '红包码兑换';
return $this->view();
}
}
<?php
namespace App\Http\Controllers;
use App\Http\Services\CodeService;
use Illuminate\Http\Request;
//用户签到
class InvitesController extends Controller
{
protected $service;
public function __construct(CodeService $service)
{
$this->service = $service;
}
public function Entrance(Request $request, $id = 'index')
{
if ($request->path() == '/') {
$path = 'web/index';
} else {
$path = $request->path();
}
$this->data = [
'menus' => $request->menus,
'header' => $request->user->header,
'username' => $request->user->email,
'useremail' => $request->user->email,
'uri' => '/' . $path,
'id' => $id,
];
return $this->$id($request);
}
public function __call($method, $parameters)
{
return $this->errhtml('NotFind', '没有这个页面');
}
public function inviteList()
{
$this->data['title'] = '好友邀请';
return $this->view();
}
}
<?php
namespace App\Http\Services;
class AssistsService extends BaseService
{
public function getAssistList($path)
{
return $this->apiPost($path);
}
}
\ No newline at end of file
<?php
namespace App\Http\Services;
class CheckInService extends BaseService
{
public function getCheckInList($path)
{
return $this->apiPost($path);
}
}
\ No newline at end of file
<?php
namespace App\Http\Services;
class CodeService extends BaseService
{
public function getCodeList($path)
{
return $this->apiPost($path);
}
}
\ No newline at end of file
<?php
namespace App\Http\Services;
class InviteService extends BaseService
{
public function getInviteList($path)
{
return $this->apiPost($path);
}
}
\ No newline at end of file
<?php
namespace App\Http\Transformers;
use App\Http\Services\BaseService;
class AssistTransformer
{
protected $service;
public function __construct(BaseService $service)
{
$this->service = $service;
}
public function transform($data)
{
if (isset($data['data'])&&is_array($data['data'])) {
$userIds = array_column($data['data'], 'user_id');
if ($userIds) {
$users = $this->service->getUsersFromRedis($userIds);
$mobiles = [];
foreach ($users as $user) {
$mobiles[$user['user_id']] = $user['mobile'];
}
$assistUserIds = array_column($data['data'], 'assist_user_id');
$invitedUsers = $this->service->getUsersFromRedis($assistUserIds);
$assistUserMobiles = [];
foreach ($users as $invitedUsers) {
$assistUserMobiles[$invitedUsers['user_id']] = $user['mobile'];
}
foreach ($data['data'] as &$item) {
//获取邀请人的手机
$item['mobile'] = array_get($mobiles, $item['user_id']);
$item['add_time'] = date('Y-m-d H:i:s', $item['add_time']);
//获取被邀请人的手机
$item['assist_user_mobile'] = array_get($assistUserMobiles,$item['user_id']);
}
}
unset($item);
}
return $data;
}
}
\ No newline at end of file
<?php
namespace App\Http\Transformers;
use App\Http\Services\BaseService;
class CheckInTransformer
{
protected $service;
public function __construct(BaseService $service)
{
$this->service = $service;
}
public function transform($data)
{
if (isset($data['data'])) {
$userIds = array_column($data['data'], 'user_id');
if ($userIds) {
$users = $this->service->getUsersFromRedis($userIds);
$mobiles = [];
foreach ($users as $user) {
$mobiles[$user['user_id']] = $user['mobile'];
}
foreach ($data['data'] as &$item) {
$item['mobile'] = array_get($mobiles, $item['user_id']);
$item['add_time'] = date('Y-m-d H:i:s', $item['add_time']);
}
}
unset($item);
}
return $data;
}
}
\ No newline at end of file
<?php
namespace App\Http\Transformers;
use App\Http\Services\BaseService;
class CodeTransformer
{
protected $service;
public function __construct(BaseService $service)
{
$this->service = $service;
}
public function transform($data)
{
if (isset($data['data'])&&is_array($data['data'])) {
$userIds = array_column($data['data'], 'user_id');
if ($userIds) {
$users = $this->service->getUsersFromRedis($userIds);
$mobiles = [];
foreach ($users as $user) {
$mobiles[$user['user_id']] = $user['mobile'];
}
foreach ($data['data'] as &$item) {
$item['mobile'] = array_get($mobiles, $item['user_id']);
$item['add_time'] = date('Y-m-d H:i:s', $item['add_time']);
}
}
unset($item);
}
return $data;
}
}
\ No newline at end of file
<?php
namespace App\Http\Transformers;
use App\Http\Services\BaseService;
class InviteTransformer
{
protected $service;
public function __construct(BaseService $service)
{
$this->service = $service;
}
public function transform($data)
{
if (isset($data['data'])&&is_array($data['data'])) {
$userIds = array_column($data['data'], 'user_id');
if ($userIds) {
$users = $this->service->getUsersFromRedis($userIds);
$mobiles = [];
foreach ($users as $user) {
$mobiles[$user['user_id']] = $user['mobile'];
}
$invitedUserIds = array_column($data['data'], 'invited_user_id');
$invitedUsers = $this->service->getUsersFromRedis($invitedUserIds);
$invitedUserMobiles = [];
foreach ($users as $invitedUsers) {
$invitedUserMobiles[$invitedUsers['user_id']] = $user['mobile'];
}
foreach ($data['data'] as &$item) {
//获取邀请人的手机
$item['mobile'] = array_get($mobiles, $item['user_id']);
$item['add_time'] = date('Y-m-d H:i:s', $item['add_time']);
//获取被邀请人的手机
$item['invited_user_mobile'] = array_get($invitedUserMobiles,$item['user_id']);
}
}
unset($item);
}
return $data;
}
}
\ No newline at end of file
function getRequestParams() {
var url = window.location.href;
var theRequest = {};
if (url.indexOf("?") !== -1) {
var str = url.split("?")[1];//获取url中"?"符后的字串
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
layui.use(['table', 'form', 'laydate', 'layer'], function () {
var table = layui.table;
var form = layui.form;
table.render({
elem: '#Assist'
, url: '/assists/api/assistListApi'
, method: 'get'
, request: {
pageName: 'page'
, limitName: 'page_size'
}
, where: getRequestParams()
, toolbar: '#toolbarLeft'
, defaultToolbar: ['filter']
, loading: true
, cols: [[
{field: 'id', title: '序号'}
, {field: 'exchange_id', title: '兑换Id'}
, {field: 'user_id', title: '兑换人Id'}
, {field: 'mobile', title: '兑换人手机号'}
, {field: 'assist_user_id', title: '助力人Id'}
, {field: 'assist_user_mobile', title: '助力人手机号'}
, {field: 'add_time', title: '添加时间'}
]]
, id: 'Assist'
, page: {}
});
});
function getRequestParams() {
var url = window.location.href;
var theRequest = {};
if (url.indexOf("?") !== -1) {
var str = url.split("?")[1];//获取url中"?"符后的字串
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
layui.use(['table', 'form', 'laydate', 'layer'], function () {
var table = layui.table;
var form = layui.form;
table.render({
elem: '#CheckIn'
, url: '/check_in/api/checkInListApi'
, method: 'get'
, request: {
pageName: 'page'
, limitName: 'page_size'
}
, where: getRequestParams()
, toolbar: '#toolbarLeft'
, defaultToolbar: ['filter']
, loading: true
, cols: [[
{field: 'id', title: '序号'}
, {field: 'user_id', title: '用户Id'}
, {field: 'mobile', title: '用户手机'}
, {field: 'add_time', title: '签到时间'}
]]
, id: 'CheckIn'
, page: {}
});
});
function getRequestParams() {
var url = window.location.href;
var theRequest = {};
if (url.indexOf("?") !== -1) {
var str = url.split("?")[1];//获取url中"?"符后的字串
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
layui.use(['table', 'form', 'laydate', 'layer'], function () {
var table = layui.table;
var form = layui.form;
table.render({
elem: '#Code'
, url: '/codes/api/codeListApi'
, method: 'get'
, request: {
pageName: 'page'
, limitName: 'page_size'
}
, where: getRequestParams()
, toolbar: '#toolbarLeft'
, defaultToolbar: ['filter']
, loading: true
, cols: [[
{field: 'id', title: '序号'}
, {field: 'user_id', title: '用户Id'}
, {field: 'mobile', title: '用户手机'}
, {field: 'code', title: '兑换的红包码',templet:'#code'}
, {field: 'add_time', title: '兑换时间'}
]]
, id: 'Code'
, page: {}
});
});
function getRequestParams() {
var url = window.location.href;
var theRequest = {};
if (url.indexOf("?") !== -1) {
var str = url.split("?")[1];//获取url中"?"符后的字串
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
layui.use(['table', 'form', 'laydate', 'layer'], function () {
var table = layui.table;
var form = layui.form;
table.render({
elem: '#Invite'
, url: '/invites/api/inviteListApi'
, method: 'get'
, request: {
pageName: 'page'
, limitName: 'page_size'
}
, where: getRequestParams()
, toolbar: '#toolbarLeft'
, defaultToolbar: ['filter']
, loading: true
, cols: [[
{field: 'id', title: '序号'}
, {field: 'user_id', title: '用户Id'}
, {field: 'mobile', title: '邀请人手机号'}
, {field: 'invited_user_id', title: '被邀请用户Id'}
, {field: 'invited_user_mobile', title: '被邀请用户手机'}
, {field: 'add_time', title: '邀请时间'}
]]
, id: 'Invite'
, page: {}
});
});
...@@ -88,7 +88,6 @@ layui.use(['table', 'form', 'laydate', 'layer'], function () { ...@@ -88,7 +88,6 @@ layui.use(['table', 'form', 'laydate', 'layer'], function () {
} else if (res.data[i].type === 2) { } else if (res.data[i].type === 2) {
//还要去判断是否是微信转账类型,因为这个类型还要去判断是否满足两个好友助力 //还要去判断是否是微信转账类型,因为这个类型还要去判断是否满足两个好友助力
if (res.data[i].assist_count !== 2) { if (res.data[i].assist_count !== 2) {
console.log(123)
$(this).parent().remove(); $(this).parent().remove();
} }
} }
......
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">兑换人手机</label>
<div class="layui-input-inline">
<input type="text" name="mobile" value="{{request()->get('mobile')}}"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">兑换Id</label>
<div class="layui-input-inline">
<input type="text" name="exchange_id" value="{{request()->get('exchange_id')}}"
class="layui-input">
</div>
</div>
<div class="layui-inline">
@inject('timeInterval','App\Presenters\TimeIntervalPresenter')
{!! $timeInterval->render('add_time','添加时间') !!}
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
<a type="button" class="layui-btn" href="/assists/assistList">
<i class="layui-icon layui-icon-refresh-3 layuiadmin-button-btn" title="重置搜索"></i>
</a>
</div>
</div>
</form>
</div>
<div class="layui-card-body" style="padding-top: 20px">
<table class="layui-table" id="Assist" lay-filter="Assist"></table>
</div>
</div>
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">用户电话</label>
<div class="layui-input-inline">
<input type="text" name="mobile" value="{{request()->get('mobile')}}"
class="layui-input">
</div>
</div>
<div class="layui-inline">
@inject('timeInterval','App\Presenters\TimeIntervalPresenter')
{!! $timeInterval->render('add_time','添加时间') !!}
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
<a type="button" class="layui-btn" href="/check_in/checkInList">
<i class="layui-icon layui-icon-refresh-3 layuiadmin-button-btn" title="重置搜索"></i>
</a>
</div>
</div>
</form>
</div>
<div class="layui-card-body" style="padding-top: 20px">
<table class="layui-table" id="CheckIn" lay-filter="CheckIn"></table>
</div>
</div>
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">用户电话</label>
<div class="layui-input-inline">
<input type="text" name="mobile" value="{{request()->get('mobile')}}"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">红包码</label>
<div class="layui-input-inline">
<input type="text" name="code" value="{{request()->get('code')}}"
class="layui-input">
</div>
</div>
<div class="layui-inline">
@inject('timeInterval','App\Presenters\TimeIntervalPresenter')
{!! $timeInterval->render('add_time','添加时间') !!}
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
<a type="button" class="layui-btn" href="/codes/codeList">
<i class="layui-icon layui-icon-refresh-3 layuiadmin-button-btn" title="重置搜索"></i>
</a>
</div>
</div>
</form>
</div>
<div class="layui-card-body" style="padding-top: 20px">
<table class="layui-table" id="Code" lay-filter="Code"></table>
</div>
<script type="text/html" id="code">
<button type="button" class="btn btn-xs btn-danger">@{{d.code}}</button>
</script>
</div>
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">邀请人手机</label>
<div class="layui-input-inline">
<input type="text" name="mobile" value="{{request()->get('mobile')}}"
class="layui-input">
</div>
</div>
<div class="layui-inline">
@inject('timeInterval','App\Presenters\TimeIntervalPresenter')
{!! $timeInterval->render('add_time','添加时间') !!}
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
<a type="button" class="layui-btn" href="/invites/inviteList">
<i class="layui-icon layui-icon-refresh-3 layuiadmin-button-btn" title="重置搜索"></i>
</a>
</div>
</div>
</form>
</div>
<div class="layui-card-body" style="padding-top: 20px">
<table class="layui-table" id="Invite" lay-filter="Invite"></table>
</div>
</div>
...@@ -19,6 +19,10 @@ Route::group(['middleware' => 'web'], function () { ...@@ -19,6 +19,10 @@ Route::group(['middleware' => 'web'], function () {
Route::match(['get', 'post'], '/integral_bills/{key}', 'IntegralBillsController@Entrance'); Route::match(['get', 'post'], '/integral_bills/{key}', 'IntegralBillsController@Entrance');
Route::match(['get', 'post'], '/exchange/settings/{key}', 'ExchangeSettingsController@Entrance'); Route::match(['get', 'post'], '/exchange/settings/{key}', 'ExchangeSettingsController@Entrance');
Route::match(['get', 'post'], '/user_exchanges/{key}', 'UserExchangesController@Entrance'); Route::match(['get', 'post'], '/user_exchanges/{key}', 'UserExchangesController@Entrance');
Route::match(['get', 'post'], '/check_in/{key}', 'CheckInController@Entrance');
Route::match(['get', 'post'], '/codes/{key}', 'CodesController@Entrance');
Route::match(['get', 'post'], '/invites/{key}', 'InvitesController@Entrance');
Route::match(['get', 'post'], '/assists/{key}', 'AssistsController@Entrance');
}); });
Route::get('/time', function () { Route::get('/time', function () {
...@@ -67,5 +71,21 @@ Route::namespace('Api')->group(function () { ...@@ -67,5 +71,21 @@ Route::namespace('Api')->group(function () {
'UserExchangesApiController@batchUpdateStatusApi'); 'UserExchangesApiController@batchUpdateStatusApi');
Route::match(['get', 'post'], '/user_exchanges/api/auditUserExchangeApi', Route::match(['get', 'post'], '/user_exchanges/api/auditUserExchangeApi',
'UserExchangesApiController@auditUserExchangeApi'); 'UserExchangesApiController@auditUserExchangeApi');
//用户签到管理
Route::match(['get', 'post'], '/check_in/api/checkInListApi',
'CheckInApiController@checkInListApi');
//红包码兑换管理
Route::match(['get', 'post'], '/codes/api/codeListApi',
'CodesApiController@codeListApi');
//红包码兑换管理
Route::match(['get', 'post'], '/invites/api/inviteListApi',
'InvitesApiController@inviteListApi');
//红包码兑换管理
Route::match(['get', 'post'], '/assists/api/assistListApi',
'AssistsApiController@assistListApi');
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment