| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558 |
- /**
- * TL++整个文件
- * 此类是和配置文件相关的函数
- */
- 'use strict';
- var quick = require('quick-pomelo');
- var P = quick.Promise;
- var uuid = require('node-uuid');
- var C = require('./constant');
- var _ = require('lodash');/////是一个一致性、模块化、高性能的 JavaScript 实用工具库。
- var logger = quick.logger.getLogger('fhmj', __filename);
- // 构造方法
- var setReabte = function (app) {
- if(!app) console.error("没有app");
- this.app = app;
- };
- // 导出类
- module.exports = setReabte;
- // 原型对象
- var proto = setReabte.prototype;
- // agenter表中字段说明:
- // 审核中返利和锁定返利是一个意思,指今日产生的返利,今日产生的返利今日是无法提取的,等到变更为可提现返利之后才能提取
- // 日结和解除锁定返利是一个意思,指将之前的审核中返利(verifyRebate)变更到可提现返利(rebateNow)这个操作,
- // 推广的日结(解除锁定返利)时机:进入推广后台(推广自己进入推广后台或者管理后台进入推广后台)或者该推广的链接完成一局游戏之后进行
- // 是否需要日结根据是否有审核中返利和审核时间进行判断,若需要日结则rebateNow+=verifyRebate; verifyRebate置0
- // 最开始时:
- // rebateCount:返利合计 = 基础 + 额外 单位是钻石且乘过比例的 在每局结束时增加该局消耗返利在日结时增加额外返利
- // rebateAll:自己基础的可提现总返利(不包含额外包含审核中的)单位是钻石且乘过比例的
- // rebateNow:可提现返利(已审核的自己基础的+额外的),在日结的时候增加,在提现的时候减少
- // rebateOther: 已审核的可提现总额 单位是钻石且乘过额外比例的,在日结的时候增加,此值没有减少的时候,为了记录该推广总的额外返利
- // verifyRebate:审核中返利,业绩模式记录的是消耗,在每局结束的时候增加,在日结的时候置0
- // rebateOut:已经提现的RMB(单位是分,一分对应rebateNow一个钻石)
- // 增加金牌推广员之前:(金牌推广员可以有自己的小组,组员是其他普通推广)
- // rebateCount:该推广的总消耗 单位是钻石 在每局结束时增加值为该局消耗
- // rebateAll:该推广的总消耗 单位是钻石 在每局结束时增加值为该局消耗
- // rebateNow:可提现返利(已审核的自己基础的+额外的),在日结的时候增加,在提现的时候减少
- // rebateOther:由于额外比例一直是0所以此值一直为0
- // verifyRebate:审核中的基础返利,业绩模式记录的是消耗,在每局结束的时候增加,在日结的时候置0
- // rebateOut:已经提现的RMB(单位是分,一分对应rebateNow的1/基础比例个钻石)
- // 增加金牌推广员之后:(金牌推广员可以有自己的小组,组员是其他普通推广)
- // rebateCount:该推广自己产生的总消耗 单位是钻石
- // rebateAll:自己基础的可提现总返利 单位是钻石且乘过比例的 (包括审核中的,每局结束之后修改)
- // rebateNow:可提现返利(已审核的自己基础的+额外的),在日结的时候增加,在提现的时候减少
- // rebateOther:由于额外比例一直是0所以此值一直为0
- // verifyRebate:审核中的基础返利,新模式记录的是消耗*基础比例,在每局结束的时候增加,在日结的时候置0
- // rebateOut:已经提现的RMB(单位是分,一分对应rebateNow一个钻石)
- // 以下是新加字段
- // levelFlag:推广等级0:实习,1:普通推广,2:金牌推广,3:比赛推广,4:传单推广
- // enabled:是否可用,0:不可用,1:可用,
- // parentAgenterId:上级推广ID,没有上级的此值为""
- // parentRate:上级推广的比例,无上级时此值为0,有上级此值才可能不为0
- // rebateAll2:自己小组的可提现总返利 单位是钻石且乘过比例的 (包括审核中的,每局结束之后修改)
- // rebateNow2:自己小组(下级推广)的可提现返利
- // verifyRebate2:自己小组(下级推广)的审核的返利
- // rebateOut2 :自己小组(下级推广)的已提现返利
- //agenter表中以下字段用来展示和计算额外返利使用的,是根据当时的展示和计算需求设计的,
- // 游戏次数用于展示今日(审核中)的额外返利明细,即由哪款游戏的几局房间分别完成的次数*对应的额外比例即可展示今日的额外返利明细
- // 哪种游戏几局房对应的游戏次数和消耗在该局完成之后记录,消耗记录的是消耗(没有*比例)
- //这些字段只是记录审核当中的,在日结的时候置0,目前没有额外比例所以去掉以下字段
- // dateGameTimes02: { type: Number, default: 0 }, // 冲刺游戏次数
- // dateGameTimes03: { type: Number, default: 0 }, // 冲刺游戏次数
- // dateGameTimes0: { type: Number, default: 0 }, // 冲刺游戏次数
- // dateGameTimes42: { type: Number, default: 0 }, // 4局游戏游戏次数
- // dateGameTimes43: { type: Number, default: 0 }, // 4局游戏游戏次数
- // dateGameTimes4: { type: Number, default: 0 }, // 4局游戏游戏次数
- // dateGameTimes82: { type: Number, default: 0 }, // 8局游戏次数
- // dateGameTimes83: { type: Number, default: 0 }, // 8局游戏次数
- // dateGameTimes8: { type: Number, default: 0 }, // 8局游戏次数
- // dateGameTimes162: { type: Number, default: 0 }, // 16局游戏次数
- // dateGameTimes163: { type: Number, default: 0 }, // 16局游戏次数
- // dateGameTimes164: { type: Number, default: 0 }, // 16局游戏次数
- // dateGameCost0: { type: Number, default: 0 }, // 冲刺游戏消耗
- // dateGameCost4: { type: Number, default: 0 }, // 4局游戏消耗
- // dateGameCost8: { type: Number, default: 0 }, // 8局游戏消耗
- // dateGameCost16: { type: Number, default: 0 }, // 16局游戏消耗
- //之前的额外返利计算:在日结的时候将各个游戏各个人次的房间的总消耗
- // 至少完成1小局之后才能走到这个文件
- ////该局有消耗且该局有推广员的话记录该推广的返利信息
- proto.writeReabteInfo = P.coroutine(function* (_agentId,_etime,_agentRebate,_gameCost,_giftCost,_recordid,_users,_gameId) {
- console.warn("代理返利写分+++++ wj _gameId "+_gameId+" allcost "+_agentRebate +" _agentId "+_agentId);
- let agentId = _agentId;
- let levelFlag = -1;
- let zjrNow = 0;//该推广目前的可提现返利,用来判断是否从实习推广变为正式推广
- let parentId = "";
- let parentRate = 0;
- let endtime = _etime;
- let allCost=_agentRebate;//游戏总消耗
- let gameCost=_gameCost;//游戏消耗
- let giftCost=_giftCost;//礼物消耗
- let recordid = _recordid;
- let gameId = _gameId;
- let nowverifyDate=this.getzdLDSJC(endtime);
- // console.warn("代理返利写分+++++ wj22")
- var agenter = yield this.app.models.Agenter.findByIdAsync(agentId,'levelFlag parentAgenterId parentRate rewardRate rebateOther rebateCount rebateAll rebateNow rebateOut verifyDate verifyRebate agentRate');
- // console.warn("代理返利写分+++++ wj33")
- if (agenter)
- {
- levelFlag = agenter.levelFlag;
- parentId = agenter.parentAgenterId;
- parentRate = agenter.parentRate;
- let rewardRate = agenter.rewardRate;
- let jcbl = agenter.rewardRate/100;//本局推广的基础比例
- let agentRebate2=parseInt(allCost*jcbl);//本局消耗乘以比例
- //日结算
- let verifyBool=false;//是否可以进行日结
- let verifyDate=0;//日结日期
- let verifyRebate=0;//日结数值
- let dateAgentRate=0;//额外奖励比例
- let dateRebate=0;//额外奖励数值(=额外比例*本局消耗),目前没有额外返利所以这个数值没有计算
- if(agenter.verifyRebate>0 && agenter.verifyDate!=nowverifyDate)
- {
- verifyBool=true;
- verifyDate=agenter.verifyDate;
- verifyRebate=agenter.verifyRebate;
- dateAgentRate=agenter.agentRate;
-
- agenter.rebateNow += verifyRebate;//可提返利+=日结算
- agenter.rebateNow += dateRebate;//可提返利+=额外返利
- agenter.rebateOther += dateRebate;
- agenter.verifyRebate=0;
- }
-
- //修改代理数据
- agenter.rebateCount += allCost;
- agenter.rebateAll += agentRebate2;
- agenter.verifyDate=nowverifyDate;
- agenter.verifyRebate+= agentRebate2;
- zjrNow = agenter.rebateNow;
- if(levelFlag == 0){
- if(zjrNow >= 1500) {
- levelFlag = 1;//从实习变为转正
- parentRate = agenter.parentRate;
- }
- }
- agenter.levelFlag = levelFlag;
- let rCount=agenter.rebateCount;
- let rOther=agenter.rebateOther;
- let rAll=agenter.rebateAll;
- let rNow=agenter.rebateNow;
- let rOut=agenter.rebateOut;
- let rVerifyDate=agenter.verifyDate;
- let rVerifyRebate=agenter.verifyRebate;
-
- yield agenter.saveAsync();
- // console.warn("代理返利写分+++++agenter.saveAsync()");
-
- // 锁定返利记录
- if(verifyBool && verifyRebate>0)
- {
- //至此可以进行日结算了,在奖励记录表里增加日结类型(type=3)的记录,
- var verifyrebateRecord = new this.app.models.RebateRecord({
- _id: uuid.v1(),
- agentId:agentId,
- tableId: '',
- rType: 3,
- rCount: rCount- allCost,
- rOther: rOther,
- rAll: rAll- agentRebate2,
- rNow: rNow,
- rOut: rOut,
- rSwap: verifyRebate,
- rDateSwap: dateRebate,
- rVerifyDate: verifyDate,
- rVerifyRebate: 0
- });
- yield verifyrebateRecord.saveAsync();
- }
- // 返利记录
- var rebateRecord = new this.app.models.RebateRecord({
- _id: uuid.v1(),
- agentId:agentId,
- tableId: recordid,
- rType: 1,
- rCount: rCount,
- rOther: rOther,
- rAll: rAll,
- rNow: rNow,
- rOut: rOut,
- rSwap: agentRebate2,
- rDateSwap: 0,
- rVerifyDate: rVerifyDate,
- rVerifyRebate: rVerifyRebate
- });
- yield rebateRecord.saveAsync();
- // console.warn("返利记录+++++rebateRecord.saveAsync()");
- //上面是记录推广的返利,下面是计算推广的上级返利
- // console.warn("返利记录+++++下面是计算推广的上级返利 parentId "+parentId + " levelFlag " + levelFlag + " parentRate " + parentRate);
- let pagentRebate2=0;//本局消耗乘以上级比例
- if(parentId && levelFlag == 1 && parentRate > 0){
- var pagenter = yield this.app.models.Agenter.findByIdAsync(parentId,'levelFlag parentAgenterId parentRate rebateAll2 rebateNow2 verifyRebate2 verifyDate2 rebateOut2 rebateOther rebateCount');
- if (pagenter && pagenter.levelFlag == 2)
- {
- // let parent
- // rebateNow2: { type: Number, default: 0 }, // 自己小组(下级推广)的可提现返利
- // verifyRebate2: { type: Number, default: 0 }, // 自己小组(下级推广)的审核的返利
- // rebateOut2: { type: Number, default: 0 }, // 自己小组(下级推广)的已提现返利
- let pjcbl = parentRate/100;//本局上级推广的基础比例
- pagentRebate2=parseInt(allCost*pjcbl);//本局消耗乘以上级比例
- //日结算
- let pverifyBool=false;//上级是否可以进行日结
- let pverifyDate=0;//上级日结日期
- let pverifyRebate=0;//上级日结数值
- if(pagenter.verifyRebate2>0 && pagenter.verifyDate2!=nowverifyDate)
- {
- pverifyBool=true;
- pverifyDate=pagenter.verifyDate2;
- pverifyRebate=pagenter.verifyRebate2;
-
- pagenter.rebateNow2 += pverifyRebate;//可提返利+=日结算
- pagenter.verifyRebate2=0;
- }
-
- //修改代理数据
- pagenter.rebateAll2 += pagentRebate2;
- pagenter.verifyDate2=nowverifyDate;
- pagenter.verifyRebate2+= pagentRebate2;
- let prCount=pagenter.rebateCount;
- let prOther=pagenter.rebateOther;
- let prAll=pagenter.rebateAll2;
- let prNow=pagenter.rebateNow2;
- let prOut=pagenter.rebateOut2;
- let prVerifyDate=pagenter.verifyDate2;
- let prVerifyRebate=pagenter.verifyRebate2;
-
- yield pagenter.saveAsync();
- // console.warn("代理上级返利写分+++++pagenter.saveAsync()");
-
- // 锁定返利记录
- if(pverifyBool && pverifyRebate>0)
- {
- //至此可以进行日结算了,在奖励记录表里增加日结类型(type=3)的记录,
- var pverifyrebateRecord = new this.app.models.RebateRecord({
- _id: uuid.v1(),
- agentId:parentId,
- tableId: '',
- rType: 5,
- rCount: prCount,
- rOther: prOther,
- rAll: prAll,
- rNow: prNow,
- rOut: prOut,
- rSwap: pverifyRebate,
- rDateSwap: dateRebate,
- rVerifyDate: pverifyDate,
- rVerifyRebate: 0
- });
- yield pverifyrebateRecord.saveAsync();
- // console.warn("代理上级日结写分+++++pverifyrebateRecord.saveAsync()");
- }
- // 返利记录
- var prebateRecord = new this.app.models.RebateRecord({
- _id: uuid.v1(),
- agentId:parentId,
- tableId: agentId,
- rType: 4,
- rCount: prCount,
- rOther: prOther,
- rAll: prAll,
- rNow: prNow,
- rOut: prOut,
- rSwap: pagentRebate2,
- rDateSwap: dateRebate,
- rVerifyDate: prVerifyDate,
- rVerifyRebate: prVerifyRebate
- });
- yield prebateRecord.saveAsync();
- // console.warn("保存该局推广的上级返利增加信息+++++prebateRecord.saveAsync()");
- }
- }
- //下面是该局有消耗且该局有推广员的话记录PlayerCount表
- let users = _users;
- // console.warn("下面是该局有消耗且该局有推广员的话记录PlayerCount表 "+users.length);
- let date=this.getzdLDSJC(endtime)
- for (var i = 0; i < users.length; i++) {
- if(!users[i]) continue;
- let user = users[i];
- // console.warn("下面是该局有消耗且该局有推广员的话记录PlayerCount表 user "+JSON.stringify(user));
- let cost = user.gameCost+user.giftCost;
- let countid=agentId+'-'+user.userId+'-'+date;
- let gameRebate = Math.floor(parseInt(cost*jcbl));
- var oldplayercount = yield this.app.models.PlayerCount.findByIdAsync(countid,'gameCount gameCost agentRebate time');
- if (oldplayercount)
- {
- oldplayercount.gameCount+=1;
- oldplayercount.gameCost+=cost;
- oldplayercount.agentRebate+=gameRebate;
- oldplayercount.time=Date.now();
- yield oldplayercount.saveAsync();
- }
- else
- {
- var newplayercount = new this.app.models.PlayerCount({
- _id: countid,
- agentId:agentId,
- playerId: user._id,
- userId: user.userId,
- name: user.name,
- date: date,
- gameCount: 1,
- gameCost: cost,
- agentRebate: gameRebate,
- time:Date.now()
- });
- yield newplayercount.saveAsync();
- }
-
- // console.warn("保存该局该玩家的playercount信息+++++playercount.saveAsync()");
- }
- ////下面是在每一局结束之后统计该局推广员当日信息
- let opts = {
- agentId: agentId,
- verifyDate: nowverifyDate,
- };
- var rqflList = yield this.app.models.DateRebateRecord.findMongoAsync(opts, 'verifyRebate dateRebate parentRebate allGameCost allGiftCost allGameTimes1 allGameTimes2 allGameTimes3 allGameTimes4 allPlayerCount');
- if (rqflList.length < 2){
-
- let allPlayerCount = 0;// 该日期该推广活跃玩家个数
- let opts1 = {agentId: agentId,date: nowverifyDate};
- allPlayerCount = yield this.app.models.PlayerCount.countMongoAsync(opts1);//由于上面刚刚写入PlayerCount所以这个数据是不准确的
- // console.warn("该日期该推广活跃玩家个数111 "+allPlayerCount+" nowverifyDate "+nowverifyDate +" agentId "+agentId);
- if (rqflList.length == 0)
- {
- let allGameCost = gameCost; // 该日期该推广产生的总游戏消耗
- let allGiftCost = giftCost; // 该日期该推广产生的总礼物消耗
- let allGameTimes1 = 0; // 该日期该推广产生的总游戏次数
- let allGameTimes2 = 0; // 该日期该推广产生的总游戏次数
- let allGameTimes3 = 0; // 该日期该推广产生的总游戏次数
- let allGameTimes4 = 0; // 该日期该推广产生的总游戏次数
- if(gameId == 10006) allGameTimes1+=1;// 湖南长沙
- else if(gameId == 10007) allGameTimes2+=1;// 湖南红中
- else if(gameId == 10008) allGameTimes3+=1; // 湖南跑得快
- else if(gameId == 10009) allGameTimes4+=1; // 湖南跑胡子
- var newdaterebateRecord = new this.app.models.DateRebateRecord({
- _id: uuid.v1(), // UUID
- agentId:agentId, // 代理标识
- verifyDate: nowverifyDate, // 数据的日期
- verifyRebate: agentRebate2, // 该日期自己的返利,单位是钻石,已乘过自己比例
- dateAgentRate: dateAgentRate, // 该日期额外返利的比例
- dateRebate: dateRebate, // 该日期 额外返利金额
- dateRewardRate: rewardRate, // 该日期该推广自己的返利的比例
- parentaId: parentId, // 代理上级的标识
- dateParentRate: parentRate, // 该日期该推广上级的返利的比例
- parentRebate: pagentRebate2, // 该日期 该推广上级的返利金额
- allGameCost: allGameCost, // 该日期该推广产生的总游戏消耗
- allGiftCost: allGiftCost, // 该日期该推广产生的总礼物消耗
- allGameTimes1: allGameTimes1, // 该日期该推广产生的总游戏1次数
- allGameTimes2: allGameTimes2, // 该日期该推广产生的总游戏2次数
- allGameTimes3: allGameTimes3, // 该日期该推广产生的总游戏3次数
- allGameTimes4: allGameTimes4, // 该日期该推广产生的总游戏4次数
- allPlayerCount: allPlayerCount, // 该日期该推广活跃玩家个数
- });
- yield newdaterebateRecord.saveAsync();
- }
- else if (rqflList.length == 1)
- {
- rqflList[0].verifyRebate += agentRebate2;
- rqflList[0].dateRebate += dateRebate;
- rqflList[0].parentRebate += pagentRebate2;
- rqflList[0].allGameCost += gameCost;
- rqflList[0].allGiftCost += giftCost;
- if(gameId == 10006) rqflList[0].allGameTimes1+=1;// 湖南长沙
- else if(gameId == 10007) rqflList[0].allGameTimes2+=1;// 湖南红中
- else if(gameId == 10008) rqflList[0].allGameTimes3+=1; // 湖南跑得快
- else if(gameId == 10004) rqflList[0].allGameTimes4+=1; // 湖南跑胡子
- rqflList[0].allPlayerCount = allPlayerCount;//活跃人数
- yield rqflList[0].saveAsync();
- }
- }
- else{
- let str3 = "该局推广员当日信息错误.......gameId: "+ gameId + " recordid: " + recordid + " agentId: " + agentId + " endtime: " + endtime;
- logger.warn(str3);////cssj
- }
- ////上面是在每一局结束之后统计该局推广员当日信息
- ////下面是按照日结的方式第二天统计前一天的推广员当日信息
- // if(verifyBool && verifyRebate>0)
- // {
- // //在可以日结的时候记录日结日期返利记录表里增加记录
- // let parentRebate = 0; // 该日期 该推广上级的返利金额
- // let allGameCost = 0; // 该日期该推广产生的总游戏消耗
- // let allGiftCost = 0; // 该日期该推广产生的总礼物消耗
- // let allGameTimes1 = 0; // 该日期该推广产生的总游戏次数
- // let allGameTimes2 = 0; // 该日期该推广产生的总游戏次数
- // let allGameTimes3 = 0; // 该日期该推广产生的总游戏次数
- // let allGameTimes4 = 0; // 该日期该推广产生的总游戏次数
- // let allPlayerCount = 0;// 该日期该推广活跃玩家个数
- // let opts1 = {
- // agentId: agentId,
- // time: { $gte: verifyDate, $lt: verifyDate+86400000}
- // };
- // var jrList1 = yield this.app.models.FHMJTables.findMongoAsync(opts1, 'gameId gameCost giftCost');
- // for (let i = 0; i < jrList1.length; i++){
- // allGameCost += jrList1[i].gameCost; // 该日期该推广产生的总游戏消耗
- // allGiftCost += jrList1[i].giftCost; // 该日期该推广产生的总礼物消耗
- // if(jrList1[i].gameId == 10006) allGameTimes1+=1;// 湖南长沙
- // else if(jrList1[i].gameId == 10007) allGameTimes2+=1;// 湖南红中
- // else if(jrList1[i].gameId == 10008) allGameTimes3+=1; // 湖南跑得快
- // else if(jrList1[i].gameId == 10009) allGameTimes4+=1; // 湖南跑胡子
- // }
- // let opts = {agentId: agentId,date: verifyDate};
- // allPlayerCount = yield this.app.models.PlayerCount.countMongoAsync(opts)
- // let opts2 = {
- // agentId: parentId,
- // rType: 4,
- // tableId: agentId,
- // rVerifyDate: { $gte: verifyDate, $lt: verifyDate+86400000}
- // };
- // var jrList2 = yield this.app.models.RebateRecord.findMongoAsync(opts2, 'gameId gameCost giftCost');
- // for (let i = 0; i < jrList2.length; i++){
- // parentRebate += jrList2[i].rSwap; // 该日期该推广给上级产生的贡献
- // }
- // var daterebateRecord = new this.app.models.DateRebateRecord({
- // _id: uuid.v1(),
- // agentId:agentId,
- // verifyDate: verifyDate,
- // verifyRebate: verifyRebate,
- // dateAgentRate: dateAgentRate,
- // dateRebate: dateRebate,
- // dateRewardRate: rewardRate, // 进行日结当日该推广自己的返利的比例
- // parentaId: parentId, // 代理上级的标识
- // dateParentRate: parentRate, // 进行日结当日该推广上级的返利的比例
- // parentRebate: parentRebate, // 该日期 该推广上级的返利金额
- // allGameCost: allGameCost, // 该日期该推广产生的总游戏消耗
- // allGiftCost: allGiftCost, // 该日期该推广产生的总礼物消耗
- // allGameTimes1: allGameTimes1, // 该日期该推广产生的总游戏1次数
- // allGameTimes2: allGameTimes2, // 该日期该推广产生的总游戏2次数
- // allGameTimes3: allGameTimes3, // 该日期该推广产生的总游戏3次数
- // allGameTimes4: allGameTimes4, // 该日期该推广产生的总游戏4次数
- // allPlayerCount: allPlayerCount, // 该日期该推广活跃玩家个数
- // });
- // yield daterebateRecord.saveAsync();
- // console.warn("保存该局推广的日统计+++++daterebateRecord.saveAsync()");
- // }
- }
- let str4 = "该局推广数据写入完成.......gameId: "+ gameId + " recordid: " + recordid + " agentId: " + agentId + " endtime: " + endtime;
- logger.warn(str4);////cssj
- // return true;
- });
- ////该局有消耗且该局有推广员的话记录PlayerCount表
- // proto.writePlayerCountInfo = P.coroutine(function* (_agentId,_etime,_users,_cost,_isGameOk,_gameId) {
- // console.warn("该局有消耗且该局有推广员的话记录PlayerCount表 _gameId "+_gameId+" _cost "+_cost+" _isGameOk "+_isGameOk)
- // console.warn("该局有消耗且该局有推广员的话记录PlayerCount表 _users "+JSON.stringify(_users))
- // let agentId = _agentId;
- // let endtime = _etime;
- // let users = _users;
- // let cost = _cost;
-
- // let date=this.getzdLDSJC(endtime)
- // for (var i = 0; i < users.length; i++) {
- // if(!users[i]) continue;
- // let user = users[i];
- // let countid=agentId+'-'+user.userId+'-'+date;
- // var playercount = yield this.app.models.PlayerCount.findByIdAsync(countid,'gameCount gameCost agentRebate time');
- // if (playercount)
- // {
- // playercount.gameCount+=1;
- // playercount.gameCost+=cost;
- // playercount.agentRebate+=gameRebate;
- // playercount.time=Date.now();
- // }
- // else
- // {
- // playercount = new this.app.models.PlayerCount({
- // _id: countid,
- // agentId:agentId,
- // playerId: user._id,
- // userId: user.userId,
- // name: user.name,
- // date: date,
- // gameCount: 1,
- // gameCost: cost,
- // agentRebate: gameRebate,
- // time:Date.now()
- // });
- // }
- // yield playercount.saveAsync();
- // }
- // return true;
- // });
- //在玩家站起的时候更新该局推广员当日信息表中的allPlayerCount数据,
- //原因是游戏结束的时候写入这个表之前刚刚写过playerCount这个表,导致读取playerCount的数据不准确(没有本局的数据),
- //所以在玩家站起之后再读取playerCount去更新该局推广员当日信息表中的allPlayerCount数据
- proto.updateDaterebateRecord = P.coroutine(function* (_agentId,_etime) {
- let agentId = _agentId;
- let endtime = _etime;
- let nowverifyDate=this.getzdLDSJC(endtime);
- let opts = {
- agentId: agentId,
- verifyDate: nowverifyDate,
- };
- var rqflList = yield this.app.models.DateRebateRecord.findMongoAsync(opts, 'allPlayerCount');
- if (rqflList.length < 2){
- let allPlayerCount = 0;// 该日期该推广活跃玩家个数
- let opts1 = {agentId: agentId,date: nowverifyDate};
- allPlayerCount = yield this.app.models.PlayerCount.countMongoAsync(opts1)
- // console.warn("该日期该推广活跃玩家个数222 "+allPlayerCount+" nowverifyDate "+nowverifyDate +" agentId "+agentId);
- if (rqflList.length == 1)
- {
- // console.warn("该日期该推广活跃玩家个数333 "+allPlayerCount+" rqflList[0].allPlayerCount "+rqflList[0].allPlayerCount );
- if(rqflList[0].allPlayerCount != allPlayerCount){
- rqflList[0].allPlayerCount = allPlayerCount;//活跃人数
- yield rqflList[0].saveAsync();
- // console.warn("该日期该推广活跃玩家个数333 ");
- }
- }
- }
- else{
- let str3 = "该局推广员当日信息错误222.......gameId: "+ gameId + " recordid: " + recordid + " agentId: " + agentId + " endtime: " + endtime;
- logger.warn(str3);////cssj
- }
- return true;
- });
- //TL++,得到指定时间戳(_time)当日0点的时间戳
- proto.getzdLDSJC = function (_time){
- var today = new Date(_time);
- today.setHours(0);
- today.setMinutes(0);
- today.setSeconds(0);
- today.setMilliseconds(0);
- let jrsjc = today.getTime();
- // console.warn("111得到今日0点的时间戳 ",jrsjc, typeof jrsjc);
- return jrsjc;
- };
- //TL++,得到今日0点的时间戳
- proto.getTodaySJC = function (){
- var today = new Date();
- today.setHours(0);
- today.setMinutes(0);
- today.setSeconds(0);
- today.setMilliseconds(0);
- let jrsjc = today.getTime();
- // console.warn("111得到今日0点的时间戳 ",jrsjc, typeof jrsjc);
- return jrsjc;
- };
- //TL++,得到是否是比赛链接
- proto.getIsBS = function (agentId,ownerName,ownerUid){
- let aidsub = agentId.substr(0, 9);
- let bsIndex = aidsub.indexOf("promote_");
- if(bsIndex != -1 && ownerName == "系统比赛" && ownerUid == 0) return true;
- return false;
- };
|