SubscribeRecord.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Modules\User\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Modules\OfficialAccount\Models\ForceSubscribeUsers;
  5. use DB;
  6. class SubscribeRecord extends Model
  7. {
  8. protected $connection = 'api_mysql';
  9. protected $table = 'subscribe_records';
  10. protected $fillable = ['id', 'uid', 'appid', 'distribution_channel_id', 'openid','is_subscribed',
  11. 'subscribe_time','unsubscribe_time','created_at','updated_at'
  12. ];
  13. static public function create_subscribe_record($param){
  14. $data = [];
  15. $forceSubscribeUsers = ForceSubscribeUsers::forceSubscribeUsersByOpenidAndAC($param['openid'],$param['appid'],$param['distribution_channel_id']);
  16. $data['uid'] = isset($forceSubscribeUsers->uid)?$forceSubscribeUsers->uid:null;
  17. $data['appid'] = $param['appid'];
  18. $data['openid'] = $param['openid'];
  19. $data['is_subscribed'] = $param['is_subscribed'];
  20. if(isset($param['distribution_channel_id']) && $param['distribution_channel_id']){
  21. $data['distribution_channel_id'] = $param['distribution_channel_id'];
  22. }else{
  23. $data['distribution_channel_id'] = isset($forceSubscribeUsers->distribution_channel_id)?$forceSubscribeUsers->distribution_channel_id:null;
  24. }
  25. if(isset($param['subscribe_time']) && $param['subscribe_time']){
  26. $data['subscribe_time'] = $param['subscribe_time'];
  27. }else{
  28. $data['subscribe_time'] = isset($forceSubscribeUsers->subscribe_time)?$forceSubscribeUsers->subscribe_time:null;
  29. }
  30. if(isset($param['unsubscribe_time']) && $param['unsubscribe_time']){
  31. $data['unsubscribe_time'] = $param['unsubscribe_time'];
  32. }else{
  33. $data['unsubscribe_time'] = isset($forceSubscribeUsers->unsubscribe_time)?$forceSubscribeUsers->unsubscribe_time:null;
  34. }
  35. // \Log::info('create_subscribe_record:'.$data['uid'].' data:'.json_encode($data));
  36. self::firstOrCreate($data);
  37. }
  38. }