Browse Source

优惠券迁移--修改

master
liangyuyan 5 years ago
parent
commit
038c70cc4f
  1. 152
      app/Admin/Controllers/CouponController.php
  2. 8
      app/Admin/Controllers/CouponTieController.php
  3. 50
      app/Models/Coupon.php
  4. 7
      app/Models/CouponReceiveType.php
  5. 3
      app/Models/CouponSetting.php
  6. 14
      app/Models/StoreType.php
  7. 4
      resources/lang/zh-CN/coupon.php

152
app/Admin/Controllers/CouponController.php

@ -7,8 +7,11 @@ use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;
use App\Models\Coupon as couponModel;
use App\Models\CouponSetting as couponSettingModel;
use App\Models\CouponReceiveType as ReceiveTypeModel;
use App\Models\CouponSetting as SettingModel;
use App\Models\Coupon as CouponModel;
use App\Models\ImsCjdcMarket as marketModel;
use App\Models\StoreType as storeTypeModel;
class CouponController extends AdminController
{
@ -63,31 +66,49 @@ class CouponController extends AdminController
*/
protected function detail($id)
{
return Show::make($id, new Coupon(), function (Show $show) {
$show->id;
return Show::make($id, new Coupon(), function (Show $show) use($id){
// $show->id;
$show->title;
$show->introduce;
$show->start_time;
$show->end_time;
$show->full_amount;
$show->discounts;
$show->is_new_user;
$show->discount_type_text;
$show->inventory;
$show->inventory_use;
$show->type;
$show->market_id;
$show->storetype_id;
$show->category;
$show->active_type;
$show->status;
$show->remark;
$show->weigh;
$show->start_time_text;
$show->end_time_text;
$show->usable_start_time_text;
$show->usable_end_time_text;
$show->active_type_text;
$show->receive_type_text;
$show->type_text;
$show->category_text;
$show->market_id->as(function($marketId){
$text = '全部市场';
if($marketId > 0){
$market = marketModel::select('name')->find($marketId)->toArray();
$text = $market ? $market['name'] : $text ;
}
return $text;
});
$show->storetype_id->as(function($storeTypeId){
$text = '全部店铺类型';
if($storeTypeId > 0){
$storeType = storeTypeModel::select('type_name')->find($storeTypeId)->toArray();
$text = $storeType ? $storeType['type_name'] : $text ;
}
return $text;
});
$show->is_new_user_text;
$show->usable_number;
$show->usable_start_time;
$show->usable_end_time;
$show->discount_type;
$show->created_at;
$show->updated_at;
$show->weigh;
$show->remark;
$show->status_text;
$show->created_at_text;
$show->updated_at_text;
});
}
@ -99,7 +120,24 @@ class CouponController extends AdminController
protected function form()
{
return Form::make(new Coupon(), function (Form $form) {
$form->display('id');
$receiveTypeId = 0;
$startTime = null;
if($form->isEditing()){
$id = $form->getKey();
// 查询已选择的领取方式
$receiveType = ReceiveTypeModel::where('system_coupon_user_id',$id)->first('receive_type');
$receiveTypeId = $receiveType ? $receiveType->receive_type : $receiveTypeId ;
// $startTime = date('Y-m-d H:i:s',$form->model()->start_time);
}
/* 页面按钮 */
$form->disableResetButton();
/* 不显示字段 */
$form->hidden('id');
$form->hidden('created_at');
$form->hidden('updated_at');
/* 编辑字段 */
$form->text('title')->required()->maxLength(255,'最多只能输入500个字');
$form->textarea('introduce')->required();
@ -108,17 +146,19 @@ class CouponController extends AdminController
$form->radio('discount_type')->options(config('coupon.discount_type'))->default(1)->required();
$form->text('inventory')->width(2)->required()->type('number')->attribute('min', 1)->default(1);
$form->datetime('start_time')->width(3)->required();
$form->datetime('start_time')->width(3)->required()
->format('YYYY-MM-DD HH:mm:ss')
->value('2020-08-21 20:20:20')
;
$form->datetime('end_time')->width(3)->required();
$form->datetime('usable_start_time')->width(3)->required();
$form->datetime('usable_end_time')->width(3)->required();
$form->select('active_type')->width(3)->options(config('coupon.active_type'))->default(1);
/* 领取方式 */
$receive = couponSettingModel::select('id','name')->where('category',1)->get()->keyBy('id')->toArray();
$receive = SettingModel::select('id','name')->where('category',1)->get()->keyBy('id')->toArray();
$receive = $this->keyToValue($receive,'id','name');
$form->select('receive_type')->width(3)->options($receive)->default(2);
$form->select('receive_type')->width(3)->options($receive)->value($receiveTypeId > 0? $receiveTypeId : 2);
$form->select('type')->width(3)->options(config('coupon.type'))->default(1)->disable();
$form->select('category')->width(3)->options(config('coupon.category'))->default(1)->disable();
@ -132,13 +172,69 @@ class CouponController extends AdminController
// $form->text('usable_number')->width(2)->default(1)->disable();
$form->text('weigh')->width(2)->type('number')->attribute('min', 0)->default(0);
$form->text('remark')->maxLength(500,'最多只能输入500个字');
$form->display('created_at');
$form->display('updated_at');
$form->saved(function (Form $form, $result) {
$id = $form->getKey();
$receiveType = $form->model()->receive_type;
// 判断是否是新增操作
if ($form->isCreating()) {
$id = $result;
if (! $result) {
return $form->error('数据保存失败');
}
}
if($form->isEditing()){
// 删除领取方式
$receiveTypeModel = ReceiveTypeModel::where('system_coupon_user_id',$id)->get();
$receiveTypeModel->delete();
}
// 添加领取方式
$receiveModel = new ReceiveTypeModel();
$receiveModel->system_coupon_user_id = $id;
$receiveModel->receive_type = $receiveType;
// 获取一次可领取数量
$receiveNumber = SettingModel::select('value')->find($receiveType);
$receiveModel->one_receive_number = $receiveNumber ? $receiveNumber['value'] :1;
$receiveModel->save();
});
$form->deleting(function (Form $form) {
// 获取待删除行数据,这里获取的是一个二维数组
$data = $form->model()->toArray();
$model = couponModel::find($data[0]['id']);
// 修改优惠券状态
$model->status = -1;
$model->save();
});
/* 忽略字段 */
$form->ignore(['receive_type']);
});
}
/**
* Handle the form request.
*
* @param array $input
*
* @return Response
*/
public function handle(array $input)
{
dd($input);
$data = $input;
$coupon = 1;
if($coupon === false){
return $this->error('数据保存失败');
}
return $this->success('数据保存成功', '/coupon');
}
/**
* 组装新数组
*/

8
app/Admin/Controllers/CouponTieController.php

@ -80,12 +80,4 @@ class CouponTieController extends AdminController
->body(new Card(new CouponTieForm()));
}
// /**
// * 服务商信息
// * @return \Illuminate\Http\JsonResponse
// */
// protected function getMpInfo()
// {
// }
}

50
app/Models/Coupon.php

@ -5,14 +5,19 @@ namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
use App\Models\CouponSetting as SettingModel;
class Coupon extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $dateFormat = 'U';
protected $table = 'ims_system_coupon_user';
/* 查询记录数 limit */
protected $perPage = 10;
/* 添加转换字段 */
protected $appends = [
'status_text',
'type_text',
@ -23,7 +28,10 @@ class Coupon extends Model
'start_time_text',
'end_time_text',
'usable_start_time_text',
'usable_end_time_text'
'usable_end_time_text',
'receive_type_text',
'created_at_text',
'updated_at_text'
];
public function getStatusTextAttribute()
@ -62,7 +70,7 @@ class Coupon extends Model
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
}
public function getEndTimeTextAttribute($value)
public function getEndTimeTextAttribute()
{
$value = $this->usable_start_time;
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
@ -72,36 +80,58 @@ class Coupon extends Model
$value = $this->start_time;
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
}
public function getUsableEndTimeTextAttribute($value)
public function getUsableEndTimeTextAttribute()
{
$value = $this->usable_end_time;
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
}
public function getCreatedAtTextAttribute()
{
$value = $this->created_at;
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
}
public function getUpdatedAtTextAttribute()
{
$value = $this->updated_at;
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
}
public function getReceiveTypeTextAttribute()
{
$id = $this->getKey();
$receive = SettingModel::where('receive_type.system_coupon_user_id',$id)
->join('ims_system_coupon_user_receivetype as receive_type','receive_type.receive_type','ims_system_coupon_setting.id','inner')
->first('name');
return $receive ? $receive['name'] : '';
}
// 设置
protected function setStartTimeAttribute($value)
{
return $value === '' ? null : strtotime($value);
$this->attributes['start_time'] = strtotime($value);
}
protected function setEndTimeAttribute($value)
{
return $value === '' ? null : strtotime($value);
$this->attributes['end_time'] = strtotime($value);
}
protected function setUsableStarttimeAttribute($value)
{
return $value === '' ? null : strtotime($value);
$this->attributes['usable_start_time'] = strtotime($value);
}
protected function setUsableEndTimeAttribute($value)
{
return $value === '' ? null : strtotime($value);
$this->attributes['usable_end_time'] = strtotime($value);
}
protected function setAddtimeAttribute($value)
{
return $value === '' ? null : strtotime($value);
$this->attributes['addtime'] = time();
}
protected function setUpdatetimeAttribute($value)
{
$this->attributes['updatetime'] = time();
}
}

7
app/Models/CouponReceiveType.php

@ -3,12 +3,15 @@
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use App\Models\CouponSetting as SettingModel;
use Illuminate\Database\Eloquent\Model;
class CouponReceiveType extends Model
{
use HasDateTimeFormatter;
protected $table = 'ims_system_coupon_receivetype';
protected $table = 'ims_system_coupon_user_receivetype';
public function setting(){
return $this->belongsTo(SettingModel::class,'receive_type','id','inner');
}
}

3
app/Models/CouponSetting.php

@ -3,14 +3,11 @@
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class CouponSetting extends Model
{
use HasDateTimeFormatter;
// use SoftDeletes;
protected $table = 'ims_system_coupon_setting';
}

14
app/Models/StoreType.php

@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
class StoreType extends Model
{
use HasDateTimeFormatter;
protected $table = 'ims_cjdc_storetype';
}

4
resources/lang/zh-CN/coupon.php

@ -36,6 +36,10 @@ return [
'usable_start_time_text' => '可用开始时间',
'usable_end_time_text' => '可用结束时间',
'discount_type_text' => '优惠类型',
'receive_type' => '领取方式',
'receive_type_text' => '领取方式',
'created_at_text' => '创建时间',
'updated_at_text' => '更新时间'
],
'options' => [
],

Loading…
Cancel
Save