public void testSaveMemberPosition() {
//随机生成经纬度
double min1 = 1;
double max1 = 90;
double min2 = 1;
double max2 = 90;
Random random = new Random();
BigDecimal db = new BigDecimal(Math.random() * (max1 - min1) + min1);
String lon = db.setScale(6, BigDecimal.ROUND_HALF_UP).toString();//小数后6位
db = new BigDecimal(Math.random() * (max2 - min2) + min2);
String lat = db.setScale(6, BigDecimal.ROUND_HALF_UP).toString();
logger.info("lon:{},lat:{}", lon, lat);
Request<SocialReportPositionDto> req = Request.create();
SocialReportPositionDto socialReportPositionDto = new SocialReportPositionDto();
socialReportPositionDto.setMemberId("410399136727044096");
socialReportPositionDto.setLatitude(lat);
socialReportPositionDto.setLongitude(lon);
SocialResultVo resp = socialGetMemberPositionService.saveMemberPosition(socialReportPositionDto);
System.out.println(resp);
}
************************************************************************************
/**
* 上报用户位置(保存到mongo)
*
* @param socialReportPositionDto
* @return
*/
public SocialResultVo saveMemberPosition(SocialReportPositionDto socialReportPositionDto) {
LogMgr.sysInfo("上报用户位置上送项:{}", socialReportPositionDto);
SocialResultVo socialResultVo = new SocialResultVo();
//查询位置表是否有当前会员信息
MongoMemberLocations memberLocations = mongoMemberLocationDao.findOne("mid", socialReportPositionDto.getMemberId());
if (memberLocations != null) {
//更新会员最新经纬度信息
BuguQuery<MongoMemberLocations> query = mongoMemberLocationDao.query().is("mid", socialReportPositionDto.getMemberId());
Map map = new HashMap();
Point point = new Point(Double.parseDouble(socialReportPositionDto.getLongitude()), Double.parseDouble(socialReportPositionDto.getLatitude()));
map.put("location", point);
mongoMemberLocationDao.update().set(map).execute(query);
socialResultVo.setResult(true);
} else {
//添加会员经纬度信息
memberLocations = new MongoMemberLocations();
memberLocations.setMid(socialReportPositionDto.getMemberId());
Point point = new Point(Double.parseDouble(socialReportPositionDto.getLongitude()), Double.parseDouble(socialReportPositionDto.getLatitude()));
memberLocations.setLocation(point);
//将位置信息添加到mongo中
mongoMemberLocationDao.insert(memberLocations);
socialResultVo.setResult(true);
}
return socialResultVo;
}