ExclusiveService.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: dianzhong
  5. * Date: 2018/11/8
  6. * Time: 14:06
  7. */
  8. namespace app\admin\service;
  9. use app\main\constants\AdminConstants;
  10. use think\Db;
  11. class ExclusiveService
  12. {
  13. /**
  14. * @var ExclusiveService
  15. */
  16. private static $instance = NULL;
  17. /**
  18. * @return ExclusiveService
  19. */
  20. public static function instance()
  21. {
  22. if (self::$instance == NULL) {
  23. self::$instance = new self();
  24. }
  25. return self::$instance;
  26. }
  27. public function getExclusiveNotidsWithWhere($group, $uid, &$map){
  28. if ($group != AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN && $group != AdminConstants::ADMIN_GROUP_ID_OPERATOR) {
  29. //所有绑定独家的渠道
  30. $bind_channel_ids = model('exclusive_channel')
  31. ->alias('ec')
  32. ->join('exclusive e', 'e.id=ec.eid')
  33. ->where('e.endtime', '>', time())
  34. ->where('e.status', 1)
  35. ->group('ec.cid')
  36. ->column('ec.cid');
  37. if($bind_channel_ids) {
  38. //VIP或VIP运营
  39. if($group == AdminConstants::ADMIN_GROUP_ID_VIP || $group == AdminConstants::ADMIN_GROUP_ID_VIP_OPERATOR){
  40. //获取VIP下的所有有效渠道
  41. $adminIds = model("VipAdminBind")->getChannelIds($uid);//获取服务号id
  42. //VIP下的所有渠道并没有绑定到独家里
  43. if(empty(array_intersect($bind_channel_ids,$adminIds))){
  44. $exclusive = model('Book')->getExclusiveBookIds($uid);
  45. if (!empty($exclusive)) {
  46. $map['book.id'] = ['not in', implode(',', $exclusive)];
  47. }
  48. }else{
  49. //VIP下的渠道有绑定到独家里,查询所有
  50. $exclusive = model('Book')->getVipExclusiveBookIds($adminIds);
  51. if (!empty($exclusive)) {
  52. $map['book.id'] = ['not in', implode(',', $exclusive)];
  53. }
  54. }
  55. }else{//其他角色
  56. $exclusive = model('Book')->getExclusiveBookIds($uid);
  57. if (!empty($exclusive)) {
  58. $map['book.id'] = ['not in', implode(',', $exclusive)];
  59. }
  60. }
  61. }
  62. }
  63. }
  64. public function getExclusiveNotidsWithoutWhere($group, $uid, &$val){
  65. if ($group != AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN && $group != AdminConstants::ADMIN_GROUP_ID_OPERATOR) {
  66. $exclusive = [];
  67. //所有绑定独家的渠道
  68. $bind_channel_ids = model('Exclusive')->getAllBindChannelIds();
  69. if(!empty($bind_channel_ids)) {
  70. //VIP或VIP运营
  71. if($group == AdminConstants::ADMIN_GROUP_ID_VIP || $group == AdminConstants::ADMIN_GROUP_ID_VIP_OPERATOR){
  72. //获取VIP下的所有有效渠道
  73. $adminIds = model("VipAdminBind")->getChannelIds($uid);//获取服务号id
  74. //VIP下的所有渠道并没有绑定到独家里
  75. if(empty(array_intersect($bind_channel_ids,$adminIds))){
  76. $exclusive = model('Book')->getExclusiveBookIds($uid);
  77. if (!empty($exclusive)) {
  78. $val = $exclusive;
  79. }
  80. }else{
  81. //VIP下的渠道有绑定到独家里,查询所有
  82. $exclusive = model('Book')->getVipExclusiveBookIds($adminIds);
  83. if (!empty($exclusive)) {
  84. $val = $exclusive;
  85. }
  86. }
  87. }else{//其他角色
  88. $exclusive = model('Book')->getExclusiveBookIds($uid);
  89. if (!empty($exclusive)) {
  90. $val = $exclusive;
  91. }
  92. }
  93. }
  94. }
  95. }
  96. }