| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- const API = require("../../../lib/API")
- const db = require("../../../plugin/DataBase/db")
- const AccessControl = require("../../../lib/AccessControl")
- const { BaseStdResponse } = require("../../../BaseStdResponse")
- class GetSendCountRequestList extends API {
- constructor() {
- super()
- this.setPath("/Admin/Goods/SendCountRequest/List")
- this.setMethod("GET")
- }
- async onRequest(req, res) {
- let { uuid, session, pagesize, current, status } = req.query
- if ([uuid, session, pagesize, current].some(value => value === "" || value === null || value === undefined))
- return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
- if (isNaN(pagesize) || pagesize <= 0 || pagesize > 50 || isNaN(current) || current <= 0)
- return res.json({ ...BaseStdResponse.ERR, msg: "参数错误" })
- if (!await AccessControl.checkSession(uuid, session))
- return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
- let permission = await AccessControl.getPermission(uuid)
- if (!permission.includes("admin") && !permission.includes("service"))
- return res.json({ ...BaseStdResponse.PERMISSION_DENIED })
- const statusList = ["pending", "approved", "rejected"]
- if (status && !statusList.includes(status))
- return res.json({ ...BaseStdResponse.ERR, msg: "状态参数错误" })
- const offset = (Number(current) - 1) * Number(pagesize)
- let sql = `
- SELECT
- r.id,
- r.sender_uuid,
- su.username AS sender_username,
- r.receiver_user_id,
- ru.username AS receiver_username,
- r.count,
- r.status,
- r.created_at,
- r.reviewed_at,
- r.reviewer_uuid,
- rv.username AS reviewer_username,
- r.reject_reason
- FROM
- lepao_send_count_request r
- LEFT JOIN users su ON su.uuid = r.sender_uuid
- LEFT JOIN users ru ON ru.id = r.receiver_user_id
- LEFT JOIN users rv ON rv.uuid = r.reviewer_uuid
- WHERE 1 = 1
- `
- let countSql = `
- SELECT COUNT(*) AS total
- FROM lepao_send_count_request r
- WHERE 1 = 1
- `
- const params = []
- const countParams = []
- if (status) {
- sql += ` AND r.status = ?`
- countSql += ` AND r.status = ?`
- params.push(status)
- countParams.push(status)
- }
- sql += `
- ORDER BY r.id DESC
- LIMIT ? OFFSET ?
- `
- params.push(String(pagesize), String(offset))
- const rows = await db.query(sql, params)
- const countRows = await db.query(countSql, countParams)
- if (!rows || !countRows)
- return res.json({ ...BaseStdResponse.MISSING_FILE, msg: "获取赠送审核列表失败!" })
- res.json({
- ...BaseStdResponse.OK,
- data: rows,
- pagination: {
- current: Number(current),
- pagesize: Number(pagesize),
- total: countRows[0]?.total || 0
- }
- })
- }
- }
- module.exports.GetSendCountRequestList = GetSendCountRequestList
|