first commit
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace Modules\Member\Services;
|
||||
|
||||
use Modules\Member\Models\Member;
|
||||
use Modules\Member\Events\LoginBefore;
|
||||
use Modules\Member\Events\LoginEvent;
|
||||
use Modules\Member\Events\Registered;
|
||||
|
||||
class AuthService {
|
||||
|
||||
/**
|
||||
* @title 会员登录
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function userLogin($request){
|
||||
$request->validate([
|
||||
'username' => 'required',
|
||||
'password' => 'required',
|
||||
]);
|
||||
|
||||
$username = $request->input('username');
|
||||
$password = $request->input('password');
|
||||
LoginBefore::dispatch($username, $password);
|
||||
|
||||
$token = auth('api')->attempt(['mobile' => $username, 'password' => $password]);
|
||||
|
||||
if (!$token) {
|
||||
throw new \Exception("登錄失敗!", 1000);
|
||||
}else{
|
||||
LoginEvent::dispatch(auth('api')->user(), $request->input('openid', ''), $request->input('type'));
|
||||
// 判断是否到期
|
||||
$user = auth('api')->user();
|
||||
if(isset($user['level_expire_time']) && $user['level_expire_time'] != ''){
|
||||
$level_expire_time = strtotime($user['level_expire_time']);
|
||||
if($level_expire_time < time()){
|
||||
throw new \Exception("您的會員已到期,請聯系管理員!", 1004);
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
'access_token' => $token,
|
||||
'token_type' => 'bearer',
|
||||
'expires_in' => auth('api')->factory()->getTTL() * 60
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @title UID登录
|
||||
* @description 提供给第三方登录接口
|
||||
*
|
||||
* @param [type] $uid
|
||||
* @param array $params 第三方登录参数
|
||||
* @param string $type 第三方登录类型
|
||||
* @return void
|
||||
*/
|
||||
public function userLoginByUid($uid, $params = [], $type = 'wechat'){
|
||||
$member = Member::find($uid);
|
||||
if(!$member){
|
||||
throw new \Exception("用户不存在!", 1000);
|
||||
}
|
||||
|
||||
$token = auth('api')->login($member);
|
||||
|
||||
if (!$token) {
|
||||
throw new \Exception("登录失败!", 1000);
|
||||
}else{
|
||||
LoginEvent::dispatch(auth('api')->user(), $params, $type);
|
||||
return [
|
||||
'access_token' => $token,
|
||||
'token_type' => 'bearer',
|
||||
'expires_in' => auth('api')->factory()->getTTL() * 60
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 会员注册
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function userRegister($request){
|
||||
$request->validate([
|
||||
'username' => 'required|unique:member,username',
|
||||
'password' => 'required',
|
||||
'mobile' => 'nullable|unique:member,mobile',
|
||||
], [
|
||||
'username.unique' => '用户名已存在!',
|
||||
'mobile.unique' => '手机号已存在!',
|
||||
'username.required' => '用户名不能为空!',
|
||||
'password.required' => '密码不能为空!'
|
||||
]);
|
||||
|
||||
$member = Member::where('username', '=', $request->input('username'))->first();
|
||||
if(!$member){
|
||||
$data = [
|
||||
'username' => $request->input('username'),
|
||||
'password' => $request->input('password'),
|
||||
'nickname' => $request->input('nickname', ''),
|
||||
'avatar' => $request->input('avatar', ''),
|
||||
'mobile' => $request->input('mobile', 0),
|
||||
];
|
||||
|
||||
$member = Member::updateOrCreate($data);
|
||||
}
|
||||
Registered::dispatch($member, $request->input('openid', ''), $request->input('type', ''));
|
||||
$token = auth('api')->login($member);
|
||||
return [
|
||||
'access_token' => $token,
|
||||
'token_type' => 'bearer',
|
||||
'expires_in' => auth('api')->factory()->getTTL() * 60
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 会员退出
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function userLogout($request){
|
||||
auth('api')->logout();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace Modules\Member\Services;
|
||||
|
||||
use Modules\Member\Models\Fields;
|
||||
use Modules\Member\Models\MemberExtends;
|
||||
|
||||
class ExtendService {
|
||||
|
||||
public function getDataList($request){
|
||||
$map = [];
|
||||
|
||||
$query = MemberExtends::with('member:uid,username,nickname,avatar,level_id,level_expire_time');
|
||||
|
||||
if ($request->filled('member_id')){
|
||||
$query->where('member_id', $request->input('member_id'));
|
||||
}
|
||||
|
||||
if ($request->filled('keyword')){
|
||||
$map[] = ['name', 'like', '%' . $request->input('keyword') . '%'];
|
||||
}
|
||||
if ($request->filled('name')){
|
||||
$map[] = ['name', 'like', '%' . $request->input('name') . '%'];
|
||||
}
|
||||
|
||||
if ($request->filled('status')){
|
||||
$map[] = ['status', '=', $request->input('status')];
|
||||
}
|
||||
|
||||
$query->where($map);
|
||||
|
||||
$query->orderBy($request->input('order', 'id'), $request->input('sort', 'desc'));
|
||||
if ($request->filled('page')){
|
||||
$data = [
|
||||
'total' => $query->count(),
|
||||
'page' => (int) $request->input('page', 1),
|
||||
'data' => $query->offset($request->input('offset', 0))->limit($request->input('limit', 30))->get(),
|
||||
];
|
||||
}else{
|
||||
$data = $query->limit($request->input('limit', 10))->get();
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getDetail($request){
|
||||
if ($request->filled('member_id')){
|
||||
$member_id = $request->input('member_id');
|
||||
} else {
|
||||
$member_id = auth('api')->user()['uid'];
|
||||
}
|
||||
|
||||
$extends = MemberExtends::with('member:uid,username,nickname,avatar,level_id,level_expire_time', 'member.level')->where('member_id', $member_id)->first();
|
||||
|
||||
if (!$extends){
|
||||
throw new \Exception('用户数据不存在');
|
||||
}
|
||||
if ($extends->status == 0){
|
||||
throw new \Exception('用户数据审核中');
|
||||
}
|
||||
if ($extends->status == 2){
|
||||
throw new \Exception('用户数据审核未通过');
|
||||
}
|
||||
|
||||
return $extends ?? [];
|
||||
}
|
||||
|
||||
public function update($request){
|
||||
$field = Fields::all();
|
||||
|
||||
if ($request->filled('member_id')){
|
||||
$member_id = $request->input('member_id');
|
||||
} else {
|
||||
$member_id = auth('api')->user()['uid'];
|
||||
}
|
||||
|
||||
$extends = MemberExtends::where('member_id', $member_id)->first();
|
||||
if (!$extends){
|
||||
$extends = new MemberExtends();
|
||||
$extends->member_id = $member_id;
|
||||
}
|
||||
|
||||
foreach ($field as $key => $value) {
|
||||
if ($request->filled($value['name']) && $request->input($value['name']) != ''){
|
||||
$extends->{$value['name']} = $request->input($value['name']);
|
||||
}
|
||||
}
|
||||
|
||||
$extends->status = 0;
|
||||
$extends->save();
|
||||
return $extends;
|
||||
}
|
||||
|
||||
public function audit($request){
|
||||
$request->validate([
|
||||
'id' => 'required',
|
||||
'member_id' => 'required',
|
||||
'level_id' => 'required',
|
||||
'status' => 'required|integer|in:0,1,2',
|
||||
'level_expire_time' => 'required|date',
|
||||
], [
|
||||
'id.required' => 'ID不能为空',
|
||||
'member_id.required' => '用户ID不能为空',
|
||||
'level_id.required' => '等级ID不能为空',
|
||||
'status.required' => '审核状态不能为空',
|
||||
'status.integer' => '审核状态必须为数字',
|
||||
'status.in' => '审核状态值错误',
|
||||
'level_expire_time.required' => '等级过期时间不能为空',
|
||||
'level_expire_time.date' => '等级过期时间格式错误',
|
||||
]);
|
||||
|
||||
$extends = MemberExtends::where('id', $request->input('id'))->first();
|
||||
|
||||
if (!$extends){
|
||||
throw new \Exception('审核数据不存在');
|
||||
}
|
||||
|
||||
$extends->status = $request->input('status');
|
||||
$extends->card_number = 'NF9' . str_pad($extends->member_id, 6, '0', STR_PAD_LEFT);
|
||||
|
||||
$extends->save();
|
||||
|
||||
if ($request->input('status') == 1){
|
||||
$member = $extends->member()->first();
|
||||
$member->level_id = $request->input('level_id');
|
||||
$member->level_expire_time = $request->input('level_expire_time');
|
||||
if ($extends->name){
|
||||
$member->nickname = $extends->name;
|
||||
}
|
||||
if ($extends->mobile){
|
||||
$member->mobile = $extends->mobile;
|
||||
}
|
||||
if ($extends->email){
|
||||
$member->email = $extends->email;
|
||||
}
|
||||
$member->save();
|
||||
}
|
||||
return $extends;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace Modules\Member\Services;
|
||||
|
||||
use Modules\Member\Models\Fields;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class FieldsService {
|
||||
|
||||
/**
|
||||
* @title 字段列表
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function getDataList($request) {
|
||||
$map = [];
|
||||
|
||||
if ($request->filled('status')) {
|
||||
$map[] = ['status', '=', $request->input('status')];
|
||||
}
|
||||
|
||||
$query = Fields::where($map);
|
||||
|
||||
if($request->filled('page')){
|
||||
$data = [
|
||||
'total' => $query->count(),
|
||||
'page' => $request->input('page', 1),
|
||||
'data' => $query->offset($request->input('offset', 0))->limit($request->input('limit', 10))->get(),
|
||||
];
|
||||
}else{
|
||||
$data = $query->limit($request->input('limit', 10))->get();
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 创建字段
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function create($request) {
|
||||
$request->validate([
|
||||
'name' => 'required|unique:cms_model_field',
|
||||
'title' => 'required',
|
||||
'type' => 'required',
|
||||
]);
|
||||
$field = new Fields();
|
||||
|
||||
foreach ($field->setFilterFields($request->all()) as $key => $value) {
|
||||
$field->$key = $value;
|
||||
}
|
||||
|
||||
$field->save();
|
||||
return $field;
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 更新字段
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function update($request) {
|
||||
$request->validate([
|
||||
'name' => 'required|unique:cms_model_field,name,' . $request->input('id'),
|
||||
'title' => 'required',
|
||||
'type' => 'required',
|
||||
]);
|
||||
$field = Fields::find($request->input('id'));
|
||||
|
||||
foreach ($field->setFilterFields($request->all()) as $key => $value){
|
||||
$field->$key = $value;
|
||||
}
|
||||
|
||||
$field->save();
|
||||
return $field;
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 删除字段
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function delete($request) {
|
||||
if($request->filled('id')){
|
||||
try {
|
||||
$field = Fields::findOrFail($request->input('id'));
|
||||
} catch (\Throwable $th) {
|
||||
throw new \Exception("模型不存在!", 1);
|
||||
}
|
||||
$field->delete();
|
||||
}
|
||||
if($request->filled('ids')){
|
||||
try {
|
||||
$field = Fields::whereIn('id', $request->input('ids'));
|
||||
$field->delete();
|
||||
} catch (\Throwable $th) {
|
||||
throw new \Exception($th->getMessage(), 1);
|
||||
}
|
||||
}
|
||||
return $field;
|
||||
}
|
||||
|
||||
public function getFieldList($request){
|
||||
$fields = Schema::getColumnListing('member_extends');
|
||||
|
||||
$data = [];
|
||||
foreach ($fields as $value) {
|
||||
if ($value !== $request->input('name'))
|
||||
$data[] = ['title' => $value, 'values' => $value];
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getFieldSetting($request){
|
||||
$map = [];
|
||||
|
||||
$query = Fields::with('model:id,title,name,icon');
|
||||
|
||||
if ($request->filled('model')) {
|
||||
$query->whereHas('model', function($q) use($request) {
|
||||
$q->where('name', $request->input('model'));
|
||||
});
|
||||
}
|
||||
|
||||
$data = $query->get();
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace Modules\Member\Services;
|
||||
|
||||
use Modules\Member\Models\MemberLevel;
|
||||
|
||||
class LevelService {
|
||||
|
||||
/**
|
||||
* @title 获取会员列表
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function getDataList($request){
|
||||
$map = [];
|
||||
|
||||
if ($request->filled('title')) {
|
||||
$map[] = ['title', 'like', '%' . $request->input('title') . '%'];
|
||||
}
|
||||
if ($request->filled('name')) {
|
||||
$map[] = ['name', 'like', '%' . $request->input('name') . '%'];
|
||||
}
|
||||
$query = MemberLevel::where($map)->orderBy('id', 'desc');
|
||||
|
||||
if ($request->filled('page')) {
|
||||
$data = [
|
||||
'total' => $query->count(),
|
||||
'page' => $request->input('page', 1),
|
||||
'data' => $query->offset($request->input('offset', 0))->limit($request->input('limit', 30))->get(),
|
||||
];
|
||||
}else{
|
||||
$data = $query->limit($request->input('limit', 30))->get();
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 添加会员
|
||||
*
|
||||
* @param Request $request
|
||||
* @param MemberService $service
|
||||
* @return void
|
||||
*/
|
||||
public function create($request){
|
||||
$request->validate([
|
||||
'title' => 'required|max:255',
|
||||
'name' => 'required|max:255|alpha_dash:ascii|unique:member_level,name',
|
||||
]);
|
||||
|
||||
$data = [
|
||||
'title' => $request->input('title', ''),
|
||||
'name' => $request->input('name', ''),
|
||||
'icon' => $request->input('icon', ''),
|
||||
'sort' => $request->input('sort', 0),
|
||||
'status' => $request->input('status', 1),
|
||||
'remark' => $request->input('remark', ''),
|
||||
];
|
||||
|
||||
$level = MemberLevel::create($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 修改会员
|
||||
*
|
||||
* @param Request $request
|
||||
* @param MemberService $service
|
||||
* @return void
|
||||
*/
|
||||
public function update($request){
|
||||
$request->validate([
|
||||
'title' => 'required|max:255',
|
||||
'name' => 'required|max:255|alpha_dash:ascii|unique:member_level,name,' . $request->input('id'),
|
||||
]);
|
||||
|
||||
try {
|
||||
$level = MemberLevel::findOrFail($request->input('id'));
|
||||
} catch (\Throwable $th) {
|
||||
throw new \Exception("会员不存在!", 1);
|
||||
}
|
||||
|
||||
$data = [
|
||||
'title'=> $request->input('title', ''),
|
||||
'name' => $request->input('name', ''),
|
||||
'icon' => $request->input('icon', ''),
|
||||
'sort' => $request->input('sort', 0),
|
||||
'status' => $request->input('status', 1),
|
||||
'remark' => $request->input('remark', ''),
|
||||
];
|
||||
$level->update($data);
|
||||
return $level;
|
||||
}
|
||||
|
||||
public function delete($request){
|
||||
if($request->filled('id')){
|
||||
try {
|
||||
$level = MemberLevel::findOrFail($request->input('id'));
|
||||
} catch (\Throwable $th) {
|
||||
throw new \Exception("会员等级不存在!", 1);
|
||||
}
|
||||
$level->members()->detach();
|
||||
$level->delete();
|
||||
}
|
||||
if($request->filled('ids')){
|
||||
try {
|
||||
$level = MemberLevel::whereIn('id', $request->input('ids'));
|
||||
foreach ($level->get() as $item) {
|
||||
$item->members()->detach(); //删除关联
|
||||
}
|
||||
$level->delete();
|
||||
} catch (\Throwable $th) {
|
||||
throw new \Exception($th->getMessage(), 1);
|
||||
}
|
||||
}
|
||||
|
||||
return $level;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,299 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace Modules\Member\Services;
|
||||
|
||||
use Modules\Member\Models\Member;
|
||||
use Modules\Member\Events\MemberUpdate;
|
||||
|
||||
class MemberService {
|
||||
|
||||
/**
|
||||
* @title 获取会员列表
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function getDataList($request){
|
||||
$map = [];
|
||||
|
||||
if ($request->filled('username')) {
|
||||
$map[] = ['username', 'like', '%' . $request->input('username') . '%'];
|
||||
}
|
||||
if ($request->filled('mobile')) {
|
||||
$map[] = ['mobile', 'like', '%' . $request->input('mobile') . '%'];
|
||||
}
|
||||
if ($request->filled('email')) {
|
||||
$map[] = ['email', 'like', '%' . $request->input('email') . '%'];
|
||||
}
|
||||
|
||||
$query = Member::with(['social', 'level'])->where($map)->orderBy('uid', 'desc');
|
||||
|
||||
if ($request->filled('title')) {
|
||||
$query->whereAny(['nickname', 'username'], 'like', '%' . $request->input('title') . '%');
|
||||
}
|
||||
$data = [
|
||||
'total' => $query->count(),
|
||||
'page' => $request->input('page', 1),
|
||||
'data' => $query->offset($request->input('offset', 0))->limit($request->input('limit', 10))->get(),
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getDetail($request){
|
||||
$request->validate([
|
||||
'id_card' => 'required',
|
||||
], [
|
||||
'id_card.required' => '身份证号不能为空!',
|
||||
]);
|
||||
|
||||
$query = Member::with(['level', 'extend']);
|
||||
if ($request->filled('id_card')) {
|
||||
$query->whereHas('extend', function ($query) use ($request) {
|
||||
$query->where('id_card', $request->input('id_card'));
|
||||
});
|
||||
}
|
||||
|
||||
if ($request->is('api/*')) {
|
||||
$query->select(['nickname', 'uid', 'level_id']);
|
||||
}
|
||||
|
||||
if ($query->exists()) {
|
||||
return $query->first();
|
||||
} else {
|
||||
throw new \Exception("会员不存在!", 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 创建用户
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function create($request){
|
||||
$request->validate([
|
||||
'username' => 'required|unique:member',
|
||||
'nickname' => 'required',
|
||||
'mobile' => 'required|unique:member',
|
||||
'password' => 'required|min:6|max:16'
|
||||
], [
|
||||
'username.required' => '用户名不能为空!',
|
||||
'username.unique' => '用户名已存在!',
|
||||
'nickname.required' => '昵称不能为空!',
|
||||
'mobile.required' => '手机号不能为空!',
|
||||
'mobile.unique' => '手机号已存在!',
|
||||
'password.required' => '密码不能为空!',
|
||||
'password.min' => '密码长度不能小于6位!',
|
||||
'password.max' => '密码长度不能大于16位!'
|
||||
]);
|
||||
|
||||
$member = new Member;
|
||||
|
||||
if ($request->filled('username')) {
|
||||
$member->username = $request->input('username');
|
||||
}
|
||||
if ($request->filled('nickname')) {
|
||||
$member->nickname = $request->input('nickname');
|
||||
}
|
||||
if ($request->filled('avatar')) {
|
||||
$member->avatar = $request->input('avatar');
|
||||
}
|
||||
if ($request->filled('email')) {
|
||||
$member->email = $request->input('email');
|
||||
}
|
||||
if ($request->filled('gender')) {
|
||||
$member->gender = $request->input('gender');
|
||||
}
|
||||
if ($request->filled('birthday')) {
|
||||
$member->birthday = $request->input('birthday');
|
||||
}
|
||||
if ($request->filled('date_type')) {
|
||||
$member->date_type = $request->input('date_type');
|
||||
}
|
||||
if ($request->filled('mobile')) {
|
||||
$member->mobile = $request->input('mobile');
|
||||
}
|
||||
if ($request->filled('level_expire_time')) {
|
||||
$member->level_expire_time = $request->input('level_expire_time');
|
||||
}
|
||||
if ($request->filled('password')) {
|
||||
$member->password = $request->input('password');
|
||||
}
|
||||
if ($request->filled('status')) {
|
||||
$member->status = $request->input('status');
|
||||
}
|
||||
$member->invite_uid = $request->input('invite_uid', '1890000001');
|
||||
$member->pm_uid = $request->input('pm_uid', '1890000001');
|
||||
$member->store_uid = $request->input('store_uid', '1890000001');
|
||||
$member->level_id = $request->input('level_id', '1');
|
||||
|
||||
$member->save();
|
||||
|
||||
return $member;
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 更新用户
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function update($request){
|
||||
$request->validate([
|
||||
'username' => 'unique:member,username,'.$request->input('uid').',uid',
|
||||
'mobile' => 'unique:member,mobile,'.$request->input('uid').',uid',
|
||||
],[
|
||||
'username.unique' => '用户名已存在!',
|
||||
'mobile.unique' => '手机号已存在!',
|
||||
]);
|
||||
if ($request->filled('uid')) {
|
||||
$members = Member::where('uid', $request->input('uid'))->first();
|
||||
}
|
||||
if ($request->is('api/*') && auth('api')->user()) {
|
||||
$members = Member::where('uid', auth('api')->user()['uid'])->first();
|
||||
}
|
||||
|
||||
if ($request->filled('username')) {
|
||||
$members->username = $request->input('username');
|
||||
}
|
||||
if ($request->filled('nickname')) {
|
||||
$members->nickname = $request->input('nickname');
|
||||
}
|
||||
if ($request->filled('avatar')) {
|
||||
$members->avatar = $request->input('avatar');
|
||||
}
|
||||
if ($request->filled('email')) {
|
||||
$members->email = $request->input('email');
|
||||
}
|
||||
if ($request->filled('gender')) {
|
||||
$members->gender = $request->input('gender');
|
||||
}
|
||||
if ($request->filled('birthday')) {
|
||||
$members->birthday = $request->input('birthday');
|
||||
}
|
||||
if ($request->filled('date_type')) {
|
||||
$members->date_type = $request->input('date_type');
|
||||
}
|
||||
if ($request->filled('mobile')) {
|
||||
$members->mobile = $request->input('mobile');
|
||||
}
|
||||
if ($request->filled('password')) {
|
||||
$members->password = $request->input('password');
|
||||
}
|
||||
if ($request->filled('level_expire_time')) {
|
||||
$members->level_expire_time = $request->input('level_expire_time');
|
||||
}
|
||||
|
||||
$members->save();
|
||||
|
||||
MemberUpdate::dispatch($members);
|
||||
return $members;
|
||||
}
|
||||
|
||||
public function delete($request){
|
||||
if(!$request->filled('uid')){
|
||||
throw new \Exception("非法操作!", 1);
|
||||
}
|
||||
|
||||
if (is_array($request->input('uid'))) {
|
||||
// 批量删除
|
||||
$mebers = Member::whereIn('uid', $request->input('uid'))->get();
|
||||
if ($mebers->isEmpty()) {
|
||||
throw new \Exception("会员不存在!", 1);
|
||||
}
|
||||
$member = Member::destroy(request()->input('uid'));
|
||||
|
||||
return $member;
|
||||
}else{
|
||||
// 单个删除
|
||||
try {
|
||||
$mebers = Member::findOrFail($request->input('uid'));
|
||||
} catch (\Throwable $th) {
|
||||
throw new \Exception("会员不存在!", 1);
|
||||
}
|
||||
$mebers->delete();
|
||||
return $mebers;
|
||||
}
|
||||
}
|
||||
|
||||
public function updatePasswd($request){
|
||||
$request->validate([
|
||||
'password' => 'required|min:6|max:16'
|
||||
], [
|
||||
'password.required' => '密码不能为空!',
|
||||
'password.min' => '密码长度不能小于6位!',
|
||||
'password.max' => '密码长度不能大于16位!'
|
||||
]);
|
||||
if ($request->is('api/*')) {
|
||||
$request->validate([
|
||||
'old_password' => 'required',
|
||||
'password' => 'confirmed'
|
||||
], [
|
||||
'old_password.required' => '旧密码不能为空!',
|
||||
'password.confirmed' => '两次密码不一致!'
|
||||
]);
|
||||
}
|
||||
if(!$request->filled('uid')){
|
||||
throw new \Exception("非法操作!", 1);
|
||||
}
|
||||
|
||||
try {
|
||||
$mebers = Member::findOrFail($request->input('uid'));
|
||||
} catch (\Throwable $th) {
|
||||
throw new \Exception("会员不存在!", 1);
|
||||
}
|
||||
|
||||
if(!$request->filled('password')){
|
||||
throw new \Exception("密码不能为空!", 1);
|
||||
}
|
||||
|
||||
$mebers->password = $request->input('password');
|
||||
|
||||
$mebers->save();
|
||||
return $mebers;
|
||||
}
|
||||
|
||||
public function import($request){
|
||||
$file = $request->file('file');
|
||||
|
||||
if ($file->isValid()) {
|
||||
$ext = $file->extension();
|
||||
|
||||
if (in_array($ext, ['csv', 'xlsx']) === false) {
|
||||
throw new \Exception("请上传csv文件");
|
||||
}
|
||||
|
||||
$path = $file->store('import/'.date('Ymd'), 'public');
|
||||
|
||||
$tasks = app()->tasks->create([
|
||||
'title' => '会员数据导入',
|
||||
'type' => 'import',
|
||||
'file' => $path,
|
||||
'params' => $request->except('file'),
|
||||
'status' => 0,
|
||||
]);
|
||||
if ($tasks->id) {
|
||||
\Modules\Member\Jobs\MemberImport::dispatch($path, $tasks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function export($request){
|
||||
$tasks = app()->tasks->create([
|
||||
'title' => '会员数据导出',
|
||||
'type' => 'export',
|
||||
'file' => 'export/' . $request->input('fileName', time().'xlsx'),
|
||||
'status' => 0,
|
||||
]);
|
||||
|
||||
if ($tasks->id) {
|
||||
\Modules\Member\Jobs\MemberExport::dispatch($request->all(), $tasks);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user