Files
ZYZ/game-server/app/services/orderService.ts
2021-05-20 11:19:20 +08:00

83 lines
3.1 KiB
TypeScript

import { UserOrderModel } from '../db/UserOrder';
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
import { SignInData, SignInItem } from '../domain/activityField/signInField';
import { ACTIVITY_TYPE, ORDER_STATE } 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';
/**
* 结算账单
* @param localOrderID 本地订单号
*/
export async function makeOrder(localOrderID: string, sid: string) {
let orderInfo = await UserOrderModel.findOrder(localOrderID);
if (!orderInfo) {
return '查无此订单';
}
if (orderInfo.state == ORDER_STATE.RESULT_SUCCESS) {
return '结算过';
}
//商品价格信息
let productInfo = dicRMB.get(orderInfo.productID)
if (!productInfo) {
return '无效商品';
}
let productType = productInfo.type;//类型
let price = orderInfo.price;//下单时的价格
let payType = orderInfo.payType;//支付类型
let roleId = orderInfo.roleId;//角色
const roleInfo = await RoleModel.findByRoleId(roleId);
switch (productType) {
case ACTIVITY_TYPE.SIGN_IN_VIP:
{
let resule = await makeSignInVIP(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE:
{
break;
}
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY:
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY:
{
break;
}
case ACTIVITY_TYPE.YUAN_BAO_SHOP:
{
let resule = 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:
{
let resule = await makeMonthlyTicketReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
case ACTIVITY_TYPE.RECHARGE_MONEY:
{
let resule = await makeDailyRMBGiftsReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
case ACTIVITY_TYPE.POP_UP_SHOP:
{
let resule = await makePopUpShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
default:
return '未知商品类型';
}
return { goods: [], addHeros: [] }
}