/**
*
* @Description: 重写微信官方请求
* @Title: deerRequest
* @author: Zing
* @version: 1.0
* @param: @param e wx.request同等参数
* @param: @param isDefault judgeDeerCode是否按照默认协议进行 默认为true
* @param: @param showToast 是否进行弹框 默认为true
* @return: Promise 请求后的返回结果 (isDefault = true为协议返回结果,false为http返回结果格式)
* @throws
*/
deerRequest: function(e, showToast = true, isDefault = true) {
let _this = this;
//正式环境
let domain = '';
//测试环境
//let domain = '';
return new Promise((resolve, reject) => {
wx.request({
url: domain + e.url,
data: e.data,
header: e.header,
timeout: e.timeout,
method: e.method,
dataType: e.dataType,
responseType: e.responseType,
success(res) {
if (_this.judgeDeerCode(res, showToast, isDefault)) {
resolve(res.data);
} else {
resolve(res);
}
},
fail(res) {
_this.isDeBugModel({
deBug: _this.globalData.deBug,
msg: '',
deBugMsg: '请求失败,请稍后重试',
code: res.data.code,
showToast: true
})
resolve(res);
},
complete(res) {
if (_this.globalData.deBug) {
console.log(res)
}
}
})
})
},
/**
*
* @Description: 内部协议判断
* @Title: judgeDeerCode
* @author: Zing
* @version: 1.0
* @param: @param res 请求后返回参数
* @param: @param isDefault judgeDeerCode是否按照默认协议进行 默认为true
* @param: @param showToast 是否进行弹框 默认为true
* @return: Promise 请求后的返回结果 (isDefault = true为协议返回结果,false为http返回结果格式)
* @throws
*/
judgeDeerCode: function(res, showToast = true, isDefault = true) {
if (res.data.code == '200') {
//请求成功200(预期最终结果)
return true;
} else if (res.data.code == '400') {
//请求异常400
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '',
deBugMsg: '请求异常',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '401') {
//参数为空401
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '',
deBugMsg: res.data.message,
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '402') {
//对象已存在402
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: res.data.message,
deBugMsg: '对象已存在',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '403') {
//电话号码已存在403
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '号码已存在',
deBugMsg: '电话号码已存在',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '404') {
//对象不存在(查询对象时用)404
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '好像啥也没有~',
deBugMsg: '对象不存在(查询对象时用)',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '405') {
//短信、邮件、消息发送失败405
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '发送失败',
deBugMsg: '短信、邮件、消息发送失败',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '406') {
//预期相反最终结果406
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '请求失败',
deBugMsg: '预期相反最终结果',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '407') {
//验证、认证失败407
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '请求失败',
deBugMsg: '验证、认证失败',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '408') {
//参数错误408
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '请求失败',
deBugMsg: '参数错误',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '411') {
//数据为空||结果为空||对象为空 (查询结果数据时用)411
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '好像啥也没有~',
deBugMsg: '数据为空||结果为空||对象为空 (查询结果数据时用)',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '408') {
//token过期或者无效421
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '登录失效',
deBugMsg: 'token过期或者无效',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else if (res.data.code == '422') {
//项目id为空422
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '非法请求',
deBugMsg: '项目id为空',
code: res.data.code,
showToast: showToast
})
return !isDefault;
} else {
//最终 系统错误500
this.isDeBugModel({
deBug: this.globalData.deBug,
msg: '系统异常',
deBugMsg: '系统错误',
code: res.data.code,
showToast: showToast
})
return !isDefault;
}
},
/**
*
* @Description: 内部协议判断
* @Title: judgeDeerCode
* @author: Zing
* @version: 1.0
* @param: @param e 请求对象,参照judgeDeerCode传入对象
* @return: 暂无返回结果
* @throws
*/
isDeBugModel(e) {
// 判断是否显示提示框默认显示
if (e.showToast) {
//判断是否为debug模式
if (e.deBug) {
// debug模式
wx.showToast({
title: e.deBugMsg + 'code:' + e.code,
icon: 'none'
})
} else {
wx.showToast({
title: e.msg,
icon: 'none'
})
}
}
}
网友评论