ActivityReceive.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace common\models;
  3. use common\library\Hongbao;
  4. use Yii;
  5. class ActivityReceive extends \yii\db\ActiveRecord
  6. {
  7. const STATUS_NOT = 0;//未领取
  8. const STATUS_YES = 1;//已领取
  9. /**
  10. * @inheritdoc
  11. */
  12. public static function tableName()
  13. {
  14. return '{{%activity_receive}}';
  15. }
  16. /**
  17. * @inheritdoc
  18. */
  19. public function rules()
  20. {
  21. return [
  22. [['uid', 'activity_id', 'source_id', 'amount', 'receive_at','valid_at'], 'required'],
  23. [['uid', 'activity_id', 'source_id','receive_at','valid_at','updated_at'], 'integer'],
  24. [['amount'], 'number'],
  25. ];
  26. }
  27. /**
  28. * @inheritdoc
  29. */
  30. public function attributeLabels()
  31. {
  32. return [
  33. 'id' => 'ID',
  34. 'uid' => '用户id',
  35. 'activity_id' => '活动编号',
  36. 'source_id' => '获取来源ID',
  37. 'amount' => '金额',
  38. 'receive_at'=>'领取时间',
  39. 'valid_at'=>'有效时间',
  40. 'updated_at'=>'最后修改时间',
  41. ];
  42. }
  43. /**
  44. * @param $building
  45. * 判断是否存在未领取红包
  46. *
  47. */
  48. public function sentRed($building)
  49. {
  50. $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();
  51. if($actidata)
  52. {
  53. $config['money']=$actidata->amount;
  54. $config['openid'] = Yii::$app->user->identity->username;//红包接受者的openid
  55. $config['nick_name'] = Yii::$app->params['sitetitle']; // 红包商家名称
  56. $config['send_name'] = Yii::$app->params['sitetitle']; // 红包商家名称
  57. $config['wishing'] = "感谢您参加工地预定"; // 红包祝福语
  58. $config['act_name'] = "工地预定送红包活动"; // 红包名称
  59. $hongbao = new Hongbao($config);
  60. $result = $hongbao->send();
  61. if($result['status'] == "SUCCESS" )
  62. {
  63. $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();
  64. $data->status = ActivityReceive::STATUS_YES;
  65. $data->updated_at = time();
  66. $data->save();
  67. }
  68. }
  69. }
  70. }