'调整了一些bug'

This commit is contained in:
2020-08-21 15:45:30 +08:00
parent 1f2c1c0055
commit 60b1518028
16 changed files with 103 additions and 35 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Admin\Controllers\Coupon; namespace App\Admin\Controllers\Coupon;
use App\Admin\Exporters\CouponExport; use App\Admin\Exporters\CouponExport;
use App\Models\ActivityRule;
use App\Models\Coupon; use App\Models\Coupon;
use App\Models\User; use App\Models\User;
use Encore\Admin\Controllers\AdminController; use Encore\Admin\Controllers\AdminController;
@@ -43,12 +44,7 @@ class IndexController extends AdminController
->get() ->get()
->pluck('nickname', 'id'); ->pluck('nickname', 'id');
$filter->equal('user_id', '渠道')->select($users); $filter->equal('user_id', '渠道')->select($users);
$filter->equal('thirdPartyGoodsId', '优惠政策')->select([ $filter->equal('thirdPartyGoodsId', '优惠政策')->select(ActivityRule::pluck('title', 'code'));
'YSD-full100-10' => '100减10元',
'YSD-full100-25' => '100减25元',
'YSD-full100-50' => '100减50元',
'YSD-full200-100' => '200减100元',
]);
}); });
$filter->column(1 / 2, function ($filter) { $filter->column(1 / 2, function ($filter) {
$filter->like('redemptionCode', '平安券编号'); $filter->like('redemptionCode', '平安券编号');
@@ -59,6 +55,8 @@ class IndexController extends AdminController
}); });
}); });
}, '网点名称'); }, '网点名称');
$filter->equal('type', '类型')->select(Coupon::TYPES);
}); });
}); });
@@ -66,6 +64,12 @@ class IndexController extends AdminController
$grid->column('渠道')->display(function () { $grid->column('渠道')->display(function () {
return $this->user->nickname; return $this->user->nickname;
}); });
$grid->column('type', '类型')
->using(Coupon::TYPES)
->label([
'1' => 'info',
'2' => 'success',
]);
$grid->column('网点名称/编号')->display(function () { $grid->column('网点名称/编号')->display(function () {
return $this->outlet ? $this->outlet->nickname : $this->outletId; return $this->outlet ? $this->outlet->nickname : $this->outletId;

View File

@@ -25,6 +25,7 @@ class IndexController extends AdminController
protected function grid() protected function grid()
{ {
$grid = new Grid(new Coupon); $grid = new Grid(new Coupon);
$grid->model()->where('profit', '>', 0);
$grid->disableCreateButton(); $grid->disableCreateButton();
$grid->disableBatchActions(false); $grid->disableBatchActions(false);
@@ -62,6 +63,7 @@ class IndexController extends AdminController
->where('type', 'pingan') ->where('type', 'pingan')
->get() ->get()
->pluck('nickname', 'id'); ->pluck('nickname', 'id');
$filter->equal('user_id', '渠道')->select($users); $filter->equal('user_id', '渠道')->select($users);
}); });
$filter->column(1 / 2, function ($filter) { $filter->column(1 / 2, function ($filter) {

View File

@@ -59,6 +59,7 @@ class IndexController extends AdminController
unset($in_source['json']); unset($in_source['json']);
unset($in_source['query']['merchantSign']); unset($in_source['query']['merchantSign']);
unset($in_source['query']['merchantCert']); unset($in_source['query']['merchantCert']);
return $in_source; return $in_source;
}); });
// $grid->column('out_source', '返回信息'); // $grid->column('out_source', '返回信息');
@@ -72,7 +73,8 @@ class IndexController extends AdminController
unset($out_source['merchantCert']); unset($out_source['merchantCert']);
unset($out_source['serverCert']); unset($out_source['serverCert']);
unset($out_source['serverSign']); unset($out_source['serverSign']);
unset($out_source['data']);
// unset($out_source['data']);
return $out_source; return $out_source;
}); });
$grid->column('created_at', '提交时间'); $grid->column('created_at', '提交时间');

View File

@@ -201,7 +201,7 @@ class IndexController extends AdminController
$form->text('PaOutletId', '平安网点id'); $form->text('PaOutletId', '平安网点id');
$form->select('type', '项目') $form->select('type', '项目')
->options(['pingan' => '平安券', 'wo' => '沃支付']) ->options(['pingan' => '平安券和自有券', 'wo' => '沃支付'])
->load('parent_id', '/admin/user/parent') ->load('parent_id', '/admin/user/parent')
->required(); ->required();
@@ -224,7 +224,8 @@ class IndexController extends AdminController
} else { } else {
return 0; return 0;
} }
}); })
->help('未选择隶属渠道创建渠道账号,选择隶属渠道创建网点账号');
$form->select('province_id', '行政省份') $form->select('province_id', '行政省份')
->options($province) ->options($province)

View File

@@ -166,10 +166,12 @@ class UserController extends Controller
'redemptionCode' => 'required', 'redemptionCode' => 'required',
'total' => 'required', 'total' => 'required',
'outletId' => 'required', 'outletId' => 'required',
'orderid' => 'nullable|min:10',
], [ ], [
'redemptionCode.required' => '缺少卡券兑换码', 'redemptionCode.required' => '缺少卡券兑换码',
'total.required' => '缺少订单总额', 'total.required' => '缺少订单总额',
'outletId.required' => '缺少网点id', 'outletId.required' => '缺少网点id',
'orderid.min' => '订单id长度不能超过100个字符',
]); ]);
if ($validator->fails()) { if ($validator->fails()) {
@@ -179,10 +181,12 @@ class UserController extends Controller
$redemptionCode = $res['redemptionCode'] ?? ''; //'915400693355'; $redemptionCode = $res['redemptionCode'] ?? ''; //'915400693355';
$total = $res['total'] ?? ''; //订单总额; $total = $res['total'] ?? ''; //订单总额;
$outletId = $res['outletId'] ?? ''; //网点id; $outletId = $res['outletId'] ?? ''; //网点id;
$orderid = $res['orderid'] ?? ''; //订单id;
$redemptionCode = trim($redemptionCode); $redemptionCode = trim($redemptionCode);
$outletId = trim($outletId); $outletId = trim($outletId);
$coupon = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId); $coupon = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId, $orderid);
if (is_string($coupon)) { if (is_string($coupon)) {
return $this->error($coupon, $log); return $this->error($coupon, $log);
} }

View File

@@ -142,14 +142,27 @@ class TestController
*/ */
public function checkcoupon(Request $request) public function checkcoupon(Request $request)
{ {
$user_id = $request->user_id;
$this->user = User::find($user_id);
$data = $this->jiami([
'redemptionCode' => $request->redemptionCode,
'total' => $request->total,
'outletId' => $request->outletId,
'orderid' => $request->orderid,
]);
$url = 'http://pac.ysd-bs.com/api/V1/user/freezecoupon';
$res = $this->http($data, $url);
return $res;
$redemptionCode = $request->redemptionCode; $redemptionCode = $request->redemptionCode;
$total = $request->total; $total = $request->total;
$outletId = $request->outletId; $outletId = $request->outletId;
$user_id = $request->user_id; $orderid = $request->orderid ?? '';
$this->user = User::find($user_id); $res = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId, $orderid);
$res = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId);
if (is_string($res)) { if (is_string($res)) {
return $this->error($res); return $this->error($res);

View File

@@ -37,6 +37,8 @@ class ConponCallbackListener implements ShouldQueue
'url' => $user->callback, 'url' => $user->callback,
]; ];
$error = false;
if ($response->getStatusCode() == 200) { if ($response->getStatusCode() == 200) {
$body = $response->getBody(); $body = $response->getBody();
$result = json_decode($body->getContents(), true); $result = json_decode($body->getContents(), true);
@@ -49,9 +51,13 @@ class ConponCallbackListener implements ShouldQueue
$data['status'] = 0; $data['status'] = 0;
$data['source'] = ''; $data['source'] = '';
$data['remark'] = '接口错误'; $data['remark'] = '接口错误';
$error = true;
} }
ActivityCouponLog::create($data); ActivityCouponLog::create($data);
if ($error) {
throw new RuntimeException($data['remark']);
}
} }
} }

View File

@@ -90,6 +90,11 @@ class Activity extends Model
} }
public function canGrant()
{
return $this->status;
}
//发券 //发券
public function grant($mobile, $outletId = null) public function grant($mobile, $outletId = null)
{ {

View File

@@ -21,6 +21,7 @@ class Coupon extends Model
self::TYPE_YSD => '自有券', self::TYPE_YSD => '自有券',
]; ];
//状态
public function getStatusTextAttribute() public function getStatusTextAttribute()
{ {
switch ($this->status) { switch ($this->status) {

View File

@@ -32,6 +32,9 @@ class Init
//查询返回卡券信息 //查询返回卡券信息
public $query_coupon; public $query_coupon;
//订单id
public $orderid;
//设置渠道 //设置渠道
public function setUser($user) public function setUser($user)
{ {
@@ -40,6 +43,14 @@ class Init
return $this; return $this;
} }
//设置渠道
public function setOrderId($orderid)
{
$this->orderid = $orderid;
return $this;
}
//设置核销码 //设置核销码
public function setCode($redemptionCode) public function setCode($redemptionCode)
{ {
@@ -125,13 +136,19 @@ class Init
//统一门店 相同金额 3分钟之内看作是一笔订单 //统一门店 相同金额 3分钟之内看作是一笔订单
public function CheckCount() public function CheckCount()
{ {
//排除本时生活渠道 if ($this->orderid) {
$check_count = Coupon::where('orderid', $this->orderid)
->where('outletId', $this->outletId)
->where('status', 2)
->where('created_at', '>=', now()->subMinutes(3)->format('Y-m-d H:i:s'))
->count();
} else {
$check_count = Coupon::where('outletId', $this->outletId) $check_count = Coupon::where('outletId', $this->outletId)
->where('total', $this->total) ->where('total', $this->total)
->where('status', 2) ->where('status', 2)
->where('created_at', '>=', now()->subMinutes(3)->format('Y-m-d H:i:s')) ->where('created_at', '>=', now()->subMinutes(3)->format('Y-m-d H:i:s'))
->count(); ->count();
}
$count = floor($this->total / 100); $count = floor($this->total / 100);

View File

@@ -21,6 +21,7 @@ class PinganAction extends Init implements CouponContracts
->setUser($this->user) ->setUser($this->user)
->setOutletId($this->outletId) ->setOutletId($this->outletId)
->setTotal($this->total) ->setTotal($this->total)
->setOrderId($this->orderid)
->start(); ->start();
} }

View File

@@ -79,11 +79,11 @@ class YsdAction extends Init implements CouponContracts
*/ */
public function start() public function start()
{ {
return $res = (new YsdVerification) return $res = (new YsdVerification)->setCode($this->redemptionCode)
->setCode($this->redemptionCode)
->setUser($this->user) ->setUser($this->user)
->setOutletId($this->outletId) ->setOutletId($this->outletId)
->setTotal($this->total) ->setTotal($this->total)
->setOrderId($this->orderid)
->start(); ->start();
} }

View File

@@ -116,6 +116,7 @@ class Verification extends PingAnInit
'user_id' => $this->user->id, 'user_id' => $this->user->id,
'type' => Coupon::TYPE_PINGAN, 'type' => Coupon::TYPE_PINGAN,
'outletId' => $this->outletId, 'outletId' => $this->outletId,
'orderid' => $this->orderid,
'PaOutletId' => $this->queryData['PaOutletId'], 'PaOutletId' => $this->queryData['PaOutletId'],
'redemptionCode' => $this->redemptionCode, 'redemptionCode' => $this->redemptionCode,
'productId' => $this->queryData['productId'], 'productId' => $this->queryData['productId'],

View File

@@ -18,6 +18,10 @@ class YsdGrant extends Init
return '发券失败,没有找到这个活动。'; return '发券失败,没有找到这个活动。';
} }
if (!$activity->status) {
return '发券失败,活动已经关闭。';
}
$outlet = User::where('outlet_id', $this->outletId)->first(); $outlet = User::where('outlet_id', $this->outletId)->first();
if (!$outlet) { if (!$outlet) {
return '发券失败,未查询到此网点信息。'; return '发券失败,未查询到此网点信息。';

View File

@@ -166,6 +166,7 @@ class YsdVerification extends Init
'user_id' => $this->user->id, 'user_id' => $this->user->id,
'type' => Coupon::TYPE_YSD, 'type' => Coupon::TYPE_YSD,
'outletId' => $this->outletId, 'outletId' => $this->outletId,
'orderid' => $this->orderid,
'PaOutletId' => '', 'PaOutletId' => '',
'redemptionCode' => $this->redemptionCode, 'redemptionCode' => $this->redemptionCode,
'thirdPartyGoodsId' => $this->query_coupon->activity->rule->code, 'thirdPartyGoodsId' => $this->query_coupon->activity->rule->code,
@@ -179,6 +180,7 @@ class YsdVerification extends Init
]; ];
$this->coupon = Coupon::create($couponData); $this->coupon = Coupon::create($couponData);
DB::commit(); DB::commit();
return $this->coupon; return $this->coupon;

View File

@@ -107,13 +107,17 @@ class Coupon
} }
/** /**
* Notes: 核销卡券 * Notes: description
* @Author: 玄尘 * @Author: 玄尘
* @Date : 2020/6/29 15:24 * @Date : 2020/8/21 13:33
* @param $user * @param \App\Models\User $user 渠道
* @param string $redemptionCode 要核销的券码
* @param float $total 订单金额
* @param string $outletId 网点id
* @param string $orderid 订单id
* @return string * @return string
*/ */
public static function Redemption($user, $redemptionCode, $total, $outletId) public static function Redemption(User $user, string $redemptionCode, float $total, string $outletId, string $orderid = '')
{ {
try { try {
@@ -126,6 +130,7 @@ class Coupon
->setCode($redemptionCode) ->setCode($redemptionCode)
->setTotal($total) ->setTotal($total)
->setOutletId($outletId) ->setOutletId($outletId)
->setOrderId($orderid)
->start(); ->start();
} catch (\Exception $e) { } catch (\Exception $e) {