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
9c834d40
Commit
9c834d40
authored
Jul 24, 2019
by
libin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/base-modify' into base-modify
parents
9f900150
53c23df8
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
928 additions
and
68 deletions
+928
-68
BaseBiz.java
.../java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
+7
-0
application.yml
ace-modules/ace-generator/src/main/resources/application.yml
+2
-2
generator.properties
...les/ace-generator/src/main/resources/generator.properties
+1
-1
ItemTypeEnum.java
...m/xxfc/platform/order/contant/enumerate/ItemTypeEnum.java
+67
-0
OrderItem.java
...c/main/java/com/xxfc/platform/order/entity/OrderItem.java
+160
-0
OrderLog.java
...rc/main/java/com/xxfc/platform/order/entity/OrderLog.java
+80
-0
OrderDetail.java
...ava/com/xxfc/platform/order/entity/inter/OrderDetail.java
+12
-3
OrderItemInter.java
.../com/xxfc/platform/order/entity/inter/OrderItemInter.java
+23
-0
OrderMQDTO.java
...main/java/com/xxfc/platform/order/pojo/mq/OrderMQDTO.java
+18
-5
MemberBO.java
...ain/java/com/xxfc/platform/order/pojo/order/MemberBO.java
+6
-0
OrderItemDTO.java
...java/com/xxfc/platform/order/pojo/order/OrderItemDTO.java
+6
-0
RentVehicleBO.java
...ava/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
+6
-0
TourBO.java
.../main/java/com/xxfc/platform/order/pojo/order/TourBO.java
+6
-0
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+10
-1
OrderItemBiz.java
...c/main/java/com/xxfc/platform/order/biz/OrderItemBiz.java
+35
-0
OrderLogBiz.java
...rc/main/java/com/xxfc/platform/order/biz/OrderLogBiz.java
+18
-0
OrderItemMapper.java
.../java/com/xxfc/platform/order/mapper/OrderItemMapper.java
+15
-0
OrderLogMapper.java
...n/java/com/xxfc/platform/order/mapper/OrderLogMapper.java
+15
-0
OrderItemController.java
...ava/com/xxfc/platform/order/rest/OrderItemController.java
+14
-0
OrderLogController.java
...java/com/xxfc/platform/order/rest/OrderLogController.java
+14
-0
OrderRentVehicleController.java
.../xxfc/platform/order/rest/OrderRentVehicleController.java
+3
-1
AbstractOrderHandle.java
.../com/xxfc/platform/order/service/AbstractOrderHandle.java
+17
-0
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+35
-3
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+43
-17
OrderTourService.java
...ava/com/xxfc/platform/order/service/OrderTourService.java
+31
-8
OrderItemMapper.xml
...rder-server/src/main/resources/mapper/OrderItemMapper.xml
+24
-0
OrderLogMapper.xml
...order-server/src/main/resources/mapper/OrderLogMapper.xml
+18
-0
RentVehicleBookDTO.java
...va/com/xxfc/platform/vehicle/pojo/RentVehicleBookDTO.java
+0
-1
VehicleBiz.java
...c/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
+7
-5
VehicleController.java
...ava/com/xxfc/platform/vehicle/rest/VehicleController.java
+4
-2
VehicleMapper.xml
...ehicle-server/src/main/resources/mapper/VehicleMapper.xml
+19
-19
ListTest.java
...ver/src/test/java/com/xxfc/platform/vehicle/ListTest.java
+18
-0
RegionTest.java
...r/src/test/java/com/xxfc/platform/vehicle/RegionTest.java
+194
-0
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
View file @
9c834d40
...
...
@@ -63,6 +63,13 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
insertSelectiveRe
(
entity
);
}
public
void
insertMultiSelective
(
List
<
T
>
entitys
)
{
for
(
T
entity
:
entitys
)
{
insertSelectiveRe
(
entity
);
}
}
public
int
insertSelectiveRe
(
T
entity
)
{
EntityUtils
.
setCreatAndUpdatInfo
(
entity
);
return
mapper
.
insertSelective
(
entity
);
...
...
ace-modules/ace-generator/src/main/resources/application.yml
View file @
9c834d40
...
...
@@ -10,9 +10,9 @@ spring:
datasource
:
type
:
com.alibaba.druid.pool.DruidDataSource
driverClassName
:
com.mysql.jdbc.Driver
url
:
jdbc:mysql://10.5.52.
3:3306/xxfc_activity
?useUnicode=true&characterEncoding=UTF-8
url
:
jdbc:mysql://10.5.52.
4:3306/xxfc_order
?useUnicode=true&characterEncoding=UTF-8
username
:
root
password
:
sslcloud123*()
password
:
e4549e9315f19a88
jackson
:
time-zone
:
GMT+8
date-format
:
yyyy-MM-dd HH:mm:ss
...
...
ace-modules/ace-generator/src/main/resources/generator.properties
View file @
9c834d40
#\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F
#\u5305\u540D
package
=
com.xxfc.platform.
activity
package
=
com.xxfc.platform.
order
#\u4F5C\u8005
author
=
zjw
#Email
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/ItemTypeEnum.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
;
import
java.util.HashMap
;
import
java.util.Map
;
public
enum
ItemTypeEnum
{
//item 类型 101--租车车型 102--车损免赔 103--司机费用 201--旅游成人 202--旅游儿童 203--旅游保险 301--会员
VEHICLE_MODEL
(
101
,
"租车车型"
),
DAMAGE_SAFE
(
102
,
"车损免赔"
),
DRIVER
(
103
,
"司机"
),
TOUR_ADULT
(
201
,
"旅游成人"
),
TOUR_CHILD
(
202
,
"旅游儿童"
),
TOUR_INSURE
(
203
,
"旅游保险"
),
MEMBER
(
301
,
"会员"
),
;
/**
* 编码
*/
private
Integer
code
;
/**
* 类型描述
*/
private
String
desc
;
public
static
Map
<
Integer
,
ItemTypeEnum
>
codeAndDesc
=
new
HashMap
<
Integer
,
ItemTypeEnum
>();
//Maps.newHashMap();
static
{
for
(
ItemTypeEnum
enumE
:
ItemTypeEnum
.
values
()){
codeAndDesc
.
put
(
enumE
.
getCode
(),
enumE
);
}
}
ItemTypeEnum
(
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
);
}
public
static
ItemTypeEnum
get
(
Integer
code
)
{
for
(
ItemTypeEnum
enumE
:
ItemTypeEnum
.
values
())
{
if
(
enumE
.
getCode
().
equals
(
code
))
{
return
enumE
;
}
}
return
null
;
}
}
\ No newline at end of file
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderItem.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
entity
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
javax.persistence.*
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-23 17:33:06
*/
@Data
@Table
(
name
=
"order_item"
)
public
class
OrderItem
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"主键"
)
private
Integer
id
;
/**
* 创建时间
*/
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
/**
* 更新时间
*/
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
value
=
"更新时间"
,
hidden
=
true
)
private
Long
updTime
;
/**
* 名称
*/
@Column
(
name
=
"name"
)
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
/**
* item 类型 1--租车车型 2--车损免赔 3--司机费用 4--旅游项目 5--旅游保险 6--会员
*/
@Column
(
name
=
"type"
)
@ApiModelProperty
(
value
=
"item 类型 1--租车车型 2--车损免赔 3--司机费用 4--旅游项目 5--旅游保险 6--会员"
)
private
Integer
type
;
/**
* 原单价
*/
@Column
(
name
=
"meta_unit_price"
)
@ApiModelProperty
(
value
=
"原单价"
)
private
BigDecimal
metaUnitPrice
;
/**
* 单价
*/
@Column
(
name
=
"unit_price"
)
@ApiModelProperty
(
value
=
"单价"
)
private
BigDecimal
unitPrice
;
/**
* 总数 (购买数 + 赠送数)
*/
@Column
(
name
=
"total_num"
)
@ApiModelProperty
(
value
=
"总数 (购买数 + 赠送数)"
)
private
Integer
totalNum
;
/**
* 购买数量
*/
@Column
(
name
=
"buy_num"
)
@ApiModelProperty
(
value
=
"购买数量"
)
private
Integer
buyNum
;
/**
* 赠送的数量
*/
@Column
(
name
=
"award_num"
)
@ApiModelProperty
(
value
=
"赠送的数量"
)
private
Integer
awardNum
;
/**
* 扣减数量 (从购买数里面扣减的数量)
*/
@Column
(
name
=
"cut_num"
)
@ApiModelProperty
(
value
=
"扣减数量 (从购买数里面扣减的数量)"
)
private
Integer
cutNum
;
/**
* 商品id 有些为空如车损,免赔等
*/
@Column
(
name
=
"good_id"
)
@ApiModelProperty
(
value
=
"商品id 有些为空如车损,免赔等"
)
private
Integer
goodId
;
/**
* 优惠券等扣减的价格
*/
@Column
(
name
=
"coupon_amount"
)
@ApiModelProperty
(
value
=
"优惠券扣减的价格"
)
private
BigDecimal
couponAmount
;
/**
* 真实的总价
*/
@Column
(
name
=
"real_amount"
)
@ApiModelProperty
(
value
=
"真实的总价"
)
private
BigDecimal
realAmount
;
/**
* 订单id
*/
@Column
(
name
=
"order_id"
)
@ApiModelProperty
(
value
=
"订单id"
)
private
Integer
orderId
;
public
Integer
getCalculateNum
()
{
return
buyNum
-
cutNum
;
}
public
BigDecimal
getCalculateAmount
(
Boolean
isSetRealAmount
)
{
BigDecimal
calculateAmount
=
getUnitPrice
().
multiply
(
BigDecimal
.
valueOf
(
getCalculateNum
()));
if
(
isSetRealAmount
)
{
setRealAmount
(
calculateAmount
);
}
return
calculateAmount
;
}
public
BigDecimal
handleCouponAmount
(
BigDecimal
couponAmount
)
{
BigDecimal
realAmountResidue
=
getRealAmount
().
subtract
(
couponAmount
);
//剩余价格小于0 即优惠价格超出本item的实际价格,返回剩余优惠
if
(
BigDecimal
.
ZERO
.
compareTo
(
realAmountResidue
)
>
0
)
{
setCouponAmount
(
getRealAmount
());
setRealAmount
(
BigDecimal
.
ZERO
);
return
couponAmount
.
subtract
(
getCouponAmount
());
}
else
{
//剩余价格大于等于0 即优惠价格低于本item的实际价格,返回ZERO
setCouponAmount
(
couponAmount
);
setRealAmount
(
realAmountResidue
);
return
BigDecimal
.
ZERO
;
}
}
public
BigDecimal
getTotalAmount
()
{
return
realAmount
.
add
(
couponAmount
);
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderLog.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
entity
;
import
java.io.Serializable
;
import
java.util.Date
;
import
javax.persistence.*
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
*
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-23 17:33:06
*/
@Data
@Table
(
name
=
"order_log"
)
public
class
OrderLog
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 日志id
*/
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"日志id"
)
private
Integer
id
;
/**
* 订单id
*/
@Column
(
name
=
"order_id"
)
@ApiModelProperty
(
value
=
"订单id"
)
private
Integer
orderId
;
/**
* 对应的订单状态
*/
@Column
(
name
=
"order_status"
)
@ApiModelProperty
(
value
=
"对应的订单状态"
)
private
Integer
orderStatus
;
/**
* 操作日志
*/
@Column
(
name
=
"log_content"
)
@ApiModelProperty
(
value
=
"操作日志"
)
private
String
logContent
;
/**
* 操作者id,另外 -1为系统
*/
@Column
(
name
=
"log_user_id"
)
@ApiModelProperty
(
value
=
"操作者id,另外 -1为系统"
)
private
Integer
logUserId
;
/**
* 操作者类型
*/
@Column
(
name
=
"log_user_type"
)
@ApiModelProperty
(
value
=
"操作者类型"
)
private
Integer
logUserType
;
/**
* 创建时间
*/
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
/**
* 日志类型 11--创建订单;12--创建订单;
*/
@Column
(
name
=
"type"
)
@ApiModelProperty
(
value
=
"日志类型 11--创建订单;12--创建订单;"
)
private
Integer
type
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/inter/OrderDetail.java
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
entity
.
inter
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
public
interface
OrderDetail
{
import
java.util.List
;
public
Integer
getId
();
public
interface
OrderDetail
extends
OrderItemInter
{
public
void
setId
(
Integer
id
);
Integer
getId
();
void
setId
(
Integer
id
);
Integer
getOrderId
();
...
...
@@ -19,4 +23,9 @@ public interface OrderDetail {
Integer
getOrderOrigin
();
void
setOrderOrigin
(
Integer
orderOrigin
);
List
<
String
>
getTickerNo
();
void
setTickerNo
(
List
<
String
>
tickerNo
);
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/inter/OrderItemInter.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
entity
.
inter
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
java.util.List
;
public
interface
OrderItemInter
{
List
<
OrderItem
>
getItems
();
void
setItems
(
List
<
OrderItem
>
items
);
default
OrderItem
getItemByTypeEnum
(
ItemTypeEnum
itemTypeEnum
)
{
for
(
OrderItem
item:
getItems
())
{
if
(
itemTypeEnum
.
getCode
().
equals
(
item
.
getType
()))
{
return
item
;
}
}
return
null
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/mq/OrderMQDTO.java
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
pojo
.
mq
;
import
com.xxfc.platform.order.
entity.BaseOrder
;
import
com.xxfc.platform.order.entity.
OrderMemberDetail
;
import
com.xxfc.platform.order.entity.
OrderRentVehicle
Detail
;
import
com.xxfc.platform.order.entity.
OrderTourDetail
;
import
com.xxfc.platform.order.
contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.entity.
*
;
import
com.xxfc.platform.order.entity.
inter.Order
Detail
;
import
com.xxfc.platform.order.entity.
inter.OrderItemInter
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
OrderMQDTO
extends
BaseOrder
{
public
class
OrderMQDTO
extends
BaseOrder
implements
OrderItemInter
{
public
static
final
int
ORDER_CRT
=
1
;
public
static
final
int
ORDER_CANCEL
=
2
;
...
...
@@ -20,6 +22,17 @@ public class OrderMQDTO extends BaseOrder {
OrderMemberDetail
orderMemberDetail
;
List
<
OrderItem
>
items
;
public
OrderItem
getItemByTypeEnum
(
ItemTypeEnum
itemTypeEnum
)
{
for
(
OrderItem
item:
items
)
{
if
(
itemTypeEnum
.
getCode
().
equals
(
item
.
getType
()))
{
return
item
;
}
}
return
null
;
}
/**
* 标记是什么操作
* 0--删除"
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/MemberBO.java
View file @
9c834d40
...
...
@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
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.OrderItem
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
...
...
@@ -27,4 +28,9 @@ public class MemberBO extends OrderMemberDetail implements OrderDetail {
* 优惠券*
*/
private
List
<
String
>
tickerNo
;
/**
* 订单子项
*/
List
<
OrderItem
>
items
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/OrderItemDTO.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
import
com.xxfc.platform.order.entity.OrderItem
;
public
class
OrderItemDTO
extends
OrderItem
{
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
View file @
9c834d40
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.order.pojo.order;
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.OrderItem
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
...
...
@@ -32,4 +33,9 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
* 优惠券*
*/
private
List
<
String
>
tickerNo
;
/**
* 订单子项
*/
List
<
OrderItem
>
items
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/TourBO.java
View file @
9c834d40
...
...
@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.admin.entity.User;
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.OrderItem
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
...
...
@@ -29,4 +30,9 @@ public class TourBO extends OrderTourDetail implements OrderDetail {
* 优惠券*
*/
private
List
<
String
>
tickerNo
;
/**
* 订单子项
*/
List
<
OrderItem
>
items
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
9c834d40
...
...
@@ -42,10 +42,10 @@ import org.springframework.transaction.annotation.Transactional;
import
java.math.BigDecimal
;
import
java.util.*
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
config
.
rabbit
.
RabbitConstant
.*;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.*;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
config
.
rabbit
.
RabbitConstant
.*;
/**
*
...
...
@@ -76,6 +76,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderItemBiz
orderItemBiz
;
@Autowired
VehicleFeign
vehicleFeign
;
...
...
@@ -514,6 +517,12 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
orderMQDTO
.
setOrderRentVehicleDetail
(
orvd
);
orderMQDTO
.
setOrderTourDetail
(
otd
);
orderMQDTO
.
setOrderMemberDetail
(
omd
);
//获取item
orderMQDTO
.
setItems
(
orderItemBiz
.
selectList
(
new
OrderItem
(){{
setOrderId
(
baseOrder
.
getId
());
}}));
sendQueue
(
orderMQDTO
,
sign
);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderItemBiz.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.mapper.OrderItemMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
java.math.BigDecimal
;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-23 17:33:06
*/
@Service
public
class
OrderItemBiz
extends
BaseBiz
<
OrderItemMapper
,
OrderItem
>
{
public
OrderItem
initOrderItem
(
BigDecimal
price
,
Integer
num
,
String
name
,
Integer
goodId
,
ItemTypeEnum
itemTypeEnum
){
return
new
OrderItem
(){{
setMetaUnitPrice
(
price
);
setUnitPrice
(
price
);
setBuyNum
(
num
);
setTotalNum
(
num
);
setAwardNum
(
0
);
setCutNum
(
0
);
setCouponAmount
(
BigDecimal
.
ZERO
);
setName
(
name
);
setGoodId
(
goodId
);
setType
(
itemTypeEnum
.
getCode
());
}};
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderLogBiz.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.order.entity.OrderLog
;
import
com.xxfc.platform.order.mapper.OrderLogMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
/**
*
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-23 17:33:06
*/
@Service
public
class
OrderLogBiz
extends
BaseBiz
<
OrderLogMapper
,
OrderLog
>
{
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/OrderItemMapper.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
mapper
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-23 17:33:06
*/
public
interface
OrderItemMapper
extends
Mapper
<
OrderItem
>
{
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/OrderLogMapper.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
mapper
;
import
com.xxfc.platform.order.entity.OrderLog
;
import
tk.mybatis.mapper.common.Mapper
;
/**
*
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-23 17:33:06
*/
public
interface
OrderLogMapper
extends
Mapper
<
OrderLog
>
{
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderItemController.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
rest
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.order.biz.OrderItemBiz
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"orderItem"
)
public
class
OrderItemController
extends
BaseController
<
OrderItemBiz
,
OrderItem
>
{
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderLogController.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
order
.
rest
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.order.biz.OrderLogBiz
;
import
com.xxfc.platform.order.entity.OrderLog
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"orderLog"
)
public
class
OrderLogController
extends
BaseController
<
OrderLogBiz
,
OrderLog
>
{
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRentVehicleController.java
View file @
9c834d40
...
...
@@ -29,6 +29,7 @@ import springfox.documentation.annotations.ApiIgnore;
import
javax.persistence.Column
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Controller
@RequestMapping
(
"orderRentVehicle"
)
...
...
@@ -58,7 +59,8 @@ public class OrderRentVehicleController extends CommonBaseController {
setBookEndDate
(
vo
.
getBookEndDate
());
}});
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
bo
.
setTickerNo
(
StrUtil
.
isNotBlank
(
vo
.
getTickerNos
())?
Arrays
.
asList
(
vo
.
getTickerNos
().
split
(
","
)):
null
);
bo
.
setTickerNo
(
StrUtil
.
isNotBlank
(
vo
.
getTickerNos
())?
StrUtil
.
splitTrim
(
vo
.
getTickerNos
(),
","
):
null
);
orderRentVehicleService
.
createOrder
(
bo
);
return
ObjectRestResponse
.
succ
(
bo
.
getOrder
());
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/AbstractOrderHandle.java
View file @
9c834d40
...
...
@@ -6,7 +6,9 @@ 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.activity.feign.ActivityFeign
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.OrderItemBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
...
...
@@ -19,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.math.BigDecimal
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Transactional
public
abstract
class
AbstractOrderHandle
<
Biz
extends
BaseBiz
,
Detail
extends
OrderDetail
>{
...
...
@@ -36,6 +39,12 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
@Autowired
protected
BaseOrderBiz
baseOrderBiz
;
@Autowired
protected
OrderItemBiz
orderItemBiz
;
@Autowired
ActivityFeign
activityFeign
;
protected
OrderTypeEnum
orderTypeEnum
;
protected
Integer
channel
;
...
...
@@ -101,6 +110,14 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
if
(
updateResult
>
0
)
{
detail
.
getOrder
().
setVersion
(
detail
.
getOrder
().
getVersion
()
+
1
);
}
//插入item
if
(
null
!=
detail
.
getItems
()
&&
detail
.
getItems
().
size
()
>
0
)
{
orderItemBiz
.
insertMultiSelective
(
detail
.
getItems
().
stream
().
map
(
v
->
{
v
.
setOrderId
(
detail
.
getOrderId
());
return
v
;
}).
collect
(
Collectors
.
toList
()));
}
}
/**
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
View file @
9c834d40
...
...
@@ -5,13 +5,17 @@ import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.pojo.order.MemberBO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.tour.feign.TourFeign
;
...
...
@@ -27,7 +31,9 @@ import javax.servlet.http.HttpServletRequest;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.stream.Collectors
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
@Service
...
...
@@ -61,6 +67,9 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Autowired
UserFeign
userFeign
;
@Autowired
ActivityFeign
activityFeign
;
@Autowired
public
HttpServletRequest
request
;
...
...
@@ -102,6 +111,14 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
//设置订单名称
bo
.
getOrder
().
setName
(
bo
.
getBaseUserMemberLevel
().
getName
());
OrderItem
memberItem
=
bo
.
getItemByTypeEnum
(
ItemTypeEnum
.
MEMBER
);
BigDecimal
amount
=
memberItem
.
getTotalAmount
();
//如果有使用优惠券,则扣减
if
(
BigDecimal
.
ZERO
.
compareTo
(
bo
.
getOrder
().
getCouponAmount
())
<
0
)
{
activityFeign
.
use
(
bo
.
getOrder
().
getUserId
(),
bo
.
getTickerNo
(),
bo
.
getOrder
().
getNo
(),
channel
,
amount
,
ActivityFeign
.
TYPE_USE
);
}
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
...
...
@@ -120,13 +137,28 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
BigDecimal
orderAmount
=
BigDecimal
.
ZERO
;
BigDecimal
goodsAmount
=
BigDecimal
.
ZERO
;
BigDecimal
realAmount
=
BigDecimal
.
ZERO
;
BigDecimal
couponAmount
=
BigDecimal
.
ZERO
;
//设置Item
OrderItem
vehicleOrderItem
=
orderItemBiz
.
initOrderItem
(
detail
.
getBaseUserMemberLevel
().
getPrice
(),
1
,
detail
.
getBaseUserMemberLevel
().
getName
(),
detail
.
getBaseUserMemberLevel
().
getId
(),
ItemTypeEnum
.
MEMBER
);
//商品价格
goodsAmount
=
goodsAmount
.
add
(
vehicleOrderItem
.
getCalculateAmount
(
Boolean
.
TRUE
));
//vehicleAmount 优惠券处理
if
(
null
!=
detail
.
getTickerNo
()
&&
detail
.
getTickerNo
().
size
()
>
0
)
{
couponAmount
=
activityFeign
.
use
(
detail
.
getOrder
().
getUserId
(),
detail
.
getTickerNo
(),
detail
.
getOrder
().
getNo
(),
channel
,
goodsAmount
,
ActivityFeign
.
TYPE_NO_USE
);
if
(
couponAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
detail
.
getOrder
().
setCouponTickerNos
(
detail
.
getTickerNo
().
stream
().
collect
(
Collectors
.
joining
(
","
)));
detail
.
getOrder
().
setHasDiscount
(
SYS_TRUE
);
vehicleOrderItem
.
handleCouponAmount
(
couponAmount
);
}
}
//商品价格
goodsAmount
=
goodsAmount
.
add
(
detail
.
getBaseUserMemberLevel
().
getPrice
());
//订单总价格
orderAmount
=
orderAmount
.
add
(
goodsAmount
);
//真实价格
realAmount
=
realAmount
.
add
(
orderAmount
);
realAmount
=
realAmount
.
add
(
orderAmount
)
.
subtract
(
couponAmount
)
;
//生成订单明细
OrderPriceVO
opv
=
new
OrderPriceVO
();
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
9c834d40
...
...
@@ -14,11 +14,14 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderItemBiz
;
import
com.xxfc.platform.order.biz.OrderRentVehicleBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
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.OrderItem
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.pojo.order.RentVehicleBO
;
import
com.xxfc.platform.order.pojo.price.RentVehiclePriceVO
;
...
...
@@ -36,6 +39,7 @@ import org.springframework.stereotype.Service;
import
javax.annotation.PostConstruct
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
...
...
@@ -140,9 +144,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
}
}
OrderItem
vehicleModelItem
=
bo
.
getItemByTypeEnum
(
ItemTypeEnum
.
VEHICLE_MODEL
);
BigDecimal
amount
=
vehicleModelItem
.
getTotalAmount
();
//如果有使用优惠券,则扣减
if
(
BigDecimal
.
ZERO
.
compareTo
(
bo
.
getOrder
().
getCouponAmount
())
<
0
)
{
activityFeign
.
use
(
bo
.
getAppUserDTO
().
getUserid
(),
bo
.
getTickerNo
(),
bo
.
getOrder
().
getNo
(),
channel
,
bo
.
getOrder
().
getGoodsAmount
()
,
ActivityFeign
.
TYPE_USE
);
activityFeign
.
use
(
bo
.
getAppUserDTO
().
getUserid
(),
bo
.
getTickerNo
(),
bo
.
getOrder
().
getNo
(),
channel
,
amount
,
ActivityFeign
.
TYPE_USE
);
}
//获取可用车辆
...
...
@@ -177,6 +184,17 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//当前用户
AppUserDTO
dto
=
detail
.
getAppUserDTO
();
//车型信息
VehicleModel
vehicleModel
=
vehicleFeign
.
get
(
detail
.
getModelId
()).
getData
();
//设置Item
OrderItem
vehicleOrderItem
=
orderItemBiz
.
initOrderItem
(
vehicleModel
.
getPrice
(),
detail
.
getDayNum
(),
vehicleModel
.
getName
(),
vehicleModel
.
getId
(),
ItemTypeEnum
.
VEHICLE_MODEL
);
OrderItem
driverOrderItem
=
orderItemBiz
.
initOrderItem
(
DRIVER_PRICE
,
detail
.
getDayNum
(),
"平台司机"
,
null
,
ItemTypeEnum
.
DRIVER
);
OrderItem
damageSafeOrderItem
=
orderItemBiz
.
initOrderItem
(
DAMAGE_SAFE
,
detail
.
getDayNum
(),
"免赔费用"
,
null
,
ItemTypeEnum
.
DAMAGE_SAFE
);
detail
.
setItems
(
new
ArrayList
<
OrderItem
>());
detail
.
getItems
().
add
(
vehicleOrderItem
);
//如果用户存在,并且为会员,并且车辆有优惠价
if
(
null
!=
dto
&&
null
!=
detail
.
getRentFreeDay
()
&&
detail
.
getRentFreeDay
()
>
0
)
{
if
(
null
==
dto
.
getRentFreeDays
()
||
dto
.
getRentFreeDays
()
<=
0
)
{
...
...
@@ -189,6 +207,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
}
else
{
freeDayNum
=
detail
.
getDayNum
();
}
vehicleOrderItem
.
setCutNum
(
freeDayNum
);
vehicleDayNum
=
detail
.
getDayNum
()
-
freeDayNum
;
detail
.
getOrder
().
setHasMemberRight
(
SYS_TRUE
);
}
else
{
...
...
@@ -199,7 +218,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//计算价格
//计算车辆费用
VehicleModel
vehicleModel
=
vehicleFeign
.
get
(
detail
.
getModelId
()).
getData
();
//如果用户存在,并且为会员,并且车辆有优惠价
if
(
null
!=
dto
&&
SYS_TRUE
.
equals
(
dto
.
getIsMember
())
&&
!
NONE
.
getCode
().
equals
(
dto
.
getMemberLevel
())
&&
!
DISCOUNT_STATUS_NONE
.
equals
(
vehicleModel
.
getRentDiscountStatus
()))
{
...
...
@@ -220,35 +238,41 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail
.
getOrder
().
setHasMemberRight
(
SYS_TRUE
);
break
;
}
vehicleOrderItem
.
setUnitPrice
(
modelAmount
);
}
else
{
modelAmount
=
vehicleModel
.
getPrice
();
}
vehicleAmount
=
vehicleAmount
.
add
(
modelAmount
.
multiply
(
BigDecimal
.
valueOf
(
vehicleDayNum
)));
//如果有使用会员权益或者优惠券,则设置订单已优惠
if
(
SYS_TRUE
.
equals
(
detail
.
getOrder
().
getHasMemberRight
()))
{
detail
.
getOrder
().
setHasDiscount
(
SYS_TRUE
);
}
//单价 * (购买天数 - 减免天数)
vehicleAmount
=
vehicleAmount
.
add
(
vehicleOrderItem
.
getCalculateAmount
(
Boolean
.
TRUE
));
if
(
DRIVER_TYPE_COMPANY
.
equals
(
detail
.
getDriverType
()))
{
//计算司机费用
driverAmount
=
driverAmount
.
add
(
DRIVER_PRICE
.
multiply
(
BigDecimal
.
valueOf
(
detail
.
getDayNum
())));
driverAmount
=
driverAmount
.
add
(
driverOrderItem
.
getCalculateAmount
(
Boolean
.
TRUE
));
detail
.
getItems
().
add
(
driverOrderItem
);
}
if
(
DRIVER_TYPE_DAMAGE_SAFE
.
equals
(
detail
.
getDamageSafe
()))
{
//免赔费用
damageSafeAmount
=
damageSafeAmount
.
add
(
DAMAGE_SAFE
.
multiply
(
BigDecimal
.
valueOf
(
detail
.
getDayNum
())));
damageSafeAmount
=
damageSafeAmount
.
add
(
damageSafeOrderItem
.
getCalculateAmount
(
Boolean
.
TRUE
));
detail
.
getItems
().
add
(
damageSafeOrderItem
);
}
//商品价格
goodsAmount
=
goodsAmount
.
add
(
vehicleAmount
).
add
(
driverAmount
).
add
(
damageSafeAmount
);
//优惠券处理
//待完成
//vehicleAmount 优惠券处理
if
(
null
!=
detail
.
getTickerNo
()
&&
detail
.
getTickerNo
().
size
()
>
0
)
{
couponAmount
=
activityFeign
.
use
(
dto
.
getUserid
(),
detail
.
getTickerNo
(),
detail
.
getOrder
().
getNo
(),
channel
,
goods
Amount
,
ActivityFeign
.
TYPE_NO_USE
);
couponAmount
=
activityFeign
.
use
(
dto
.
getUserid
(),
detail
.
getTickerNo
(),
detail
.
getOrder
().
getNo
(),
channel
,
vehicle
Amount
,
ActivityFeign
.
TYPE_NO_USE
);
if
(
couponAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
detail
.
getOrder
().
setCouponTickerNos
(
detail
.
getTickerNo
().
stream
().
collect
(
Collectors
.
joining
(
","
)));
detail
.
getOrder
().
setHasDiscount
(
SYS_TRUE
);
vehicleOrderItem
.
handleCouponAmount
(
couponAmount
);
}
}
...
...
@@ -257,15 +281,14 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
realAmount
=
orderAmount
.
subtract
(
couponAmount
);
//生成订单明细
RentVehiclePriceVO
rvp
=
new
RentVehiclePriceVO
(){{
setDeposit
(
vehicleModel
.
getDeposit
());
setDriverPrice
(
DRIVER_PRICE
);
setDamageSafePrice
(
DAMAGE_SAFE
);
setModelName
(
vehicleModel
.
getName
());
setDayNum
(
detail
.
getDayNum
());
setVehicleNum
(
1
);
setDriverNum
(
1
);
}};
RentVehiclePriceVO
rvp
=
new
RentVehiclePriceVO
();
rvp
.
setDeposit
(
vehicleModel
.
getDeposit
());
rvp
.
setDriverPrice
(
DRIVER_PRICE
);
rvp
.
setDamageSafePrice
(
DAMAGE_SAFE
);
rvp
.
setModelName
(
vehicleModel
.
getName
());
rvp
.
setDayNum
(
detail
.
getDayNum
());
rvp
.
setVehicleNum
(
1
);
rvp
.
setDriverNum
(
1
);
rvp
.
setCouponAmount
(
couponAmount
);
rvp
.
setOrderAmount
(
orderAmount
);
rvp
.
setGoodsAmount
(
goodsAmount
);
...
...
@@ -311,6 +334,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
if
(
DRIVER_TYPE_DAMAGE_SAFE
.
equals
(
detail
.
getDamageSafe
()))
{
childrenStr
.
append
(
",${tem_0104}"
);
}
if
(
StrUtil
.
isNotBlank
(
detail
.
getOrder
().
getCouponTickerNos
()))
{
childrenStr
.
append
(
",${tem_9901}"
);
}
if
(
childrenStr
.
length
()
>
0
){
childrenStr
.
deleteCharAt
(
0
);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderTourService.java
View file @
9c834d40
...
...
@@ -12,11 +12,14 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderItemBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.OrderTourDetailBiz
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
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.OrderItem
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
...
...
@@ -138,9 +141,13 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
//扣減庫存
tourFeign
.
stock
(
bo
.
getSpePriceId
(),
bo
.
getTotalNumber
(),
TourFeign
.
STOCK_SUBTRACT
);
OrderItem
tourAdultItem
=
bo
.
getItemByTypeEnum
(
ItemTypeEnum
.
TOUR_ADULT
);
OrderItem
tourChildItem
=
bo
.
getItemByTypeEnum
(
ItemTypeEnum
.
TOUR_CHILD
);
BigDecimal
amount
=
tourAdultItem
.
getTotalAmount
().
add
(
tourChildItem
.
getTotalAmount
());
//如果有使用优惠券,则扣减
if
(
BigDecimal
.
ZERO
.
compareTo
(
bo
.
getOrder
().
getCouponAmount
())
<
0
)
{
activityFeign
.
use
(
bo
.
getAppUserDTO
().
getUserid
(),
bo
.
getTickerNo
(),
bo
.
getOrder
().
getNo
(),
channel
,
bo
.
getOrder
().
getGoodsAmount
()
,
ActivityFeign
.
TYPE_USE
);
activityFeign
.
use
(
bo
.
getAppUserDTO
().
getUserid
(),
bo
.
getTickerNo
(),
bo
.
getOrder
().
getNo
(),
channel
,
amount
,
ActivityFeign
.
TYPE_USE
);
}
super
.
handleDetail
(
bo
);
...
...
@@ -203,33 +210,47 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
}});
TourSpePriceVo
tourSpePriceVo
=
objectRestResponse
.
getData
();
//设置Item
OrderItem
tourAdultItem
=
orderItemBiz
.
initOrderItem
(
tourSpePriceVo
.
getOriginalPrice
(),
detail
.
getAdultNum
(),
"成人"
,
detail
.
getSpePriceId
(),
ItemTypeEnum
.
TOUR_ADULT
);
tourAdultItem
.
setUnitPrice
(
tourSpePriceVo
.
getPrice
());
OrderItem
tourChildItem
=
orderItemBiz
.
initOrderItem
(
tourSpePriceVo
.
getChildOriginalPrice
(),
detail
.
getChildNum
(),
"儿童"
,
detail
.
getSpePriceId
(),
ItemTypeEnum
.
TOUR_CHILD
);
tourChildItem
.
setUnitPrice
(
tourSpePriceVo
.
getChildPrice
());
//人数 * 天数
OrderItem
insureItem
=
orderItemBiz
.
initOrderItem
(
INSURE_PRICE
,
detail
.
getTotalNumber
()
*
detail
.
getTourGood
().
getNumber
(),
"旅游保险"
,
null
,
ItemTypeEnum
.
TOUR_INSURE
);
//需要保险
if
(
SYS_TRUE
.
equals
(
detail
.
getHasInsure
()))
{
//人数 * 天数 * 价格
insureAmount
=
insureAmount
.
add
(
INSURE_PRICE
.
multiply
(
new
BigDecimal
(
String
.
valueOf
(
detail
.
getTotalNumber
()
*
detail
.
getTourGood
().
getNumber
()))
));
insureAmount
=
insureAmount
.
add
(
insureItem
.
getCalculateAmount
(
Boolean
.
TRUE
));
}
//总价
tourAmount
=
tourAmount
.
add
(
tour
SpePriceVo
.
getTotalPrice
()).
add
(
tourSpePriceVo
.
getTotalChildPrice
(
));
tourAmount
=
tourAmount
.
add
(
tour
AdultItem
.
getCalculateAmount
(
Boolean
.
TRUE
)).
add
(
tourChildItem
.
getCalculateAmount
(
Boolean
.
TRUE
));
//商品价格
goodsAmount
=
goodsAmount
.
add
(
tourAmount
);
goodsAmount
=
goodsAmount
.
add
(
tourAmount
)
.
add
(
insureAmount
)
;
//优惠券处理
//待完成
if
(
null
!=
detail
.
getTickerNo
()
&&
detail
.
getTickerNo
().
size
()
>
0
)
{
couponAmount
=
activityFeign
.
use
(
dto
.
getUserid
(),
detail
.
getTickerNo
(),
detail
.
getOrder
().
getNo
(),
channel
,
goods
Amount
,
ActivityFeign
.
TYPE_NO_USE
);
couponAmount
=
activityFeign
.
use
(
dto
.
getUserid
(),
detail
.
getTickerNo
(),
detail
.
getOrder
().
getNo
(),
channel
,
tour
Amount
,
ActivityFeign
.
TYPE_NO_USE
);
if
(
couponAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
detail
.
getOrder
().
setCouponTickerNos
(
detail
.
getTickerNo
()
.
stream
().
collect
(
Collectors
.
joining
(
","
)));
detail
.
getOrder
().
setHasDiscount
(
SYS_TRUE
);
BigDecimal
residueCouponAmount
=
tourAdultItem
.
handleCouponAmount
(
couponAmount
);
if
(
residueCouponAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
tourChildItem
.
handleCouponAmount
(
residueCouponAmount
);
}
}
}
//总价格
orderAmount
=
orderAmount
.
add
(
goodsAmount
)
.
add
(
insureAmount
)
;
orderAmount
=
orderAmount
.
add
(
goodsAmount
);
//真实价格
realAmount
=
realAmount
.
add
(
tourSpePriceVo
.
getRealPrice
()).
add
(
tourSpePriceVo
.
getRealChildPrice
()).
add
(
insure
Amount
).
subtract
(
couponAmount
);
realAmount
=
realAmount
.
add
(
order
Amount
).
subtract
(
couponAmount
);
//生成订单明细
TourPriceVO
tpv
=
BeanUtil
.
toBean
(
tourSpePriceVo
,
TourPriceVO
.
class
);
...
...
@@ -260,7 +281,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
if
(
SYS_TRUE
.
equals
(
detail
.
getHasInsure
()))
{
childrenStr
.
append
(
",${tem_0203}"
);
}
if
(
StrUtil
.
isNotBlank
(
detail
.
getOrder
().
getCouponTickerNos
()))
{
childrenStr
.
append
(
",${tem_9901}"
);
}
if
(
childrenStr
.
length
()
>
0
){
childrenStr
.
deleteCharAt
(
0
);
}
...
...
xx-order/xx-order-server/src/main/resources/mapper/OrderItemMapper.xml
0 → 100644
View file @
9c834d40
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.order.mapper.OrderItemMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.order.entity.OrderItem"
id=
"orderItemMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"updTime"
column=
"upd_time"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"metaUnitPrice"
column=
"meta_unit_price"
/>
<result
property=
"unitPrice"
column=
"unit_price"
/>
<result
property=
"totalNum"
column=
"total_num"
/>
<result
property=
"buyNum"
column=
"buy_num"
/>
<result
property=
"awardNum"
column=
"award_num"
/>
<result
property=
"cutNum"
column=
"cut_num"
/>
<result
property=
"goodid"
column=
"goodId"
/>
<result
property=
"cutAmount"
column=
"cut_amount"
/>
<result
property=
"realAmount"
column=
"real_amount"
/>
</resultMap>
</mapper>
\ No newline at end of file
xx-order/xx-order-server/src/main/resources/mapper/OrderLogMapper.xml
0 → 100644
View file @
9c834d40
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.order.mapper.OrderLogMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.order.entity.OrderLog"
id=
"orderLogMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"orderId"
column=
"order_id"
/>
<result
property=
"orderStatus"
column=
"order_status"
/>
<result
property=
"logContent"
column=
"log_content"
/>
<result
property=
"logUserId"
column=
"log_user_id"
/>
<result
property=
"logUserType"
column=
"log_user_type"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"type"
column=
"type"
/>
</resultMap>
</mapper>
\ No newline at end of file
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/RentVehicleBookDTO.java
View file @
9c834d40
...
...
@@ -47,5 +47,4 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty
(
"订单号"
)
private
String
orderNo
;
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
View file @
9c834d40
...
...
@@ -308,8 +308,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
checkIfVehicleExists
(
bookVehicleVo
.
getVehicleId
());
//提取日期和相应的预定目标日期
Map
<
String
,
List
<
String
>>
yearMonthAndDate
=
Maps
.
newHashMap
();
DateTime
startDay
=
DateTime
.
parse
(
bookVehicleVo
.
getBookStartDate
(),
DEFAULT_DATE_TIME_FORMATTER
);
DateTime
endDay
=
DateTime
.
parse
(
bookVehicleVo
.
getBookEndDate
(),
DEFAULT_DATE_TIME_FORMATTER
);
String
[]
bookStartDateArray
=
bookVehicleVo
.
getBookStartDate
().
split
(
" "
);
String
[]
bookEndDateArray
=
bookVehicleVo
.
getBookEndDate
().
split
(
" "
);
DateTime
startDay
=
DateTime
.
parse
(
bookStartDateArray
[
0
],
DEFAULT_DATE_TIME_FORMATTER
);
DateTime
endDay
=
DateTime
.
parse
(
bookEndDateArray
[
0
],
DEFAULT_DATE_TIME_FORMATTER
);
//转换日期范围为列表,并检查是否合法
...
...
@@ -328,14 +331,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
VehicleBookRecord
vehicleBookRecord
=
new
VehicleBookRecord
();
vehicleBookRecord
.
setVehicleId
(
bookVehicleVo
.
getVehicleId
());
vehicleBookRecord
.
setBookType
(
bookVehicleVo
.
getBookType
());
vehicleBookRecord
.
set
vehicleBookRecord
.
setStatus
(
VehicleBookRecordStatus
.
APPLY
.
getCode
());
vehicleBookRecord
.
setBookUser
(
userId
);
vehicleBookRecord
.
setBookUserName
(
userName
);
vehicleBookRecord
.
setBookStartDate
(
DateTime
.
parse
(
book
VehicleVo
.
getBookStartDate
()
,
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
parse
(
book
StartDateArray
[
0
]
,
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
vehicleBookRecord
.
setBookEndDate
(
DateTime
.
parse
(
book
VehicleVo
.
getBookEndDate
()
,
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
parse
(
book
EndDateArray
[
0
]
,
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
vehicleBookRecord
.
setLiftAddr
(
bookVehicleVo
.
getLiftAddr
());
vehicleBookRecord
.
setRemark
(
bookVehicleVo
.
getRemark
());
vehicleBookRecord
.
setDestination
(
bookVehicleVo
.
getDestination
());
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleController.java
View file @
9c834d40
...
...
@@ -398,10 +398,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
Integer
operatorId
=
USER_APP
;
String
userName
=
dto
.
getUserName
();
//BaseContextHandler.getName();
BookVehicleVO
bookVehicleVo
=
BeanUtil
.
toBean
(
dto
,
BookVehicleVO
.
class
);
dto
.
setLimit
(
1
);
dto
.
setPage
(
1
);
bookVehicleVo
.
setBookType
(
BookType
.
USER_RENT
.
getCode
());
//查询可车辆信息
PageDataVO
<
Vehicle
>
pageDataVO
=
vehicleBiz
.
searchUsableVehicle
(
dto
);
if
(
pageDataVO
.
getData
().
size
()
<=
0
)
{
...
...
@@ -409,6 +407,10 @@ public class VehicleController extends BaseController<VehicleBiz> {
add
(
"可用车辆不存在"
);
}});
}
dto
.
setBookStartDate
(
dto
.
getBookStartDate
()+
" 00:00:00"
);
dto
.
setBookEndDate
(
dto
.
getBookEndDate
()+
" 23:59:59"
);
BookVehicleVO
bookVehicleVo
=
BeanUtil
.
toBean
(
dto
,
BookVehicleVO
.
class
);
bookVehicleVo
.
setBookType
(
BookType
.
USER_RENT
.
getCode
());
bookVehicleVo
.
setVehicleId
(
pageDataVO
.
getData
().
get
(
0
).
getId
());
VehicleBookRecord
vehicleBookRecord
=
baseBiz
.
applyVehicle4Employee
(
operatorId
,
bookVehicleVo
,
userName
);
return
ObjectRestResponse
.
succ
(
vehicleBookRecord
);
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleMapper.xml
View file @
9c834d40
...
...
@@ -214,25 +214,25 @@
v.is_del=0
<if
test=
"companyList != null"
>
and ( v.park_branch_company_id in (
<trim
suffixOverrides=
","
>
<foreach
collection=
"companyList"
item=
"companyId"
>
#{companyId},
</foreach>
</trim>
)
or v.expect_destination_branch_company_id in (
<trim
suffixOverrides=
","
>
<foreach
collection=
"companyList"
item=
"companyId"
>
#{companyId},
</foreach>
</trim>
)
<!-- or v.subordinate_branch in (-->
<!-- <trim suffixOverrides=",">-->
<!-- <foreach collection="companyList" item="companyId">-->
<!-- #{companyId},-->
<!-- </foreach>-->
<!-- </trim>-->
<trim
suffixOverrides=
","
>
<foreach
collection=
"companyList"
item=
"companyId"
>
#{companyId},
</foreach>
</trim>
)
or v.expect_destination_branch_company_id in (
<trim
suffixOverrides=
","
>
<foreach
collection=
"companyList"
item=
"companyId"
>
#{companyId},
</foreach>
</trim>
)
<!-- or v.subordinate_branch in (-->
<!-- <trim suffixOverrides=",">-->
<!-- <foreach collection="companyList" item="companyId">-->
<!-- #{companyId},-->
<!-- </foreach>-->
<!-- </trim>-->
)
</if>
<if
test=
"mRangeDateEnd !=null"
>
...
...
xx-vehicle/xx-vehicle-server/src/test/java/com/xxfc/platform/vehicle/ListTest.java
View file @
9c834d40
package
com
.
xxfc
.
platform
.
vehicle
;
import
org.joda.time.DateTime
;
import
org.joda.time.format.DateTimeFormat
;
import
org.junit.Test
;
import
java.lang.reflect.Array
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
ListTest
{
@Test
public
void
ListTest
(){
List
<
Object
>
objects
=
Arrays
.
asList
();
DateTime
startDay
=
DateTime
.
parse
(
"2019-07-30 00:00:00"
,
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
System
.
out
.
println
(
startDay
);
}
}
xx-vehicle/xx-vehicle-server/src/test/java/com/xxfc/platform/vehicle/RegionTest.java
0 → 100644
View file @
9c834d40
package
com
.
xxfc
.
platform
.
vehicle
;
import
cn.hutool.core.comparator.PinyinComparator
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.io.file.FileWriter
;
import
cn.hutool.core.util.PinyinUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.ace.cache.annotation.Cache
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.stuxuhai.jpinyin.PinyinHelper
;
import
com.github.wxiaoqi.security.common.msg.TableResultResponse
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.google.common.collect.Sets
;
import
com.mysql.cj.conf.RuntimeProperty
;
import
com.xxfc.platform.vehicle.VehicleApplication
;
import
com.xxfc.platform.vehicle.biz.SysRegionBiz
;
import
com.xxfc.platform.vehicle.constant.RedisKey
;
import
com.xxfc.platform.vehicle.entity.SysRegion
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.joda.time.DateTime
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.io.PrintStream
;
import
java.util.*
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
(
classes
={
VehicleApplication
.
class
})
public
class
RegionTest
{
@Autowired
private
RedisTemplate
customRedisTemplate
;
@Autowired
private
SysRegionBiz
sysRegionBiz
;
// public static final String TEST_REDIS_KEY ="redis:{1}";
private
final
String
TEST_REDIS_KEY
=
"redis:{1}"
;
@Data
public
class
Title
{
String
title
;
List
<
String
>
lists
;
}
@Data
public
class
City
{
List
<
Title
>
city
;
}
@Data
public
class
NewData
{
Long
id
;
String
name
;
String
lat
;
String
lon
;
}
@Data
public
class
NewTitle
{
String
title
;
List
<
NewData
>
lists
;
}
@Data
public
class
NewCity
{
List
<
NewTitle
>
city
;
}
@Test
public
void
test
()
throws
Exception
{
String
jsonstr
=
"{\"city\":[{\"title\":\"A\",\"lists\":[\"阿坝\",\"阿拉善\",\"阿里\",\"安康\",\"安庆\",\"鞍山\",\"安顺\",\"安阳\",\"澳门\"]},{\"title\":\"B\",\"lists\":[\"北京\",\"白银\",\"保定\",\"宝鸡\",\"保山\",\"包头\",\"巴中\",\"北海\",\"蚌埠\",\"本溪\",\"毕节\",\"滨州\",\"百色\",\"亳州\"]},{\"title\":\"C\",\"lists\":[\"重庆\",\"成都\",\"长沙\",\"长春\",\"沧州\",\"常德\",\"昌都\",\"长治\",\"常州\",\"巢湖\",\"潮州\",\"承德\",\"郴州\",\"赤峰\",\"池州\",\"崇左\",\"楚雄\",\"滁州\",\"朝阳\"]},{\"title\":\"D\",\"lists\":[\"大连\",\"东莞\",\"大理\",\"丹东\",\"大庆\",\"大同\",\"大兴安岭\",\"德宏\",\"德阳\",\"德州\",\"定西\",\"迪庆\",\"东营\"]},{\"title\":\"E\",\"lists\":[\"鄂尔多斯\",\"恩施\",\"鄂州\"]},{\"title\":\"F\",\"lists\":[\"福州\",\"防城港\",\"佛山\",\"抚顺\",\"抚州\",\"阜新\",\"阜阳\"]},{\"title\":\"G\",\"lists\":[\"广州\",\"桂林\",\"贵阳\",\"甘南\",\"赣州\",\"甘孜\",\"广安\",\"广元\",\"贵港\",\"果洛\"]},{\"title\":\"H\",\"lists\":[\"杭州\",\"哈尔滨\",\"合肥\",\"海口\",\"呼和浩特\",\"海北\",\"海东\",\"海南\",\"海西\",\"邯郸\",\"汉中\",\"鹤壁\",\"河池\",\"鹤岗\",\"黑河\",\"衡水\",\"衡阳\",\"河源\",\"贺州\",\"红河\",\"淮安\",\"淮北\",\"怀化\",\"淮南\",\"黄冈\",\"黄南\",\"黄山\",\"黄石\",\"惠州\",\"葫芦岛\",\"呼伦贝尔\",\"湖州\",\"菏泽\"]},{\"title\":\"J\",\"lists\":[\"济南\",\"佳木斯\",\"吉安\",\"江门\",\"焦作\",\"嘉兴\",\"嘉峪关\",\"揭阳\",\"吉林\",\"金昌\",\"晋城\",\"景德镇\",\"荆门\",\"荆州\",\"金华\",\"济宁\",\"晋中\",\"锦州\",\"九江\",\"酒泉\"]},{\"title\":\"K\",\"lists\":[\"昆明\",\"开封\"]},{\"title\":\"L\",\"lists\":[\"兰州\",\"拉萨\",\"来宾\",\"莱芜\",\"廊坊\",\"乐山\",\"凉山\",\"连云港\",\"聊城\",\"辽阳\",\"辽源\",\"丽江\",\"临沧\",\"临汾\",\"临夏\",\"临沂\",\"林芝\",\"丽水\",\"六安\",\"六盘水\",\"柳州\",\"陇南\",\"龙岩\",\"娄底\",\"漯河\",\"洛阳\",\"泸州\",\"吕梁\"]},{\"title\":\"M\",\"lists\":[\"马鞍山\",\"茂名\",\"眉山\",\"梅州\",\"绵阳\",\"牡丹江\"]},{\"title\":\"N\",\"lists\":[\"南京\",\"南昌\",\"南宁\",\"宁波\",\"南充\",\"南平\",\"南通\",\"南阳\",\"那曲\",\"内江\",\"宁德\",\"怒江\"]},{\"title\":\"P\",\"lists\":[\"盘锦\",\"攀枝花\",\"平顶山\",\"平凉\",\"萍乡\",\"莆田\",\"濮阳\"]},{\"title\":\"Q\",\"lists\":[\"青岛\",\"黔东南\",\"黔南\",\"黔西南\",\"庆阳\",\"清远\",\"秦皇岛\",\"钦州\",\"齐齐哈尔\",\"泉州\",\"曲靖\",\"衢州\"]},{\"title\":\"R\",\"lists\":[\"日喀则\",\"日照\"]},{\"title\":\"S\",\"lists\":[\"上海\",\"深圳\",\"苏州\",\"沈阳\",\"石家庄\",\"三门峡\",\"三明\",\"三亚\",\"商洛\",\"商丘\",\"上饶\",\"山南\",\"汕头\",\"汕尾\",\"韶关\",\"绍兴\",\"邵阳\",\"十堰\",\"朔州\",\"四平\",\"绥化\",\"遂宁\",\"随州\",\"宿迁\",\"宿州\"]},{\"title\":\"T\",\"lists\":[\"天津\",\"太原\",\"泰安\",\"泰州\",\"台州\",\"唐山\",\"天水\",\"铁岭\",\"铜川\",\"通化\",\"通辽\",\"铜陵\",\"铜仁\",\"台湾\"]},{\"title\":\"W\",\"lists\":[\"武汉\",\"乌鲁木齐\",\"无锡\",\"威海\",\"潍坊\",\"文山\",\"温州\",\"乌海\",\"芜湖\",\"乌兰察布\",\"武威\",\"梧州\"]},{\"title\":\"X\",\"lists\":[\"厦门\",\"西安\",\"西宁\",\"襄阳\",\"湘潭\",\"湘西\",\"咸宁\",\"咸阳\",\"孝感\",\"邢台\",\"新乡\",\"信阳\",\"新余\",\"忻州\",\"西双版纳\",\"宣城\",\"许昌\",\"徐州\",\"香港\",\"锡林郭勒\",\"兴安\"]},{\"title\":\"Y\",\"lists\":[\"银川\",\"雅安\",\"延安\",\"延边\",\"盐城\",\"阳江\",\"阳泉\",\"扬州\",\"烟台\",\"宜宾\",\"宜昌\",\"宜春\",\"营口\",\"益阳\",\"永州\",\"岳阳\",\"榆林\",\"运城\",\"云浮\",\"玉树\",\"玉溪\",\"玉林\"]},{\"title\":\"Z\",\"lists\":[\"杂多县\",\"赞皇县\",\"枣强县\",\"枣阳市\",\"枣庄\",\"泽库县\",\"曾都区\",\"泽普县\",\"泽州县\",\"札达县\",\"扎赉特旗\",\"扎兰屯市\",\"扎鲁特旗\",\"扎囊县\",\"张北县\",\"张店区\",\"章贡区\",\"张家港\",\"张家界\",\"张家口\",\"漳平市\",\"漳浦县\",\"章丘市\",\"樟树市\",\"张湾区\",\"彰武县\",\"漳县\",\"张掖\",\"漳州\",\"长子县\",\"湛河区\",\"湛江\",\"站前区\",\"沾益县\",\"诏安县\",\"召陵区\",\"昭平县\",\"肇庆\",\"昭通\",\"赵县\",\"昭阳区\",\"招远市\",\"肇源县\",\"肇州县\",\"柞水县\",\"柘城县\",\"浙江\",\"镇安县\",\"振安区\",\"镇巴县\",\"正安县\",\"正定县\",\"正蓝旗\",\"正宁县\",\"蒸湘区\",\"正镶白旗\",\"正阳县\",\"郑州\",\"镇海区\",\"镇江\",\"浈江区\",\"镇康县\",\"镇赉县\",\"镇平县\",\"振兴区\",\"镇雄县\",\"镇原县\",\"志丹县\",\"治多县\",\"芝罘区\",\"枝江市\",\"芷江侗族自治县\",\"织金县\",\"中方县\",\"中江县\",\"钟楼区\",\"中牟县\",\"中宁县\",\"中山\",\"中山区\",\"钟山区\",\"钟山县\",\"中卫\",\"钟祥市\",\"中阳县\",\"中原区\",\"周村区\",\"周口\",\"周宁县\",\"舟曲县\",\"舟山\",\"周至县\",\"庄河市\",\"诸城市\",\"珠海\",\"珠晖区\",\"诸暨市\",\"驻马店\",\"准格尔旗\",\"涿鹿县\",\"卓尼\",\"涿州市\",\"卓资县\",\"珠山区\",\"竹山县\",\"竹溪县\",\"株洲\",\"株洲县\",\"淄博\",\"子长县\",\"淄川区\",\"自贡\",\"秭归县\",\"紫金县\",\"自流井区\",\"资溪县\",\"资兴市\",\"资阳\"]}]}"
;
//City city = JSONObject.parseObject
City
city
=
JSONUtil
.
toBean
(
jsonstr
,
City
.
class
);
NewCity
newCity
=
new
NewCity
();
newCity
.
setCity
(
new
ArrayList
<
NewTitle
>());
for
(
Title
title
:
city
.
getCity
())
{
NewTitle
newTitle
=
new
NewTitle
();
newTitle
.
setTitle
(
title
.
getTitle
());
newTitle
.
setLists
(
new
ArrayList
<
NewData
>());
for
(
String
str
:
title
.
getLists
())
{
TableResultResponse
<
SysRegion
>
sysRegionTableResultResponse
=
sysRegionBiz
.
selectByQuery
(
new
Query
(
new
HashMap
<
String
,
Object
>(){{
put
(
"name"
,
str
);
}}));
NewData
newData
=
new
NewData
(){{
setId
(
sysRegionTableResultResponse
.
getData
().
getRows
().
get
(
0
).
getId
());
setName
(
sysRegionTableResultResponse
.
getData
().
getRows
().
get
(
0
).
getName
());
}};
// builder()
// .id(sysRegionTableResultResponse.getData().getRows().get(0).getId()).name(sysRegionTableResultResponse.getData().getRows().get(0).getName()).build();
newTitle
.
getLists
().
add
(
newData
);
}
newCity
.
getCity
().
add
(
newTitle
);
}
//
// List<SysRegion> sysRegions = sysRegionBiz.selectCity();
// String str = new String();
// str += "{ \n\"city\": [";
// for(int i = 1;i<=26;i++) {
// str += "\n{ \"title\": \""+(char)(64+i)+"\", \n";
// str += "\"lists\":[\n";
// Boolean flag = false;
// for(SysRegion sysRegion : sysRegions) {
// if(PinyinHelper.getShortPinyin(sysRegion.getName()).substring(0,1).equals(String.valueOf((char)(96+i)))){
// //(sysRegion.getName()))
// String name = sysRegion.getName();
// if("直辖县级".equals(name)) {
// //获得父级
// SysRegion sysRegionP = sysRegionBiz.selectOne(SysRegion.builder().id(sysRegion.getParentId()).build());
// name = sysRegionP.getName();
// }
// str += "{\"id\":"+sysRegion.getId()+", \"name\":\""+name+"\"},\n";
// flag = true;
// }
// }
// if(flag) {
// str = StrUtil.sub(str, 0, str.length() - 2);
// }
// str += "]";
// str += "},\n";
// }
// str = StrUtil.sub(str, 0, str.length() - 2);
// str += "] \n }";
FileWriter
writer
=
new
FileWriter
(
"D://"
+
DateUtil
.
currentSeconds
()+
"test.properties"
);
writer
.
write
(
JSONUtil
.
toJsonStr
(
newCity
));
System
.
out
.
println
(
"test"
);
}
// @Test
// public void test1() {
// int i = DateTime.now().getMinuteOfDay() / 5;
// System.out.println("DateTime.now().getMinuteOfDay() / 5++++++++++++"+i);
// String redisLockKey = RedisKey.SYS_REGION_REFRESH_LOCK +i;//同一日每5分钟只刷新一次
// System.out.println("redisLockKey++++++++++++++++"+redisLockKey);
// String s = String.valueOf(DateTime.now().getMillis());
// System.out.println("s++++++++++++++++++"+s);
// Boolean suc = customRedisTemplate.opsForValue().setIfAbsent(redisLockKey, s);
// Boolean test1 = customRedisTemplate.opsForValue().setIfAbsent("1", "2");
// Boolean test2 = customRedisTemplate.opsForValue().setIfAbsent("1", "3");
// System.out.println("test1///////////////////////////////"+test1);
// System.out.println("test2///////////////////////////////"+test2);
// System.out.println("suc++++++++++++++++++++"+suc);
// }
//
// @Test
// public void testRedis() {
// SysRegion sysRegion = getSysRegion(1);
// System.out.println("sysRegion+++++++++"+sysRegion);
// System.out.println("TEST_REDIS_KEY+++++++++++" + TEST_REDIS_KEY);
// }
//
// @Cache(key = TEST_REDIS_KEY)
// private SysRegion getSysRegion(int id){
// SysRegion sysRegion = sysRegionBiz.selectById(2);
// return sysRegion;
// }
@Test
public
void
testStream
(){
List
<
Integer
>
integers
=
Arrays
.
asList
(
1
,
3
,
5
,
7
,
9
,
9
);
HashSet
<
Integer
>
objects
=
new
HashSet
<>();
objects
.
addAll
(
integers
);
System
.
out
.
println
(
objects
);
System
.
out
.
println
(
"获取最小值"
);
Optional
<
Integer
>
min
=
objects
.
parallelStream
().
min
(
Integer:
:
compareTo
);
if
(
min
.
isPresent
())
{
System
.
out
.
println
(
min
.
get
());
}
System
.
out
.
println
(
"获取最大"
);
Optional
<
Integer
>
max
=
integers
.
parallelStream
().
max
(
Integer:
:
compareTo
);
if
(
max
.
isPresent
())
{
System
.
out
.
println
(
max
.
get
());
}
System
.
out
.
println
(
"排序"
);
integers
.
stream
().
sorted
().
forEach
(
elem
->
System
.
out
.
println
(
elem
));
System
.
out
.
println
(
"筛选"
);
integers
.
parallelStream
().
filter
(
e
->
e
>
1
).
filter
(
e
->
e
<
9
).
forEach
(
e
->
System
.
out
.
println
(
e
));
System
.
out
.
println
(
"list的总和为"
);
integers
.
stream
().
reduce
((
a
,
b
)
->
a
+
b
).
ifPresent
(
System
.
out
::
println
);
}
}
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