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: [] } }