package com.stylefeng.guns.modular.system.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.stylefeng.guns.modular.system.dao.CompanyMapper;
|
import com.stylefeng.guns.modular.system.dao.PhoneMapper;
|
import com.stylefeng.guns.modular.system.model.Company;
|
import com.stylefeng.guns.modular.system.model.Phone;
|
import com.stylefeng.guns.modular.system.service.ICompanyService;
|
import com.stylefeng.guns.modular.system.service.IPhoneService;
|
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
|
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
|
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
|
@Service
|
public class PhoneServiceImpl extends ServiceImpl<PhoneMapper, Phone> implements IPhoneService {
|
|
@Resource
|
private PhoneMapper phoneMapper;
|
|
@Resource
|
private CompanyMapper companyMapper;
|
|
/**
|
* 获取所有系统电话
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<Phone> queryPhones(String code) throws Exception {
|
String province = code.substring(0, 2) + "0000";
|
String city = code.substring(0, 4) + "00";
|
|
List<Phone> list = phoneMapper.queryPhones(province, city, code);
|
if(list.size() == 0){
|
list = phoneMapper.queryPhones(province, city, null);
|
}
|
if(list.size() == 0){
|
list = phoneMapper.queryPhones(province, null, null);
|
}
|
return list;
|
}
|
|
|
/**
|
* 获取客服电话(个人中心)
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public Map<String, Object> queryCustomerPhone(Double lat, Double lnt) throws Exception {
|
ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lat, null);
|
if(null == reverseGeocode){
|
System.err.println("获取地图信息出错");
|
return new HashMap<>();
|
}
|
AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
|
String[] city = new String[addressComponentsVos.length];
|
for (int i = 0; i < addressComponentsVos.length; i++) {
|
city[i] = addressComponentsVos[i].getLongName();
|
}
|
|
Map<String, Object> map = new HashMap<>();
|
//平台电话
|
Phone query = phoneMapper.query(2, 1, null, null, null);
|
map.put("platform", null != query ? query.getPhone() : "");
|
|
List<Company> companies = companyMapper.queryList(city, null);
|
if(companies.size() > 0){
|
Integer id = companies.get(0).getId();
|
Phone phone = this.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", id));
|
map.put("company", phone.getPhone());
|
phone = this.selectOne(new EntityWrapper<Phone>().eq("type", 3).eq("companyId", id));
|
map.put("scheduling", phone.getPhone());
|
}
|
|
return map;
|
}
|
}
|