Commit 9d582020 authored by libin's avatar libin

营地

parent e61548dd
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>xx-campsite-api</artifactId> <artifactId>xx-campsite-api</artifactId>
<name>xx-campsite-api</name>
<description>The xxfc campsite api</description>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.wxiaoqi</groupId> <groupId>com.github.wxiaoqi</groupId>
......
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺轮播表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop_carousel")
@ApiModel(value = "店铺轮播Vo")
public class CampsiteShopCarouselDTO implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 商家id
*/
@ApiModelProperty(value = "商家id")
private Integer shopId;
/**
* 访问链接
*/
@ApiModelProperty(value = "访问链接")
private String url;
/**
* 轮播图片链接
*/
@ApiModelProperty(value = "轮播图片链接")
private String imgUrl;
/**
* 图片名称
*/
@ApiModelProperty(value = "图片名称")
private String name;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/17 18:29
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Api("轮播图详细列表")
public class CampsiteShopCarouselDetailDTO {
/**
* 图片地址
*/
@ApiModelProperty("图片地址")
private String imgUrl;
/**
* 链接地址
*/
@ApiModelProperty("链接地址")
private String url;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo" )
public class CampsiteShopDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺logo
*/
@ApiModelProperty(value = "店铺logo")
private String logo;
/**
* 店铺介绍
*/
@ApiModelProperty(value = "店铺介绍")
private String intro;
/**
* 店铺URL
*/
@ApiModelProperty(value = "店铺URL")
private String url;
/**
* 主要联系人
*/
@ApiModelProperty(value = "主要联系人")
private String concat;
/**
* 联系人身份证号
*/
@ApiModelProperty(value = "联系人身份证号")
private String idNumber;
/**
* 联系人电话
*/
@ApiModelProperty(value = "联系人电话")
private String phone;
/**
* 公司id
*/
@ApiModelProperty(value = "公司id")
private Integer companyId;
/**
* 公司名称
*/
@ApiModelProperty(value = "公司名称")
private String companyName;
/**
* 开店时间
*/
@ApiModelProperty(value = "开店时间")
private Long startTime;
/**
* 地址-省/直辖市(编码)
*/
@ApiModelProperty(value = "地址-省/直辖市(编码)")
private Integer province;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty(value = "地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市
*/
@ApiModelProperty(value = "地址-市")
private Integer city;
/**
* 地址-市(名称)
*/
@ApiModelProperty(value = "地址-市(名称)")
private String cityName;
/**
* 经度
*/
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@ApiModelProperty(value = "纬度")
private Double latitude;
/**
* 具体地址
*/
@ApiModelProperty(value = "具体地址")
private String adress;
/**
* 客服电话
*/
@ApiModelProperty(value = "客服电话")
private String servicePhone;
/**
* 配套设施&收费
*/
@ApiModelProperty(value = "配套设施&收费")
private String configure;
/**
* 店铺详情
*/
@ApiModelProperty(value = "店铺详情")
private String content;
/**
* 店铺状态:0-未开业;1-已开业
*/
@ApiModelProperty(value = "店铺状态:0-未开业;1-已开业")
private Integer status;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间", hidden = true)
private Long updTime;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/17 17:35
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CampsiteShopDetailDTO {
/**
* 店铺名称
*/
@ApiModelProperty("店铺名称")
private String name;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty("地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市(名称)
*/
@ApiModelProperty("地址-市(名称)")
private String cityName;
/**
* 具体地址
*/
@ApiModelProperty("具体地址")
private String address;
/**
* 店铺详情
*/
@ApiModelProperty("店铺详情")
private String content;
/**
* 配套设施&收费
*/
@ApiModelProperty("配套设施&收费")
private String configure;
/**
* 经度
*/
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@ApiModelProperty(value = "纬度")
private Double latitude;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo")
public class CampsiteShopPageDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺logo
*/
@ApiModelProperty(value = "店铺logo")
private String logo;
/**
* 店铺URL
*/
@ApiModelProperty(value = "店铺URL")
private String url;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty(value = "地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市(名称)
*/
@ApiModelProperty(value = "地址-市(名称)")
private String cityName;
/**
* 店铺类型名称
*/
@ApiModelProperty(value = "店铺类型名称")
private String storeTypeName;
/**
* 店铺类型id
*/
@ApiModelProperty(value = "店铺类型id")
private String storeId;
/**
* 经度
*/
@Column(name = "longitude")
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@Column(name = "latitude")
@ApiModelProperty(value = "纬度")
private Double latitude;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺类型表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop_tag")
@ApiModel(value = "店铺类型vo")
public class CampsiteShopTagDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("首页banner图主键")
private Long id;
/**
* 店铺id
*/
@ApiModelProperty(value = "店铺id")
private Integer shopId;
/**
* 类型id
*/
@ApiModelProperty(value = "类型id")
private Integer tagId;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 修改时间
*/
@ApiModelProperty(value = "修改时间", hidden = true)
private Long updTime;
/**
* 是否删除,0否,1是
*/
@ApiModelProperty(value = "是否删除,0否,1是")
private Integer isDel;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺类型表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo")
public class CampsiteTagDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 父id
*/
@ApiModelProperty(value = "父id")
private Integer parentId;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 是否筛选条件
*/
@ApiModelProperty(value = "是否筛选条件")
private Integer isSearch;
/**
* 排序
*/
@ApiModelProperty(value = "排序")
private Integer rank;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Long ctrTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间", hidden = true)
private Long updTime;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/17 18:23
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Api("轮播图详细列表")
public class CampsiteShopCarouselDetailVo {
/**
* 图片地址
*/
@ApiModelProperty("图片地址")
private String imgUrl;
/**
* 链接地址
*/
@ApiModelProperty("链接地址")
private String url;
}
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺轮播表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop_carousel")
@ApiModel(value = "店铺轮播Vo")
public class CampsiteShopCarouselVo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 商家id
*/
@ApiModelProperty(value = "商家id")
private Integer shopId;
/**
* 访问链接
*/
@ApiModelProperty(value = "访问链接")
private String url;
/**
* 轮播图片链接
*/
@ApiModelProperty(value = "轮播图片链接")
private String imgUrl;
/**
* 图片名称
*/
@ApiModelProperty(value = "图片名称")
private String name;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 店铺详情vo
* @data 2019/6/17 17:35
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "店铺详情")
public class CampsiteShopDetailVo {
/**
* 店铺名称
*/
@ApiModelProperty("店铺名称")
private String name;
/**
* 具体地址
*/
@ApiModelProperty("具体地址")
private String address;
/**
* 店铺详情
*/
@ApiModelProperty("店铺详情")
private String content;
/**
* 配套设施&收费
*/
@ApiModelProperty("配套设施&收费")
private String configure;
/**
* 距离
*/
@ApiModelProperty("距离")
private String distance;
/**
* 类型列表
*
*/
@ApiModelProperty("类型列表")
private String typeNames;
/**
*轮播图列表
*/
@ApiModelProperty("轮播图列表")
private List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos;
}
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CampsiteShopPageVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺logo
*/
@ApiModelProperty(value = "店铺logo")
private String logo;
/**
* 店铺URL
*/
@ApiModelProperty(value = "店铺URL")
private String url;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty(value = "地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市(名称)
*/
@ApiModelProperty(value = "地址-市(名称)")
private String cityName;
/**
* 店铺类型名称
*/
@ApiModelProperty(value = "店铺类型名称")
private String storeTypeName;
/**
* 店铺类型id
*/
@ApiModelProperty(value = "店铺类型id")
private String storeId;
/**
* 经度
*/
@Column(name = "longitude")
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@Column(name = "latitude")
@ApiModelProperty(value = "纬度")
private Double latitude;
}
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺类型表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop_tag")
@ApiModel(value = "店铺类型vo")
public class CampsiteShopTagVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("首页banner图主键")
private Long id;
/**
* 店铺id
*/
@ApiModelProperty(value = "店铺id")
private Integer shopId;
/**
* 类型id
*/
@ApiModelProperty(value = "类型id")
private Integer tagId;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 修改时间
*/
@ApiModelProperty(value = "修改时间", hidden = true)
private Long updTime;
/**
* 是否删除,0否,1是
*/
@ApiModelProperty(value = "是否删除,0否,1是")
private Integer isDel;
}
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo")
public class CampsiteShopVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺logo
*/
@ApiModelProperty(value = "店铺logo")
private String logo;
/**
* 店铺介绍
*/
@ApiModelProperty(value = "店铺介绍")
private String intro;
/**
* 店铺URL
*/
@ApiModelProperty(value = "店铺URL")
private String url;
/**
* 主要联系人
*/
@ApiModelProperty(value = "主要联系人")
private String concat;
/**
* 联系人身份证号
*/
@ApiModelProperty(value = "联系人身份证号")
private String idNumber;
/**
* 联系人电话
*/
@ApiModelProperty(value = "联系人电话")
private String phone;
/**
* 公司id
*/
@ApiModelProperty(value = "公司id")
private Integer companyId;
/**
* 公司名称
*/
@ApiModelProperty(value = "公司名称")
private String companyName;
/**
* 开店时间
*/
@ApiModelProperty(value = "开店时间")
private Long startTime;
/**
* 地址-省/直辖市(编码)
*/
@ApiModelProperty(value = "地址-省/直辖市(编码)")
private Integer province;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty(value = "地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市
*/
@ApiModelProperty(value = "地址-市")
private Integer city;
/**
* 地址-市(名称)
*/
@ApiModelProperty(value = "地址-市(名称)")
private String cityName;
/**
* 经度
*/
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@ApiModelProperty(value = "纬度")
private Double latitude;
/**
* 具体地址
*/
@ApiModelProperty(value = "具体地址")
private String adress;
/**
* 客服电话
*/
@ApiModelProperty(value = "客服电话")
private String servicePhone;
/**
* 配套设施&收费
*/
@ApiModelProperty(value = "配套设施&收费")
private String configure;
/**
* 店铺详情
*/
@ApiModelProperty(value = "店铺详情")
private String content;
/**
* 店铺状态:0-未开业;1-已开业
*/
@ApiModelProperty(value = "店铺状态:0-未开业;1-已开业")
private Integer status;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间", hidden = true)
private Long updTime;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺类型表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo")
public class CampsiteTagVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 父id
*/
@ApiModelProperty(value = "父id")
private Integer parentId;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 是否筛选条件
*/
@ApiModelProperty(value = "是否筛选条件")
private Integer isSearch;
/**
* 排序
*/
@ApiModelProperty(value = "排序")
private Integer rank;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Long ctrTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间", hidden = true)
private Long updTime;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>xx-campsite-server</artifactId> <artifactId>xx-campsite-server</artifactId>
<name>Campiste program</name> <name>xx-campsite-server</name>
<description>the xxfc travel Campsite</description> <description>the xxfc travel Campsite</description>
<dependencies> <dependencies>
......
...@@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; ...@@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableScheduling;
import tk.mybatis.spring.annotation.MapperScan; import tk.mybatis.spring.annotation.MapperScan;
/** /**
...@@ -21,6 +22,7 @@ import tk.mybatis.spring.annotation.MapperScan; ...@@ -21,6 +22,7 @@ import tk.mybatis.spring.annotation.MapperScan;
}) })
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableAceAuthClient @EnableAceAuthClient
@EnableScheduling
@EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign", "com.github.wxiaoqi.security.admin.feign","com.xxfc.platform"}) @EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign", "com.github.wxiaoqi.security.admin.feign","com.xxfc.platform"})
@EnableAceCache @EnableAceCache
@EnableCaching @EnableCaching
......
package com.xxfc.platform.campsite.biz; package com.xxfc.platform.campsite.biz;
import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.CampSiteApplication;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO;
import com.xxfc.platform.campsite.vo.CampsiteShopCarouselDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopPageVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShop; import com.xxfc.platform.campsite.entity.CampsiteShop;
import com.xxfc.platform.campsite.mapper.CampsiteShopMapper; import com.xxfc.platform.campsite.mapper.CampsiteShopMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 营地店铺表 * 营地店铺表
* *
...@@ -14,5 +32,119 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -14,5 +32,119 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Service @Service
@Slf4j
public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
/**
* 地球半径,单位 km
*/
private static final double EARTH_RADIUS = 6378.137;
@Autowired
private CampsiteShopTagBiz campsiteShopTagBiz;
@Autowired
private CampsiteShopCarouselBiz campsiteShopCarouselBiz;
/**
* 根据店铺类型查找列表
* @param type
* @return
*/
public PageDataVO<CampsiteShopPageVo> findCampsiteShopPageByType(Integer type,Integer pageNo,Integer pageSize) {
//根据type类型查找店铺
PageDataVO<CampsiteShopPageDTO> pageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findCampsiteShopsByType(type));
List<CampsiteShopPageDTO> campsiteShopPageDTOS = pageDataVO.getData();
PageDataVO<CampsiteShopPageVo> campsiteShopPageDataVO = new PageDataVO<>();
campsiteShopPageDataVO.setTotalPage(pageDataVO.getTotalPage());
campsiteShopPageDataVO.setTotalCount(pageDataVO.getTotalCount());
campsiteShopPageDataVO.setPageSize(pageDataVO.getPageSize());
campsiteShopPageDataVO.setPageNum(pageDataVO.getPageNum());
if (CollectionUtils.isEmpty(campsiteShopPageDTOS)){
return campsiteShopPageDataVO;
}
if (log.isDebugEnabled()){
log.debug("根据type=[{}]查询到的店铺数据:[{}]",type,campsiteShopPageDTOS);
}
List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>();
for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) {
CampsiteShopPageVo campsiteShopPageVo = new CampsiteShopPageVo();
BeanUtils.copyProperties(campsiteShopPageDTO,campsiteShopPageVo);
campsiteShopPageVoList.add(campsiteShopPageVo);
}
campsiteShopPageDataVO.setData(campsiteShopPageVoList);
return campsiteShopPageDataVO;
}
/**
* 根据店铺id查询店铺详情
* @param id
* @return
*/
public CampsiteShopDetailVo findCampsiteShopDetailById(Integer id,Double longitude,Double latitude) {
CampsiteShopDetailVo campsiteShopDetailVo = new CampsiteShopDetailVo();
//从店铺表根据店铺id查询
CampsiteShopDetailDTO campsiteShopDetailDTO = mapper.findCampsiteShopDetailById(id);
if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺信息[{}]",id,campsiteShopDetailDTO);
}
BeanUtils.copyProperties(campsiteShopDetailDTO,campsiteShopDetailVo);
//从轮播表根据店铺id查询
List<CampsiteShopCarouselDetailDTO> campsiteShopCarouselDTOS = campsiteShopCarouselBiz.findByCampsiteShopId(id);
if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺轮播图信息:[{}]",id,campsiteShopCarouselDTOS);
}
List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos = new ArrayList<>();
campsiteShopCarouselDTOS.forEach(campsiteShopCarouselDetailDTO -> {
CampsiteShopCarouselDetailVo carouselDetailVo = new CampsiteShopCarouselDetailVo();
BeanUtils.copyProperties(campsiteShopCarouselDetailDTO,carouselDetailVo);
campsiteShopCarouselDetailVos.add(carouselDetailVo);
});
campsiteShopDetailVo.setCampsiteShopCarouselDetailVos(campsiteShopCarouselDetailVos);
//从店铺类型表根据店铺id查询 -->类型列表拼接
List<String> typeNameList = campsiteShopTagBiz.findByCampsiteShopId(id);
if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺类型:[{}]",id,typeNameList);
}
campsiteShopDetailVo.setTypeNames(typeNameList.stream().collect(Collectors.joining("|")));
//具体地址拼接
campsiteShopDetailVo.setAddress(String.format("%s%s%s",campsiteShopDetailDTO.getProvinceName(),campsiteShopDetailDTO.getCityName(),campsiteShopDetailDTO.getAddress()));
//根据经纬度算距离
double distance = getDistance(campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude);
if (log.isDebugEnabled()){
log.debug("根据店铺经度=[{}],纬度=[{}]和自己所在位置的经度=[{}],纬度=[{}]计算出的距离:[{}km]",campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude,distance);
}
campsiteShopDetailVo.setDistance(String.format("%.1f",distance));
return campsiteShopDetailVo;
}
/**
* 根据经纬度,计算两点间的距离
*
* @param longitude1 第一个点的经度
* @param latitude1 第一个点的纬度
* @param longitude2 第二个点的经度
* @param latitude2 第二个点的纬度
* @return 返回距离 单位千米
*/
private static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) {
// 纬度
double lat1 = Math.toRadians(latitude1);
double lat2 = Math.toRadians(latitude2);
// 经度
double lng1 = Math.toRadians(longitude1);
double lng2 = Math.toRadians(longitude2);
// 纬度之差
double a = lat1 - lat2;
// 经度之差
double b = lng1 - lng2;
// 计算两点距离的公式
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)));
// 弧长乘地球半径, 返回单位: 千米
s = s * EARTH_RADIUS;
return s;
}
} }
\ No newline at end of file
package com.xxfc.platform.campsite.biz; package com.xxfc.platform.campsite.biz;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel; import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import com.xxfc.platform.campsite.mapper.CampsiteShopCarouselMapper; import com.xxfc.platform.campsite.mapper.CampsiteShopCarouselMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.util.List;
/** /**
* 店铺轮播表 * 店铺轮播表
* *
...@@ -15,4 +19,13 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -15,4 +19,13 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/ */
@Service @Service
public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,CampsiteShopCarousel> { public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,CampsiteShopCarousel> {
/**
* 根据店铺id查询轮播图
* @param id
* @return
*/
public List<CampsiteShopCarouselDetailDTO> findByCampsiteShopId(Integer id) {
return mapper.findCarousesByShopId(id);
}
} }
\ No newline at end of file
package com.xxfc.platform.campsite.biz; package com.xxfc.platform.campsite.biz;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShopTag; import com.xxfc.platform.campsite.entity.CampsiteShopTag;
import com.xxfc.platform.campsite.mapper.CampsiteShopTagMapper; import com.xxfc.platform.campsite.mapper.CampsiteShopTagMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.util.List;
/** /**
* 店铺类型表 * 店铺类型表
* *
...@@ -15,4 +18,12 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -15,4 +18,12 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/ */
@Service @Service
public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteShopTag> { public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteShopTag> {
/**
* 根据店铺id查询
* @param id
* @return
*/
public List<String> findByCampsiteShopId(Integer id) {
return mapper.findByCampsiteShopId(id);
}
} }
\ No newline at end of file
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel; import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 店铺轮播表 * 店铺轮播表
* *
...@@ -12,4 +15,11 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -12,4 +15,11 @@ import tk.mybatis.mapper.common.Mapper;
*/ */
public interface CampsiteShopCarouselMapper extends Mapper<CampsiteShopCarousel> { public interface CampsiteShopCarouselMapper extends Mapper<CampsiteShopCarousel> {
/**
* 根据店铺id查询
* @param shopId
* @return
*/
List<CampsiteShopCarouselDetailDTO> findCarousesByShopId(Integer shopId);
} }
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO;
import com.xxfc.platform.campsite.entity.CampsiteShop; import com.xxfc.platform.campsite.entity.CampsiteShop;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 营地店铺表 * 营地店铺表
* *
...@@ -12,4 +17,17 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -12,4 +17,17 @@ import tk.mybatis.mapper.common.Mapper;
*/ */
public interface CampsiteShopMapper extends Mapper<CampsiteShop> { public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
/**
* 根据店铺类型查找店铺列表
* @param typeId
*/
List<CampsiteShopPageDTO> findCampsiteShopsByType(@Param("typeId") Integer typeId);
/**
* 根据店铺id查询
* @param id
* @return
*/
CampsiteShopDetailDTO findCampsiteShopDetailById(Integer id);
} }
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.entity.CampsiteShopTag; import com.xxfc.platform.campsite.entity.CampsiteShopTag;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 店铺类型表 * 店铺类型表
* *
...@@ -12,4 +15,11 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -12,4 +15,11 @@ import tk.mybatis.mapper.common.Mapper;
*/ */
public interface CampsiteShopTagMapper extends Mapper<CampsiteShopTag> { public interface CampsiteShopTagMapper extends Mapper<CampsiteShopTag> {
/**
* 根据店铺id查询
* @param shopId
* @return
*/
@Select("select `name` from campsite_shop_tag as `cst` left join campsite_tag as `ct` on cst.tag_id=ct.id where `shop_id`=#{shopId}")
List<String> findByCampsiteShopId(Integer shopId);
} }
...@@ -5,13 +5,15 @@ import com.xxfc.platform.campsite.biz.CampsiteShopCarouselBiz; ...@@ -5,13 +5,15 @@ import com.xxfc.platform.campsite.biz.CampsiteShopCarouselBiz;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel; import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
* @description 营地店铺轮播 * @description 营地店铺轮播
* @data 2019/6/17 13:35 * @data 2019/6/17 13:35
*/ */
@Controller @RestController
@RequestMapping("campsiteShopCarousel") @RequestMapping("campsiteShopCarousel")
public class CampsiteShopCarouselController extends BaseController<CampsiteShopCarouselBiz,CampsiteShopCarousel> { public class CampsiteShopCarouselController extends BaseController<CampsiteShopCarouselBiz,CampsiteShopCarousel> {
......
package com.xxfc.platform.campsite.rest; package com.xxfc.platform.campsite.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.sun.org.apache.regexp.internal.RE;
import com.xxfc.platform.campsite.biz.CampsiteShopBiz; import com.xxfc.platform.campsite.biz.CampsiteShopBiz;
import com.xxfc.platform.campsite.entity.CampsiteShop; import com.xxfc.platform.campsite.entity.CampsiteShop;
import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopPageVo;
import com.xxfc.platform.campsite.vo.CampsiteShopVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
* @description 营地店铺 * @description 营地店铺
* @data 2019/6/17 13:37 * @data 2019/6/17 13:37
*/ */
@Controller @RestController
@RequestMapping("campsiteShop") @RequestMapping("/campsiteShop")
@Api(value = "营地店铺",tags = "营地店铺")
public class CampsiteShopController extends BaseController<CampsiteShopBiz,CampsiteShop> { public class CampsiteShopController extends BaseController<CampsiteShopBiz,CampsiteShop> {
/**
* 营地分页查询
* @param type
* @param pageNo
* @param pageSize
* @return
*/
@ApiOperation("分页查询营地列表")
@GetMapping("/app/unauth/shops")
@IgnoreClientToken
public ObjectRestResponse<PageDataVO<CampsiteShopVo>> findCampsiteShopPageByType(@RequestParam(value = "type",required = false) Integer type,
@RequestParam(value = "pageNo",required = false,defaultValue ="1") Integer pageNo,
@RequestParam(value = "pageSize",required = false,defaultValue ="6") Integer pageSize){
PageDataVO<CampsiteShopPageVo> pageDataVO = getBaseBiz().findCampsiteShopPageByType(type,pageNo,pageSize);
return ObjectRestResponse.succ(pageDataVO);
}
/**
* 根据店铺id 查询
* @param id
* @param longitude 经度
* @param latitude 纬度
* @return
*/
@ApiOperation("查询营地详情")
@GetMapping("/app/unauth/shop")
@IgnoreClientToken
public ObjectRestResponse<CampsiteShopDetailVo> findCampsiteShopDetailById(@RequestParam("id") Integer id,@RequestParam("longitude") Double longitude,@RequestParam("latitude") Double latitude){
CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id,longitude,latitude);
return ObjectRestResponse.succ(campsiteShopDetailVo);
}
} }
\ No newline at end of file
...@@ -5,13 +5,15 @@ import com.xxfc.platform.campsite.biz.CampsiteShopTagBiz; ...@@ -5,13 +5,15 @@ import com.xxfc.platform.campsite.biz.CampsiteShopTagBiz;
import com.xxfc.platform.campsite.entity.CampsiteShopTag; import com.xxfc.platform.campsite.entity.CampsiteShopTag;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
* @description 营地店铺类型 * @description 营地店铺类型
* @data 2019/6/17 13:36 * @data 2019/6/17 13:36
*/ */
@Controller @RestController
@RequestMapping("campsiteShopTag") @RequestMapping("campsiteShopTag")
public class CampsiteShopTagController extends BaseController<CampsiteShopTagBiz,CampsiteShopTag> { public class CampsiteShopTagController extends BaseController<CampsiteShopTagBiz,CampsiteShopTag> {
......
...@@ -5,13 +5,15 @@ import com.xxfc.platform.campsite.biz.CampsiteTagBiz; ...@@ -5,13 +5,15 @@ import com.xxfc.platform.campsite.biz.CampsiteTagBiz;
import com.xxfc.platform.campsite.entity.CampsiteTag; import com.xxfc.platform.campsite.entity.CampsiteTag;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
* @description 店铺类型 * @description 店铺类型
* @data 2019/6/17 13:36 * @data 2019/6/17 13:36
*/ */
@Controller @RestController
@RequestMapping("campsiteTag") @RequestMapping("campsiteTag")
public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> { public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> {
......
...@@ -13,4 +13,7 @@ ...@@ -13,4 +13,7 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </resultMap>
<select id="findCarousesByShopId" resultType="com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO">
select `img_url`as `imgUrl`,`url`as `url` from campsite_shop_carousel where shop_id=#{shopId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -32,4 +32,19 @@ ...@@ -32,4 +32,19 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </resultMap>
<select id="findCampsiteShopsByType" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO">
select cs.id as `id`,cs.name as `name`,cs.logo as `logo`,cs.url as `url`,cs.province_name as `provinceName`,cs.city_name as `cityName`,
cs.longitude as `longitude`,cs.latitude as `latitude`,ct.id as `storeId`,ct.name as `storeTypeName`
FROM `campsite_shop_tag` cst
left JOIN `campsite_shop` cs on cst.shop_id=cs.id
left JOIN `campsite_tag` ct on cst.tag_id=ct.id
<if test="typeId!=null">
WHERE cst.tag_id=#{typeId}
</if>
</select>
<select id="findCampsiteShopDetailById" resultType="com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO">
select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`adress` as `address`,
`content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id}
</select>
</mapper> </mapper>
\ No newline at end of file
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