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
de0e0e3a
Commit
de0e0e3a
authored
Jun 25, 2019
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改旅游下单代码
parent
d0451ca1
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
204 additions
and
94 deletions
+204
-94
BaseBiz.java
.../java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
+11
-4
CommonConstants.java
...hub/wxiaoqi/security/common/constant/CommonConstants.java
+2
-2
AppUserDetail.java
...m/github/wxiaoqi/security/admin/entity/AppUserDetail.java
+1
-1
AppUserLogin.java
...om/github/wxiaoqi/security/admin/entity/AppUserLogin.java
+1
-1
pom.xml
xx-order/xx-order-api/pom.xml
+6
-0
OrderTourDetail.java
.../java/com/xxfc/platform/order/entity/OrderTourDetail.java
+8
-1
MemberBO.java
...ain/java/com/xxfc/platform/order/pojo/order/MemberBO.java
+6
-0
RentVehicleBO.java
...ava/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
+8
-0
TourBO.java
.../main/java/com/xxfc/platform/order/pojo/order/TourBO.java
+6
-1
TourPriceVO.java
.../java/com/xxfc/platform/order/pojo/price/TourPriceVO.java
+16
-0
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+46
-31
RabbitUserConfig.java
...java/com/xxfc/platform/order/config/RabbitUserConfig.java
+8
-4
RabbitConsumer.java
...ava/com/xxfc/platform/order/mqhandler/RabbitConsumer.java
+19
-7
RabbitProduct.java
...java/com/xxfc/platform/order/mqhandler/RabbitProduct.java
+11
-7
BaseOrderController.java
...ava/com/xxfc/platform/order/rest/BaseOrderController.java
+15
-0
OrderTourController.java
...ava/com/xxfc/platform/order/rest/OrderTourController.java
+6
-0
AbstractOrderHandle.java
.../com/xxfc/platform/order/service/AbstractOrderHandle.java
+4
-0
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+3
-19
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+3
-1
OrderTourService.java
...ava/com/xxfc/platform/order/service/OrderTourService.java
+21
-14
TourFeign.java
...src/main/java/com/xxfc/platform/tour/feign/TourFeign.java
+3
-1
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
View file @
de0e0e3a
...
@@ -75,14 +75,21 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
...
@@ -75,14 +75,21 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
public
void
updateById
(
T
entity
)
{
public
void
updateById
(
T
entity
)
{
EntityUtils
.
setUpdatedInfo
(
entity
);
updateByIdRe
(
entity
);
mapper
.
updateByPrimaryKey
(
entity
);
}
}
public
void
updateSelectiveById
(
T
entity
)
{
public
void
updateSelectiveById
(
T
entity
)
{
updateSelectiveByIdRe
(
entity
);
}
public
int
updateByIdRe
(
T
entity
)
{
EntityUtils
.
setUpdatedInfo
(
entity
);
return
mapper
.
updateByPrimaryKey
(
entity
);
}
public
int
updateSelectiveByIdRe
(
T
entity
)
{
EntityUtils
.
setUpdatedInfo
(
entity
);
EntityUtils
.
setUpdatedInfo
(
entity
);
mapper
.
updateByPrimaryKeySelective
(
entity
);
return
mapper
.
updateByPrimaryKeySelective
(
entity
);
}
}
public
List
<
T
>
selectByExample
(
Object
example
)
{
public
List
<
T
>
selectByExample
(
Object
example
)
{
...
...
ace-common/src/main/java/com/github/wxiaoqi/security/common/constant/CommonConstants.java
View file @
de0e0e3a
...
@@ -4,8 +4,8 @@ package com.github.wxiaoqi.security.common.constant;
...
@@ -4,8 +4,8 @@ package com.github.wxiaoqi.security.common.constant;
* Created by ace on 2017/8/29.
* Created by ace on 2017/8/29.
*/
*/
public
class
CommonConstants
{
public
class
CommonConstants
{
public
static
final
int
SYS_TRUE
=
1
;
public
static
final
Integer
SYS_TRUE
=
1
;
public
static
final
int
SYS_FALSE
=
0
;
public
static
final
Integer
SYS_FALSE
=
0
;
public
final
static
String
RESOURCE_TYPE_MENU
=
"menu"
;
public
final
static
String
RESOURCE_TYPE_MENU
=
"menu"
;
public
final
static
String
RESOURCE_TYPE_BTN
=
"button"
;
public
final
static
String
RESOURCE_TYPE_BTN
=
"button"
;
// 用户token异常
// 用户token异常
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/entity/AppUserDetail.java
View file @
de0e0e3a
...
@@ -15,7 +15,7 @@ import javax.persistence.Table;
...
@@ -15,7 +15,7 @@ import javax.persistence.Table;
public
class
AppUserDetail
{
public
class
AppUserDetail
{
@Id
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@GeneratedValue
(
generator
=
"JDBC"
)
private
int
id
;
private
Integer
id
;
private
Integer
userid
;
private
Integer
userid
;
@Column
(
name
=
"is_member"
)
@Column
(
name
=
"is_member"
)
private
Integer
isMember
;
private
Integer
isMember
;
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/entity/AppUserLogin.java
View file @
de0e0e3a
...
@@ -15,7 +15,7 @@ import javax.persistence.Table;
...
@@ -15,7 +15,7 @@ import javax.persistence.Table;
public
class
AppUserLogin
{
public
class
AppUserLogin
{
@Id
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@GeneratedValue
(
generator
=
"JDBC"
)
private
int
id
;
private
Integer
id
;
@Column
(
name
=
"im_userid"
)
@Column
(
name
=
"im_userid"
)
private
Integer
imUserid
;
private
Integer
imUserid
;
@Column
(
name
=
"im_password"
)
@Column
(
name
=
"im_password"
)
...
...
xx-order/xx-order-api/pom.xml
View file @
de0e0e3a
...
@@ -13,6 +13,12 @@
...
@@ -13,6 +13,12 @@
<artifactId>
xx-order-api
</artifactId>
<artifactId>
xx-order-api
</artifactId>
<dependencies>
<dependencies>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-activity-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-vehicle-api
</artifactId>
<artifactId>
xx-vehicle-api
</artifactId>
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderTourDetail.java
View file @
de0e0e3a
...
@@ -229,6 +229,13 @@ public class OrderTourDetail implements Serializable {
...
@@ -229,6 +229,13 @@ public class OrderTourDetail implements Serializable {
@Column
(
name
=
"start_zone_id"
)
@Column
(
name
=
"start_zone_id"
)
@ApiModelProperty
(
value
=
"出发公司区域id"
)
@ApiModelProperty
(
value
=
"出发公司区域id"
)
private
Integer
startZoneId
;
private
Integer
startZoneId
;
@Column
(
name
=
"has_insure"
)
@ApiModelProperty
(
value
=
"是否保险标记 1--要保险;0--不需要"
)
Integer
hasInsure
;
@Column
(
name
=
"site_id"
)
@ApiModelProperty
(
value
=
"出发的站点id"
)
private
Integer
siteId
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/MemberBO.java
View file @
de0e0e3a
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.order.pojo.order;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.order.pojo.order;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMember
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMember
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
...
@@ -17,4 +18,9 @@ import java.util.List;
...
@@ -17,4 +18,9 @@ import java.util.List;
public
class
MemberBO
extends
OrderMemberDetail
implements
OrderDetail
{
public
class
MemberBO
extends
OrderMemberDetail
implements
OrderDetail
{
private
BaseOrder
order
;
private
BaseOrder
order
;
private
BaseUserMemberLevel
baseUserMemberLevel
;
private
BaseUserMemberLevel
baseUserMemberLevel
;
/**
* 优惠券*
*/
private
List
<
Coupon
>
coupons
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
View file @
de0e0e3a
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
...
@@ -8,6 +9,8 @@ import com.xxfc.platform.vehicle.entity.VehicleModel;
...
@@ -8,6 +9,8 @@ import com.xxfc.platform.vehicle.entity.VehicleModel;
import
com.xxfc.platform.vehicle.pojo.BookVehicleVO
;
import
com.xxfc.platform.vehicle.pojo.BookVehicleVO
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
@Data
@Data
public
class
RentVehicleBO
extends
OrderRentVehicleDetail
implements
OrderDetail
{
public
class
RentVehicleBO
extends
OrderRentVehicleDetail
implements
OrderDetail
{
private
BaseOrder
order
;
private
BaseOrder
order
;
...
@@ -19,4 +22,9 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
...
@@ -19,4 +22,9 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
*/
*/
private
Integer
rentFreeDay
;
private
Integer
rentFreeDay
;
private
AppUserDTO
appUserDTO
;
private
AppUserDTO
appUserDTO
;
/**
* 优惠券*
*/
private
List
<
Coupon
>
coupons
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/TourBO.java
View file @
de0e0e3a
...
@@ -2,6 +2,7 @@ package com.xxfc.platform.order.pojo.order;
...
@@ -2,6 +2,7 @@ package com.xxfc.platform.order.pojo.order;
import
com.github.wxiaoqi.security.admin.entity.User
;
import
com.github.wxiaoqi.security.admin.entity.User
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
...
@@ -19,5 +20,9 @@ public class TourBO extends OrderTourDetail implements OrderDetail {
...
@@ -19,5 +20,9 @@ public class TourBO extends OrderTourDetail implements OrderDetail {
TourGood
tourGood
;
TourGood
tourGood
;
List
<
TourUser
>
tourUsers
;
List
<
TourUser
>
tourUsers
;
AppUserDTO
appUserDTO
;
AppUserDTO
appUserDTO
;
private
Integer
siteId
;
/**
* 优惠券*
*/
private
List
<
Coupon
>
coupons
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/price/TourPriceVO.java
View file @
de0e0e3a
...
@@ -37,4 +37,20 @@ public class TourPriceVO extends OrderPriceVO{
...
@@ -37,4 +37,20 @@ public class TourPriceVO extends OrderPriceVO{
//儿童真实总价(优惠后的价格)
//儿童真实总价(优惠后的价格)
@ApiModelProperty
(
value
=
"儿童真实总价(优惠后的价格)"
)
@ApiModelProperty
(
value
=
"儿童真实总价(优惠后的价格)"
)
private
BigDecimal
realChildPrice
;
private
BigDecimal
realChildPrice
;
//保险费用
@ApiModelProperty
(
value
=
"保险费用"
)
private
BigDecimal
insureAmount
;
//保险单价
@ApiModelProperty
(
value
=
"保险单价"
)
private
BigDecimal
insurePrice
;
//天数
@ApiModelProperty
(
value
=
"天数"
)
private
Integer
dayNum
;
//总人数
@ApiModelProperty
(
value
=
"总人数"
)
private
Integer
totalNumber
;
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
de0e0e3a
package
com
.
xxfc
.
platform
.
order
.
biz
;
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
...
@@ -93,12 +91,18 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -93,12 +91,18 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
*/
*/
public
void
cancel
(
BaseOrder
baseOrder
)
{
public
void
cancel
(
BaseOrder
baseOrder
)
{
if
(
cancelAble
.
get
(
baseOrder
.
getType
()).
contains
(
baseOrder
.
getStatus
()))
{
if
(
cancelAble
.
get
(
baseOrder
.
getType
()).
contains
(
baseOrder
.
getStatus
()))
{
this
.
updateSelectiveById
(
new
BaseOrder
(){{
int
updateResult
=
this
.
updateSelectiveByIdRe
(
new
BaseOrder
(){{
setId
(
baseOrder
.
getId
());
setId
(
baseOrder
.
getId
());
setStatus
(
OrderStatusEnum
.
ORDER_CANCEL
.
getCode
());
setStatus
(
OrderStatusEnum
.
ORDER_CANCEL
.
getCode
());
setCancelReason
(
baseOrder
.
getCancelReason
());
setCancelReason
(
baseOrder
.
getCancelReason
());
setVersion
(
baseOrder
.
getVersion
());
}});
}});
//如果取消失败,则抛异常
if
(
updateResult
<=
0
)
{
throw
new
BaseException
(
ResultCode
.
DB_OPERATION_FAIL_CODE
);
}
//触发退款流程
//触发退款流程
//判断是否已支付
//判断是否已支付
if
(
baseOrder
.
getHasPay
().
equals
(
SYS_TRUE
))
{
if
(
baseOrder
.
getHasPay
().
equals
(
SYS_TRUE
))
{
...
@@ -107,33 +111,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -107,33 +111,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
OrderRentVehicleDetail
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
(){{
OrderRentVehicleDetail
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
(){{
setOrderId
(
baseOrder
.
getId
());
setOrderId
(
baseOrder
.
getId
());
}});
}});
//计算退款金额
// 1、押金 + 租金(规则扣除)
//退款流程
BigDecimal
refundAmont
=
orvd
.
getDeposit
().
add
(
baseOrder
.
getGoodsAmount
());
refundProcess
(
baseOrder
,
orvd
);
String
refundTradeNo
=
thirdFeign
.
refund
(
new
OrderRefundVo
(){{
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setRefundAmount
(
refundAmont
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setOrderNo
(
baseOrder
.
getNo
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
}}).
getData
();
//如果返回的流水为空,则当做失败
Integer
refundStatus
=
SYS_TRUE
;
if
(
StrUtil
.
isBlank
(
refundTradeNo
))
{
refundStatus
=
SYS_FALSE
;
}
//创建订单退款记录
OrderRefund
orderRefund
=
new
OrderRefund
(){{
setOrderId
(
baseOrder
.
getId
());
setRefundAmount
(
refundAmont
);
setRefundTime
(
System
.
currentTimeMillis
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
setTradeNo
(
refundTradeNo
);
setRefundType
(
RefundTypeEnum
.
RentVehicle
.
getCode
());
}};
orderRefund
.
setRefundStatus
(
refundStatus
);
orderRefundBiz
.
insertSelective
(
orderRefund
);
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
...
@@ -168,6 +148,36 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -168,6 +148,36 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
}
}
}
}
private
void
refundProcess
(
BaseOrder
baseOrder
,
OrderRentVehicleDetail
orvd
)
{
//计算退款金额
// 1、押金 + 租金(规则扣除)
BigDecimal
refundAmont
=
orvd
.
getDeposit
().
add
(
baseOrder
.
getGoodsAmount
());
String
refundTradeNo
=
thirdFeign
.
refund
(
new
OrderRefundVo
(){{
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setRefundAmount
(
refundAmont
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setOrderNo
(
baseOrder
.
getNo
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
}}).
getData
();
//如果返回的流水为空,则当做失败
Integer
refundStatus
=
SYS_TRUE
;
if
(
StrUtil
.
isBlank
(
refundTradeNo
))
{
refundStatus
=
SYS_FALSE
;
}
//创建订单退款记录
OrderRefund
orderRefund
=
new
OrderRefund
(){{
setOrderId
(
baseOrder
.
getId
());
setRefundAmount
(
refundAmont
);
setRefundTime
(
System
.
currentTimeMillis
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
setTradeNo
(
refundTradeNo
);
setRefundType
(
RefundTypeEnum
.
RentVehicle
.
getCode
());
}};
orderRefund
.
setRefundStatus
(
refundStatus
);
orderRefundBiz
.
insertSelective
(
orderRefund
);
}
/**
/**
* 支付回调处理
* 支付回调处理
* @param orderNo
* @param orderNo
...
@@ -216,7 +226,12 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -216,7 +226,12 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
updateOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_TOSTART
.
getCode
());
updateOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_TOSTART
.
getCode
());
//暂无处理
OrderTourDetail
otd
=
orderTourDetailBiz
.
selectOne
(
new
OrderTourDetail
(){{
setOrderId
(
baseOrder
.
getId
());
}});
//站点总人数添加
tourFeign
.
updateTourGoodPersonNum
(
otd
.
getVerificationId
(),
TourFeign
.
TOTAL_PERSON
,
otd
.
getTotalNumber
());
}
}
this
.
updateSelectiveById
(
updateOrder
);
this
.
updateSelectiveById
(
updateOrder
);
}
else
{
}
else
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/config/RabbitUserConfig.java
View file @
de0e0e3a
...
@@ -19,6 +19,10 @@ import java.util.Map;
...
@@ -19,6 +19,10 @@ import java.util.Map;
@Configuration
@Configuration
public
class
RabbitUserConfig
{
public
class
RabbitUserConfig
{
public
static
final
String
ORDER_CANCEL_EXC
=
"order_cancel_delay_exchange"
;
public
static
final
String
ORDER_CANCEL_QUE
=
"order_cancel_delay_queue"
;
public
static
final
String
ORDER_CANCEL_KEY
=
"order_cancel_delay_key"
;
/**
/**
* 延时队列交换机
* 延时队列交换机
* 注意这里的交换机类型:CustomExchange
* 注意这里的交换机类型:CustomExchange
...
@@ -28,7 +32,7 @@ public class RabbitUserConfig {
...
@@ -28,7 +32,7 @@ public class RabbitUserConfig {
public
CustomExchange
delayExchange
(){
public
CustomExchange
delayExchange
(){
Map
<
String
,
Object
>
args
=
new
HashMap
<>();
Map
<
String
,
Object
>
args
=
new
HashMap
<>();
args
.
put
(
"x-delayed-type"
,
"direct"
);
args
.
put
(
"x-delayed-type"
,
"direct"
);
return
new
CustomExchange
(
"delay_exchange"
,
"x-delayed-message"
,
true
,
false
,
args
);
return
new
CustomExchange
(
ORDER_CANCEL_EXC
,
"x-delayed-message"
,
true
,
false
,
args
);
}
}
/**
/**
...
@@ -37,16 +41,16 @@ public class RabbitUserConfig {
...
@@ -37,16 +41,16 @@ public class RabbitUserConfig {
*/
*/
@Bean
@Bean
public
Queue
delayQueue
(){
public
Queue
delayQueue
(){
return
new
Queue
(
"delay_queue"
,
true
);
return
new
Queue
(
ORDER_CANCEL_QUE
,
true
);
}
}
/**
/**
* 给延时队列绑定交换机
* 给延时队列绑定交换机
* @return
* @return
*/
*/
@Bean
@Bean
public
Binding
cfgDelayBinding
(
Queue
cfgDelayQueue
,
CustomExchange
cfgUserDelayExchange
){
public
Binding
cfgDelayBinding
(
Queue
cfgDelayQueue
,
CustomExchange
cfgUserDelayExchange
){
return
BindingBuilder
.
bind
(
cfgDelayQueue
).
to
(
cfgUserDelayExchange
).
with
(
"delay_key"
).
noargs
();
return
BindingBuilder
.
bind
(
cfgDelayQueue
).
to
(
cfgUserDelayExchange
).
with
(
ORDER_CANCEL_KEY
).
noargs
();
}
}
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mqhandler/RabbitConsumer.java
View file @
de0e0e3a
package
com
.
xxfc
.
platform
.
order
.
mqhandler
;
package
com
.
xxfc
.
platform
.
order
.
mqhandler
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.rabbitmq.client.Channel
;
import
com.rabbitmq.client.Channel
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
...
@@ -11,6 +15,8 @@ import java.io.IOException;
...
@@ -11,6 +15,8 @@ import java.io.IOException;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
import
static
com
.
xxfc
.
platform
.
order
.
config
.
RabbitUserConfig
.
ORDER_CANCEL_QUE
;
/**
/**
* activeMq消费者类
* activeMq消费者类
* @author zhanghang
* @author zhanghang
...
@@ -19,24 +25,30 @@ import java.util.List;
...
@@ -19,24 +25,30 @@ import java.util.List;
@Slf4j
@Slf4j
@Component
@Component
public
class
RabbitConsumer
{
public
class
RabbitConsumer
{
// @Autowired
// private CcqCustomerCfgService ccqCustomerCfgService;
@Autowired
BaseOrderBiz
baseOrderBiz
;
/**
/**
* 默认情况下,如果没有配置手动ACK, 那么Spring Data AMQP 会在消息消费完毕后自动帮我们去ACK
* 默认情况下,如果没有配置手动ACK, 那么Spring Data AMQP 会在消息消费完毕后自动帮我们去ACK
* 存在问题:如果报错了,消息不会丢失,但是会无限循环消费,一直报错,如果开启了错误日志很容易就吧磁盘空间耗完
* 存在问题:如果报错了,消息不会丢失,但是会无限循环消费,一直报错,如果开启了错误日志很容易就吧磁盘空间耗完
* 解决方案:手动ACK,或者try-catch 然后在 catch 里面将错误的消息转移到其它的系列中去
* 解决方案:手动ACK,或者try-catch 然后在 catch 里面将错误的消息转移到其它的系列中去
* spring.rabbitmq.listener.simple.acknowledge-mode = manual
* spring.rabbitmq.listener.simple.acknowledge-mode = manual
* @param list 监听的内容
*/
*/
@RabbitListener
(
queues
=
"delay_queue"
)
@RabbitListener
(
queues
=
ORDER_CANCEL_QUE
)
public
void
cfgUserReceiveDealy
(
List
<
Integer
>
list
,
Message
message
,
Channel
channel
)
throws
IOException
{
public
void
orderCancelReceiveDealy
(
BaseOrder
baseOrder
,
Message
message
,
Channel
channel
)
throws
IOException
{
log
.
info
(
"===============接收队列接收消息===================="
);
log
.
info
(
"===============接收队列接收消息===================="
);
log
.
info
(
"接收时间:{},接受内容:{}"
,
LocalDateTime
.
now
(),
list
.
toString
());
log
.
info
(
"接收时间:{},接受内容:{}"
,
LocalDateTime
.
now
(),
baseOrder
.
toString
());
//通知 MQ 消息已被接收,可以ACK(从队列中删除)了
//通知 MQ 消息已被接收,可以ACK(从队列中删除)了
channel
.
basicAck
(
message
.
getMessageProperties
().
getDeliveryTag
(),
false
);
channel
.
basicAck
(
message
.
getMessageProperties
().
getDeliveryTag
(),
false
);
try
{
try
{
}
catch
(
Exception
e
)
{
baseOrderBiz
.
cancel
(
baseOrder
);
}
catch
(
BaseException
e
)
{
if
(
ResultCode
.
DB_OPERATION_FAIL_CODE
==
e
.
getStatus
())
{
log
.
info
(
"取消操作被取消"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"============消费失败,尝试消息补发再次消费!=============="
);
log
.
error
(
"============消费失败,尝试消息补发再次消费!=============="
);
log
.
error
(
e
.
getMessage
());
log
.
error
(
e
.
getMessage
());
/**
/**
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mqhandler/RabbitProduct.java
View file @
de0e0e3a
package
com
.
xxfc
.
platform
.
order
.
mqhandler
;
package
com
.
xxfc
.
platform
.
order
.
mqhandler
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -8,6 +9,9 @@ import org.springframework.stereotype.Component;
...
@@ -8,6 +9,9 @@ import org.springframework.stereotype.Component;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
import
static
com
.
xxfc
.
platform
.
order
.
config
.
RabbitUserConfig
.
ORDER_CANCEL_EXC
;
import
static
com
.
xxfc
.
platform
.
order
.
config
.
RabbitUserConfig
.
ORDER_CANCEL_KEY
;
/**
/**
* rabbitMq生产者类
* rabbitMq生产者类
* @author zhanghang
* @author zhanghang
...
@@ -20,21 +24,21 @@ public class RabbitProduct {
...
@@ -20,21 +24,21 @@ public class RabbitProduct {
@Autowired
@Autowired
private
RabbitTemplate
rabbitTemplate
;
private
RabbitTemplate
rabbitTemplate
;
public
void
sendDelayMessage
(
List
<
Integer
>
list
)
{
public
void
sendDelayMessage
(
BaseOrder
baseOrder
,
Long
delayTime
)
{
//这里的消息可以是任意对象,无需额外配置,直接传即可
//这里的消息可以是任意对象,无需额外配置,直接传即可
log
.
info
(
"===============延时队列生产消息===================="
);
log
.
info
(
"===============延时队列生产消息===================="
);
log
.
info
(
"发送时间:{},发送内容:{}"
,
LocalDateTime
.
now
(),
list
.
toString
());
log
.
info
(
"发送时间:{},发送内容:{}"
,
LocalDateTime
.
now
(),
baseOrder
.
toString
());
this
.
rabbitTemplate
.
convertAndSend
(
this
.
rabbitTemplate
.
convertAndSend
(
"delay_exchange"
,
ORDER_CANCEL_EXC
,
"delay_key"
,
ORDER_CANCEL_KEY
,
list
,
baseOrder
,
message
->
{
message
->
{
//注意这里时间可以使long,而且是设置header
//注意这里时间可以使long,而且是设置header
message
.
getMessageProperties
().
setHeader
(
"x-delay"
,
60000
);
message
.
getMessageProperties
().
setHeader
(
"x-delay"
,
delayTime
);
return
message
;
return
message
;
}
}
);
);
log
.
info
(
"{}ms后执行"
,
60000
);
log
.
info
(
"{}ms后执行"
,
delayTime
);
}
}
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/BaseOrderController.java
View file @
de0e0e3a
...
@@ -21,6 +21,7 @@ import com.xxfc.platform.order.biz.BaseOrderBiz;
...
@@ -21,6 +21,7 @@ import com.xxfc.platform.order.biz.BaseOrderBiz;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.mqhandler.RabbitProduct
;
import
com.xxfc.platform.order.pojo.order.CancelOrderDTO
;
import
com.xxfc.platform.order.pojo.order.CancelOrderDTO
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO
;
import
com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO
;
...
@@ -43,6 +44,7 @@ import org.springframework.web.bind.annotation.*;
...
@@ -43,6 +44,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -62,6 +64,8 @@ public class BaseOrderController extends CommonBaseController {
...
@@ -62,6 +64,8 @@ public class BaseOrderController extends CommonBaseController {
UserFeign
userFeign
;
UserFeign
userFeign
;
@Resource
@Resource
VehicleFeign
vehicleFeign
;
VehicleFeign
vehicleFeign
;
@Autowired
RabbitProduct
rabbitProduct
;
@Autowired
@Autowired
OrderMemberDetailBiz
orderMemberDetailBiz
;
OrderMemberDetailBiz
orderMemberDetailBiz
;
...
@@ -277,6 +281,17 @@ public class BaseOrderController extends CommonBaseController {
...
@@ -277,6 +281,17 @@ public class BaseOrderController extends CommonBaseController {
}
}
return
ObjectRestResponse
.
succ
();
return
ObjectRestResponse
.
succ
();
}
}
@RequestMapping
(
value
=
"/app/unauth/send-msg"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@ApiOperation
(
value
=
"mq发送消息"
)
@IgnoreClientToken
@IgnoreUserToken
public
ObjectRestResponse
sendMsg
()
{
rabbitProduct
.
sendDelayMessage
(
baseOrderBiz
.
selectById
(
93
),
1000L
*
60
);
return
ObjectRestResponse
.
succ
();
}
/**
/**
* 订单查询类
* 订单查询类
*/
*/
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderTourController.java
View file @
de0e0e3a
...
@@ -17,6 +17,7 @@ import com.xxfc.platform.order.pojo.AddTourDTO;
...
@@ -17,6 +17,7 @@ import com.xxfc.platform.order.pojo.AddTourDTO;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
import
com.xxfc.platform.order.service.OrderTourService
;
import
com.xxfc.platform.order.service.OrderTourService
;
import
com.xxfc.platform.tour.entity.TourGood
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -70,6 +71,8 @@ public class OrderTourController extends BaseController<OrderTourDetailBiz,Order
...
@@ -70,6 +71,8 @@ public class OrderTourController extends BaseController<OrderTourDetailBiz,Order
bo
.
setAppUserDTO
(
getUserInfo
());
bo
.
setAppUserDTO
(
getUserInfo
());
bo
.
setAdultNum
(
vo
.
getNumber
());
bo
.
setAdultNum
(
vo
.
getNumber
());
bo
.
setChildNum
(
vo
.
getChildNumber
());
bo
.
setChildNum
(
vo
.
getChildNumber
());
TourGood
tourGood
=
tourFeign
.
usableGet
(
bo
.
getGoodId
()).
getData
();
bo
.
setTourGood
(
tourGood
);
return
ObjectRestResponse
.
succ
(
orderTourService
.
calculatePrice
(
bo
));
return
ObjectRestResponse
.
succ
(
orderTourService
.
calculatePrice
(
bo
));
}
}
...
@@ -93,5 +96,8 @@ public class OrderTourController extends BaseController<OrderTourDetailBiz,Order
...
@@ -93,5 +96,8 @@ public class OrderTourController extends BaseController<OrderTourDetailBiz,Order
@ApiModelProperty
(
value
=
"儿童个数"
)
@ApiModelProperty
(
value
=
"儿童个数"
)
Integer
childNumber
;
Integer
childNumber
;
@ApiModelProperty
(
value
=
"是否保险标记 1--要保险;0--不需要"
)
Integer
hasInsure
;
}
}
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/AbstractOrderHandle.java
View file @
de0e0e3a
...
@@ -11,6 +11,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
...
@@ -11,6 +11,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.mqhandler.RabbitProduct
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -23,6 +24,9 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
...
@@ -23,6 +24,9 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
@Autowired
@Autowired
protected
Biz
detailBiz
;
protected
Biz
detailBiz
;
@Autowired
RabbitProduct
rabbitProduct
;
@Autowired
@Autowired
protected
BaseOrderBiz
baseOrderBiz
;
protected
BaseOrderBiz
baseOrderBiz
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
View file @
de0e0e3a
package
com
.
xxfc
.
platform
.
order
.
service
;
package
com
.
xxfc
.
platform
.
order
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.Dict
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.OrderTourDetailBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderCostEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.pojo.order.MemberBO
;
import
com.xxfc.platform.order.pojo.order.MemberBO
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
import
com.xxfc.platform.tour.dto.TourSpePriceDTO
;
import
com.xxfc.platform.tour.entity.TourGood
;
import
com.xxfc.platform.tour.entity.TourGoodVerification
;
import
com.xxfc.platform.tour.entity.TourUser
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.vo.TourSpePriceVo
;
import
com.xxfc.platform.vehicle.entity.SysRegion
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
import
lombok.extern.log4j.Log4j
;
import
lombok.extern.log4j.Log4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -36,10 +21,6 @@ import org.springframework.stereotype.Service;
...
@@ -36,10 +21,6 @@ import org.springframework.stereotype.Service;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
@Service
@Log4j
@Log4j
...
@@ -99,6 +80,9 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
...
@@ -99,6 +80,9 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
bo
.
getOrder
().
setName
(
bo
.
getBaseUserMemberLevel
().
getName
());
bo
.
getOrder
().
setName
(
bo
.
getBaseUserMemberLevel
().
getName
());
super
.
handleDetail
(
bo
);
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
1000L
*
60
*
30
);
}
}
@Override
@Override
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
de0e0e3a
...
@@ -43,7 +43,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -43,7 +43,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
private
static
Integer
DISCOUNT_STATUS_NONE
=
0
;
private
static
Integer
DISCOUNT_STATUS_NONE
=
0
;
private
static
Integer
DISCOUNT_STATUS_MEMBER
=
1
;
private
static
Integer
DISCOUNT_STATUS_MEMBER
=
1
;
private
static
Integer
DISCOUNT_STATUS_FIXED
=
2
;
private
static
Integer
DISCOUNT_STATUS_FIXED
=
2
;
// private static BigDecimal DEPOSIT = new BigDecimal("20000.00");
@Autowired
@Autowired
VehicleFeign
vehicleFeign
;
VehicleFeign
vehicleFeign
;
...
@@ -90,6 +89,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -90,6 +89,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
}
}
super
.
handleDetail
(
bo
);
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
1000L
*
60
*
30
);
}
}
@Override
@Override
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderTourService.java
View file @
de0e0e3a
...
@@ -3,26 +3,18 @@ package com.xxfc.platform.order.service;
...
@@ -3,26 +3,18 @@ package com.xxfc.platform.order.service;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.Dict
;
import
cn.hutool.core.lang.Dict
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.extra.template.Template
;
import
cn.hutool.extra.template.TemplateConfig
;
import
cn.hutool.extra.template.TemplateEngine
;
import
cn.hutool.extra.template.TemplateUtil
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderRentVehicleBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.OrderTourDetailBiz
;
import
com.xxfc.platform.order.biz.OrderTourDetailBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderCostEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderCostEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.OrderCostDetail
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.pojo.order.RentVehicleBO
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.price.RentVehiclePriceVO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
import
com.xxfc.platform.tour.dto.TourSpePriceDTO
;
import
com.xxfc.platform.tour.dto.TourSpePriceDTO
;
import
com.xxfc.platform.tour.entity.TourGood
;
import
com.xxfc.platform.tour.entity.TourGood
;
...
@@ -31,7 +23,6 @@ import com.xxfc.platform.tour.entity.TourUser;
...
@@ -31,7 +23,6 @@ import com.xxfc.platform.tour.entity.TourUser;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.vo.TourSpePriceVo
;
import
com.xxfc.platform.tour.vo.TourSpePriceVo
;
import
com.xxfc.platform.vehicle.entity.SysRegion
;
import
com.xxfc.platform.vehicle.entity.SysRegion
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
import
lombok.extern.log4j.Log4j
;
import
lombok.extern.log4j.Log4j
;
...
@@ -46,6 +37,9 @@ import java.util.HashMap;
...
@@ -46,6 +37,9 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
@Service
@Service
@Log4j
@Log4j
public
class
OrderTourService
extends
AbstractOrderHandle
<
OrderTourDetailBiz
,
TourBO
>
{
public
class
OrderTourService
extends
AbstractOrderHandle
<
OrderTourDetailBiz
,
TourBO
>
{
...
@@ -59,11 +53,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -59,11 +53,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
private
static
Integer
IS_CHILD
=
1
;
private
static
Integer
IS_CHILD
=
1
;
// private static BigDecimal DRIVER_PRICE = new BigDecimal("600.00");
// private static BigDecimal DAMAGE_SAFE = new BigDecimal("100.00"); //车损免赔
private
static
Integer
LEVEL_DEFAULT
=
0
;
private
static
Integer
LEVEL_DEFAULT
=
0
;
private
static
Integer
NUMBER_ZERO
=
0
;
private
static
Integer
NUMBER_ZERO
=
0
;
// private static BigDecimal DEPOSIT = new BigDecimal("20000.00");-
private
static
BigDecimal
INSURE_PRICE
=
new
BigDecimal
(
"5.00"
);
//保险
@Autowired
@Autowired
OrderCostDetailBiz
orderCostDetailBiz
;
OrderCostDetailBiz
orderCostDetailBiz
;
...
@@ -123,6 +115,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -123,6 +115,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
tourFeign
.
stock
(
bo
.
getSpePriceId
(),
bo
.
getTotalNumber
(),
TourFeign
.
STOCK_SUBTRACT
);
tourFeign
.
stock
(
bo
.
getSpePriceId
(),
bo
.
getTotalNumber
(),
TourFeign
.
STOCK_SUBTRACT
);
super
.
handleDetail
(
bo
);
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
1000L
*
60
*
30
);
}
}
@Override
@Override
...
@@ -138,6 +133,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -138,6 +133,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
BigDecimal
goodsAmount
=
BigDecimal
.
ZERO
;
BigDecimal
goodsAmount
=
BigDecimal
.
ZERO
;
BigDecimal
tourAmount
=
BigDecimal
.
ZERO
;
BigDecimal
tourAmount
=
BigDecimal
.
ZERO
;
BigDecimal
realAmount
=
BigDecimal
.
ZERO
;
BigDecimal
realAmount
=
BigDecimal
.
ZERO
;
BigDecimal
insureAmount
=
BigDecimal
.
ZERO
;
if
(
StrUtil
.
isNotBlank
(
detail
.
getTourUserIds
()))
{
if
(
StrUtil
.
isNotBlank
(
detail
.
getTourUserIds
()))
{
List
<
TourUser
>
users
=
new
ArrayList
<
TourUser
>();
List
<
TourUser
>
users
=
new
ArrayList
<
TourUser
>();
...
@@ -171,13 +167,17 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -171,13 +167,17 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
}});
}});
TourSpePriceVo
tourSpePriceVo
=
objectRestResponse
.
getData
();
TourSpePriceVo
tourSpePriceVo
=
objectRestResponse
.
getData
();
//需要保险
if
(
SYS_FALSE
.
equals
(
detail
.
getHasInsure
()))
{
//人数 * 天数 * 价格
insureAmount
=
insureAmount
.
add
(
INSURE_PRICE
.
multiply
(
new
BigDecimal
(
String
.
valueOf
(
detail
.
getTotalNumber
()
*
detail
.
getTourGood
().
getNumber
()))));
}
//总价
//总价
tourAmount
=
tourAmount
.
add
(
tourSpePriceVo
.
getTotalPrice
()).
add
(
tourSpePriceVo
.
getChildPrice
());
tourAmount
=
tourAmount
.
add
(
tourSpePriceVo
.
getTotalPrice
()).
add
(
tourSpePriceVo
.
getChildPrice
());
//商品价格
//商品价格
goodsAmount
=
goodsAmount
.
add
(
tourAmount
);
goodsAmount
=
goodsAmount
.
add
(
tourAmount
);
//总价格
//总价格
orderAmount
=
orderAmount
.
add
(
goodsAmount
);
orderAmount
=
orderAmount
.
add
(
goodsAmount
)
.
add
(
insureAmount
)
;
//真实价格
//真实价格
realAmount
=
realAmount
.
add
(
tourSpePriceVo
.
getRealPrice
()).
add
(
tourSpePriceVo
.
getRealChildPrice
());
realAmount
=
realAmount
.
add
(
tourSpePriceVo
.
getRealPrice
()).
add
(
tourSpePriceVo
.
getRealChildPrice
());
...
@@ -188,6 +188,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -188,6 +188,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
tpv
.
setRealAmount
(
realAmount
);
tpv
.
setRealAmount
(
realAmount
);
tpv
.
setNumber
(
detail
.
getAdultNum
());
tpv
.
setNumber
(
detail
.
getAdultNum
());
tpv
.
setChildNumber
(
detail
.
getChildNum
());
tpv
.
setChildNumber
(
detail
.
getChildNum
());
tpv
.
setInsurePrice
(
INSURE_PRICE
);
tpv
.
setDayNum
(
detail
.
getTourGood
().
getNumber
());
tpv
.
setInsureAmount
(
insureAmount
);
tpv
.
setTotalNumber
(
detail
.
getTotalNumber
());
//设置收费明细
//设置收费明细
costDetail
(
tpv
,
handlechildren
(
detail
));
costDetail
(
tpv
,
handlechildren
(
detail
));
...
@@ -202,6 +206,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -202,6 +206,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
if
(
NUMBER_ZERO
<
detail
.
getChildNum
())
{
if
(
NUMBER_ZERO
<
detail
.
getChildNum
())
{
childrenStr
.
append
(
",${tem_0202}"
);
childrenStr
.
append
(
",${tem_0202}"
);
}
}
if
(
SYS_TRUE
.
equals
(
detail
.
getHasInsure
()))
{
childrenStr
.
append
(
",${tem_0203}"
);
}
String
str
=
childrenStr
.
toString
();
String
str
=
childrenStr
.
toString
();
if
(
str
.
length
()
>
0
)
{
if
(
str
.
length
()
>
0
)
{
...
...
xx-tour/xx-tour-api/src/main/java/com/xxfc/platform/tour/feign/TourFeign.java
View file @
de0e0e3a
...
@@ -29,6 +29,8 @@ public interface TourFeign {
...
@@ -29,6 +29,8 @@ public interface TourFeign {
public
static
final
int
STOCK_SUBTRACT
=
1
;
public
static
final
int
STOCK_SUBTRACT
=
1
;
public
static
final
int
STOCK_PLUS
=
2
;
public
static
final
int
STOCK_PLUS
=
2
;
public
static
final
String
TOTAL_PERSON
=
"total_person"
;
/**
/**
* 计算价格
* 计算价格
* @param spePriceDto
* @param spePriceDto
...
@@ -54,7 +56,7 @@ public interface TourFeign {
...
@@ -54,7 +56,7 @@ public interface TourFeign {
@GetMapping
(
"/tourUser/app/unauth/getTourUsers"
)
@GetMapping
(
"/tourUser/app/unauth/getTourUsers"
)
public
ObjectRestResponse
<
List
<
TourUser
>>
getTourUsers
(
@RequestParam
String
ids
);
public
ObjectRestResponse
<
List
<
TourUser
>>
getTourUsers
(
@RequestParam
String
ids
);
@GetMapping
(
"/tourGood
Veri
fication/entityList"
)
@GetMapping
(
"/tourGood
/ver
fication/entityList"
)
public
ObjectRestResponse
<
List
<
TourGoodVerification
>>
entityList
(
@RequestParam
Map
<
String
,
Object
>
entity
);
public
ObjectRestResponse
<
List
<
TourGoodVerification
>>
entityList
(
@RequestParam
Map
<
String
,
Object
>
entity
);
/**
/**
...
...
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