'调整了一些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;
use App\Admin\Exporters\CouponExport;
use App\Models\ActivityRule;
use App\Models\Coupon;
use App\Models\User;
use Encore\Admin\Controllers\AdminController;
@@ -43,12 +44,7 @@ class IndexController extends AdminController
->get()
->pluck('nickname', 'id');
$filter->equal('user_id', '渠道')->select($users);
$filter->equal('thirdPartyGoodsId', '优惠政策')->select([
'YSD-full100-10' => '100减10元',
'YSD-full100-25' => '100减25元',
'YSD-full100-50' => '100减50元',
'YSD-full200-100' => '200减100元',
]);
$filter->equal('thirdPartyGoodsId', '优惠政策')->select(ActivityRule::pluck('title', 'code'));
});
$filter->column(1 / 2, function ($filter) {
$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 () {
return $this->user->nickname;
});
$grid->column('type', '类型')
->using(Coupon::TYPES)
->label([
'1' => 'info',
'2' => 'success',
]);
$grid->column('网点名称/编号')->display(function () {
return $this->outlet ? $this->outlet->nickname : $this->outletId;

View File

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

View File

@@ -15,7 +15,7 @@ class IndexController extends AdminController
/**
* Notes:
* @Author: <C.Jason>
* @Date: 2019/9/18 14:50
* @Date : 2019/9/18 14:50
* @return Grid
*/
protected function grid()
@@ -59,6 +59,7 @@ class IndexController extends AdminController
unset($in_source['json']);
unset($in_source['query']['merchantSign']);
unset($in_source['query']['merchantCert']);
return $in_source;
});
// $grid->column('out_source', '返回信息');
@@ -72,7 +73,8 @@ class IndexController extends AdminController
unset($out_source['merchantCert']);
unset($out_source['serverCert']);
unset($out_source['serverSign']);
unset($out_source['data']);
// unset($out_source['data']);
return $out_source;
});
$grid->column('created_at', '提交时间');

View File

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

View File

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

View File

@@ -142,14 +142,27 @@ class TestController
*/
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;
$total = $request->total;
$outletId = $request->outletId;
$user_id = $request->user_id;
$this->user = User::find($user_id);
$res = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId);
$orderid = $request->orderid ?? '';
$res = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId, $orderid);
if (is_string($res)) {
return $this->error($res);
@@ -196,7 +209,7 @@ class TestController
public function jiemi($value)
{
$iv = substr($this->user->des3key, 0, 8);
$ret = openssl_decrypt($value, 'DES-EDE3-CBC', $this->user->des3key, 0, $iv);
$ret = openssl_decrypt($value, 'DES - EDE3 - CBC', $this->user->des3key, 0, $iv);
if (false === $ret) {
return openssl_error_string();
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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