cp 等级升级 装扮挂件和特效修改

This commit is contained in:
2025-11-24 15:06:58 +08:00
parent ca8dca40fe
commit a6054e3db3

View File

@@ -43,7 +43,7 @@ class UserCp extends Model
'createtime' => time(),
'status' => 1
];
Db::name('user_cp_find')->insert($data);
$r = Db::name('user_cp_find')->insertGetId($data);
//修改状态
Db::name('user_cp_find')->where(['id' => $res['id']])->update(['status' => 1]);
@@ -74,24 +74,14 @@ class UserCp extends Model
];
Db::name('user_cp_gift_log')->insert($datas);
$rees = Db::name('user_cp_zone')
->where(['status' => 1])
->where('(user_id1 = '.$from_user_id.' OR user_id2 = '.$from_user_id.')')
->find();
// 检查并更新CP空间状态
$this->updateCpZoneStatus($from_user_id, $re, $res['id'] ?? 0);
$this->updateCpZoneStatus($to_user_id, $re, $res['id'] ?? 0);
if($rees && $re != $rees['id']){
//修改状态
Db::name('user_cp_zone')->where(['id' => $rees['id']])->update(['status' => 2]);
}
// 检查并更新CP查找记录状态
$this->updateCpFindStatus($to_user_id, $r, $res['id'] ?? 0);
$this->updateCpFindStatus($from_user_id, $r, $res['id'] ?? 0);
$ress = Db::name('user_cp_zone')
->where(['status' => 1])
->where('(user_id1 = '.$to_user_id.' OR user_id2 = '.$to_user_id.')')
->find();
if($ress && $re != $ress['id']){
//修改状态
Db::name('user_cp_zone')->where(['id' => $ress['id']])->update(['status' => 2]);
}
// 给两个用户添加CP装扮
$pendant_ids = Db::name('user_cp_level')->where(['deletetime' => 0])->order('level asc')->value('pendant_id');
@@ -132,6 +122,49 @@ class UserCp extends Model
}
}
/*
* 更新CP空间状态
* @param int $user_id 用户ID
* @param int $current_zone_id 当前创建的CP空间ID
* @param int $related_find_id 相关的查找记录ID
*/
private function updateCpZoneStatus($user_id, $current_zone_id)
{
$zone = Db::name('user_cp_zone')
->where(['status' => 1])
->where('(user_id1 = ' . $user_id . ' OR user_id2 = ' . $user_id . ')')
->find();
if ($zone && $current_zone_id != $zone['id']) {
Db::name('user_cp_zone')->where(['id' => $zone['id']])->update(['status' => 2]);
}
}
/*
* 更新CP查找记录状态
* @param int $user_id 用户ID
* @param int $current_find_id 当前创建的查找记录ID
* @param int $related_find_id 相关的查找记录ID
*/
private function updateCpFindStatus($user_id, $current_find_id, $related_find_id = 0)
{
$find_records = Db::name('user_cp_find')
->where(['status' => 1])
->where('(from_user_id = ' . $user_id . ' OR to_user_id = ' . $user_id . ')')
->select();
if ($find_records) {
foreach ($find_records as $record) {
if ($record['id'] != $current_find_id && $record['id'] != $related_find_id) {
Db::name('user_cp_find')->where(['id' => $record['id']])->update(['status' => 2]);
}
}
}
}
/*
* 为CP用户分配装扮或特效
* @param array $user_ids 用户ID数组