bztang-admin/app/backend/modules/member/controllers/MemberCancelController.php

155 lines
5.1 KiB
PHP

<?php
/**
* Created by PhpStorm.
*
*
*
* Date: 2021-07-30
* Time: 16:14
*/
namespace app\backend\modules\member\controllers;
use app\backend\modules\member\models\MemberShopInfo;
use app\backend\modules\member\models\MemberUnique;
use app\common\components\BaseController;
use app\common\models\McMappingFans;
use app\common\models\Member;
use app\common\models\member\MemberCancel;
use app\common\models\member\MemberCancelSet;
use app\common\models\MemberAlipay;
use app\common\models\MemberMiniAppModel;
use app\common\models\Order;
use app\frontend\modules\member\models\MemberWechatModel;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Yunshop\YunSign\common\models\CompanyAccount;
use Yunshop\YunSign\common\models\PersonAccount;
class MemberCancelController extends BaseController
{
public function index()
{
$form_data = request()->form;
if ($form_data) {
$set = MemberCancelSet::uniacid()->first();
if (!$set) {
$set = new MemberCancelSet();
}
$set->uniacid = \YunShop::app()->uniacid;
$set->status = $form_data['status'];
$set->tel_status = $form_data['tel_status'];
$set->title = $form_data['title'];
$set->content = $form_data['content'];
if ($set->save()) {
return $this->successJson('保存成功');
} else {
return $this->errorJson('保存失败');
}
}
$set = MemberCancelSet::uniacid()->first();
return view('member.memberCancel.index', [
'set' => $set,
]);
}
public function verify()
{
return view('member.memberCancel.list');
}
public function search()
{
$search = request()->search;
$list = MemberCancel::search($search)->orderby('created_at', 'desc')->paginate(15);
return $this->successJson('ok', [
'list' => $list,
]);
}
//通过
public function pass()
{
$id = request()->id;
if (!$id) {
return $this->errorJson('请传入正确参数');
}
$model = MemberCancel::find($id);
if (!$model) {
return $this->errorJson('记录不存在');
}
$order = Order::where('uid', $model->member_id)->whereBetween('status', [1, 2])->first();
if ($order) {
return $this->errorJson('该会员存在交易中订单,暂不能审核!');
}
if ($this->delMember($model->member_id, $model)) {
if (app('plugins')->isEnabled('yun-sign')) {
PersonAccount::where('uid', $model->member_id)->delete();
CompanyAccount::where('uid', $model->member_id)->delete();
}
if (app('plugins')->isEnabled('shop-esign')) {
\Yunshop\ShopEsign\common\models\PersonAccount::where('uid', $model->member_id)->delete();
\Yunshop\ShopEsign\common\models\CompanyAccount::where('uid', $model->member_id)->delete();
}
return $this->successJson('审核成功');
} else {
return $this->errorJson('审核失败');
}
}
private function delMember($uid, $model)
{
$exception = DB::transaction(function () use ($uid, $model) {
//公众号
McMappingFans::where('uid', $uid)->delete();
//小程序
MemberMiniAppModel::where('member_id', $uid)->delete();
//app
MemberWechatModel::where('member_id', $uid)->delete();
//统一
MemberUnique::where('member_id', $uid)->delete();
//支付宝
MemberAlipay::where('member_id', $uid)->delete();
Member::where('uid', $uid)->delete(); //删除mc_members数据
MemberShopInfo::where('member_id', $uid)->delete(); //软删除yz_member
//聚合cps
if (Schema::hasTable('yz_member_aggregation_app')) {
DB::table('yz_member_aggregation_app')->where('member_id', $uid)->delete();
}
//企业微信
if (Schema::hasTable('yz_member_customer')) {
DB::table('yz_member_customer')->where('uid', $uid)->delete();
}
$model->update(['status'=>2]);
});
setcookie('Yz-Token', '', time() - 3600);
setcookie('Yz-appToken', '', time() - 3600);
setcookie(session_name(), '',time() - 3600, '/');
setcookie(session_name(), '',time() - 3600, '/addons/yun_shop');
session_destroy();
if (is_null($exception)) {
return true;
} else {
return false;
}
}
//驳回
public function reject()
{
$id = request()->id;
if (!$id) {
return $this->errorJson('请传入正确参数');
}
$model = MemberCancel::find($id);
if (!$model) {
return $this->errorJson('记录不存在');
}
if ($model->update(['status'=>3])) {
return $this->successJson('驳回成功');
} else {
return $this->errorJson('驳回失败');
}
}
}