Browse Source

优惠券修改

master
liangyuyan 5 years ago
parent
commit
16dbc150bd
  1. 29
      app/Admin/Controllers/v3/CouponController.php
  2. 30
      app/Admin/Controllers/v3/StoreController.php
  3. 139
      app/Console/Commands/MigrateCoupon.php
  4. 23
      app/Console/Commands/MigrateCouponReceive.php
  5. 2
      app/Console/Commands/MigrateCouponUse.php
  6. 80
      app/Console/Commands/MigrateFePrint.php
  7. 80
      app/Console/Commands/MigrateMarketData.php
  8. 143
      app/Console/Commands/MigrateStore.php
  9. 2
      app/Models/v3/CouponReceiveType.php

29
app/Admin/Controllers/v3/CouponController.php

@ -130,20 +130,16 @@ class CouponController extends AdminController
$builder = CouponModel::with('receiveType');
return Form::make($builder, function (Form $form) {
$receiveTypeId = 0;
$startTime = null;
$endTime = null;
$usableStartTime = null;
$usableEndTime = null;
if($form->isEditing()){
$id = $form->getKey();
// 查询已选择的领取方式
$receiveType = ReceiveTypeModel::getReceiveTypeOne([['coupon_id','=',$id]],'receive_type');
$receiveTypeId = $receiveType ? $receiveType->receive_type : $this->receive_type ;
$startTime = date('Y-m-d H:i:s',$form->model()->start_time);
$endTime = date('Y-m-d H:i:s',$form->model()->end_time);
$usableStartTime = date('Y-m-d H:i:s',$form->model()->usable_start_time);
$usableEndTime = date('YmdHis',$form->model()->usable_end_time);
$receiveTypeId = $receiveType && !empty($receiveType->receive_type) ? $receiveType->receive_type : 0;
// $startTime = date('Y-m-d H:i:s',$form->model()->start_time);
// $endTime = date('Y-m-d H:i:s',$form->model()->end_time);
// $usableStartTime = date('Y-m-d H:i:s',$form->model()->usable_start_time);
// $usableEndTime = date('YmdHis',$form->model()->usable_end_time);
// dd($usableEndTime);
}
@ -155,7 +151,7 @@ class CouponController extends AdminController
$form->radio('discount_type')->options(CouponModel::$_DISCOUNTTYPE)->default(1);
$form->number('inventory')->required()->type('number')->attribute('min', 1)->default(1);
$form->number('weigh')->type('number')->attribute('min', 0)->default(0);
$form->radio('is_new_user')->options(CouponModel::$_ISNEWUSER)->default(2)->disable();
$form->hidden('is_new_user')->options(CouponModel::$_ISNEWUSER)->default(2);
});
@ -193,7 +189,7 @@ class CouponController extends AdminController
$form->column(12,function(Form $form){
$form->tags('activity_available','可用活动')->options(CouponModel::$_ACTIVITY_AVAILABLE);
$form->tags('tags','标签')->options(['新人专享','满39减10','满19减5']);
$form->text('remark')->maxLength(500,'最多只能输入500个字');
$form->text('remark')->maxLength(500,'最多只能输入500个字')->default('');
});
/* 页面按钮 */
@ -204,18 +200,17 @@ class CouponController extends AdminController
/* 不显示字段 */
$form->hidden('id');
// $form->text('usable_number')->width(2)->default(1)->disable();
$form->saving(function (Form $form){
// var_dump($form->usable_start_time);
// dd($form->receive_type);
if( $form->discount_type == 2 && ($form->discounts <= 0 || $form->discounts >= 10)){
return $form->error('优惠金额请输入1~10之间的数字');
}
// $this->receive_type = $form->receive_type;
$form->deleteInput('receive_type');
$form->activity_available = empty($form->input('activity_available'))? [] : $form->input('activity_available');
$form->tags = empty($form->input('tags'))? [] : $form->input('tags');
$form->tags = empty($form->input('tags'))? [] : $form->input('tags');
$form->remark = empty($form->input('remark')) ? '' : $form->input('remark');
});
$form->saved(function (Form $form, $result){

30
app/Admin/Controllers/v3/StoreController.php

@ -190,7 +190,7 @@ class StoreController extends AdminController
$form->column(6, function (Form $form) use($marketList,$categoryList){
$form->hidden('id');
$form->number('mm_user_id')->help('市场经理的懒ID');
$form->select('market_id')->required()->options($marketList);
$form->select('market_id')->required()->options($marketList)->help('谨慎选择所属市场,添加成功后不能修改所属市场,因为会影响商品所属市场!');
$form->select('category_id')->options($categoryList);
$form->text('name')->required()->maxLength(50);
$form->image('logo')->autoUpload()->required();
@ -224,9 +224,9 @@ class StoreController extends AdminController
$form->number('user_id')->required()->min(0);
$form->time('time1','时间段一开始')->required()->format('HH:mm');
$form->time('time2','时间段一结束')->required()->format('HH:mm')->rules('after:time1',['after'=>'选择的时间必须比时间段一开始时间晚']);
$form->time('time3','时间段二开始')->format('HH:mm')->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间晚']);
$form->time('time4','时间段二结束')->format('HH:mm')->rules('after:time3',['after'=>'选择的时间必须比时间段二开始时间晚']);
// $form->timeRange('time1','time2','营业时间段一')->required();
$form->time('time3','时间段二开始')->format('HH:mm');
$form->time('time4','时间段二结束')->format('HH:mm');
// $form->timeRange('time1','time2','营业时间段一')->required();->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间晚'])
// $form->timeRange('time3','time4','营业时间段二')->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间大']);
});
$form->column(12, function (Form $form) {
@ -242,6 +242,28 @@ class StoreController extends AdminController
$form->saving(function(Form $form){
$id = $form->getKey();
$adminId = $form->input('admin_id');
$marketId = $form->input('market_id');
$time1 = $form->input('time1');
$time2 = $form->input('time2');
$time3 = $form->input('time3');
$time4 = $form->input('time4');
if(!empty($time1) && !empty($time2) && (!empty($time3) || !empty($time4))){
if($time3 && empty($time4)){
return $form->error('请选择时间段二的结束时间!');
}else if($time4 && empty($time3)){
return $form->error('请选择时间段二的开始时间!');
}else if(str_replace(':', '', $time3) <= str_replace(':', '', $time2)){
return $form->error('时间段二的开始时间 必须大于 时间段一的结束时间!');
}else if(str_replace(':', '', $time4) <= str_replace(':', '', $time3)){
return $form->error('时间段二的结束时间 必须大于 时间段二的开始时间!');
}
}
if($form->isEditing() && !empty($marketId) && $marketId != $form->model()->market_id){
return $form->error('不能更换市场,会影响店铺下商品所属市场!');
}
if(!empty($id) && !empty($adminId)){
$user = UserModel::getUserInfo($adminId,'id');
if(empty($user)){

139
app/Console/Commands/MigrateCoupon.php

@ -1,139 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class MigrateCoupon extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrateData:coupon';
/**
* The console command description.
*
* @var string
*/
protected $description = 'migrate 迁移优惠券数据';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$oldSetTableName = 'ims_system_coupon_setting';
$oldTableName = 'ims_system_coupon_user';
$oldTypeTableName = 'ims_system_coupon_user_receivetype';
$newSetTableName = 'lanzu_coupon_setting';
$newTableName = 'lanzu_coupon';
$newTypeTableName = 'lanzu_coupon_receive_type';
// 判断表是否存在
if(!Schema::hasTable($oldTableName)){
var_dump('旧表不存在');
return 0;
}
if(!Schema::hasTable($newTableName)){
var_dump('新表不存在');
return 0;
}
$oldSetData = DB::table($oldSetTableName)->get();
$oldData = DB::table($oldTableName)->get();
$oldTypeData = DB::table($oldTypeTableName)->get();
$bar = $this->output->createProgressBar(count($oldData));
$bar->start();
$newSetData = [];
$newData = [];
$newTypeData = [];
foreach ($oldSetData as $key => $value) {
$newSetData[] = [
'id' => $value->id,
'name' => $value->name ?? 0,
'category' => $value->category ?? 0,
'value' => $value->value ?? 0,
'desc' => $value->desc ?? '',
'sort' => $value->sort ?? 0,
'status' => $value->status ?? 0,
'created_at' => time(),
'updated_at' => time(),
];
}
foreach ($oldData as $key => $value) {
$newData[] = [
'id' => $value->id,
'status' => $value->status ?? 0,
'active_type' => $value->active_type ?? 0,
'type' => $value->type ?? 0,
'title' => $value->title ?? '',
'introduce' => $value->introduce ?? '',
'start_time' => $value->start_time ?? 0,
'end_time' => $value->end_time,
'full_amount' => $value->full_amount,
'discounts' => $value->discounts ?? 0,
'is_new_user' => $value->is_new_user ?? 0,
'inventory' => $value->inventory,
'inventory_use' => $value->inventory_use ?? 0,
'market_ids' => json_encode([]),
'category_ids' => json_encode([]),
'category' => $value->category ?? 0,
'discount_type' => $value->discount_type ?? 0,
'activity_available' => json_encode([]),
'weigh' => $value->weigh ?? 0,
'usable_number' => $value->usable_number ?? 0,
'usable_start_time' => $value->usable_start_time ?? 0,
'usable_end_time' => $value->usable_end_time ?? 0,
'remark' => $value->remark ?? 0,
'add_user_id' => $value->add_user_id ?? 0,
'update_user_id' => $value->update_user_id ?? 0,
'tags' => json_encode([]),
'created_at' => $value->addtime ?? 0,
'updated_at' => time(),
'deleted_at' => $value->status == -1 ? time() : $value->deleted_at ?? null,
];
}
foreach ($oldTypeData as $key => $value) {
$newTypeData[] = [
'id' => $value->id,
'coupon_id' => $value->system_coupon_user_id ?? 0,
'receive_type' => $value->receive_type ?? 0,
'one_receive_number' => $value->one_receive_number ?? 0,
'created_at' => $value->add_time ?? 0,
'updated_at' => time(),
];
$bar->advance();
}
// insert new data to new table
DB::table($newSetTableName)->insert($newSetData);
DB::table($newTableName)->insert($newData);
DB::table($newTypeTableName)->insert($newTypeData);
$bar->finish();
return 0;
}
}

23
app/Console/Commands/MigrateCouponReceive.php

@ -41,7 +41,9 @@ class MigrateCouponReceive extends Command
{
$oldTableName = 'ims_system_coupon_user_receive';
$newTableName = 'lanzu_coupon_receive_copy';
$newTableName = 'lanzu_coupon_receive';
$newCouponName = 'lanzu_coupon';
// 判断表是否存在
if(!Schema::hasTable($oldTableName)){
var_dump('旧表不存在');
@ -52,7 +54,7 @@ class MigrateCouponReceive extends Command
return 0;
}
$oldData = DB::table($oldTableName)->get();
$couponData = DB::table($newCouponName)->get();
$bar = $this->output->createProgressBar(count($oldData));
$bar->start();
@ -83,6 +85,23 @@ class MigrateCouponReceive extends Command
// insert new data to new table
DB::table($newTableName)->insert($newData);
// 优惠券添加的字段设置默认值
foreach($couponData as $k => $v){
$upData = [
'category' => empty($v->category)? 1 : $v->category,
'category_ids' => empty($v->category_ids)? '[]' : $v->category_ids,
'market_ids' => empty($v->market_ids)? '[]' : $v->market_ids,
'is_new_user' => empty($v->is_new_user)? 2 : $v->is_new_user,
'type' => empty($v->type)? 1 : $v->type,
'activity_available' => empty($v->activity_available)? '[]' : $v->activity_available,
'tags' => empty($v->tags)? '[]' : $v->tags,
'remark' => empty($v->remark)? '' : $v->remark,
'created_at' => empty($v->created_at)? time() : $v->created_at,
'updated_at' => time(),
];
DB::table($newCouponName)->where('id',$v->id)->update($upData);
}
$bar->finish();
return 0;
}

2
app/Console/Commands/MigrateCouponUse.php

@ -41,7 +41,7 @@ class MigrateCouponUse extends Command
{
$oldTableName = 'ims_system_coupon_user_use';
$newTableName = 'lanzu_coupon_use_copy';
$newTableName = 'lanzu_coupon_use';
// 判断表是否存在
if(!Schema::hasTable($oldTableName)){
var_dump('旧表不存在');

80
app/Console/Commands/MigrateFePrint.php

@ -1,80 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class MigrateFePrint extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrateData:fePrint';
/**
* The console command description.
*
* @var string
*/
protected $description = 'migrate 迁移打印机数据';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$oldTableName = 'ims_cjdc_feprint';
$newTableName = 'lanzu_feprint';
// 判断表是否存在
if(!Schema::hasTable($oldTableName)){
var_dump('旧表不存在');
return 0;
}
if(!Schema::hasTable($newTableName)){
var_dump('新表不存在');
return 0;
}
$oldData = DB::table($oldTableName)->get();
$bar = $this->output->createProgressBar(count($oldData));
$bar->start();
$newData = [];
foreach ($oldData as $key => $value) {
$newData[] = [
'id' => $value->id,
'name' => $value->name ?? '',
'sn' => $value->sn ?? '',
'market_id' => $value->market_id ?? 0,
'simnum' => $value->simnum ?? 0 ,
'addtime' => $value->addtime ?? 0,
'status' => $value->status ?? 0,
'created_at' => $value->addtime ? strtotime($value->addtime) : 0,
'updated_at' => time(),
];
$bar->advance();
}
DB::table($newTableName)->insert($newData);
$bar->finish();
return 0;
}
}

80
app/Console/Commands/MigrateMarketData.php

@ -1,80 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class MigrateMarketData extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrateData:market';
/**
* The console command description.
*
* @var string
*/
protected $description = 'migrate market data';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
// get old data from old table
$oldData = DB::table('ims_cjdc_market')->get();
$bar = $this->output->createProgressBar(count($oldData));
$bar->start();
$newData = [];
foreach ($oldData as $key => $value) {
$coordinates = explode(',', $value->coordinates);
$newData[] = [
'id' => $value->id,
'mp_id' => $value->mp_id ?? 0,
'name' => $value->name ?? '',
'logo' => $value->logo ?? '',
'introduce' => $value->introduce ?? '',
'imgs' => $value->imgs ?? '',
'province_id' => 2162,
'city_id' => 2163,
'region_id' => 0,
'address' => $value->address ?? '',
'tel' => $value->tel ?? '',
'lat' => $coordinates[0] ?? '',
'lng' => $coordinates[1] ?? '',
'status' => $value->status ?? 1,
'sort' => $value->sort ?? 1,
'created_at' => $value->addtime ? strtotime($value->addtime) : 0,
'updated_at' => time(),
];
$bar->advance();
}
// insert new data to new table
DB::table('lanzu_market')->insert($newData);
$bar->finish();
return 0;
}
}

143
app/Console/Commands/MigrateStore.php

@ -1,143 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class MigrateStore extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrateData:store';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command 迁移店铺数据';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$oldTableName = 'ims_cjdc_store';
$newTableName = 'lanzu_store';
// $storeImgPath = 'QR_code/code_store_img/wx_store_';/* 商户小程序码 */
// $storePayPath = 'QR_code/code_pay_img/wx_pay_';/* 收银二维码 */
// 判断表是否存在
if(!Schema::hasTable($oldTableName)){
var_dump('旧表不存在');
return 0;
}
if(!Schema::hasTable($newTableName)){
var_dump('新表不存在');
return 0;
}
$oldData = DB::table($oldTableName)->orderBy('id','desc')->get();
$bar = $this->output->createProgressBar(count($oldData));
$bar->start();
$startTime = time();
$error = [];
$newData = [];
foreach ($oldData as $key => $value){
$storeId = $value->id;
// 判断是否存在
$exist = DB::table($newTableName)->where('id',$storeId)->exists();
if($exist){
continue;
}
$storeData =[
'id'=>$storeId,
'market_id'=>$value->market_id,
'is_open'=> $value->is_open == 1 ? 1 : 0,
'is_rest'=> $value->is_rest == 1 ? 1 : 0,
'status'=>$value->state,
'category_id'=>$value->md_type,
'user_id'=>$value->user_id,
'admin_id'=>$value->admin_id,
'mm_user_id'=>$value->mm_user_id,
'sort'=>$value->number,
'loudspeaker_imei'=>$value->loudspeaker_imei,
'name'=>$value->name,
'logo'=>$value->logo,
'announcement'=>$value->announcement,
'address' => $value->address,
'business_license'=> ($storeId == 365) ? '' :$value->yyzz,/* 因为365的数据的营业资质数据乱码,目前只有365这个店铺的有问题 */
'zm_img' => $value->zm_img,
'fm_img'=>$value->fm_img,
'tel' => $value->tel,
'link_name'=>$value->link_name,
'link_tel' => $value->link_tel,
'expire_time'=> strtotime($value->rzdq_time),
'time1' => (empty($value->time) || $value->time == 'null')? '': $value->time,
'time2'=> (empty($value->time2) || $value->time2 == 'null')? '': $value->time2,
'time3' => (empty($value->time3) || $value->time3 == 'null')? '': $value->time3,
'time4'=> (empty($value->time4) || $value->time4 == 'null')? '': $value->time4,
'award_money' => $value->award_money,
'sales'=>$value->score,
'grade' => $value->sales,
'code'=>$value->code,
'environment' => $value->environment,
'introduction'=> strip_tags($value->details),
'store_applet_img' => '',
'cash_code_img' => '',
'created_at' => $value->time_add ?strtotime($value->time_add) : 0,
'updated_at' => time(),
];
// 获商户摊号
$stallInfo = '';
$res = preg_match('/[0-9]/', $value->name, $matches, PREG_OFFSET_CAPTURE);
if($res && count($matches)>0){
$stallInfo = substr($value->name,$matches[0][1]);
}
$storeData['stall_info'] = $stallInfo;
// 商户经纬度
if(!empty($value->coordinates)){
$coordinatesArr = explode(',',$value->coordinates);
$storeData['lng'] = $coordinatesArr[1];
$storeData['lat'] = $coordinatesArr[0];
}
$newData = $storeData;
$res = DB::table($newTableName)->insert($newData);
if(!$res){
$error[] = ['id'=>$storeId];
break;
}
$bar->advance();
}
$bar->finish();
var_dump([time()-$startTime]);
var_dump($error);
return 0;
}
}

2
app/Models/v3/CouponReceiveType.php

@ -12,6 +12,8 @@ class CouponReceiveType extends Model
protected $table = 'lanzu_coupon_receive_type';
protected $dateFormat = 'U';
protected $fillable = ['receive_type', 'id', 'coupon_id','one_receive_number'];
public function setting(){
return $this->belongsTo(SettingModel::class,'receive_type','id','inner');
}

Loading…
Cancel
Save