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
e193425d
Commit
e193425d
authored
Sep 07, 2019
by
hezhen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into hz_dev
parents
2ce801ac
52c211ae
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
883 additions
and
237 deletions
+883
-237
CustomerServiceDTO.java
...ain/java/com/xxfc/platform/im/dto/CustomerServiceDTO.java
+76
-0
CustomerService.java
...main/java/com/xxfc/platform/im/model/CustomerService.java
+78
-0
CustomerServiceVO.java
.../main/java/com/xxfc/platform/im/vo/CustomerServiceVO.java
+77
-0
CustomerServiceBiz.java
...ain/java/com/xxfc/platform/im/biz/CustomerServiceBiz.java
+133
-0
MsgBiz.java
...server/src/main/java/com/xxfc/platform/im/biz/MsgBiz.java
+16
-5
UserBiz.java
...erver/src/main/java/com/xxfc/platform/im/biz/UserBiz.java
+39
-0
CustomerServiceRepository.java
...com/xxfc/platform/im/repos/CustomerServiceRepository.java
+31
-0
CustomerServiceController.java
.../com/xxfc/platform/im/rest/CustomerServiceController.java
+39
-0
MsgController.java
...rc/main/java/com/xxfc/platform/im/rest/MsgController.java
+2
-2
CustomerServiceAdminController.java
...latform/im/rest/admin/CustomerServiceAdminController.java
+46
-0
DedDetailDTO.java
.../main/java/com/xxfc/platform/order/pojo/DedDetailDTO.java
+3
-1
OrderRefundBiz.java
...main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
+5
-3
OrderVehicleCrosstownBiz.java
...com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
+95
-52
OrderCancelBiz.java
...ava/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
+3
-2
ArticleBiz.java
.../src/main/java/com/xxfc/platform/uccn/biz/ArticleBiz.java
+4
-0
VehicleModelController.java
...a/com/xxfc/platform/uccn/rest/VehicleModelController.java
+1
-0
VehicleModelQueryCondition.java
...xfc/platform/vehicle/pojo/VehicleModelQueryCondition.java
+2
-0
CompanyBaseBiz.java
...in/java/com/xxfc/platform/vehicle/biz/CompanyBaseBiz.java
+47
-0
VehicleActiveService.java
...a/com/xxfc/platform/vehicle/biz/VehicleActiveService.java
+177
-170
CompanyController.java
...m/xxfc/platform/vehicle/rest/admin/CompanyController.java
+2
-2
VehicleModelMapper.xml
...e-server/src/main/resources/mapper/VehicleModelMapper.xml
+7
-0
No files found.
xx-im/xx-im-api/src/main/java/com/xxfc/platform/im/dto/CustomerServiceDTO.java
0 → 100644
View file @
e193425d
package
com
.
xxfc
.
platform
.
im
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/5 10:35
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerServiceDTO
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
id
;
/**
* 客服名称
*/
private
String
name
;
/**
* 帐号
*/
private
String
account
;
/**
* 密码
*/
private
String
password
;
/**
* 客服头像
*/
private
String
icon
;
/**
* App id
*/
private
Integer
appUserId
;
/**
* im id
*/
private
String
imUserId
;
/**
* 区域id
*/
private
Integer
areaId
;
/**
* 区域名称
*/
private
String
areaName
;
/**
* 问候语句
*/
private
String
greeting
;
/**
* 客服类型
*/
private
Integer
type
;
/**
* 客服电话
*/
private
String
telphone
;
}
xx-im/xx-im-api/src/main/java/com/xxfc/platform/im/model/CustomerService.java
0 → 100644
View file @
e193425d
package
com
.
xxfc
.
platform
.
im
.
model
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.mongodb.morphia.annotations.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
org.springframework.data.mongodb.core.mapping.Field
;
/**
* @author libin
* @version 1.0
* @description 客服
* @data 2019/9/5 9:27
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
@Document
(
collection
=
"customer_service"
)
public
class
CustomerService
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
private
String
id
;
/**
* 客服名称
*/
private
String
name
;
/**
* 客服头像
*/
private
String
icon
;
/**
* App id
*/
@Field
(
"app_user_id"
)
private
Integer
appUserId
;
/**
* im id
*/
@Field
(
"im_user_id"
)
private
Integer
imUserId
;
/**
* 区域id
*/
@Field
(
"area_id"
)
private
Integer
areaId
;
/**
* 区域名称
*/
@Field
(
"area_name"
)
private
String
areaName
;
/**
* 问候语句
*/
private
String
greeting
;
/**
* 客服类型
*/
private
Integer
type
;
/**
* 客服电话
*/
private
String
telphone
;
/**
* 是事删除 true:删除状态 1:正常
*/
@Field
(
"is_del"
)
private
Boolean
isDel
;
@Field
(
"create_time"
)
private
Long
createTime
;
@Field
(
"update_time"
)
private
Long
updateTime
;
}
xx-im/xx-im-api/src/main/java/com/xxfc/platform/im/vo/CustomerServiceVO.java
0 → 100644
View file @
e193425d
package
com
.
xxfc
.
platform
.
im
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/5 10:37
*/
@Data
@Builder
(
toBuilder
=
true
)
@NoArgsConstructor
@AllArgsConstructor
public
class
CustomerServiceVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
id
;
/**
* 客服名称
*/
private
String
name
;
/**
* 密码
*/
private
String
password
;
/**
* 客服头像
*/
private
String
icon
;
/**
* App id
*/
private
Integer
appUserId
;
/**
* im id
*/
private
Integer
imUserId
;
/**
* 区域id
*/
private
Integer
areaId
;
/**
* 区域名称
*/
private
String
areaName
;
/**
* 问候语句
*/
private
String
greeting
;
/**
* 客服类型
*/
private
Integer
type
;
/**
* 客服电话
*/
private
String
telphone
;
private
Long
createTime
;
private
Long
updateTime
;
}
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/biz/CustomerServiceBiz.java
0 → 100644
View file @
e193425d
package
com
.
xxfc
.
platform
.
im
.
biz
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.common.constant.UserConstant
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.BaseResponse
;
import
com.mongodb.client.result.UpdateResult
;
import
com.xxfc.platform.im.dto.CustomerServiceDTO
;
import
com.xxfc.platform.im.model.CustomerService
;
import
com.xxfc.platform.im.model.User
;
import
com.xxfc.platform.im.repos.CustomerServiceRepository
;
import
com.xxfc.platform.im.vo.CustomerServiceVO
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Example
;
import
org.springframework.data.domain.ExampleMatcher
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.stereotype.Service
;
import
java.time.Instant
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
org
.
springframework
.
data
.
mongodb
.
core
.
query
.
Query
.
query
;
import
static
org
.
springframework
.
data
.
mongodb
.
core
.
query
.
Update
.
update
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/5 9:49
*/
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CustomerServiceBiz
{
private
final
static
String
INIT_PASSWORD
=
"12345678"
;
private
final
static
String
NICK_PRE_NAME
=
"XXKF"
;
private
final
CustomerServiceRepository
customerServiceRepository
;
private
final
MongoTemplate
mongoTemplate
;
private
final
UserBiz
userBiz
;
public
CustomerServiceVO
findById
(
String
id
){
CustomerServiceVO
customerServiceVO
=
new
CustomerServiceVO
();
customerServiceRepository
.
findById
(
id
).
ifPresent
(
customerService
->
{
BeanUtils
.
copyProperties
(
customerService
,
customerServiceVO
);
});
Map
<
Integer
,
User
>
imMap
=
userBiz
.
findAllByImUserIds
(
Arrays
.
asList
(
customerServiceVO
.
getImUserId
()));
User
user
=
imMap
.
get
(
customerServiceVO
.
getImUserId
());
customerServiceVO
.
setPassword
(
user
.
getPassword
());
return
customerServiceVO
;
}
/**
* 添加客服
* @param customerServiceDTO
*/
public
void
addCustomerService
(
CustomerServiceDTO
customerServiceDTO
){
CustomerService
customerService
=
new
CustomerService
();
BeanUtils
.
copyProperties
(
customerServiceDTO
,
customerService
);
customerService
.
setCreateTime
(
Instant
.
now
().
toEpochMilli
());
customerService
.
setName
(
String
.
format
(
"%s%s"
,
NICK_PRE_NAME
,
customerServiceDTO
.
getTelphone
()));
customerService
.
setIsDel
(
false
);
Map
<
String
,
Object
>
imMap
=
new
HashMap
<>(
2
);
imMap
.
put
(
"telephone"
,
customerServiceDTO
.
getTelphone
());
imMap
.
put
(
"password"
,
INIT_PASSWORD
);
imMap
.
put
(
"nickname"
,
customerService
.
getName
());
BaseResponse
imResponse
=
userBiz
.
register
(
imMap
);
String
imResult
=
imResponse
.
getMessage
();
JSONObject
jsonObject
=
JSON
.
parseObject
(
imResult
);
Map
<
String
,
Object
>
data
=
(
Map
<
String
,
Object
>)
jsonObject
.
get
(
"data"
);
Object
userId
=
data
.
get
(
"userId"
);
if
(
Objects
.
isNull
(
userId
)){
throw
new
BaseException
(
"注册失败"
);
}
customerService
.
setImUserId
((
Integer
)
userId
);
customerServiceRepository
.
save
(
customerService
);
}
/**
* 1: mongoTemplate.find(Query.query(Criteria.where("isDel").is(false)), CustomerService.class);
*
* 2. customerServiceRepository.findByIsDelEquals(false);
* @return
*/
public
List
<
CustomerServiceVO
>
findAll
()
{
List
<
CustomerServiceVO
>
customerServiceVOS
=
new
ArrayList
<>();
CustomerService
customer_service
=
new
CustomerService
();
Example
<
CustomerService
>
customerServiceExample
=
Example
.
of
(
customer_service
,
ExampleMatcher
.
matchingAll
());
List
<
CustomerService
>
customerServices
=
customerServiceRepository
.
findAll
(
customerServiceExample
);
CustomerServiceVO
customerServiceVO
;
if
(
CollectionUtils
.
isNotEmpty
(
customerServices
)){
List
<
Integer
>
imUserIds
=
customerServices
.
stream
().
map
(
CustomerService:
:
getImUserId
).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
User
>
imMap
=
userBiz
.
findAllByImUserIds
(
imUserIds
);
for
(
CustomerService
customerService
:
customerServices
)
{
customerServiceVO
=
new
CustomerServiceVO
();
BeanUtils
.
copyProperties
(
customerService
,
customerServiceVO
);
User
user
=
imMap
.
get
(
customerService
.
getImUserId
());
if
(
Objects
.
nonNull
(
user
)){
customerServiceVO
.
setPassword
(
user
.
getPassword
());
}
customerServiceVOS
.
add
(
customerServiceVO
);
}
}
return
customerServiceVOS
;
}
/**
* 删除客服
* @param id
* @param imUserId
*/
public
void
updateCustomerServiceIsDelToTrue
(
String
id
,
Integer
imUserId
){
Query
query
=
query
(
Criteria
.
where
(
"_id"
).
is
(
id
));
Update
update
=
update
(
"is_del"
,
true
).
set
(
"update_time"
,
Instant
.
now
().
toEpochMilli
());
mongoTemplate
.
updateFirst
(
query
,
update
,
Map
.
class
,
"customer_service"
);
userBiz
.
deleteById
(
imUserId
);
}
}
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/biz/MsgBiz.java
View file @
e193425d
...
...
@@ -8,8 +8,10 @@ import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import
com.github.wxiaoqi.security.admin.vo.ImiVo
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.im.dto.CommentVo
;
import
com.xxfc.platform.im.dto.PraiseVo
;
import
com.xxfc.platform.im.dto.QuestionParamDto
;
import
com.xxfc.platform.im.model.Comment
;
import
com.xxfc.platform.im.model.Msg
;
import
com.xxfc.platform.im.model.Praise
;
...
...
@@ -38,6 +40,9 @@ public class MsgBiz {
@Autowired
UserBiz
userBiz
;
@Autowired
ImQuestionBiz
imQuestionBiz
;
/**
* 获取消息列表
*
...
...
@@ -123,7 +128,7 @@ public class MsgBiz {
return
ObjectRestResponse
.
succ
();
}
public
ObjectRestResponse
getMsgListByUserId
(
Integer
page
,
Integer
limit
)
{
public
ObjectRestResponse
getMsgListByUserId
(
Integer
page
,
Integer
limit
,
Integer
type
)
{
//获取所有朋友圈
page
=
page
==
null
?
1
:
page
;
limit
=
limit
==
null
?
10
:
limit
;
...
...
@@ -136,8 +141,14 @@ public class MsgBiz {
}
Pageable
pageable
=
PageRequest
.
of
(--
page
,
limit
);
List
<
Integer
>
ids
=
new
ArrayList
<>();
ids
.
add
(
2
);
ids
.
add
(
4
);
if
(
type
!=
null
)
{
ids
.
add
(
type
);
}
if
(
type
!=
null
&&
type
==
5
)
{
QuestionParamDto
questionParamDto
=
new
QuestionParamDto
();
questionParamDto
.
setUserId
(
Long
.
parseLong
(
userId
+
""
));
return
imQuestionBiz
.
getList
(
questionParamDto
);
}
Query
query
=
new
Query
(
Criteria
.
where
(
"body.type"
).
in
(
ids
));
query
.
addCriteria
(
Criteria
.
where
(
"userId"
).
is
(
userId
));
int
totalSize
=
mongoTemplate
.
find
(
query
,
Msg
.
class
,
"s_msg"
).
size
();
...
...
@@ -147,7 +158,7 @@ public class MsgBiz {
List
<
MsgVo
>
msgVoList
=
replaceMsgResult
(
msgList
);
PageInfo
<
MsgVo
>
goodPageInfo
=
new
PageInfo
<>(
msgVoList
);
goodPageInfo
.
setPageSize
(
totalSize
%
limit
==
0
?
totalSize
/
limit
:
totalSize
/
limit
+
1
);
return
ObjectRestResponse
.
succ
(
goodPageInfo
);
return
ObjectRestResponse
.
succ
(
PageDataVO
.
pageInfo
(
goodPageInfo
)
);
}
...
...
@@ -246,7 +257,7 @@ public class MsgBiz {
return
praiseVoArrayList
;
}
public
List
<
CommentVo
>
replaceCommentResult
(
List
<
Comment
>
list
)
{
public
List
<
CommentVo
>
replaceCommentResult
(
List
<
Comment
>
list
)
{
List
<
CommentVo
>
commentVoList
=
new
ArrayList
<>();
for
(
Comment
comment
:
list
)
{
CommentVo
commentVo
=
new
CommentVo
();
...
...
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/biz/UserBiz.java
View file @
e193425d
...
...
@@ -4,12 +4,14 @@ import com.alibaba.fastjson.JSONObject;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.vo.ImiVo
;
import
com.github.wxiaoqi.security.common.constant.UserConstant
;
import
com.github.wxiaoqi.security.common.msg.BaseResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.mongodb.client.result.UpdateResult
;
import
com.xxfc.platform.im.model.User
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -17,6 +19,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
...
...
@@ -27,7 +30,10 @@ import java.net.HttpURLConnection;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Component
@Slf4j
...
...
@@ -229,4 +235,37 @@ public class UserBiz {
return
imiVo
;
}
/**
*根据 id 批量查询
* @param imUserIds
* @return
*/
public
Map
<
Integer
,
User
>
findAllByImUserIds
(
List
<
Integer
>
imUserIds
)
{
Map
<
Integer
,
User
>
imUserMap
=
new
HashMap
<>(
imUserIds
.
size
());
List
<
User
>
users
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"id"
).
in
(
imUserIds
)),
User
.
class
);
if
(
CollectionUtils
.
isEmpty
(
users
)){
return
imUserMap
;
}
imUserMap
=
users
.
stream
().
collect
(
Collectors
.
toMap
(
User:
:
getId
,
Function
.
identity
()));
return
imUserMap
;
}
/**
* 更新Im 密码
* @param telphone
* @param password
*/
public
void
updatePasswordByPhone
(
String
telphone
,
String
password
){
Query
query
=
Query
.
query
(
Criteria
.
where
(
"phone"
).
is
(
telphone
));
Update
update
=
Update
.
update
(
"password"
,
password
);
mongoTemplate
.
updateFirst
(
query
,
update
,
Map
.
class
,
"user"
);
}
/**
* 删除 im
* @param imUserId
*/
public
void
deleteById
(
Integer
imUserId
)
{
mongoTemplate
.
remove
(
Query
.
query
(
Criteria
.
where
(
"id"
).
is
(
imUserId
)),
User
.
class
);
}
}
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/repos/CustomerServiceRepository.java
0 → 100644
View file @
e193425d
package
com
.
xxfc
.
platform
.
im
.
repos
;
import
com.xxfc.platform.im.model.CustomerService
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
import
org.springframework.data.mongodb.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/5 10:55
*/
@Repository
public
interface
CustomerServiceRepository
extends
MongoRepository
<
CustomerService
,
String
>
{
/**
* 查询客服
* * @param isDel 删除状态
* @return
*/
List
<
CustomerService
>
findByIsDelEquals
(
Boolean
isDel
);
List
<
CustomerService
>
findByIsDel
(
Boolean
isDel
);
// @Query(value = "{'is_del':?0}",fields ="{'telphone':1}",sort = "{'create_time':-1}")
@Query
(
value
=
"{'is_del':?#{[0]}}"
,
fields
=
"{'name':1}"
,
sort
=
"{'create_time':-1}"
)
List
<
CustomerService
>
findByIsDelState
(
Boolean
isDel
);
}
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/rest/CustomerServiceController.java
0 → 100644
View file @
e193425d
package
com
.
xxfc
.
platform
.
im
.
rest
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.im.biz.CustomerServiceBiz
;
import
com.xxfc.platform.im.vo.CustomerServiceVO
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/5 10:31
*/
@RestController
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
@RequestMapping
(
"/app/unauth/customer_service"
)
public
class
CustomerServiceController
{
private
final
CustomerServiceBiz
customerServiceBiz
;
@GetMapping
(
"/list"
)
public
ObjectRestResponse
<
List
<
CustomerServiceVO
>>
findAll
(){
List
<
CustomerServiceVO
>
customerServiceVOS
=
customerServiceBiz
.
findAll
();
return
ObjectRestResponse
.
succ
(
customerServiceVOS
);
}
@GetMapping
(
"/{id}"
)
public
ObjectRestResponse
<
CustomerServiceVO
>
findById
(
@PathVariable
(
value
=
"id"
)
String
id
){
CustomerServiceVO
customerServiceVO
=
customerServiceBiz
.
findById
(
id
);
return
ObjectRestResponse
.
succ
(
customerServiceVO
);
}
}
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/rest/MsgController.java
View file @
e193425d
...
...
@@ -32,7 +32,7 @@ public class MsgController {
}
@GetMapping
(
value
=
"/getByUserId"
)
public
ObjectRestResponse
getByUserId
(
Integer
page
,
Integer
limit
)
{
return
msgBiz
.
getMsgListByUserId
(
page
,
limit
);
public
ObjectRestResponse
getByUserId
(
Integer
page
,
Integer
limit
,
Integer
type
)
{
return
msgBiz
.
getMsgListByUserId
(
page
,
limit
,
type
);
}
}
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/rest/admin/CustomerServiceAdminController.java
0 → 100644
View file @
e193425d
package
com
.
xxfc
.
platform
.
im
.
rest
.
admin
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.im.biz.CustomerServiceBiz
;
import
com.xxfc.platform.im.biz.UserBiz
;
import
com.xxfc.platform.im.dto.CustomerServiceDTO
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/5 10:32
*/
@RestController
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
@RequestMapping
(
"/admin/customer_service"
)
public
class
CustomerServiceAdminController
{
private
final
CustomerServiceBiz
customerServiceBiz
;
private
final
UserBiz
userBiz
;
@PostMapping
(
"/add"
)
public
ObjectRestResponse
<
Void
>
addCustomerService
(
@RequestBody
CustomerServiceDTO
customerServiceDTO
){
customerServiceBiz
.
addCustomerService
(
customerServiceDTO
);
return
ObjectRestResponse
.
succ
();
}
@PutMapping
(
"/update_password/{telphone}/{password}"
)
public
ObjectRestResponse
<
Void
>
updateCustomerService
(
@PathVariable
(
value
=
"telphone"
)
String
telphone
,
@PathVariable
(
value
=
"password"
)
String
password
){
userBiz
.
updatePasswordByPhone
(
telphone
,
password
);
return
ObjectRestResponse
.
succ
();
}
@DeleteMapping
(
"/delete/{id}/{imUserId}"
)
public
ObjectRestResponse
<
Void
>
deleteCustomerService
(
@PathVariable
(
value
=
"id"
)
String
id
,
@PathVariable
(
value
=
"imUserId"
)
Integer
imUserId
){
customerServiceBiz
.
updateCustomerServiceIsDelToTrue
(
id
,
imUserId
);
return
ObjectRestResponse
.
succ
();
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/DedDetailDTO.java
View file @
e193425d
...
...
@@ -8,7 +8,7 @@ import java.util.List;
@Data
public
class
DedDetailDTO
{
/**
* : 扣除项
* : 扣除项
名称
*/
String
deductions
;
...
...
@@ -34,4 +34,6 @@ public class DedDetailDTO {
//type对应的中文
String
statusName
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
View file @
e193425d
...
...
@@ -145,7 +145,7 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
* @param timeLag 与开始时间的时间差
* @param dicParentKey
*/
public
void
rentRefundProcess
(
BaseOrder
baseOrder
,
Long
timeLag
,
String
dicParentKey
)
{
public
BigDecimal
rentRefundProcess
(
BaseOrder
baseOrder
,
Long
timeLag
,
String
dicParentKey
)
{
//计算退款金额
//商品价格 - 优惠券减免的价格
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
baseOrder
.
getGoodsAmount
().
subtract
(
baseOrder
.
getCouponAmount
()));
...
...
@@ -158,6 +158,7 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
//退款子流程: 订单基础,退款描述,退款金额
refundSubProcess
(
baseOrder
,
refundDescBuilder
.
toString
(),
originalRefundAmount
,
refundAmount
,
RefundTypeEnum
.
ORDER_FUND
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
());
return
refundAmount
;
}
/**
...
...
@@ -168,7 +169,7 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
* @param dicParentKey
* @param originalDeductAmount
*/
public
void
rentRefundDepositProcess
(
BaseOrder
baseOrder
,
BigDecimal
depositAmount
,
Long
timeLag
,
String
dicParentKey
,
BigDecimal
originalDeductAmount
)
{
public
BigDecimal
rentRefundDepositProcess
(
BaseOrder
baseOrder
,
BigDecimal
depositAmount
,
Long
timeLag
,
String
dicParentKey
,
BigDecimal
originalDeductAmount
)
{
// 1、押金 + 租金(规则扣除)
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
BigDecimal
refundAmount
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
...
...
@@ -178,12 +179,13 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
BigDecimal
residueAmount
=
calculateRefund
(
originalDeductAmount
,
timeLag
,
dicParentKey
,
refundDescBuilder
);
residueAmount
=
residueAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
//退款金额 :押金 - (原扣除款 - 剩余款)
//退款金额 :押金 - (原扣除款 - 剩余款)
即: 押金 - (免费天数对应的钱 - 剩余款)
refundAmount
=
originalRefundAmount
.
subtract
(
originalDeductAmount
.
subtract
(
residueAmount
));
}
//触发押金退款
refundSubProcess
(
baseOrder
,
refundDescBuilder
.
toString
(),
originalRefundAmount
,
refundAmount
,
RefundTypeEnum
.
DEPOSIT
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
());
return
refundAmount
;
}
public
BigDecimal
calculateRefund
(
BigDecimal
goodsAmount
,
Long
timeLag
,
String
dicParentKey
,
StringBuilder
refundDescBuilder
)
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
View file @
e193425d
...
...
@@ -18,6 +18,7 @@ import com.xxfc.platform.order.contant.enumerate.DepositRefundStatus;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.entity.*
;
import
com.xxfc.platform.order.mapper.OrderVehicaleCrosstownMapper
;
import
com.xxfc.platform.order.pojo.DedDetailDTO
;
import
com.xxfc.platform.order.pojo.mq.OrderMQDTO
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto
;
...
...
@@ -34,11 +35,13 @@ import com.xxfc.platform.vehicle.pojo.VehicleDepartureVo;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.map.HashedMap
;
import
org.apache.commons.lang3.StringUtils
;
import
org.joda.time.DateTime
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.TimeZone
;
...
...
@@ -79,11 +82,11 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
List
<
OrderVehicleCrosstownDto
>
list
=
mapper
.
selectByOrderId
(
orderVehicleCrosstownDto
);
for
(
OrderVehicleCrosstownDto
value
:
list
)
{
if
(
value
!=
null
&&
value
.
getOrperaterId
()
!=
null
&&
value
.
getType
()
!=
1
)
{
if
(
value
!=
null
&&
value
.
getOrperaterId
()
!=
null
&&
value
.
getType
()
!=
1
)
{
UserDTO
userDTO
=
userFeign
.
userinfoByUid
(
value
.
getOrperaterId
()).
getData
();
if
(
userDTO
!=
null
)
{
if
(
userDTO
!=
null
)
{
CompanyDetail
branchCompany
=
vehicleFeign
.
getCompanyDetail
(
userDTO
.
getCompanyId
()).
getData
();
if
(
branchCompany
!=
null
)
{
if
(
branchCompany
!=
null
)
{
value
.
setCustomerPhone
(
branchCompany
.
getVehiceServicePhone
());
}
}
...
...
@@ -163,20 +166,20 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
}
OrderRentVehicleDetail
orderRentVehicleDetail
=
orderRentVehicleBiz
.
selectById
(
baseOrder
.
getDetailId
());
if
(
orderVehicleCrosstownDto
.
getType
()
==
CrosstownTypeEnum
.
DEPARTURE
.
getCode
())
{
boolean
flag
=
getTodayTime
(
orderRentVehicleDetail
.
getEndTime
());
if
(!
flag
)
{
return
ObjectRestResponse
.
createFailedResult
(
3502
,
"今日不是交车日期"
);
}
if
(
userDTO
.
getCompanyId
()
!=
orderRentVehicleDetail
.
getStartCompanyId
())
{
return
ObjectRestResponse
.
createFailedResult
(
3501
,
"无交车权限"
);
}
}
else
{
if
(
userDTO
.
getCompanyId
()
!=
orderRentVehicleDetail
.
getEndCompanyId
())
{
return
ObjectRestResponse
.
createFailedResult
(
3503
,
"无收车权限"
);
}
}
if
(
baseOrder
.
getStatus
()
!=
-
1
)
{
if
(
orderVehicleCrosstownDto
.
getType
()
==
CrosstownTypeEnum
.
DEPARTURE
.
getCode
())
{
boolean
flag
=
getTodayTime
(
orderRentVehicleDetail
.
getEndTime
());
if
(!
flag
)
{
return
ObjectRestResponse
.
createFailedResult
(
3502
,
"今日不是交车日期"
);
}
if
(
userDTO
.
getCompanyId
()
!=
orderRentVehicleDetail
.
getStartCompanyId
())
{
return
ObjectRestResponse
.
createFailedResult
(
3501
,
"无交车权限"
);
}
}
else
{
if
(
userDTO
.
getCompanyId
()
!=
orderRentVehicleDetail
.
getEndCompanyId
())
{
return
ObjectRestResponse
.
createFailedResult
(
3503
,
"无收车权限"
);
}
}
if
(
baseOrder
.
getStatus
()
!=
-
1
)
{
Vehicle
vehicle
=
null
;
RestResponse
<
Vehicle
>
restResponse
=
vehicleFeign
.
findById
(
orderRentVehicleDetail
.
getVehicleId
());
log
.
info
(
"获取车辆信息返回消息:{}"
,
restResponse
.
getMessage
());
...
...
@@ -186,12 +189,12 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
if
(
vehicle
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getCode
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getDesc
());
}
if
(
vehicle
.
getMileageLastUpdate
()
!=
null
)
{
//判断车辆公里数
if
(
orderVehicleCrosstownDto
.
getMileage
()
==
null
||
orderVehicleCrosstownDto
.
getMileage
()
<=
vehicle
.
getMileageLastUpdate
())
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
());
}
if
(
vehicle
.
getMileageLastUpdate
()
!=
null
)
{
//判断车辆公里数
if
(
orderVehicleCrosstownDto
.
getMileage
()
==
null
||
orderVehicleCrosstownDto
.
getMileage
()
<=
vehicle
.
getMileageLastUpdate
())
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
());
}
}
}
AppUserDTO
appUserDTO
=
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
();
...
...
@@ -204,13 +207,13 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleDepartureVo
.
setDepartureBranchCompanyId
(
orderRentVehicleDetail
.
getStartCompanyId
());
vehicleDepartureVo
.
setExpectArrivalBranchCompanyId
(
orderRentVehicleDetail
.
getEndCompanyId
());
vehicleDepartureVo
.
setMileage
(
orderVehicleCrosstownDto
.
getMileage
());
if
(
appUserDTO
!=
null
)
{
vehicleDepartureVo
.
setUser
(
appUserDTO
.
getNickname
());
vehicleDepartureVo
.
setUserTel
(
appUserDTO
.
getUsername
());
}
else
{
vehicleDepartureVo
.
setUser
(
"APP用戶"
);
vehicleDepartureVo
.
setUserTel
(
"13656235623"
);
}
if
(
appUserDTO
!=
null
)
{
vehicleDepartureVo
.
setUser
(
appUserDTO
.
getNickname
());
vehicleDepartureVo
.
setUserTel
(
appUserDTO
.
getUsername
());
}
else
{
vehicleDepartureVo
.
setUser
(
"APP用戶"
);
vehicleDepartureVo
.
setUserTel
(
"13656235623"
);
}
vehicleDepartureVo
.
setUse
(
"用户租车"
);
vehicleDepartureVo
.
setBookRecordId
(
orderRentVehicleDetail
.
getBookRecordId
());
vehicleDepartureVo
.
setCheckMan
(
orderVehicleCrosstownDto
.
getLicenseName
());
...
...
@@ -229,7 +232,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleArrivalVo
.
setMileage
(
orderVehicleCrosstownDto
.
getMileage
());
vehicleArrivalVo
.
setRecycleMan
(
userDTO
.
getName
());
vehicleArrivalVo
.
setBookRecordId
(
orderRentVehicleDetail
.
getBookRecordId
());
if
(
appUserDTO
!=
null
)
{
if
(
appUserDTO
!=
null
)
{
vehicleArrivalVo
.
setRecycleManTel
(
appUserDTO
.
getUsername
());
}
else
{
vehicleArrivalVo
.
setRecycleManTel
(
"13565235623"
);
...
...
@@ -246,17 +249,17 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
orderVehicleCrosstownDto
.
getDedDetail
());
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
jsonArray
.
get
(
i
).
toString
());
if
(
jsonObject
!=
null
)
{
if
(
jsonObject
!=
null
)
{
cost
+=
Double
.
parseDouble
(
jsonObject
.
getString
(
"cost"
));
}
}
}
BigDecimal
amount
=
new
BigDecimal
(
cost
.
toString
()).
divide
(
new
BigDecimal
(
"1"
),
2
,
BigDecimal
.
ROUND_UP
);
BigDecimal
amount
=
new
BigDecimal
(
cost
.
toString
()).
divide
(
new
BigDecimal
(
"1"
),
2
,
BigDecimal
.
ROUND_UP
);
orderVehicleCrosstownDto
.
setDeductionCost
(
amount
);
//扣除费用
orderVehicleCrosstownDto
.
setRestDeposit
(
orderRentVehicleDetail
.
getDeposit
().
subtract
(
amount
));
if
(
orderVehicleCrosstownDto
.
getRestDeposit
().
compareTo
(
getAmount
())
==
-
1
)
{
//剩余金额小于保证金
return
ObjectRestResponse
.
createFailedResult
(
500
,
"押金不足,不能交车,请联系客服!"
);
//扣除费用
orderVehicleCrosstownDto
.
setRestDeposit
(
orderRentVehicleDetail
.
getDeposit
().
subtract
(
orderVehicleCrosstownDto
.
getDeductionCost
()
));
if
(
orderVehicleCrosstownDto
.
getRestDeposit
().
compareTo
(
getAmount
())
==
-
1
)
{
//剩余金额小于保证金
return
ObjectRestResponse
.
createFailedResult
(
500
,
"押金不足,不能交车,请联系客服!"
);
}
//出车成功后修改订单状态
List
<
OrderVehicleCrosstownDto
>
oldValue
=
orderVehicleCrosstownBiz
.
selectByOrderId
(
orderVehicleCrosstownDto
);
...
...
@@ -289,7 +292,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
BigDecimal
totalAmount
=
new
BigDecimal
(
0
);
ObjectRestResponse
<
OrderPageVO
>
objectRestResponse
=
baseOrderBiz
.
getOrderDetail
(
baseOrder
.
getNo
());
if
(
objectRestResponse
.
getData
()
!=
null
&&
objectRestResponse
.
getData
().
getOrderRentVehicleDetail
()
!=
null
)
{
//总押金
-保留金
//总押金
totalAmount
=
objectRestResponse
.
getData
().
getOrderRentVehicleDetail
().
getDeposit
();
}
...
...
@@ -305,7 +308,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
depositRefundRecord
.
setTotalAmount
(
totalAmount
.
subtract
(
getAmount
()));
depositRefundRecord
.
setCrosstownId
(
orderVehicleCrosstown
.
getId
());
orderDepositRefundRecordBiz
.
saveNormalRecord
(
depositRefundRecord
);
//修改订单状态为已完成
//修改订单状态为已完成
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_FINISH
.
getCode
());
baseOrder
=
baseOrderBiz
.
updateSelectiveByIdReT
(
baseOrder
);
//修改订单详情是否押金全部退还
...
...
@@ -313,19 +316,48 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
orderRentVehicleDetail
);
baseOrderBiz
.
sendOrderMq
(
orderRentVehicleDetail
,
null
,
null
,
baseOrder
,
OrderMQDTO
.
ORDER_FINISH
);
}
else
if
(
orderVehicleCrosstown
.
getType
()
==
CrosstownTypeEnum
.
FIXED_LOSS
.
getCode
())
{
//定损还车,添加定损记录
//添加定损记录
DepositRefundRecord
depositRefundRecord
=
new
DepositRefundRecord
();
depositRefundRecord
.
setAmount
(
orderVehicleCrosstown
.
getDeductionCost
());
depositRefundRecord
.
setRestAmount
(
totalAmount
.
subtract
(
getAmount
()).
subtract
(
orderVehicleCrosstown
.
getDeductionCost
()));
depositRefundRecord
.
setTotalAmount
(
totalAmount
.
subtract
(
getAmount
()));
depositRefundRecord
.
setCrosstownId
(
orderVehicleCrosstown
.
getId
());
orderDepositRefundRecordBiz
.
saveFixLossRecord
(
depositRefundRecord
);
//修改訂單狀態為定損
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_FIXED_LOSS
.
getCode
());
baseOrderBiz
.
updateSelectiveByIdReT
(
baseOrder
);
orderRentVehicleDetail
.
setFixedLossStatus
(
1
);
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
orderRentVehicleDetail
);
//提前还车,结束时间大于当前时间
DateTime
nowTime
=
DateTime
.
now
();
DateTime
endTime
=
new
DateTime
(
orderRentVehicleDetail
.
getEndTime
());
DateTime
startTime
=
new
DateTime
(
orderRentVehicleDetail
.
getStartTime
());
//实际预定的天数
int
actualDay
=
getDaysBetweenDateTime
(
startTime
,
endTime
);
if
(
orderRentVehicleDetail
.
getEndTime
()
>
nowTime
.
getMillis
())
{
//提前的天数
int
noUsedDay
=
getDaysBetweenDateTime
(
nowTime
,
endTime
);
//退还未使用的天数,或者金额,扣除违约金,实际未使用天数的金额,最多3000元
//延期还车,结束时间小于当前时间
}
else
if
(
orderRentVehicleDetail
.
getEndTime
()
<
nowTime
.
getMillis
())
{
//延期的天数, 延期违约金是延期天数*200%
int
usedDay
=
getDaysBetweenDateTime
(
endTime
,
nowTime
);
DedDetailDTO
dedDetailDTO
=
new
DedDetailDTO
();
dedDetailDTO
.
setDeductions
(
"违约金:"
);
dedDetailDTO
.
setCost
(
baseOrder
.
getGoodsAmount
().
multiply
(
new
BigDecimal
(
usedDay
)).
multiply
(
new
BigDecimal
(
2
)));
dedDetailDTO
.
setId
(
1
);
dedDetailDTO
.
setStatusIndex
(
1
);
dedDetailDTO
.
setStatusName
(
"延期违约金"
);
dedDetailDTO
.
setType
(
3
);
orderVehicleCrosstown
.
setDedDetail
(
JSONObject
.
toJSONString
(
dedDetailDTO
));
BigDecimal
restDeposit
=
orderVehicleCrosstown
.
getRestDeposit
().
subtract
(
dedDetailDTO
.
getCost
());
orderVehicleCrosstown
.
setRestDeposit
(
restDeposit
);
orderVehicleCrosstown
.
setDeductionCost
(
orderVehicleCrosstown
.
getDeductionCost
().
add
(
dedDetailDTO
.
getCost
()));
orderVehicleCrosstownBiz
.
updateSelectiveByIdRe
(
orderVehicleCrosstown
);
}
}
//添加定损记录
DepositRefundRecord
depositRefundRecord
=
new
DepositRefundRecord
();
depositRefundRecord
.
setAmount
(
orderVehicleCrosstown
.
getDeductionCost
());
depositRefundRecord
.
setRestAmount
(
totalAmount
.
subtract
(
getAmount
()).
subtract
(
orderVehicleCrosstown
.
getDeductionCost
()));
depositRefundRecord
.
setTotalAmount
(
totalAmount
.
subtract
(
getAmount
()));
depositRefundRecord
.
setCrosstownId
(
orderVehicleCrosstown
.
getId
());
orderDepositRefundRecordBiz
.
saveFixLossRecord
(
depositRefundRecord
);
//修改訂單狀態為定損
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_FIXED_LOSS
.
getCode
());
baseOrderBiz
.
updateSelectiveByIdReT
(
baseOrder
);
orderRentVehicleDetail
.
setFixedLossStatus
(
1
);
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
orderRentVehicleDetail
);
}
else
if
(
baseOrder
.
getStatus
()
==
OrderStatusEnum
.
ORDER_FIXED_LOSS
.
getCode
())
{
//定损后还车
DepositRefundRecord
depositRefundRecord
=
orderDepositRefundRecordBiz
.
findByCrossIdAndStatus
(
orderVehicleCrosstown
.
getId
(),
DepositRefundStatus
.
FIXLOSSREFUND
.
getCode
());
if
(
depositRefundRecord
!=
null
)
{
...
...
@@ -341,7 +373,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
newValue
.
setId
(
null
);
orderDepositRefundRecordBiz
.
save
(
newValue
);
DepositRefundRecord
nextValue
=
orderDepositRefundRecordBiz
.
findByCrossIdAndStatus
(
orderVehicleCrosstown
.
getId
(),
DepositRefundStatus
.
FIXLOSSREFUNDARRIVAL
.
getCode
());
if
(
nextValue
!=
null
)
{
if
(
nextValue
!=
null
)
{
nextValue
.
setRestAmount
(
newValue
.
getRestAmount
());
orderDepositRefundRecordBiz
.
update
(
nextValue
);
}
...
...
@@ -354,6 +386,8 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
}
}
//添加订单驾驶人信息
public
void
getOrderLicense
(
OrderVehicleCrosstownDto
orderVehicleCrosstownDto
)
{
if
(
StringUtils
.
isNotBlank
(
orderVehicleCrosstownDto
.
getLicenseIdCard
()))
{
OrderUserLicense
orderUserLicense
=
new
OrderUserLicense
();
...
...
@@ -377,9 +411,18 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
public
boolean
getTodayTime
(
Long
time
)
{
long
current
=
System
.
currentTimeMillis
();
if
(
current
<=
(
time
/
(
1000
*
3600
*
24
)
*
(
1000
*
3600
*
24
)
-
TimeZone
.
getDefault
().
getRawOffset
()
)
+
24
*
60
*
60
*
1000
-
1
)
{
if
(
current
<=
(
time
/
(
1000
*
3600
*
24
)
*
(
1000
*
3600
*
24
)
-
TimeZone
.
getDefault
().
getRawOffset
()
)
+
24
*
60
*
60
*
1000
-
1
)
{
return
true
;
}
return
false
;
}
//获取两个日期之间的天数
public
int
getDaysBetweenDateTime
(
DateTime
startDay
,
DateTime
endDay
)
{
int
a
=
0
;
for
(
DateTime
curDate
=
startDay
.
plusDays
(
1
);
curDate
.
compareTo
(
endDay
)
<
0
;
curDate
=
curDate
.
plusDays
(
1
))
{
a
++;
}
return
a
;
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
View file @
e193425d
...
...
@@ -134,11 +134,12 @@ public class OrderCancelBiz {
// }
//退款流程
//退押金
orderRefundBiz
.
rentRefundDepositProcess
(
hasUpdateOrder
,
orvd
.
getDeposit
(),
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
,
freeDayAmount
);
//退订单款
orderRefundBiz
.
rentRefundProcess
(
hasUpdateOrder
,
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
);
//退押金
orderRefundBiz
.
rentRefundDepositProcess
(
hasUpdateOrder
,
orvd
.
getDeposit
(),
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
,
freeDayAmount
);
//已付款的取消订单发送消息
try
{
AppUserDTO
appUserDTO
=
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
();
...
...
xx-uccn/xx-uccn-server/src/main/java/com/xxfc/platform/uccn/biz/ArticleBiz.java
View file @
e193425d
...
...
@@ -131,6 +131,10 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
if
(
article
.
getType
()
==
null
)
{
article
.
setType
(
0
);
}
if
(
article
.
getStatus
()==
1
){
article
.
setAddTime
(
new
Date
());
}
article
.
setCreTime
(
new
Date
());
mapper
.
insertSelective
(
article
);
...
...
xx-uccn/xx-uccn-server/src/main/java/com/xxfc/platform/uccn/rest/VehicleModelController.java
View file @
e193425d
...
...
@@ -64,6 +64,7 @@ public class VehicleModelController extends CommonBaseController {
@GetMapping
(
value
=
"/findVehicleModelPage"
)
@IgnoreUserToken
public
ObjectRestResponse
<
PageDataVO
<
VehicleModelVo
>>
findVehicleModelPageUnauthfind
(
VehicleModelQueryCondition
vmqc
)
{
vmqc
.
setNotInIds
(
"67"
);
ObjectRestResponse
<
PageDataVO
<
VehicleModelVo
>>
objectRestResponse
=
vehicleFeign
.
findVehicleModelPageUnauthfind
(
vmqc
);
PageDataVO
<
VehicleModelVo
>
pageDataVOs
=
objectRestResponse
.
getData
();
pageDataVOs
.
getData
().
forEach
(
v
->
{
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/VehicleModelQueryCondition.java
View file @
e193425d
...
...
@@ -30,6 +30,8 @@ public class VehicleModelQueryCondition {
private
Integer
status
;
@ApiModelProperty
(
"分类逗号分割"
)
String
catasStr
;
@ApiModelProperty
(
"排除的车型id"
)
String
notInIds
;
@ApiModelProperty
(
value
=
"分类列表"
,
hidden
=
true
)
Map
<
Integer
,
List
<
VehiclePlatCata
>>
catas
;
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/CompanyBaseBiz.java
View file @
e193425d
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.RandomUtil
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.vehicle.common.RestResponse
;
...
...
@@ -10,6 +11,7 @@ import com.xxfc.platform.vehicle.entity.*;
import
com.xxfc.platform.vehicle.mapper.BranchCompanyStockInfoMapper
;
import
com.xxfc.platform.vehicle.mapper.CompanyBaseMapper
;
import
com.xxfc.platform.vehicle.mapper.SysRegionMapper
;
import
com.xxfc.platform.vehicle.pojo.AddOrUpdateVehicleVo
;
import
com.xxfc.platform.vehicle.pojo.dto.CompanyBaseDetailDTO
;
import
com.xxfc.platform.vehicle.pojo.vo.CompanyBaseVo
;
import
com.xxfc.platform.vehicle.pojo.vo.CompanyVo
;
...
...
@@ -26,6 +28,7 @@ import javax.servlet.http.HttpServletRequest;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Scanner
;
@Service
@Slf4j
...
...
@@ -47,6 +50,9 @@ public class CompanyBaseBiz extends BaseBiz<CompanyBaseMapper, CompanyBase> {
@Autowired
AreaBiz
areaBiz
;
@Autowired
VehicleBiz
vehicleBiz
;
@Value
(
"${branchCompanyPic.url}"
)
private
String
companyUrl
;
...
...
@@ -85,6 +91,47 @@ public class CompanyBaseBiz extends BaseBiz<CompanyBaseMapper, CompanyBase> {
return
ObjectRestResponse
.
succ
();
}
//临时数据同步4(添加车辆)
public
ObjectRestResponse
synchro4
()
throws
Exception
{
List
<
BranchCompany
>
list
=
branchCompanyBiz
.
selectListAll
();
if
(
list
.
size
()>
0
){
int
num
=
1
;
for
(
BranchCompany
branchCompany:
list
){
List
<
AddOrUpdateVehicleVo
>
addOrUpdateVehicleVoList
=
new
ArrayList
<>();
for
(
int
i
=
1
;
i
<
6
;
i
++){
String
numberPlate
=
"测试"
+
getNumberPlate
(
num
);
AddOrUpdateVehicleVo
vehicleVo
=
new
AddOrUpdateVehicleVo
();
vehicleVo
.
setCode
(
Integer
.
parseInt
(
RandomUtil
.
getRandomStr
(
4
)));
vehicleVo
.
setNumberPlate
(
numberPlate
);
vehicleVo
.
setStatus
(
1
);
vehicleVo
.
setBrand
(
5
);
vehicleVo
.
setUseType
(
1
);
vehicleVo
.
setModelId
(
67
);
vehicleVo
.
setSubordinateBranch
(
branchCompany
.
getId
());
vehicleVo
.
setMaintenanceMileage
(
3000
);
vehicleVo
.
setParkBranchCompanyId
(
branchCompany
.
getId
());
vehicleVo
.
setTravelStatus
(
3
);
addOrUpdateVehicleVoList
.
add
(
vehicleVo
);
num
++;
log
.
info
(
"----成功---num=="
+
num
+
"---numberPlate==="
+
numberPlate
);
}
vehicleBiz
.
add
(
addOrUpdateVehicleVoList
);
}
}
return
ObjectRestResponse
.
succ
();
}
public
String
getNumberPlate
(
int
number
){
String
str
=
number
+
""
;
char
[]
ary1
=
str
.
toCharArray
();
char
[]
ary2
=
{
'0'
,
'0'
,
'0'
,
'0'
};
System
.
arraycopy
(
ary1
,
0
,
ary2
,
ary2
.
length
-
ary1
.
length
,
ary1
.
length
);
String
result
=
new
String
(
ary2
);
return
result
;
}
//临时数据同步2
public
ObjectRestResponse
synchro2
(){
List
<
BranchCompany
>
list
=
branchCompanyBiz
.
selectListAll
();
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleActiveService.java
View file @
e193425d
...
...
@@ -58,95 +58,99 @@ public class VehicleActiveService {
*
* @param departureVo
*/
@Transactional
public
void
departure
(
VehicleDepartureVo
departureVo
)
{
Vehicle
vehicle
=
vehicleMapper
.
selectByPrimaryKey
(
departureVo
.
getVehicleId
());
if
(
vehicle
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getCode
());
}
if
(
StringUtils
.
isBlank
(
departureVo
.
getCheckMan
())
||
StringUtils
.
isBlank
(
departureVo
.
getCheckManTel
()))
{
throw
new
BaseException
(
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getDesc
(),
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getCode
());
}
if
(!
vehicle
.
getStatus
().
equals
(
VehicleStatus
.
NORMAL
.
getCode
()))
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_DISABLE
.
getDesc
()
+
", 车辆状态是:"
+
getVehicleStatus
(
vehicle
.
getStatus
(),
vehicle
.
getId
()),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_DISABLE
.
getCode
());
}
//添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态
checkDateInvalide
(
departureVo
);
Integer
MileageLift
=
vehicle
.
getMileageLastUpdate
();
Integer
MileageLift1
=
departureVo
.
getMileage
();
if
(
MileageLift1
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
}
if
(
MileageLift
==
null
||
MileageLift1
>=
MileageLift
)
{
// 写入车辆公里数,预计目的地
vehicle
.
setMileageLastUpdate
(
MileageLift1
);
vehicle
.
setExpectDestinationBranchCompanyId
(
departureVo
.
getExpectArrivalBranchCompanyId
());
vehicleMapper
.
updateByPrimaryKeySelective
(
vehicle
);
// 修改车辆状态,确认是空闲状态
int
result
=
vehicleMapper
.
updateStatusByIdAndStatus
(
departureVo
.
getVehicleId
(),
VehicleStatus
.
DEPARTURE
.
getCode
(),
VehicleStatus
.
NORMAL
.
getCode
());
try
{
Vehicle
vehicle
=
vehicleMapper
.
selectByPrimaryKey
(
departureVo
.
getVehicleId
());
if
(
vehicle
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getCode
());
}
if
(
StringUtils
.
isBlank
(
departureVo
.
getCheckMan
())
||
StringUtils
.
isBlank
(
departureVo
.
getCheckManTel
()))
{
throw
new
BaseException
(
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getDesc
(),
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getCode
());
}
if
(!
vehicle
.
getStatus
().
equals
(
VehicleStatus
.
NORMAL
.
getCode
()))
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_DISABLE
.
getDesc
()
+
", 车辆状态是:"
+
getVehicleStatus
(
vehicle
.
getStatus
(),
vehicle
.
getId
()),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_DISABLE
.
getCode
());
}
//修改预约记录状态
VehicleBookRecord
vehicleBookRecord
=
null
;
if
(
departureVo
.
getBookRecordId
()
!=
null
)
{
vehicleBookRecord
=
vehicleBookRecordBiz
.
selectById
(
departureVo
.
getBookRecordId
());
updateBookRecordStatus
(
vehicleBookRecord
,
1
);
//添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态
checkDateInvalide
(
departureVo
);
Integer
MileageLift
=
vehicle
.
getMileageLastUpdate
();
Integer
MileageLift1
=
departureVo
.
getMileage
();
if
(
MileageLift1
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
}
VehicleDepartureLogVo
vehicleDepartureLogVo
=
vehicleDepartureLogMapper
.
selectByBookRecordId
(
departureVo
.
getBookRecordId
());
if
(
vehicleDepartureLogVo
!=
null
)
{
BeanUtil
.
copyProperties
(
departureVo
,
vehicleDepartureLogVo
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
).
setIgnoreError
(
true
)
);
VehicleDepartureLog
departureLog
=
vehicleDepartureLogVo
.
getVehicleDeparture
(
vehicleDepartureLogVo
);
departureLog
.
setDepartureTime
(
new
Date
()
);
departureLog
.
setUpdateTime
(
new
Date
());
departureLog
.
setState
(
VehicleDepartureState
.
DEPARTURE
.
getCode
());
departureLog
.
setDepartureRemark
(
departureVo
.
getRemark
());
if
(
vehicleBookRecord
!=
null
)
{
departureLog
.
setDepartureBranchCompanyId
(
vehicleBookRecord
.
getLiftCompany
());
departureLog
.
setUse
(
BookType
.
getByCode
(
vehicleBookRecord
.
getBookType
()));
departureLog
.
setUser
(
vehicleBookRecord
.
getVehicleUsername
());
departureLog
.
setUserTel
(
vehicleBookRecord
.
getVehicleUserPhon
e
());
if
(
MileageLift
==
null
||
MileageLift1
>=
MileageLift
)
{
// 写入车辆公里数,预计目的地
vehicle
.
setMileageLastUpdate
(
MileageLift1
);
vehicle
.
setExpectDestinationBranchCompanyId
(
departureVo
.
getExpectArrivalBranchCompanyId
()
);
vehicleMapper
.
updateByPrimaryKeySelective
(
vehicle
);
// 修改车辆状态,确认是空闲状态
int
result
=
vehicleMapper
.
updateStatusByIdAndStatus
(
departureVo
.
getVehicleId
(),
VehicleStatus
.
DEPARTURE
.
getCode
(),
VehicleStatus
.
NORMAL
.
getCode
());
if
(!
vehicle
.
getStatus
().
equals
(
VehicleStatus
.
NORMAL
.
getCode
()))
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_DISABLE
.
getDesc
()
+
", 车辆状态是:"
+
getVehicleStatus
(
vehicle
.
getStatus
(),
vehicle
.
getId
()),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_DISABLE
.
getCod
e
());
}
vehicleDepartureLogMapper
.
updateByPrimaryKeySelective
(
departureLog
);
}
else
{
// 出车记录
VehicleDepartureLog
departureLog
=
new
VehicleDepartureLog
();
BeanUtils
.
copyProperties
(
departureVo
,
departureLog
);
departureLog
.
setDepartureTime
(
new
Date
());
departureLog
.
setCreateTime
(
new
Date
());
departureLog
.
setMileageStart
(
departureVo
.
getMileage
());
departureLog
.
setState
(
VehicleDepartureState
.
DEPARTURE
.
getCode
());
departureLog
.
setBookRecordId
(
departureVo
.
getBookRecordId
());
departureLog
.
setDepartureRemark
(
departureVo
.
getRemark
());
if
(
vehicleBookRecord
!=
null
)
{
departureLog
.
setDepartureBranchCompanyId
(
vehicleBookRecord
.
getLiftCompany
());
departureLog
.
setUse
(
BookType
.
getByCode
(
vehicleBookRecord
.
getBookType
()));
departureLog
.
setUser
(
vehicleBookRecord
.
getVehicleUsername
());
departureLog
.
setUserTel
(
vehicleBookRecord
.
getVehicleUserPhone
());
//修改预约记录状态
VehicleBookRecord
vehicleBookRecord
=
null
;
if
(
departureVo
.
getBookRecordId
()
!=
null
)
{
vehicleBookRecord
=
vehicleBookRecordBiz
.
selectById
(
departureVo
.
getBookRecordId
());
updateBookRecordStatus
(
vehicleBookRecord
,
1
);
}
VehicleDepartureLogVo
vehicleDepartureLogVo
=
vehicleDepartureLogMapper
.
selectByBookRecordId
(
departureVo
.
getBookRecordId
());
if
(
vehicleDepartureLogVo
!=
null
)
{
BeanUtil
.
copyProperties
(
departureVo
,
vehicleDepartureLogVo
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
).
setIgnoreError
(
true
));
VehicleDepartureLog
departureLog
=
vehicleDepartureLogVo
.
getVehicleDeparture
(
vehicleDepartureLogVo
);
departureLog
.
setDepartureTime
(
new
Date
());
departureLog
.
setUpdateTime
(
new
Date
());
departureLog
.
setState
(
VehicleDepartureState
.
DEPARTURE
.
getCode
());
departureLog
.
setDepartureRemark
(
departureVo
.
getRemark
());
if
(
vehicleBookRecord
!=
null
)
{
departureLog
.
setDepartureBranchCompanyId
(
vehicleBookRecord
.
getLiftCompany
());
departureLog
.
setUse
(
BookType
.
getByCode
(
vehicleBookRecord
.
getBookType
()));
departureLog
.
setUser
(
vehicleBookRecord
.
getVehicleUsername
());
departureLog
.
setUserTel
(
vehicleBookRecord
.
getVehicleUserPhone
());
}
vehicleDepartureLogMapper
.
updateByPrimaryKeySelective
(
departureLog
);
}
else
{
// 出车记录
VehicleDepartureLog
departureLog
=
new
VehicleDepartureLog
();
BeanUtils
.
copyProperties
(
departureVo
,
departureLog
);
departureLog
.
setDepartureTime
(
new
Date
());
departureLog
.
setCreateTime
(
new
Date
());
departureLog
.
setMileageStart
(
departureVo
.
getMileage
());
departureLog
.
setState
(
VehicleDepartureState
.
DEPARTURE
.
getCode
());
departureLog
.
setBookRecordId
(
departureVo
.
getBookRecordId
());
departureLog
.
setDepartureRemark
(
departureVo
.
getRemark
());
if
(
vehicleBookRecord
!=
null
)
{
departureLog
.
setDepartureBranchCompanyId
(
vehicleBookRecord
.
getLiftCompany
());
departureLog
.
setUse
(
BookType
.
getByCode
(
vehicleBookRecord
.
getBookType
()));
departureLog
.
setUser
(
vehicleBookRecord
.
getVehicleUsername
());
departureLog
.
setUserTel
(
vehicleBookRecord
.
getVehicleUserPhone
());
}
vehicleDepartureLogMapper
.
insert
(
departureLog
);
}
vehicleDepartureLogMapper
.
insert
(
departureLog
);
}
// 车辆活动日志
VehicleActiveLog
activeLog
=
new
VehicleActiveLog
();
activeLog
.
setVehicleId
(
departureVo
.
getVehicleId
());
activeLog
.
setActiveType
(
VehicleActiveType
.
Departure
.
getCode
());
activeLog
.
setStartTime
(
new
Date
());
activeLog
.
setCreateTime
(
new
Date
());
vehicleActiveLogMapper
.
insert
(
activeLog
);
}
else
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
// 车辆活动日志
VehicleActiveLog
activeLog
=
new
VehicleActiveLog
();
activeLog
.
setVehicleId
(
departureVo
.
getVehicleId
());
activeLog
.
setActiveType
(
VehicleActiveType
.
Departure
.
getCode
());
activeLog
.
setStartTime
(
new
Date
());
activeLog
.
setCreateTime
(
new
Date
());
vehicleActiveLogMapper
.
insert
(
activeLog
);
}
else
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
@@ -187,115 +191,115 @@ public class VehicleActiveService {
return
stringBuilder
.
toString
();
}
@Transactional
public
void
arrival
(
VehicleArrivalVo
arrivalVo
)
{
Vehicle
vehicle
=
vehicleMapper
.
selectByPrimaryKey
(
arrivalVo
.
getVehicleId
());
if
(
vehicle
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getCode
());
}
if
(
StringUtils
.
isBlank
(
arrivalVo
.
getRecycleMan
())
||
StringUtils
.
isBlank
(
arrivalVo
.
getRecycleManTel
()))
{
throw
new
BaseException
(
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getDesc
(),
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getCode
());
}
try
{
Vehicle
vehicle
=
vehicleMapper
.
selectByPrimaryKey
(
arrivalVo
.
getVehicleId
());
if
(
vehicle
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNEXIST
.
getCode
());
}
if
(
StringUtils
.
isBlank
(
arrivalVo
.
getRecycleMan
())
||
StringUtils
.
isBlank
(
arrivalVo
.
getRecycleManTel
()))
{
throw
new
BaseException
(
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getDesc
(),
ResCode
.
CHECKUSER_AND_PHONE_NOT_NULL
.
getCode
());
}
// if (!vehicle.getStatus().equals(VehicleStatus.DEPARTURE.getCode())) {
// throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
// ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
// }
Integer
Mileagerest
=
vehicle
.
getMileageLastUpdate
();
Integer
Mileagerest1
=
arrivalVo
.
getMileage
();
if
(
Mileagerest1
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
}
if
(
Mileagerest
!=
null
&&
Mileagerest1
>=
Mileagerest
)
{
VehicleBookRecord
vehicleBookRecord
=
null
;
if
(
arrivalVo
.
getBookRecordId
()
!=
null
)
{
vehicleBookRecord
=
vehicleBookRecordBiz
.
selectById
(
arrivalVo
.
getBookRecordId
());
updateBookRecordStatus
(
vehicleBookRecord
,
2
);
Integer
Mileagerest
=
vehicle
.
getMileageLastUpdate
();
Integer
Mileagerest1
=
arrivalVo
.
getMileage
();
if
(
Mileagerest1
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
}
if
(
Mileagerest
!=
null
&&
Mileagerest1
>=
Mileagerest
)
{
VehicleBookRecord
vehicleBookRecord
=
null
;
if
(
arrivalVo
.
getBookRecordId
()
!=
null
)
{
vehicleBookRecord
=
vehicleBookRecordBiz
.
selectById
(
arrivalVo
.
getBookRecordId
());
updateBookRecordStatus
(
vehicleBookRecord
,
2
);
}
// 写入车辆公里数,还车分公司id
vehicle
.
setMileageLastUpdate
(
Mileagerest1
);
if
(
vehicleBookRecord
!=
null
)
{
vehicle
.
setParkBranchCompanyId
(
vehicleBookRecord
.
getRetCompany
());
}
vehicle
.
setExpectDestinationBranchCompanyId
(
0
);
vehicleMapper
.
updateByPrimaryKeySelective
(
vehicle
);
// 写入车辆公里数,还车分公司id
vehicle
.
setMileageLastUpdate
(
Mileagerest1
);
if
(
vehicleBookRecord
!=
null
)
{
vehicle
.
setParkBranchCompanyId
(
vehicleBookRecord
.
getRetCompany
());
}
vehicle
.
setExpectDestinationBranchCompanyId
(
0
);
vehicleMapper
.
updateByPrimaryKeySelective
(
vehicle
);
// 出车记录
VehicleDepartureLogVo
departureLogVo
=
vehicleDepartureLogMapper
.
selectByBookRecordId
(
arrivalVo
.
getBookRecordId
());
// 出车记录
VehicleDepartureLogVo
departureLogVo
=
vehicleDepartureLogMapper
.
selectByBookRecordId
(
arrivalVo
.
getBookRecordId
());
if
(
departureLogVo
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getCode
());
}
// 修改状态,确认是出车状态
//兼容错误还车流程,先查询,是否有其他出行记录
boolean
flag
=
true
;
VehicleDepartureLog
departureLog
=
departureLogVo
.
getVehicleDeparture
(
departureLogVo
);
List
<
VehicleDepartureLog
>
list
=
vehicleDepartureLogMapper
.
selectByVehicle
(
arrivalVo
.
getVehicleId
());
for
(
VehicleDepartureLog
vehicleDepartureLogVo
:
list
)
{
if
(
vehicleDepartureLogVo
.
getState
()
!=
1
&&
vehicleDepartureLogVo
.
getId
()
>
departureLog
.
getId
())
{
//后面还有未收车的记录
flag
=
false
;
if
(
departureLogVo
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getCode
());
}
}
if
(
flag
)
{
//如果此条记录后面还有未收车记录,就不修改车辆状态
int
result
=
vehicleMapper
.
updateStatus
(
arrivalVo
.
getVehicleId
(),
VehicleStatus
.
NORMAL
.
getCode
());
// 修改状态,确认是出车状态
//兼容错误还车流程,先查询,是否有其他出行记录
boolean
flag
=
true
;
VehicleDepartureLog
departureLog
=
departureLogVo
.
getVehicleDeparture
(
departureLogVo
);
List
<
VehicleDepartureLog
>
list
=
vehicleDepartureLogMapper
.
selectByVehicle
(
arrivalVo
.
getVehicleId
());
for
(
VehicleDepartureLog
vehicleDepartureLogVo
:
list
)
{
if
(
vehicleDepartureLogVo
.
getState
()
!=
1
&&
vehicleDepartureLogVo
.
getId
()
>
departureLog
.
getId
())
{
//后面还有未收车的记录
flag
=
false
;
}
}
if
(
flag
)
{
//如果此条记录后面还有未收车记录,就不修改车辆状态
int
result
=
vehicleMapper
.
updateStatus
(
arrivalVo
.
getVehicleId
(),
VehicleStatus
.
NORMAL
.
getCode
());
// if (result == 0) {
// throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
// ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
// }
}
}
DateTime
arrivalDate
=
new
DateTime
(
vehicleBookRecord
.
getBookEndDate
());
DateTime
actualArrivalDate
=
new
DateTime
(
new
Date
());
//提前还车处理
if
(
actualArrivalDate
.
compareTo
(
arrivalDate
)
<
0
)
{
//实际还车时间小于预计还车时间,需要释放后面的时间
BookVehicleVO
bookVehicleVo
=
new
BookVehicleVO
();
BeanUtils
.
copyProperties
(
vehicleBookRecord
,
bookVehicleVo
);
bookVehicleVo
.
setNotCheckTimeLegal
(
Boolean
.
TRUE
);
bookVehicleVo
.
setBookStartDate
(
null
);
bookVehicleVo
.
setBookEndDate
(
null
);
bookVehicleVo
.
setUnbookStartDate
(
actualArrivalDate
.
toString
(
DATE_TIME_FORMATTER
));
bookVehicleVo
.
setUnbookEndDate
(
arrivalDate
.
toString
(
DATE_TIME_FORMATTER
));
try
{
Boolean
hasSuc
=
vehicleBiz
.
unbookVehicle
(
bookVehicleVo
);
if
(!
hasSuc
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_UNBOOK_FAIL
.
getDesc
(),
ResCode
.
VEHICLE_UNBOOK_FAIL
.
getCode
());
DateTime
arrivalDate
=
new
DateTime
(
vehicleBookRecord
.
getBookEndDate
());
DateTime
actualArrivalDate
=
new
DateTime
(
new
Date
());
//提前还车处理
if
(
actualArrivalDate
.
compareTo
(
arrivalDate
)
<
0
)
{
//实际还车时间小于预计还车时间,需要释放后面的时间
BookVehicleVO
bookVehicleVo
=
new
BookVehicleVO
();
BeanUtils
.
copyProperties
(
vehicleBookRecord
,
bookVehicleVo
);
bookVehicleVo
.
setNotCheckTimeLegal
(
Boolean
.
TRUE
);
bookVehicleVo
.
setBookStartDate
(
null
);
bookVehicleVo
.
setBookEndDate
(
null
);
bookVehicleVo
.
setUnbookStartDate
(
actualArrivalDate
.
toString
(
DATE_TIME_FORMATTER
));
bookVehicleVo
.
setUnbookEndDate
(
arrivalDate
.
toString
(
DATE_TIME_FORMATTER
));
try
{
Boolean
hasSuc
=
vehicleBiz
.
unbookVehicle
(
bookVehicleVo
);
if
(!
hasSuc
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_UNBOOK_FAIL
.
getDesc
(),
ResCode
.
VEHICLE_UNBOOK_FAIL
.
getCode
());
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
departureLog
.
setMileageEnd
(
arrivalVo
.
getMileage
());
departureLog
.
setRecycleMan
(
arrivalVo
.
getRecycleMan
());
departureLog
.
setRecycleManTel
(
arrivalVo
.
getRecycleManTel
());
departureLog
.
setArrivalBranchCompanyId
(
arrivalVo
.
getArrivalBranchCompanyId
());
departureLog
.
setUpdateTime
(
new
Date
());
departureLog
.
setArrivalTime
(
new
Date
());
departureLog
.
setState
(
VehicleDepartureState
.
END
.
getCode
());
departureLog
.
setIllegalPic
(
arrivalVo
.
getIllegalPic
());
departureLog
.
setIllegalAmount
(
arrivalVo
.
getIllegalAmount
());
departureLog
.
setArrivalPic
(
arrivalVo
.
getArrivalPic
());
departureLog
.
setArrivalRemark
(
arrivalVo
.
getRemark
());
if
(
vehicleBookRecord
!=
null
)
{
departureLog
.
setArrivalBranchCompanyId
(
vehicleBookRecord
.
getRetCompany
());
}
vehicleDepartureLogMapper
.
updateByPrimaryKeySelective
(
departureLog
);
// 车辆活动日志
VehicleActiveLog
activeLog
=
vehicleActiveLogMapper
.
selectLastByVehicleId
(
arrivalVo
.
getVehicleId
());
if
(
activeLog
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getCode
());
}
activeLog
.
setEndTime
(
new
Date
());
activeLog
.
setUpdateTime
(
new
Date
());
vehicleActiveLogMapper
.
updateByPrimaryKeySelective
(
activeLog
);
departureLog
.
setMileageEnd
(
arrivalVo
.
getMileage
());
departureLog
.
setRecycleMan
(
arrivalVo
.
getRecycleMan
());
departureLog
.
setRecycleManTel
(
arrivalVo
.
getRecycleManTel
());
departureLog
.
setArrivalBranchCompanyId
(
arrivalVo
.
getArrivalBranchCompanyId
());
departureLog
.
setUpdateTime
(
new
Date
());
departureLog
.
setArrivalTime
(
new
Date
());
departureLog
.
setState
(
VehicleDepartureState
.
END
.
getCode
());
departureLog
.
setIllegalPic
(
arrivalVo
.
getIllegalPic
());
departureLog
.
setIllegalAmount
(
arrivalVo
.
getIllegalAmount
());
departureLog
.
setArrivalPic
(
arrivalVo
.
getArrivalPic
());
departureLog
.
setArrivalRemark
(
arrivalVo
.
getRemark
());
if
(
vehicleBookRecord
!=
null
)
{
departureLog
.
setArrivalBranchCompanyId
(
vehicleBookRecord
.
getRetCompany
());
}
vehicleDepartureLogMapper
.
updateByPrimaryKeySelective
(
departureLog
);
// 车辆活动日志
VehicleActiveLog
activeLog
=
vehicleActiveLogMapper
.
selectLastByVehicleId
(
arrivalVo
.
getVehicleId
());
if
(
activeLog
==
null
)
{
throw
new
BaseException
(
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getDesc
(),
ResCode
.
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE
.
getCode
());
}
activeLog
.
setEndTime
(
new
Date
());
activeLog
.
setUpdateTime
(
new
Date
());
vehicleActiveLogMapper
.
updateByPrimaryKeySelective
(
activeLog
);
//取消预定时间 bookInfo和bookRecord
//取消预定时间 bookInfo和bookRecord
// BookVehicleVO bookVehicleVo = new BookVehicleVO();
// BeanUtils.copyProperties(vehicleBookRecord, bookVehicleVo);
// bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
...
...
@@ -311,9 +315,12 @@ public class VehicleActiveService {
// } catch ( Exception e) {
// e.printStackTrace();
// }
}
else
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
}
else
{
throw
new
BaseException
(
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getDesc
(),
ResCode
.
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED
.
getCode
());
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/admin/CompanyController.java
View file @
e193425d
...
...
@@ -21,8 +21,8 @@ public class CompanyController extends BaseController<CompanyBaseBiz> {
@ApiOperation
(
"同步分公司信息"
)
@PostMapping
(
"synchro"
)
public
ObjectRestResponse
<
String
>
synchro
()
{
return
baseBiz
.
synchro
();
public
ObjectRestResponse
synchro
()
throws
Exception
{
return
baseBiz
.
synchro
4
();
}
@ApiOperation
(
"同步分公司地址"
)
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleModelMapper.xml
View file @
e193425d
...
...
@@ -46,6 +46,13 @@
</foreach>
) > 0
</if>
<if
test=
"notInIds != null"
>
and vmqc.id not in (
<foreach
collection=
"notInIds.split(',')"
item=
"noIdItem"
index=
"noIdIndex"
>
#{noIdItem}
</foreach>
)
</if>
ORDER BY vmqc.id ASC
</select>
...
...
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