83 lines
3.1 KiB
TypeScript
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: [] }
|
|
} |