87 lines
3.6 KiB
JavaScript
87 lines
3.6 KiB
JavaScript
import express from 'express'
|
|
import { coreEnterprises, customerManagers } from '../db/seedBaseConfig.js'
|
|
import { nextId } from '../utils/id.js'
|
|
import { paginate } from '../utils/pagination.js'
|
|
import { sendOk, sendFail } from '../utils/response.js'
|
|
import { requireAuth } from '../middleware/requireAuth.js'
|
|
|
|
const router = express.Router()
|
|
router.use(requireAuth)
|
|
|
|
// ---------------- 核心企业(渠道) ----------------
|
|
// 2026-07-20:后端核心企业接口真实字段为 channelName/channelNo(渠道名称/渠道编号),
|
|
// 与此前依据的旧版 swagger 快照(enterpriseName/enterpriseCode)不同;此处兼容新旧两种字段名,
|
|
// 便于本地演示环境同时兼容历史数据。
|
|
router.post('/core-enterprise/page', (req, res) => {
|
|
const { channelName, channelNo, enterpriseName, enterpriseCode, organizationId, page, pageSize } = req.body || {}
|
|
const nameKeyword = channelName || enterpriseName
|
|
const noKeyword = channelNo || enterpriseCode
|
|
let list = coreEnterprises
|
|
if (nameKeyword) list = list.filter((e) => (e.channelName || e.enterpriseName)?.includes(nameKeyword))
|
|
if (noKeyword) list = list.filter((e) => (e.channelNo || e.enterpriseCode)?.includes(noKeyword))
|
|
if (organizationId) list = list.filter((e) => e.organizationId === organizationId)
|
|
sendOk(res, paginate(list, page, pageSize))
|
|
})
|
|
|
|
router.post('/core-enterprise/create', (req, res) => {
|
|
const body = req.body || {}
|
|
const channelName = body.channelName || body.enterpriseName
|
|
if (!channelName) return sendFail(res, '渠道名称不能为空', 400)
|
|
if (!(body.channelNo || body.enterpriseCode)) return sendFail(res, '渠道编号不能为空', 400)
|
|
const id = nextId('coreEnterprise')
|
|
const entity = { id, createdAt: new Date().toISOString().slice(0, 19).replace('T', ' '), ...body }
|
|
coreEnterprises.push(entity)
|
|
sendOk(res, entity, '创建成功')
|
|
})
|
|
|
|
router.post('/core-enterprise/update', (req, res) => {
|
|
const { id, ...rest } = req.body || {}
|
|
const entity = coreEnterprises.find((e) => e.id === id)
|
|
if (!entity) return sendFail(res, '核心企业不存在', 404)
|
|
Object.assign(entity, rest)
|
|
sendOk(res, true, '更新成功')
|
|
})
|
|
|
|
router.post('/core-enterprise/delete', (req, res) => {
|
|
const { id } = req.body || {}
|
|
const index = coreEnterprises.findIndex((e) => e.id === id)
|
|
if (index === -1) return sendFail(res, '核心企业不存在', 404)
|
|
coreEnterprises.splice(index, 1)
|
|
sendOk(res, true, '删除成功')
|
|
})
|
|
|
|
// ---------------- 客户经理 ----------------
|
|
router.post('/customer-manager/page', (req, res) => {
|
|
const { managerName, page, pageSize } = req.body || {}
|
|
let list = customerManagers
|
|
if (managerName) list = list.filter((m) => m.managerName.includes(managerName))
|
|
sendOk(res, paginate(list, page, pageSize))
|
|
})
|
|
|
|
router.post('/customer-manager/create', (req, res) => {
|
|
const body = req.body || {}
|
|
if (!body.managerName) return sendFail(res, '姓名不能为空', 400)
|
|
const id = nextId('customerManager')
|
|
const entity = { id, status: 'ACTIVE', remark: '', ...body }
|
|
customerManagers.push(entity)
|
|
sendOk(res, entity, '创建成功')
|
|
})
|
|
|
|
router.post('/customer-manager/update', (req, res) => {
|
|
const { id, ...rest } = req.body || {}
|
|
const entity = customerManagers.find((m) => m.id === id)
|
|
if (!entity) return sendFail(res, '客户经理不存在', 404)
|
|
Object.assign(entity, rest)
|
|
sendOk(res, true, '更新成功')
|
|
})
|
|
|
|
router.post('/customer-manager/delete', (req, res) => {
|
|
const { id } = req.body || {}
|
|
const index = customerManagers.findIndex((m) => m.id === id)
|
|
if (index === -1) return sendFail(res, '客户经理不存在', 404)
|
|
customerManagers.splice(index, 1)
|
|
sendOk(res, true, '删除成功')
|
|
})
|
|
|
|
export default router
|