Commit 538cfdd2 authored by libin's avatar libin

营地后台接口

parent 0a3f9062
......@@ -107,4 +107,6 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
List<T> list = mapper.selectByExample(example);
return new TableResultResponse<T>(result.getTotal(), list);
}
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/19 18:07
*/
@Data
public class CampsiteShopAdminDTO {
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;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 轮播图
*/
private List<CampsiteShopCarouselDTO> carouselDTOS;
/**
* 营地类型
*/
private List<Integer> campsiteTagDTOS;
}
package com.xxfc.platform.campsite.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/19 15:44
*/
@Data
@ApiModel(value = "营地查找条件dto")
public class CampsiteShopAdminFindDTO extends PageParam {
/**
* 营地创建时间范围的起始时间
*/
@ApiModelProperty(value = "营地创建时间范围的起始时间")
private Long startTime;
/**
* 营地创建时间范围的结束时间
*/
@ApiModelProperty(value = "营地创建时间范围的结束时间")
private Long endTime;
/**
* 营地的名称
*/
@ApiModelProperty(value = "营地的名称")
private String name;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "营地店铺*后台dto")
public class CampsiteShopAdminPageDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺类型名称
*/
@ApiModelProperty(value = "店铺类型名称")
private List<String> storeTypeName;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 上下架状态 0-创建状态 1-上架 2-下架
*/
@ApiModelProperty(value = "上下架状态 0-创建状态 1-上架 2-下架")
private Integer saleState;
}
......@@ -16,12 +16,10 @@ import java.io.Serializable;
* @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;
/**
......@@ -42,17 +40,4 @@ public class CampsiteShopCarouselDTO implements Serializable {
@ApiModelProperty(value = "轮播图片链接")
private String imgUrl;
/**
* 图片名称
*/
@ApiModelProperty(value = "图片名称")
private String name;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺dto" )
public class CampsiteShopDTO implements Serializable {
private static final long serialVersionUID = 1L;
......
......@@ -17,7 +17,6 @@ import java.io.Serializable;
* @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;
......@@ -81,4 +80,17 @@ public class CampsiteShopPageDTO implements Serializable {
@ApiModelProperty(value = "纬度")
private Double latitude;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
}
......@@ -17,15 +17,12 @@ import java.io.Serializable;
* @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
*/
......@@ -39,22 +36,14 @@ public class CampsiteShopTagDTO implements Serializable {
private Integer tagId;
/**
* 创建时间
* 类型名称
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
@ApiModelProperty(value = "类型名称")
private String tagName;
/**
* 修改时间
*/
@ApiModelProperty(value = "修改时间", hidden = true)
private Long updTime;
/**
* 是否删除,0否,1是
* 创建时间
*/
@ApiModelProperty(value = "是否删除,0否,1是")
private Integer isDel;
private Long crtTime;
}
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @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;
......
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型dto")
public class CampsiteTagListDTO implements Serializable {
private static final long serialVersionUID = 1L;
......
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.Table;
import java.io.Serializable;
import java.util.List;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "营地店铺*后台vo")
public class CampsiteShopAdminPageVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺类型名称
*/
@ApiModelProperty(value = "店铺类型名称")
private List<String> storeTypeName;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 上下架状态 0-创建状态 1-上架 2-下架
*/
@ApiModelProperty(value = "上下架状态 0-创建状态 1-上架 2-下架")
private Integer saleState;
}
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @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;
......
......@@ -20,7 +20,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo")
@Builder
@NoArgsConstructor
......@@ -78,15 +77,25 @@ public class CampsiteShopPageVo implements Serializable {
/**
* 经度
*/
@Column(name = "longitude")
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@Column(name = "latitude")
@ApiModelProperty(value = "纬度")
private Double latitude;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
}
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @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;
......
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @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;
......
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo")
public class CampsiteTagListVo implements Serializable {
private static final long serialVersionUID = 1L;
......
......@@ -16,7 +16,6 @@ import java.io.Serializable;
* @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;
......
package com.xxfc.platform.campsite.biz;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
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.dto.*;
import com.xxfc.platform.campsite.vo.CampsiteShopAdminPageVo;
import com.xxfc.platform.campsite.vo.CampsiteShopCarouselDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopPageVo;
......@@ -19,9 +17,11 @@ import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShop;
import com.xxfc.platform.campsite.mapper.CampsiteShopMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.time.Instant;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -72,6 +72,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
BeanUtils.copyProperties(campsiteShopPageDTO,campsiteShopPageVo);
campsiteShopPageVoList.add(campsiteShopPageVo);
}
campsiteShopPageVoList.stream().sorted(Comparator.comparing(CampsiteShopPageVo::getHot).reversed().thenComparing(CampsiteShopPageVo::getCrtTime).reversed());
campsiteShopPageDataVO.setData(campsiteShopPageVoList);
return campsiteShopPageDataVO;
}
......@@ -118,6 +119,81 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
return campsiteShopDetailVo;
}
/**
* 根据创建时间或营地名称来查找营地列表
* @param campsiteShopAdminFindDTO
* @return
*/
public PageDataVO<CampsiteShopAdminPageVo> findCampsiteShopPage(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO) {
if (log.isDebugEnabled()){
log.debug("查询条件:【{}】",campsiteShopAdminFindDTO);
}
PageDataVO<CampsiteShopAdminPageDTO> campsiteShopAdminpageDTOPageDataVO = PageDataVO.pageInfo(campsiteShopAdminFindDTO.getPage(),campsiteShopAdminFindDTO.getLimit(),()->mapper.findCampsiteShops(campsiteShopAdminFindDTO));
List<CampsiteShopAdminPageDTO> campsiteShopAdminPageDTOS = campsiteShopAdminpageDTOPageDataVO.getData();
if (log.isDebugEnabled()){
log.debug("查询结果:【{}】",campsiteShopAdminPageDTOS);
}
PageDataVO<CampsiteShopAdminPageVo> campsiteShopAdminPageDataVos = new PageDataVO<>();
if (CollectionUtils.isEmpty(campsiteShopAdminPageDTOS)){
return campsiteShopAdminPageDataVos;
}
//转换成营地ids
List<Integer> campsiteShopIds = campsiteShopAdminPageDTOS.stream().map(CampsiteShopAdminPageDTO::getId).collect(Collectors.toList());
//根据营地ids查询营地对应的标签 键营地id 值对应的标签列表
Map<Integer,List<String>> shopTagsMap = campsiteShopTagBiz.findByCampsiteShopIds(campsiteShopIds);
if (log.isDebugEnabled()){
log.debug("营地id为:【{}】的类型【{}】",campsiteShopIds,shopTagsMap);
}
campsiteShopAdminPageDTOS.stream().peek(campsiteShopAdminPageDTO -> campsiteShopAdminPageDTO.setStoreTypeName(shopTagsMap.get(campsiteShopAdminPageDTO.getId())))
.sorted(Comparator.comparing(CampsiteShopAdminPageDTO::getHot).reversed().thenComparing(CampsiteShopAdminPageDTO::getCrtTime).reversed());
//组装数据
campsiteShopAdminPageDataVos.setTotalPage(campsiteShopAdminpageDTOPageDataVO.getTotalPage());
campsiteShopAdminPageDataVos.setTotalCount(campsiteShopAdminpageDTOPageDataVO.getTotalCount());
campsiteShopAdminPageDataVos.setPageSize(campsiteShopAdminpageDTOPageDataVO.getPageSize());
campsiteShopAdminPageDataVos.setPageNum(campsiteShopAdminpageDTOPageDataVO.getPageNum());
campsiteShopAdminPageDataVos.setData(JSONObject.parseObject(JSONObject.toJSONString(campsiteShopAdminPageDTOS),new TypeReference<List<CampsiteShopAdminPageVo>>(){}));
return campsiteShopAdminPageDataVos;
}
/**
* 营地保存或更新
* @param campsiteShopAdminDTO
* @return
*/
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public int saveCampsiteShop(CampsiteShopAdminDTO campsiteShopAdminDTO) {
CampsiteShop campsiteShop = new CampsiteShop();
BeanUtils.copyProperties(campsiteShopAdminDTO,campsiteShop);
int effectRows = 0;
if (Objects.nonNull(campsiteShopAdminDTO.getId())){
if (log.isDebugEnabled()){
log.debug("更新营地的信息:【{}】",campsiteShop);
}
//更新操作
campsiteShop.setUpdTime(Instant.now().toEpochMilli());
effectRows = mapper.updateByPrimaryKeySelective(campsiteShop);
}else {
//保存操作
//保存营地信息
if (log.isDebugEnabled()){
log.debug("保存营地的信息:【{}】",campsiteShop);
}
campsiteShop.setCrtTime(Instant.now().toEpochMilli());
effectRows = mapper.insertSelective(campsiteShop);
}
//保存或更新 * 营地与 轮播图信息
List<CampsiteShopCarouselDTO> carouselDTOS = campsiteShopAdminDTO.getCarouselDTOS();
if (CollectionUtils.isNotEmpty(carouselDTOS)) {
carouselDTOS.stream().peek(campsiteShopCarouselDTO -> campsiteShopCarouselDTO.setShopId(campsiteShop.getId())).count();
}
campsiteShopCarouselBiz.saveBatch(carouselDTOS,campsiteShop.getId());
//保存或更新 * 营地与营地类型信息
List<Integer> campsiteTagDTOS = campsiteShopAdminDTO.getCampsiteTagDTOS();
campsiteShopTagBiz.saveBatch(campsiteTagDTOS,campsiteShop.getId());
return effectRows;
}
/**
* 根据经纬度,计算两点间的距离
*
......@@ -145,4 +221,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
s = s * EARTH_RADIUS;
return s;
}
}
\ No newline at end of file
......@@ -2,13 +2,20 @@ package com.xxfc.platform.campsite.biz;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import com.xxfc.platform.campsite.mapper.CampsiteShopCarouselMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 店铺轮播表
......@@ -18,6 +25,7 @@ import java.util.List;
* @date 2019-06-17 10:28:48
*/
@Service
@Slf4j
public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,CampsiteShopCarousel> {
/**
......@@ -28,4 +36,32 @@ public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,
public List<CampsiteShopCarouselDetailDTO> findByCampsiteShopId(Integer id) {
return mapper.findCarousesByShopId(id);
}
/**
* 批量保存
* @param carouselDTOS
* @return
*/
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public int saveBatch(List<CampsiteShopCarouselDTO> carouselDTOS,Integer shopId) {
List<Integer> ids =null;
List<CampsiteShopCarouselDTO> shopCarouselDTOS=null;
if (CollectionUtils.isNotEmpty(carouselDTOS)){
ids = carouselDTOS.stream().filter(campsiteShopCarouselDTO -> Objects.nonNull(campsiteShopCarouselDTO.getId())).map(CampsiteShopCarouselDTO::getId).collect(Collectors.toList());
shopCarouselDTOS = carouselDTOS.stream()
.filter(campsiteShopCarouselDTO -> Objects.isNull(campsiteShopCarouselDTO.getId()))
.collect(Collectors.toList());
}
if (log.isDebugEnabled()){
log.debug("更新的营地id:【{}】的轮播图信息id:【{}】",shopId,ids);
}
int effectRows = mapper.updateCarouseStatus(ids, shopId, 1);
if (CollectionUtils.isEmpty(shopCarouselDTOS)){
return effectRows;
}
if (log.isDebugEnabled()){
log.debug("保存营地id:【{}】的轮播图信息:【{}】",shopId,shopCarouselDTOS);
}
return mapper.saveBatch(shopCarouselDTOS);
}
}
\ No newline at end of file
package com.xxfc.platform.campsite.biz;
import com.alibaba.fastjson.JSONObject;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopTagDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShopTag;
import com.xxfc.platform.campsite.mapper.CampsiteShopTagMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 店铺类型表
......@@ -17,6 +27,7 @@ import java.util.List;
* @date 2019-06-17 10:28:48
*/
@Service
@Slf4j
public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteShopTag> {
/**
* 根据店铺id查询
......@@ -26,4 +37,43 @@ public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteSh
public List<String> findByCampsiteShopId(Integer id) {
return mapper.findByCampsiteShopId(id);
}
/**
* 根据店铺ids查询
* @param campsiteShopIds
* @return
*/
public Map<Integer, List<String>> findByCampsiteShopIds(List<Integer> campsiteShopIds) {
List<CampsiteShopTagDTO> campsiteShopTagDTOS = mapper.findByCampsiteShopIds(campsiteShopIds);
if (CollectionUtils.isEmpty(campsiteShopTagDTOS)){
return null;
}
Map<Integer, List<String>> shopOfTagsMap = campsiteShopTagDTOS.stream()
.collect(Collectors.groupingBy(CampsiteShopTagDTO::getShopId,Collectors.mapping(CampsiteShopTagDTO::getTagName,Collectors.toList())));
return shopOfTagsMap;
}
/**
* 批量保存
* @param campsiteTagIds
* @return
*/
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public int saveBatch(List<Integer> campsiteTagIds,Integer shopId) {
int effectRows = mapper.deleteByShopId(shopId);
if (CollectionUtils.isNotEmpty(campsiteTagIds)){
List<CampsiteShopTagDTO> campsiteShopTagDTOS = campsiteTagIds.stream().map(id -> {
CampsiteShopTagDTO campsiteShopTagDTO = new CampsiteShopTagDTO();
campsiteShopTagDTO.setTagId(id);
campsiteShopTagDTO.setShopId(shopId);
campsiteShopTagDTO.setCrtTime(Instant.now().toEpochMilli());
return campsiteShopTagDTO;
}).collect(Collectors.toList());
if (log.isDebugEnabled()){
log.debug("保存的营地与标签的信息:【{}】",campsiteShopTagDTOS);
}
mapper.saveBatch(campsiteShopTagDTOS);
}
return effectRows;
}
}
\ No newline at end of file
package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
......@@ -22,4 +24,8 @@ public interface CampsiteShopCarouselMapper extends Mapper<CampsiteShopCarousel>
* @return
*/
List<CampsiteShopCarouselDetailDTO> findCarousesByShopId(Integer shopId);
int updateCarouseStatus(@Param("ids") List<Integer> ids, @Param("shopId") Integer shopId, @Param("status") int status);
int saveBatch(@Param("sc") List<CampsiteShopCarouselDTO> shopCarouselDTOS);
}
package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminFindDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminPageDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO;
import com.xxfc.platform.campsite.entity.CampsiteShop;
......@@ -30,4 +32,11 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
* @return
*/
CampsiteShopDetailDTO findCampsiteShopDetailById(Integer id);
/**
* 根据条件查询
* @param campsiteShopAdminFindDTO
* @return
*/
List<CampsiteShopAdminPageDTO> findCampsiteShops(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO);
}
package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopTagDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopTag;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;
......@@ -22,4 +25,17 @@ public interface CampsiteShopTagMapper extends Mapper<CampsiteShopTag> {
*/
@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);
/**
* 根据店铺ids查询
* @param campsiteShopIds
* @return
*/
List<CampsiteShopTagDTO> findByCampsiteShopIds(@Param("cspIds") List<Integer> campsiteShopIds);
int updateCampsiteTagStatus(@Param("ids") List<Long> ids,@Param("status") Integer status, @Param("shopId") Integer shopId);
int saveBatch(@Param("stgdtos") List<CampsiteShopTagDTO> shopTagDTOS);
int deleteByShopId(Integer shopId);
}
......@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
*/
@RestController
@RequestMapping("/campsiteShop")
@Api(value = "营地店铺",tags = "营地店铺")
@Api(value = "营地店铺",tags = "App营地店铺")
public class CampsiteShopController extends BaseController<CampsiteShopBiz,CampsiteShop> {
......@@ -59,4 +59,6 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz,Camps
CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id,longitude,latitude);
return ObjectRestResponse.succ(campsiteShopDetailVo);
}
}
\ No newline at end of file
......@@ -27,12 +27,12 @@ import java.util.List;
public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> {
/**
* 查询营地列表
* 查询营地类型列表
* @return
*/
@GetMapping("/app/unauth/tags")
@IgnoreClientToken
@ApiOperation(value = "营地列表")
@ApiOperation(value = "营地类型列表")
public ObjectRestResponse<CampsiteTagListVo> findCampstieTags(){
List<CampsiteTagListVo> campsiteTagListVolist = getBaseBiz().findCampsiteTags();
return ObjectRestResponse.succ(campsiteTagListVolist);
......
package com.xxfc.platform.campsite.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.biz.CampsiteShopBiz;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminFindDTO;
import com.xxfc.platform.campsite.entity.CampsiteShop;
import com.xxfc.platform.campsite.vo.CampsiteShopAdminPageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
/**
* @author libin
* @version 1.0
* @description 营地店铺
* @data 2019/6/17 13:37
*/
@RestController
@RequestMapping("/admin/campsiteShop")
@Api(value = "营地店铺",tags = "后台营地店铺")
public class CampsiteShopAdminController extends BaseController<CampsiteShopBiz,CampsiteShop> {
/**
* 按条件分页查询 营地列表
* @param campsiteShopAdminFindDTO
* @return
*/
@ApiOperation(value = "营地列表")
@GetMapping("/pages")
public ObjectRestResponse<PageDataVO<CampsiteShopAdminPageVo>> findCampsiteShopPage(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO){
PageDataVO<CampsiteShopAdminPageVo> pageVoPageDataVO = getBaseBiz().findCampsiteShopPage(campsiteShopAdminFindDTO);
return ObjectRestResponse.succ(pageVoPageDataVO);
}
/**
* 营地保存
* @param campsiteShopAdminDTO
* @return
*/
@PostMapping("/save")
public ObjectRestResponse<Void> saveCampistieShop(@RequestBody CampsiteShopAdminDTO campsiteShopAdminDTO){
int effectRows = getBaseBiz().saveCampsiteShop(campsiteShopAdminDTO);
if (effectRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
}
\ No newline at end of file
package com.xxfc.platform.campsite.rest.admin;
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.xxfc.platform.campsite.biz.CampsiteTagBiz;
import com.xxfc.platform.campsite.entity.CampsiteTag;
import com.xxfc.platform.campsite.vo.CampsiteTagListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 营地类型
* @data 2019/6/17 13:36
*/
@RestController
@RequestMapping("/admin/campsiteTag")
@Api(tags = "营地类型")
public class CampsiteTagAdminController extends BaseController<CampsiteTagBiz,CampsiteTag> {
}
\ No newline at end of file
......@@ -14,6 +14,22 @@
</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 `img_url`as `imgUrl`,`url`as `url` from `campsite_shop_carousel` where shop_id=#{shopId}
</select>
<update id="updateCarouseStatus">
update `campsite_shop_carousel` set `is_del`=#{status} where `shop_id`=#{shopId}
<if test="ids != null and ids.size() != 0">
and `id` not in <foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</update>
<insert id="saveBatch" >
insert into `campsite_shop_carousel` (`shop_id`,`img_url`)values
<foreach collection="sc" item="s" separator=",">
(#{s.shopId} ,#{s.imgUrl} )
</foreach>;
</insert>
</mapper>
\ No newline at end of file
......@@ -30,11 +30,13 @@
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="isDel" column="is_del"/>
<result property="hot" column="hot"/>
<result property="saleState" column="sale_state"/>
</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`
cs.longitude as `longitude`,cs.latitude as `latitude`,cs.hot as `hot`,cs.crt_time as `crtTime`,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
......@@ -47,4 +49,30 @@
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>
<select id="findCampsiteShops" parameterType="com.xxfc.platform.campsite.dto.CampsiteShopAdminFindDTO" resultType="com.xxfc.platform.campsite.dto.CampsiteShopAdminPageDTO">
SELECT `id`,`name`,`hot`,`crt_time` as `crtTime`,`sale_state` as
`saleState` FROM `campsite_shop`
<where>
<if test="startTime != null || endTime!=null">
<choose>
<when test="startTime!=null and endTime!=null">
crt_time between #{startTime} and #{endTime}
</when>
<otherwise>
<if test="startTime!=null">
crt_time=#{startTime}
</if>
<if test="endTime != null">
crt_time=#{endTime}
</if>
</otherwise>
</choose>
</if>
<if test="name != null and name != ''">
and `name` like concat('%',#{name},'%')
</if>
</where>
</select>
</mapper>
\ No newline at end of file
......@@ -13,4 +13,33 @@
<result property="isDel" column="is_del"/>
</resultMap>
<select id="findByCampsiteShopIds" resultType="com.xxfc.platform.campsite.dto.CampsiteShopTagDTO">
select cst.shop_id as `shopId`,cst.tag_id as `tagId`,ct.name as `tagName` from `campsite_shop_tag` as `cst` inner join `campsite_tag` as `ct` on cst.tag_id=ct.id where cst.is_del=0
and cst.tag_id in
<foreach collection="cspIds" item="tagId" separator="," open="(" close=")">
#{tagId}
</foreach>
</select>
<update id="updateCampsiteTagStatus">
update `campsite_shop_tag` set `is_del`=#{status} where `shop_id`=#{shopId}
<if test="ids != null and ids.size() != 0">
and `id` not in <foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</update>
<insert id="saveBatch">
insert into `campsite_shop_tag`(`shop_id`,`tag_id`,`crt_time`)values
<foreach collection="stgdtos" item="stg" separator=",">
(#{stg.shopId} ,#{stg.tagId} ,#{stg.crtTime} )
</foreach>
</insert>
<delete id="deleteByShopId">
delete from `campsite_shop_tag` where `shop_id`=#{shopId} ;
</delete>
</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