Commit 4fa3c872 authored by 周健威's avatar 周健威

添加订单相关

parent 1e356f01
...@@ -65,6 +65,10 @@ public class EntityUtils { ...@@ -65,6 +65,10 @@ public class EntityUtils {
Object [] value = null; Object [] value = null;
if(field!=null&&field.getType().equals(Date.class)){ if(field!=null&&field.getType().equals(Date.class)){
value = new Object []{name,id,hostIp,new Date()}; value = new Object []{name,id,hostIp,new Date()};
}else if(field!=null&&field.getType().equals(Long.class)) {
value = new Object []{name,id,hostIp, System.currentTimeMillis()};
}else {
value = new Object []{name,id,hostIp, null};
} }
// 填充默认属性值 // 填充默认属性值
setDefaultValues(entity, fields, value); setDefaultValues(entity, fields, value);
...@@ -96,11 +100,15 @@ public class EntityUtils { ...@@ -96,11 +100,15 @@ public class EntityUtils {
} }
// 默认属性 // 默认属性
String[] fields = {"updName","updUser","updHost","updTime"}; String[] fields = {"updName", "updUser", "updHost", "updTime"};
Field field = ReflectionUtils.getAccessibleField(entity, "updTime"); Field field = ReflectionUtils.getAccessibleField(entity, "updTime");
Object [] value = null; Object [] value = null;
if(field!=null&&field.getType().equals(Date.class)){ if(field!=null&&field.getType().equals(Date.class)){
value = new Object []{name,id,hostIp,new Date()}; value = new Object []{name,id,hostIp, new Date()};
}else if(field!=null&&field.getType().equals(Long.class)) {
value = new Object []{name,id,hostIp, System.currentTimeMillis()};
}else {
value = new Object []{name,id,hostIp, null};
} }
// 填充默认属性值 // 填充默认属性值
setDefaultValues(entity, fields, value); setDefaultValues(entity, fields, value);
......
...@@ -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/vehicle?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:
......
...@@ -3,6 +3,8 @@ package ${package}.entity; ...@@ -3,6 +3,8 @@ package ${package}.entity;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
#if(${hasBigDecimal}) #if(${hasBigDecimal})
import java.math.BigDecimal; import java.math.BigDecimal;
#end #end
...@@ -15,6 +17,7 @@ import java.math.BigDecimal; ...@@ -15,6 +17,7 @@ import java.math.BigDecimal;
* @email ${email} * @email ${email}
* @date ${datetime} * @date ${datetime}
*/ */
@Data
@Table(name = "${tableName}") @Table(name = "${tableName}")
public class ${className} implements Serializable { public class ${className} implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -23,27 +26,30 @@ public class ${className} implements Serializable { ...@@ -23,27 +26,30 @@ public class ${className} implements Serializable {
#if($column.columnName == $pk.columnName) #if($column.columnName == $pk.columnName)
//$column.comments //$column.comments
@Id @Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("$column.comments")
private $column.attrType $column.attrname; private $column.attrType $column.attrname;
#else #else
//$column.comments //$column.comments
@Column(name = "$column.columnName") @Column(name = "$column.columnName")
@ApiModelProperty(value = "$column.comments"#if($column.columnName == "crt_time"||$column.columnName == "upd_time"), hidden = true #end)
private $column.attrType $column.attrname; private $column.attrType $column.attrname;
#end #end
#end #end
#foreach ($column in $columns) ###foreach ($column in $columns)
/** ## /**
* 设置:${column.comments} ## * 设置:${column.comments}
*/ ## */
public void set${column.attrName}($column.attrType $column.attrname) { ## public void set${column.attrName}($column.attrType $column.attrname) {
this.$column.attrname = $column.attrname; ## this.$column.attrname = $column.attrname;
} ## }
/** ## /**
* 获取:${column.comments} ## * 获取:${column.comments}
*/ ## */
public $column.attrType get${column.attrName}() { ## public $column.attrType get${column.attrName}() {
return $column.attrname; ## return $column.attrname;
} ## }
#end ###end
} }
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<module>xx-third-party</module> <module>xx-third-party</module>
<module>xx-third-party-api</module> <module>xx-third-party-api</module>
<module>vehicle</module> <module>vehicle</module>
<module>application</module> <!-- <module>application</module>-->
<module>xx-common</module> <module>xx-common</module>
<module>xx-order</module> <module>xx-order</module>
<module>xx-vehicle</module> <module>xx-vehicle</module>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<poi.version>3.15</poi.version> <poi.version>3.15</poi.version>
<version.swagger>2.7.0</version.swagger>
</properties> </properties>
<dependencies> <dependencies>
...@@ -88,5 +89,11 @@ ...@@ -88,5 +89,11 @@
<artifactId>jpinyin</artifactId> <artifactId>jpinyin</artifactId>
<version>1.1.8</version> <version>1.1.8</version>
</dependency> </dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.13</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<groupId>com.xxfc.platform</groupId> <groupId>com.xxfc.platform</groupId>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging> <packaging>pom</packaging>
<artifactId>order</artifactId> <artifactId>xx-order</artifactId>
<modules> <modules>
<module>xx-order-server</module> <module>xx-order-server</module>
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import com.github.wxiaoqi.security.common.entity.BaseEntity;
import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
/** /**
* *
* *
* @author zjw * @author zjw
* @email nishijjo@qq.com * @email nishijjo@qq.com
* @date 2019-05-15 21:30:33 * @date 2019-05-24 21:56:10
*/ */
@Table(name = "base_order") @Table(name = "base_order")
@Data public class BaseOrder implements Serializable {
public class BaseOrder extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
//主键
@Id
@ApiModelProperty("主键")
private Integer id;
//订单号
@Column(name = "no")
@ApiModelProperty(value = "订单号")
private String no;
//订单类型
@Column(name = "type")
@ApiModelProperty(value = "订单类型")
private Integer type;
//订单详情id
@Column(name = "detail_id")
@ApiModelProperty(value = "订单详情id")
private Integer detailId;
//订单状态
@Column(name = "status")
@ApiModelProperty(value = "订单状态")
private Integer status;
//商品价格
@Column(name = "product_amount")
@ApiModelProperty(value = "商品价格")
private BigDecimal productAmount;
//实际价格
@Column(name = "order_amount")
@ApiModelProperty(value = "实际价格")
private BigDecimal orderAmount;
//详情json信息
@Column(name = "detail_json")
@ApiModelProperty(value = "详情json信息")
private String detailJson;
//第三方类型(支付渠道)
@Column(name = "third_type")
@ApiModelProperty(value = "第三方类型(支付渠道)")
private Integer thirdType;
//流水号
@Column(name = "out_trade_no")
@ApiModelProperty(value = "流水号")
private String outTradeNo;
//创建时间
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Date crtTime;
//创建者id
@Column(name = "crt_user")
@ApiModelProperty(value = "创建者id")
private String crtUser;
//创建者名称
@Column(name = "crt_name")
@ApiModelProperty(value = "创建者名称")
private String crtName;
//创建者ip
@Column(name = "crt_host")
@ApiModelProperty(value = "创建者ip")
private String crtHost;
//更新时间
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Date updTime;
//更新者id
@Column(name = "upd_user")
@ApiModelProperty(value = "更新者id")
private String updUser;
//更新者名称
@Column(name = "upd_name")
@ApiModelProperty(value = "更新者名称")
private String updName;
//更新者ip
@Column(name = "upd_host")
@ApiModelProperty(value = "更新者ip")
private String updHost;
//主键 /**
@Id * 设置:主键
private Integer id; */
public void setId(Integer id) {
//订单号 this.id = id;
@Column(name = "no") }
private String no; /**
* 获取:主键
//订单类型 */
@Column(name = "type") public Integer getId() {
private Integer type; return id;
}
//订单详情id /**
@Column(name = "detail_id") * 设置:订单号
private Integer detailId; */
public void setNo(String no) {
//订单状态 this.no = no;
@Column(name = "status") }
private Integer status; /**
* 获取:订单号
//商品价格 */
@Column(name = "product_amount") public String getNo() {
private BigDecimal productAmount; return no;
}
//实际价格 /**
@Column(name = "order_amount") * 设置:订单类型
private BigDecimal orderAmount; */
public void setType(Integer type) {
//详情json信息 this.type = type;
@Column(name = "detail_json") }
private String detailJson; /**
* 获取:订单类型
//第三方类型(支付渠道) */
@Column(name = "third_type") public Integer getType() {
private Integer thirdType; return type;
}
//流水号 /**
@Column(name = "out_trade_no") * 设置:订单详情id
private String outTradeNo; */
public void setDetailId(Integer detailId) {
//创建时间 this.detailId = detailId;
@Column(name = "crt_time") }
private Date crtTime; /**
* 获取:订单详情id
//创建者id */
@Column(name = "crt_user") public Integer getDetailId() {
private String crtUser; return detailId;
}
//创建者名称 /**
@Column(name = "crt_name") * 设置:订单状态
private String crtName; */
public void setStatus(Integer status) {
//创建者ip this.status = status;
@Column(name = "crt_host") }
private String crtHost; /**
* 获取:订单状态
//更新时间 */
@Column(name = "upd_time") public Integer getStatus() {
private Date updTime; return status;
}
//更新者id /**
@Column(name = "upd_user") * 设置:商品价格
private String updUser; */
public void setProductAmount(BigDecimal productAmount) {
//更新者名称 this.productAmount = productAmount;
@Column(name = "upd_name") }
private String updName; /**
* 获取:商品价格
//更新者ip */
@Column(name = "upd_host") public BigDecimal getProductAmount() {
private String updHost; return productAmount;
}
/**
* 设置:实际价格
*/
public void setOrderAmount(BigDecimal orderAmount) {
this.orderAmount = orderAmount;
}
/**
* 获取:实际价格
*/
public BigDecimal getOrderAmount() {
return orderAmount;
}
/**
* 设置:详情json信息
*/
public void setDetailJson(String detailJson) {
this.detailJson = detailJson;
}
/**
* 获取:详情json信息
*/
public String getDetailJson() {
return detailJson;
}
/**
* 设置:第三方类型(支付渠道)
*/
public void setThirdType(Integer thirdType) {
this.thirdType = thirdType;
}
/**
* 获取:第三方类型(支付渠道)
*/
public Integer getThirdType() {
return thirdType;
}
/**
* 设置:流水号
*/
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
/**
* 获取:流水号
*/
public String getOutTradeNo() {
return outTradeNo;
}
/**
* 设置:创建时间
*/
public void setCrtTime(Date crtTime) {
this.crtTime = crtTime;
}
/**
* 获取:创建时间
*/
public Date getCrtTime() {
return crtTime;
}
/**
* 设置:创建者id
*/
public void setCrtUser(String crtUser) {
this.crtUser = crtUser;
}
/**
* 获取:创建者id
*/
public String getCrtUser() {
return crtUser;
}
/**
* 设置:创建者名称
*/
public void setCrtName(String crtName) {
this.crtName = crtName;
}
/**
* 获取:创建者名称
*/
public String getCrtName() {
return crtName;
}
/**
* 设置:创建者ip
*/
public void setCrtHost(String crtHost) {
this.crtHost = crtHost;
}
/**
* 获取:创建者ip
*/
public String getCrtHost() {
return crtHost;
}
/**
* 设置:更新时间
*/
public void setUpdTime(Date updTime) {
this.updTime = updTime;
}
/**
* 获取:更新时间
*/
public Date getUpdTime() {
return updTime;
}
/**
* 设置:更新者id
*/
public void setUpdUser(String updUser) {
this.updUser = updUser;
}
/**
* 获取:更新者id
*/
public String getUpdUser() {
return updUser;
}
/**
* 设置:更新者名称
*/
public void setUpdName(String updName) {
this.updName = updName;
}
/**
* 获取:更新者名称
*/
public String getUpdName() {
return updName;
}
/**
* 设置:更新者ip
*/
public void setUpdHost(String updHost) {
this.updHost = updHost;
}
/**
* 获取:更新者ip
*/
public String getUpdHost() {
return updHost;
}
} }
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
/**
* 租车订单详情
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-16 14:36:45
*/
@Table(name = "order_rent_car")
public class OrderRentCar implements Serializable {
private static final long serialVersionUID = 1L;
//主键
@Id
private Integer id;
//基础订单id
@Column(name = "order_id")
private Integer orderId;
//创建时间
@Column(name = "crt_time")
private Date crtTime;
//创建者id
@Column(name = "crt_user")
private String crtUser;
//创建者名称
@Column(name = "crt_name")
private String crtName;
//varchar(255)
@Column(name = "crt_host")
private String crtHost;
//datetime
@Column(name = "upd_time")
private Date updTime;
//varchar(255)
@Column(name = "upd_user")
private String updUser;
//varchar(255)
@Column(name = "upd_name")
private String updName;
//varchar(255)
@Column(name = "upd_host")
private String updHost;
/**
* 设置:主键
*/
public void setId(Integer id) {
this.id = id;
}
/**
* 获取:主键
*/
public Integer getId() {
return id;
}
/**
* 设置:基础订单id
*/
public void setOrderId(Integer orderId) {
this.orderId = orderId;
}
/**
* 获取:基础订单id
*/
public Integer getOrderId() {
return orderId;
}
/**
* 设置:创建时间
*/
public void setCrtTime(Date crtTime) {
this.crtTime = crtTime;
}
/**
* 获取:创建时间
*/
public Date getCrtTime() {
return crtTime;
}
/**
* 设置:创建者id
*/
public void setCrtUser(String crtUser) {
this.crtUser = crtUser;
}
/**
* 获取:创建者id
*/
public String getCrtUser() {
return crtUser;
}
/**
* 设置:创建者名称
*/
public void setCrtName(String crtName) {
this.crtName = crtName;
}
/**
* 获取:创建者名称
*/
public String getCrtName() {
return crtName;
}
/**
* 设置:varchar(255)
*/
public void setCrtHost(String crtHost) {
this.crtHost = crtHost;
}
/**
* 获取:varchar(255)
*/
public String getCrtHost() {
return crtHost;
}
/**
* 设置:datetime
*/
public void setUpdTime(Date updTime) {
this.updTime = updTime;
}
/**
* 获取:datetime
*/
public Date getUpdTime() {
return updTime;
}
/**
* 设置:varchar(255)
*/
public void setUpdUser(String updUser) {
this.updUser = updUser;
}
/**
* 获取:varchar(255)
*/
public String getUpdUser() {
return updUser;
}
/**
* 设置:varchar(255)
*/
public void setUpdName(String updName) {
this.updName = updName;
}
/**
* 获取:varchar(255)
*/
public String getUpdName() {
return updName;
}
/**
* 设置:varchar(255)
*/
public void setUpdHost(String updHost) {
this.updHost = updHost;
}
/**
* 获取:varchar(255)
*/
public String getUpdHost() {
return updHost;
}
}
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-05-24 21:56:10
*/
@Data
@Table(name = "order_rent_vehicle_item")
public class OrderRentVehicleItem implements Serializable {
private static final long serialVersionUID = 1L;
//主键
@Id
@ApiModelProperty("主键")
private Integer id;
//基础订单id
@Column(name = "order_id")
@ApiModelProperty(value = "基础订单id")
private Integer orderId;
//创建时间
@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;
//车辆id
@Column(name = "vehicle_id")
@ApiModelProperty(value = "车辆id")
private Integer vehicleId;
//取车城市
@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;
//司机类型 1--公司司机;2--自己司机
@Column(name = "driver_type")
@ApiModelProperty(value = "司机类型 1--公司司机;2--自己司机")
private Integer driverType;
//自己司机ids
@Column(name = "my_driver_ids")
@ApiModelProperty(value = "自己司机ids")
private String myDriverIds;
}
...@@ -6,7 +6,8 @@ import lombok.Data; ...@@ -6,7 +6,8 @@ import lombok.Data;
import java.util.List; import java.util.List;
@Data @Data
public class OrderVO<OrderDetail> { public class OrderVO {
//<OrderItem> {
BaseOrder baseOrder; BaseOrder baseOrder;
List<OrderDetail> orderDetails; // List<OrderItem> orderItems;
} }
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>order-server</artifactId> <artifactId>xx-order-server</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>order-server</name> <name>xx-order-server</name>
<description>订单管理</description> <description>订单管理</description>
<properties> <properties>
...@@ -28,34 +28,35 @@ ...@@ -28,34 +28,35 @@
</dependencies> </dependencies>
<build> <build>
<finalName>order-server</finalName> <finalName>xx-order-server</finalName>
<plugins> <plugins>
<!-- 此插件用来生成通用mapper的代码 --> <!-- &lt;!&ndash; 此插件用来生成通用mapper的代码 &ndash;&gt;-->
<plugin> <!-- <plugin>-->
<groupId>org.mybatis.generator</groupId> <!-- <groupId>org.mybatis.generator</groupId>-->
<artifactId>mybatis-generator-maven-plugin</artifactId> <!-- <artifactId>mybatis-generator-maven-plugin</artifactId>-->
<version>1.3.2</version> <!-- <version>1.3.2</version>-->
<configuration> <!-- <configuration>-->
<configurationFile> <!-- <configurationFile>-->
${basedir}/src/main/resources/builder/generatorConfig.xml <!-- ${basedir}/src/main/resources/builder/generatorConfig.xml-->
</configurationFile> <!-- </configurationFile>-->
<overwrite>true</overwrite> <!-- <overwrite>true</overwrite>-->
<verbose>true</verbose> <!-- <verbose>true</verbose>-->
</configuration> <!-- </configuration>-->
<dependencies> <!-- <dependencies>-->
<dependency> <!-- <dependency>-->
<groupId>mysql</groupId> <!-- <groupId>mysql</groupId>-->
<artifactId>mysql-connector-java</artifactId> <!-- <artifactId>mysql-connector-java</artifactId>-->
<version>5.1.30</version> <!-- <version>5.1.30</version>-->
<scope>runtime</scope> <!-- <scope>runtime</scope>-->
</dependency> <!-- </dependency>-->
<dependency> <!-- <dependency>-->
<groupId>tk.mybatis</groupId> <!-- <groupId>tk.mybatis</groupId>-->
<artifactId>mapper</artifactId> <!-- <artifactId>mapper</artifactId>-->
<version>${mapper.version}</version> <!-- <version>${mapper.version}</version>-->
</dependency> <!-- </dependency>-->
</dependencies> <!-- </dependencies>-->
</plugin> <!-- </plugin>-->
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
...@@ -68,30 +69,6 @@ ...@@ -68,30 +69,6 @@
<target>1.8</target> <target>1.8</target>
</configuration> </configuration>
</plugin> </plugin>
<!--<plugin>-->
<!--<groupId>com.spotify</groupId>-->
<!--<artifactId>docker-maven-plugin</artifactId>-->
<!--<version>${docker.plugin.version}</version>-->
<!--<executions>-->
<!--<execution>-->
<!--<phase>package</phase>-->
<!--<goals>-->
<!--<goal>build</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<!--<configuration>-->
<!--<imageName>${docker.image.prefix}/${project.build.finalName}</imageName>-->
<!--<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->
<!--<resources>-->
<!--<resource>-->
<!--<targetPath>/</targetPath>-->
<!--<directory>${project.build.directory}</directory>-->
<!--<include>${project.build.finalName}.jar</include>-->
<!--</resource>-->
<!--</resources>-->
<!--</configuration>-->
<!--</plugin>-->
</plugins> </plugins>
</build> </build>
</project> </project>
\ No newline at end of file
...@@ -16,8 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; ...@@ -16,8 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAceAuthClient @EnableAceAuthClient
@EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign", "com.xxfc.platform.order.feign"}) @EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign", "com.xxfc.platform.order.feign"})
@EnableAceCache @EnableAceCache
@MapperScan("com.xxfc.platform.order.mapper") @tk.mybatis.spring.annotation.MapperScan(basePackages = "com.xxfc.platform.order.mapper")
@EnableSwagger2Doc
public class OrderApplication { public class OrderApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
package com.xxfc.platform.order.biz;
import com.xxfc.platform.order.mapper.OrderRentCarMapper;
import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderRentCar;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
/**
* 租车订单详情
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-16 14:36:45
*/
@Service
public class OrderRentCarBiz extends BaseBiz<OrderRentCarMapper,OrderRentCar> {
}
\ No newline at end of file
package com.xxfc.platform.order.biz;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.mapper.OrderRentVehicleItemMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderRentVehicleItem;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional;
/**
* 租车订单详情
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-16 14:36:45
*/
@Service
public class OrderRentVehicleBiz extends BaseBiz<OrderRentVehicleItemMapper, OrderRentVehicleItem> {
@Autowired
BaseOrderBiz baseOrderBiz;
@Transactional
public void createOrder(OrderRentVehicleItem item) {
BaseOrder baseOrder = baseOrderBiz.createOrder();
item.setOrderId(baseOrder.getId());
insertSelective(item);
}
}
\ No newline at end of file
package com.xxfc.platform.order.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestConfiguration {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
package com.xxfc.platform.order.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
/**
* @Description : swagger配置配置
* @Author : Mars
* @Date : 2017年9月6日
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/**
* Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
* swagger groups i.e. same code base multiple swagger resource listings.
*/
@Bean
public Docket customDocket(){
ParameterBuilder ticketPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<Parameter>();
ticketPar.name("Authorization").description("user Authorization")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build(); //header中的ticket参数非必填,传空也可以
pars.add(ticketPar.build()); //根据每个方法名也知道当前方法在设置什么参数
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.xxfc.platform.order"))
//.apis(RequestHandlerSelectors.any())
.build()
.globalOperationParameters(pars)
.apiInfo(apiInfo());
}
ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("api swagger document")
.description("前后端联调swagger api 文档")
.version("2.1.5.5")
.build();
}
}
\ No newline at end of file
package com.xxfc.platform.order.config;
import com.github.wxiaoqi.security.auth.client.interceptor.ServiceAuthRestInterceptor;
import com.github.wxiaoqi.security.auth.client.interceptor.UserAuthRestInterceptor;
import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.Collections;
@Configuration("orderWebConfig")
@Primary
public class WebConfiguration implements WebMvcConfigurer {
@Bean
GlobalExceptionHandler getGlobalExceptionHandler() {
return new GlobalExceptionHandler();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getServiceAuthRestInterceptor()).
addPathPatterns(getIncludePathPatterns()).addPathPatterns("/3p/**");
registry.addInterceptor(getUserAuthRestInterceptor()).
addPathPatterns(getIncludePathPatterns());
}
@Bean
ServiceAuthRestInterceptor getServiceAuthRestInterceptor() {
return new ServiceAuthRestInterceptor();
}
@Bean
UserAuthRestInterceptor getUserAuthRestInterceptor() {
return new UserAuthRestInterceptor();
}
/**
* 需要用户和服务认证判断的路径
* @return
*/
private ArrayList<String> getIncludePathPatterns() {
ArrayList<String> list = new ArrayList<>();
String[] urls = {
"/3p/**"
};
Collections.addAll(list, urls);
return list;
}
}
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderRentCar; import com.xxfc.platform.order.entity.OrderRentVehicleItem;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
/** /**
...@@ -10,6 +10,6 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -10,6 +10,6 @@ import tk.mybatis.mapper.common.Mapper;
* @email nishijjo@qq.com * @email nishijjo@qq.com
* @date 2019-05-16 14:36:45 * @date 2019-05-16 14:36:45
*/ */
public interface OrderRentCarMapper extends Mapper<OrderRentCar> { public interface OrderRentVehicleItemMapper extends Mapper<OrderRentVehicleItem> {
} }
package com.xxfc.platform.order.rest; package com.xxfc.platform.order.rest;
import cn.hutool.db.sql.Order;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.CommonBaseController; import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.xxfc.platform.order.entity.OrderRentCar; import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.service.OrderRentCarService; import com.xxfc.platform.order.entity.OrderRentVehicleItem;
import com.xxfc.platform.order.service.OrderRentVehicleService;
import com.xxfc.platform.order.vo.OrderVO; import com.xxfc.platform.order.vo.OrderVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -13,16 +18,26 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -13,16 +18,26 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
@Controller @Controller
@RequestMapping("orderRentCar") @RequestMapping("orderRentVehicle")
public class OrderRentCarController extends CommonBaseController { @Api(value="租车订单",tags={"租车订单"})
public class OrderRentVehicleController extends CommonBaseController {
@Autowired @Autowired
OrderRentCarService orderRentCarService; OrderRentVehicleService orderRentCarService;
@Autowired
OrderRentVehicleBiz orderRentVehicleBiz;
public class AAA {
@ApiModelProperty
String sss;
}
@RequestMapping(value = "add",method = RequestMethod.POST) @RequestMapping(value = "add",method = RequestMethod.POST)
@ResponseBody @ResponseBody
public ObjectRestResponse<OrderRentCar> add(@RequestBody OrderVO<OrderRentCar> vo){ @ApiOperation(value = "确认租车订单")
orderRentCarService.createOrder(vo); public ObjectRestResponse<OrderRentVehicleItem> add(@RequestBody OrderRentVehicleItem item){
return new ObjectRestResponse<OrderRentCar>(); orderRentVehicleBiz.createOrder(item);
return new ObjectRestResponse<OrderRentVehicleItem>();
} }
} }
\ No newline at end of file
...@@ -2,23 +2,27 @@ package com.xxfc.platform.order.service; ...@@ -2,23 +2,27 @@ package com.xxfc.platform.order.service;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.biz.BaseOrderBiz; import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.vo.OrderVO; import com.xxfc.platform.order.vo.OrderVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
public abstract class AbstractOrderHandle<Biz extends BaseBiz, VO extends OrderVO> implements OrderHandle { public abstract class AbstractOrderHandle<Biz extends BaseBiz> implements OrderHandle {
@Autowired @Autowired
protected Biz DetailOrderBiz; protected Biz detailOrderBiz;
@Autowired @Autowired
protected BaseOrderBiz baseOrderBiz; protected BaseOrderBiz baseOrderBiz;
public void createOrder(VO vo) { // public void createOrder(VO vo) {
baseOrderBiz.insertSelective(vo.getBaseOrder()); // baseOrderBiz.insertSelective(vo.getBaseOrder());
} // }
public void modifyOrder(VO vo) { //public void createOrder(List<OrderVO> o)
baseOrderBiz.updateSelectiveById(vo.getBaseOrder());
}
// public void modifyOrder(VO vo) {
// baseOrderBiz.updateSelectiveById(vo.getBaseOrder());
// }
// abstract void createOrderMakeUp(BaseOrder baseOrder);
} }
package com.xxfc.platform.order.service;
import org.springframework.stereotype.Service;
@Service
public class OrderRentCarService extends AbstractOrderHandle {
}
package com.xxfc.platform.order.service;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRentVehicleItem;
import com.xxfc.platform.order.vo.OrderVO;
import org.springframework.stereotype.Service;
@Service
public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicleBiz> {
// @Override
// public void createOrder(OrderVO<OrderRentVehicleItem> vo) {
// super.createOrder(vo);
// this.detailOrderBiz.insertSelective(vo.getOrderItems().get(0));
// }
// public void createOrder(OrderRentVehicleItem item) {
// super.createOrder();
// this.detailOrderBiz.insertSelective(item);
// }
// @Override
// void createOrderMakeUp(BaseOrder order) {
// OrderRentVehicleItem orderRentVehicleItem
// }
}
server:
port: 8091
tomcat:
uri-encoding: UTF-8
logging:
level:
com.xxfc.platform.order.mapper: debug
spring:
application:
name: order-server
datasource:
database: xxfc_order
name: test
url: jdbc:mysql://${MYSQL_HOST:10.5.52.3}:${MYSQL_PORT:3306}/xxfc_order?useUnicode=true&characterEncoding=UTF8
username: root
password: sslcloud123*()
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
cloud:
nacos:
discovery:
server-addr: localhost:8848
sentinel:
transport:
dashboard: localhost:8080
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
default-property-inclusion: non_null
#--------------------以下为redis相关配置----------------------
redis:
database: 2
host: ${REDIS_HOST:10.5.52.3}
port: ${REDIS_PORT:6379}
password: xx2019fc
jedis:
pool:
max-active: 20
#--------------------以下为mybatis相关配置----------------------
mybatis:
type-aliases-package: com.xxfc.platform.order.entity
mapper-locations: classpath*:mapper/*.xml
basepackage: com.xxfc.platform.order.mapper
xmlLocation: classpath*:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
#--------------------以下为开源项目验证相关配置----------------------
auth:
serviceId: order-server
user:
token-header: Authorization
client:
token-header: x-client-token
#不填则默认读取spring.application.name
id: order-server
secret: 123456
#--------------------#redis-cache 相关----------------------
redis:
pool:
maxActive: 300
maxIdle: 100
maxWait: 1000
host: ${REDIS_HOST:10.5.52.3}
port: ${REDIS_PORT:6379}
password: xx2019fc
timeout: 2000
# 服务或应用名
sysName: order-server
enable: true
database: 0
...@@ -2,7 +2,7 @@ spring: ...@@ -2,7 +2,7 @@ spring:
profiles: profiles:
active: dev active: dev
application: application:
name: order-server name: xx-order
cloud: cloud:
nacos: nacos:
config: config:
...@@ -15,10 +15,10 @@ spring: ...@@ -15,10 +15,10 @@ spring:
config: config:
server-addr: 127.0.0.1:8848 server-addr: 127.0.0.1:8848
--- #---
spring: #spring:
profiles: pro # profiles: pro
cloud: # cloud:
nacos: # nacos:
config: # config:
server-addr: 10.5.52.2:8848 # server-addr: 10.5.52.2:8848
\ No newline at end of file \ No newline at end of file
<?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.OrderRentCarMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.order.entity.OrderRentCar" id="orderRentCarMap">
<result property="id" column="id"/>
<result property="orderId" column="order_id"/>
<result property="crtTime" column="crt_time"/>
<result property="crtUser" column="crt_user"/>
<result property="crtName" column="crt_name"/>
<result property="crtHost" column="crt_host"/>
<result property="updTime" column="upd_time"/>
<result property="updUser" column="upd_user"/>
<result property="updName" column="upd_name"/>
<result property="updHost" column="upd_host"/>
</resultMap>
</mapper>
\ No newline at end of file
<?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.OrderRentVehicleItemMapper">
</mapper>
\ No newline at end of file
...@@ -16,5 +16,6 @@ public class UsableVeicleDTO { ...@@ -16,5 +16,6 @@ public class UsableVeicleDTO {
String endDate; String endDate;
String priceStart; String priceStart;
String priceEnd; String priceEnd;
String catasStr;
List<Integer> catas; List<Integer> catas;
} }
\ No newline at end of file
...@@ -20,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; ...@@ -20,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
public class VehicleApplication { public class VehicleApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("123123");
SpringApplication.run(VehicleApplication.class, args); SpringApplication.run(VehicleApplication.class, args);
} }
......
...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.vo.*; ...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.vo.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.DateTimeFormatter;
...@@ -30,7 +31,10 @@ import org.springframework.http.ResponseEntity; ...@@ -30,7 +31,10 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/vehicleInfo") @RequestMapping("/vehicleInfo")
...@@ -261,8 +265,9 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -261,8 +265,9 @@ public class VehicleController extends BaseController<VehicleBiz> {
public ObjectRestResponse<PageDataVO<UsableVehicleVO>> rentUsableVehicle(UsableVeicleDTO dto) throws Exception { public ObjectRestResponse<PageDataVO<UsableVehicleVO>> rentUsableVehicle(UsableVeicleDTO dto) throws Exception {
//根据时间 获得 可用车辆 //根据时间 获得 可用车辆
//结合车型 //结合车型
//vehicleBiz.searchUsable(dto); if(StringUtils.isNotBlank(dto.getCatasStr())) {
dto.setCatas(Pattern.compile(",").splitAsStream(dto.getCatasStr()).map((s)-> Integer.parseInt(s)).collect(Collectors.toList()));
}
return new ObjectRestResponse<>().data(vehicleBiz.searchUsable(dto)).rel(true); return new ObjectRestResponse<>().data(vehicleBiz.searchUsable(dto)).rel(true);
} }
} }
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