"页面转发", 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() { } }