This repository has been archived on 2021-03-23. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pingan_unionpay/app/Api/Controllers/UserController.php
2020-08-06 16:42:18 +08:00

192 lines
5.4 KiB
PHP

<?php
namespace App\Api\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use XuanChen\Coupon\Coupon;
class UserController extends Controller
{
public function index()
{
$this->user = User::find(1);
$data = [
'user_id' => $this->user->id,
'nickname' => $this->user->info->nickname,
];
return $this->success($data);
}
public function check(Request $request)
{
$res = $this->checkSign($request);
if (!is_array($res)) {
return $this->error($res);
}
$user_id = $res['user_id'];
$user = User::find($user_id);
return $this->success($user);
}
/**
* Notes: 发券
* @Author: 玄尘
* @Date : 2020/6/29 13:57
*/
public function grant(Request $request)
{
$inputdata = $request->all();
$res = $this->checkSign($request);
$inputdata['jiemi'] = $res;
$log = $this->createLog($request->url(), 'POST', $inputdata, 'grant'); //添加日志
if (is_string($res)) {
return $this->error($res, $log);
}
$validator = \Validator::make($res, [
'activityId' => 'required',
'outletId' => 'required',
'mobile' => 'required',
], [
'activityId.required' => '缺少活动编码',
'outletId.required' => '缺少网点id',
'mobile.required' => '缺少手机号',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first(), $log);
}
$res = Coupon::Grant($res['activityId'], $res['outletId'], $res['mobile']);
if (is_string($res)) {
return $this->error($res, $log);
}
return $this->success($res, $log);
}
/**
* Notes: 查询
* @Author: 玄尘
* @Date : 2020/7/22 11:23
* @param \Illuminate\Http\Request $request
*/
public function query(Request $request)
{
$inputdata = $request->all();
$res = $this->checkSign($request);
$inputdata['jiemi'] = $res;
$log = $this->createLog($request->url(), 'POST', $inputdata, 'grant'); //添加日志
if (is_string($res)) {
return $this->error($res, $log);
}
$validator = \Validator::make($res, [
'redemptionCode' => 'required',
'outletId' => 'required',
], [
'redemptionCode.required' => '缺少卡券兑换码',
'outletId.required' => '缺少网点id',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first(), $log);
}
$redemptionCode = $res['redemptionCode'];
$outletId = $res['outletId'];
$res = Coupon::Query($redemptionCode, $outletId);
if (is_string($res)) {
return $this->error($res, $log);
}
return $this->success($res, $log);
}
//作废
public function destroy(Request $request)
{
$inputdata = $request->all();
$res = $this->checkSign($request);
$inputdata['jiemi'] = $res;
$log = $this->createLog($request->url(), 'POST', $inputdata, 'grant'); //添加日志
if (is_string($res)) {
return $this->error($res, $log);
}
$validator = \Validator::make($res, [
'redemptionCode' => 'required',
], [
'redemptionCode.required' => '缺少卡券兑换码',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first(), $log);
}
$redemptionCode = $res['redemptionCode'];
$res = Coupon::Destroy($redemptionCode);
if ($res !== true) {
return $this->error($res, $log);
}
return $this->success('作废成功', $log);
}
//核销
public function freezecoupon(Request $request)
{
$inputdata = $request->all();
$res = $this->checkSign($request);
$inputdata['jiemi'] = $res;
//插入日志表
$log = $this->createLog($request->url(), 'POST', $inputdata, 'self'); //添加日志
if (!is_array($res)) {
return $this->error($res, $log);
}
$validator = \Validator::make($res, [
'redemptionCode' => 'required',
'total' => 'required',
'outletId' => 'required',
], [
'redemptionCode.required' => '缺少卡券兑换码',
'total.required' => '缺少订单总额',
'outletId.required' => '缺少网点id',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first(), $log);
}
$redemptionCode = $res['redemptionCode'] ?? ''; //'915400693355';
$total = $res['total'] ?? ''; //订单总额;
$outletId = $res['outletId'] ?? ''; //网点id;
$redemptionCode = trim($redemptionCode);
$outletId = trim($outletId);
$coupon = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId);
if (is_string($coupon)) {
return $this->error($coupon, $log);
}
return $this->success($coupon, $log);
}
}