Commit dd3357f5 authored by hezhen's avatar hezhen

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

# Conflicts:
#	ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/AppPermissionService.java
parents d570760c 8291d678
...@@ -2,6 +2,10 @@ package com.github.wxiaoqi.security.admin.rpc.service; ...@@ -2,6 +2,10 @@ package com.github.wxiaoqi.security.admin.rpc.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.biz.*; import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.biz.AppUserBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.biz.ElementBiz;
import com.github.wxiaoqi.security.admin.constant.RedisKey; import com.github.wxiaoqi.security.admin.constant.RedisKey;
import com.github.wxiaoqi.security.admin.constant.enumerate.UserSourceEnum; import com.github.wxiaoqi.security.admin.constant.enumerate.UserSourceEnum;
import com.github.wxiaoqi.security.admin.entity.*; import com.github.wxiaoqi.security.admin.entity.*;
...@@ -29,7 +33,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; ...@@ -29,7 +33,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -814,14 +817,14 @@ public class AppPermissionService { ...@@ -814,14 +817,14 @@ public class AppPermissionService {
*/ */
public void setCreateIPInfo(AppUserLogin appUserLogin){ public void setCreateIPInfo(AppUserLogin appUserLogin){
String crtHost = appUserLogin.getCrtHost(); String crtHost = appUserLogin.getCrtHost();
String ipinfo = restTemplate.getForObject(String.format("%s%s", IPCommon.BASE_IP_PARSING_URL, crtHost), String.class); String ipAddress = restTemplate.getForObject(String.format("%s%s", IPAddress.BASE_IP_PARSING_URL, crtHost), String.class);
String base_data = JSONObject.parseObject(ipinfo).getString(IPCommon.BASE_DATA); String data = JSONObject.parseObject(ipAddress).getString(IPAddress.BASE_DATA);
JSONObject ipJsonObject = JSONObject.parseObject(base_data); JSONObject ipJsonObject = JSONObject.parseObject(data);
// Integer provinceCode = ipJsonObject.getInteger(IPCommon.PROVINCE_CODE); // Integer provinceCode = ipJsonObject.getInteger(IPAddress.PROVINCE_CODE);
// Integer cityCode = ipJsonObject.getInteger(IPCommon.CITY_CODE); // Integer cityCode = ipJsonObject.getInteger(IPAddress.CITY_CODE);
//appUserLogin.setProvinceCode(provinceCode); //appUserLogin.setProvinceCode(provinceCode);
//appUserLogin.setCityCode(cityCode); //appUserLogin.setCityCode(cityCode);
String cityName = ipJsonObject.getString(IPCommon.CITY_NAME); String cityName = ipJsonObject.getString(IPAddress.CITY_NAME);
RegionDTO regionDTO = regionFeign.getRegionByCityName(cityName); RegionDTO regionDTO = regionFeign.getRegionByCityName(cityName);
if (null!=regionDTO){ if (null!=regionDTO){
appUserLogin.setProvinceCode(Integer.valueOf(String.valueOf(regionDTO.getParentId()))); appUserLogin.setProvinceCode(Integer.valueOf(String.valueOf(regionDTO.getParentId())));
...@@ -832,9 +835,9 @@ public class AppPermissionService { ...@@ -832,9 +835,9 @@ public class AppPermissionService {
/** /**
* @author libin * @author libin
* @version 1.0.0 * @version 1.0.0
* @dec ip返回字段名常量 * @dec ip 解析返回的地址信息
*/ */
static class IPCommon{ private static class IPAddress{
public static final String BASE_IP_PARSING_URL="http://ip.taobao.com/service/getIpInfo.php?ip="; public static final String BASE_IP_PARSING_URL="http://ip.taobao.com/service/getIpInfo.php?ip=";
public static final String BASE_DATA="data"; public static final String BASE_DATA="data";
public static final String PROVINCE_CODE="region_id"; public static final String PROVINCE_CODE="region_id";
......
...@@ -65,4 +65,7 @@ public class CampsiteShopDetailDTO { ...@@ -65,4 +65,7 @@ public class CampsiteShopDetailDTO {
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private Double latitude; private Double latitude;
@ApiModelProperty(value = "电话")
private String phone;
} }
...@@ -89,4 +89,7 @@ public class CampsiteShopDetailVo { ...@@ -89,4 +89,7 @@ public class CampsiteShopDetailVo {
*/ */
@ApiModelProperty("轮播图列表") @ApiModelProperty("轮播图列表")
private List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos; private List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos;
@ApiModelProperty(value = "電話")
private String phone;
} }
...@@ -26,7 +26,6 @@ import tk.mybatis.spring.annotation.MapperScan; ...@@ -26,7 +26,6 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableScheduling @EnableScheduling
@EnableFeignClients(value = {"com.github.wxiaoqi.security.auth.client.feign", "com.github.wxiaoqi.security.admin.feign","com.xxfc.platform"},defaultConfiguration = HeaderConfig.class) @EnableFeignClients(value = {"com.github.wxiaoqi.security.auth.client.feign", "com.github.wxiaoqi.security.admin.feign","com.xxfc.platform"},defaultConfiguration = HeaderConfig.class)
@EnableAceCache @EnableAceCache
@EnableCaching
@MapperScan(basePackages = "com.xxfc.platform.campsite.mapper") @MapperScan(basePackages = "com.xxfc.platform.campsite.mapper")
public class CampSiteApplication { public class CampSiteApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
package com.xxfc.platform.campsite.biz; package com.xxfc.platform.campsite.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.github.wxiaoqi.security.common.vo.GoodDataVO; import com.github.wxiaoqi.security.common.vo.GoodDataVO;
...@@ -10,6 +12,9 @@ import lombok.extern.slf4j.Slf4j; ...@@ -10,6 +12,9 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShop; import com.xxfc.platform.campsite.entity.CampsiteShop;
...@@ -18,6 +23,7 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -18,6 +23,7 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneOffset; import java.time.ZoneOffset;
...@@ -33,25 +39,48 @@ import java.util.stream.Collectors; ...@@ -33,25 +39,48 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
/** /**
* 地球半径,单位 km * 地球半径,单位 km
*/ */
private static final double EARTH_RADIUS = 6378.137; private static final double EARTH_RADIUS = 6378.137;
@Autowired
private CampsiteShopTagBiz campsiteShopTagBiz;
@Autowired
private CampsiteShopCarouselBiz campsiteShopCarouselBiz;
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Resource(name = "customRedisTemplate")
HashOperations<String, String, String> campHashOperations;
@Autowired @Resource(name = "customRedisTemplate")
private CampsiteShopTagBiz campsiteShopTagBiz; ValueOperations<String, String> campsiteValueOperations;
@Autowired private static final String CAMPSITE_CACHE = "campsite_cache:";
private CampsiteShopCarouselBiz campsiteShopCarouselBiz; private static final String CAMSITE_DETAIL_CACHE="campsite:detail:cache:";
private static final String CAMPSITE_CACHE_ALL = "all";
/** /**
* 根据店铺类型查找列表 * 根据店铺类型查找列表
*
* @param type * @param type
* @return * @return
*/ */
public PageDataVO<CampsiteShopPageVo> findCampsiteShopPageByType(Integer type,Integer pageNo,Integer pageSize) { public PageDataVO<CampsiteShopPageVo> findCampsiteShopPageByType(Integer type, Integer pageNo, Integer pageSize) {
//根据type类型查找店铺 //根据type类型查找店铺
String result = null;
if (Objects.isNull(type)) {
result = campHashOperations.get(CAMPSITE_CACHE, CAMPSITE_CACHE_ALL);
} else {
result = campHashOperations.get(CAMPSITE_CACHE, String.format("%s%d%d", String.valueOf(type), pageNo, pageSize));
}
if (result != null) {
return JSONObject.parseObject(result,new TypeReference<PageDataVO<CampsiteShopPageVo>>(){});
}
PageDataVO<CampsiteShopPageDTO> pageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findAllCampsiteShopsByType(type)); PageDataVO<CampsiteShopPageDTO> pageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findAllCampsiteShopsByType(type));
List<CampsiteShopPageDTO> campsiteShopPageDTOS = pageDataVO.getData(); List<CampsiteShopPageDTO> campsiteShopPageDTOS = pageDataVO.getData();
...@@ -60,77 +89,91 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -60,77 +89,91 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
campsiteShopPageDataVO.setTotalCount(pageDataVO.getTotalCount()); campsiteShopPageDataVO.setTotalCount(pageDataVO.getTotalCount());
campsiteShopPageDataVO.setPageSize(pageDataVO.getPageSize()); campsiteShopPageDataVO.setPageSize(pageDataVO.getPageSize());
campsiteShopPageDataVO.setPageNum(pageDataVO.getPageNum()); campsiteShopPageDataVO.setPageNum(pageDataVO.getPageNum());
if (CollectionUtils.isEmpty(campsiteShopPageDTOS)){ if (CollectionUtils.isEmpty(campsiteShopPageDTOS)) {
campsiteShopPageDataVO.setData(new ArrayList<CampsiteShopPageVo>()); campsiteShopPageDataVO.setData(new ArrayList<CampsiteShopPageVo>());
return campsiteShopPageDataVO; return campsiteShopPageDataVO;
} }
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("根据type=【{}】查询到的店铺数据:【{}】",type,campsiteShopPageDTOS); log.debug("根据type=【{}】查询到的店铺数据:【{}】", type, campsiteShopPageDTOS);
} }
List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>(); List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>();
campsiteShopPageDTOS = campsiteShopPageDTOS.stream().distinct().collect(Collectors.toList()); campsiteShopPageDTOS = campsiteShopPageDTOS.stream().distinct().collect(Collectors.toList());
for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) { for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) {
CampsiteShopPageVo campsiteShopPageVo = new CampsiteShopPageVo(); CampsiteShopPageVo campsiteShopPageVo = new CampsiteShopPageVo();
BeanUtils.copyProperties(campsiteShopPageDTO,campsiteShopPageVo); BeanUtils.copyProperties(campsiteShopPageDTO, campsiteShopPageVo);
campsiteShopPageVoList.add(campsiteShopPageVo); campsiteShopPageVoList.add(campsiteShopPageVo);
} }
campsiteShopPageVoList.sort(Comparator.comparing(CampsiteShopPageVo::getHot).reversed().thenComparing(CampsiteShopPageVo::getCrtTime).reversed()); campsiteShopPageVoList.sort(Comparator.comparing(CampsiteShopPageVo::getHot).reversed().thenComparing(CampsiteShopPageVo::getCrtTime).reversed());
campsiteShopPageDataVO.setData(campsiteShopPageVoList); campsiteShopPageDataVO.setData(campsiteShopPageVoList);
if (Objects.isNull(type)) {
campHashOperations.put(CAMPSITE_CACHE, CAMPSITE_CACHE_ALL, JSONObject.toJSONString(campsiteShopPageDataVO));
} else {
campHashOperations.put(CAMPSITE_CACHE, String.format("%s%d%d", String.valueOf(type), pageNo, pageSize), JSONObject.toJSONString(campsiteShopPageDataVO));
}
return campsiteShopPageDataVO; return campsiteShopPageDataVO;
} }
/** /**
* 根据店铺id查询店铺详情 * 根据店铺id查询店铺详情
*
* @param id * @param id
* @return * @return
*/ */
public CampsiteShopDetailVo findCampsiteShopDetailById(Integer id,Double longitude,Double latitude) { public CampsiteShopDetailVo findCampsiteShopDetailById(Integer id, Double longitude, Double latitude) {
String result = campsiteValueOperations.get(String.format("%s%d", CAMSITE_DETAIL_CACHE, id));
if (Objects.nonNull(result)){
return JSONObject.parseObject(result,new TypeReference<CampsiteShopDetailVo>(){});
}
CampsiteShopDetailVo campsiteShopDetailVo = new CampsiteShopDetailVo(); CampsiteShopDetailVo campsiteShopDetailVo = new CampsiteShopDetailVo();
//从店铺表根据店铺id查询 //从店铺表根据店铺id查询
CampsiteShopDetailDTO campsiteShopDetailDTO = mapper.findCampsiteShopDetailById(id); CampsiteShopDetailDTO campsiteShopDetailDTO = mapper.findCampsiteShopDetailById(id);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("根据店铺id=【{}】查询出店铺信息【{}】",id,campsiteShopDetailDTO); log.debug("根据店铺id=【{}】查询出店铺信息【{}】", id, campsiteShopDetailDTO);
} }
BeanUtils.copyProperties(campsiteShopDetailDTO,campsiteShopDetailVo); if (Objects.isNull(campsiteShopDetailDTO)){
//从轮播表根据店铺id查询 return campsiteShopDetailVo;
List<CampsiteShopCarouselDetailDTO> campsiteShopCarouselDTOS = campsiteShopCarouselBiz.findByCampsiteShopId(id); }
if (log.isDebugEnabled()){ BeanUtils.copyProperties(campsiteShopDetailDTO, campsiteShopDetailVo);
log.debug("根据店铺id=【{}】查询出店铺轮播图信息:【{}】",id,campsiteShopCarouselDTOS); //从轮播表根据店铺id查询
} List<CampsiteShopCarouselDetailDTO> campsiteShopCarouselDTOS = campsiteShopCarouselBiz.findByCampsiteShopId(id);
List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos = new ArrayList<>(); if (log.isDebugEnabled()) {
if (CollectionUtils.isNotEmpty(campsiteShopCarouselDTOS)) { log.debug("根据店铺id=【{}】查询出店铺轮播图信息:【{}】", id, campsiteShopCarouselDTOS);
campsiteShopCarouselDTOS.forEach(campsiteShopCarouselDetailDTO -> { }
CampsiteShopCarouselDetailVo carouselDetailVo = new CampsiteShopCarouselDetailVo(); List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos = new ArrayList<>();
BeanUtils.copyProperties(campsiteShopCarouselDetailDTO, carouselDetailVo); if (CollectionUtils.isNotEmpty(campsiteShopCarouselDTOS)) {
campsiteShopCarouselDetailVos.add(carouselDetailVo); campsiteShopCarouselDTOS.forEach(campsiteShopCarouselDetailDTO -> {
}); CampsiteShopCarouselDetailVo carouselDetailVo = new CampsiteShopCarouselDetailVo();
} BeanUtils.copyProperties(campsiteShopCarouselDetailDTO, carouselDetailVo);
campsiteShopDetailVo.setCampsiteShopCarouselDetailVos(campsiteShopCarouselDetailVos); campsiteShopCarouselDetailVos.add(carouselDetailVo);
//从店铺类型表根据店铺id查询 -->类型列表拼接 });
}
campsiteShopDetailVo.setCampsiteShopCarouselDetailVos(campsiteShopCarouselDetailVos);
//从店铺类型表根据店铺id查询 -->类型列表拼接
List<CampsiteShopTagDTO> shopTagDTOS = campsiteShopTagBiz.findByCampsiteShopId(id); List<CampsiteShopTagDTO> shopTagDTOS = campsiteShopTagBiz.findByCampsiteShopId(id);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("根据店铺id=【{}】查询出店铺类型:【{}】",id,shopTagDTOS); log.debug("根据店铺id=【{}】查询出店铺类型:【{}】", id, shopTagDTOS);
} }
campsiteShopDetailVo.setTypeNames(shopTagDTOS==null?Collections.EMPTY_LIST:shopTagDTOS.stream().map(CampsiteShopTagDTO::getName).collect(Collectors.toList())); campsiteShopDetailVo.setTypeNames(shopTagDTOS == null ? Collections.EMPTY_LIST : shopTagDTOS.stream().map(CampsiteShopTagDTO::getName).collect(Collectors.toList()));
//根据经纬度算距离 //根据经纬度算距离
double distance = getDistance(campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude); double distance = getDistance(campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("根据店铺经度=【{}】,纬度=【{}】和自己所在位置的经度=【{}】,纬度=【{}】计算出的距离:【{}km】",campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude,distance); log.debug("根据店铺经度=【{}】,纬度=【{}】和自己所在位置的经度=【{}】,纬度=【{}】计算出的距离:【{}km】", campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude, distance);
} }
campsiteShopDetailVo.setDistance(String.format("%.1f",distance)); campsiteShopDetailVo.setDistance(String.format("%.1f", distance));
return campsiteShopDetailVo; campsiteValueOperations.set(String.format("%s%d",CAMSITE_DETAIL_CACHE,id),JSONObject.toJSONString(campsiteShopDetailVo));
return campsiteShopDetailVo;
} }
/** /**
* 根据创建时间或营地名称来查找营地列表 * 根据创建时间或营地名称来查找营地列表
*
* @param campsiteShopAdminFindDTO * @param campsiteShopAdminFindDTO
* @return * @return
*/ */
public PageDataVO<CampsiteShopAdminPageVo> findCampsiteShopPage(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO) { public PageDataVO<CampsiteShopAdminPageVo> findCampsiteShopPage(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO) {
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("查询条件:【{}】",campsiteShopAdminFindDTO); log.debug("查询条件:【{}】", campsiteShopAdminFindDTO);
} }
//筛选时间处理 //筛选时间处理
...@@ -146,21 +189,21 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -146,21 +189,21 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
campsiteShopAdminFindDTO.setStartTime(processStartTime(startTime)); campsiteShopAdminFindDTO.setStartTime(processStartTime(startTime));
campsiteShopAdminFindDTO.setEndTime(processEndTime(endTime)); campsiteShopAdminFindDTO.setEndTime(processEndTime(endTime));
}*/ }*/
PageDataVO<CampsiteShopAdminPageDTO> campsiteShopAdminpageDTOPageDataVO = PageDataVO.pageInfo(campsiteShopAdminFindDTO.getPage(),campsiteShopAdminFindDTO.getLimit(),()->mapper.findAllCampsiteShops(campsiteShopAdminFindDTO)); PageDataVO<CampsiteShopAdminPageDTO> campsiteShopAdminpageDTOPageDataVO = PageDataVO.pageInfo(campsiteShopAdminFindDTO.getPage(), campsiteShopAdminFindDTO.getLimit(), () -> mapper.findAllCampsiteShops(campsiteShopAdminFindDTO));
List<CampsiteShopAdminPageDTO> campsiteShopAdminPageDTOS = campsiteShopAdminpageDTOPageDataVO.getData(); List<CampsiteShopAdminPageDTO> campsiteShopAdminPageDTOS = campsiteShopAdminpageDTOPageDataVO.getData();
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("查询结果:【{}】",campsiteShopAdminPageDTOS); log.debug("查询结果:【{}】", campsiteShopAdminPageDTOS);
} }
PageDataVO<CampsiteShopAdminPageVo> campsiteShopAdminPageDataVos = new PageDataVO<>(); PageDataVO<CampsiteShopAdminPageVo> campsiteShopAdminPageDataVos = new PageDataVO<>();
if (CollectionUtils.isEmpty(campsiteShopAdminPageDTOS)){ if (CollectionUtils.isEmpty(campsiteShopAdminPageDTOS)) {
return campsiteShopAdminPageDataVos; return campsiteShopAdminPageDataVos;
} }
//转换成营地ids //转换成营地ids
List<Integer> campsiteShopIds = campsiteShopAdminPageDTOS.stream().map(CampsiteShopAdminPageDTO::getId).collect(Collectors.toList()); List<Integer> campsiteShopIds = campsiteShopAdminPageDTOS.stream().map(CampsiteShopAdminPageDTO::getId).collect(Collectors.toList());
//根据营地ids查询营地对应的标签 键营地id 值对应的标签列表 //根据营地ids查询营地对应的标签 键营地id 值对应的标签列表
Map<Integer,List<String>> shopTagsMap = campsiteShopTagBiz.findByCampsiteShopIds(campsiteShopIds); Map<Integer, List<String>> shopTagsMap = campsiteShopTagBiz.findByCampsiteShopIds(campsiteShopIds);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("营地id为:【{}】的类型【{}】",campsiteShopIds,shopTagsMap); log.debug("营地id为:【{}】的类型【{}】", campsiteShopIds, shopTagsMap);
} }
campsiteShopAdminPageDTOS = campsiteShopAdminPageDTOS.stream().peek(campsiteShopAdminPageDTO -> { campsiteShopAdminPageDTOS = campsiteShopAdminPageDTOS.stream().peek(campsiteShopAdminPageDTO -> {
if (Objects.nonNull(shopTagsMap)) { if (Objects.nonNull(shopTagsMap)) {
...@@ -173,52 +216,56 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -173,52 +216,56 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
campsiteShopAdminPageDataVos.setTotalCount(campsiteShopAdminpageDTOPageDataVO.getTotalCount()); campsiteShopAdminPageDataVos.setTotalCount(campsiteShopAdminpageDTOPageDataVO.getTotalCount());
campsiteShopAdminPageDataVos.setPageSize(campsiteShopAdminpageDTOPageDataVO.getPageSize()); campsiteShopAdminPageDataVos.setPageSize(campsiteShopAdminpageDTOPageDataVO.getPageSize());
campsiteShopAdminPageDataVos.setPageNum(campsiteShopAdminpageDTOPageDataVO.getPageNum()); campsiteShopAdminPageDataVos.setPageNum(campsiteShopAdminpageDTOPageDataVO.getPageNum());
campsiteShopAdminPageDataVos.setData(JSONObject.parseObject(JSONObject.toJSONString(campsiteShopAdminPageDTOS),new TypeReference<List<CampsiteShopAdminPageVo>>(){})); campsiteShopAdminPageDataVos.setData(JSONObject.parseObject(JSONObject.toJSONString(campsiteShopAdminPageDTOS), new TypeReference<List<CampsiteShopAdminPageVo>>() {
}));
return campsiteShopAdminPageDataVos; return campsiteShopAdminPageDataVos;
} }
/** /**
* 营地保存或更新 * 营地保存或更新
*
* @param campsiteShopAdminDTO * @param campsiteShopAdminDTO
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED) @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public int saveCampsiteShop(CampsiteShopAdminDTO campsiteShopAdminDTO) { public int saveCampsiteShop(CampsiteShopAdminDTO campsiteShopAdminDTO) {
CampsiteShop campsiteShop = new CampsiteShop(); CampsiteShop campsiteShop = new CampsiteShop();
campsiteShopAdminDTO.setName(campsiteShopAdminDTO.getName()==null?null:campsiteShopAdminDTO.getName().trim()); campsiteShopAdminDTO.setName(campsiteShopAdminDTO.getName() == null ? null : campsiteShopAdminDTO.getName().trim());
BeanUtils.copyProperties(campsiteShopAdminDTO,campsiteShop); BeanUtils.copyProperties(campsiteShopAdminDTO, campsiteShop);
int effectRows = 0; int effectRows = 0;
if (Objects.nonNull(campsiteShopAdminDTO.getId())){ if (Objects.nonNull(campsiteShopAdminDTO.getId())) {
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("更新营地的信息:【{}】",campsiteShop); log.debug("更新营地的信息:【{}】", campsiteShop);
} }
//更新操作 //更新操作
campsiteShop.setUpdTime(Instant.now().toEpochMilli()); campsiteShop.setUpdTime(Instant.now().toEpochMilli());
effectRows = mapper.updateByPrimaryKeySelective(campsiteShop); effectRows = mapper.updateByPrimaryKeySelective(campsiteShop);
}else { } else {
//保存操作 //保存操作
//保存营地信息 //保存营地信息
if (log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("保存营地的信息:【{}】",campsiteShop); log.debug("保存营地的信息:【{}】", campsiteShop);
} }
campsiteShop.setCrtTime(Instant.now().toEpochMilli()); campsiteShop.setCrtTime(Instant.now().toEpochMilli());
effectRows = mapper.insertSelective(campsiteShop); effectRows = mapper.insertSelective(campsiteShop);
} }
//保存或更新 * 营地与 轮播图信息 //保存或更新 * 营地与 轮播图信息
List<CampsiteShopCarouselDTO> carouselDTOS = campsiteShopAdminDTO.getCarouselDTOS(); List<CampsiteShopCarouselDTO> carouselDTOS = campsiteShopAdminDTO.getCarouselDTOS();
if (CollectionUtils.isNotEmpty(carouselDTOS)) { if (CollectionUtils.isNotEmpty(carouselDTOS)) {
carouselDTOS.stream().peek(campsiteShopCarouselDTO -> campsiteShopCarouselDTO.setShopId(campsiteShop.getId())).count(); carouselDTOS.stream().peek(campsiteShopCarouselDTO -> campsiteShopCarouselDTO.setShopId(campsiteShop.getId())).count();
} }
campsiteShopCarouselBiz.saveBatch(carouselDTOS,campsiteShop.getId()); campsiteShopCarouselBiz.saveBatch(carouselDTOS, campsiteShop.getId());
//保存或更新 * 营地与营地类型信息 //保存或更新 * 营地与营地类型信息
List<Integer> campsiteTagDTOS = campsiteShopAdminDTO.getCampsiteTagDTOS(); List<Integer> campsiteTagDTOS = campsiteShopAdminDTO.getCampsiteTagDTOS();
campsiteShopTagBiz.saveBatch(campsiteTagDTOS,campsiteShop.getId()); campsiteShopTagBiz.saveBatch(campsiteTagDTOS, campsiteShop.getId());
redisTemplate.delete(CAMPSITE_CACHE);
return effectRows; return effectRows;
} }
/** /**
* 编辑查询 * 编辑查询
*
* @param id * @param id
* @return * @return
*/ */
...@@ -251,50 +298,67 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -251,50 +298,67 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
}); });
campsiteShopAdminVO.setCampsiteTagListVos(shopTagVos); campsiteShopAdminVO.setCampsiteTagListVos(shopTagVos);
} }
campsiteShopAdminVO.setCarouse(campsiteShopAdminVO.getCarouse()==null?new ArrayList<CampsiteShopCarouselVo>():campsiteShopAdminVO.getCarouse()); campsiteShopAdminVO.setCarouse(campsiteShopAdminVO.getCarouse() == null ? new ArrayList<CampsiteShopCarouselVo>() : campsiteShopAdminVO.getCarouse());
campsiteShopAdminVO.setCampsiteTagListVos(campsiteShopAdminVO.getCampsiteTagListVos()==null?new ArrayList<CampsiteTagListVo>():campsiteShopAdminVO.getCampsiteTagListVos()); campsiteShopAdminVO.setCampsiteTagListVos(campsiteShopAdminVO.getCampsiteTagListVos() == null ? new ArrayList<CampsiteTagListVo>() : campsiteShopAdminVO.getCampsiteTagListVos());
redisTemplate.delete(String.format("%s%d",CAMSITE_DETAIL_CACHE,id));
redisTemplate.delete(CAMPSITE_CACHE);
return campsiteShopAdminVO; return campsiteShopAdminVO;
} }
/** /**
* 逻辑删除 * 逻辑删除
*
* @param id * @param id
* @return * @return
*/ */
public int updateCampsiteSatus(int id) { public int updateCampsiteSatus(int id) {
return mapper.updateCampsiteStatusById(id,1); int effectRows = mapper.updateCampsiteStatusById(id, 1);
if (effectRows>0){
redisTemplate.delete(String.format("%s%d",CAMSITE_DETAIL_CACHE,id));
redisTemplate.delete(CAMPSITE_CACHE);
}
return effectRows;
} }
/** /**
* 上下架 * 上下架
*
* @param id * @param id
* @param status * @param status
* @return * @return
*/ */
public int updateCampsiteSaleStatus(Integer id, Integer status) { public int updateCampsiteSaleStatus(Integer id, Integer status) {
return mapper.updateCampsiteSaleStatusById(id,status); int effectRows = mapper.updateCampsiteSaleStatusById(id, status);
if (effectRows>0){
redisTemplate.delete(String.format("%s%d",CAMSITE_DETAIL_CACHE,id));
redisTemplate.delete(CAMPSITE_CACHE);
}
return effectRows;
} }
/** /**
* 检验营地名称是否存在 * 检验营地名称是否存在
*
* @param id * @param id
* @param name * @param name
* @return * @return
*/ */
public Boolean chekcCampsiteNameExist(Integer id, String name) { public Boolean chekcCampsiteNameExist(Integer id, String name) {
int count = mapper.checkNameExist(id,name); int count = mapper.checkNameExist(id, name);
if (count == 0) { if (count == 0) {
return false; return false;
} }
return true; return true;
} }
/** /**
* 处理开始时间 * 处理开始时间
*
* @param time * @param time
* @return * @return
*/ */
private long processStartTime(Long time){ private long processStartTime(Long time) {
return LocalDateTime.ofInstant(new Date(time).toInstant(), ZoneOffset.ofHours(+8)) return LocalDateTime.ofInstant(new Date(time).toInstant(), ZoneOffset.ofHours(+8))
.withHour(0) .withHour(0)
.withMinute(0) .withMinute(0)
.withSecond(0) .withSecond(0)
...@@ -305,18 +369,20 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -305,18 +369,20 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
/** /**
* 处理结束时间 * 处理结束时间
*
* @param time * @param time
* @return * @return
*/ */
private long processEndTime(Long time){ private long processEndTime(Long time) {
return LocalDateTime.ofInstant(new Date(time).toInstant(), ZoneOffset.ofHours(+8)) return LocalDateTime.ofInstant(new Date(time).toInstant(), ZoneOffset.ofHours(+8))
.withHour(23) .withHour(23)
.withMinute(59) .withMinute(59)
.withSecond(59) .withSecond(59)
.withNano(999) .withNano(999)
.toInstant(ZoneOffset.ofHours(+8)) .toInstant(ZoneOffset.ofHours(+8))
.toEpochMilli(); .toEpochMilli();
} }
/** /**
* 根据经纬度,计算两点间的距离 * 根据经纬度,计算两点间的距离
* *
...@@ -341,20 +407,22 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -341,20 +407,22 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2))); Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
// 弧长乘地球半径, 返回单位: 千米 // 弧长乘地球半径, 返回单位: 千米
s = s * EARTH_RADIUS; s = s * EARTH_RADIUS;
return s; return s;
} }
/** /**
* 首页营地列表 * 首页营地列表
*
* @param page * @param page
* @param limit * @param limit
* @return * @return
*/ */
public List<GoodDataVO> getAllByHome(Integer page, Integer limit){ public List<GoodDataVO> getAllByHome(Integer page, Integer limit) {
return mapper.findAllByHome((page-1)*limit,limit); return mapper.findAllByHome((page - 1) * limit, limit);
}; }
;
} }
\ No newline at end of file
...@@ -5,9 +5,12 @@ import org.springframework.context.annotation.Configuration; ...@@ -5,9 +5,12 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.util.Objects;
/** /**
* ${DESCRIPTION} * ${DESCRIPTION}
* *
...@@ -19,7 +22,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; ...@@ -19,7 +22,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
@Primary @Primary
public class RedisConfiguration { public class RedisConfiguration {
@Bean @Bean("customRedisTemplate")
public RedisTemplate<String, Object> customRedisTemplate(RedisConnectionFactory factory) { public RedisTemplate<String, Object> customRedisTemplate(RedisConnectionFactory factory) {
RedisTemplate redisTemplate = new RedisTemplate(); RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(factory); redisTemplate.setConnectionFactory(factory);
...@@ -27,7 +30,7 @@ public class RedisConfiguration { ...@@ -27,7 +30,7 @@ public class RedisConfiguration {
redisTemplate.setKeySerializer(stringSerializer); redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer); redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer); redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer); redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
redisTemplate.afterPropertiesSet(); redisTemplate.afterPropertiesSet();
return redisTemplate; return redisTemplate;
} }
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<!--根据id查询详情--> <!--根据id查询详情-->
<select id="findCampsiteShopDetailById" resultType="com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO"> <select id="findCampsiteShopDetailById" resultType="com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO">
select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`address` as `address`, select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`address` as `address`,`service_phone` as `phone`,
`content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id} `content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id}
</select> </select>
......
...@@ -212,9 +212,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -212,9 +212,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//生成订单明细 //生成订单明细
RentVehiclePriceVO rvp = new RentVehiclePriceVO(){{ RentVehiclePriceVO rvp = new RentVehiclePriceVO(){{
setOrderAmount(orderAmount);
setGoodsAmount(goodsAmount);
setRealAmount(orderAmount);
setDeposit(vehicleModel.getDeposit()); setDeposit(vehicleModel.getDeposit());
setDriverPrice(DRIVER_PRICE); setDriverPrice(DRIVER_PRICE);
setDamageSafePrice(DAMAGE_SAFE); setDamageSafePrice(DAMAGE_SAFE);
...@@ -223,6 +220,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -223,6 +220,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
setVehicleNum(1); setVehicleNum(1);
setDriverNum(1); setDriverNum(1);
}}; }};
rvp.setOrderAmount(orderAmount);
rvp.setGoodsAmount(goodsAmount);
rvp.setRealAmount(orderAmount);
rvp.setDriverAmount(driverAmount); rvp.setDriverAmount(driverAmount);
rvp.setVehicleAmount(vehicleAmount); rvp.setVehicleAmount(vehicleAmount);
rvp.setDamageSafeAmount(damageSafeAmount); rvp.setDamageSafeAmount(damageSafeAmount);
......
...@@ -2,6 +2,7 @@ package com.xxfc.platform.universal.biz; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.universal.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -98,6 +99,7 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> { ...@@ -98,6 +99,7 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> {
return dictionaryList; return dictionaryList;
} }
//@Cache()
public Map<String, Dictionary> getAll4Map(){ public Map<String, Dictionary> getAll4Map(){
// List<Dictionary> dictionaries = this.getParentCommon(null); // List<Dictionary> dictionaries = this.getParentCommon(null);
List<Dictionary> dictionaries = selectListAll(); List<Dictionary> dictionaries = selectListAll();
......
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