From c8f1c0533b29dee371a9cce735a871757248e349 Mon Sep 17 00:00:00 2001 From: 何书鹏 <heshupeng@bronet.cn> Date: Mon, 21 Feb 2022 15:43:22 +0800 Subject: [PATCH] 注册送优惠券 --- application/admin/lang/zh-cn/coupon.php | 7 ++++++- application/admin/model/Coupon.php | 23 ++++++++++++++++++++++- application/admin/view/coupon/edit.html | 21 +++++++++++++++++++++ application/api/controller/User.php | 13 +++++++++++++ public/assets/js/backend/coupon.js | 3 +++ 5 files changed, 65 insertions(+), 2 deletions(-) diff --git a/application/admin/lang/zh-cn/coupon.php b/application/admin/lang/zh-cn/coupon.php index e90a899..26057d5 100644 --- a/application/admin/lang/zh-cn/coupon.php +++ b/application/admin/lang/zh-cn/coupon.php @@ -8,5 +8,10 @@ return [ 'Send_number' => '每次发放数量', 'Days' => '领取后过期天数', 'Createtime' => '创建时间', - 'Endtime' => '有效日期' + 'Endtime' => '有效日期', + 'Register_send_switch' => '注册送优惠券开关', + 'Register_send_switch 0' => '关', + 'Register_send_switch 1' => '开', + 'Register_send_starttime' => '注册送优惠券开始时间', + 'Register_send_endtime' => '注册送优惠券结束时间', ]; diff --git a/application/admin/model/Coupon.php b/application/admin/model/Coupon.php index c11869c..fbc8e11 100644 --- a/application/admin/model/Coupon.php +++ b/application/admin/model/Coupon.php @@ -25,7 +25,8 @@ class Coupon extends Model // 追加属性 protected $append = [ - 'endtime_text' + 'endtime_text', + 'register_send_switch_text' ]; @@ -44,5 +45,25 @@ class Coupon extends Model return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } + public function getRegisterSendSwitchList() + { + return ['0' => __('Register_send_switch 0'), '1' => __('Register_send_switch 1')]; + } + + public function getRegisterSendSwitchTextAttr($value, $data) + { + $value = $value ? $value : (isset($data['register_send_switch']) ? $data['register_send_switch'] : ''); + $list = $this->getRegisterSendSwitchList(); + return isset($list[$value]) ? $list[$value] : ''; + } + + protected function setRegisterSendStarttimeAttr($value) + { + return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); + } + protected function setRegisterSendEndtimeAttr($value) + { + return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); + } } diff --git a/application/admin/view/coupon/edit.html b/application/admin/view/coupon/edit.html index 6ceb35a..d61b706 100644 --- a/application/admin/view/coupon/edit.html +++ b/application/admin/view/coupon/edit.html @@ -42,6 +42,27 @@ <input id="c-endtime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[endtime]" type="text" value="{:$row.endtime?datetime($row.endtime):''}"> </div> </div> + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Register_send_switch')}:</label> + <div class="col-xs-12 col-sm-8"> + <input id="c-register_send_switch" name="row[register_send_switch]" type="hidden" value="0"> + <a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-register_send_switch" data-yes="1" data-no="0" > + <i class="fa fa-toggle-on text-success {eq name="$row.register_send_switch" value="0"}fa-flip-horizontal text-gray{/eq} fa-2x"></i> + </a> + </div> + </div> + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Register_send_starttime')}:</label> + <div class="col-xs-12 col-sm-8"> + <input id="c-register_send_starttime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[register_send_starttime]" type="text" value="{:$row.register_send_starttime?datetime($row.register_send_starttime):''}"> + </div> + </div> + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Register_send_endtime')}:</label> + <div class="col-xs-12 col-sm-8"> + <input id="c-register_send_endtime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[register_send_endtime]" type="text" value="{:$row.register_send_endtime?datetime($row.register_send_endtime):''}"> + </div> + </div> <div class="form-group layer-footer"> <label class="control-label col-xs-12 col-sm-2"></label> <div class="col-xs-12 col-sm-8"> diff --git a/application/api/controller/User.php b/application/api/controller/User.php index 655c6c0..47bb304 100644 --- a/application/api/controller/User.php +++ b/application/api/controller/User.php @@ -126,6 +126,19 @@ class User extends Api } if ($userid){ $third->isUpdate(false)->save(['openid'=>$wxapi['openid'],'user_id'=>$userid,'session_key'=>$wxapi['session_key']]); + // 注册送优惠券 + $coupon = Db::name('coupon')->find(); + $time = time(); + if($coupon['register_send_switch'] == '1' && $time >= $coupon['register_send_starttime'] && $time <= $coupon['register_send_endtime']){ + UserCoupon::create([ + 'user_id' => $userid, + 'coupon_id' => $coupon['id'], + 'name' => $coupon['name'], + 'price' => $coupon['price'], + 'full_price' => $coupon['full_price'], + 'endtime' => $time+$coupon['days']*86400 + ]); + } $this->success('登录成功',['token'=>$this->auth->getToken(),'user_type'=>$this->auth->user_type]); }else{ $this->error('注册失败'); diff --git a/public/assets/js/backend/coupon.js b/public/assets/js/backend/coupon.js index 4145515..8d2ba9f 100644 --- a/public/assets/js/backend/coupon.js +++ b/public/assets/js/backend/coupon.js @@ -37,6 +37,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin {field: 'days', title: __('Days')}, {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, {field: 'endtime', title: __('Endtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, + {field: 'register_send_switch', title: __('Register_send_switch'), searchList: {"0":__('Register_send_switch 0'),"1":__('Register_send_switch 1')}, formatter: Table.api.formatter.toggle}, + {field: 'register_send_starttime', title: __('Register_send_starttime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, + {field: 'register_send_endtime', title: __('Register_send_endtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, buttons: [ { -- libgit2 0.24.0