Commit 1847dccc authored by hezhen's avatar hezhen

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

parents c3effd4e c7f48b7d
...@@ -107,4 +107,6 @@ public abstract class BaseBiz<M extends Mapper<T>, T> { ...@@ -107,4 +107,6 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
List<T> list = mapper.selectByExample(example); List<T> list = mapper.selectByExample(example);
return new TableResultResponse<T>(result.getTotal(), list); return new TableResultResponse<T>(result.getTotal(), list);
} }
} }
...@@ -14,7 +14,7 @@ import lombok.Data; ...@@ -14,7 +14,7 @@ import lombok.Data;
@Data @Data
public class UserMemberDTO { public class UserMemberDTO {
public static final int ISBIND_BIND = 1;
/** /**
* 用户id * 用户id
......
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; ...@@ -16,12 +16,10 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_carousel")
@ApiModel(value = "店铺轮播Vo") @ApiModel(value = "店铺轮播Vo")
public class CampsiteShopCarouselDTO implements Serializable { public class CampsiteShopCarouselDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
/** /**
...@@ -42,17 +40,4 @@ public class CampsiteShopCarouselDTO implements Serializable { ...@@ -42,17 +40,4 @@ public class CampsiteShopCarouselDTO implements Serializable {
@ApiModelProperty(value = "轮播图片链接") @ApiModelProperty(value = "轮播图片链接")
private String imgUrl; 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; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺dto" ) @ApiModel(value = "营地店铺dto" )
public class CampsiteShopDTO implements Serializable { public class CampsiteShopDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -17,7 +17,6 @@ import java.io.Serializable; ...@@ -17,7 +17,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo") @ApiModel(value = "营地店铺vo")
public class CampsiteShopPageDTO implements Serializable { public class CampsiteShopPageDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -81,4 +80,17 @@ public class CampsiteShopPageDTO implements Serializable { ...@@ -81,4 +80,17 @@ public class CampsiteShopPageDTO implements Serializable {
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private Double latitude; private Double latitude;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
} }
...@@ -17,15 +17,12 @@ import java.io.Serializable; ...@@ -17,15 +17,12 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteShopTagDTO implements Serializable { public class CampsiteShopTagDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("首页banner图主键")
private Long id; private Long id;
/** /**
* 店铺id * 店铺id
*/ */
...@@ -39,22 +36,14 @@ public class CampsiteShopTagDTO implements Serializable { ...@@ -39,22 +36,14 @@ public class CampsiteShopTagDTO implements Serializable {
private Integer tagId; private Integer tagId;
/** /**
* 创建时间 * 类型名称
*/ */
@ApiModelProperty(value = "创建时间", hidden = true) @ApiModelProperty(value = "类型名称")
private Long crtTime; private String tagName;
/** /**
* 修改时间 * 创建时间
*/
@ApiModelProperty(value = "修改时间", hidden = true)
private Long updTime;
/**
* 是否删除,0否,1是
*/ */
@ApiModelProperty(value = "是否删除,0否,1是") private Long crtTime;
private Integer isDel;
} }
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteTagDTO implements Serializable { public class CampsiteTagDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型dto") @ApiModel(value = "店铺类型dto")
public class CampsiteTagListDTO implements Serializable { public class CampsiteTagListDTO implements Serializable {
private static final long serialVersionUID = 1L; 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; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_carousel")
@ApiModel(value = "店铺轮播Vo") @ApiModel(value = "店铺轮播Vo")
public class CampsiteShopCarouselVo implements Serializable { public class CampsiteShopCarouselVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -20,7 +20,6 @@ import java.io.Serializable; ...@@ -20,7 +20,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo") @ApiModel(value = "营地店铺vo")
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
...@@ -78,15 +77,25 @@ public class CampsiteShopPageVo implements Serializable { ...@@ -78,15 +77,25 @@ public class CampsiteShopPageVo implements Serializable {
/** /**
* 经度 * 经度
*/ */
@Column(name = "longitude")
@ApiModelProperty(value = "经度") @ApiModelProperty(value = "经度")
private Double longitude; private Double longitude;
/** /**
* 纬度 * 纬度
*/ */
@Column(name = "latitude")
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private Double latitude; private Double latitude;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
} }
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteShopTagVo implements Serializable { public class CampsiteShopTagVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo") @ApiModel(value = "营地店铺vo")
public class CampsiteShopVo implements Serializable { public class CampsiteShopVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteTagListVo implements Serializable { public class CampsiteTagListVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteTagVo implements Serializable { public class CampsiteTagVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
package com.xxfc.platform.campsite.biz; 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.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.CampSiteApplication; import com.xxfc.platform.campsite.dto.*;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO; import com.xxfc.platform.campsite.vo.CampsiteShopAdminPageVo;
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.CampsiteShopCarouselDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo; import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopPageVo; import com.xxfc.platform.campsite.vo.CampsiteShopPageVo;
...@@ -19,9 +17,11 @@ import org.springframework.stereotype.Service; ...@@ -19,9 +17,11 @@ 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 org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.time.Instant;
import java.util.List; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -72,6 +72,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -72,6 +72,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
BeanUtils.copyProperties(campsiteShopPageDTO,campsiteShopPageVo); BeanUtils.copyProperties(campsiteShopPageDTO,campsiteShopPageVo);
campsiteShopPageVoList.add(campsiteShopPageVo); campsiteShopPageVoList.add(campsiteShopPageVo);
} }
campsiteShopPageVoList.stream().sorted(Comparator.comparing(CampsiteShopPageVo::getHot).reversed().thenComparing(CampsiteShopPageVo::getCrtTime).reversed());
campsiteShopPageDataVO.setData(campsiteShopPageVoList); campsiteShopPageDataVO.setData(campsiteShopPageVoList);
return campsiteShopPageDataVO; return campsiteShopPageDataVO;
} }
...@@ -118,6 +119,81 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -118,6 +119,81 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
return campsiteShopDetailVo; 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> { ...@@ -145,4 +221,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
s = s * EARTH_RADIUS; s = s * EARTH_RADIUS;
return s; return s;
} }
} }
\ No newline at end of file
...@@ -2,13 +2,20 @@ package com.xxfc.platform.campsite.biz; ...@@ -2,13 +2,20 @@ package com.xxfc.platform.campsite.biz;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO; import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO; import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
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 org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* 店铺轮播表 * 店铺轮播表
...@@ -18,6 +25,7 @@ import java.util.List; ...@@ -18,6 +25,7 @@ import java.util.List;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Service @Service
@Slf4j
public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,CampsiteShopCarousel> { public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,CampsiteShopCarousel> {
/** /**
...@@ -28,4 +36,32 @@ public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper, ...@@ -28,4 +36,32 @@ public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,
public List<CampsiteShopCarouselDetailDTO> findByCampsiteShopId(Integer id) { public List<CampsiteShopCarouselDetailDTO> findByCampsiteShopId(Integer id) {
return mapper.findCarousesByShopId(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; package com.xxfc.platform.campsite.biz;
import com.alibaba.fastjson.JSONObject;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO; 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 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 org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.util.List; 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; ...@@ -17,6 +27,7 @@ import java.util.List;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Service @Service
@Slf4j
public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteShopTag> { public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteShopTag> {
/** /**
* 根据店铺id查询 * 根据店铺id查询
...@@ -26,4 +37,43 @@ public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteSh ...@@ -26,4 +37,43 @@ public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteSh
public List<String> findByCampsiteShopId(Integer id) { public List<String> findByCampsiteShopId(Integer id) {
return mapper.findByCampsiteShopId(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; 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.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel; import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -22,4 +24,8 @@ public interface CampsiteShopCarouselMapper extends Mapper<CampsiteShopCarousel> ...@@ -22,4 +24,8 @@ public interface CampsiteShopCarouselMapper extends Mapper<CampsiteShopCarousel>
* @return * @return
*/ */
List<CampsiteShopCarouselDetailDTO> findCarousesByShopId(Integer shopId); 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; 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.CampsiteShopDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO; import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO;
import com.xxfc.platform.campsite.entity.CampsiteShop; import com.xxfc.platform.campsite.entity.CampsiteShop;
...@@ -30,4 +32,11 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> { ...@@ -30,4 +32,11 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
* @return * @return
*/ */
CampsiteShopDetailDTO findCampsiteShopDetailById(Integer id); CampsiteShopDetailDTO findCampsiteShopDetailById(Integer id);
/**
* 根据条件查询
* @param campsiteShopAdminFindDTO
* @return
*/
List<CampsiteShopAdminPageDTO> findCampsiteShops(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO);
} }
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopTagDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopTag; 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 org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
...@@ -22,4 +25,17 @@ public interface CampsiteShopTagMapper extends Mapper<CampsiteShopTag> { ...@@ -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}") @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); 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.*; ...@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@RequestMapping("/campsiteShop") @RequestMapping("/campsiteShop")
@Api(value = "营地店铺",tags = "营地店铺") @Api(value = "营地店铺",tags = "App营地店铺")
public class CampsiteShopController extends BaseController<CampsiteShopBiz,CampsiteShop> { public class CampsiteShopController extends BaseController<CampsiteShopBiz,CampsiteShop> {
...@@ -59,4 +59,6 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz,Camps ...@@ -59,4 +59,6 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz,Camps
CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id,longitude,latitude); CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id,longitude,latitude);
return ObjectRestResponse.succ(campsiteShopDetailVo); return ObjectRestResponse.succ(campsiteShopDetailVo);
} }
} }
\ No newline at end of file
...@@ -27,12 +27,12 @@ import java.util.List; ...@@ -27,12 +27,12 @@ import java.util.List;
public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> { public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> {
/** /**
* 查询营地列表 * 查询营地类型列表
* @return * @return
*/ */
@GetMapping("/app/unauth/tags") @GetMapping("/app/unauth/tags")
@IgnoreClientToken @IgnoreClientToken
@ApiOperation(value = "营地列表") @ApiOperation(value = "营地类型列表")
public ObjectRestResponse<CampsiteTagListVo> findCampstieTags(){ public ObjectRestResponse<CampsiteTagListVo> findCampstieTags(){
List<CampsiteTagListVo> campsiteTagListVolist = getBaseBiz().findCampsiteTags(); List<CampsiteTagListVo> campsiteTagListVolist = getBaseBiz().findCampsiteTags();
return ObjectRestResponse.succ(campsiteTagListVolist); 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 @@ ...@@ -14,6 +14,22 @@
</resultMap> </resultMap>
<select id="findCarousesByShopId" resultType="com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO"> <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> </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> </mapper>
\ No newline at end of file
...@@ -30,11 +30,13 @@ ...@@ -30,11 +30,13 @@
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/> <result property="updTime" column="upd_time"/>
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
<result property="hot" column="hot"/>
<result property="saleState" column="sale_state"/>
</resultMap> </resultMap>
<select id="findCampsiteShopsByType" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO"> <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`, 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 FROM `campsite_shop_tag` cst
left JOIN `campsite_shop` cs on cst.shop_id=cs.id left JOIN `campsite_shop` cs on cst.shop_id=cs.id
left JOIN `campsite_tag` ct on cst.tag_id=ct.id left JOIN `campsite_tag` ct on cst.tag_id=ct.id
...@@ -47,4 +49,30 @@ ...@@ -47,4 +49,30 @@
select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`adress` as `address`, 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} `content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id}
</select> </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> </mapper>
\ No newline at end of file
...@@ -13,4 +13,33 @@ ...@@ -13,4 +13,33 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </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> </mapper>
\ No newline at end of file
package com.xxfc.service;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.CampSiteApplication;
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.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopTagDTO;
import com.xxfc.platform.campsite.vo.CampsiteShopAdminPageVo;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.time.Instant;
import java.util.Arrays;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/19 16:41
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CampSiteApplication.class)
@Slf4j
public class CampsiteShopBizTest {
@Autowired
private CampsiteShopBiz campsiteShopBiz;
@Test
public void testList(){
CampsiteShopAdminFindDTO campsiteShopAdminFindDTO = new CampsiteShopAdminFindDTO();
campsiteShopAdminFindDTO.setName("kon");
Instant now = Instant.now();
long start = now.minusMillis(3 * 24 * 60 * 60 * 1000).toEpochMilli();
campsiteShopAdminFindDTO.setStartTime(start);
campsiteShopAdminFindDTO.setEndTime(now.toEpochMilli());
campsiteShopAdminFindDTO.setPage(1);
campsiteShopAdminFindDTO.setLimit(10);
PageDataVO<CampsiteShopAdminPageVo> campsiteShopPage = campsiteShopBiz.findCampsiteShopPage(campsiteShopAdminFindDTO);
System.out.println(campsiteShopPage.getData());
}
@Test
public void testSae(){
CampsiteShopAdminDTO campsiteShopAdminDTO = new CampsiteShopAdminDTO();
// campsiteShopAdminDTO.setId(13);
campsiteShopAdminDTO.setProvince(2323);
campsiteShopAdminDTO.setProvinceName("浙江省");
campsiteShopAdminDTO.setCity(2342342);
campsiteShopAdminDTO.setCityName("台州市");
campsiteShopAdminDTO.setAdress("胡同路23号");
campsiteShopAdminDTO.setConcat("zhangsan");
campsiteShopAdminDTO.setConfigure("dsaasdfasdfa");
campsiteShopAdminDTO.setContent("sadfasdfasdfasd");
campsiteShopAdminDTO.setHot(23);
campsiteShopAdminDTO.setLogo("https://xxtest.upyuns.com/image/admin/2019-06-13/23.png");
campsiteShopAdminDTO.setName("kong");
campsiteShopAdminDTO.setPhone("132121212121");
campsiteShopAdminDTO.setServicePhone("4545454545");
campsiteShopAdminDTO.setLatitude(39.983171);
campsiteShopAdminDTO.setLongitude(116.308479);
CampsiteShopCarouselDTO campsiteShopCarouselDTO = new CampsiteShopCarouselDTO();
//campsiteShopCarouselDTO.setId(12);
campsiteShopCarouselDTO.setImgUrl("https://xxtest.upyuns.com/image/admin/2019-06-13/23.png");
campsiteShopAdminDTO.setCarouselDTOS(Arrays.asList(campsiteShopCarouselDTO));
campsiteShopAdminDTO.setCampsiteTagDTOS(Arrays.asList(1));
System.out.println("保存的json信息:【{}】"+JSONObject.toJSONString(campsiteShopAdminDTO));
campsiteShopBiz.saveCampsiteShop(campsiteShopAdminDTO);
}
}
...@@ -69,5 +69,10 @@ public class OrderMemberDetail implements Serializable { ...@@ -69,5 +69,10 @@ public class OrderMemberDetail implements Serializable {
@ApiModelProperty(value = "折扣比例 80即 八折") @ApiModelProperty(value = "折扣比例 80即 八折")
private Integer rebate; private Integer rebate;
/**
* 会员等级
*/
@Column(name = "member_level")
@ApiModelProperty(value = "会员等级")
private Integer memberLevel;
} }
...@@ -287,5 +287,11 @@ public class OrderRentVehicleDetail implements Serializable { ...@@ -287,5 +287,11 @@ public class OrderRentVehicleDetail implements Serializable {
@ApiModelProperty(value = "剩余需要退还的钱(押金)") @ApiModelProperty(value = "剩余需要退还的钱(押金)")
private BigDecimal returnPayResidue; private BigDecimal returnPayResidue;
/**
* 预定记录id
*/
@Column(name = "book_record_id")
@ApiModelProperty(value = "预定记录id")
private Long bookRecordId;
} }
...@@ -114,9 +114,11 @@ public class OrderVehicaleCrosstown { ...@@ -114,9 +114,11 @@ public class OrderVehicaleCrosstown {
/** /**
* 是否有扣除项 * 是否有扣除项
*/ */
private Boolean isDed; private Boolean deduction;
/** /**
* 扣除项明细 * 扣除项明细 json
* deductions: 扣除项
* cost:费用
*/ */
private String dedDetail; private String dedDetail;
...@@ -129,4 +131,14 @@ public class OrderVehicaleCrosstown { ...@@ -129,4 +131,14 @@ public class OrderVehicaleCrosstown {
* 1、交车, 2、还车 * 1、交车, 2、还车
*/ */
private Integer type; private Integer type;
/**
* 合计扣除费用
*/
private Integer deductionCost;
/**
* 剩余押金
*/
private Integer restDeposit;
} }
\ No newline at end of file
...@@ -17,5 +17,4 @@ import java.util.List; ...@@ -17,5 +17,4 @@ import java.util.List;
public class MemberBO extends OrderMemberDetail implements OrderDetail { public class MemberBO extends OrderMemberDetail implements OrderDetail {
private BaseOrder order; private BaseOrder order;
private BaseUserMemberLevel baseUserMemberLevel; private BaseUserMemberLevel baseUserMemberLevel;
private Integer levelNum;
} }
...@@ -2,19 +2,22 @@ package com.xxfc.platform.order.biz; ...@@ -2,19 +2,22 @@ package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum; import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.entity.OrderRefund;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.mapper.BaseOrderMapper; import com.xxfc.platform.order.mapper.BaseOrderMapper;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.universal.vo.OrderRefundVo; import com.xxfc.platform.universal.vo.OrderRefundVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -35,8 +38,15 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TR ...@@ -35,8 +38,15 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TR
* @date 2019-05-15 21:30:33 * @date 2019-05-15 21:30:33
*/ */
@Service @Service
@Slf4j
public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
@Autowired
OrderMemberDetailBiz orderMemberDetailBiz;
@Autowired
OrderTourDetailBiz orderTourDetailBiz;
@Autowired @Autowired
OrderRentVehicleBiz orderRentVehicleBiz; OrderRentVehicleBiz orderRentVehicleBiz;
...@@ -46,6 +56,12 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -46,6 +56,12 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
@Autowired @Autowired
ThirdFeign thirdFeign; ThirdFeign thirdFeign;
@Autowired
TourFeign tourFeign;
@Autowired
UserFeign userFeign;
public List<OrderPageVO> pageByParm(Map<String, Object> paramMap){ public List<OrderPageVO> pageByParm(Map<String, Object> paramMap){
return mapper.pageByParm(paramMap); return mapper.pageByParm(paramMap);
} }
...@@ -60,9 +76,14 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -60,9 +76,14 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
cancelAble = new HashMap<Integer, List<Integer>>(); cancelAble = new HashMap<Integer, List<Integer>>();
cancelAble.put(OrderTypeEnum.RentVehicle.getCode(), new LinkedList<Integer>(){{ cancelAble.put(OrderTypeEnum.RentVehicle.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode()); add(OrderStatusEnum.ORDER_UNPAY.getCode());
add(OrderStatusEnum.ORDER_TOSTART.getCode());
}}); }});
cancelAble.put(OrderTypeEnum.TOUR.getCode(), new LinkedList<Integer>(){{ cancelAble.put(OrderTypeEnum.TOUR.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode()); add(OrderStatusEnum.ORDER_UNPAY.getCode());
add(OrderStatusEnum.ORDER_TOSTART.getCode());
}});
cancelAble.put(OrderTypeEnum.MEMBER.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode());
}}); }});
} }
...@@ -114,8 +135,66 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -114,8 +135,66 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
} }
} }
//处理取消流程
if(OrderTypeEnum.RentVehicle.getCode().equals(baseOrder.getType())) {
//取消租车预定
}else if(OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
OrderTourDetail otd = orderTourDetailBiz.selectOne(new OrderTourDetail(){{
setOrderId(baseOrder.getId());
}});
//增加库存
tourFeign.stock(otd.getSpePriceId(), otd.getTotalNumber(), TourFeign.STOCK_PLUS);
}
}else { }else {
throw new BaseException(ResultCode.FAILED_CODE); throw new BaseException(ResultCode.FAILED_CODE);
} }
} }
public void payNotifyHandle(String orderNo, String tradeNo) {
BaseOrder baseOrder = this.selectOne(new BaseOrder() {{
setNo(orderNo);
}});
if (OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus()) && baseOrder.getHasPay().equals(SYS_FALSE)) {
BaseOrder updateOrder = new BaseOrder() {{
setNo(orderNo);
setOutTradeNo(tradeNo);
setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis());
}};
//如果是会员订单,则触发会员效益
if(OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) {
//直接设置订单完成
updateOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
OrderMemberDetail omd = orderMemberDetailBiz.selectOne(new OrderMemberDetail(){{
setOrderId(baseOrder.getId());
}});
try {
userFeign.buyMember(new UserMemberDTO() {{
setUserId(baseOrder.getUserId());
setDiscount(omd.getRebate());
setIsBind(ISBIND_BIND);
setMemberLevel(omd.getMemberLevel());
setRentFreeDays(omd.getRentFreeNum());
}});
}catch (Exception e){
log.error(e.getMessage(), e);
}
}else if(OrderTypeEnum.RentVehicle.getCode().equals(baseOrder.getType())) {
updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
//车辆预定审核通过
}else if(OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
//暂无处理
}
this.updateSelectiveById(updateOrder);
} else {
log.error(" order has payed , orderNo:{}, tradeNo:{} ", orderNo, tradeNo);
}
}
} }
\ No newline at end of file
...@@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration;
* @author xuxueli 2017-04-28 * @author xuxueli 2017-04-28
*/ */
@Slf4j @Slf4j
//@Configuration @Configuration
public class XxlJobConfig { public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}") @Value("${xxl.job.admin.addresses}")
......
...@@ -4,24 +4,31 @@ import com.xxl.job.core.biz.model.ReturnT; ...@@ -4,24 +4,31 @@ import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler; import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger; import com.xxl.job.core.log.XxlJobLogger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.BufferedReader;
/** /**
* 跨平台Http任务 * 跨平台Http任务
* *
* @author xuxueli 2018-09-16 03:48:34 * @author xuxueli 2018-09-16 03:48:34
*/ */
//@JobHandler(value = "httpJobHandler") @JobHandler(value = "httpJobHandler")
//@Component @Component
@Slf4j
public class HttpJobHandler extends IJobHandler { public class HttpJobHandler extends IJobHandler {
@Override @Override
public ReturnT<String> execute(String param) throws Exception { public ReturnT<String> execute(String param) throws Exception {
try { try {
for(int i =0; i < 10; i++) {
XxlJobLogger.log("helloword"); XxlJobLogger.log("helloword");
return SUCCESS; log.info("helloword");
}
ReturnT returnT = new ReturnT();
returnT.setCode(100);
returnT.setMsg("成功");
returnT.setContent(param);
return returnT;
} catch (Exception e) { } catch (Exception e) {
XxlJobLogger.log(e); XxlJobLogger.log(e);
return FAIL; return FAIL;
......
...@@ -3,6 +3,7 @@ package com.xxfc.platform.order.rest; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail; import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
...@@ -19,8 +20,11 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode; ...@@ -19,8 +20,11 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.github.wxiaoqi.security.common.vo.PageParam; import com.github.wxiaoqi.security.common.vo.PageParam;
import com.xxfc.platform.order.biz.BaseOrderBiz; import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderMemberDetailBiz;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderMemberDetail;
import com.xxfc.platform.order.pojo.order.CancelOrderDTO; import com.xxfc.platform.order.pojo.order.CancelOrderDTO;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO; import com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO;
...@@ -47,6 +51,7 @@ import java.util.Date; ...@@ -47,6 +51,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
@Controller @Controller
...@@ -64,6 +69,10 @@ public class BaseOrderController extends CommonBaseController { ...@@ -64,6 +69,10 @@ public class BaseOrderController extends CommonBaseController {
UserFeign userFeign; UserFeign userFeign;
@Resource @Resource
VehicleFeign vehicleFeign; VehicleFeign vehicleFeign;
@Autowired
OrderMemberDetailBiz orderMemberDetailBiz;
@Value("${gateway.host}") @Value("${gateway.host}")
String host; String host;
@Value("${gateway.order}") @Value("${gateway.order}")
...@@ -84,18 +93,9 @@ public class BaseOrderController extends CommonBaseController { ...@@ -84,18 +93,9 @@ public class BaseOrderController extends CommonBaseController {
return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper()))); return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper())));
} }
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "订单列表")
@IgnoreClientToken
public ObjectRestResponse<PageDataVO<OrderPageVO>> getOrderList(QueryOrderDTO dto) {
Query query = new Query(dto);
return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query, () -> baseOrderBiz.selectListAll()));
}
@RequestMapping(value = "/getOrderList", method = RequestMethod.GET) @RequestMapping(value = "/getOrderList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "订单列表") @ApiOperation(value = "获取后台订单列表")
@IgnoreClientToken @IgnoreClientToken
public ObjectRestResponse<PageDataVO<OrderPageVO>> selectByUser(QueryOrderList dto) { public ObjectRestResponse<PageDataVO<OrderPageVO>> selectByUser(QueryOrderList dto) {
if (dto.getStartTime() != null) { if (dto.getStartTime() != null) {
...@@ -130,7 +130,7 @@ public class BaseOrderController extends CommonBaseController { ...@@ -130,7 +130,7 @@ public class BaseOrderController extends CommonBaseController {
@RequestMapping(value = "/getVehicleList", method = RequestMethod.GET) @RequestMapping(value = "/getVehicleList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "交还车订单列表") @ApiOperation(value = "交还车租车订单列表")
@IgnoreClientToken @IgnoreClientToken
public ObjectRestResponse<List<OrderPageVO>> getVehicleList(QueryOrderList dto) { public ObjectRestResponse<List<OrderPageVO>> getVehicleList(QueryOrderList dto) {
if (dto.getStartTime() != null) { if (dto.getStartTime() != null) {
...@@ -146,7 +146,7 @@ public class BaseOrderController extends CommonBaseController { ...@@ -146,7 +146,7 @@ public class BaseOrderController extends CommonBaseController {
@RequestMapping(value = "/getTourList", method = RequestMethod.GET) @RequestMapping(value = "/getTourList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "交还车订单列表") @ApiOperation(value = "交还车旅游订单列表")
@IgnoreClientToken @IgnoreClientToken
public ObjectRestResponse<List<OrderPageVO>> getTourList(QueryOrderList dto) { public ObjectRestResponse<List<OrderPageVO>> getTourList(QueryOrderList dto) {
if (dto.getStartTime() != null) { if (dto.getStartTime() != null) {
...@@ -294,6 +294,7 @@ public class BaseOrderController extends CommonBaseController { ...@@ -294,6 +294,7 @@ public class BaseOrderController extends CommonBaseController {
}}); }});
if (null == dbBaseOrder || !BaseContextHandler.getUserID().equals(dbBaseOrder.getUserId().toString())) { if (null == dbBaseOrder || !BaseContextHandler.getUserID().equals(dbBaseOrder.getUserId().toString())) {
throw new BaseException(ResultCode.NOTEXIST_CODE); throw new BaseException(ResultCode.NOTEXIST_CODE);
} }
dbBaseOrder.setCancelReason(cancelOrderDto.getCancelReason()); dbBaseOrder.setCancelReason(cancelOrderDto.getCancelReason());
baseOrderBiz.cancel(dbBaseOrder); baseOrderBiz.cancel(dbBaseOrder);
...@@ -308,32 +309,11 @@ public class BaseOrderController extends CommonBaseController { ...@@ -308,32 +309,11 @@ public class BaseOrderController extends CommonBaseController {
public ObjectRestResponse notifyUrl(NotifyUrlDTO dto) { public ObjectRestResponse notifyUrl(NotifyUrlDTO dto) {
//判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态 //判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态
if (StrUtil.isNotBlank(dto.getOrderNo())) { if (StrUtil.isNotBlank(dto.getOrderNo())) {
BaseOrder baseOrder = baseOrderBiz.selectOne(new BaseOrder() {{ baseOrderBiz.payNotifyHandle(dto.getOrderNo(), dto.getTradeNo());
setNo(dto.getOrderNo());
}});
if (OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus())) {
baseOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
baseOrder.setOutTradeNo(dto.getTradeNo());
baseOrderBiz.updateById(baseOrder);
} else {
if (OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus())) {
BaseOrder updateOrder = new BaseOrder() {{
setNo(dto.getOrderNo());
setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
setOutTradeNo(dto.getTradeNo());
setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis());
}};
baseOrderBiz.updateSelectiveById(updateOrder);
} else {
log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto));
}
}
}else{ }else{
log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto)); log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto));
} }
return new ObjectRestResponse().rel(true); return ObjectRestResponse.succ();
} }
/** /**
* 订单查询类 * 订单查询类
......
...@@ -83,7 +83,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -83,7 +83,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Override @Override
public void initDetail(MemberBO bo) { public void initDetail(MemberBO bo) {
super.initDetail(bo); super.initDetail(bo);
BaseUserMemberLevel buml = userFeign.level(bo.getLevelNum()); BaseUserMemberLevel buml = userFeign.level(bo.getMemberLevel());
bo.setBaseUserMemberLevel(buml); bo.setBaseUserMemberLevel(buml);
bo.setRentFreeNum(buml.getNumber()); bo.setRentFreeNum(buml.getNumber());
bo.setRebate(buml.getDiscount()); bo.setRebate(buml.getDiscount());
......
...@@ -15,6 +15,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; ...@@ -15,6 +15,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderTemplate; import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.pojo.order.RentVehicleBO; import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO; import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO; import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
...@@ -223,7 +224,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -223,7 +224,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//根据车型、时间、距离,门店,预定车辆 //根据车型、时间、距离,门店,预定车辆
RentVehicleBookDTO rentVehicleBookDTO = BeanUtil.toBean(detail.getBookVehicleVO(), RentVehicleBookDTO.class); RentVehicleBookDTO rentVehicleBookDTO = BeanUtil.toBean(detail.getBookVehicleVO(), RentVehicleBookDTO.class);
rentVehicleBookDTO.setUserName(BaseContextHandler.getName()); rentVehicleBookDTO.setUserName(BaseContextHandler.getName());
ObjectRestResponse<String> orr = vehicleFeign.rentApplyVehicle(rentVehicleBookDTO); ObjectRestResponse<VehicleBookRecord> orr = vehicleFeign.rentApplyVehicle(rentVehicleBookDTO);
detail.setVehicleId(orr.getData()); detail.setVehicleId(orr.getData().getVehicleId());
detail.setBookRecordId(orr.getData().getId());
} }
} }
...@@ -120,7 +120,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -120,7 +120,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
}})).getData().get(0).getId()); }})).getData().get(0).getId());
//扣減庫存 //扣減庫存
tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber()); tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber(), TourFeign.STOCK_SUBTRACT);
super.handleDetail(bo); super.handleDetail(bo);
} }
......
...@@ -24,9 +24,11 @@ ...@@ -24,9 +24,11 @@
<result column="upd_time" jdbcType="BIGINT" property="updTime" /> <result column="upd_time" jdbcType="BIGINT" property="updTime" />
<result column="vehicle_key" jdbcType="LONGVARCHAR" property="vehicleKey"/> <result column="vehicle_key" jdbcType="LONGVARCHAR" property="vehicleKey"/>
<result column="license_id_card" jdbcType="VARCHAR" property="licenseIdCard"/> <result column="license_id_card" jdbcType="VARCHAR" property="licenseIdCard"/>
<result column="is_ded" jdbcType="BIT" property="isDeD" /> <result column="deduction" jdbcType="BIT" property="deduction" />
<result column="ded_detail" jdbcType="LONGVARCHAR" property="dedDetail" /> <result column="ded_detail" jdbcType="LONGVARCHAR" property="dedDetail" />
<result column="type" jdbcType="INTEGER" property="type"/> <result column="type" jdbcType="INTEGER" property="type"/>
<result column="deduction_cost" jdbcType="INTEGER" property="deductionCost"/>
<result column="rest_deposit" jdbcType="INTEGER" property="restDeposit"/>
</resultMap> </resultMap>
<select id="selectByOrderId" parameterType="com.xxfc.platform.order.entity.OrderVehicaleCrosstown" resultMap="BaseResultMap"> <select id="selectByOrderId" parameterType="com.xxfc.platform.order.entity.OrderVehicaleCrosstown" resultMap="BaseResultMap">
......
...@@ -26,6 +26,8 @@ import java.util.Map; ...@@ -26,6 +26,8 @@ import java.util.Map;
*/ */
@FeignClient(value = "xx-tour") @FeignClient(value = "xx-tour")
public interface TourFeign { public interface TourFeign {
public static final int STOCK_SUBTRACT = 1;
public static final int STOCK_PLUS = 2;
/** /**
* 计算价格 * 计算价格
...@@ -35,6 +37,13 @@ public interface TourFeign { ...@@ -35,6 +37,13 @@ public interface TourFeign {
@RequestMapping(value = "/spe/user/prices", method = RequestMethod.POST) @RequestMapping(value = "/spe/user/prices", method = RequestMethod.POST)
public ObjectRestResponse<TourSpePriceVo> refund(@RequestBody TourSpePriceDTO spePriceDto); public ObjectRestResponse<TourSpePriceVo> refund(@RequestBody TourSpePriceDTO spePriceDto);
/**
*
* @param speId
* @param number
* @param type 1--减库存,2--加库存
* @return
*/
@RequestMapping(value = "/spe/stock", method = RequestMethod.GET) @RequestMapping(value = "/spe/stock", method = RequestMethod.GET)
public ObjectRestResponse<TourSpePriceVo> stock(@RequestParam Integer speId, @RequestParam Integer number, @RequestParam Integer type); public ObjectRestResponse<TourSpePriceVo> stock(@RequestParam Integer speId, @RequestParam Integer number, @RequestParam Integer type);
......
package com.xxfc.platform.vehicle.entity;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Table(name = "vehicle_book_hour_info")
public class VehicleBookHourInfo {
@Id
private Integer id;
@Column(name = "vehicle_id")
private String vehicleId;
@Column(name = "year_month_day")
private String yearMonthDay;
@Column(name = "booked_hour")
private Integer bookedHour;
@Column(name = "create_time")
private Date createTime;
@Column(name = "update_time")
private Date updateTime;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return vehicle_id
*/
public String getVehicleId() {
return vehicleId;
}
/**
* @param vehicleId
*/
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
/**
* @return year_month_day
*/
public String getYearMonthDay() {
return yearMonthDay;
}
/**
* @param yearMonthDay
*/
public void setYearMonthDay(String yearMonthDay) {
this.yearMonthDay = yearMonthDay;
}
/**
* @return booked_hour
*/
public Integer getBookedHour() {
return bookedHour;
}
/**
* @param bookedHour
*/
public void setBookedHour(Integer bookedHour) {
this.bookedHour = bookedHour;
}
/**
* @return create_time
*/
public Date getCreateTime() {
return createTime;
}
/**
* @param createTime
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* @return update_time
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* @param updateTime
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.feign; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.feign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO; import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
...@@ -33,8 +34,14 @@ public interface VehicleFeign { ...@@ -33,8 +34,14 @@ public interface VehicleFeign {
public RestResponse addScore(@RequestParam(value="id")Integer id, @RequestParam(value="score")Integer score); public RestResponse addScore(@RequestParam(value="id")Integer id, @RequestParam(value="score")Integer score);
@RequestMapping(value = "/vehicleInfo/rent/book/vehicle", method = RequestMethod.POST) @RequestMapping(value = "/vehicleInfo/rent/book/vehicle", method = RequestMethod.POST)
public ObjectRestResponse<String> rentApplyVehicle(@RequestBody RentVehicleBookDTO rentVehicleBookDTO); public ObjectRestResponse<VehicleBookRecord> rentApplyVehicle(@RequestBody RentVehicleBookDTO rentVehicleBookDTO);
@RequestMapping(value ="/branchCompany/app/unauth/detail/{id}",method = RequestMethod.GET) @RequestMapping(value ="/branchCompany/app/unauth/detail/{id}",method = RequestMethod.GET)
public ObjectRestResponse<CompanyDetail> getCompanyDetail(@PathVariable Integer id); public ObjectRestResponse<CompanyDetail> getCompanyDetail(@PathVariable Integer id);
@RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE)
public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId);
@RequestMapping(value = "/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT)
public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId);
} }
...@@ -284,7 +284,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -284,7 +284,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
* @return * @return
*/ */
@Transactional @Transactional
public void applyVehicle4Employee(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{ public VehicleBookRecord applyVehicle4Employee(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{
//检查车辆信息是否合法 //检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicle()); checkIfVehicleExists(bookVehicleVo.getVehicle());
//提取日期和相应的预定目标日期 //提取日期和相应的预定目标日期
...@@ -337,6 +337,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -337,6 +337,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
} }
bookRecordAccItemMapper.batchAdd(params); bookRecordAccItemMapper.batchAdd(params);
} }
return vehicleBookRecord;
} }
@Transactional @Transactional
......
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleBookHourInfo;
import tk.mybatis.mapper.common.Mapper;
public interface VehicleBookHourInfoMapper extends Mapper<VehicleBookHourInfo> {
}
\ No newline at end of file
...@@ -24,10 +24,7 @@ import com.xxfc.platform.vehicle.common.CustomIllegalParamException; ...@@ -24,10 +24,7 @@ import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus; import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.entity.VehicleWarningMsg;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto; import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -202,6 +199,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -202,6 +199,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT)
@ApiOperation(value = "预定车辆审核通过")
public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId) throws Exception { public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -215,6 +213,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -215,6 +213,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/reject/{bookRecordId}", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/reject/{bookRecordId}", method = RequestMethod.PUT)
@ApiOperation(value = "拒绝预定车辆")
public RestResponse<Integer> rejectVehicleBooking(@PathVariable Long bookRecordId) throws Exception { public RestResponse<Integer> rejectVehicleBooking(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -242,6 +241,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -242,6 +241,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE) @RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE)
@ApiOperation(value = "取消预定车辆")
public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId) throws Exception { public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -249,6 +249,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -249,6 +249,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
} }
@RequestMapping(value = "/bookedRecord/{bookEndDate}/{id}", method = RequestMethod.GET) @RequestMapping(value = "/bookedRecord/{bookEndDate}/{id}", method = RequestMethod.GET)
@ApiOperation(value = "获取预定记录")
public RestResponse<QueryVehicleBookRecordVo> getBookedRecord(@PathVariable String bookEndDate, @PathVariable Long id) throws Exception { public RestResponse<QueryVehicleBookRecordVo> getBookedRecord(@PathVariable String bookEndDate, @PathVariable Long id) throws Exception {
try { try {
return RestResponse.codeAndData(RestResponse.SUC_CODE, vehicleBookRecordBiz.getById(id, DateTime.parse(bookEndDate, DEFAULT_FORMATTER))); return RestResponse.codeAndData(RestResponse.SUC_CODE, vehicleBookRecordBiz.getById(id, DateTime.parse(bookEndDate, DEFAULT_FORMATTER)));
...@@ -262,6 +263,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -262,6 +263,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
@RequestMapping(value = "/bookedRecord", method = RequestMethod.GET) @RequestMapping(value = "/bookedRecord", method = RequestMethod.GET)
@ApiOperation(value = "获取多个预定记录")
public RestResponse<PageDataVO<QueryVehicleBookRecordVo>> getBookedRecord(@RequestParam String vehicleBookRecordQueryVoJson) throws Exception { public RestResponse<PageDataVO<QueryVehicleBookRecordVo>> getBookedRecord(@RequestParam String vehicleBookRecordQueryVoJson) throws Exception {
VehicleBookRecordQueryVo vehicleBookRecordQueryVo = null; VehicleBookRecordQueryVo vehicleBookRecordQueryVo = null;
...@@ -283,6 +285,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -283,6 +285,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/lift", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/lift", method = RequestMethod.PUT)
@ApiOperation(value = "提车")
public RestResponse<Integer> liftVehicle(@RequestBody LiftVehicleVo liftVehicleVo) throws Exception { public RestResponse<Integer> liftVehicle(@RequestBody LiftVehicleVo liftVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -296,6 +299,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -296,6 +299,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/ret", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/ret", method = RequestMethod.PUT)
@ApiOperation(value = "还车")
public RestResponse<Integer> retVehicle(@RequestBody RetVehicleVo retVehicleVo) throws Exception { public RestResponse<Integer> retVehicle(@RequestBody RetVehicleVo retVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -372,9 +376,9 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -372,9 +376,9 @@ public class VehicleController extends BaseController<VehicleBiz> {
} }
bookVehicleVo.setVehicle(pageDataVO.getData().get(0).getId()); bookVehicleVo.setVehicle(pageDataVO.getData().get(0).getId());
baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName); VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
return ObjectRestResponse.succ(bookVehicleVo.getVehicle()); return ObjectRestResponse.succ(vehicleBookRecord);
} }
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
</plugin> </plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" <jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/vehicle?useUnicode=true&amp;characterEncoding=UTF8" connectionURL="jdbc:mysql://10.5.52.3:3306/vehicle?useUnicode=true&amp;characterEncoding=UTF8"
userId="root" userId="root"
password="xx2019fc"> password="sslcloud123*()">
</jdbcConnection> </jdbcConnection>
<javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/> <javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<!-- </table>--> <!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>--> <!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>--> <!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="vehicle_upkeep_item" domainObjectName="VehicleUpkeepItem"></table> <table tableName="vehicle_book_hour_info" domainObjectName="VehicleBookHourInfo"></table>
<table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table> <!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>-->
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ 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