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
6838160d
Commit
6838160d
authored
Jun 20, 2019
by
libin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'base-modify' of
http://113.105.137.151:22280/youjj/cloud-platform
into base-modify
parents
e3fc7154
2729e34e
Changes
48
Hide whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
1292 additions
and
82 deletions
+1292
-82
UserMemberDTO.java
.../com/github/wxiaoqi/security/admin/dto/UserMemberDTO.java
+59
-0
BaseUserMember.java
.../github/wxiaoqi/security/admin/entity/BaseUserMember.java
+30
-1
UserFeign.java
...va/com/github/wxiaoqi/security/admin/feign/UserFeign.java
+51
-3
AppUserDTO.java
...m/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
+4
-0
UserMemberVo.java
...va/com/github/wxiaoqi/security/admin/vo/UserMemberVo.java
+24
-1
BaseUserMemberBiz.java
.../github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
+115
-0
MemberLevelController.java
...ub/wxiaoqi/security/admin/rest/MemberLevelController.java
+18
-4
UserMemberController.java
...hub/wxiaoqi/security/admin/rest/UserMemberController.java
+54
-0
pom.xml
xx-campsite/pom.xml
+5
-4
pom.xml
xx-campsite/xx-campsite-api/pom.xml
+3
-5
pom.xml
xx-campsite/xx-campsite-server/pom.xml
+4
-9
RefundTypeEnum.java
...xxfc/platform/order/contant/enumerate/RefundTypeEnum.java
+52
-0
OrderMemberDetail.java
...ava/com/xxfc/platform/order/entity/OrderMemberDetail.java
+73
-0
OrderRefund.java
...main/java/com/xxfc/platform/order/entity/OrderRefund.java
+3
-2
OrderRentVehicleDetail.java
...om/xxfc/platform/order/entity/OrderRentVehicleDetail.java
+23
-1
AddTourDTO.java
...rc/main/java/com/xxfc/platform/order/pojo/AddTourDTO.java
+4
-0
MemberBO.java
...ain/java/com/xxfc/platform/order/pojo/order/MemberBO.java
+21
-0
pom.xml
xx-order/xx-order-server/pom.xml
+8
-0
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+22
-3
OrderMemberDetailBiz.java
...ava/com/xxfc/platform/order/biz/OrderMemberDetailBiz.java
+18
-0
XxlJobConfig.java
...ain/java/com/xxfc/platform/order/config/XxlJobConfig.java
+74
-0
HttpJobHandler.java
...va/com/xxfc/platform/order/jobhandler/HttpJobHandler.java
+34
-0
OrderMemberDetailMapper.java
...m/xxfc/platform/order/mapper/OrderMemberDetailMapper.java
+15
-0
OrderMemberDetailController.java
...xxfc/platform/order/rest/OrderMemberDetailController.java
+13
-0
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+132
-0
OrderTourService.java
...ava/com/xxfc/platform/order/service/OrderTourService.java
+5
-5
TourFeign.java
...src/main/java/com/xxfc/platform/tour/feign/TourFeign.java
+1
-1
TourGoodSpeBiz.java
.../main/java/com/xxfc/platform/tour/biz/TourGoodSpeBiz.java
+10
-6
TourGoodSpePriceMapper.java
...com/xxfc/platform/tour/mapper/TourGoodSpePriceMapper.java
+1
-1
TourGoodSpeController.java
...va/com/xxfc/platform/tour/rest/TourGoodSpeController.java
+4
-2
TourGoodMapper.xml
...-tour-server/src/main/resources/mapper/TourGoodMapper.xml
+1
-1
TourGoodSpePriceMapper.xml
...rver/src/main/resources/mapper/TourGoodSpePriceMapper.xml
+8
-1
ThirdFeign.java
...in/java/com/xxfc/platform/universal/feign/ThirdFeign.java
+2
-1
VehicleBookRecord.java
...a/com/xxfc/platform/vehicle/entity/VehicleBookRecord.java
+1
-1
VehicleAndModelInfoVo.java
...com/xxfc/platform/vehicle/pojo/VehicleAndModelInfoVo.java
+14
-0
VehicleCountVo.java
...n/java/com/xxfc/platform/vehicle/pojo/VehicleCountVo.java
+17
-0
VehicleRecordInfoVo.java
...a/com/xxfc/platform/vehicle/pojo/VehicleRecordInfoVo.java
+9
-0
VehiclePlanDto.java
...va/com/xxfc/platform/vehicle/pojo/dto/VehiclePlanDto.java
+30
-0
VehicleBiz.java
...c/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
+14
-2
VehicleBookRecordBiz.java
...a/com/xxfc/platform/vehicle/biz/VehicleBookRecordBiz.java
+8
-0
VehicleWarningMsgBiz.java
...a/com/xxfc/platform/vehicle/biz/VehicleWarningMsgBiz.java
+4
-0
VehicleBookRecordMapper.java
...xxfc/platform/vehicle/mapper/VehicleBookRecordMapper.java
+6
-0
VehicleMapper.java
.../java/com/xxfc/platform/vehicle/mapper/VehicleMapper.java
+8
-3
VehicleWarningMsgMapper.java
...xxfc/platform/vehicle/mapper/VehicleWarningMsgMapper.java
+3
-0
VehicleController.java
...ava/com/xxfc/platform/vehicle/rest/VehicleController.java
+34
-2
VehicleBookRecordMapper.xml
...ver/src/main/resources/mapper/VehicleBookRecordMapper.xml
+72
-10
VehicleMapper.xml
...ehicle-server/src/main/resources/mapper/VehicleMapper.xml
+152
-11
VehicleWarningMsgMapper.xml
...ver/src/main/resources/mapper/VehicleWarningMsgMapper.xml
+29
-2
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/UserMemberDTO.java
0 → 100644
View file @
6838160d
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 用户会员
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 19:38:56
*/
@Data
public
class
UserMemberDTO
{
/**
* 用户id
*/
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userId
;
/**
* 会员等级
*/
@ApiModelProperty
(
value
=
"会员等级"
)
private
Integer
memberLevel
;
/**
* 0:未支付 1:绑定 2:解绑
*/
@ApiModelProperty
(
value
=
"0:未支付 1:绑定 2:解绑"
)
private
Integer
isBind
;
/**
* 赠送总天数
*/
@ApiModelProperty
(
value
=
"赠送总天数"
)
private
Integer
totalNumber
;
/**
* 剩余天数
*/
@ApiModelProperty
(
value
=
"剩余天数"
)
private
Integer
rentFreeDays
;
//折扣
@ApiModelProperty
(
value
=
"折扣"
)
private
Integer
discount
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/entity/BaseUserMember.java
View file @
6838160d
...
...
@@ -69,12 +69,41 @@ public class BaseUserMember implements Serializable {
@ApiModelProperty
(
value
=
"赠送总天数"
)
private
Integer
totalNumber
;
/**
/**
* 剩余天数
*/
@Column
(
name
=
"rent_free_days"
)
@ApiModelProperty
(
value
=
"剩余天数"
)
private
Integer
rentFreeDays
;
/**
* 会员消费次数
*/
@Column
(
name
=
"pay_count"
)
@ApiModelProperty
(
value
=
"会员消费次数"
)
private
Integer
payCount
;
/**
* 购买会员次数
*/
@Column
(
name
=
"buy_count"
)
@ApiModelProperty
(
value
=
"购买会员次数"
)
private
Integer
buyCount
;
/**
* 下单锁住天数
*/
@Column
(
name
=
"lock_days"
)
@ApiModelProperty
(
value
=
"下单锁住天数"
)
private
Integer
lockDays
;
//折扣
@Column
(
name
=
"discount"
)
@ApiModelProperty
(
value
=
"折扣"
)
private
Integer
discount
;
/**
* 有效期;0代表永久
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/feign/UserFeign.java
View file @
6838160d
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
feign
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
...
...
@@ -22,6 +21,12 @@ import java.util.List;
public
interface
UserFeign
{
@RequestMapping
(
value
=
"/public/userinfo-by-token"
)
public
ObjectRestResponse
<
UserDTO
>
userinfoByToken
(
@RequestParam
(
"token"
)
String
token
);
/**
* token获取用户信息
* @param token
* @return
*/
@RequestMapping
(
value
=
"/public/app/userinfo-by-token"
)
public
ObjectRestResponse
<
AppUserDTO
>
userDetailByToken
(
@RequestParam
(
"token"
)
String
token
);
...
...
@@ -35,9 +40,52 @@ public interface UserFeign {
public
ObjectRestResponse
authentication
(
@RequestParam
(
value
=
"userId"
)
Integer
userId
,
@RequestParam
(
value
=
"idNumber"
)
String
idNumber
,
@RequestParam
(
value
=
"status"
)
Integer
status
);
/**
* 获取会员等级列表
* @return
*/
@RequestMapping
(
value
=
"/member/app/unauth/levels"
,
method
=
RequestMethod
.
GET
)
public
List
<
BaseUserMemberLevel
>
levels
();
/**
* 获取单个会员等级
* @return
*/
@RequestMapping
(
value
=
"/member/app/unauth/level/{type}"
,
method
=
RequestMethod
.
GET
)
public
BaseUserMemberLevel
level
(
@PathVariable
Integer
type
);
/**
* 批量获取用户基本信息
* @param ids
* @return
*/
@RequestMapping
(
value
=
"/public/getByUserIds"
,
method
=
RequestMethod
.
GET
)
public
ObjectRestResponse
<
List
<
AppUserVo
>>
getByUserIds
(
@RequestParam
(
"ids"
)
List
<
Integer
>
ids
);
/**
* 购买会员
* @param userMemberDTO
* @return
* @throws Exception
*/
@RequestMapping
(
value
=
"/member/user/buyMember"
,
method
=
RequestMethod
.
POST
)
public
ObjectRestResponse
buyMember
(
@RequestBody
UserMemberDTO
userMemberDTO
)
throws
Exception
;
/**
* 订单更改会员
* @param userId
* @param days
* @param type 1-用户锁定下单;2-购买下单;3-取消订单
* @return
* @throws Exception
*/
@RequestMapping
(
value
=
"/member/user/memberDays"
,
method
=
RequestMethod
.
POST
)
public
int
memberDays
(
@RequestParam
(
value
=
"userId"
,
defaultValue
=
"0"
)
Integer
userId
,
@RequestParam
(
value
=
"days"
,
defaultValue
=
"0"
)
Integer
days
,
@RequestParam
(
value
=
"type"
,
defaultValue
=
"1"
)
Integer
type
)
throws
Exception
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
View file @
6838160d
...
...
@@ -27,6 +27,10 @@ public class AppUserDTO {
private
Integer
certificationStatus
;
private
Integer
rentFreeDays
;
private
Integer
totalNumber
;
private
Integer
payCount
;
private
Integer
buyCount
;
private
Integer
lockDays
;
private
Integer
discount
;
private
Integer
memberLevel
;
private
Integer
memberNo
;
private
Long
cardLeave
;
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/vo/UserMemberVo.java
View file @
6838160d
...
...
@@ -57,11 +57,34 @@ public class UserMemberVo {
@ApiModelProperty
(
value
=
"赠送总天数"
)
private
Integer
totalNumber
;
/**
/**
* 剩余天数
*/
@ApiModelProperty
(
value
=
"剩余天数"
)
private
Integer
rentFreeDays
;
/**
* 会员消费次数
*/
@ApiModelProperty
(
value
=
"会员消费次数"
)
private
Integer
payCount
;
/**
* 购买会员次数
*/
@ApiModelProperty
(
value
=
"购买会员次数"
)
private
Integer
buyCount
;
/**
* 下单锁住天数
*/
@ApiModelProperty
(
value
=
"下单锁住天数"
)
private
Integer
lockDays
;
//折扣
@ApiModelProperty
(
value
=
"折扣"
)
private
Integer
discount
;
/**
* 有效期;0代表永久
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
View file @
6838160d
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
com.ace.cache.annotation.Cache
;
import
com.ace.cache.annotation.CacheClear
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.admin.vo.UserMemberVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMember
;
import
com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper
;
...
...
@@ -16,14 +22,123 @@ import org.springframework.transaction.annotation.Transactional;
* @date 2019-06-18 19:38:56
*/
@Service
@Slf4j
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
BaseUserMemberBiz
extends
BaseBiz
<
BaseUserMemberMapper
,
BaseUserMember
>
{
@Autowired
AppUserDetailBiz
detailBiz
;
//获取用户会员信息
@Cache
(
key
=
"user:member{1}"
)
public
UserMemberVo
getMemberInfoByUserId
(
Integer
userId
){
return
mapper
.
getInfoByUserId
(
userId
);
}
//更新会员信息
@Override
@CacheClear
(
key
=
"user:member{1.userid}"
)
public
void
updateSelectiveById
(
BaseUserMember
userMember
){
super
.
updateSelectiveById
(
userMember
);}
//用户购买会员信息更新
public
void
updUserMemberByUserId
(
UserMemberDTO
userMemberDTO
)
throws
Exception
{
if
(
userMemberDTO
==
null
){
log
.
error
(
"updUserMemberByUserId----参数为空"
);
return
;
}
Integer
userId
=
userMemberDTO
.
getUserId
();
UserMemberVo
userMemberVo
=
getMemberInfoByUserId
(
userId
);
BaseUserMember
baseUserMember
=
new
BaseUserMember
();
BeanUtils
.
copyProperties
(
baseUserMember
,
userMemberDTO
);
Integer
freeDays
=
baseUserMember
.
getRentFreeDays
();
Integer
totalNumber
=
baseUserMember
.
getTotalNumber
()==
null
?
0
:
baseUserMember
.
getTotalNumber
();
if
(
freeDays
==
null
||
freeDays
==
0
){
freeDays
=
totalNumber
;
}
if
(
userMemberVo
==
null
){
baseUserMember
.
setRentFreeDays
(
freeDays
);
baseUserMember
.
setBuyCount
(
1
);
insertSelective
(
baseUserMember
);
}
else
{
baseUserMember
.
setId
(
userMemberVo
.
getId
());
totalNumber
+=
userMemberVo
.
getTotalNumber
()==
null
?
0
:
userMemberVo
.
getTotalNumber
();
freeDays
+=
userMemberVo
.
getRentFreeDays
()==
null
?
0
:
userMemberVo
.
getRentFreeDays
();
baseUserMember
.
setBuyCount
(
userMemberVo
.
getBuyCount
()+
1
);
baseUserMember
.
setTotalNumber
(
totalNumber
);
baseUserMember
.
setRentFreeDays
(
freeDays
);
updateSelectiveById
(
baseUserMember
);
}
AppUserVo
userVo
=
detailBiz
.
getUserInfoById
(
userId
);
if
(
userVo
!=
null
&&(
userVo
.
getIsMember
()==
null
||
userVo
.
getIsMember
()==
0
)){
AppUserVo
userVo1
=
new
AppUserVo
();
userVo1
.
setId
(
userVo
.
getId
());
userVo1
.
setIsMember
(
1
);
detailBiz
.
updUuserInfoById
(
userVo1
);
}
}
/**
* //
* @param userId
* @param days
* @param type;1-用户锁定下单;2-购买下单;3-取消订单
* @return
*/
public
int
upMemberDays
(
Integer
userId
,
Integer
days
,
Integer
type
){
int
num
=-
1
;
UserMemberVo
userMemberVo
=
getMemberInfoByUserId
(
userId
);
if
(
userMemberVo
!=
null
){
days
=
days
==
null
?
0
:
days
;
Integer
freeDays
=
userMemberVo
.
getRentFreeDays
()==
null
?
0
:
userMemberVo
.
getRentFreeDays
();
// Integer lockDays=userMemberVo.getLockDays()==null?userMemberVo.getLockDays():0;
Integer
totalNumber
=
userMemberVo
.
getTotalNumber
()==
null
?
0
:
userMemberVo
.
getTotalNumber
();
BaseUserMember
baseUserMember
=
new
BaseUserMember
();
baseUserMember
.
setId
(
userMemberVo
.
getId
());
if
(
type
==
1
){
/*if((freeDays-lockDays)>0&&(freeDays-lockDays)>=days){
baseUserMember.setLockDays(lockDays+days);
updateSelectiveById(baseUserMember);
num=freeDays-(lockDays+days);
}*/
if
(
freeDays
>
0
&&
freeDays
>=
days
){
freeDays
=
freeDays
-
days
;
baseUserMember
.
setRentFreeDays
(
freeDays
);
updateSelectiveById
(
baseUserMember
);
num
=
freeDays
;
}
}
else
if
(
type
==
2
){
/*Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
payCount=payCount+1;
freeDays=(freeDays-days)>0?(freeDays-days):0;
lockDays=lockDays>0?(lockDays-days)>0?(lockDays-days):0:0;
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setPayCount(payCount);
baseUserMember.setLockDays(lockDays);
updateSelectiveById(baseUserMember);
num=freeDays-lockDays;*/
Integer
payCount
=
userMemberVo
.
getPayCount
()==
null
?
0
:
userMemberVo
.
getPayCount
();
payCount
=
payCount
+
1
;
baseUserMember
.
setPayCount
(
payCount
);
updateSelectiveById
(
baseUserMember
);
num
=
freeDays
;
}
else
{
/*lockDays=lockDays>0?(lockDays-days)>0?(lockDays-days):0:0;
baseUserMember.setLockDays(lockDays);
updateSelectiveById(baseUserMember);
num=freeDays-lockDays;*/
freeDays
=(
freeDays
+
days
)>
0
?(
freeDays
+
days
):
0
;
freeDays
=
freeDays
>
totalNumber
?
totalNumber:
freeDays
;
baseUserMember
.
setRentFreeDays
(
freeDays
);
updateSelectiveById
(
baseUserMember
);
num
=
freeDays
;
}
}
return
num
;
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/MemberLevelController.java
View file @
6838160d
...
...
@@ -2,11 +2,9 @@ package com.github.wxiaoqi.security.admin.rest;
import
com.github.wxiaoqi.security.admin.biz.UserMemberLevelBiz
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
io.swagger.models.auth.In
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
...
...
@@ -28,4 +26,20 @@ public class MemberLevelController {
List
<
BaseUserMemberLevel
>
levels
()
throws
Exception
{
return
memberBiz
.
getLevesls
();
}
@RequestMapping
(
value
=
"/app/unauth/level/{type}"
,
method
=
RequestMethod
.
GET
)
public
@ResponseBody
BaseUserMemberLevel
level
(
@PathVariable
Integer
type
)
throws
Exception
{
List
<
BaseUserMemberLevel
>
list
=
memberBiz
.
getLevesls
();
if
(
type
!=
null
){
if
(
list
.
size
()>
0
){
for
(
BaseUserMemberLevel
userMemberLevel:
list
){
if
(
userMemberLevel
.
getLevel
()!=
null
&&
userMemberLevel
.
getLevel
()==
type
){
return
userMemberLevel
;
}
}
}
}
return
null
;
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserMemberController.java
0 → 100644
View file @
6838160d
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-08 11:51
*/
@RestController
@RequestMapping
(
"member"
)
public
class
UserMemberController
{
@Autowired
private
BaseUserMemberBiz
memberBiz
;
/**
* 购买会员
* @param userMemberDTO
* @return
* @throws Exception
*/
@RequestMapping
(
value
=
"/user/buyMember"
,
method
=
RequestMethod
.
POST
)
public
ObjectRestResponse
buyMember
(
@RequestBody
UserMemberDTO
userMemberDTO
)
throws
Exception
{
memberBiz
.
updUserMemberByUserId
(
userMemberDTO
);
return
ObjectRestResponse
.
succ
();
}
/**
* 订单更改会员
* @param userId
* @param days
* @param type 1-用户锁定下单;2-购买下单;3-取消订单
* @return
* @throws Exception
*/
@RequestMapping
(
value
=
"/user/memberDays"
,
method
=
RequestMethod
.
POST
)
public
int
memberDays
(
@RequestParam
(
value
=
"userId"
,
defaultValue
=
"0"
)
Integer
userId
,
@RequestParam
(
value
=
"days"
,
defaultValue
=
"0"
)
Integer
days
,
@RequestParam
(
value
=
"type"
,
defaultValue
=
"1"
)
Integer
type
)
throws
Exception
{
return
memberBiz
.
upMemberDays
(
userId
,
days
,
type
);
}
}
xx-campsite/pom.xml
View file @
6838160d
...
...
@@ -7,12 +7,13 @@
<groupId>
com.github.wxiaoqi
</groupId>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
xx-campsite
</artifactId>
<packaging>
pom
</packaging>
<groupId>
com.xxfc.platform
</groupId>
<modules>
<module>
xx-campsite-api
</module>
<module>
xx-campsite-server
</module>
</modules>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
pom
</packaging>
<artifactId>
xx-campsite
</artifactId>
</project>
\ No newline at end of file
xx-campsite/xx-campsite-api/pom.xml
View file @
6838160d
...
...
@@ -3,15 +3,13 @@
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<
artifactId>
xx-campsite
</artifact
Id>
<
groupId>
com.github.wxiaoqi
</group
Id>
<
groupId>
com.xxfc.common
</group
Id>
<
artifactId>
xx-common-platform
</artifact
Id>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-campsite-api
</artifactId>
<name>
xx-campsite-api
</name>
<description>
The xxfc campsite api
</description>
<dependencies>
<dependency>
<groupId>
com.github.wxiaoqi
</groupId>
...
...
xx-campsite/xx-campsite-server/pom.xml
View file @
6838160d
...
...
@@ -3,26 +3,21 @@
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<
artifactId>
xx-campsite
</artifact
Id>
<
groupId>
com.github.wxiaoqi
</group
Id>
<
groupId>
com.xxfc.common
</group
Id>
<
artifactId>
xx-common-platform-web
</artifact
Id>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-campsite-server
</artifactId>
<name>
xx-campsite-server
</name>
<description>
the xxfc travel Campsite
</description>
<dependencies>
<dependency>
<groupId>
com.
github.wxiaoqi
</groupId>
<groupId>
com.
xxfc.platform
</groupId>
<artifactId>
xx-campsite-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.xxfc.common
</groupId>
<artifactId>
xx-common-platform-web
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
</dependencies>
<build>
<plugins>
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/RefundTypeEnum.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
;
import
java.util.HashMap
;
import
java.util.Map
;
public
enum
RefundTypeEnum
{
RentVehicle
(
1
,
"订单款"
),
TOUR
(
2
,
"押金"
),
;
/**
* 编码
*/
private
Integer
code
;
/**
* 类型描述
*/
private
String
desc
;
private
static
Map
<
Integer
,
String
>
codeAndDesc
=
new
HashMap
<
Integer
,
String
>();
//Maps.newHashMap();
// static{
// for(VehicleBookRecordStatus constantType : VehicleBookRecordStatus.values()){
// codeAndDesc.put(constantType.getCode(),constantType.getDesc());
// }
// }
RefundTypeEnum
(
Integer
code
,
String
desc
){
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
public
static
Boolean
exists
(
Integer
code
){
return
codeAndDesc
.
containsKey
(
code
);
}
}
\ No newline at end of file
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderMemberDetail.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
entity
;
import
java.io.Serializable
;
import
java.util.Date
;
import
javax.persistence.*
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
@Data
@Table
(
name
=
"order_member_detail"
)
public
class
OrderMemberDetail
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"主键"
)
private
Integer
id
;
/**
* 基础订单id
*/
@Column
(
name
=
"order_id"
)
@ApiModelProperty
(
value
=
"基础订单id"
)
private
Integer
orderId
;
/**
* 名称
*/
@Column
(
name
=
"name"
)
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
/**
* 创建时间
*/
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
/**
* 更新时间
*/
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
value
=
"更新时间"
,
hidden
=
true
)
private
Long
updTime
;
/**
* 出租免费天数
*/
@Column
(
name
=
"rent_free_num"
)
@ApiModelProperty
(
value
=
"出租免费天数"
)
private
Integer
rentFreeNum
;
/**
* 折扣比例 80即 八折
*/
@Column
(
name
=
"rebate"
)
@ApiModelProperty
(
value
=
"折扣比例 80即 八折"
)
private
Integer
rebate
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderRefund.java
View file @
6838160d
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
;
...
...
@@ -39,7 +40,7 @@ public class OrderRefund implements Serializable {
*/
@Column
(
name
=
"trade_no"
)
@ApiModelProperty
(
value
=
"退款对应的流水号"
)
private
Integer
tradeNo
;
private
String
tradeNo
;
/**
* 退款时间
...
...
@@ -67,7 +68,7 @@ public class OrderRefund implements Serializable {
*/
@Column
(
name
=
"refund_amount"
)
@ApiModelProperty
(
value
=
"退款金额"
)
private
Integer
refundAmount
;
private
BigDecimal
refundAmount
;
/**
* 退款说明
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderRentVehicleDetail.java
View file @
6838160d
...
...
@@ -2,6 +2,7 @@ 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
;
...
...
@@ -12,7 +13,7 @@ import lombok.Data;
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-1
5 17:11:08
* @date 2019-06-1
9 20:21:29
*/
@Data
@Table
(
name
=
"order_rent_vehicle_detail"
)
...
...
@@ -258,6 +259,13 @@ public class OrderRentVehicleDetail implements Serializable {
@ApiModelProperty
(
value
=
"优惠天数"
)
private
Integer
freeDays
;
/**
* 折扣 80 即 8折
*/
@Column
(
name
=
"rebate"
)
@ApiModelProperty
(
value
=
"折扣 80 即 8折"
)
private
Integer
rebate
;
/**
* 出发公司区域id
*/
...
...
@@ -265,5 +273,19 @@ public class OrderRentVehicleDetail implements Serializable {
@ApiModelProperty
(
value
=
"出发公司区域id"
)
private
Integer
startZoneId
;
/**
* 退还钱(押金)的状态 0--未退还;1--已退还所有钱;2--已退还部分押金(保留违章预备金);3--已退还所有押金(扣除该扣除的)
*/
@Column
(
name
=
"return_pay_status"
)
@ApiModelProperty
(
value
=
"退还钱(押金)的状态 0--未退还;1--已退还所有钱;2--已退还部分押金(保留违章预备金);3--已退还所有押金(扣除该扣除的)"
)
private
Integer
returnPayStatus
;
/**
* 剩余需要退还的钱(押金)
*/
@Column
(
name
=
"return_pay_residue"
)
@ApiModelProperty
(
value
=
"剩余需要退还的钱(押金)"
)
private
BigDecimal
returnPayResidue
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/AddTourDTO.java
View file @
6838160d
...
...
@@ -60,4 +60,8 @@ public class AddTourDTO {
//联系邮箱
@ApiModelProperty
(
value
=
"联系邮箱"
)
private
String
contactEmail
;
//站点id
@ApiModelProperty
(
value
=
"站点id"
)
private
Integer
siteId
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/MemberBO.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMember
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.tour.entity.TourGood
;
import
com.xxfc.platform.tour.entity.TourUser
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
MemberBO
extends
OrderMemberDetail
implements
OrderDetail
{
private
BaseOrder
order
;
private
BaseUserMemberLevel
baseUserMemberLevel
;
private
Integer
levelNum
;
}
xx-order/xx-order-server/pom.xml
View file @
6838160d
...
...
@@ -25,6 +25,14 @@
<version>
2.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<!-- xxl-job-core -->
<dependency>
<groupId>
com.xuxueli
</groupId>
<artifactId>
xxl-job-core
</artifactId>
<version>
2.0.2
</version>
</dependency>
</dependencies>
<build>
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.RefundTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderRefund
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
...
...
@@ -21,6 +24,7 @@ import java.util.LinkedList;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
/**
...
...
@@ -81,15 +85,30 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
//计算退款金额
// 1、押金 + 租金(规则扣除)
BigDecimal
refundAmont
=
orvd
.
getDeposit
().
add
(
baseOrder
.
getGoodsAmount
());
thirdFeign
.
refund
(
new
OrderRefundVo
(){{
String
refundTradeNo
=
thirdFeign
.
refund
(
new
OrderRefundVo
(){{
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setRefundAmount
(
refundAmont
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setOrderNo
(
baseOrder
.
getNo
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
}});
}})
.
getData
()
;
//创建订单退款记录
//如果返回的流水为空,则当做失败
Integer
refundStatus
=
SYS_TRUE
;
if
(
StrUtil
.
isBlank
(
refundTradeNo
))
{
refundStatus
=
SYS_FALSE
;
}
//创建订单退款记录
OrderRefund
orderRefund
=
new
OrderRefund
(){{
setOrderId
(
baseOrder
.
getId
());
setRefundAmount
(
refundAmont
);
setRefundTime
(
System
.
currentTimeMillis
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
setTradeNo
(
refundTradeNo
);
setRefundType
(
RefundTypeEnum
.
RentVehicle
.
getCode
());
}};
orderRefund
.
setRefundStatus
(
refundStatus
);
orderRefundBiz
.
insertSelective
(
orderRefund
);
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderMemberDetailBiz.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
com.xxfc.platform.order.mapper.OrderMemberDetailMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
@Service
public
class
OrderMemberDetailBiz
extends
BaseBiz
<
OrderMemberDetailMapper
,
OrderMemberDetail
>
{
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/config/XxlJobConfig.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
config
;
import
com.xxl.job.core.executor.impl.XxlJobSpringExecutor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Slf4j
//@Configuration
public
class
XxlJobConfig
{
@Value
(
"${xxl.job.admin.addresses}"
)
private
String
adminAddresses
;
@Value
(
"${xxl.job.executor.appname}"
)
private
String
appName
;
@Value
(
"${xxl.job.executor.ip}"
)
private
String
ip
;
@Value
(
"${xxl.job.executor.port}"
)
private
int
port
;
@Value
(
"${xxl.job.accessToken}"
)
private
String
accessToken
;
@Value
(
"${xxl.job.executor.logpath}"
)
private
String
logPath
;
@Value
(
"${xxl.job.executor.logretentiondays}"
)
private
int
logRetentionDays
;
@Bean
(
initMethod
=
"start"
,
destroyMethod
=
"destroy"
)
public
XxlJobSpringExecutor
xxlJobExecutor
()
{
log
.
info
(
">>>>>>>>>>> xxl-job config init."
);
XxlJobSpringExecutor
xxlJobSpringExecutor
=
new
XxlJobSpringExecutor
();
xxlJobSpringExecutor
.
setAdminAddresses
(
adminAddresses
);
xxlJobSpringExecutor
.
setAppName
(
appName
);
xxlJobSpringExecutor
.
setIp
(
ip
);
xxlJobSpringExecutor
.
setPort
(
port
);
xxlJobSpringExecutor
.
setAccessToken
(
accessToken
);
xxlJobSpringExecutor
.
setLogPath
(
logPath
);
xxlJobSpringExecutor
.
setLogRetentionDays
(
logRetentionDays
);
return
xxlJobSpringExecutor
;
}
/**
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
*
* 1、引入依赖:
* <dependency>
* <groupId>org.springframework.cloud</groupId>
* <artifactId>spring-cloud-commons</artifactId>
* <version>${version}</version>
* </dependency>
*
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、获取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
*/
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/jobhandler/HttpJobHandler.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
jobhandler
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
com.xxl.job.core.handler.annotation.JobHandler
;
import
com.xxl.job.core.log.XxlJobLogger
;
import
org.springframework.stereotype.Component
;
import
java.io.BufferedReader
;
/**
* 跨平台Http任务
*
* @author xuxueli 2018-09-16 03:48:34
*/
//@JobHandler(value = "httpJobHandler")
//@Component
public
class
HttpJobHandler
extends
IJobHandler
{
@Override
public
ReturnT
<
String
>
execute
(
String
param
)
throws
Exception
{
try
{
XxlJobLogger
.
log
(
"helloword"
);
return
SUCCESS
;
}
catch
(
Exception
e
)
{
XxlJobLogger
.
log
(
e
);
return
FAIL
;
}
finally
{
;
}
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/OrderMemberDetailMapper.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
mapper
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
tk.mybatis.mapper.common.Mapper
;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
public
interface
OrderMemberDetailMapper
extends
Mapper
<
OrderMemberDetail
>
{
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderMemberDetailController.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
rest
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@Controller
@RequestMapping
(
"orderMemberDetail"
)
public
class
OrderMemberDetailController
extends
BaseController
<
OrderMemberDetailBiz
,
OrderMemberDetail
>
{
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
order
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.Dict
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.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.msg.ObjectRestResponse
;
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.biz.OrderTourDetailBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderCostEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.pojo.order.MemberBO
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
import
com.xxfc.platform.tour.dto.TourSpePriceDTO
;
import
com.xxfc.platform.tour.entity.TourGood
;
import
com.xxfc.platform.tour.entity.TourGoodVerification
;
import
com.xxfc.platform.tour.entity.TourUser
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.vo.TourSpePriceVo
;
import
com.xxfc.platform.vehicle.entity.SysRegion
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
import
lombok.extern.log4j.Log4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
@Log4j
public
class
OrderMemberService
extends
AbstractOrderHandle
<
OrderMemberDetailBiz
,
MemberBO
>
{
@Autowired
TourFeign
tourFeign
;
@Autowired
VehicleFeign
vehicleFeign
;
private
static
Integer
IS_CHILD
=
1
;
private
static
Integer
LEVEL_DEFAULT
=
0
;
private
static
Integer
NUMBER_ZERO
=
0
;
@Autowired
OrderCostDetailBiz
orderCostDetailBiz
;
@Autowired
OrderTemplateBiz
orderTemplateBiz
;
@Autowired
protected
UserAuthConfig
userAuthConfig
;
@Autowired
UserFeign
userFeign
;
@Autowired
public
HttpServletRequest
request
;
@PostConstruct
public
void
init
(){
this
.
orderTypeEnum
=
OrderTypeEnum
.
MEMBER
;
}
public
AppUserDTO
getUserInfo
(){
return
userFeign
.
userDetailByToken
(
userAuthConfig
.
getToken
(
request
)).
getData
();
}
@Override
public
void
initDetail
(
MemberBO
bo
)
{
super
.
initDetail
(
bo
);
BaseUserMemberLevel
buml
=
userFeign
.
level
(
bo
.
getLevelNum
());
bo
.
setBaseUserMemberLevel
(
buml
);
bo
.
setRentFreeNum
(
buml
.
getNumber
());
bo
.
setRebate
(
buml
.
getDiscount
());
}
@Override
public
void
handleDetail
(
MemberBO
bo
)
{
//设置订单状态为3
bo
.
getOrder
().
setStatus
(
OrderStatusEnum
.
ORDER_UNPAY
.
getCode
());
//设置订单图片
bo
.
getOrder
().
setPicture
(
bo
.
getBaseUserMemberLevel
().
getIcon
());
//设置订单名称
bo
.
getOrder
().
setName
(
bo
.
getBaseUserMemberLevel
().
getName
());
super
.
handleDetail
(
bo
);
}
@Override
public
void
handleCalculate
(
MemberBO
bo
)
{
OrderPriceVO
tpv
=
calculatePrice
(
bo
);
BeanUtil
.
copyProperties
(
tpv
,
bo
.
getOrder
());
BeanUtil
.
copyProperties
(
tpv
,
bo
);
}
@Override
public
OrderPriceVO
calculatePrice
(
MemberBO
detail
)
{
BigDecimal
orderAmount
=
BigDecimal
.
ZERO
;
BigDecimal
goodsAmount
=
BigDecimal
.
ZERO
;
BigDecimal
realAmount
=
BigDecimal
.
ZERO
;
//商品价格
goodsAmount
=
goodsAmount
.
add
(
detail
.
getBaseUserMemberLevel
().
getPrice
());
//订单总价格
orderAmount
=
orderAmount
.
add
(
goodsAmount
);
//真实价格
realAmount
=
realAmount
.
add
(
orderAmount
);
//生成订单明细
OrderPriceVO
opv
=
new
OrderPriceVO
();
opv
.
setOrderAmount
(
orderAmount
);
opv
.
setGoodsAmount
(
goodsAmount
);
opv
.
setRealAmount
(
realAmount
);
return
opv
;
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderTourService.java
View file @
6838160d
...
...
@@ -113,11 +113,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
bo
.
setStartCityName
(
sysRegion
.
getName
());
//设置verificationId 核销id
//
bo.setVerificationId(tourFeign.entityList(BeanUtil.beanToMap(new TourGoodVerification(){{
//
setSpeId(bo.getSpePriceId());
//
setGoodId(bo.getGoodId());
//
setSiteId(bo.getSiteId());
//
}})).getData().get(0).getId());
bo
.
setVerificationId
(
tourFeign
.
entityList
(
BeanUtil
.
beanToMap
(
new
TourGoodVerification
(){{
setSpeId
(
bo
.
getSpePriceId
());
setGoodId
(
bo
.
getGoodId
());
setSiteId
(
bo
.
getSiteId
());
}})).
getData
().
get
(
0
).
getId
());
//扣減庫存
tourFeign
.
stock
(
bo
.
getSpePriceId
(),
bo
.
getTotalNumber
());
...
...
xx-tour/xx-tour-api/src/main/java/com/xxfc/platform/tour/feign/TourFeign.java
View file @
6838160d
...
...
@@ -36,7 +36,7 @@ public interface TourFeign {
public
ObjectRestResponse
<
TourSpePriceVo
>
refund
(
@RequestBody
TourSpePriceDTO
spePriceDto
);
@RequestMapping
(
value
=
"/spe/stock"
,
method
=
RequestMethod
.
GET
)
public
ObjectRestResponse
<
TourSpePriceVo
>
stock
(
@RequestParam
Integer
speId
,
@RequestParam
Integer
number
);
public
ObjectRestResponse
<
TourSpePriceVo
>
stock
(
@RequestParam
Integer
speId
,
@RequestParam
Integer
number
,
@RequestParam
Integer
type
);
@RequestMapping
(
value
=
"/tourGood/app/unauth/usable/{id}"
,
method
=
RequestMethod
.
GET
)
...
...
xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/biz/TourGoodSpeBiz.java
View file @
6838160d
...
...
@@ -83,14 +83,18 @@ public class TourGoodSpeBiz extends BaseBiz<TourGoodSpePriceMapper, TourGoodSpeP
}
//减库存
public
ObjectRestResponse
cutStock
(
Integer
speId
,
Integer
number
)
{
public
ObjectRestResponse
cutStock
(
Integer
speId
,
Integer
number
,
Integer
type
)
{
TourGoodSpePrice
spePrice
=
mapper
.
selectByPrimaryKey
(
speId
);
if
(
spePrice
!=
null
&&
spePrice
.
getStock
()
>
0
&&
spePrice
.
getStock
()
>=
number
)
{
mapper
.
updStockById
(
speId
,
number
);
return
ObjectRestResponse
.
succ
();
}
else
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
STOCK_CODE
,
"库存不足"
);
if
(
type
==
1
){
if
(
spePrice
!=
null
&&
spePrice
.
getStock
()
>
0
&&
spePrice
.
getStock
()
>=
number
)
{
mapper
.
updStockById
(
speId
,
number
,
type
);
}
else
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
STOCK_CODE
,
"库存不足"
);
}
}
else
{
mapper
.
updStockById
(
speId
,
number
,
type
);
}
return
ObjectRestResponse
.
succ
();
}
//删除
...
...
xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/mapper/TourGoodSpePriceMapper.java
View file @
6838160d
...
...
@@ -19,7 +19,7 @@ public interface TourGoodSpePriceMapper extends Mapper<TourGoodSpePrice> {
List
<
TourDepartTimeVo
>
getAllByGoodId
(
@Param
(
"goodId"
)
Integer
goodId
);
//减库存
int
updStockById
(
@Param
(
"id"
)
Integer
id
,
@Param
(
"number"
)
Integer
number
);
int
updStockById
(
@Param
(
"id"
)
Integer
id
,
@Param
(
"number"
)
Integer
number
,
@Param
(
"type"
)
Integer
type
);
//删除站点
public
int
delSpe
(
@Param
(
"goodId"
)
Integer
goodId
,
@Param
(
"list"
)
List
<
Integer
>
ids
);
...
...
xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/rest/TourGoodSpeController.java
View file @
6838160d
...
...
@@ -26,8 +26,10 @@ public class TourGoodSpeController extends TourBaseController<TourGoodSpeBiz> {
@RequestMapping
(
value
=
"/stock"
,
method
=
RequestMethod
.
GET
)
public
ObjectRestResponse
<
TourSpePriceVo
>
stock
(
@RequestParam
(
value
=
"speId"
,
defaultValue
=
"0"
)
Integer
speId
,
@RequestParam
(
value
=
"number"
,
defaultValue
=
"0"
)
Integer
number
){
return
baseBiz
.
cutStock
(
speId
,
number
);
@RequestParam
(
value
=
"number"
,
defaultValue
=
"0"
)
Integer
number
,
@RequestParam
(
value
=
"type"
,
defaultValue
=
"1"
)
Integer
type
){
return
baseBiz
.
cutStock
(
speId
,
number
,
type
);
}
}
\ No newline at end of file
xx-tour/xx-tour-server/src/main/resources/mapper/TourGoodMapper.xml
View file @
6838160d
...
...
@@ -54,7 +54,7 @@
<!--查询旅游路线列表-->
<select
id=
"getGoodList"
parameterType=
"java.util.Map"
resultMap=
"tourGoodMap"
>
SELECT * from tour_good t
where t.is_del=
1
AND t.status=1
where t.is_del=
0
AND t.status=1
<if
test=
"params.query != null and params.query != ''"
>
and (t.`name` like CONCAT('%',#{params.query},'%') or t.introduce like CONCAT('%',#{params.query},'%'))
</if>
...
...
xx-tour/xx-tour-server/src/main/resources/mapper/TourGoodSpePriceMapper.xml
View file @
6838160d
...
...
@@ -43,7 +43,14 @@
<!-- 减库存-->
<update
id=
"updStockById"
>
update tour_good_spe_price set stock=stock-#{number} where id=#{id}
update tour_good_spe_price set
<if
test=
"type==1"
>
stock=stock-#{number}
</if>
<if
test=
"type==2"
>
stock=stock+#{number}
</if>
where id=#{id}
</update>
<update
id=
"delSpe"
>
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/feign/ThirdFeign.java
View file @
6838160d
package
com
.
xxfc
.
platform
.
universal
.
feign
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.universal.entity.OrderRefund
;
import
com.xxfc.platform.universal.vo.OrderPayVo
;
import
com.xxfc.platform.universal.vo.OrderRefundVo
;
...
...
@@ -27,6 +28,6 @@ public interface ThirdFeign {
@RequestMapping
(
value
=
"/pay/app/wx"
,
method
=
RequestMethod
.
POST
)
public
JSONObject
wx
(
@RequestBody
OrderPayVo
orderPayVo
);
@RequestMapping
(
value
=
"/refund/app/wx"
,
method
=
RequestMethod
.
POST
)
public
JSONObject
refund
(
@RequestBody
OrderRefundVo
orderRefundVo
);
public
ObjectRestResponse
<
String
>
refund
(
@RequestBody
OrderRefundVo
orderRefundVo
);
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/entity/VehicleBookRecord.java
View file @
6838160d
...
...
@@ -18,7 +18,7 @@ public class VehicleBookRecord {
/**
* 车辆id
*/
private
String
vehicle
;
private
String
vehicle
Id
;
/**
* 申请状态:1-申请中 2-已通过 3-已归还 4-拒绝 5-逾期归还
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/VehicleAndModelInfoVo.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
VehicleAndModelInfoVo
extends
Vehicle
{
VehicleModel
vehicleModel
;
List
<
VehicleBookRecord
>
vehicleBookRecord
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/VehicleCountVo.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
VehicleCountVo
{
@ApiModelProperty
(
value
=
"总数"
)
private
Integer
total
;
@ApiModelProperty
(
value
=
"车辆状态"
)
private
Integer
travelStatus
;
@ApiModelProperty
(
value
=
"状态描述"
)
private
String
detail
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/VehicleRecordInfoVo.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
lombok.Data
;
@Data
public
class
VehicleRecordInfoVo
extends
VehicleBookRecord
{
VehicleAndModelInfoVo
vehicleAndModelInfoVo
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehiclePlanDto.java
0 → 100644
View file @
6838160d
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
dto
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
VehiclePlanDto
extends
PageParam
{
@ApiModelProperty
(
value
=
"车辆Id"
)
private
String
vehicleId
;
@ApiModelProperty
(
value
=
"开始时间"
)
private
String
startTime
;
@ApiModelProperty
(
value
=
"结束时间"
)
private
String
endTime
;
@ApiModelProperty
(
value
=
"车辆状态"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"车牌"
)
private
String
numberPlate
;
@ApiModelProperty
(
value
=
"所属分公司Id"
)
private
Integer
subordinateBranch
;
@ApiModelProperty
(
value
=
"停车分公司Id"
)
private
Integer
parkBranchCompanyId
;
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
View file @
6838160d
...
...
@@ -8,6 +8,7 @@ import com.github.pagehelper.PageInfo;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.google.common.base.Function
;
...
...
@@ -26,6 +27,7 @@ import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper;
import
com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper
;
import
com.xxfc.platform.vehicle.mapper.VehicleMapper
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.beanutils.BeanUtilsBean
;
...
...
@@ -52,7 +54,6 @@ import tk.mybatis.mapper.entity.Example;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.io.File
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -303,7 +304,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
}
//加入预定申请记录
VehicleBookRecord
vehicleBookRecord
=
new
VehicleBookRecord
();
vehicleBookRecord
.
setVehicle
(
bookVehicleVo
.
getVehicle
());
vehicleBookRecord
.
setVehicle
Id
(
bookVehicleVo
.
getVehicle
());
vehicleBookRecord
.
setBookType
(
BookType
.
EMPLOYEE_APPLY
.
getCode
());
vehicleBookRecord
.
setStatus
(
VehicleBookRecordStatus
.
APPLY
.
getCode
());
vehicleBookRecord
.
setBookUser
(
userId
);
...
...
@@ -1013,4 +1014,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
}
public
List
<
VehicleCountVo
>
countVehicleByParam
(
VehiclePlanDto
vehiclePlanDto
)
{
return
mapper
.
countVehicleByParam
(
vehiclePlanDto
);
}
public
PageDataVO
<
VehicleAndModelInfoVo
>
getAllVehicle
(
VehiclePlanDto
vehiclePlanDto
)
{
Query
query
=
new
Query
(
vehiclePlanDto
);
PageDataVO
<
VehicleAndModelInfoVo
>
pageDataVO
=
PageDataVO
.
pageInfo
(
query
,
()
->
mapper
.
getAllVehicle
(
query
.
getSuper
()));
return
pageDataVO
;
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBookRecordBiz.java
View file @
6838160d
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.google.common.collect.ImmutableMap
;
import
com.google.common.collect.Lists
;
...
...
@@ -17,6 +18,7 @@ import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import
com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper
;
import
com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.beanutils.PropertyUtils
;
...
...
@@ -313,6 +315,12 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
}
public
PageDataVO
<
VehicleRecordInfoVo
>
getListByParam
(
VehiclePlanDto
vehiclePlanDto
)
{
Query
query
=
new
Query
(
vehiclePlanDto
);
PageDataVO
<
VehicleRecordInfoVo
>
pageDataVO
=
PageDataVO
.
pageInfo
(
query
,
()
->
mapper
.
getByParam
(
query
.
getSuper
()));
return
pageDataVO
;
}
private
String
getTbNameNow
(){
return
TB_NAME_PREFIX
+
DateTime
.
now
().
toString
(
YEAR_DATE_TIME_FORMATTER
);
}
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleWarningMsgBiz.java
View file @
6838160d
...
...
@@ -14,6 +14,7 @@ import com.xxfc.platform.vehicle.entity.VehicleWarningRule;
import
com.xxfc.platform.vehicle.mapper.VehicleMapper
;
import
com.xxfc.platform.vehicle.mapper.VehicleWarningMsgMapper
;
import
com.xxfc.platform.vehicle.mapper.VehicleWarningRuleMapper
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
com.xxfc.platform.vehicle.util.JSUtil
;
import
com.xxfc.platform.vehicle.pojo.AddVehicleWarningMsgVo
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
...
...
@@ -212,5 +213,8 @@ public class VehicleWarningMsgBiz extends BaseBiz<VehicleWarningMsgMapper, Vehic
}
}
public
List
<
VehicleWarningMsg
>
getAllByParam
(
VehiclePlanDto
vehiclePlanDto
)
{
return
mapper
.
getAllByparam
(
vehiclePlanDto
);
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleBookRecordMapper.java
View file @
6838160d
...
...
@@ -3,6 +3,8 @@ package com.xxfc.platform.vehicle.mapper;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo
;
import
com.xxfc.platform.vehicle.pojo.VehicleBookRecordAndTbNameVo
;
import
com.xxfc.platform.vehicle.pojo.VehicleRecordInfoVo
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
...
...
@@ -28,4 +30,8 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public
VehicleBookRecord
getById
(
Map
<
String
,
Object
>
params
);
public
List
<
VehicleRecordInfoVo
>
getByParam
(
Map
<
String
,
Object
>
params
);
public
List
<
VehicleBookRecord
>
getByVehicleId
(
String
vehicleId
);
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleMapper.java
View file @
6838160d
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.pojo.AddOrUpdateVehicleVo
;
import
com.xxfc.platform.vehicle.pojo.QueryVehicleVo
;
import
com.xxfc.platform.vehicle.pojo.UsableVehicleModelVO
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
org.springframework.data.repository.query.Param
;
import
tk.mybatis.mapper.common.Mapper
;
...
...
@@ -13,12 +12,14 @@ import java.util.Map;
public
interface
VehicleMapper
extends
Mapper
<
Vehicle
>
{
public
List
<
QueryVehicleVo
>
getByPage
(
Map
<
String
,
Object
>
params
);
public
List
<
QueryVehicleVo
>
getByPageNotAllData
(
Map
<
String
,
Object
>
params
);
public
int
updateStatusById
(
Map
<
String
,
Object
>
params
);
/**
* 锁定相关编码 或 车牌 的行
*
* @param addOrUpdateVehicleVo
* @return
*/
...
...
@@ -32,4 +33,8 @@ public interface VehicleMapper extends Mapper<Vehicle> {
List
<
UsableVehicleModelVO
>
searchUsableModel
(
Map
<
String
,
Object
>
params
);
List
<
Vehicle
>
searchUsableVehicle
(
Map
<
String
,
Object
>
params
);
List
<
VehicleCountVo
>
countVehicleByParam
(
VehiclePlanDto
vehiclePlanDto
);
List
<
VehicleAndModelInfoVo
>
getAllVehicle
(
Map
<
String
,
Object
>
params
);
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleWarningMsgMapper.java
View file @
6838160d
...
...
@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.mapper;
import
com.xxfc.platform.vehicle.entity.VehicleWarningMsg
;
import
com.xxfc.platform.vehicle.pojo.QueryVehicleWarningMsgVo
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
...
...
@@ -13,4 +14,6 @@ public interface VehicleWarningMsgMapper extends Mapper<VehicleWarningMsg> {
public
List
<
VehicleWarningMsg
>
getMsgByVehicle
(
String
vehicleId
);
public
List
<
VehicleWarningMsg
>
getAllByparam
(
VehiclePlanDto
vehiclePlanDto
);
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleController.java
View file @
6838160d
...
...
@@ -14,9 +14,11 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
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.google.common.collect.Maps
;
import
com.xxfc.platform.vehicle.biz.VehicleBiz
;
import
com.xxfc.platform.vehicle.biz.VehicleBookRecordBiz
;
import
com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz
;
import
com.xxfc.platform.vehicle.biz.VehicleWarningMsgBiz
;
import
com.xxfc.platform.vehicle.common.BaseController
;
import
com.xxfc.platform.vehicle.common.CustomIllegalParamException
;
import
com.xxfc.platform.vehicle.common.RestResponse
;
...
...
@@ -25,8 +27,11 @@ import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.entity.VehicleBookInfo
;
import
com.xxfc.platform.vehicle.entity.VehiclePlatCata
;
import
com.xxfc.platform.vehicle.entity.VehicleWarningMsg
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -51,9 +56,9 @@ import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
@RestController
@RequestMapping
(
"/vehicleInfo"
)
@Slf4j
@Slf4j
@IgnoreClientToken
@Api
(
value
=
"车辆管理controller"
,
tags
=
{
"车辆管理接口"
})
@Api
(
value
=
"车辆管理controller"
,
tags
=
{
"车辆管理接口"
})
public
class
VehicleController
extends
BaseController
<
VehicleBiz
>
{
@Autowired
...
...
@@ -71,6 +76,9 @@ public class VehicleController extends BaseController<VehicleBiz> {
@Autowired
private
VehiclePlatCataBiz
vehiclePlatCataBiz
;
@Autowired
private
VehicleWarningMsgBiz
vehicleWarningMsgBiz
;
private
static
Integer
MAX_DRIVING_LICENSE_SIZE
=
10
*
1024
*
1024
;
//10M
public
static
final
DateTimeFormatter
DEFAULT_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
);
...
...
@@ -138,6 +146,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
}
@RequestMapping
(
value
=
"/upload/drivingLicense"
,
method
=
RequestMethod
.
POST
)
@ApiOperation
(
value
=
"上传驾驶员驾驶证"
)
public
RestResponse
uploadDrivingLicense
(
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
Exception
{
String
contentType
=
file
.
getContentType
();
//图片文件类型
...
...
@@ -154,16 +163,19 @@ public class VehicleController extends BaseController<VehicleBiz> {
@IgnoreUserToken
@RequestMapping
(
value
=
"/download/drivingLicense"
,
method
=
RequestMethod
.
GET
)
//匹配的是href中的download请求
@ApiOperation
(
value
=
"下载驾驶证"
)
public
ResponseEntity
<
byte
[]>
downloadDrivingLicense
(
@RequestParam
(
"realFileRelPath"
)
String
realFileRelPath
)
throws
Exception
{
return
baseBiz
.
downloadDrivingLicense
(
realFileRelPath
);
}
@RequestMapping
(
value
=
"/bookedInfo/{vehicleId}/{yearMonth}"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取车辆预定信息"
)
public
RestResponse
<
VehicleBookInfo
>
getBookedInfo
(
@PathVariable
String
vehicleId
,
@PathVariable
String
yearMonth
)
{
return
RestResponse
.
data
(
baseBiz
.
getByVehicleIdAndYearMonth
(
vehicleId
,
yearMonth
));
}
@RequestMapping
(
value
=
"/bookedInfo/{vehicleId}"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"根据车辆Id获取所有的预定信息"
)
public
RestResponse
<
List
<
VehicleBookInfo
>>
getBookedInfo
(
@PathVariable
String
vehicleId
)
{
return
RestResponse
.
data
(
baseBiz
.
getByVehicleIdAndYearMonth
(
vehicleId
));
}
...
...
@@ -175,6 +187,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return
*/
@RequestMapping
(
value
=
"/book/4employee"
,
method
=
RequestMethod
.
POST
)
@ApiOperation
(
value
=
"申请预定车辆信息"
)
public
RestResponse
<
Integer
>
applyVehicle
(
@RequestBody
BookVehicleVO
bookVehicleVo
)
throws
Exception
{
Integer
operatorId
=
Integer
.
parseInt
(
BaseContextHandler
.
getUserID
());
String
userName
=
BaseContextHandler
.
getName
();
...
...
@@ -364,6 +377,25 @@ public class VehicleController extends BaseController<VehicleBiz> {
return
ObjectRestResponse
.
succ
(
bookVehicleVo
.
getVehicle
());
}
@RequestMapping
(
value
=
"/getVehiclePlanList"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取排车信息"
)
@IgnoreClientToken
public
ObjectRestResponse
<
Map
<
String
,
Object
>>
getVehiclePlanList
(
VehiclePlanDto
vehiclePlanDto
)
{
//获取统计信息
List
<
VehicleCountVo
>
vehicleCountVos
=
baseBiz
.
countVehicleByParam
(
vehiclePlanDto
);
//获取警告信息
List
<
VehicleWarningMsg
>
vehicleWarningMsgs
=
vehicleWarningMsgBiz
.
getAllByParam
(
vehiclePlanDto
);
//获取列表
PageDataVO
<
VehicleAndModelInfoVo
>
pageDataVO
=
baseBiz
.
getAllVehicle
(
vehiclePlanDto
);
Map
<
String
,
Object
>
map
=
Maps
.
newHashMap
();
map
.
put
(
"vehicleCountVos"
,
vehicleCountVos
);
map
.
put
(
"vehicleWarningMsgs"
,
vehicleWarningMsgs
);
map
.
put
(
"vehicleAndModelInfoVo"
,
pageDataVO
);
return
ObjectRestResponse
.
succ
(
map
);
}
/**
* 保存
*
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleBookRecordMapper.xml
View file @
6838160d
...
...
@@ -2,6 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper"
>
<resultMap
id=
"getVehicleMap"
type=
"com.xxfc.platform.vehicle.pojo.VehicleRecordInfoVo"
>
<association
property=
"vehicle"
column=
"vehicle_id"
select=
"com.xxfc.platform.vehicle.mapper.VehicleMapper.selectById"
/>
</resultMap>
<update
id=
"changeRecordStatus"
parameterType=
"java.util.Map"
>
update vehicle_book_record set
<if
test=
"reviewerApply != null "
>
...
...
@@ -87,7 +91,7 @@
<insert
id=
"insertHis"
parameterType=
"java.util.Map"
>
insert into ${tbName} (
`id`,
`vehicle`,
`vehicle
_id
`,
`status`,
`book_type`,
`book_user`,
...
...
@@ -119,7 +123,7 @@
)
values(
#{id},
#{vehicle},
#{vehicle
Id
},
#{status},
#{bookType},
#{bookUser},
...
...
@@ -154,7 +158,7 @@
<select
id=
"getByPage4Month"
parameterType=
"java.util.Map"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleBookRecord"
>
select
`id`,
`vehicle`,
`vehicle
_id
`,
`status`,
`book_type`,
`book_user`,
...
...
@@ -196,7 +200,7 @@
<select
id=
"getByPage"
parameterType=
"java.util.Map"
resultType=
"com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo"
>
select
vbr.`id`,
vbr.`vehicle`,
vbr.`vehicle
_id
`,
vbr.`status`,
vbr.`book_type`,
vbr.`book_user`,
...
...
@@ -236,11 +240,11 @@
vbf.booked_date as bookedDate
from
${tbName} vbr left join
vehicle v on vbr.vehicle = v.id left join
vehicle v on vbr.vehicle
_id
= v.id left join
branch_company bc on bc.id = v.subordinate_branch left join
branch_company bcl on bcl.id = vbr.lift_company left join
branch_company bcr on bcr.id = vbr.ret_company left join
vehicle_book_info vbf on vbf.vehicle = vbr.vehicle and vbf.year_month = #{selectedMonth}
vehicle_book_info vbf on vbf.vehicle = vbr.vehicle
_id
and vbf.year_month = #{selectedMonth}
where
1=1
<if
test=
"liftCompany !=null"
>
...
...
@@ -273,7 +277,7 @@
<select
id=
"getById"
parameterType=
"java.util.Map"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleBookRecord"
>
select
vbr.`id`,
vbr.`vehicle`,
vbr.`vehicle
_id
`,
vbr.`status`,
vbr.`book_type`,
vbr.`book_user`,
...
...
@@ -308,13 +312,71 @@
where id = #{id}
</select>
<select
id=
"getByVehicleId"
parameterType=
"java.lang.String"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleBookRecord"
>
select
vbr.`id`,
vbr.`vehicle_id`,
vbr.`status`,
vbr.`book_type`,
vbr.`book_user`,
vbr.`book_user_name`,
vbr.`contact_info`,
vbr.`book_start_date`,
vbr.`book_end_date`,
vbr.`lift_location`,
vbr.`lift_addr`,
vbr.`remark`,
vbr.`create_time`,
vbr.`update_time`,
vbr.`destination`,
vbr.`reviewer_apply`,
vbr.`reviewer_name_apply`,
vbr.`reviewer_return`,
vbr.`reviewer_name_return`,
vbr.`reviewer_cancel`,
vbr.`reviewer_name_cancel`,
vbr.`actual_start_date`,
vbr.`actual_end_date`,
vbr.`reviewer_lift`,
vbr.`reviewer_name_lift`,
vbr.lift_company,
vbr.lift_remark,
vbr.ret_company,
vbr.mileage_lift,
vbr.mileage_ret,
vbr.have_violation,
vbr.ret_remark
from vehicle_book_record vbr
where vehicle_id = #{vehicleId}
</select>
<select
id=
"getByParam"
parameterType=
"java.util.Map"
resultMap=
"getVehicleMap"
>
select v1.* from vehicle_book_record v1
left join vehicle v2 on v2.id = v1.vehicle_id
<where>
<if
test=
"startTime != null"
>
and v1.create_time between #{startTime} and #{endTime}
</if>
<if
test=
"numberPlate != null"
>
and v2.number_plate = #{numberPlate}
</if>
<if
test=
"status != null"
>
and v2.status = #{status}
</if>
<if
test=
"subordinateBranch != null"
>
and v2.subordinate_branch = #{subordinateBranch}
</if>
<if
test=
"parkBranchCompanyId != null"
>
and v2.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
order By v1.create_time DESC
</select>
<insert
id=
"createTbIfNotExists"
parameterType=
"java.lang.String"
>
CREATE TABLE IF NOT EXISTS ${_parameter} (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`vehicle` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '车辆id',
`vehicle
_id
` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '车辆id',
`status` int(255) NULL DEFAULT NULL COMMENT '申请状态:1-申请中 2-已通过 3-已归还 4-拒绝 5-逾期归还 6-已取消',
`book_type` int(11) NOT NULL COMMENT '预定类型,1-用户租赁、2-内部员工申请 3-维修',
`book_user` int(11) NOT NULL COMMENT '预定用户id',
...
...
@@ -346,7 +408,7 @@
`mileage_ret` int(10) NULL DEFAULT NULL COMMENT '还车里程数',
`have_violation` tinyint(4) NULL DEFAULT NULL COMMENT '是否违章',
PRIMARY KEY (`id`) USING BTREE,
INDEX `i_vehicle`(`vehicle`) USING BTREE,
INDEX `i_vehicle`(`vehicle
_id
`) USING BTREE,
INDEX `i_book_user`(`book_user`) USING BTREE,
INDEX `i_book_end_date`(`book_end_date`) USING BTREE COMMENT '迁移至历史表时查询用到该索引(暂时)'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '汽车预定记录历史表,按年分表' ROW_FORMAT = Dynamic;
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleMapper.xml
View file @
6838160d
...
...
@@ -3,15 +3,23 @@
<mapper
namespace=
"com.xxfc.platform.vehicle.mapper.VehicleMapper"
>
<resultMap
id=
"searchUsableModelMap"
type=
"com.xxfc.platform.vehicle.pojo.UsableVehicleModelVO"
>
<!-- <collection column="company_id" property="id" ofType="com.xxfc.platform.vehicle.entity.BranchCompany" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" />-->
<!-- <result column="company_id" property="companyId" jdbcType="VARCHAR" javaType="java.lang.Integer"/>-->
<!-- <result column="model_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<!-- <result column="vehicle_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<association
property=
"company"
column=
"company_id"
select=
"com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey"
/>
<association
property=
"vehicleModel"
column=
"model_id"
select=
"com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"
/>
<!-- <association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectByPrimaryKey" />-->
<!-- <collection column="company_id" property="id" ofType="com.xxfc.platform.vehicle.entity.BranchCompany" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" />-->
<!-- <result column="company_id" property="companyId" jdbcType="VARCHAR" javaType="java.lang.Integer"/>-->
<!-- <result column="model_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<!-- <result column="vehicle_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<association
property=
"company"
column=
"company_id"
select=
"com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey"
/>
<association
property=
"vehicleModel"
column=
"model_id"
select=
"com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"
/>
<!-- <association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectByPrimaryKey" />-->
</resultMap>
<resultMap
id=
"searchModel"
type=
"com.xxfc.platform.vehicle.pojo.VehicleAndModelInfoVo"
>
<association
property=
"vehicleModel"
column=
"model_id"
select=
"com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"
/>
<association
property=
"vehicleBookRecord"
column=
"id"
select=
"com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.getByVehicleId"
/>
</resultMap>
<update
id=
"updateStatusById"
parameterType=
"java.util.Map"
>
update vehicle set status = #{status} where id in
<foreach
collection=
"idList"
index=
"i"
item=
"item"
separator=
","
open=
"("
close=
")"
>
...
...
@@ -237,6 +245,12 @@
where number_plate = #{numberPlate}
</select>
<select
id=
"selectById"
resultMap=
"searchModel"
>
select * from vehicle
where id = #{id}
order By create_time DESC
</select>
<update
id=
"updateStatusByIdAndStatus"
>
update vehicle
set status = #{status}
...
...
@@ -255,7 +269,8 @@
<include
refid=
"searchUsableSql"
/>
GROUP BY model_id, company_id
<if
test=
"lon != null and lat != null"
>
, distance
</if>
GROUP BY model_id, company_id
<if
test=
"lon != null and lat != null"
>
, distance
</if>
<!-- 循环 相同父级 数据做并集, 不同父级做或集 -->
<if
test=
" catas != null "
>
...
...
@@ -294,6 +309,131 @@
distance asc
</if>
</select>
<select
id=
"getAllVehicle"
parameterType=
"java.util.Map"
resultMap=
"searchModel"
>
select *
from vehicle v1
<where>
<if
test=
"startTime != null"
>
and v1.create_time between #{startTime} and #{endTime}
</if>
<if
test=
"numberPlate != null"
>
and v1.number_plate = #{numberPlate}
</if>
<if
test=
"status != null"
>
and v1.status = #{status}
</if>
<if
test=
"subordinateBranch != null"
>
and v1.subordinate_branch = #{subordinateBranch}
</if>
<if
test=
"parkBranchCompanyId != null"
>
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
</select>
<select
id=
"countVehicleByParam"
parameterType=
"com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto"
resultType=
"com.xxfc.platform.vehicle.pojo.VehicleCountVo"
>
SELECT count(*) total ,
CASE
WHEN travel_status = 1 THEN
'1'
WHEN travel_status = 2 THEN
'2'
WHEN travel_status = 3 THEN
'3'
WHEN travel_status = 4 THEN
'4'
ELSE
'-1'
END travel_status,
CASE
WHEN travel_status = 1 THEN
'出行中'
WHEN travel_status = 2 THEN
'预约中'
WHEN travel_status = 3 THEN
'空闲中'
WHEN travel_status = 4 THEN
'保养中'
ELSE
'不可用'
END detail
from vehicle v1
<where>
<if
test=
"startTime != null"
>
and v1.create_time between #{startTime} and #{endTime}
</if>
<if
test=
"numberPlate != null"
>
and v1.number_plate = #{numberPlate}
</if>
<if
test=
"status != null"
>
and v1.status = #{status}
</if>
<if
test=
"subordinateBranch != null"
>
and v1.subordinate_branch = #{subordinateBranch}
</if>
<if
test=
"parkBranchCompanyId != null"
>
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
GROUP BY travel_status
union all
SELECT count(*) total, '0' travel_status, '总数' detail from vehicle v2
<where>
<if
test=
"startTime != null"
>
and v2.create_time between #{startTime} and #{endTime}
</if>
<if
test=
"numberPlate != null"
>
and v2.number_plate = #{numberPlate}
</if>
<if
test=
"status != null"
>
and v2.status = #{status}
</if>
<if
test=
"subordinateBranch != null"
>
and v2.subordinate_branch = #{subordinateBranch}
</if>
<if
test=
"parkBranchCompanyId != null"
>
and v2.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
union all
SELECT count(*) total,
CASE
WHEN status = 1 THEN
'5'
WHEN status = 2 THEN
'6'
ELSE
'7'
END travel_status,
CASE
WHEN status = 1 THEN
'正常运行'
WHEN status = 2 THEN
'维修'
ELSE
'报废'
END travel_status
FROM vehicle v3
<where>
<if
test=
"startTime != null"
>
and v3.create_time between #{startTime} and #{endTime}
</if>
<if
test=
"numberPlate != null"
>
and v3.number_plate = #{numberPlate}
</if>
<if
test=
"status != null"
>
and v3.status = #{status}
</if>
<if
test=
"subordinateBranch != null"
>
and v3.subordinate_branch = #{subordinateBranch}
</if>
<if
test=
"parkBranchCompanyId != null"
>
and v3.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
GROUP BY status
</select>
<sql
id=
"searchUsableSql"
>
from vehicle v
...
...
@@ -302,7 +442,7 @@
vehicle_book_info vbi on v.`id` = vbi.vehicle
</if>
left join vehicle_model vm on v.model_id = vm.id
left join branch_company bc on v.park_branch_company_id =
bc.id
left join branch_company bc on v.park_branch_company_id = bc.id
<if
test=
" catas != null "
>
left join vehicle_cata vc on vm.id = vc.vehicle_model_id
</if>
...
...
@@ -312,7 +452,8 @@
<foreach
collection=
"yearMonthAndParam"
index=
"yearMonth"
item=
"andOperation"
>
and
( (vbi.`year_month` = #{yearMonth} or vbi.`year_month` is null) and
ifnull(vbi.`booked_date`,0)
&
#{andOperation.andOperationFactor} = #{andOperation.andOperationRs}
ifnull(vbi.`booked_date`,0)
&
#{andOperation.andOperationFactor} =
#{andOperation.andOperationRs}
)
</foreach>
</if>
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleWarningMsgMapper.xml
View file @
6838160d
...
...
@@ -20,8 +20,35 @@
</select>
<select
id=
"getMsgByVehicle"
parameterType=
"String"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleWarningMsg"
>
select id, type, status, msg, rule_id, msg_key, vehicle_id, create_time, update_time, remark from vehicle_warning_msg where vehicle_id = #{_parameter}
<select
id=
"getMsgByVehicle"
parameterType=
"java.util.Map"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleWarningMsg"
>
select id, type, status, msg, rule_id, msg_key, vehicle_id, create_time, update_time, remark from vehicle_warning_msg
where vehicle_id = #{_parameter}
</select>
<select
id=
"getAllByparam"
parameterType=
"com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleWarningMsg"
>
select w.*
from vehicle_warning_msg w
left join vehicle v on w.vehicle_id = v.id
<where>
<if
test=
"vehicleId != null"
>
and w.vehicle_id = #{vehicleId}
</if>
<if
test=
"startTime != null"
>
and w.create_time between #{startTime} and #{endTime}
</if>
<if
test=
"numberPlate != null"
>
and v.number_plate = #{numberPlate}
</if>
<if
test=
"status != null"
>
and v.status = #{status}
</if>
<if
test=
"subordinateBranch != null"
>
and v.subordinate_branch = #{subordinateBranch}
</if>
<if
test=
"parkBranchCompanyId != null"
>
and v.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
</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