All files / exp/app/controller/partner partner.ctrl.js

11.48% Statements 7/61
0% Branches 0/24
0% Functions 0/5
11.48% Lines 7/61

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182    3x 3x                                   3x                                                                                             3x                                                                 3x                                                     3x                                                                                         3x                
'use strict'
 
const { Partner } = require('../../model')
const { LogsProxy } = require('../../proxy')
 
/**
 * @api {post} partner/add 添加
 * @apiDescription 作者:samy
 *
 * @apiGroup partner
 * @apiName add
 * @apiSampleRequest partner/add
 * @apiPermission admin
 *
 * @apiParam (Request body) {String} name 经销商公司全名
 * @apiParam (Request body) {String} contact 经销商负责人
 * @apiParam (Request body) {Number=1,2,3} clazz 公司经营类型;1、线上类型;2、线下类型
 *
 * @apiUse Header
 * @apiUse Response
 */
exports.add = async(req, res, next) => {
  const body = req.body
  let name = body.name || ''
  try {
    let msg;
    if (!name) {
      msg = '经销商公司全名不能为空';
    }
    // if (!body.contact) {
    //   msg = "经销商负责人不能为空";
    // }
    if (msg) {
      return res.resMid.resBody(res, 422, msg)
    }
    let data = await Partner.findOne({ name: name })
    let isCreate = true
    if (!data) {
      data = new Partner(body)
      isCreate = true
    } else {
      data = Object.assign(data, body)
      isCreate = false
    }
    data = await data.save()
    await LogsProxy.createLogs(req.user._id, data._id, 'Partner', isCreate ? '添加经销商' : '修改经销商')
    res.resMid.resBody(res, '', '', {_id: data._id})
  } catch (err) {
    res.throw(err)
  }
}
 
/**
 * @api {get} partner/getList 获取列表及搜索
 * @apiDescription 作者:samy
 *
 * @apiGroup partner
 * @apiName getList
 * @apiSampleRequest partner/getList
 * @apiPermission user
 *
 * @apiUse ListParam
 * @apiParam (Query) {String}  where 查询条件(经销商负责人或经销商公司全名)
 *
 * @apiUse Header
 * @apiUse Response
 * @apiUse ListResponse
 */
exports.getList = async(req, res, next) => {
  let query = {};
  let options = req.query;
  try {
    if (options.where) {
      query['$and'] = [];
      query['$and'].push({
        $or: [
          { name: { $regex: new RegExp(options.where, 'ig') } },
          { contact: { $regex: new RegExp(options.where, 'ig') } },
        ],
      });
    }
    const data = await Partner.paginate(query, options)
    res.resMid.resBody(res, '', '', data)
  } catch (err) {
    res.throw(err)
  }
}
 
 
/**
 * @api {get} partner/getOne/:id 获取某个
 * @apiDescription 作者:samy
 *
 * @apiGroup partner
 * @apiName getOne
 * @apiSampleRequest partner/getOne/:id
 * @apiPermission user
 *
 * @apiUse Header
 * @apiUse Response
 */
exports.getOne = async(req, res, next) => {
  try {
    const data = await Partner.findById(req.params.id)
    res.resMid.resBody(res, '', '', data)
  } catch (err) {
    res.throw(err)
  }
}
 
/**
 * @api {put} partner/modOne/:id 修改某个
 * @apiDescription 作者:samy
 *
 * @apiGroup partner
 * @apiName modOne
 * @apiSampleRequest partner/modOne
 * @apiPermission admin
 *
 * @apiParam (Query string) {String} id _id
 *
 * @apiParam (Request body) {String} name 经销商公司全名
 * @apiParam (Request body) {String} contact 经销商负责人
 * @apiParam (Request body) {Number} clazz 公司经营类型;1、线上类型;2、线下类型
 *
 * @apiUse Header
 * @apiUse Response
 */
exports.modOne = async(req, res, next) => {
  const body = req.body
  let name = body.name || ''
  try {
    let msg;
    if (!name) {
      msg = '经销商公司全名不能为空';
    }
    // if (!body.name) {
    //   msg = "经销商负责人不能为空";
    // }
    if (msg) {
      return res.resMid.resBody(res, 422, msg)
    }
    let data = await Partner.findById(req.params.id)
    if (body.name) {
      data.name = body.name
    }
    if (body.contact) {
      data.contact = body.contact
    }
    if (body.clazz) {
      data.clazz = body.clazz
    }
 
    data = await data.save()
    await LogsProxy.createLogs(req.user._id, data._id, 'Partner', '修改经销商')
    res.resMid.resBody(res, '', '', {_id: data._id})
  } catch (err) {
    res.throw(err)
  }
}
 
/**
 * @api {delete} partner/delOne/:id 删除
 * @apiDescription 作者:samy
 *
 * @apiGroup partner
 * @apiName delOne
 * @apiSampleRequest partner/delOne/:id
 * @apiPermission admin
 *
 * @apiUse Header
 * @apiUse Response
 */
exports.delOne = async(req, res, next) => {
  try {
    const data = await Partner.findByIdAndRemove(req.params.id)
    await LogsProxy.createLogs(req.user._id, data._id, 'Partner', '删除经销商')
    res.resMid.resBody(res, '', '')
  } catch (err) {
    res.throw(err)
  }
}