Commit 86ca6438 authored by 李尚科's avatar 李尚科

course fix

parent 6042ffc4
Pipeline #14101 passed with stage
in 21 seconds
......@@ -10,17 +10,30 @@ class LocationController extends Controller {
async getAddress() {
const { ctx } = this;
const { lat, lng } = ctx.request.body;
if (!lat || !lng) {
ctx.failed('error lat lng');
let { lat, lng } = ctx.request.body;
let address = '';
if (lat && lng) {
const location_ret = await ctx.service.course.lbs.getLBSLocation({ lat, lng });
const loaction = location_ret.result;
if (loaction.formatted_addresses && loaction.formatted_addresses.recommend) {
address = loaction.formatted_addresses.recommend;
lat = loaction.formatted_addresses.lat;
lng = loaction.formatted_addresses.lng;
}
}
const location_ret = await ctx.service.course.lbs.getLBSLocation({ lat, lng });
let address = '获取位置信息失败';
if (location_ret.result.formatted_addresses && location_ret.result.formatted_addresses.recommend) {
address = location_ret.result.formatted_addresses.recommend;
if (!address) {
const ip_ret = await ctx.service.course.lbs.getLBSIp();
const ip = ip_ret.result;
if (ip.location && ip.ad_info) {
address = ip.ad_info.province + ip.ad_info.city ? ip.ad_info.city : '' + ip.ad_info.district ? ip.ad_info.district : '';
lat = ip.location.lat;
lng = ip.location.lng;
}
}
ctx.success({ result: address });
if (!address) {
address = '获取地理位置信息失败';
}
ctx.success({ address, lat, lng });
}
}
......
......@@ -117,6 +117,54 @@ class LbsService extends Service {
return { result };
}
// 地址解析
async getLBSAddress(address) {
const { ctx } = this;
let result = {};
const params = {
address,
key: ctx.app.config.TX_LBS_KEY,
};
const resp = await ctx.helper.send_request(ctx.app.config.TX_LBS_ADDRESS_URL, params, { method: 'GET' });
// resp.data.status 状态码,0:正常,310:请求参数信息有误,311:Key格式错误,306:请求有护持信息请检查字符串,110:请求来源未被授权
ctx.logger.info('tx_lbs_location_resp: ' + JSON.stringify(resp));
if (resp.status === 200) {
// 判断响应是否正确
if (resp.data.status === 0) {
result = resp.data.result;
}
}
return { result };
}
// 逆地址解析
async getLBSIp() {
const { ctx } = this;
let result = {};
const ip = ctx.helper.getClientIP();
if (!ip) {
return result;
}
const params = {
ip: ip,
key: ctx.app.config.TX_LBS_KEY,
};
const resp = await ctx.helper.send_request(ctx.app.config.TX_LBS_ADDRESS_URL + '/ip', params, { method: 'GET' });
// resp.data.status 状态码,0:正常,310:请求参数信息有误,311:Key格式错误,306:请求有护持信息请检查字符串,110:请求来源未被授权
ctx.logger.info('tx_lbs_ip_resp: ' + JSON.stringify(resp));
if (resp.status === 200) {
// 判断响应是否正确
if (resp.data.status === 0) {
result = resp.data.result;
}
}
return { result };
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment