Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
4690d0a7
Commit
4690d0a7
authored
Jun 01, 2019
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改代码
parent
5d3ce359
Changes
42
Hide whitespace changes
Inline
Side-by-side
Showing
42 changed files
with
773 additions
and
89 deletions
+773
-89
OrderUtil.java
...va/com/github/wxiaoqi/security/common/util/OrderUtil.java
+24
-5
pom.xml
ace-gate/pom.xml
+18
-0
GatewayServerBootstrap.java
.../github/wxiaoqi/security/gate/GatewayServerBootstrap.java
+3
-1
GatewayConfig.java
...om/github/wxiaoqi/security/gate/config/GatewayConfig.java
+1
-0
SwaggerProvider.java
.../github/wxiaoqi/security/gate/config/SwaggerProvider.java
+56
-0
AccessGatewayFilter.java
...hub/wxiaoqi/security/gate/filter/AccessGatewayFilter.java
+4
-2
SwaggerHandler.java
.../github/wxiaoqi/security/gate/handler/SwaggerHandler.java
+45
-0
pom.xml
xx-common/xx-common-platform-web/pom.xml
+1
-1
pom.xml
xx-order/xx-order-api/pom.xml
+15
-0
OrderStatusEnum.java
...xfc/platform/order/contant/enumerate/OrderStatusEnum.java
+55
-0
BaseOrder.java
...c/main/java/com/xxfc/platform/order/entity/BaseOrder.java
+19
-0
OrderRentVehicleDetail.java
...om/xxfc/platform/order/entity/OrderRentVehicleDetail.java
+6
-1
OrderDetail.java
...ava/com/xxfc/platform/order/entity/inter/OrderDetail.java
+5
-0
AddRentVehicleDTO.java
...in/java/com/xxfc/platform/order/vo/AddRentVehicleDTO.java
+79
-11
OrderPageVO.java
...src/main/java/com/xxfc/platform/order/vo/OrderPageVO.java
+1
-1
RentVehicleBO.java
.../java/com/xxfc/platform/order/vo/order/RentVehicleBO.java
+3
-0
RentVehicleOrderPayVO.java
...com/xxfc/platform/order/vo/pay/RentVehicleOrderPayVO.java
+28
-0
OrderPriceVO.java
...n/java/com/xxfc/platform/order/vo/price/OrderPriceVO.java
+2
-16
RentVehiclePriceVO.java
.../com/xxfc/platform/order/vo/price/RentVehiclePriceVO.java
+2
-0
SwaggerConfig.java
...in/java/com/xxfc/platform/order/config/SwaggerConfig.java
+6
-1
WebConfiguration.java
...java/com/xxfc/platform/order/config/WebConfiguration.java
+8
-1
CorsInterceptor.java
.../com/xxfc/platform/order/interceptor/CorsInterceptor.java
+31
-0
BaseOrderController.java
...ava/com/xxfc/platform/order/rest/BaseOrderController.java
+107
-2
OrderRentVehicleController.java
.../xxfc/platform/order/rest/OrderRentVehicleController.java
+2
-1
AbstractOrderHandle.java
.../com/xxfc/platform/order/service/AbstractOrderHandle.java
+18
-6
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+23
-3
BaseOrderMapper.xml
...rder-server/src/main/resources/mapper/BaseOrderMapper.xml
+7
-2
OrderRentVehicleDetailMapper.xml
...rc/main/resources/mapper/OrderRentVehicleDetailMapper.xml
+8
-2
PayChannelEnum.java
...platform/universal/constant/enumerate/PayChannelEnum.java
+45
-0
OrderPayVo.java
.../main/java/com/xxfc/platform/universal/vo/OrderPayVo.java
+1
-1
OrderPayBiz.java
...ain/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
+1
-1
OrderRefundBiz.java
.../java/com/xxfc/platform/universal/biz/OrderRefundBiz.java
+4
-4
VehicleFeign.java
...in/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
+3
-2
BookVehicleVo.java
...main/java/com/xxfc/platform/vehicle/vo/BookVehicleVo.java
+9
-1
RentVehicleBookDTO.java
...java/com/xxfc/platform/vehicle/vo/RentVehicleBookDTO.java
+44
-0
UsableVehicleModelVO.java
...va/com/xxfc/platform/vehicle/vo/UsableVehicleModelVO.java
+1
-4
VehicleBiz.java
...c/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
+33
-4
SwaggerConfig.java
.../java/com/xxfc/platform/vehicle/config/SwaggerConfig.java
+5
-0
VehicleMapper.java
.../java/com/xxfc/platform/vehicle/mapper/VehicleMapper.java
+4
-2
VehicleModelMapper.java
.../com/xxfc/platform/vehicle/mapper/VehicleModelMapper.java
+0
-3
VehicleController.java
...ava/com/xxfc/platform/vehicle/rest/VehicleController.java
+21
-5
VehicleMapper.xml
...ehicle-server/src/main/resources/mapper/VehicleMapper.xml
+25
-6
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/OrderUtil.java
View file @
4690d0a7
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.StrUtil
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Random
;
public
class
OrderUtil
{
public
static
final
String
DEFAULT_MID
=
"00"
;
public
static
final
String
APP_MID
=
"01"
;
static
Date
today
=
new
Date
();
static
int
orderIndex
=
0
;
@SuppressWarnings
(
"deprecation"
)
private
static
String
getIndex
()
{
private
static
String
getIndex
(
String
midFix
)
{
if
(
StrUtil
.
isBlank
(
midFix
))
{
midFix
=
DEFAULT_MID
;
}
Date
n
=
new
Date
();
SimpleDateFormat
outFormat
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
String
currTime
=
outFormat
.
format
(
n
);
...
...
@@ -27,10 +35,10 @@ public class OrderUtil {
today
=
n
;
orderIndex
=
1
;
}
if
(
orderIndex
>
9999
99
)
{
if
(
orderIndex
>
9999
)
{
orderIndex
=
1
;
}
String
indexString
=
String
.
format
(
"%s%
06d"
,
currTime
,
orderIndex
);
String
indexString
=
String
.
format
(
"%s%
s%04d"
,
currTime
,
midFix
,
orderIndex
);
return
indexString
;
}
...
...
@@ -41,7 +49,18 @@ public class OrderUtil {
* @return
*/
public
static
String
GetOrderNumber
(
String
preFixString
)
{
String
orderNumberString
=
preFixString
+
getIndex
();
String
orderNumberString
=
preFixString
+
getIndex
(
""
);
return
orderNumberString
;
}
/**
* 添加中间代号数字区别,放前面不好看
*
* @param preFixString
* @return
*/
public
static
String
GetOrderNumber
(
String
preFixString
,
String
midFix
)
{
String
orderNumberString
=
preFixString
+
getIndex
(
midFix
);
return
orderNumberString
;
}
...
...
ace-gate/pom.xml
View file @
4690d0a7
...
...
@@ -128,6 +128,24 @@
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-discovery
</artifactId>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
2.9.2
</version>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
2.9.2
</version>
</dependency>
<!-- <!– swagger –>-->
<!-- <dependency>-->
<!-- <groupId>com.spring4all</groupId>-->
<!-- <artifactId>swagger-spring-boot-starter</artifactId>-->
<!-- <version>1.7.1.RELEASE</version>-->
<!-- </dependency>-->
</dependencies>
<build>
<finalName>
ace-gate
</finalName>
...
...
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/GatewayServerBootstrap.java
View file @
4690d0a7
...
...
@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient;
import
com.github.wxiaoqi.security.gate.utils.DBLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
...
...
@@ -11,7 +12,8 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
* @author ace
* @create 2018/3/12.
*/
@SpringBootApplication
//@SpringBootApplication
@SpringCloudApplication
@EnableDiscoveryClient
@EnableAceAuthClient
@EnableFeignClients
({
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.gate.feign"
})
...
...
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/config/GatewayConfig.java
View file @
4690d0a7
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
config
;
import
com.github.wxiaoqi.security.gate.handler.RequestBodyRoutePredicateFactory
;
import
com.github.wxiaoqi.security.gate.handler.SwaggerHandler
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
...
...
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/config/SwaggerProvider.java
0 → 100644
View file @
4690d0a7
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
config
;
import
lombok.AllArgsConstructor
;
import
org.springframework.cloud.gateway.config.GatewayProperties
;
import
org.springframework.cloud.gateway.route.RouteLocator
;
import
org.springframework.cloud.gateway.support.NameUtils
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.stereotype.Component
;
import
springfox.documentation.swagger.web.SwaggerResource
;
import
springfox.documentation.swagger.web.SwaggerResourcesProvider
;
import
java.util.ArrayList
;
import
java.util.List
;
@Component
@Primary
@AllArgsConstructor
public
class
SwaggerProvider
implements
SwaggerResourcesProvider
{
public
static
final
String
API_URI
=
"/v2/api-docs"
;
private
final
RouteLocator
routeLocator
;
private
final
GatewayProperties
gatewayProperties
;
public
static
final
String
AUTH
=
"ace-auth"
;
@Override
public
List
<
SwaggerResource
>
get
()
{
List
<
SwaggerResource
>
resources
=
new
ArrayList
<>();
List
<
String
>
routes
=
new
ArrayList
<>();
//取出gateway的route
routeLocator
.
getRoutes
().
subscribe
(
route
->
{
routes
.
add
(
route
.
getId
());
}
);
//结合配置的route-路径(Path),和route过滤,只获取有效的route节点
gatewayProperties
.
getRoutes
().
stream
().
filter
(
routeDefinition
->
routes
.
contains
(
routeDefinition
.
getId
()))
.
forEach
(
routeDefinition
->
routeDefinition
.
getPredicates
().
stream
()
.
filter
(
predicateDefinition
->
(
"Path"
).
equalsIgnoreCase
(
predicateDefinition
.
getName
()))
.
forEach
(
predicateDefinition
->
{
if
(!
AUTH
.
equals
(
routeDefinition
.
getId
()))
{
resources
.
add
(
swaggerResource
(
routeDefinition
.
getId
(),
predicateDefinition
.
getArgs
().
get
(
NameUtils
.
GENERATED_NAME_PREFIX
+
"0"
)
.
replace
(
"/**"
,
API_URI
)));
}
}));
return
resources
;
}
private
SwaggerResource
swaggerResource
(
String
name
,
String
location
)
{
SwaggerResource
swaggerResource
=
new
SwaggerResource
();
swaggerResource
.
setName
(
name
);
swaggerResource
.
setLocation
(
location
);
swaggerResource
.
setSwaggerVersion
(
"2.0"
);
return
swaggerResource
;
}
}
\ No newline at end of file
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/AccessGatewayFilter.java
View file @
4690d0a7
...
...
@@ -249,8 +249,10 @@ public class AccessGatewayFilter implements GlobalFilter {
*/
private
boolean
isStartWith
(
String
requestUri
)
{
boolean
flag
=
false
;
if
(
requestUri
.
contains
(
GATE_WAY_UNAUTH
)){
return
true
;
for
(
String
s
:
GATE_WAY_UNAUTH
.
split
(
","
))
{
if
(
requestUri
.
contains
(
s
))
{
return
true
;
}
}
for
(
String
s
:
startWith
.
split
(
","
))
{
if
(
requestUri
.
startsWith
(
s
))
{
...
...
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/handler/SwaggerHandler.java
0 → 100644
View file @
4690d0a7
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
handler
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
reactor.core.publisher.Mono
;
import
springfox.documentation.swagger.web.*
;
import
java.util.Optional
;
@RestController
@RequestMapping
(
"/swagger-resources"
)
public
class
SwaggerHandler
{
@Autowired
(
required
=
false
)
private
SecurityConfiguration
securityConfiguration
;
@Autowired
(
required
=
false
)
private
UiConfiguration
uiConfiguration
;
private
final
SwaggerResourcesProvider
swaggerResources
;
@Autowired
public
SwaggerHandler
(
SwaggerResourcesProvider
swaggerResources
)
{
this
.
swaggerResources
=
swaggerResources
;
}
@GetMapping
(
"/configuration/security"
)
public
Mono
<
ResponseEntity
<
SecurityConfiguration
>>
securityConfiguration
()
{
return
Mono
.
just
(
new
ResponseEntity
<>(
Optional
.
ofNullable
(
securityConfiguration
).
orElse
(
SecurityConfigurationBuilder
.
builder
().
build
()),
HttpStatus
.
OK
));
}
@GetMapping
(
"/configuration/ui"
)
public
Mono
<
ResponseEntity
<
UiConfiguration
>>
uiConfiguration
()
{
return
Mono
.
just
(
new
ResponseEntity
<>(
Optional
.
ofNullable
(
uiConfiguration
).
orElse
(
UiConfigurationBuilder
.
builder
().
build
()),
HttpStatus
.
OK
));
}
@GetMapping
(
""
)
public
Mono
<
ResponseEntity
>
swaggerResources
()
{
return
Mono
.
just
((
new
ResponseEntity
<>(
swaggerResources
.
get
(),
HttpStatus
.
OK
)));
}
}
\ No newline at end of file
xx-common/xx-common-platform-web/pom.xml
View file @
4690d0a7
...
...
@@ -119,7 +119,7 @@
<dependency>
<groupId>
com.spring4all
</groupId>
<artifactId>
swagger-spring-boot-starter
</artifactId>
<version>
1.
6
.0.RELEASE
</version>
<version>
1.
8
.0.RELEASE
</version>
</dependency>
</dependencies>
...
...
xx-order/xx-order-api/pom.xml
View file @
4690d0a7
...
...
@@ -11,4 +11,19 @@
<version>
2.0-SNAPSHOT
</version>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-order-api
</artifactId>
<dependencies>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-vehicle-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-universal-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderStatusEnum.java
0 → 100644
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
;
import
java.util.HashMap
;
import
java.util.Map
;
public
enum
OrderStatusEnum
{
ORDER_DEL
(
0
,
"删除订单"
),
ORDER_CRT
(
1
,
"创建订单"
),
ORDER_CANCEL
(
2
,
"取消订单"
),
ORDER_UNPAY
(
3
,
"待支付"
),
ORDER_TOSTART
(
4
,
"待进行(待出行)"
),
;
/**
* 编码
*/
private
Integer
code
;
/**
* 类型描述
*/
private
String
desc
;
private
static
Map
<
Integer
,
String
>
codeAndDesc
=
new
HashMap
<
Integer
,
String
>();
//Maps.newHashMap();
// static{
// for(VehicleBookRecordStatus constantType : VehicleBookRecordStatus.values()){
// codeAndDesc.put(constantType.getCode(),constantType.getDesc());
// }
// }
OrderStatusEnum
(
Integer
code
,
String
desc
){
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
public
static
Boolean
exists
(
Integer
code
){
return
codeAndDesc
.
containsKey
(
code
);
}
}
\ No newline at end of file
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/BaseOrder.java
View file @
4690d0a7
...
...
@@ -55,6 +55,11 @@ public class BaseOrder implements Serializable {
@Column
(
name
=
"order_amount"
)
@ApiModelProperty
(
value
=
"订单价格"
)
private
BigDecimal
orderAmount
;
//实际价格
@Column
(
name
=
"real_amount"
)
@ApiModelProperty
(
value
=
"实际价格"
)
private
BigDecimal
realAmount
;
//详情json信息
@Column
(
name
=
"detail_json"
)
...
...
@@ -77,6 +82,20 @@ public class BaseOrder implements Serializable {
@Column
(
name
=
"user_id"
)
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userId
;
/**
* 订单图片
*/
@Column
(
name
=
"picture"
)
@ApiModelProperty
(
value
=
"订单图片"
)
private
String
picture
;
/**
* 订单图片
*/
@Column
(
name
=
"name"
)
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
//创建时间
@Column
(
name
=
"crt_time"
)
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderRentVehicleDetail.java
View file @
4690d0a7
...
...
@@ -28,6 +28,11 @@ public class OrderRentVehicleDetail implements Serializable{
@Column
(
name
=
"order_id"
)
@ApiModelProperty
(
value
=
"基础订单id"
)
private
Integer
orderId
;
//基础订单id
@Column
(
name
=
"name"
)
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
//创建时间
@Column
(
name
=
"crt_time"
)
...
...
@@ -67,7 +72,7 @@ public class OrderRentVehicleDetail implements Serializable{
//车辆id
@Column
(
name
=
"vehicle_id"
)
@ApiModelProperty
(
value
=
"车辆id"
)
private
Integer
vehicleId
;
private
String
vehicleId
;
//费用详情
@Column
(
name
=
"cost_detail"
)
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/inter/OrderDetail.java
View file @
4690d0a7
...
...
@@ -3,6 +3,11 @@ package com.xxfc.platform.order.entity.inter;
import
com.xxfc.platform.order.entity.BaseOrder
;
public
interface
OrderDetail
{
public
Integer
getId
();
public
void
setId
(
Integer
id
);
Integer
getOrderId
();
void
setOrderId
(
Integer
orderId
);
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/vo/AddRentVehicleDTO.java
View file @
4690d0a7
...
...
@@ -4,16 +4,84 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
@Data
public
class
AddRentVehicleDTO
extends
OrderRentVehicleDetail
{
//主键
@ApiModelProperty
(
hidden
=
true
)
private
Integer
id
;
//基础订单id
@ApiModelProperty
(
hidden
=
true
)
private
Integer
orderId
;
//车辆id
@ApiModelProperty
(
hidden
=
true
)
private
Integer
vehicleId
;
public
class
AddRentVehicleDTO
{
//开始时间
@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
;
//司机类型 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
;
//出发公司Id
@Column
(
name
=
"start_company_id"
)
@ApiModelProperty
(
value
=
"出发公司Id"
)
private
Integer
startCompanyId
;
//结束公司Id
@Column
(
name
=
"end_company_id"
)
@ApiModelProperty
(
value
=
"结束公司Id"
)
private
Integer
endCompanyId
;
//车型id
@Column
(
name
=
"model_id"
)
@ApiModelProperty
(
value
=
"车型id"
)
private
Integer
modelId
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/vo/OrderPageVO.java
View file @
4690d0a7
...
...
@@ -8,5 +8,5 @@ import java.util.Map;
@Data
public
class
OrderPageVO
extends
BaseOrder
{
List
<
Map
>
orderItems
;
Map
detail
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/vo/order/RentVehicleBO.java
View file @
4690d0a7
...
...
@@ -4,9 +4,12 @@ import com.xxfc.platform.order.entity.BaseOrder;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.vo.price.RentVehiclePriceVO
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
lombok.Data
;
@Data
public
class
RentVehicleBO
extends
OrderRentVehicleDetail
implements
OrderDetail
{
private
BaseOrder
order
;
private
VehicleModel
vehicleModel
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/vo/pay/RentVehicleOrderPayVO.java
0 → 100644
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
order
.
vo
.
pay
;
import
com.xxfc.platform.universal.vo.OrderPayVo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 下单
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-28 16:17:42
*/
@Data
public
class
RentVehicleOrderPayVO
{
//订单号
@ApiModelProperty
(
value
=
"订单号"
)
private
String
orderNo
;
//1:微信公众号支付 2.支付宝即时到账,3,银联
@ApiModelProperty
(
value
=
"1:微信公众号支付 2.支付宝即时到账,3,银联"
)
private
Integer
payWay
;
//来源:1-app;2-小程序
@ApiModelProperty
(
value
=
"来源:1-app;2-小程序"
)
private
Integer
type
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/vo/price/OrderPriceVO.java
View file @
4690d0a7
...
...
@@ -13,20 +13,6 @@ public class OrderPriceVO {
public
BigDecimal
orderAmount
;
@ApiModelProperty
(
value
=
"商品价格"
)
public
BigDecimal
goodsAmount
;
public
BigDecimal
getOrderAmount
()
{
return
orderAmount
;
}
public
void
setOrderAmount
(
BigDecimal
orderAmount
)
{
this
.
orderAmount
=
orderAmount
;
}
public
BigDecimal
getGoodsAmount
()
{
return
goodsAmount
;
}
public
void
setGoodsAmount
(
BigDecimal
goodsAmount
)
{
this
.
goodsAmount
=
goodsAmount
;
}
@ApiModelProperty
(
value
=
"实际价格"
)
public
BigDecimal
realAmount
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/vo/price/RentVehiclePriceVO.java
View file @
4690d0a7
...
...
@@ -26,4 +26,6 @@ public class RentVehiclePriceVO extends OrderPriceVO{
BigDecimal
modelAmount
;
@ApiModelProperty
(
value
=
"司机单价"
)
BigDecimal
driverPrice
;
@ApiModelProperty
(
value
=
"费用详情"
)
private
String
costDetail
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/config/SwaggerConfig.java
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
order
.
config
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
...
...
@@ -23,6 +24,9 @@ import java.util.List;
@Configuration
@EnableSwagger2
public
class
SwaggerConfig
{
@Value
(
"${server.port}"
)
String
port
;
/**
* Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
...
...
@@ -45,6 +49,7 @@ public class SwaggerConfig {
pars
.
add
(
ticketPar2
.
build
());
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
host
(
"10.1.37.248:"
+
port
)
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.xxfc.platform.order"
))
//.apis(RequestHandlerSelectors.any())
...
...
@@ -56,7 +61,7 @@ public class SwaggerConfig {
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
()
.
title
(
"api swagger document"
)
.
description
(
"前后端联调swagger api 文档"
)
.
description
(
"前后端联调swagger api 文档"
)
.
version
(
"2.1.5.5"
)
.
build
();
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/config/WebConfiguration.java
View file @
4690d0a7
...
...
@@ -3,6 +3,7 @@ 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
com.xxfc.platform.order.interceptor.CorsInterceptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
...
...
@@ -23,8 +24,9 @@ public class WebConfiguration implements WebMvcConfigurer {
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
getCorsInterceptor
()).
addPathPatterns
(
"/**"
);
registry
.
addInterceptor
(
getServiceAuthRestInterceptor
()).
addPathPatterns
(
getIncludePathPatterns
())
.
addPathPatterns
(
"/3p/**"
)
;
addPathPatterns
(
getIncludePathPatterns
());
registry
.
addInterceptor
(
getUserAuthRestInterceptor
()).
addPathPatterns
(
getIncludePathPatterns
());
}
...
...
@@ -34,6 +36,11 @@ public class WebConfiguration implements WebMvcConfigurer {
return
new
ServiceAuthRestInterceptor
();
}
@Bean
CorsInterceptor
getCorsInterceptor
()
{
return
new
CorsInterceptor
();
}
@Bean
UserAuthRestInterceptor
getUserAuthRestInterceptor
()
{
return
new
UserAuthRestInterceptor
();
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/interceptor/CorsInterceptor.java
0 → 100644
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
order
.
interceptor
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.web.cors.CorsUtils
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
* Created by ace on 2017/9/12.
*/
public
class
CorsInterceptor
extends
HandlerInterceptorAdapter
{
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
if
(
request
.
getHeader
(
HttpHeaders
.
ORIGIN
)
!=
null
)
{
response
.
addHeader
(
"Access-Control-Allow-Origin"
,
"*"
);
response
.
addHeader
(
"Access-Control-Allow-Credentials"
,
"true"
);
response
.
addHeader
(
"Access-Control-Allow-Methods"
,
"POST, GET, OPTIONS, DELETE, PUT, HEAD"
);
response
.
addHeader
(
"Access-Control-Allow-Headers"
,
"Content-Type,authorization"
);
response
.
addHeader
(
"Access-Control-Max-Age"
,
"3600"
);
}
if
(
CorsUtils
.
isPreFlightRequest
(
request
)){
//是否跨域前option请求,使得话不执行后面拦截器
return
Boolean
.
FALSE
;
}
return
super
.
preHandle
(
request
,
response
,
handler
);
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/BaseOrderController.java
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
order
.
rest
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.BaseResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.CommonBaseController
;
import
com.github.wxiaoqi.security.common.util.ClientUtil
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.vo.OrderPageVO
;
import
com.xxfc.platform.order.vo.pay.RentVehicleOrderPayVO
;
import
com.xxfc.platform.universal.constant.enumerate.PayChannelEnum
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.universal.vo.OrderPayVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
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.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.
util.Map
;
import
java.
math.BigDecimal
;
@Controller
@RequestMapping
(
"baseOrder"
)
@Api
(
value
=
"订单"
,
tags
={
"订单"
})
@Slf4j
public
class
BaseOrderController
extends
CommonBaseController
{
@Autowired
BaseOrderBiz
baseOrderBiz
;
@Autowired
ThirdFeign
thirdFeign
;
@Value
(
"${gateway.host}"
)
String
host
;
@Value
(
"${gateway.order}"
)
String
order
;
String
notifyUrl
=
"/baseOrder/notifyUrl"
;
public
static
final
Integer
STATUS_SUCCESS
=
1
;
@RequestMapping
(
value
=
"/page"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@ApiOperation
(
value
=
"订单列表"
)
...
...
@@ -47,9 +74,87 @@ public class BaseOrderController extends CommonBaseController {
return
new
ObjectRestResponse
<>().
data
(
PageDataVO
.
pageInfo
(
query
.
getPage
(),
query
.
getLimit
(),
baseOrderBiz
.
pageByParm
(
query
.
getSuper
())));
}
@RequestMapping
(
value
=
"/pay"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ApiOperation
(
value
=
"订单支付"
)
@IgnoreClientToken
public
ObjectRestResponse
pay
(
@RequestBody
RentVehicleOrderPayVO
vo
){
//查询列表数据
if
(
StringUtils
.
isBlank
(
BaseContextHandler
.
getUserID
()))
{
throw
new
BaseException
(
ResultCode
.
AJAX_WECHAT_NOTEXIST_CODE
);
}
OrderPayVo
orderPayVo
=
BeanUtil
.
toBean
(
vo
,
OrderPayVo
.
class
);
BaseOrder
baseOrder
=
baseOrderBiz
.
selectOne
(
new
BaseOrder
(){{
setNo
(
vo
.
getOrderNo
());
}});
orderPayVo
.
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
orderPayVo
.
setBody
(
baseOrder
.
getName
());
orderPayVo
.
setBuyerIp
(
StringUtils
.
defaultIfBlank
(
request
.
getHeader
(
"userHost"
),
ClientUtil
.
getClientIp
(
request
)));
orderPayVo
.
setChannel
(
PayChannelEnum
.
ORDER_CRT
.
getCode
());
orderPayVo
.
setNotifyUrl
(
host
+
order
+
notifyUrl
);
orderPayVo
.
setSubject
(
baseOrder
.
getName
());
orderPayVo
.
setUserId
(
baseOrder
.
getUserId
());
ObjectRestResponse
response
=
BeanUtil
.
toBean
(
thirdFeign
.
wx
(
orderPayVo
),
ObjectRestResponse
.
class
);
return
response
;
//.data(PageDataVO.pageInfo(query.getPage(), query.getLimit(), baseOrderBiz.pageByParm(query.getSuper())));
}
@RequestMapping
(
value
=
"/notifyUrl"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ApiOperation
(
value
=
"订单支付回调"
)
@IgnoreClientToken
public
ObjectRestResponse
notifyUrl
(
@RequestBody
NotifyUrlDTO
dto
){
//判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态
if
(
STATUS_SUCCESS
.
equals
(
dto
.
getStatus
())
&&
StrUtil
.
isNotBlank
(
dto
.
getOrderNo
())){
BaseOrder
baseOrder
=
baseOrderBiz
.
selectOne
(
new
BaseOrder
(){{
setNo
(
dto
.
getOrderNo
());
}});
if
(
OrderStatusEnum
.
ORDER_UNPAY
.
equals
(
baseOrder
.
getStatus
()))
{
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_TOSTART
.
getCode
());
baseOrder
.
setOutTradeNo
(
dto
.
getOutTradeNo
());
baseOrderBiz
.
updateById
(
baseOrder
);
}
else
{
log
.
info
(
" exception notifyUrl : "
+
JSONUtil
.
toJsonStr
(
dto
));
}
}
else
{
log
.
info
(
" exception notifyUrl : "
+
JSONUtil
.
toJsonStr
(
dto
));
}
return
new
ObjectRestResponse
().
rel
(
true
);
}
/**
* 订单查询类
*/
@Data
public
class
QueryOrderDTO
extends
PageParam
{
@ApiModelProperty
(
hidden
=
false
)
private
Integer
crtUser
;
@ApiModelProperty
(
value
=
"订单状态\n"
+
"0--删除\n"
+
"1--创建订单\n"
+
"2--取消\n"
+
"3--待付款\n"
+
"4--待出行\n"
+
"5--出行中(进行中)\n"
+
"6--已完成"
)
private
Integer
status
;
}
@Data
public
class
NotifyUrlDTO
{
//订单号
@ApiModelProperty
(
value
=
"订单号"
)
private
String
orderNo
;
//订单号
@ApiModelProperty
(
value
=
"订单号"
)
private
String
outTradeNo
;
@ApiModelProperty
(
value
=
"支付是否成功 1:成功;2:失败"
)
private
Integer
status
;
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRentVehicleController.java
View file @
4690d0a7
...
...
@@ -11,6 +11,7 @@ import com.xxfc.platform.order.service.OrderRentVehicleService;
import
com.xxfc.platform.order.vo.AddRentVehicleDTO
;
import
com.xxfc.platform.order.vo.order.RentVehicleBO
;
import
com.xxfc.platform.order.vo.price.OrderPriceVO
;
import
com.xxfc.platform.order.vo.price.RentVehiclePriceVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -52,7 +53,7 @@ public class OrderRentVehicleController extends CommonBaseController {
@ResponseBody
@ApiOperation
(
value
=
"价格计算"
)
@IgnoreUserToken
public
ObjectRestResponse
<
Order
PriceVO
>
calculatePrice
(
CalculatePriceVO
vo
){
public
ObjectRestResponse
<
RentVehicle
PriceVO
>
calculatePrice
(
CalculatePriceVO
vo
){
RentVehicleBO
bo
=
BeanUtil
.
toBean
(
vo
,
RentVehicleBO
.
class
);
return
new
ObjectRestResponse
<>().
rel
(
true
).
data
(
orderRentVehicleService
.
calculatePrice
(
bo
));
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/AbstractOrderHandle.java
View file @
4690d0a7
...
...
@@ -5,13 +5,14 @@ import cn.hutool.core.util.IdUtil;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.util.OrderUtil
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
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.inter.OrderDetail
;
import
com.xxfc.platform.order.vo.price.OrderPriceVO
;
import
io.swagger.models.auth.In
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -32,32 +33,40 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
* 创建基础订单
* @return
*/
public
BaseOrder
createOrder
()
{
public
BaseOrder
create
Base
Order
()
{
BaseOrder
baseOrder
=
new
BaseOrder
();
//设置订单号
baseOrder
.
setNo
(
IdUtil
.
randomUUID
(
));
baseOrder
.
setNo
(
OrderUtil
.
GetOrderNumber
(
""
,
OrderUtil
.
APP_MID
));
//设置订单类型
if
(
null
==
orderTypeEnum
)
throw
new
BaseException
(
ResultCode
.
NOTEXIST_CODE
);
else
{
baseOrder
.
setType
(
orderTypeEnum
.
getCode
());
}
//设置订单状态
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_CRT
.
getCode
());
//设置用户id
baseOrder
.
setUserId
(
Integer
.
valueOf
(
BaseContextHandler
.
getUserID
()));
return
baseOrder
;
}
public
void
initDetail
(
Detail
detail
)
{
BaseOrder
order
=
createBaseOrder
();
detail
.
setOrder
(
order
);
}
/**
* 创建订单及其子项
* @param detail
*/
public
void
createOrder
(
Detail
detail
)
{
BaseOrder
order
=
createOrder
();
detail
.
setOrder
(
order
);
//初始化
initDetail
(
detail
);
//计算价格
handleCalculate
(
detail
);
//插入baseOrder
baseOrderBiz
.
insertSelective
(
order
);
baseOrderBiz
.
insertSelective
(
detail
.
getOrder
()
);
//处理detail
handleDetail
(
detail
);
}
...
...
@@ -69,6 +78,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
public
void
handleDetail
(
Detail
detail
){
detail
.
setOrderId
(
detail
.
getOrder
().
getId
());
detailBiz
.
insertSelective
(
detail
);
detail
.
getOrder
().
setDetailId
(
detail
.
getId
());
baseOrderBiz
.
updateById
(
detail
.
getOrder
());
}
// /**
...
...
@@ -101,6 +112,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
OrderPriceVO
priceVO
=
new
OrderPriceVO
();
priceVO
.
setGoodsAmount
(
BigDecimal
.
ZERO
);
priceVO
.
setOrderAmount
(
BigDecimal
.
ZERO
);
priceVO
.
setRealAmount
(
BigDecimal
.
ZERO
);
return
priceVO
;
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
4690d0a7
...
...
@@ -9,6 +9,7 @@ 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.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.vo.order.RentVehicleBO
;
...
...
@@ -42,10 +43,25 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
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
);
}
...
...
@@ -54,7 +70,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
RentVehiclePriceVO
rvpv
=
calculatePrice
(
bo
);
BeanUtil
.
copyProperties
(
rvpv
,
bo
.
getOrder
());
BeanUtil
.
copyProperties
(
rvpv
,
bo
);
bo
.
setCostDetail
(
costDetail
(
rvpv
));
}
@Override
...
...
@@ -83,6 +98,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rvp
.
setGoodsAmount
(
goodsAmount
);
rvp
.
setDriverAmount
(
driverAmount
);
rvp
.
setVehicleAmount
(
vehicleAmount
);
rvp
.
setRealAmount
(
orderAmount
);
rvp
.
setDeposit
(
DEPOSIT
);
rvp
.
setModelAmount
(
vehicleModel
.
getPrice
());
rvp
.
setDriverPrice
(
DRIVER_PRICE
);
...
...
@@ -90,6 +106,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rvp
.
setDayNum
(
detail
.
getDayNum
());
rvp
.
setVehicleNum
(
1
);
rvp
.
setDriverNum
(
1
);
detail
.
setCostDetail
(
costDetail
(
rvp
));
return
rvp
;
}
...
...
@@ -103,12 +121,14 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
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
Integer
acquireVehicle
(
RentVehicleBO
detail
)
{
private
String
acquireVehicle
(
RentVehicleBO
detail
)
{
//根据车型、时间、距离,门店,预定车辆
Integer
vehicleId
=
new
Integer
(
1
);
String
vehicleId
=
"0e9a88db-cb1b-48a4-b307-40f89eed906f"
;
detail
.
setVehicleId
(
vehicleId
);
return
vehicleId
;
}
}
xx-order/xx-order-server/src/main/resources/mapper/BaseOrderMapper.xml
View file @
4690d0a7
...
...
@@ -29,7 +29,7 @@
<result
javaType=
"Integer"
column=
"type"
property=
"type"
></result>
<discriminator
javaType=
"Integer"
column=
"type"
>
<case
value=
"1"
resultType=
"com.xxfc.platform.order.vo.OrderPageVO"
>
<
collection
column=
"id"
ofType=
"java.util.HashMap"
property=
"orderItems"
select=
"com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper.listByOrderId"
></collec
tion>
<
association
column=
"id"
property=
"detail"
select=
"com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper.oneByOrderId"
></associa
tion>
</case>
</discriminator>
</resultMap>
...
...
@@ -39,9 +39,14 @@
from base_order
<where>
<if
test=
"crtUser != null"
>
crt_user = #{crtUser}
and crt_user = #{crtUser}
</if>
<if
test=
"status != null"
>
and status = #{status}
</if>
</where>
order by crt_time desc;
</select>
</mapper>
\ No newline at end of file
xx-order/xx-order-server/src/main/resources/mapper/OrderRentVehicleDetailMapper.xml
View file @
4690d0a7
...
...
@@ -9,7 +9,13 @@
where order_id = #{orderId}
</select>
<select
id=
"oneByOrderId"
parameterType=
"Integer"
resultType=
"map"
>
select *
from order_rent_vehicle_detail
where order_id = #{orderId} limit 1 offset 0;
</select>
<select
id=
"getPScore"
resultType=
"Integer"
>
SELECT round(IFNULL (AVG(score),0)) score FROM order_rent_vehicle_detail WHERE model_id=#{modelId}
</select>
SELECT round(IFNULL (AVG(score),0)) score FROM order_rent_vehicle_detail WHERE model_id=#{modelId}
</select>
</mapper>
\ No newline at end of file
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/constant/enumerate/PayChannelEnum.java
0 → 100644
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
universal
.
constant
.
enumerate
;
import
java.util.HashMap
;
import
java.util.Map
;
public
enum
PayChannelEnum
{
ORDER_CRT
(
1
,
"租车"
),
ORDER_CANCEL
(
2
,
"旅游"
),
;
/**
* 编码
*/
private
Integer
code
;
/**
* 类型描述
*/
private
String
desc
;
private
static
Map
<
Integer
,
String
>
codeAndDesc
=
new
HashMap
<
Integer
,
String
>();
PayChannelEnum
(
Integer
code
,
String
desc
){
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
public
static
Boolean
exists
(
Integer
code
){
return
codeAndDesc
.
containsKey
(
code
);
}
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/vo/OrderPayVo.java
View file @
4690d0a7
...
...
@@ -56,7 +56,7 @@ public class OrderPayVo{
@ApiModelProperty
(
value
=
"回调地址"
)
private
String
notifyUrl
;
//支付金额
//支付金额
分
@ApiModelProperty
(
value
=
"支付金额"
)
private
Integer
amount
;
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
View file @
4690d0a7
...
...
@@ -49,7 +49,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
Integer
amount
=
orderPayVo
.
getAmount
();
log
.
error
(
"---下单---order_no====="
+
order_no
+
"--支付订单号--trade_no===="
+
trade_no
+
"--金额---amount===="
+
amount
);
//报名费回调路径
String
jsParam
=
WXPay
.
apppay
(
amount
+
""
,
orderPayVo
.
getBody
(),
"https://"
+
SystemConfig
.
weixinHost
+
"/api/universal/app/unauth/notify"
,
trade_no
,
orderPayVo
.
getBuyerIp
(),
0
);
String
jsParam
=
WXPay
.
apppay
(
1
+
""
,
orderPayVo
.
getBody
(),
"https://"
+
SystemConfig
.
weixinHost
+
"/api/universal/app/unauth/notify"
,
trade_no
,
orderPayVo
.
getBuyerIp
(),
0
);
log
.
info
(
"报名费回调路径jsParam:"
+
jsParam
);
if
(!
StringUtils
.
isBlank
(
jsParam
))
{
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/OrderRefundBiz.java
View file @
4690d0a7
...
...
@@ -2,9 +2,13 @@ package com.xxfc.platform.universal.biz;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.common.util.OrderUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.util.OrderUtil
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.xxfc.platform.universal.entity.OrderRefund
;
import
com.xxfc.platform.universal.mapper.OrderRefundMapper
;
import
com.xxfc.platform.universal.vo.OrderRefundVo
;
import
com.xxfc.platform.universal.weixin.api.WxPayRefundUtils
;
import
com.xxfc.platform.universal.weixin.util.Snowflake
;
...
...
@@ -13,10 +17,6 @@ import org.apache.commons.beanutils.BeanUtils;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.universal.entity.OrderRefund
;
import
com.xxfc.platform.universal.mapper.OrderRefundMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
/**
* 订单支付退款表
*
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
View file @
4690d0a7
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.feign;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.vehicle.common.RestResponse
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
com.xxfc.platform.vehicle.vo.BookVehicleVo
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -18,6 +19,6 @@ public interface VehicleFeign {
@RequestMapping
(
value
=
"/vehicleModel/app/addScore"
,
method
=
RequestMethod
.
GET
)
public
RestResponse
addScore
(
@RequestParam
(
value
=
"id"
)
Integer
id
,
@RequestParam
(
value
=
"score"
)
Integer
score
);
// @PostMapping(value = "/vehicleInfo/{id}"
)
// public ObjectRestResponse<VehicleModel> vehicleInfo(@PathVariable("id") int id
);
@RequestMapping
(
value
=
"/rent/book/vehicle"
,
method
=
RequestMethod
.
POST
)
public
RestResponse
<
Integer
>
rentApplyVehicle
(
@RequestBody
BookVehicleVo
bookVehicleVo
);
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/vo/BookVehicleVo.java
View file @
4690d0a7
...
...
@@ -40,41 +40,49 @@ public class BookVehicleVo {
/**
* 提车地点
*/
@ApiModelProperty
(
"提车地点"
)
private
String
liftAddr
;
/**
* 提车
地点
* 提车
公司
*/
@ApiModelProperty
(
"提车公司"
)
private
Integer
liftCompany
;
/**
* 目的地
*/
@ApiModelProperty
(
"目的地"
)
private
String
destination
;
/**
* 备注
*/
@ApiModelProperty
(
"备注"
)
private
String
remark
;
/**
* 随车物品id以及数量 List<Map<id,数量>>
*/
@ApiModelProperty
(
"随车物品id以及数量 List<Map<id,数量>>"
)
Map
<
Integer
,
Integer
>
selectedAccItem
;
/**
* 提车阶段里程数
*/
@ApiModelProperty
(
"提车阶段里程数"
)
private
Integer
mileageLift
;
/**
* 还车阶段里程数
*/
@ApiModelProperty
(
"还车阶段里程数"
)
private
Integer
mileageRet
;
/**
* 是否违章
*/
@ApiModelProperty
(
"是否违章"
)
private
Integer
haveViolation
;
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/vo/RentVehicleBookDTO.java
0 → 100644
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
vehicle
.
vo
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Map
;
@Data
public
class
RentVehicleBookDTO
extends
PageParam
{
//根据车型、时间、距离,门店,预定车辆
@ApiModelProperty
(
"车型id"
)
private
Integer
modelId
;
/**
* 预定目标日期(开始)
*/
@ApiModelProperty
(
"预定目标日期(开始)"
)
private
String
bookStartDate
;
/**
* 预定目标日期(结束)
*/
@ApiModelProperty
(
"预定目标日期(结束)"
)
private
String
bookEndDate
;
/**
* 提车地点
*/
@ApiModelProperty
(
"提车地点"
)
private
String
liftAddr
;
/**
* 提车公司
*/
@ApiModelProperty
(
"提车公司"
)
private
Integer
liftCompany
;
/**
* 目的地
*/
@ApiModelProperty
(
"目的地"
)
private
String
destination
;
}
\ No newline at end of file
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/vo/UsableVehicleVO.java
→
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/vo/UsableVehicle
Model
VO.java
View file @
4690d0a7
...
...
@@ -9,15 +9,12 @@ import java.math.BigDecimal;
import
java.util.List
;
@Data
public
class
UsableVehicleVO
{
public
class
UsableVehicle
Model
VO
{
//车辆id
Integer
modelId
;
Vehicle
vehicle
;
BigDecimal
distance
;
VehicleModel
vehicleModel
;
// String companyName;
BranchCompany
company
;
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
View file @
4690d0a7
...
...
@@ -829,8 +829,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
return
zoneCompanyIds
.
parallelStream
().
distinct
().
collect
(
Collectors
.
toList
());
}
public
PageDataVO
<
UsableVehicleVO
>
searchUsable
(
UsableVeicleDTO
dto
){
//adjustBookedInfoParam(params, );
public
PageDataVO
<
UsableVehicleModelVO
>
searchUsableModel
(
UsableVeicleDTO
dto
){
Map
<
String
,
Object
>
params
=
BeanUtil
.
beanToMap
(
dto
);
List
<
String
>
notBookedDates
=
Lists
.
newArrayList
();
if
(
StringUtils
.
isNotBlank
(
dto
.
getStartDate
())&&
...
...
@@ -855,8 +854,38 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
fillBookedDateSearchParam
(
params
,
yearMonthAndDate
,
yearMonthAndDateNotBooked
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
List
<
UsableVehicleVO
>
lists
=
mapper
.
searchUsable
(
params
);
PageInfo
<
UsableVehicleVO
>
usableVehicleInfo
=
new
PageInfo
<>(
lists
);
List
<
UsableVehicleModelVO
>
lists
=
mapper
.
searchUsableModel
(
params
);
PageInfo
<
UsableVehicleModelVO
>
usableVehicleInfo
=
new
PageInfo
<>(
lists
);
return
PageDataVO
.
pageInfo
(
usableVehicleInfo
);
}
public
PageDataVO
<
Vehicle
>
searchUsableVehicle
(
RentVehicleBookDTO
dto
){
Map
<
String
,
Object
>
params
=
BeanUtil
.
beanToMap
(
dto
);
List
<
String
>
notBookedDates
=
Lists
.
newArrayList
();
if
(
StringUtils
.
isNotBlank
(
dto
.
getBookEndDate
())&&
StringUtils
.
isNotBlank
(
dto
.
getBookEndDate
()))
{
notBookedDates
=
convertDatePeriod2List
(
dto
.
getBookEndDate
(),
dto
.
getBookEndDate
());
}
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
if
(
CollectionUtils
.
isEmpty
(
notBookedDates
)){
//return;
}
//筛选出查询条件所在月份
Set
<
String
>
allYearMonth
=
new
HashSet
<>();
//记录所有年月
Map
<
String
,
List
<
String
>>
yearMonthAndDate
=
new
HashMap
<>();
//预定年月 - 预定日期列表
Map
<
String
,
List
<
String
>>
yearMonthAndDateNotBooked
=
new
HashMap
<>();
//未预定年月 - 未预定日期列表
classifyByYearMonth
(
notBookedDates
,
yearMonthAndDateNotBooked
,
allYearMonth
);
if
(
allYearMonth
.
size
()>
MAX_MONTH_COUNT_BOOKED_INFO_QUERY
){
throw
new
CustomIllegalParamException
(
" only 3 month can be included <bookedInfo> param."
);
}
//加入预定信息查询条件
fillBookedDateSearchParam
(
params
,
yearMonthAndDate
,
yearMonthAndDateNotBooked
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
List
<
Vehicle
>
lists
=
mapper
.
searchUsableVehicle
(
params
);
PageInfo
<
Vehicle
>
usableVehicleInfo
=
new
PageInfo
<>(
lists
);
return
PageDataVO
.
pageInfo
(
usableVehicleInfo
);
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/config/SwaggerConfig.java
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
vehicle
.
config
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
...
...
@@ -23,6 +24,9 @@ import java.util.List;
@Configuration
@EnableSwagger2
public
class
SwaggerConfig
{
@Value
(
"${server.port}"
)
String
port
;
/**
* Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
...
...
@@ -38,6 +42,7 @@ public class SwaggerConfig{
pars
.
add
(
ticketPar
.
build
());
//根据每个方法名也知道当前方法在设置什么参数
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
host
(
"10.1.37.248:"
+
port
)
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.xxfc.platform.vehicle"
))
//.apis(RequestHandlerSelectors.any())
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleMapper.java
View file @
4690d0a7
...
...
@@ -3,7 +3,7 @@ package com.xxfc.platform.vehicle.mapper;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.vo.AddOrUpdateVehicleVo
;
import
com.xxfc.platform.vehicle.vo.QueryVehicleVo
;
import
com.xxfc.platform.vehicle.vo.UsableVehicleVO
;
import
com.xxfc.platform.vehicle.vo.UsableVehicle
Model
VO
;
import
org.springframework.data.repository.query.Param
;
import
tk.mybatis.mapper.common.Mapper
;
...
...
@@ -29,5 +29,7 @@ public interface VehicleMapper extends Mapper<Vehicle> {
Vehicle
selectByNumberPlate
(
String
numberPlate
);
List
<
UsableVehicleVO
>
searchUsable
(
Map
<
String
,
Object
>
params
);
List
<
UsableVehicleModelVO
>
searchUsableModel
(
Map
<
String
,
Object
>
params
);
List
<
Vehicle
>
searchUsableVehicle
(
Map
<
String
,
Object
>
params
);
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleModelMapper.java
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
com.xxfc.platform.vehicle.vo.UsableVehicleVO
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 车型
*
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleController.java
View file @
4690d0a7
package
com
.
xxfc
.
platform
.
vehicle
.
rest
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONException
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.msg.BaseResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.vehicle.biz.VehicleBiz
;
...
...
@@ -36,6 +38,8 @@ import java.util.List;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
static
com
.
xxfc
.
platform
.
vehicle
.
constant
.
VehicleConstant
.
USER_APP
;
@RestController
@RequestMapping
(
"/vehicleInfo"
)
@Slf4j
...
...
@@ -262,25 +266,37 @@ public class VehicleController extends BaseController<VehicleBiz> {
@ApiOperation
(
"可用车辆查询"
)
@RequestMapping
(
value
=
"/rent/usable-vehicle"
,
method
=
RequestMethod
.
GET
)
@IgnoreUserToken
public
ObjectRestResponse
<
PageDataVO
<
UsableVehicleVO
>>
rentUsableVehicle
(
UsableVeicleDTO
dto
)
throws
Exception
{
public
ObjectRestResponse
<
PageDataVO
<
UsableVehicle
Model
VO
>>
rentUsableVehicle
(
UsableVeicleDTO
dto
)
throws
Exception
{
//根据时间 获得 可用车辆
//结合车型
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
Model
(
dto
)).
rel
(
true
);
}
/**
* 租车触发的申请预定车辆
*
* @param
bookVehicleV
o
* @param
dt
o
* @return
*/
@ApiOperation
(
"租车触发的申请预定车辆"
)
@RequestMapping
(
value
=
"/rent/book/vehicle"
,
method
=
RequestMethod
.
POST
)
public
RestResponse
<
Integer
>
rentApplyVehicle
(
@RequestBody
BookVehicleVo
bookVehicleVo
)
throws
Exception
{
Integer
operatorId
=
Integer
.
parseInt
(
BaseContextHandler
.
getUserID
());
public
RestResponse
<
String
>
rentApplyVehicle
(
@RequestBody
RentVehicleBookDTO
dto
)
throws
Exception
{
//默认USER_APP 预约
Integer
operatorId
=
USER_APP
;
String
userName
=
BaseContextHandler
.
getName
();
BookVehicleVo
bookVehicleVo
=
BeanUtil
.
toBean
(
dto
,
BookVehicleVo
.
class
);
dto
.
setLimit
(
1
);
dto
.
setPage
(
1
);
//查询可车辆信息
PageDataVO
<
Vehicle
>
pageDataVO
=
vehicleBiz
.
searchUsableVehicle
(
dto
);
bookVehicleVo
.
setVehicle
(
pageDataVO
.
getData
().
get
(
0
).
getId
());
return
baseBiz
.
applyVehicle4Employee
(
operatorId
,
bookVehicleVo
,
userName
);
//new RestResponse<String>();
//baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
}
}
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleMapper.xml
View file @
4690d0a7
...
...
@@ -2,10 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.xxfc.platform.vehicle.mapper.VehicleMapper"
>
<resultMap
id=
"searchUsableM
ap"
type=
"com.xxfc.platform.vehicle.vo.UsableVehicle
VO"
>
<resultMap
id=
"searchUsableM
odelMap"
type=
"com.xxfc.platform.vehicle.vo.UsableVehicleModel
VO"
>
<!-- <collection column="company_id" property="id" ofType="com.xxfc.platform.vehicle.entity.BranchCompany" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" />-->
<!-- <result column="company_id" property="companyId" jdbcType="VARCHAR" javaType="java.lang.Integer"/>-->
<result
column=
"model_id"
property=
"modelId"
jdbcType=
"INTEGER"
javaType=
"java.lang.Integer"
/
>
<!-- <result column="model_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>--
>
<!-- <result column="vehicle_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<association
property=
"company"
column=
"company_id"
select=
"com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey"
/>
<association
property=
"vehicleModel"
column=
"model_id"
select=
"com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"
/>
...
...
@@ -243,8 +243,8 @@
where id = #{vehicleId} and status = #{lastStatus}
</update>
<select
id=
"searchUsable"
parameterType=
"java.util.Map"
resultMap=
"searchUsableMap"
>
<select
id=
"searchUsable
Model
"
parameterType=
"java.util.Map"
resultMap=
"searchUsableM
odelM
ap"
>
select distinct vm.id as model_id, bc.id as company_id
<if
test=
"lon != null and lat != null"
>
,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance
...
...
@@ -252,7 +252,23 @@
<if
test=
" yearMonthAndParam !=null "
>
,vbi.booked_date
</if>
from vehicle v
<include
refid=
"searchUsableSql"
/>
</select>
<select
id=
"searchUsableVehicle"
parameterType=
"java.util.Map"
resultType=
"com.xxfc.platform.vehicle.entity.Vehicle"
>
select vm.*
<if
test=
"lon != null and lat != null"
>
,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance
</if>
<if
test=
" yearMonthAndParam !=null "
>
,vbi.booked_date
</if>
<include
refid=
"searchUsableSql"
/>
</select>
<sql
id=
"searchUsableSql"
>
from vehicle v
<if
test=
" yearMonthAndParam !=null "
>
left join
vehicle_book_info vbi on v.`id` = vbi.vehicle
...
...
@@ -272,6 +288,9 @@
)
</foreach>
</if>
<if
test=
" modelId != null "
>
and v.model_id = #{modelId}
</if>
<if
test=
" catas != null "
>
and vc.cata_id in (
<foreach
collection=
"catas"
index=
"catasIndex"
item=
"cata"
separator=
","
>
...
...
@@ -284,6 +303,6 @@
order by
distance asc
</if>
</s
elect
>
</s
ql
>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment