183 lines
6.0 KiB
PHP
183 lines
6.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use EasyWeChat;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\FellowingCard as Card;
|
|
use App\Models\FellowingCardHistory as CardMember;
|
|
use App\Models\FellowingCardHistory;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\User;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class FellowingCardController extends Controller
|
|
{
|
|
/**
|
|
* 团契会员卡列表
|
|
* @param Request $request [description]
|
|
* @return [type] [description]
|
|
*/
|
|
public function fellowingCards(Request $request)
|
|
{
|
|
$cards = Card::with('user', 'shareUSer')->whereHas('user', function($sql){
|
|
$sql->where('id', '>', 0);
|
|
});
|
|
$keyword = $request->input('keyword');
|
|
if ($keyword) {
|
|
$cards = $cards->where('name',"like", "%$keyword%");
|
|
}
|
|
$cards = $cards->orderBy('id', 'desc')->paginate();
|
|
return $this->success('ok', $cards);
|
|
}
|
|
|
|
/**
|
|
* 团契会员详情
|
|
* @param Request $request [description]
|
|
* @param [type] $card_id [description]
|
|
* @return [type] [description]
|
|
*/
|
|
public function fellowingCard(Request $request, $card_id)
|
|
{
|
|
$card = Card::with('user', 'shareUSer')->findOrFail($card_id);
|
|
$card->userd_num = $card->num - $card->remain_num;
|
|
//会员记录
|
|
$histories = FellowingCardHistory::where('card_id', $card_id)->paginate();
|
|
foreach ($histories as $history) {
|
|
$user = User::where('id', $history->user_id)->first();
|
|
$circle_avatar = '';
|
|
$name = '';
|
|
if (!empty($user)) {
|
|
$circle_avatar = $user->circle_avatar;
|
|
$name = $user->name;
|
|
}
|
|
$history->circle_avatar = $circle_avatar;
|
|
$history->name = $name;
|
|
}
|
|
return $this->success('ok', compact('card', 'histories'));
|
|
}
|
|
|
|
/**
|
|
* 添加团契会员卡
|
|
* @param Request $request [description]
|
|
*/
|
|
public function addFellowingCard(Request $request)
|
|
{
|
|
|
|
$share_user_id = $request->input('share_user_id', 0);
|
|
$name = $request->input("name");
|
|
if (empty($name)) {
|
|
return $this->failure('请输入团契会员卡名称');
|
|
}
|
|
$user_id = $request->input('user_id');
|
|
if (empty($user_id)) {
|
|
return $this->failure('请输入拥有人信息');
|
|
}
|
|
$num = $request->input("num", 0);
|
|
if (empty($num)) {
|
|
return $this->failure('请输入团契会员卡数量');
|
|
}
|
|
$remain_num = $num;
|
|
$rank_id = $request->input('rank_id', 0);
|
|
if (empty($rank_id)) {
|
|
return $this->failure('请选择会员级别');
|
|
}
|
|
$month = $request->input('month', 0);
|
|
$day = $request->input('day', 0);
|
|
if (empty($month) && empty($day)) {
|
|
return $this->failure('请选择会员期限');
|
|
}
|
|
$card = new Card();
|
|
$card->share_user_id = $share_user_id;
|
|
$card->user_id = $user_id;
|
|
$card->name = $name;
|
|
$card->num = $num;
|
|
$card->remain_num = $remain_num;
|
|
$card->rank_id = $rank_id;
|
|
$card->month = $month;
|
|
$card->day = $day;
|
|
$card->save();
|
|
|
|
$app = EasyWechat::miniProgram();
|
|
$optional = [
|
|
'page' => 'pages/users/groupMember',
|
|
'width' => 260,
|
|
'is_hyaline'=>true,
|
|
'auto_color'=>true,
|
|
];
|
|
$response = $app->app_code->getUnlimit('id='.$card->id.'&from_user_id='.$card->user_id, $optional);
|
|
$qrcode_path = storage_path('qrcode');
|
|
$file_name = time().$card->id.'fellow_card_qrcode.png';
|
|
// 保存小程序码到文件
|
|
if ($response instanceof \EasyWeChat\Kernel\Http\StreamResponse) {
|
|
$response->saveAs($qrcode_path, $file_name);
|
|
}
|
|
$qrcode_path = storage_path()."/qrcode/".$file_name;
|
|
$qrcode = $this->uploadFile($qrcode_path);
|
|
$card->qrcode = $qrcode;
|
|
$card->save();
|
|
return $this->success('ok', $card);
|
|
}
|
|
|
|
/**
|
|
* 修改团契会员卡
|
|
* @param Request $request [description]
|
|
* @param [type] $card_id [description]
|
|
* @return [type] [description]
|
|
*/
|
|
public function updateFellowingCard(Request $request, $card_id)
|
|
{
|
|
$card = Card::findOrFail($card_id);
|
|
if ($request->has('user_id') && $request->input('user_id') != $card->user_id) {
|
|
$card->user_id = $request->user_id;
|
|
}
|
|
if ($request->has('share_user_id') && $request->input('share_user_id') != $card->share_user_id) {
|
|
$card->share_user_id = $request->share_user_id;
|
|
}
|
|
if ($request->has('name') && $request->input('name') != $card->name) {
|
|
$card->name = $request->name;
|
|
}
|
|
if ($request->has('num') && $request->input('num') != $card->num) {
|
|
$card->num = $request->num;
|
|
}
|
|
if ($request->has('rank_id') && $request->input('rank_id') != $card->rank_id) {
|
|
$card->rank_id = $request->rank_id;
|
|
}
|
|
if ($request->has('month') && $request->input('month') != $card->month) {
|
|
$card->month = $request->month;
|
|
$card->day = 0;
|
|
}
|
|
if ($request->has('day') && $request->input('day') != $card->day) {
|
|
$card->day = $request->day;
|
|
$card->month = 0;
|
|
}
|
|
$card->save();
|
|
return $this->success('ok', $card);
|
|
}
|
|
|
|
/**
|
|
* 删除团契会员卡
|
|
* @param Request $request [description]
|
|
* @param [type] $card_id [description]
|
|
* @return [type] [description]
|
|
*/
|
|
public function deleteFellowingCard(Request $request, $card_id)
|
|
{
|
|
$card = Card::findOrFail($card_id);
|
|
$card->delete();
|
|
return $this->success('ok');
|
|
}
|
|
|
|
/**
|
|
* 团契卡成员
|
|
* @param Request $request [description]
|
|
* @param Card $card [description]
|
|
* @return [type] [description]
|
|
*/
|
|
public function cardMemebrs(Request $request, Card $card)
|
|
{
|
|
$members = $card->members()->with('user')->orderBy('id', 'desc')->paginate();
|
|
return $this->success('ok', $members);
|
|
}
|
|
}
|