111 lines
4.9 KiB
TypeScript
111 lines
4.9 KiB
TypeScript
import { UserOrderModel, UserOrderModelType } from '../db/UserOrder';
|
|
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
|
import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
|
import { ACTIVITY_TYPE, ORDER_STATE, STATUS } from '../consts';
|
|
import { dicRMB } from '../pubUtils/dictionary/DicRMB';
|
|
import { makeYuanbaoShopReward } from './yuanbaoService';
|
|
import { RoleModel } from '../db/Role';
|
|
import { makeMonthlyTicketReward } from './monthlyTicketService';
|
|
import { makeSignInVIP } from './signInService';
|
|
import { makeDailyRMBGiftsReward } from './dailyRMBGiftsService';
|
|
import { makePopUpShopReward } from './popUpShopService';
|
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
|
import { ActivityFirstGiftModel } from '../db/ActivityFirstGift';
|
|
import { ServerlistModel } from '../db/Serverlist';
|
|
import { makeGrowthFund } from './growthFundService';
|
|
import { makeLimitPackageReward } from './limitPackageService';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* 结算账单
|
|
* @param localOrderID 本地订单号
|
|
*/
|
|
export async function makeOrder(localOrderID: string, sid: string, orderInfo: UserOrderModelType) {
|
|
// let orderInfo = await UserOrderModel.findOrder(localOrderID);
|
|
|
|
//商品价格信息
|
|
let productInfo = dicRMB.get(orderInfo.productID)
|
|
|
|
|
|
let productType = productInfo.type;//类型
|
|
let price = orderInfo.price;//下单时的价格
|
|
let payType = orderInfo.payType;//支付类型
|
|
let roleId = orderInfo.roleId;//角色
|
|
|
|
const roleInfo = await RoleModel.findByRoleId(roleId);
|
|
|
|
let rewardResult: any = { code: 0, data: null };
|
|
|
|
//首冲礼包
|
|
{
|
|
let { activityGroupId } = await ServerlistModel.findByServerId(orderInfo.serverId);
|
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.FIRST_GIFT, new Date())
|
|
for (let obj of activityArray) {
|
|
await ActivityFirstGiftModel.begin(obj.activityId, roleId);
|
|
}
|
|
}
|
|
|
|
|
|
switch (productType) {
|
|
case ACTIVITY_TYPE.SIGN_IN_VIP:
|
|
{
|
|
rewardResult = await makeSignInVIP(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE:
|
|
{
|
|
rewardResult = await makeLimitPackageReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY:
|
|
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY:
|
|
{
|
|
rewardResult = await makeLimitPackageReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.YUAN_BAO_SHOP:
|
|
{
|
|
rewardResult = await makeYuanbaoShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
|
|
case ACTIVITY_TYPE.MONTHLY_TICKET_1:
|
|
case ACTIVITY_TYPE.MONTHLY_TICKET_2:
|
|
{
|
|
rewardResult = await makeMonthlyTicketReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.DAILY_RMB_GIFTS:
|
|
{
|
|
rewardResult = await makeDailyRMBGiftsReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.POP_UP_SHOP:
|
|
{
|
|
rewardResult = await makePopUpShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP: //主线成长基金(高阶)
|
|
{
|
|
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP://镇念塔成长基金(高阶)
|
|
{
|
|
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP://精英成长基金(高阶)
|
|
{
|
|
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
|
break;
|
|
}
|
|
default:
|
|
rewardResult = STATUS.ERROR_TYPE;
|
|
break;
|
|
}
|
|
return rewardResult
|
|
} |