feat: 完整支付配套——CoinLedger流水模型+充值/消费/退款全链写流水+管理后台订单/余额/退款/调整/统计页+用户明细页+余额卡明细入口
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
const mongoose = require('mongoose')
|
||||
|
||||
/**
|
||||
* 星尘余额流水 —— 每次充值/消费/退款/管理员调整都记一条
|
||||
*/
|
||||
const CoinLedgerSchema = new mongoose.Schema({
|
||||
openid: { type: String, required: true, index: true },
|
||||
userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User', index: true },
|
||||
// recharge=充值 | consume=消费 | refund=退款 | adjust=管理员调整 | gift=赠送
|
||||
type: { type: String, enum: ['recharge', 'consume', 'refund', 'adjust', 'gift'], required: true },
|
||||
amount: { type: Number, required: true }, // 正=入账 负=扣减
|
||||
balanceAfter: { type: Number, required: true }, // 操作后余额(对账用)
|
||||
description: { type: String, default: '' },
|
||||
orderNo: { type: String, default: '', index: true },
|
||||
adminName: { type: String, default: '' }, // adjust 时记录操作管理员
|
||||
createdAt: { type: Date, default: Date.now, index: true }
|
||||
})
|
||||
|
||||
module.exports = mongoose.model('CoinLedger', CoinLedgerSchema)
|
||||
+31
-29
@@ -1,29 +1,31 @@
|
||||
const User = require('./User')
|
||||
const Order = require('./Order')
|
||||
const Knowledge = require('./Knowledge')
|
||||
const KnowledgeLit = require('./KnowledgeLit')
|
||||
const ShopItem = require('./ShopItem')
|
||||
const Admin = require('./Admin')
|
||||
const AdminLog = require('./AdminLog')
|
||||
const AIChatQuota = require('./AIChatQuota')
|
||||
const AIModel = require('./AIModel')
|
||||
const LoginLog = require('./LoginLog')
|
||||
const Feedback = require('./Feedback')
|
||||
const Trend = require('./Trend')
|
||||
const VerificationCode = require('./VerificationCode')
|
||||
|
||||
module.exports = {
|
||||
User,
|
||||
Order,
|
||||
Knowledge,
|
||||
KnowledgeLit,
|
||||
ShopItem,
|
||||
Admin,
|
||||
AdminLog,
|
||||
AIChatQuota,
|
||||
AIModel,
|
||||
LoginLog,
|
||||
Feedback,
|
||||
Trend,
|
||||
VerificationCode
|
||||
}
|
||||
const User = require('./User')
|
||||
const Order = require('./Order')
|
||||
const Knowledge = require('./Knowledge')
|
||||
const KnowledgeLit = require('./KnowledgeLit')
|
||||
const ShopItem = require('./ShopItem')
|
||||
const Admin = require('./Admin')
|
||||
const AdminLog = require('./AdminLog')
|
||||
const AIChatQuota = require('./AIChatQuota')
|
||||
const AIModel = require('./AIModel')
|
||||
const LoginLog = require('./LoginLog')
|
||||
const Feedback = require('./Feedback')
|
||||
const Trend = require('./Trend')
|
||||
const VerificationCode = require('./VerificationCode')
|
||||
const CoinLedger = require('./CoinLedger')
|
||||
|
||||
module.exports = {
|
||||
User,
|
||||
Order,
|
||||
Knowledge,
|
||||
KnowledgeLit,
|
||||
ShopItem,
|
||||
Admin,
|
||||
AdminLog,
|
||||
AIChatQuota,
|
||||
AIModel,
|
||||
LoginLog,
|
||||
Feedback,
|
||||
Trend,
|
||||
VerificationCode,
|
||||
CoinLedger
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user