Browse Source

优惠券迁移修改

master
liangyuyan 5 years ago
parent
commit
551595428b
  1. 25
      app/Admin/Controllers/CouponController.php
  2. 27
      app/Admin/bootstrap.php
  3. 2
      app/Models/Coupon.php
  4. 1
      app/Models/CouponReceiveType.php

25
app/Admin/Controllers/CouponController.php

@ -121,7 +121,7 @@ class CouponController extends AdminController
{
return Form::make(new Coupon(), function (Form $form) {
$receiveTypeId = 0;
$startTime = null;
// $startTime = null;
if($form->isEditing()){
$id = $form->getKey();
// 查询已选择的领取方式
@ -136,6 +136,7 @@ class CouponController extends AdminController
$form->hidden('id');
$form->hidden('created_at');
$form->hidden('updated_at');
$form->hidden('receive_type');
/* 编辑字段 */
$form->text('title')->required()->maxLength(255,'最多只能输入500个字');
@ -173,11 +174,18 @@ class CouponController extends AdminController
$form->text('weigh')->width(2)->type('number')->attribute('min', 0)->default(0);
$form->text('remark')->maxLength(500,'最多只能输入500个字');
$form->saved(function (Form $form, $result) {
$form->saving(function (Form $form) use(&$receiveTypeId){
if( $form->discount_type == 2 && $form->discount > 0 && $form->discount < 10){
return $form->error('优惠金额请输入1~10之间的数字');
}
$receiveTypeId = $form->receive_type;
$form->deleteInput('receive_type');
// $form->model()->deleteFiles('receive_type');
});
$form->saved(function (Form $form, $result) use($receiveTypeId){
$id = $form->getKey();
$receiveType = $form->model()->receive_type;
// 判断是否是新增操作
if ($form->isCreating()) {
$id = $result;
@ -188,16 +196,15 @@ class CouponController extends AdminController
}
if($form->isEditing()){
// 删除领取方式
$receiveTypeModel = ReceiveTypeModel::where('system_coupon_user_id',$id)->get();
$receiveTypeModel->delete();
$receiveTypeModel = ReceiveTypeModel::where('system_coupon_user_id',$id)->delete();
}
// 添加领取方式
$receiveModel = new ReceiveTypeModel();
$receiveModel->system_coupon_user_id = $id;
$receiveModel->receive_type = $receiveType;
$receiveModel->receive_type = $receiveTypeId;
// 获取一次可领取数量
$receiveNumber = SettingModel::select('value')->find($receiveType);
$receiveNumber = SettingModel::select('value')->find($receiveTypeId);
$receiveModel->one_receive_number = $receiveNumber ? $receiveNumber['value'] :1;
$receiveModel->save();
});
@ -211,7 +218,7 @@ class CouponController extends AdminController
});
/* 忽略字段 */
$form->ignore(['receive_type']);
// $form->ignore(['receive_type']);
});
}

27
app/Admin/bootstrap.php

@ -67,10 +67,27 @@ JS
return $this->attribute([
'data-floatTwo' => '^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$',
'data-floatTwo-error' => str_replace(
[':attribute', ':floatTwo'],
[$this->label, $bit],
$error ?: "只能输入数字(最多包含两位小数)"
),
'data-floatTwo-error' => "只能输入数字(最多包含两位小数)"
]);
});
/* 验证-选择不同优惠类型时的优惠金额验证 */
Field\Text::macro('discount', function ( ?string $error = null) {
// 前端验证逻辑扩展
Admin::script(
<<<'JS'
Dcat.validator.extend('discount', function ($el) {
$discount_type = $('');
return !(/^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$/.test($el.val()));
});
JS
);
// 同时添加后端验证逻辑,这个可以看需要
// $this->rules('size:'.$length);
return $this->attribute([
'data-discount' => '1',
'data-discount-error' => "只能输入数字"
]);
});

2
app/Models/Coupon.php

@ -6,6 +6,7 @@ use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
use App\Models\CouponSetting as SettingModel;
use App\Models\CouponReceiveType as ReceiveTypeModel;
class Coupon extends Model
{
@ -95,6 +96,7 @@ class Coupon extends Model
$value = $this->updated_at;
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
}
public function getReceiveTypeTextAttribute()
{
$id = $this->getKey();

1
app/Models/CouponReceiveType.php

@ -10,6 +10,7 @@ class CouponReceiveType extends Model
{
use HasDateTimeFormatter;
protected $table = 'ims_system_coupon_user_receivetype';
protected $dateFormat = 'U';
public function setting(){
return $this->belongsTo(SettingModel::class,'receive_type','id','inner');

Loading…
Cancel
Save