123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- 'use strict';
- import BaseComponent from '../../prototype/baseComponent'
- import AddressModel from '../../models/v1/address'
- import formidable from 'formidable'
- class Address extends BaseComponent{
- constructor(){
- super()
- this.addAddress = this.addAddress.bind(this);
- }
- async getAddress(req, res, next){
- const user_id = req.params.user_id;
- if (!user_id || !Number(user_id)) {
- res.send({
- type: 'ERROR_USER_ID',
- message: 'user_id参数错误',
- })
- return
- }
- try{
- const addressList = await AddressModel.find({user_id}, '-_id');
- res.send(addressList)
- }catch(err){
- console.log('获取收获地址失败', err);
- res.send({
- type: 'ERROR_GET_ADDRESS',
- message: '获取地址列表失败'
- })
- }
- }
- async addAddress(req, res, next){
- const form = new formidable.IncomingForm();
- form.parse(req, async (err, fields, files) => {
- const user_id = req.params.user_id;
- const {address, address_detail, geohash, name, phone, phone_bk, poi_type = 0, sex, tag, tag_type} = fields;
- try{
- if (!user_id || !Number(user_id)) {
- throw new Error('用户ID参数错误');
- }else if(!address){
- throw new Error('地址信息错误');
- }else if(!address_detail){
- throw new Error('详细地址信息错误');
- }else if(!geohash){
- throw new Error('geohash参数错误');
- }else if(!name){
- throw new Error('收货人姓名错误');
- }else if(!phone){
- throw new Error('收获手机号错误');
- }else if(!sex){
- throw new Error('性别错误');
- }else if(!tag){
- throw new Error('标签错误');
- }else if(!tag_type){
- throw new Error('标签类型错误');
- }
- }catch(err){
- console.log(err.message);
- res.send({
- status: 0,
- type: 'GET_WRONG_PARAM',
- message: err.message
- })
- return
- }
- try{
- const address_id = await this.getId('address_id');
- const newAddress = {
- id: address_id,
- address,
- phone,
- phone_bk: phone_bk&&phone_bk,
- name,
- st_geohash: geohash,
- address_detail,
- sex,
- tag,
- tag_type,
- user_id,
- }
- await AddressModel.create(newAddress);
- res.send({
- status: 1,
- success: '添加地址成功'
- })
- }catch(err){
- console.log('添加地址失败', err);
- res.send({
- status: 0,
- type: 'ERROR_ADD_ADDRESS',
- message: '添加地址失败'
- })
- }
- })
- }
- async deleteAddress(req, res, next){
- const {user_id, address_id} = req.params;
- if (!user_id || !Number(user_id) || !address_id || !Number(address_id)) {
- res.send({
- type: 'ERROR_PARAMS',
- message: '参数错误',
- })
- return
- }
- try{
- await AddressModel.findOneAndRemove({id: address_id});
- res.send({
- status: 1,
- success: '删除地址成功',
- })
- }catch(err){
- console.log('删除收获地址失败', err);
- res.send({
- type: 'ERROR_DELETE_ADDRESS',
- message: '删除收获地址失败'
- })
- }
- }
- async getAddAddressById(req, res, next){
- const address_id = req.params.address_id;
- if (!address_id || !Number(address_id)) {
- res.send({
- type: 'ERROR_PARAMS',
- message: '参数错误',
- })
- return
- }
- try{
- const address = await AddressModel.findOne({id: address_id});
- res.send(address)
- }catch(err){
- console.log('获取地址信息失败', err);
- res.send({
- type: 'ERROR_GET_ADDRESS',
- message: '获取地址信息失败'
- })
- }
- }
- }
- export default new Address()
|