if(result.hasErrors()){
return new AjaxResult(AjaxResultCode.INVALID,
BindingErrors.from(result));
}
// save spot
Spot spot = Spot.from(vo, signInUser);
try {
// get image
ImageReadyVo ir = webImageUtil
.prepareImageFromUrl(vo.getImageUrl());
String resId = imageService.put(ir.getFile());
Resource res = new Resource();
res.setOrgSize(ir.getOrgSize());
res.setResId(resId);
res.setExt(ir.getExt());
resourceRepository.save(res);
spot.setImage(res);
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
if(StringUtils.hasText(vo.getPlaceId())){
Place place = placeRepository.findOne(vo.getPlaceId());
if(place!=null){
CityMeta city = cityMetaRepository.getByName(place.getCity());
if(city!=null){
spot.setCity(city.getPinyin());
}
spot.setLngLat(place.getLngLat());
spot.setPlace(place);
}
}else if(!StringUtils.hasText(spot.getCity())){
spot.setCity(ApplicationConfig.defaultCityPinyin);
}
spot = spotRepository.save(spot);
// increase spot count
signInUser.setSpotCount(signInUser.getSpotCount()+1);
userRepository.save(signInUser);
// save activity
Activity activity = new Activity();
activity.setOwner(signInUser.getId());
activity.setCreatedAt(new Date());
activity.setTargetSpot(spot.getId());
activity.setType(ActivityType.SPOT);
activity.setBy(sessionUtil.getBy(session));
activityRepository.save(activity);
return new AjaxResult(AjaxResultCode.SUCCESS);