123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- const { models } = require('../db')
- const { validateField, handleAdd, handleUpdate, handleDelete, handleFindByField } = require('../common')
- /**
- *
- * 订单管理 表格 调 orders(订单表)
- *
- * 字段展示 用户名 根据 订单表 user_id 去 家长表(wx_user)里查_id是否相同 相同取园所名称(name)
- * 规格 —— groupbuy_id 根据 订单表 groupbuy_id 去 规格表(wx_groupbuy_groupbuy)里查_id是否相同 相同取园所名称(spec)
- * 团购名称 —— merchandise_id 根据 订单表 merchandise_id 去 商品表(wx_merchandise)里查_id是否相同 相同取园所名称(name)
- * 下单数量 —— num_index
- * 订单状态(0-待付款 1-待收货 2-已完成 3-已取消) —— status
- * 收货方式(0-邮寄1-自提) —— eventstarttime
- * 订单号 —— order_id
- * 物流单号 —— tracking_number
- * 修改前地址、 修改前手机号、 修改前收货人 这三字段需要根据 地址id(adresses_id)去 地址表(adresses)里查_id是否相同 相同取园所名称(收货人:name、手机号:phone、地址:address )
- * 修改后地址 —— updat_adress
- * 修改后手机号 —— update_phone
- * 修改后收货人 —— update_name
- * 下单时间 —— createdAt
- *
- * 查询 调 orders(订单表)
- * merchandise_id —— 团购名称 根据 订单表 merchandise_id 去 商品表(wx_merchandise)里查_id是否相同 相同取园所名称(name)
- * user_id —— 用户名 根据 订单表 user_id 去 家长表(wx_user)里查_id是否相同 相同取园所名称(name)
- * status —— 订单状态(0-待付款 1-待收货 2-已完成 3-已取消)
- * order_id —— 订单号
- * tracking_number —— 物流单号
- *
- * 编辑订单 改 orders(订单表)
- * 修改后姓名 —— update_name
- * 修改后手机号 —— update_phone
- * 修改后地址 —— updat_adress
- * 填写物流单号 改 orders(订单表)
- * 传 _id、 tracking_number 根据 _id 查到 订单表里面的那条数据里面的 tracking_number 更新这个数据
- *
- * 删除 调 orders(订单表)
- * 传 _id
- *
- *
- */
- /**
- * 新增
- * @param {*} order_id 订单Id
- * @param {*} user_id 用户Id
- * @param {*} merchandise_id 商品Id
- * @param {*} groupbuy_id 规格Id
- * @param {*} num_index 购买数量
- * @param {*} real_money 实际付款金额
- * @param {*} adresses_id 地址id
- * @param {*} tracking_number 物流单号
- * @param {*} update_phone 修改后的手机号
- * @param {*} update_name 修改后的收货人
- * @param {*} updat_adress 修改后地址
- * @param {*} status 0-待付款 1-待收货 2-已完成 3-已取消
- * @returns
- */
- async function addOrder(parameter) {
- const { order_id, user_id, merchandise_id, groupbuy_id, num_index, real_money, adresses_id, tracking_number, update_phone, update_name, updat_adress, status } = parameter
- const v1 = validateField(order_id, 'order_id')
- if (!v1.flag) {
- return {
- success: false,
- msg: v1.msg
- }
- }
- const v2 = validateField(user_id, 'user_id')
- if (!v2.flag) {
- return {
- success: false,
- msg: v2.msg
- }
- }
- const v3 = validateField(merchandise_id, 'merchandise_id')
- if (!v3.flag) {
- return {
- success: false,
- msg: v3.msg
- }
- }
- const v4 = validateField(groupbuy_id, 'groupbuy_id')
- if (!v4.flag) {
- return {
- success: false,
- msg: v4.msg
- }
- }
- const v5 = validateField(num_index, 'num_index')
- if (!v5.flag) {
- return {
- success: false,
- msg: v5.msg
- }
- }
- const v6 = validateField(real_money, 'real_money')
- if (!v6.flag) {
- return {
- success: false,
- msg: v6.msg
- }
- }
- const v7 = validateField(adresses_id, 'adresses_id')
- if (!v7.flag) {
- return {
- success: false,
- msg: v7.msg
- }
- }
- const data = {
- order_id, user_id, merchandise_id, groupbuy_id, num_index, real_money, adresses_id, tracking_number, update_phone, update_name, updat_adress, status: status == null ? 0 : status
- }
- return await handleAdd(parameter, data, 'orders')
- }
- /**
- * 根据Id删除
- * @param {*} _id 主键Id
- */
- async function deleteOrder(parameter) {
- const { _id } = parameter
- try {
- // 更新数据
- const result = await models.orders.update({
- data: { delete: 1 },
- filter: {
- where: {
- _id: {
- $eq: _id
- }
- }
- }
- })
- return {
- success: true,
- msg: '删除数据成功',
- data: result,
- }
- } catch (error) {
- return {
- success: false,
- msg: '删除数据失败',
- error: error,
- parameter
- }
- }
- }
- /**
- * 编辑
- * @param {*} _id 主键Id
- * @param {*} order_id 订单号
- * @param {*} user_id 用户Id
- * @param {*} merchandise_id 商品Id
- * @param {*} groupbuy_id 规格Id
- * @param {*} num_index 购买数量
- * @param {*} real_money 实际付款金额
- * @param {*} adresses_id 地址Id
- * @param {*} tracking_number 物流单号
- * @param {*} update_phone 修改后的手机号
- * @param {*} update_name 修改后的收货人
- * @param {*} updat_adress 修改后地址
- * @param {*} status 订单状态
- * @returns
- */
- async function updateOrder(parameter) {
- const { _id, order_id, user_id, merchandise_id, groupbuy_id, num_index, real_money, adresses_id, tracking_number, update_phone, update_name, updat_adress, status } = parameter
- const obj = {}
- const v0 = validateField(_id, '_id')
- if (!v0.flag) {
- return {
- success: false,
- msg: v0.msg
- }
- }
- const v1 = validateField(order_id, 'order_id')
- if (v1.flag) {
- obj.order_id = order_id
- }
- const v2 = validateField(user_id, 'user_id')
- if (v2.flag) {
- obj.user_id = user_id
- }
- const v3 = validateField(merchandise_id, 'merchandise_id')
- if (v3.flag) {
- obj.merchandise_id = merchandise_id
- }
- const v4 = validateField(groupbuy_id, 'groupbuy_id')
- if (v4.flag) {
- obj.groupbuy_id = groupbuy_id
- }
- const v5 = validateField(num_index, 'num_index')
- if (v5.flag) {
- obj.num_index = num_index
- }
- const v6 = validateField(real_money, 'real_money')
- if (v6.flag) {
- obj.real_money = real_money
- }
- const v7 = validateField(adresses_id, 'adresses_id')
- if (v7.flag) {
- obj.adresses_id = adresses_id
- }
- const v8 = validateField(tracking_number, 'tracking_number')
- if (v8.flag) {
- obj.tracking_number = tracking_number
- }
- const v9 = validateField(update_phone, 'update_phone')
- if (v9.flag) {
- obj.update_phone = update_phone
- }
- const v10 = validateField(update_name, 'update_name')
- if (v10.flag) {
- obj.update_name = update_name
- }
- const v11 = validateField(updat_adress, 'updat_adress')
- if (v11.flag) {
- obj.updat_adress = updat_adress
- }
- const v12 = validateField(status, 'status')
- if (v12.flag) {
- obj.status = status
- }
- return await handleUpdate(parameter, _id, obj, 'orders')
- }
- /**
- * 分页查询
- * @param {*} name 团购名称
- * @param {*} user_name 用户名
- * @param {*} status 订单状态
- * @param {*} order_id 订单号
- * @param {*} tracking_number 物流单号
- * @param {*} startTime 开始时间
- * @param {*} endTime 结束时间
- * @param {*} pageNum 当前页数
- * @param {*} pageSize 每页展示数量
- * @returns
- */
- async function findOrderPage(parameter) {
- const { name, user_name, status, order_id, tracking_number, startTime, endTime, pageNum, pageSize } = parameter
- const v1 = validateField(pageNum)
- if (!v1.flag) {
- return {
- success: false,
- records: [],
- msg: v1.msg
- }
- }
- const v2 = validateField(pageSize)
- if (!v2.flag) {
- return {
- success: false,
- records: [],
- msg: v2.msg
- }
- }
- // 查询参数
- const params = {
- pageNum,
- pageSize
- }
- // 拼接查询条件
- let condition = ""
- if (name != null) {
- condition += " where m.name like {{name}} "
- params.name = '%' + name + '%'
- }
- if (user_name != null) {
- if (condition) {
- condition += " and u.user_name like {{user_name}} "
- } else {
- condition += " where u.user_name like {{user_name}} "
- }
- params.user_name = '%' + user_name + '%'
- }
- if (status != null) {
- if (condition) {
- condition += " and o.status = {{status}} "
- } else {
- condition += " where o.status = {{status}} "
- }
- params.status = status
- }
- if (order_id != null) {
- if (condition) {
- condition += " and o.order_id = {{order_id}} "
- } else {
- condition += " where o.order_id = {{order_id}} "
- }
- params.order_id = order_id
- }
- if (tracking_number != null) {
- if (condition) {
- condition += " and o.tracking_number = {{tracking_number}} "
- } else {
- condition += " where o.tracking_number = {{tracking_number}} "
- }
- params.tracking_number = tracking_number
- }
- if (startTime != null && endTime != null) {
- if (condition) {
- condition += " and o.createdAt >= {{startTime}} and o.createdAt <= {{endTime}} "
- } else {
- condition += " where o.createdAt >= {{startTime}} and o.createdAt <= {{endTime}} "
- }
- params.startTime = startTime
- params.endTime = endTime
- }
- if (condition) {
- condition += " and o.delete = 0"
- } else {
- condition += " where o.delete = 0"
- }
- const skip = (pageNum - 1) * pageSize
- // 查询sql
- const sql = "select " +
- "gg.spec as spec, " +
- "o._id as _id, " +
- "u.user_name as username, " +
- "m.name as tuangoumingcheng, " +
- "gg.spec as guige, " +
- "o.num_index as xiadanshuliang, " +
- "o.status as dingdanzhuangtai, " +
- "m.way as shouhuofangshi, " +
- "o.order_id as dingdanhao, " +
- "o.tracking_number as wuliudanhao, " +
- "addr.address as addressBefore, " +
- "o.updat_adress as addressAfter, " +
- "addr.phone as phoneBefore, " +
- "o.update_phone as phoneAfter, " +
- "addr.name as shouhuorenBefore, " +
- "o.update_name as shouhuorenAfter, " +
- "o.createdAt as createdAt " +
- "from orders o " +
- "left join wx_user u on o.user_id = u._id " +
- "left join wx_merchandise m on o.merchandise_id = m._id " +
- "left join wx_groupbuy_groupbuy gg on o.groupbuy_id = gg._id " +
- "left join adresses addr on o.adresses_id = addr._id " +
- condition +
- " order by o.createdAt desc " + "limit " + skip + ", " + pageSize
- const countSql = "select count(*) as total from orders o " +
- "left join wx_user u on o.user_id = u._id " +
- "left join wx_merchandise m on o.merchandise_id = m._id " +
- "left join wx_groupbuy_groupbuy gg on o.groupbuy_id = gg._id " +
- "left join adresses addr on o.adresses_id = addr._id " +
- condition
- try {
- // 查询数据sql
- const records = await models.$runSQL(sql, params)
- const count = await models.$runSQL(countSql, params)
- return {
- sql,
- countSql,
- params,
- success: true,
- msg: '查询成功',
- records: records.data.executeResultList,
- total: count.data.executeResultList[0].total
- }
- } catch (error) {
- return {
- success: false,
- msg: '查询失败',
- params,
- sql,
- countSql,
- error: error
- }
- }
- }
- /**
- * 根据Id查询
- * @param {*} _id Id
- */
- async function findOrderById(parameter) {
- const { _id } = parameter
- return handleFindByField(parameter, _id, 'orders')
- }
- module.exports = {
- addOrder,
- deleteOrder,
- updateOrder,
- findOrderPage,
- findOrderById,
- }
|