first commit

This commit is contained in:
2020-08-06 16:37:53 +08:00
commit 91311c63a4
12865 changed files with 1504178 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
<?php
namespace App\Merchant\Controllers;
use Auth;
use Illuminate\Http\Request;
use Validator;
class AuthController extends Controller
{
public function login(Request $request)
{
if ($request->isMethod('post')) {
$validator = Validator::make($request->all(), [
'username' => 'required|min:4',
'password' => 'required|min:6',
], [
'username.requird' => '用户名不能为空',
'username.min' => '用户名不能小于:min字符',
'password.requird' => '密码不能为空',
'password.min' => '密码不能小于:min字符',
]);
if ($validator->fails()) {
return [
'code' => 0,
'msg' => $validator->errors()->first(),
];
}
$remember = $request->remember ?: false;
if (Auth::guard('merchant')->attempt(['username' => $request->username, 'password' => $request->password], $remember)) {
$user = Auth::guard('merchant')->user();
if (in_array($user->identity->identity_id, ['1'])) {
return [
'code' => 1,
'msg' => '登录成功',
'url' => route('merchant.index'),
];
} else {
Auth::guard('merchant')->logout();
session()->flush();
return [
'code' => 0,
'msg' => '没有登录权限',
];
}
} else {
return [
'code' => 0,
'msg' => '用户名或密码错误',
];
}
} else {
return view('Merchant::auth.login');
}
}
public function logout(Request $request)
{
Auth::guard('merchant')->logout();
session()->flush();
return $this->success('注销成功', 'merchant.login');
}
}

View File

@@ -0,0 +1,53 @@
<?php
namespace App\Merchant\Controllers\Census;
use App\Merchant\Controllers\Controller;
use App\Merchant\Exporters\CensusExport;
use App\Models\Coupon;
use Auth;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function index(Request $request)
{
$user = Auth::guard('merchant')->user();
$month = $request->month ?? now()->format('Y-m');
$action = $request->action ?? 'search';
$month = explode('-', $month);
$coupons = Coupon::where('user_id', $user->id)
->whereYear('created_at', $month[0])
->whereMonth('created_at', $month[1])
->where('status', 2)
->get(['id', 'thirdPartyGoodsId', 'created_at']);
$coupons = $coupons->groupBy('create_day')->map(function ($items, $key) {
$data = [
'day' => $key,
'ysd10' => $items->where('thirdPartyGoodsId', 'YSD-full100-10')->count(),
'ysd25' => $items->where('thirdPartyGoodsId', 'YSD-full100-25')->count(),
'ysd50' => $items->where('thirdPartyGoodsId', 'YSD-full100-50')->count(),
'ysd100' => $items->where('thirdPartyGoodsId', 'YSD-full200-100')->count(),
];
return collect($data);
});
$all = [
'ysd10' => $coupons->sum('ysd10'),
'ysd25' => $coupons->sum('ysd25'),
'ysd50' => $coupons->sum('ysd50'),
'ysd100' => $coupons->sum('ysd100'),
];
$coupons = $coupons->sortByDesc('day');
if ($action == 'search') {
return view('Merchant::census.index', compact('coupons', 'all'));
} else {
return (new CensusExport($month, $user))->download();
}
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Merchant\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests, Traits\AjaxResponse;
}

View File

@@ -0,0 +1,160 @@
<?php
namespace App\Merchant\Controllers\Coupon;
use App\Merchant\Controllers\Controller;
use App\Merchant\Exporters\CouponExport;
use App\Models\Coupon;
use Auth;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function index(Request $request)
{
$user = Auth::guard('merchant')->user();
$outlet = $request->outlet;
$status = $request->status;
$redemptionCode = $request->redemptionCode;
$start = $request->start;
$end = $request->end;
$thirdPartyGoodsId = $request->thirdPartyGoodsId;
$action = $request->action ?? 'search';
if ($action == 'excel') {
return (new CouponExport($request->all(), $user))->download();
}
if ($start) {
$start = $start . ' 00:00:00';
}
if ($end) {
$end = $end . ' 23:59:59';
}
$coupons = Coupon::where('user_id', $user->id)
->when($outlet, function ($q) use ($outlet) {
$q->whereHas('outlet', function ($q) use ($outlet) {
$q->whereHas('info', function ($q) use ($outlet) {
$q->where('nickname', 'like', "%{$outlet}%");
});
});
})
->when($redemptionCode, function ($q) use ($redemptionCode) {
$q->where('redemptionCode', $redemptionCode);
})
->when($thirdPartyGoodsId, function ($q) use ($thirdPartyGoodsId) {
$q->where('thirdPartyGoodsId', $thirdPartyGoodsId);
})
->when(is_numeric($status), function ($query) use ($status) {
if ($status == 4) {
$query->where('is_profit', 1);
} else {
$query->where('status', $status);
}
})
->when($start && $end, function ($query) use ($start, $end) {
$query->whereBetween('created_at', [$start, $end]);
})
->when($start && !$end, function ($query) use ($start) {
$query->where('created_at', '>', $start);
})
->when(!$start && $end, function ($query) use ($end) {
$query->where('created_at', '<', $end);
})
->whereIn('status', [2, 3])
->orderBy('created_at', 'desc')->orderBy('id', 'desc')->paginate();
$all = Coupon::query()
->where('user_id', $user->id)
->when($outlet, function ($q) use ($outlet) {
$q->whereHas('outlet', function ($q) use ($outlet) {
$q->whereHas('info', function ($q) use ($outlet) {
$q->where('nickname', 'like', "%{$outlet}%");
});
});
})
->when($redemptionCode, function ($q) use ($redemptionCode) {
$q->where('redemptionCode', $redemptionCode);
})
->when(is_numeric($status), function ($query) use ($status) {
$query->where('status', $status);
}, function ($query) {
$query->whereIn('status', [2, 3]);
})
->when($start && $end, function ($query) use ($start, $end) {
$query->whereBetween('created_at', [$start, $end]);
})
->when($start, function ($query) use ($start) {
$query->where('created_at', '>', $start);
})
->when($end, function ($query) use ($end) {
$query->where('created_at', '<', $end);
})
->orderBy('created_at', 'desc')->orderBy('id', 'desc')->get();
$pass = $all->whereIn('status', [2, 4])->all();
$reject = $all->where('status', 3)->all();
$pass = collect($pass);
$reject = collect($reject);
$data = [
'all' => $all->count(),
'pass' => $pass->count(),
'reject' => $reject->count(),
'price' => $pass->sum('price'),
'profit' => $pass->sum('profit'),
'hasPrice' => $pass->where('is_profit', 1)->sum('profit'),
];
return view('Merchant::coupon.index', compact('coupons', 'data'));
}
/**
* 按照日期分润
* @param Request $request [description]
* @return array|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
* @author 玄尘 2020-03-11
*/
public function profits(Request $request)
{
$user = Auth::guard('merchant')->user();
if ($request->isMethod('POST')) {
$date = $request->date;
$list = Coupon::where('user_id', $user->id)->whereDate('created_at', $date)->where('status', 2)->get();
if ($list->isEmpty()) {
return $this->error('分润失败!没有可处理的数据');
}
if (Coupon::where('user_id', $user->id)->whereDate('created_at', $date)->where('status', 2)->update(['status' => 4])) {
return $this->success('分润成功!');
} else {
return $this->error('分润失败!');
}
} else {
return view('Merchant::coupon.profits');
}
}
/**
* 分润
* @author 玄尘 2020-03-11
* @param Coupon $coupon [description]
* @return [type] [description]
*/
public function profit(Coupon $coupon)
{
if ($coupon->status == 2) {
$coupon->status = 4;
$coupon->save();
return $this->success('分润成功');
} else {
return $this->error('分润失败');
}
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Merchant\Controllers;
use Auth;
class IndexController extends Controller
{
public function index()
{
return view('Merchant::index.index');
}
public function dashboard()
{
$user = Auth::guard('merchant')->user();
return view('Merchant::index.dashboard', compact('user'));
}
}

View File

@@ -0,0 +1,55 @@
<?php
// +------------------------------------------------+
// |http://www.cjango.com |
// +------------------------------------------------+
// | 修复BUG不是一朝一夕的事情等我喝醉了再说吧 |
// +------------------------------------------------+
// | Author: 小陈叔叔 <Jason.Chen> |
// +------------------------------------------------+
namespace App\Merchant\Controllers\Setting;
use App\Merchant\Controllers\Controller;
use Auth;
use Illuminate\Http\Request;
use Validator;
class IndexController extends Controller
{
/**
* 修改密码
* @param Request $request 数据集
* @return [type] [description]
*/
public function password(Request $request)
{
$user = Auth::guard('merchant')->user();
if ($request->isMethod('post')) {
$validator = Validator::make($request->all(), [
'password' => 'required|confirmed',
'password_confirmation' => 'required',
], [
'password.required' => '新密码必须填写',
'password_confirmation.required' => '确认密码必须填写',
'password.confirmed' => '两次密码不一致',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
$user->password = $request->password;
$res = $user->save();
if ($res === true) {
return $this->success('修改成功');
} else {
return $this->error('修改失败');
}
} else {
return view('Merchant::setting.password');
}
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Merchant\Controllers\Traits;
trait AjaxResponse
{
protected function success($message = '', $url = null, $data = null)
{
return [
'code' => 1,
'msg' => $message ?: '操作成功',
'url' => is_null($url) ? '' : route($url),
'data' => $data,
];
}
protected function error($message = '', $url = null, $data = null)
{
return [
'code' => 0,
'msg' => $message ?: '操作失败',
'url' => is_null($url) ? '' : route($url),
'data' => $data,
];
}
}