活动:支付添加错误码返回
This commit is contained in:
@@ -178,14 +178,18 @@ export class orderHandler {
|
||||
|
||||
//结算奖励
|
||||
let result = await makeOrder(localOrderID, sid, orderInfo);
|
||||
if (result.code !== 0) {//结算失败
|
||||
console.log(`测试支付失败..... ${JSON.stringify(result)}`)
|
||||
return resResult(result);
|
||||
}
|
||||
//推送
|
||||
this.app.channelService.pushMessageByUids('onOrder', resResult(STATUS.SUCCESS, {
|
||||
data: result,
|
||||
data: result.data,
|
||||
}), [{ uid: roleId, sid: sid }]);
|
||||
//活动统计
|
||||
await addRechargeMoney(roleId, serverId, price);
|
||||
console.log('结算完成', localOrderID)
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
return resResult(STATUS.SUCCESS, result.data);
|
||||
}
|
||||
|
||||
return resResult(STATUS.DUPLICATE_ORDER);
|
||||
@@ -243,14 +247,18 @@ export class orderHandler {
|
||||
if (orderInfo) {
|
||||
//结算奖励
|
||||
let result = await makeOrder(localOrderID, sid, orderInfo);
|
||||
if (result.code !== 0) {//结算失败
|
||||
console.log(`测试支付失败..... ${JSON.stringify(result)}`)
|
||||
return resResult(result);
|
||||
}
|
||||
//推送
|
||||
this.app.channelService.pushMessageByUids('onOrder', resResult(STATUS.SUCCESS, {
|
||||
data: result,
|
||||
data: result.data,
|
||||
}), [{ uid: roleId, sid: sid }]);
|
||||
//活动统计
|
||||
await addRechargeMoney(roleId, serverId, price);
|
||||
console.log(`测试支付完成!!!!!!!!!!!!! serverId:${serverId}, productID:${productID}, productType:${productType}, roleId:${roleId}, localOrderID:${localOrderID}, payType:${payType}`)
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
return resResult(STATUS.SUCCESS, result.data);
|
||||
}
|
||||
|
||||
return resResult(STATUS.NO_ORDER, {});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityDailyRMBGiftsModel, ActivityDailyRMBGiftsModelType } from '../db/ActivityDailyRMBGifts';
|
||||
import { DailyRMBGiftsData, DailyRMBGiftsItem } from '../domain/activityField/dailyRMBGiftsField';
|
||||
@@ -72,20 +72,26 @@ export async function makeDailyRMBGiftsReward(roleId: string, roleName: string,
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.RECHARGE_MONEY) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_TYPE_ERROR;
|
||||
}
|
||||
let playerData = new DailyRMBGiftsData(activityData);
|
||||
let bigGiftProductID = playerData.productID;
|
||||
if (bigGiftProductID == productID) {//一次性购买7天礼包
|
||||
let buyTime = moment(new Date()).startOf('d').toDate()
|
||||
let endTime = moment(buyTime).add(7, 'd').endOf('d').toDate()
|
||||
return Object.assign({}, { item: { endTime, receiveCount: 0 } })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign({}, { item: { endTime, receiveCount: 0 } })
|
||||
}
|
||||
} else {
|
||||
let item = playerData.findProduct(productID);
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(item.reward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
item.isBuy = true;
|
||||
item.isReceive = true;
|
||||
return Object.assign(result, { item })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign(result, { item })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityGrowthFundModel, ActivityGrowthFundModelType } from '../db/ActivityGrowthFund';
|
||||
import { ActivityBuyRecordsModel, ActivityBuyRecordsModelType } from '../db/ActivityBuyRecords';
|
||||
@@ -126,15 +126,18 @@ export async function getPlayerGrowthFundData(activityId: number, serverId: numb
|
||||
export async function makeGrowthFund(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP) {
|
||||
return null;
|
||||
}
|
||||
if (!activityData) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_MISSING;
|
||||
}
|
||||
if (activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP) {
|
||||
return STATUS.ACTIVITY_TYPE_ERROR;
|
||||
}
|
||||
let playerData = new GrowthFundData(activityData);
|
||||
let pageData = playerData.findPageByProductID(productID);
|
||||
let pageIndex = pageData.pageIndex;
|
||||
await ActivityBuyRecordsModel.addRecord(activityId, roleId, activityData.type, pageIndex, true);
|
||||
return Object.assign({}, { item: { pageIndex }, activityId: activityId })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign({}, { item: { pageIndex }, activityId: activityId })
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import moment = require('moment');
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityShopModel, ActivityShopModelType } from '../db/ActivityShop';
|
||||
import { RoleModel } from '../db/Role';
|
||||
@@ -103,12 +103,12 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (!activityData) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_MISSING;
|
||||
}
|
||||
if (activityData.type !== ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE &&
|
||||
activityData.type !== ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY &&
|
||||
activityData.type !== ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_TYPE_ERROR;
|
||||
}
|
||||
let playerData = new LimitShopData(activityData);
|
||||
|
||||
@@ -117,10 +117,10 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s
|
||||
|
||||
let item = playerData.findItemByProductID(productID);
|
||||
if (!item) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_NO_PRODUCT;
|
||||
}
|
||||
if (item.countMax > 0 && item.buyCount >= item.countMax) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_MAX_COUNT;
|
||||
}
|
||||
|
||||
let rewardArray = stringToRewardParam(item.reward)
|
||||
@@ -129,5 +129,8 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s
|
||||
await ActivityShopModel.addRecord(activityId, roleId, playerData.roundIndex, item.id);
|
||||
|
||||
item.buyCount += 1;
|
||||
return Object.assign(result, { item: item, activityId: activityId })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign(result, { item: item, activityId: activityId })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ export async function makeMonthlyTicketReward(roleId: string, roleName: string,
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.MONTHLY_TICKET_1 && activityData.type !== ACTIVITY_TYPE.MONTHLY_TICKET_2) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_TYPE_ERROR;
|
||||
}
|
||||
|
||||
let playerData = new MonthlyTicketData(activityData);
|
||||
@@ -127,5 +127,8 @@ export async function makeMonthlyTicketReward(roleId: string, roleName: string,
|
||||
let firstReward = playerData.firstReward;
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(firstReward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
return Object.assign(result, { item: { isOpen: true, todayIndex: 1 }, activityId: activityData.activityId })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign(result, { item: { isOpen: true, todayIndex: 1 }, activityId: activityData.activityId })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ export async function makeOrder(localOrderID: string, sid: string, orderInfo: Us
|
||||
|
||||
const roleInfo = await RoleModel.findByRoleId(roleId);
|
||||
|
||||
let rewardResult: any = {};
|
||||
let rewardResult: any = { code: 0, data: null };
|
||||
|
||||
//首冲礼包
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { PopUpShopData, } from '../domain/activityField/popUpShopField';
|
||||
import { RewardParam } from '../domain/activityField/rewardField';
|
||||
@@ -69,23 +69,26 @@ export async function makePopUpShopReward(roleId: string, roleName: string, sid:
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (!activityData) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_MISSING;
|
||||
}
|
||||
if (activityData.type !== ACTIVITY_TYPE.POP_UP_SHOP) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_TYPE_ERROR;
|
||||
}
|
||||
let allTaskData: any[] = JSON.parse(activityData.data);
|
||||
let taskIndex = allTaskData.findIndex(obj => { return obj && obj.data.productID == productID });
|
||||
if (taskIndex == -1) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_NO_PRODUCT;
|
||||
}
|
||||
let playerData = new PopUpShopData(allTaskData[taskIndex]);
|
||||
let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.addRecord(serverId, activityId, roleId, playerData.id);
|
||||
if (!playerRecords) {
|
||||
return null;
|
||||
return STATUS.APPLY_ORDER_ERROR;
|
||||
}
|
||||
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.reward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
return Object.assign(result, { item: { isBuy: true }, activityId: activityData.activityId })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign(result, { item: { isBuy: true }, activityId: activityData.activityId })
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import moment = require('moment');
|
||||
import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_CLOSE, SIGNIN_OPEN, SIGNIN_VIP_OPEN_LIMIT } from '../consts';
|
||||
import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_CLOSE, SIGNIN_OPEN, SIGNIN_VIP_OPEN_LIMIT, STATUS } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
@@ -94,13 +94,16 @@ export async function makeSignInVIP(roleId: string, roleName: string, sid: strin
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.SIGN_IN_VIP) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_TYPE_ERROR;
|
||||
}
|
||||
let playerData = new SignInData(activityData);
|
||||
|
||||
await ActivitySignInModel.buyVIP(activityId, roleId, playerData.roundIndex);
|
||||
|
||||
return Object.assign({}, { item: { isVip: true }, activityId: activityData.activityId })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign({}, { item: { isVip: true }, activityId: activityData.activityId })
|
||||
}
|
||||
}
|
||||
|
||||
//高级签到开启条件
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { UserOrderModel, UserOrderModelType } from '../db/UserOrder';
|
||||
@@ -60,7 +60,7 @@ export async function makeYuanbaoShopReward(roleId: string, roleName: string, si
|
||||
let records = await UserOrderModel.findSuccessOrderByProductID(productID, roleId, activityId);
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.YUAN_BAO_SHOP) {
|
||||
return null;
|
||||
return STATUS.ACTIVITY_TYPE_ERROR;
|
||||
}
|
||||
let playerData = new YuanBaoShopData(activityData);
|
||||
let item = playerData.findItem(productID);
|
||||
@@ -85,5 +85,8 @@ export async function makeYuanbaoShopReward(roleId: string, roleName: string, si
|
||||
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, arr)
|
||||
item.buyCount += 1;
|
||||
return Object.assign(result, { item, activityId: activityData.activityId })
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign(result, { item, activityId: activityData.activityId })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,6 +386,8 @@ export const STATUS = {
|
||||
ORDER_ERROR: { code: 70006, simStr: '订单错误' },
|
||||
PRICE_ERROR: { code: 70007, simStr: '价格错误' },
|
||||
NO_PAY: { code: 70008, simStr: '未支付' },
|
||||
NO_MOTHLY_TICKET_REWARD: { code: 70009, simStr: '没有可领取的月卡奖励' }
|
||||
NO_MOTHLY_TICKET_REWARD: { code: 70009, simStr: '没有可领取的月卡奖励' },
|
||||
ACTIVITY_TYPE_ERROR: { code: 70010, simStr: '活动类型错误' },
|
||||
ACTIVITY_NO_PRODUCT: { code: 70011, simStr: '活动数据错误' }
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ export default class Activity_Pop_Up_Shop extends BaseModel {
|
||||
@prop({ required: true })
|
||||
isBuy: boolean; // 是否购买
|
||||
|
||||
//购买奖励的记录
|
||||
//购买记录
|
||||
public static async addRecord(serverId: number, activityId: number, roleId: string, id: number) {
|
||||
let nowDate = new Date();
|
||||
let result: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOneAndUpdate({
|
||||
|
||||
@@ -34,7 +34,7 @@ export default class Activity_Sign_In extends BaseModel {
|
||||
records.push(record)
|
||||
}
|
||||
let result: ActivitySignInModelType = await ActivitySignInModel.findOneAndUpdate({ roleId, activityId, roundIndex },
|
||||
{ $push: { records: { $each: records } } }, { new: true }).lean(true);
|
||||
{ $push: { records: { $each: records } } }, { upsert: true, new: true }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user