123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /**
- * Created by PhpStorm.
- * User: dianzhong
- * Date: 2018/11/8
- * Time: 14:06
- */
- namespace app\admin\service;
- use app\main\constants\AdminConstants;
- use think\Db;
- class ExclusiveService
- {
- /**
- * @var ExclusiveService
- */
- private static $instance = NULL;
- /**
- * @return ExclusiveService
- */
- public static function instance()
- {
- if (self::$instance == NULL) {
- self::$instance = new self();
- }
- return self::$instance;
- }
- public function getExclusiveNotidsWithWhere($group, $uid, &$map){
- if ($group != AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN && $group != AdminConstants::ADMIN_GROUP_ID_OPERATOR) {
- //所有绑定独家的渠道
- $bind_channel_ids = model('exclusive_channel')
- ->alias('ec')
- ->join('exclusive e', 'e.id=ec.eid')
- ->where('e.endtime', '>', time())
- ->where('e.status', 1)
- ->group('ec.cid')
- ->column('ec.cid');
- if($bind_channel_ids) {
- //VIP或VIP运营
- if($group == AdminConstants::ADMIN_GROUP_ID_VIP || $group == AdminConstants::ADMIN_GROUP_ID_VIP_OPERATOR){
- //获取VIP下的所有有效渠道
- $adminIds = model("VipAdminBind")->getChannelIds($uid);//获取服务号id
- //VIP下的所有渠道并没有绑定到独家里
- if(empty(array_intersect($bind_channel_ids,$adminIds))){
- $exclusive = model('Book')->getExclusiveBookIds($uid);
- if (!empty($exclusive)) {
- $map['book.id'] = ['not in', implode(',', $exclusive)];
- }
- }else{
- //VIP下的渠道有绑定到独家里,查询所有
- $exclusive = model('Book')->getVipExclusiveBookIds($adminIds);
- if (!empty($exclusive)) {
- $map['book.id'] = ['not in', implode(',', $exclusive)];
- }
- }
- }else{//其他角色
- $exclusive = model('Book')->getExclusiveBookIds($uid);
- if (!empty($exclusive)) {
- $map['book.id'] = ['not in', implode(',', $exclusive)];
- }
- }
- }
- }
- }
- public function getExclusiveNotidsWithoutWhere($group, $uid, &$val){
- if ($group != AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN && $group != AdminConstants::ADMIN_GROUP_ID_OPERATOR) {
- $exclusive = [];
- //所有绑定独家的渠道
- $bind_channel_ids = model('Exclusive')->getAllBindChannelIds();
- if(!empty($bind_channel_ids)) {
- //VIP或VIP运营
- if($group == AdminConstants::ADMIN_GROUP_ID_VIP || $group == AdminConstants::ADMIN_GROUP_ID_VIP_OPERATOR){
- //获取VIP下的所有有效渠道
- $adminIds = model("VipAdminBind")->getChannelIds($uid);//获取服务号id
- //VIP下的所有渠道并没有绑定到独家里
- if(empty(array_intersect($bind_channel_ids,$adminIds))){
- $exclusive = model('Book')->getExclusiveBookIds($uid);
- if (!empty($exclusive)) {
- $val = $exclusive;
- }
- }else{
- //VIP下的渠道有绑定到独家里,查询所有
- $exclusive = model('Book')->getVipExclusiveBookIds($adminIds);
- if (!empty($exclusive)) {
- $val = $exclusive;
- }
- }
- }else{//其他角色
- $exclusive = model('Book')->getExclusiveBookIds($uid);
- if (!empty($exclusive)) {
- $val = $exclusive;
- }
- }
- }
- }
- }
- }
|