Commit 682f0a77 authored by hezhen's avatar hezhen

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

# Conflicts:
#	xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/biz/TourGoodBiz.java
#	xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/mapper/TourGoodMapper.java
#	xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/rest/TourGoodController.java
parents e1c55168 31a74322
package com.github.wxiaoqi.security.common.msg; package com.github.wxiaoqi.security.common.msg;
import com.github.wxiaoqi.security.common.constant.RestCode; import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.util.SystemProperty;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
/** /**
* Created by Ace on 2017/6/11. * Created by Ace on 2017/6/11.
...@@ -9,6 +11,10 @@ public class ObjectRestResponse<T> extends BaseResponse { ...@@ -9,6 +11,10 @@ public class ObjectRestResponse<T> extends BaseResponse {
T data; T data;
boolean rel; boolean rel;
private static final Integer WEB_CALL_RESULT_SUCCESS = ResultCode.SUCCESS_CODE;
private static final Integer WEB_CALL_RESULT_FAILED = ResultCode.FAILED_CODE;
private static final String RESULT_SUCCESS_MSG = "操作成功";
private static final String RESULT_FAIL_MSG = "操作失败";
public boolean isRel() { public boolean isRel() {
return rel; return rel;
...@@ -54,4 +60,30 @@ public class ObjectRestResponse<T> extends BaseResponse { ...@@ -54,4 +60,30 @@ public class ObjectRestResponse<T> extends BaseResponse {
public static <T> ObjectRestResponse succ(T data) { public static <T> ObjectRestResponse succ(T data) {
return new ObjectRestResponse().status(RestCode.SUCCESS.getStatus()).msg(RestCode.SUCCESS.getMsg()).data(data).rel(true); return new ObjectRestResponse().status(RestCode.SUCCESS.getStatus()).msg(RestCode.SUCCESS.getMsg()).data(data).rel(true);
} }
/**
* 创建一个异常的调用结果,根据code获取对应的提示
* @param code
* @return
*/
public static ObjectRestResponse createFailedResultMsg(Integer code) {
return new ObjectRestResponse().status(code).msg(SystemProperty.getResultConfig(code + "")).rel(false);
}
/**
* 创建一个异常的调用结果
* @param message
* @return
*/
public static ObjectRestResponse createFailedResult(Integer code, String message) {
return new ObjectRestResponse().status(code).msg(message).rel(false);
}
/**
* 操作失败
* @return
*/
public static ObjectRestResponse createDefaultFail() {
return new ObjectRestResponse().status(WEB_CALL_RESULT_FAILED).msg(RESULT_FAIL_MSG).rel(false);
}
} }
...@@ -10,7 +10,7 @@ spring: ...@@ -10,7 +10,7 @@ spring:
datasource: datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://10.5.52.3:3306/xxfc_tour?useUnicode=true&characterEncoding=UTF-8 url: jdbc:mysql://10.5.52.3:3306/xxfc_order?useUnicode=true&characterEncoding=UTF-8
username: root username: root
password: sslcloud123*() password: sslcloud123*()
jackson: jackson:
......
#代码生成器,配置信息 #代码生成器,配置信息
#包名 #包名
package=com.xxfc.platform.tour package=com.xxfc.platform.order
#作者 #作者
author=zjw author=zjw
#Email #Email
......
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 旅游订单详情
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-06 18:18:33
*/
@Data
@Table(name = "order_tour_detail")
public class OrderTourDetail implements Serializable {
private static final long serialVersionUID = 1L;
//主键
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键")
private Integer id;
//基础订单id
@Column(name = "order_id")
@ApiModelProperty(value = "基础订单id")
private Integer orderId;
//名称
@Column(name = "name")
@ApiModelProperty(value = "名称")
private String name;
//创建时间
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
//更新时间
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
//开始时间
@Column(name = "start_time")
@ApiModelProperty(value = "开始时间")
private Long startTime;
//结束时间
@Column(name = "end_time")
@ApiModelProperty(value = "结束时间")
private Long endTime;
//天数
@Column(name = "day_num")
@ApiModelProperty(value = "天数")
private Integer dayNum;
//出发地点
@Column(name = "start_addr")
@ApiModelProperty(value = "出发地点")
private String startAddr;
//还车地点
@Column(name = "end_addr")
@ApiModelProperty(value = "还车地点")
private String endAddr;
//出发城市编号
@Column(name = "start_city")
@ApiModelProperty(value = "出发城市编号")
private Integer startCity;
//还车城市编号
@Column(name = "end_city")
@ApiModelProperty(value = "还车城市编号")
private Integer endCity;
//出发城市名称
@Column(name = "start_city_name")
@ApiModelProperty(value = "出发城市名称")
private String startCityName;
//还车城市名称
@Column(name = "end_city_name")
@ApiModelProperty(value = "还车城市名称")
private String endCityName;
//自己乘客ids
@Column(name = "my_passager_ids")
@ApiModelProperty(value = "自己乘客ids")
private String myPassagerIds;
//出发公司Id
@Column(name = "start_company_id")
@ApiModelProperty(value = "出发公司Id")
private Integer startCompanyId;
//费用明细
@Column(name = "cost_detail")
@ApiModelProperty(value = "费用明细")
private String costDetail;
//商品id
@Column(name = "good_id")
@ApiModelProperty(value = "商品id")
private Integer goodId;
//商品规格ids
@Column(name = "spe_ids")
@ApiModelProperty(value = "商品规格ids")
private String speIds;
//具体商品(商品项)id
@Column(name = "spe_price_id")
@ApiModelProperty(value = "具体商品(商品项)id")
private String spePriceId;
}
package com.xxfc.platform.order.pojo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
@Data
public class AddTourDTO {
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//开始时间
@Column(name = "start_time")
@ApiModelProperty(value = "活动开始时间")
private Long startTime;
//结束时间
@Column(name = "end_time")
@ApiModelProperty(value = "活动结束时间")
private Long endTime;
//天数
@Column(name = "day_num")
@ApiModelProperty(value = "天数")
private Integer dayNum;
//取车地点
@Column(name = "start_addr")
@ApiModelProperty(value = "出发地点")
private String startAddr;
//还车地点
@Column(name = "end_addr")
@ApiModelProperty(value = "结束地点")
private String endAddr;
//费用详情
@Column(name = "cost_detail")
@ApiModelProperty(value = "费用详情")
private String costDetail;
//取车城市编号
@Column(name = "start_city")
@ApiModelProperty(value = "出发城市编号")
private Integer startCity;
//还车城市编号
@Column(name = "end_city")
@ApiModelProperty(value = "结束城市编号")
private Integer endCity;
//取车城市名称
@Column(name = "start_city_name")
@ApiModelProperty(value = "出发城市名称")
private String startCityName;
//还车城市名称
@Column(name = "end_city_name")
@ApiModelProperty(value = "结束城市名称")
private String endCityName;
//自己乘客ids
@Column(name = "my_passager_ids")
@ApiModelProperty(value = "自己乘客ids")
private String myPassagerIds;
//出发公司Id
@Column(name = "start_company_id")
@ApiModelProperty(value = "出发公司Id")
private Integer startCompanyId;
//商品id
@Column(name = "good_id")
@ApiModelProperty(value = "商品id")
private Integer goodId;
//商品规格ids
@Column(name = "spe_ids")
@ApiModelProperty(value = "商品规格ids")
private String speIds;
//具体商品(商品项)id
@Column(name = "spe_price_id")
@ApiModelProperty(value = "具体商品(商品项)id")
private String spePriceId;
}
package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderTourDetail;
import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import lombok.Data;
@Data
public class TourBO extends OrderTourDetail implements OrderDetail {
private BaseOrder order;
// private Tour
}
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.xxfc.platform</groupId> <groupId>com.xxfc.platform</groupId>
<artifactId>xx-vehicle-api</artifactId> <artifactId>xx-vehicle-api</artifactId>
...@@ -33,9 +34,8 @@ ...@@ -33,9 +34,8 @@
<dependency> <dependency>
<groupId>com.xxfc.platform</groupId> <groupId>com.xxfc.platform</groupId>
<artifactId>xx-vehicle-api</artifactId> <artifactId>xx-tour-api</artifactId>
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
......
package com.xxfc.platform.order.biz;
import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderTourDetail;
import com.xxfc.platform.order.mapper.OrderTourDetailMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
/**
* 旅游订单详情
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-06 18:18:33
*/
@Service
public class OrderTourDetailBiz extends BaseBiz<OrderTourDetailMapper,OrderTourDetail> {
}
\ No newline at end of file
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderTourDetail;
import tk.mybatis.mapper.common.Mapper;
/**
* 旅游订单详情
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-06 18:18:33
*/
public interface OrderTourDetailMapper extends Mapper<OrderTourDetail> {
}
package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderTourDetailBiz;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderTourDetail;
import com.xxfc.platform.order.pojo.AddRentVehicleDTO;
import com.xxfc.platform.order.pojo.AddTourDTO;
import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.service.OrderTourService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("orderTour")
public class OrderTourController extends BaseController<OrderTourDetailBiz,OrderTourDetail> {
@Autowired
OrderTourService orderTourService;
@RequestMapping(value = "add",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "确认旅游订单")
public ObjectRestResponse<OrderRentVehicleDetail> add(@RequestBody AddTourDTO vo){
RentVehicleBO bo = BeanUtil.toBean(vo, RentVehicleBO.class);
orderTourService.createOrder(bo);
return new ObjectRestResponse<>().rel(true).data(bo.getOrder());
}
}
\ No newline at end of file
package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateConfig;
import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil;
import com.xxfc.platform.order.biz.OrderCostDetailBiz;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.biz.OrderTemplateBiz;
import com.xxfc.platform.order.contant.enumerate.OrderCostEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderCostDetail;
import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
@Service
@Log4j
public class OrderTourService extends AbstractOrderHandle<OrderRentVehicleBiz, RentVehicleBO> {
private static BigDecimal DRIVER_PRICE = new BigDecimal("600.00");
private static BigDecimal DAMAGE_SAFE = new BigDecimal("100.00"); //车损免赔
private static Integer DRIVER_TYPE_COMPANY = 1;
private static BigDecimal DEPOSIT = new BigDecimal("20000.00");
@Autowired
VehicleFeign vehicleFeign;
@Autowired
OrderCostDetailBiz orderCostDetailBiz;
@Autowired
OrderTemplateBiz orderTemplateBiz;
@PostConstruct
public void init(){
this.orderTypeEnum = OrderTypeEnum.RentVehicle;
}
@Override
public void initDetail(RentVehicleBO bo) {
super.initDetail(bo);
VehicleModel vehicleModel = vehicleFeign.get(bo.getModelId()).getData();
bo.setVehicleModel(vehicleModel);
}
@Override
public void handleDetail(RentVehicleBO bo) {
//获取可用车辆
acquireVehicle(bo);
//设置订单状态为3
bo.getOrder().setStatus(OrderStatusEnum.ORDER_UNPAY.getCode());
//设置订单图片
bo.getOrder().setPicture(bo.getVehicleModel().getPicture());
//设置订单名称
bo.getOrder().setName(bo.getVehicleModel().getName());
super.handleDetail(bo);
}
@Override
public void handleCalculate(RentVehicleBO bo) {
RentVehiclePriceVO rvpv = calculatePrice(bo);
BeanUtil.copyProperties(rvpv, bo.getOrder());
BeanUtil.copyProperties(rvpv, bo);
}
@Override
public RentVehiclePriceVO calculatePrice(RentVehicleBO detail) {
BigDecimal orderAmount = BigDecimal.ZERO;
BigDecimal goodsAmount = BigDecimal.ZERO;
BigDecimal vehicleAmount = BigDecimal.ZERO;
BigDecimal driverAmount = BigDecimal.ZERO;
//计算价格
//计算车辆费用
VehicleModel vehicleModel = vehicleFeign.get(detail.getModelId()).getData();
vehicleAmount = vehicleAmount.add(vehicleModel.getPrice().multiply(BigDecimal.valueOf(detail.getDayNum())));
if(DRIVER_TYPE_COMPANY.equals(detail.getDriverType())) {
//计算司机费用
driverAmount = driverAmount.add(DRIVER_PRICE.multiply(BigDecimal.valueOf(detail.getDayNum())));
}
//商品价格
goodsAmount = goodsAmount.add(vehicleAmount).add(driverAmount);
//总价格(包含押金)
orderAmount = orderAmount.add(goodsAmount).add(DEPOSIT);
//生成订单明细
RentVehiclePriceVO rvp = new RentVehiclePriceVO();
rvp.setOrderAmount(orderAmount);
rvp.setGoodsAmount(goodsAmount);
rvp.setDriverAmount(driverAmount);
rvp.setVehicleAmount(vehicleAmount);
rvp.setRealAmount(orderAmount);
rvp.setDeposit(DEPOSIT);
rvp.setModelAmount(vehicleModel.getPrice());
rvp.setDriverPrice(DRIVER_PRICE);
rvp.setModelName(vehicleModel.getName());
rvp.setDayNum(detail.getDayNum());
rvp.setVehicleNum(1);
rvp.setDriverNum(1);
detail.setCostDetail(costDetail(rvp));
return rvp;
}
/**
* 计算费用明细
* @param vo
* @return
*/
private String costDetail(RentVehiclePriceVO vo) {
//orderTemplateBiz.result(orderTemplateBiz.selectById(OrderCostEnum.RentVehicle.getCode()), Dict.parse(pojo));
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig());
OrderCostDetail orderCostDetail = orderCostDetailBiz.selectById(OrderCostEnum.RentVehicle.getCode());
Template template = engine.getTemplate(orderCostDetail.getTemplate());
String result = template.render(Dict.parse(vo));
vo.setCostDetail(result);
return result;
}
private String acquireVehicle(RentVehicleBO detail) {
//根据车型、时间、距离,门店,预定车辆
// BookVehicleVO bookVehicleVO = new BookVehicleVO(){{
// setBookStartDate(detail);
// }};
// vehicleFeign.rentApplyVehicle()
String vehicleId = "0e9a88db-cb1b-48a4-b307-40f89eed906f";
detail.setVehicleId(vehicleId);
return vehicleId;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.order.mapper.OrderTourDetailMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.order.entity.OrderTourDetail" id="orderTourDetailMap">
<result property="id" column="id"/>
<result property="orderId" column="order_id"/>
<result property="name" column="name"/>
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="startTime" column="start_time"/>
<result property="endTime" column="end_time"/>
<result property="dayNum" column="day_num"/>
<result property="startAddr" column="start_addr"/>
<result property="endAddr" column="end_addr"/>
<result property="startCity" column="start_city"/>
<result property="endCity" column="end_city"/>
<result property="startCityName" column="start_city_name"/>
<result property="endCityName" column="end_city_name"/>
<result property="myPassagerIds" column="my_passager_ids"/>
<result property="startCompanyId" column="start_company_id"/>
<result property="costDetail" column="cost_detail"/>
</resultMap>
</mapper>
\ No newline at end of file
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
<groupId>com.xxfc.platform</groupId> <groupId>com.xxfc.platform</groupId>
<artifactId>xx-tour-api</artifactId> <artifactId>xx-tour-api</artifactId>
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
......
package com.xxfc.platform.tour.biz; package com.xxfc.platform.tour.biz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.mapper.TourGoodMapper; import com.xxfc.platform.tour.mapper.TourGoodMapper;
import com.xxfc.platform.tour.mapper.TourGoodSiteMapper;
import com.xxfc.platform.tour.mapper.TourGoodSpePriceMapper;
import com.xxfc.platform.tour.vo.TourDepartTimeVo;
import com.xxfc.platform.tour.vo.TourDepartVo;
import com.xxfc.platform.tour.vo.TourGoodDetailVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.tour.entity.TourGood; import com.xxfc.platform.tour.entity.TourGood;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.util.HashMap;
import java.util.List; import java.util.Map;
/** /**
* 旅游商品表 * 旅游商品表
...@@ -29,6 +22,17 @@ import java.util.List; ...@@ -29,6 +22,17 @@ import java.util.List;
@Slf4j @Slf4j
public class TourGoodBiz extends BaseBiz<TourGoodMapper,TourGood> { public class TourGoodBiz extends BaseBiz<TourGoodMapper,TourGood> {
@Autowired
private TourGoodMapper tourGoodMapper;
public PageDataVO<TourGood> getGoodList(int page, int limit , String query , Double latitude, Double longitude, Integer tagId, Double distance){
Map<String,Object> params = new HashMap<String,Object>();
params.put("query",query);
params.put("latitude",latitude);
params.put("longitude",longitude);
params.put("tagId",tagId);
params.put("distance",distance);
// List<TourGood> list = tourGoodMapper.getGoodList(params);
return PageDataVO.pageInfo(page, limit, mapper.getGoodList(params));
}
} }
\ No newline at end of file
...@@ -3,6 +3,8 @@ package com.xxfc.platform.tour.mapper; ...@@ -3,6 +3,8 @@ package com.xxfc.platform.tour.mapper;
import com.xxfc.platform.tour.entity.TourGood; import com.xxfc.platform.tour.entity.TourGood;
import org.apache.ibatis.annotations.Param; 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.Map;
/** /**
* 旅游商品表 * 旅游商品表
...@@ -16,4 +18,5 @@ public interface TourGoodMapper extends Mapper<TourGood> { ...@@ -16,4 +18,5 @@ public interface TourGoodMapper extends Mapper<TourGood> {
//获取商品信息 //获取商品信息
public TourGood getOne(@Param("id")Integer id); public TourGood getOne(@Param("id")Integer id);
public List<TourGood> getGoodList(@Param("params") Map<String,Object> map);
} }
package com.xxfc.platform.tour.rest; package com.xxfc.platform.tour.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.common.msg.BaseResponse;
import com.github.wxiaoqi.security.common.msg.ListRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.biz.TourGoodBiz; import com.xxfc.platform.tour.biz.TourGoodBiz;
import com.xxfc.platform.tour.entity.TourGood; import com.xxfc.platform.tour.entity.TourGood;
import org.springframework.web.bind.annotation.RequestMapping; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RestController; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("tourGood") @RequestMapping("tourGood")
public class TourGoodController extends BaseController<TourGoodBiz,TourGood> { public class TourGoodController extends BaseController<TourGoodBiz,TourGood> {
@ApiOperation("订单详情")
@RequestMapping(value = "/app/unauth/getGoodList",method = RequestMethod.GET)
//@GetMapping(value = "/app/unauth/getGoodList")
@IgnoreClientToken
@ResponseBody
public PageDataVO<TourGood> getGoodList(@RequestParam(value = "page", required=true) Integer page, @RequestParam(value = "limit", required=true) Integer limit ,
@RequestParam(value = "query") String query , @RequestParam(value = "latitude", required=false) Double latitude, @RequestParam(value = "longitude", required=false) Double longitude,
@RequestParam(value = "tagId", required=false) Integer tagId, @RequestParam(value = "distance",defaultValue = "10.00") Double distance){
//BaseResponse baseResponse = new BaseResponse();
return baseBiz.getGoodList(page, limit, query, latitude, longitude, tagId, distance);
}
} }
\ No newline at end of file
...@@ -25,4 +25,32 @@ ...@@ -25,4 +25,32 @@
<result property="unit" column="unit"/> <result property="unit" column="unit"/>
</resultMap> </resultMap>
<select id="getGoodList" parameterType="java.util.Map" resultMap="tourGoodMap">
SELECT * from tour_good t
where 1=1
<if test="params.query != null and params.query != ''">
and (t.`name` like CONCAT('%',#{params.query},'%') or t.introduce like CONCAT('%',#{params.query},'%'))
</if>
<if test="params.latitude != null and params.latitude != '' and params.longitude != null and params.longitude != ''">
and t.id in (SELECT s.good_id from (
select good_id,
if(ROUND(( (2 * ASIN( SQRT( POW( SIN((latitude * PI() / 180.0- #{params.latitude}* PI() / 180.0)/2), 2)+COS( latitude * PI() / 180.0)*COS( #{params.longitude} * PI() / 180.0)
*POW(SIN((longitude * PI() / 180.0 - #{params.longitude}* PI() /180.0)/2),2))))*6378.137)*10000)/10000 is null ,0,ROUND(( (2 * ASIN( SQRT( POW( SIN((latitude * PI() / 180.0-22.954205* PI() / 180.0)/2), 2)+COS( latitude * PI() / 180.0)*COS(113.879421 * PI() / 180.0)
*POW(SIN((longitude * PI() / 180.0 - #{params.longitude}* PI() /180.0)/2),2))))*6378.137)*10000)/10000 ) AS distance
FROM tour_good_site
order by distance
) s
where s.distance &lt; #{params.distance})
</if>
<if test="params.tagId != null and params.tagId != '' ">
and t.id in (SELECT tg.good_id from tour_good_tag tg
where tg.tag_id = 1) and t.recommend = 1
ORDER BY t.recommend
</if>
</select>
<select id="getOne" resultMap="tourGoodMap">
SELECT * FROM tour_good WHERE id =#{id} and is_del=0
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment