diff --git a/application/api/model/GiveGift.php b/application/api/model/GiveGift.php index 224df9e..8b99f80 100644 --- a/application/api/model/GiveGift.php +++ b/application/api/model/GiveGift.php @@ -189,7 +189,7 @@ class GiveGift extends Model //计算收礼人得益 $receiver_earnings = $this -> receiver_earnings($to_id,$gift_price,$from_type); - if($receiver_earnings <= 0){ + if($receiver_earnings < 0){ Db::rollback(); return ['code' => 0, 'msg' => '收礼人收益配置有误', 'data' => null]; } @@ -302,63 +302,21 @@ class GiveGift extends Model foreach ($gift_box as $gv) { //记录送礼利率和各方收益 //收礼人是否加入公会 - $configs = get_system_config(); - $is_join_guild = Db::name('vs_guild_user')->where(['user_id' => $to_uid, 'status' => 1, 'quit_time' => 0])->field('guild_id')->find(); - //收益增加 加入工会的收益 - if ($is_join_guild) { - $ratiog = $configs['room_gift_guild_ratio']; - } else { - $ratiog = 0; - } - //未加入工会的收益 - $ratiogr = $configs['room_gift_ratio']; - //收礼人最终的收益比例 - $ratio = $ratiogr + $ratiog; - //房主收益大于0 就代表有收益 且在房间 - if ($room_owner_earningsg > 0) { - $guid_ratio = $configs['room_cp_guild_user_ratio']; - } else { - $guid_ratio = 0; - } - //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 - $app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio; - $app_earning = coin_earning($gv['gift_price'], $app_ratio); - $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type); - $room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 - $gift_rate = $this->change_give_gift_profit($gv['give_gift_id'], $ratio, $receiver_earningss, $configs['room_author_ratio'], $room_owner_earningss, $app_ratio, $app_earning); - if (!$gift_rate) { + $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type); + $room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gv['gift_price'],$gv['give_gift_id'],$receiver_earningss,$room_owner_earningss); + if (!$gift_rate['code']==0) { Db::rollback(); - return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; + return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; } } }else{ //记录送礼利率和各方收益 //收礼人是否加入公会 - $configs = get_system_config(); - $is_join_guild = Db::name('vs_guild_user')->where(['user_id' => $to_uid, 'status' => 1, 'quit_time' => 0])->field('guild_id')->find(); - //收益增加 加入工会的收益 - if ($is_join_guild) { - $ratiog = $configs['room_gift_guild_ratio']; - } else { - $ratiog = 0; - } - //未加入工会的收益 - $ratiogr = $configs['room_gift_ratio']; - //收礼人最终的收益比例 - $ratio = $ratiogr + $ratiog; - //房主收益大于0 就代表有收益 且在房间 - if ($room_owner_earningsg > 0) { - $guid_ratio = $configs['room_cp_guild_user_ratio']; - } else { - $guid_ratio = 0; - } - //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 - $app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio; - $app_earning = coin_earning($gift_price, $app_ratio); - $gift_rate = $this->change_give_gift_profit($give_gift, $ratio, $receiver_earnings, $configs['room_author_ratio'], $room_owner_earnings, $app_ratio, $app_earning); - if (!$gift_rate) { + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings); + if (!$gift_rate['code']==0) { Db::rollback(); - return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; + return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; } } } @@ -652,7 +610,7 @@ class GiveGift extends Model //计算收礼人得益 $receiver_earnings = $this -> receiver_earnings($to_id,$gift_price,$from_type); - if($receiver_earnings <= 0){ + if($receiver_earnings < 0){ return ['code' => 0, 'msg' => '收礼人收益配置有误', 'data' => null]; } @@ -757,62 +715,21 @@ class GiveGift extends Model foreach ($gift_box as $gv) { //记录送礼利率和各方收益 //收礼人是否加入公会 - $configs = get_system_config(); - $is_join_guild = Db::name('vs_guild_user')->where(['user_id' => $to_uid, 'status' => 1, 'quit_time' => 0])->field('guild_id')->find(); - //收益增加 加入工会的收益 - if ($is_join_guild) { - $ratiog = $configs['room_gift_guild_ratio']; - } else { - $ratiog = 0; - } - //未加入工会的收益 - $ratiogr = $configs['room_gift_ratio']; - //收礼人最终的收益比例 - $ratio = $ratiogr + $ratiog; - //房主收益大于0 就代表有收益 且在房间 - if ($room_owner_earningsg > 0) { - $guid_ratio = $configs['room_cp_guild_user_ratio']; - } else { - $guid_ratio = 0; - } - //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 - $app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio; - $app_earning = coin_earning($gv['gift_price'], $app_ratio); - $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type); - $room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 - $gift_rate = $this->change_give_gift_profit($gv['give_gift_id'], $ratio, $receiver_earningss, $configs['room_author_ratio'], $room_owner_earningss, $app_ratio, $app_earning); - if (!$gift_rate) { + $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type); + $room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gv['gift_price'],$gv['give_gift_id'],$receiver_earningss,$room_owner_earningss); + if (!$gift_rate['code']==0) { Db::rollback(); - return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; + return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; } } }else{ //记录送礼利率和各方收益 //收礼人是否加入公会 - $configs = get_system_config(); - $is_join_guild = Db::name('vs_guild_user')->where(['user_id' => $to_uid, 'status' => 1, 'quit_time' => 0])->field('guild_id')->find(); - //收益增加 加入工会的收益 - if ($is_join_guild) { - $ratiog = $configs['room_gift_guild_ratio']; - } else { - $ratiog = 0; - } - //未加入工会的收益 - $ratiogr = $configs['room_gift_ratio']; - //收礼人最终的收益比例 - $ratio = $ratiogr + $ratiog; - //房主收益大于0 就代表有收益 且在房间 - if ($room_owner_earningsg > 0) { - $guid_ratio = $configs['room_cp_guild_user_ratio']; - } else { - $guid_ratio = 0; - } - //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 - $app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio; - $app_earning = coin_earning($gift_price, $app_ratio); - $gift_rate = $this->change_give_gift_profit($give_gift, $ratio, $receiver_earnings, $configs['room_author_ratio'], $room_owner_earnings, $app_ratio, $app_earning); - if (!$gift_rate) { - return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings); + if (!$gift_rate['code']==0) { + Db::rollback(); + return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; } } } @@ -919,15 +836,13 @@ class GiveGift extends Model $ratio = $configs['gift_chat_earning']; }elseif ($from_type == 2 || $from_type == 3){ //收礼人是否加入公会 - $is_join_guild = Db::name('vs_guild_user')->where(['user_id'=>$to_uid,'status'=>1,'quit_time' => 0])->field('guild_id')->find(); + $is_join_guild = Db::name('vs_guild_user')->where(['user_id'=>$to_uid,'status'=>1,'quit_time' => 0])->field('guild_id,settlement_ratio')->find(); //收益增加 加入工会的收益 if($is_join_guild){ - $ratiog = $configs['room_gift_guild_ratio']; + $ratio = $is_join_guild['settlement_ratio']; }else{ - $ratiog = 0; + $ratio = $configs['room_gift_ratio']; } - $ratiogr = $configs['room_gift_ratio']; - $ratio = $ratiogr +$ratiog; }elseif ($from_type == 4){ $ratio = $configs['gift_zone_earnings']; }elseif ($from_type == 99){ @@ -1484,4 +1399,33 @@ class GiveGift extends Model return ['code' => 1, 'msg' => '成功', 'data' => $result_data]; } + //记录收礼各方收益 + public function record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings){ + //记录送礼利率和各方收益 + //收礼人是否加入公会 + $configs = get_system_config(); + $is_join_guild = Db::name('vs_guild_user')->where(['user_id' => $to_uid, 'status' => 1, 'quit_time' => 0])->field('guild_id,settlement_ratio')->find(); + //收益增加 加入工会的收益 + if ($is_join_guild) {//加入工会的收益 + $ratio = $is_join_guild['settlement_ratio'] ?? 0; + } else {//未加入工会的收益 + $ratio = $configs['room_gift_ratio']; + } + //房主收益大于0 就代表有收益 且在房间 + if ($room_owner_earningsg > 0) { + $guid_ratio = $configs['room_cp_guild_user_ratio']; + } else { + $guid_ratio = 0; + } + //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 + $app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio; + $app_earning = coin_earning($gift_price, $app_ratio); + $gift_rate = $this->change_give_gift_profit($give_gift, $ratio, $receiver_earnings, $configs['room_author_ratio'], $room_owner_earnings, $app_ratio, $app_earning); + if (!$gift_rate) { + return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; + }else { + return ['code' => 1, 'msg' => '礼物记录成功', 'data' => $gift_rate]; + } + } + } diff --git a/application/guildAdmin/config.php b/application/guildAdmin/config.php index ae5dd1e..7b36f63 100644 --- a/application/guildAdmin/config.php +++ b/application/guildAdmin/config.php @@ -2,5 +2,5 @@ //配置文件 return [ - 'exception_handle' => '\\app\\adminapi\\library\\ExceptionHandle', + 'exception_handle' => '\\app\\guildadmin\\library\\ExceptionHandle', ]; diff --git a/application/guildAdmin/controller/Admin.php b/application/guildAdmin/controller/Admin.php index e089aa3..847d514 100644 --- a/application/guildAdmin/controller/Admin.php +++ b/application/guildAdmin/controller/Admin.php @@ -1,12 +1,12 @@ model = model('GuildAdmin/Admin'); - $this->authRuleModel = model('GuildAdmin/AuthRule'); - $this->authGroup = model('GuildAdmin/AuthGroup'); + $this->model = model('guildadmin/Admin'); + $this->authRuleModel = model('guildadmin/AuthRule'); + $this->authGroup = model('guildadmin/AuthGroup'); $this->guildId = Session::get('guild_id'); $this->childrenAdminIds = $this->auth->getChildrenAdminIds($this->auth->isSuperAdmin()); $this->childrenGroupIds = $this->auth->getChildrenGroupIds($this->auth->isSuperAdmin()); @@ -239,7 +239,7 @@ class Admin extends GuildAdmin if (!in_array($params['pid'], $this->childrenGroupIds)) { return V(0,'请选择正确的父角色', null); } - $parentmodel = model("guildAdmin/AuthGroup")->get($params['pid']); + $parentmodel = model("guildadmin/AuthGroup")->get($params['pid']); if (!$parentmodel) { return V(0,'请选择正确的父角色', null); } @@ -287,7 +287,7 @@ class Admin extends GuildAdmin } $params['rules'] = explode(',', $params['rules']); - $parentmodel = model("GuildAdmin/AuthGroup")->get($params['pid']); + $parentmodel = model("guildadmin/AuthGroup")->get($params['pid']); if (!$parentmodel) { return V(0,'请选择正确的父角色', null); } @@ -305,13 +305,13 @@ class Admin extends GuildAdmin Db::startTrans(); try { $row->save($params); - $children_auth_groups = model("GuildAdmin/AuthGroup")->all(['id' => ['in', implode(',', (Tree::instance()->getChildrenIds($row->id)))]]); + $children_auth_groups = model("guildadmin/AuthGroup")->all(['id' => ['in', implode(',', (Tree::instance()->getChildrenIds($row->id)))]]); $childparams = []; foreach ($children_auth_groups as $key => $children_auth_group) { $childparams[$key]['id'] = $children_auth_group->id; $childparams[$key]['rules'] = implode(',', array_intersect(explode(',', $children_auth_group->rules), $rules)); } - model("GuildAdmin/AuthGroup")->saveAll($childparams); + model("guildadmin/AuthGroup")->saveAll($childparams); Db::commit(); return V(1,"成功", null); } catch (Exception $e) { @@ -358,7 +358,7 @@ class Admin extends GuildAdmin // 循环判断每一个组别是否可删除 $grouplist = $this->authGroup->where('id', 'in', $ids)->select(); - $groupaccessmodel = model('GuildAdmin/AuthGroupAccess'); + $groupaccessmodel = model('guildadmin/AuthGroupAccess'); foreach ($grouplist as $k => $v) { // 当前组别下有管理员 $groupone = $groupaccessmodel->get(['group_id' => $v['id']]); @@ -387,7 +387,7 @@ class Admin extends GuildAdmin */ public function role_tree() { - $model = model('GuildAdmin/AuthGroup'); + $model = model('guildadmin/AuthGroup'); $id = $this->request->post("id"); $pid = $this->request->post("pid"); $parentGroupModel = $model->get($pid); @@ -398,7 +398,7 @@ class Admin extends GuildAdmin } if (($pid || $parentGroupModel) && (!$id || $currentGroupModel)) { $id = $id ? $id : null; - $ruleList = collection(model('GuildAdmin/AuthRule')->order('weigh', 'desc')->order('id', 'asc')->select())->toArray(); + $ruleList = collection(model('guildadmin/AuthRule')->order('weigh', 'desc')->order('id', 'asc')->select())->toArray(); //读取父类角色所有节点列表 $parentRuleList = []; if (in_array('*', explode(',', $parentGroupModel->rules))) { @@ -417,7 +417,7 @@ class Admin extends GuildAdmin //当前所有正常规则列表 $ruleTree->init($parentRuleList); //角色组列表 - $groupTree->init(collection(model('GuildAdmin/AuthGroup')->where('id', 'in', $this->childrenGroupIds)->select())->toArray()); + $groupTree->init(collection(model('guildadmin/AuthGroup')->where('id', 'in', $this->childrenGroupIds)->select())->toArray()); //读取当前角色下规则ID集合 $adminRuleIds = $this->auth->getRuleIds(); @@ -547,7 +547,7 @@ class Admin extends GuildAdmin foreach ($group as $value) { $dataset[] = ['uid' => $this->model->id, 'group_id' => $value]; } - model('guildAdmin/AuthGroupAccess')->saveAll($dataset); + model('guildadmin/AuthGroupAccess')->saveAll($dataset); Db::commit(); return V(1,"添加成功", []); } catch (\Exception $e) { @@ -598,7 +598,7 @@ class Admin extends GuildAdmin if(!empty($group)){ // 先移除所有权限 - model('guildAdmin/AuthGroupAccess')->where('uid', $params['id'])->delete(); + model('guildadmin/AuthGroupAccess')->where('uid', $params['id'])->delete(); // 过滤不允许的组别,避免越权 $group = array_intersect($this->childrenGroupIds, $group); if (!$group) { @@ -609,7 +609,7 @@ class Admin extends GuildAdmin foreach ($group as $value) { $dataset[] = ['uid' => $params['id'], 'group_id' => $value]; } - model('guildAdmin/AuthGroupAccess')->saveAll($dataset); + model('guildadmin/AuthGroupAccess')->saveAll($dataset); } Db::commit(); return V(1,"成功", []); @@ -698,7 +698,7 @@ class Admin extends GuildAdmin Db::startTrans(); try { $this->model->destroy($deleteIds); - model('guildAdmin/AuthGroupAccess')->where('uid', 'in', $deleteIds)->delete(); + model('guildadmin/AuthGroupAccess')->where('uid', 'in', $deleteIds)->delete(); Db::commit(); return V(1,"成功", []); } catch (\Exception $e) { diff --git a/application/guildAdmin/controller/GuildData.php b/application/guildAdmin/controller/GuildData.php index f887737..4d41001 100644 --- a/application/guildAdmin/controller/GuildData.php +++ b/application/guildAdmin/controller/GuildData.php @@ -1,12 +1,12 @@ isSuperAdmin() ? '1=1' : ['status' => 'normal'])->where('guild_id', Session::get('guild_id'))->select(); + $groupList = \app\guildadmin\model\AuthGroup::where($this->isSuperAdmin() ? '1=1' : ['status' => 'normal'])->where('guild_id', Session::get('guild_id'))->select(); $objList = []; foreach ($groups as $k => $v) { if ($v['rules'] === '*') { @@ -408,7 +408,7 @@ class Auth extends \fast\Auth $childrenAdminIds = []; if (!$this->isSuperAdmin()) { $groupIds = $this->getChildrenGroupIds(false); - $childrenAdminIds = \app\guildAdmin\model\AuthGroupAccess::where('group_id', 'in', $groupIds) + $childrenAdminIds = \app\guildadmin\model\AuthGroupAccess::where('group_id', 'in', $groupIds) ->column('uid'); } else { //超级管理员拥有所有人的权限 @@ -495,12 +495,12 @@ class Auth extends \fast\Auth $selected = $referer = []; $refererUrl = Session::get('referer'); // 必须将结果集转换为数组 - $ruleList = collection(\app\guildAdmin\model\AuthRule::where('status', 'normal') + $ruleList = collection(\app\guildadmin\model\AuthRule::where('status', 'normal') ->where('ismenu', 1) ->order('weigh', 'desc') ->cache("__menu__") ->select())->toArray(); - $indexRuleList = \app\guildAdmin\model\AuthRule::where('status', 'normal') + $indexRuleList = \app\guildadmin\model\AuthRule::where('status', 'normal') ->where('ismenu', 0) ->where('name', 'like', '%/index') ->column('name,pid'); diff --git a/application/guildAdmin/library/ExceptionHandle.php b/application/guildAdmin/library/ExceptionHandle.php index 9736c34..df2b03d 100644 --- a/application/guildAdmin/library/ExceptionHandle.php +++ b/application/guildAdmin/library/ExceptionHandle.php @@ -1,6 +1,6 @@ '*', 'status' => 'normal' ]; - $group = model('guildAdmin/AuthGroup')->create($group_data); + $group = model('guildadmin/AuthGroup')->create($group_data); if (!$group) { return V(0,"失败", []); } $dataset = []; $dataset[] = ['uid' => $this->id, 'group_id' => $group['id']]; - model('guildAdmin/AuthGroupAccess')->saveAll($dataset); + model('guildadmin/AuthGroupAccess')->saveAll($dataset); } } diff --git a/application/guildAdmin/model/AdminLog.php b/application/guildAdmin/model/AdminLog.php index b4278e8..08664bf 100644 --- a/application/guildAdmin/model/AdminLog.php +++ b/application/guildAdmin/model/AdminLog.php @@ -1,6 +1,6 @@