12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- namespace common\models;
- use common\library\Hongbao;
- use Yii;
- class ActivityReceive extends \yii\db\ActiveRecord
- {
- const STATUS_NOT = 0;//未领取
- const STATUS_YES = 1;//已领取
- /**
- * @inheritdoc
- */
- public static function tableName()
- {
- return '{{%activity_receive}}';
- }
- /**
- * @inheritdoc
- */
- public function rules()
- {
- return [
- [['uid', 'activity_id', 'source_id', 'amount', 'receive_at','valid_at'], 'required'],
- [['uid', 'activity_id', 'source_id','receive_at','valid_at','updated_at'], 'integer'],
- [['amount'], 'number'],
- ];
- }
- /**
- * @inheritdoc
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'uid' => '用户id',
- 'activity_id' => '活动编号',
- 'source_id' => '获取来源ID',
- 'amount' => '金额',
- 'receive_at'=>'领取时间',
- 'valid_at'=>'有效时间',
- 'updated_at'=>'最后修改时间',
- ];
- }
- /**
- * @param $building
- * 判断是否存在未领取红包
- *
- */
- public function sentRed($building)
- {
- $actidata = ActivityReceive::findBySql("SELECT * From {{%activity_receive}} WHERE uid = :uid AND source_id = :source_id AND status = :status AND valid_at > :time",[':uid'=>Yii::$app->user->id,':status'=>ActivityReceive::STATUS_NOT,':time'=>time(),':source_id'=>$building])->one();
- if($actidata)
- {
- $config['money']=$actidata->amount;
- $config['openid'] = Yii::$app->user->identity->username;//红包接受者的openid
- $config['nick_name'] = Yii::$app->params['sitetitle']; // 红包商家名称
- $config['send_name'] = Yii::$app->params['sitetitle']; // 红包商家名称
- $config['wishing'] = "感谢您参加工地预定"; // 红包祝福语
- $config['act_name'] = "工地预定送红包活动"; // 红包名称
- $hongbao = new Hongbao($config);
- $result = $hongbao->send();
- if($result['status'] == "SUCCESS" )
- {
- $data = ActivityReceive::find()->where("uid = :uid AND source_id = :source_id AND status = :status",[':uid'=>Yii::$app->user->id,':status'=>ActivityReceive::STATUS_NOT,':source_id'=>$building])->one();
- $data->status = ActivityReceive::STATUS_YES;
- $data->updated_at = time();
- $data->save();
- }
- }
- }
- }
|