| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\admin\models;
- use app\models\Coupon;
- use app\models\CouponAutoSend;
- use yii\base\Model;
- class CouponAutoSendForm extends Model
- {
- public $id;
- public $store_id;
- public $coupon_id;
- public $event;
- public $ext_type;
- public $send_times;
- public $is_delete;
- public $mch_id;
- public $amount;
- public $day_num;
- public $day_count;
- public $money;
- //搜索
- public $search_key;
- public $search_is_show;
- const SCENARIO_ADD = 'add';
- const SCENARIO_EDIT = 'edit';
- const SCENARIO_DEL = 'del';
- const SCENARIO_LIST = 'list';
- const EVENT_TEXT = [
- CouponAutoSend::EVENT_SHARE => "页面转发",
- CouponAutoSend::EVENT_PAY => "购买并付款",
- CouponAutoSend::EVENT_RECHARGE => "充值赠送",
- CouponAutoSend::EVENT_QRCODE => "二维码领取",
- CouponAutoSend::EVENT_NEWUSER => "新人专享",
- CouponAutoSend::EVENT_ORDER => "下单赠送",
- ];
- const EXT_TEXT = [
- CouponAutoSend::EXT_REG => "首次登录",
- CouponAutoSend::EXT_FIRST_ORDER => "完成首单",
- CouponAutoSend::EXT_SECOND_ORDER => "完成次单",
- ];
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['store_id', 'event', 'ext_type', 'send_times', 'is_delete', 'mch_id', 'day_num', 'day_count'], 'integer'],
- [['amount', 'money'], 'number'],
- [['coupon_id'],'string'],
- ['is_delete', 'default', 'value'=> CouponAutoSend::IS_DELETE_NO],
- [['coupon_id', 'event', 'send_times'],'required', 'on'=> [self::SCENARIO_ADD, self::SCENARIO_EDIT]],
- [['id'],'required', 'on'=> [self::SCENARIO_DEL, self::SCENARIO_EDIT]],
- ['id', 'string', 'on' => self::SCENARIO_DEL],
- ['search_key', 'string', 'on' => self::SCENARIO_LIST]
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'Id',
- 'store_id' => '商城',
- 'coupon_id' => '优惠券id',
- 'event' => '触发事件:1=分享,2=购买并付款',
- 'ext_type' => '附加条款',
- 'send_times' => '最多发放次数,0表示不限制',
- 'is_delete' => '是否删除',
- 'mch_id' => '入驻商id',
- 'updated_at' => '更新时间',
- 'amount' => '现金',
- 'day_num' => '单人单日获取数量',
- 'day_count' => '单人总获取量',
- 'money' => '需要现金',
- ];
- }
- public function scenarios()
- {
- $scenarios = parent::scenarios();
- return $scenarios;
- }
-
- public function saveCouponAutoSend()
- {
- if ($this->validate()) {
- $t = \Yii::$app->db->beginTransaction();
- if ($this->scenario == self::SCENARIO_EDIT) {
- $model = CouponAutoSend::findOne(['id' => $this->id]);
- } else {
- $model = new CouponAutoSend();
- }
- $model->attributes = $this->attributes;
- if (!$model->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => $model->getErrorSummary(false)[0]
- ];
- }
- $t->commit();
- return [
- 'code' => 0,
- 'msg' => '保存成功'
- ];
- } else {
- // 验证失败:$errors 是一个包含错误信息的数组
- return [
- 'code' => 1,
- "msg" => $this->getErrorSummary(false)[0]
- ];
- }
- }
- public function searchCouponAutoSend()
- {
- $query = CouponAutoSend::find()->alias('a')
- ->leftJoin(['c' => Coupon::tableName()], 'c.id=a.coupon_id');
- $query->where(['a.is_delete' => CouponAutoSend::IS_DELETE_NO, 'a.store_id' => $this->store_id])->orderBy("a.id desc");
- // 搜索
- if ($this->search_key) {
- $query->andWhere(['like', 'c.name', $this->search_key]);
- }
- // 发放规则
- if ($this->event) {
- $query->andWhere(['a.event' => $this->event]);
- }
- $query->select('a.*, c.name coupon_name');
- $list = pagination_make($query);
- foreach ($list['list'] as &$val) {
- $coupon_ids = json_decode($val['coupon_id'], true);
- $val['coupon'] = Coupon::find()->where(['id' => $coupon_ids])->select('name')->column();
- $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']);
- $val['updated_at'] = date('Y-m-d H:i:s', $val['updated_at']);
- $val['event_text'] = self::EVENT_TEXT[$val['event']];
- $val['ext_text'] = self::EXT_TEXT[$val['ext_type']];
- }
- $type_list = CouponForm::getCouponList();
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => [
- 'data' => $list['list'],
- 'type_list' => $type_list,
- 'pageNo' => $list['pageNo'],
- 'totalCount' => $list['totalCount']
- ]
- ];
- }
- public function delCouponAutoSend()
- {
- if ($this->validate()) {
- $t = \Yii::$app->db->beginTransaction();
- if ($this->scenario !== self::SCENARIO_DEL) {
- return [
- 'code' => 1,
- 'msg' => '删除失败'
- ];
- }
- $model = CouponAutoSend::findOne(['id' => $this->id]);
- $model->is_delete = CouponAutoSend::IS_DELETE_YES;
- if (!$model || !$model->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => $model->getErrorSummary(false)[0]
- ];
- }
- $t->commit();
- return [
- 'code' => 0,
- 'msg' => '删除成功'
- ];
- // 所有输入数据都有效 all inputs are valid
- } else {
- // 验证失败:$errors 是一个包含错误信息的数组
- return [
- 'code' => 1,
- "msg" => $this->getErrorSummary(false)[0]
- ];
- }
- }
-
- public static function getCouponAutoSendList(){
- return CouponAutoSend::find()->where(['is_delete' => CouponAutoSend::IS_DELETE_NO])->orderBy(['id desc'])->select('*')->asArray()->all();
- }
- /**
- * 添加优惠券规则
- * @return \yii\web\Response
- */
- public function getCouponAutoSendAdd() {
-
- }
- }
|