修改自定义题库的导入接口
This commit is contained in:
parent
9b65560dd4
commit
6963e7e626
@ -88,4 +88,49 @@ export default class ShopPuzzleController extends BaseController {
|
||||
const { shop } = req.params
|
||||
return await ShopPuzzle.allTags(shop)
|
||||
}
|
||||
|
||||
@router('post /api/:shop/puzzle/import')
|
||||
async insertMany(req, res) {
|
||||
let { datas, shop } = req.params
|
||||
if (!Array.isArray(datas)) {
|
||||
throw new ZError(11, '数据结构不正确, datas必须为数组')
|
||||
}
|
||||
if (!shop) {
|
||||
throw new ZError(12, '请指定要导入的店铺')
|
||||
}
|
||||
for (let data of datas) {
|
||||
data.shop = shop
|
||||
if (!data.groups && data.tags) {
|
||||
data.groups = data.tags.split(',')
|
||||
}
|
||||
}
|
||||
let result: any = {}
|
||||
try {
|
||||
let results = await ShopPuzzle.bulkWrite(
|
||||
datas.map(data => ({
|
||||
updateOne: {
|
||||
filter: { shop: data.shop, question: data.question },
|
||||
update: { $set: data },
|
||||
upsert: true,
|
||||
},
|
||||
})),
|
||||
{ ordered: false },
|
||||
)
|
||||
result.insert = results.upsertedCount + results.insertedCount
|
||||
result.update = results.modifiedCount
|
||||
result.skip = 0
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
result.insert = err.upsertedCount + err.insertedCount
|
||||
result.update = err.modifiedCount
|
||||
}
|
||||
try {
|
||||
await ShopPuzzle.updateMany({ deleted: { $exists: false } }, { $set: { deleted: 0 } })
|
||||
await ShopPuzzle.updateMany({ is_hide: { $exists: false } }, { $set: { is_hide: 0 } })
|
||||
await ShopPuzzle.updateMany({ quality: { $exists: false } }, { $set: { quality: 1 } })
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
@ -138,6 +138,7 @@ export class ShopExamClass extends BaseModule {
|
||||
* 题目来源
|
||||
* 0: 系统题目
|
||||
* 1: 自定义
|
||||
* 2: 店铺自定义题库
|
||||
* @type {number}
|
||||
*/
|
||||
@prop({ default: 0 })
|
||||
|
@ -15,6 +15,7 @@ export interface ShopPuzzleClass extends Base, TimeStamps {}
|
||||
|
||||
@dbconn()
|
||||
@index({ shop: 1 }, { unique: false })
|
||||
@index({ shop: 1, question: 1 }, { unique: true })
|
||||
@index({ groups: 1 }, { unique: false })
|
||||
@index({ shop: 1, tag: 1, sub_tag: 1 }, { unique: false })
|
||||
@modelOptions({ schemaOptions: { collection: 'shop_puzzle', timestamps: true } })
|
||||
@ -38,6 +39,13 @@ export class ShopPuzzleClass extends BaseModule {
|
||||
@prop({ default: 1 })
|
||||
public quality: number
|
||||
|
||||
/**
|
||||
* 题目类型: 1: 正常单选题, 2: 图片, 3: 问卷式题目
|
||||
* @type {number}
|
||||
*/
|
||||
@prop({ default: 1 })
|
||||
public type: number
|
||||
|
||||
/**
|
||||
* 大分类
|
||||
* @type {string}
|
||||
|
Loading…
x
Reference in New Issue
Block a user