好友:参数表配置
This commit is contained in:
@@ -2,7 +2,7 @@ import { Application, BackendSession } from "pinus";
|
||||
import { resResult, getRandEelm, getResStr, shouldRefresh } from "../../../pubUtils/util";
|
||||
import { STATUS, ROLE_SELECT, FRIEND_DROP_TYPE, FRIEND_RELATION_TYPE, POPULATE_TYPE, BLOCK_OPEATE, CONSUME_TYPE, ITID, HERO_SELECT, EQUIP_SELECT } from "../../../consts";
|
||||
import { RoleModel, RoleType } from "../../../db/Role";
|
||||
import { getBeforeDaySeconds } from "../../../pubUtils/timeUtil";
|
||||
import { getBeforeHourSeconds } from "../../../pubUtils/timeUtil";
|
||||
import { FriendApplyModel } from "../../../db/FriendApply";
|
||||
import { FriendApplyParams, FriendListParam, FriendRecommendParams, BlackListParam, FriendValueListParam } from "../../../domain/roleField/friend";
|
||||
import { FriendShipModel, FriendShipType } from "../../../db/FriendShip";
|
||||
@@ -18,6 +18,7 @@ import { FriendPresentLogModel } from '../../../db/FriendPresentLog';
|
||||
import { HeroModel } from "../../../db/Hero";
|
||||
import { EquipModel } from "../../../db/Equip";
|
||||
import { getPlayerMainAttribute } from "../../../services/pvpService";
|
||||
import { FRIEND } from "../../../pubUtils/dicParam";
|
||||
|
||||
|
||||
export default function (app: Application) {
|
||||
@@ -33,14 +34,15 @@ export class FriendHandler {
|
||||
public async getRecommend(msg: { }, session: BackendSession) {
|
||||
let roleId: string = session.get('roleId');
|
||||
|
||||
const day = getBeforeDaySeconds(1);
|
||||
const day = getBeforeHourSeconds(FRIEND.FRIEND_RECONMMEND_ACTIVETIME);
|
||||
|
||||
const { lv } = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_LV);
|
||||
let allList = await RoleModel.getRecommedList(lv - 5, lv + 5, day);
|
||||
const { lv, serverId: myServerId, userInfo: { serverType: myServerType } } = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_MY_SERVER);
|
||||
let allList = await RoleModel.getRecommedList(lv - FRIEND.FRIEND_RECONMMEND_LEVEL, lv + FRIEND.FRIEND_RECONMMEND_LEVEL, day);
|
||||
|
||||
let myFriendRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.NOT);
|
||||
|
||||
let paramAllList = new Array<FriendRecommendParams>();
|
||||
let myServerList = new Array<FriendRecommendParams>();
|
||||
let otherServerList = new Array<FriendRecommendParams>();
|
||||
for(let role of allList) {
|
||||
let type = getRecommendType(myFriendRelation, roleId, role.roleId);
|
||||
if(type == FRIEND_RELATION_TYPE.NORMAL) {
|
||||
@@ -51,13 +53,28 @@ export class FriendHandler {
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
paramAllList.push(param);
|
||||
if(myServerId == serverId && myServerType == serverType ) {
|
||||
myServerList.push(param);
|
||||
} else {
|
||||
otherServerList.push(param);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// TODO 修改,本服在前,其他服在后
|
||||
let list = getRandEelm(paramAllList, 6);
|
||||
if(!list.length) list = paramAllList;
|
||||
// 前4个是本服的,后4个随意,优先本服,其他补上
|
||||
let myServerLen = myServerList.length > FRIEND.FRIEND_RECONMMEND_SERVICE? FRIEND.FRIEND_RECONMMEND_SERVICE: myServerList.length;
|
||||
let list1:FriendRecommendParams[] = getRandEelm(myServerList, myServerLen);
|
||||
|
||||
let otherServerLen = otherServerList.length > FRIEND.FRIEND_RECONMMEND_NUM - myServerLen? FRIEND.FRIEND_RECONMMEND_NUM - myServerLen: otherServerList.length;
|
||||
let list2:FriendRecommendParams[] = getRandEelm(otherServerList, otherServerLen);
|
||||
|
||||
if(list2.length < FRIEND.FRIEND_RECONMMEND_NUM - myServerLen) {
|
||||
list1 = getRandEelm(myServerList, FRIEND.FRIEND_RECONMMEND_NUM - list2.length);
|
||||
}
|
||||
console.log
|
||||
|
||||
let list = list1.concat(list2);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { list });
|
||||
}
|
||||
@@ -302,7 +319,7 @@ export class FriendHandler {
|
||||
return resResult(STATUS.FRIEND_BLACK_HAS_ADD);
|
||||
}
|
||||
|
||||
role = await RoleModel.increaseBlockCnt(roleId, 1, curFriend? -1: 0, 100); // 增加黑名单人数
|
||||
role = await RoleModel.increaseBlockCnt(roleId, 1, curFriend? -1: 0, FRIEND.FRIEND_BLACKLIST_MAX); // 增加黑名单人数
|
||||
if(!role) {
|
||||
return resResult(STATUS.FRIEND_BLACK_MAX)
|
||||
}
|
||||
@@ -373,7 +390,7 @@ export class FriendHandler {
|
||||
|
||||
if(type == BLOCK_OPEATE.REMOVE_AND_APPLY) {
|
||||
// 申请好友
|
||||
let applyResult = await RoleModel.increaseFriendApplyCnt(hisRoleId, 1, 50);
|
||||
let applyResult = await RoleModel.increaseFriendApplyCnt(hisRoleId, 1, FRIEND.FRIEND_MANAGE_APPLICATION);
|
||||
if(!applyResult) {
|
||||
str = getResStr(STATUS.FRIEND_HIS_APPLY_MAX);
|
||||
} else {
|
||||
@@ -430,17 +447,17 @@ export class FriendHandler {
|
||||
let list = new Array<FriendValueListParam>();
|
||||
for(let relation of canSendList) {
|
||||
|
||||
if(todaySendCnt + 1 > max) break;
|
||||
if(todaySendCnt + FRIEND.FRIEND_FRIENDPOINT_ADD > max) break;
|
||||
let fs = <FriendShipType>relation.friendShip;
|
||||
let ref = shouldRefresh(fs.refTime, new Date(), 0);
|
||||
let sendHeartRec = await FriendShipModel.sendHeart(roleId, relation.roleId, 1, 1, ref);
|
||||
let sendHeartRec = await FriendShipModel.sendHeart(roleId, relation.roleId, 1, FRIEND.FRIEND_RECEIVE_SINGLE, ref);
|
||||
if(!sendHeartRec) continue;
|
||||
|
||||
let param = new FriendValueListParam(relation.roleId, roleId, sendHeartRec);
|
||||
list.push(param);
|
||||
|
||||
todaySendCnt += 1;
|
||||
todaySendInc += 1;
|
||||
todaySendCnt += FRIEND.FRIEND_FRIENDPOINT_ADD;
|
||||
todaySendInc += FRIEND.FRIEND_FRIENDPOINT_ADD;
|
||||
}
|
||||
if(todaySendInc <= 0) return resResult(STATUS.FRIEND_HAS_SENT);
|
||||
|
||||
@@ -487,7 +504,7 @@ export class FriendHandler {
|
||||
let list = new Array<FriendValueListParam>();
|
||||
for(let relation of canReceiveList) {
|
||||
if(relation.beSentHeart > 0) {
|
||||
if(todayReceiveCnt + 1 > max) break;
|
||||
if(todayReceiveCnt + FRIEND.FRIEND_FRIENDPOINT_ADD > max) break;
|
||||
|
||||
// 收取爱心
|
||||
let fs = <FriendShipType>relation.friendShip;
|
||||
@@ -498,8 +515,8 @@ export class FriendHandler {
|
||||
let param = new FriendValueListParam(relation.roleId, roleId, receiveHeartRec);
|
||||
list.push(param);
|
||||
|
||||
todayReceiveCnt += 1;
|
||||
todayReceiveInc += 1;
|
||||
todayReceiveCnt += FRIEND.FRIEND_FRIENDPOINT_ADD;
|
||||
todayReceiveInc += FRIEND.FRIEND_FRIENDPOINT_ADD;
|
||||
}
|
||||
}
|
||||
if(todayReceiveInc <= 0) return resResult(STATUS.FRIEND_HAS_RECEIVE);
|
||||
|
||||
Reference in New Issue
Block a user