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
0b1c3c3c
Commit
0b1c3c3c
authored
Oct 16, 2019
by
libin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'holiday-price' and 'master-auto-pay' into base-modify
parents
fcd43ed7
7be3c65d
c4d9b8cc
Changes
25
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
1239 additions
and
4 deletions
+1239
-4
UserFeign.java
...va/com/github/wxiaoqi/security/admin/feign/UserFeign.java
+4
-0
AppUserAlipayBiz.java
...m/github/wxiaoqi/security/admin/biz/AppUserAlipayBiz.java
+1
-1
BaseUserMemberLevelMapper.java
...aoqi/security/admin/mapper/BaseUserMemberLevelMapper.java
+1
-3
UserMemberController.java
...hub/wxiaoqi/security/admin/rest/UserMemberController.java
+6
-0
OrderItemDetailDTO.java
...om/xxfc/platform/order/pojo/order/OrderItemDetailDTO.java
+12
-0
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+12
-0
VehicleModelCalendarPrice.java
...fc/platform/vehicle/entity/VehicleModelCalendarPrice.java
+92
-0
VehicleModelHolidayPrice.java
...xfc/platform/vehicle/entity/VehicleModelHolidayPrice.java
+72
-0
VehicleModelCalendarPriceDTO.java
...atform/vehicle/pojo/dto/VehicleModelCalendarPriceDTO.java
+29
-0
VehicleModelCalendarPriceSaveDTO.java
...rm/vehicle/pojo/dto/VehicleModelCalendarPriceSaveDTO.java
+58
-0
VehicleModelDTO.java
...a/com/xxfc/platform/vehicle/pojo/dto/VehicleModelDTO.java
+27
-0
VehicleModelHolidayPriceDTO.java
...latform/vehicle/pojo/dto/VehicleModelHolidayPriceDTO.java
+40
-0
VehicleModelHolidayPriceFindDTO.java
...orm/vehicle/pojo/dto/VehicleModelHolidayPriceFindDTO.java
+24
-0
VehicleModelHolidayPriceSaveDTO.java
...orm/vehicle/pojo/dto/VehicleModelHolidayPriceSaveDTO.java
+40
-0
VehicleModelDayPriceVo.java
...xxfc/platform/vehicle/pojo/vo/VehicleModelDayPriceVo.java
+32
-0
VehicleModelHolidayPriceVo.java
.../platform/vehicle/pojo/vo/VehicleModelHolidayPriceVo.java
+48
-0
VehicleModelBiz.java
...n/java/com/xxfc/platform/vehicle/biz/VehicleModelBiz.java
+15
-0
VehicleModelCalendarPriceBiz.java
...fc/platform/vehicle/biz/VehicleModelCalendarPriceBiz.java
+377
-0
VehicleModelHolidayPriceBiz.java
...xfc/platform/vehicle/biz/VehicleModelHolidayPriceBiz.java
+165
-0
VehicleModelCalendarPriceMapper.java
...tform/vehicle/mapper/VehicleModelCalendarPriceMapper.java
+14
-0
VehicleModelHolidayPriceMapper.java
...atform/vehicle/mapper/VehicleModelHolidayPriceMapper.java
+13
-0
VehicleModelMapper.java
.../com/xxfc/platform/vehicle/mapper/VehicleModelMapper.java
+11
-0
VehicleModelCalendarPriceController.java
...orm/vehicle/rest/VehicleModelCalendarPriceController.java
+40
-0
VehicleModelCalendarPriceAdminController.java
.../rest/admin/VehicleModelCalendarPriceAdminController.java
+57
-0
VehicleModelHolidayPriceAdminController.java
...e/rest/admin/VehicleModelHolidayPriceAdminController.java
+49
-0
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/feign/UserFeign.java
View file @
0b1c3c3c
...
...
@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.feign;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
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.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
...
...
@@ -129,4 +130,7 @@ public interface UserFeign {
@GetMapping
(
"/app/user/finduserIdsByphones"
)
Map
<
String
,
Integer
>
findAppusersByUserNames
(
@RequestParam
(
value
=
"phones"
)
List
<
String
>
phones
);
@GetMapping
(
"/member/user"
)
BaseUserMember
findBaseUserMemberByUserId
(
@RequestParam
(
value
=
"userId"
)
Integer
userId
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserAlipayBiz.java
View file @
0b1c3c3c
...
...
@@ -105,7 +105,7 @@ public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay
AppUserAlipay
wxAppUser
=
new
AppUserAlipay
();
wxAppUser
.
setType
(
2
);
wxAppUser
.
setUserId
(
userId
);
wxAppUser
.
setNickname
(
appUserDetail
.
getWxNickname
());
wxAppUser
.
setNickname
(
StringUtils
.
isEmpty
(
appUserDetail
.
getWxNickname
())?
appUserDetail
.
getNickname
():
appUserDetail
.
getWxNickname
());
wxAppUser
.
setTxAlipay
(
appUserLogin
.
getWxOpenid
());
appUserAlipays
.
add
(
wxAppUser
);
}
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/BaseUserMemberLevelMapper.java
View file @
0b1c3c3c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
mapper
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.springframework.stereotype.Repository
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
...
...
@@ -14,7 +13,6 @@ import java.util.List;
* @email nishijjo@qq.com
* @date 2019-06-11 11:06:45
*/
@Repository
public
interface
BaseUserMemberLevelMapper
extends
Mapper
<
BaseUserMemberLevel
>
{
List
<
BaseUserMemberLevel
>
selectUserMembersLevelByLevels
(
@Param
(
"levels"
)
List
<
Integer
>
levels
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserMemberController.java
View file @
0b1c3c3c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz
;
import
com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -49,4 +50,9 @@ public class UserMemberController {
)
throws
Exception
{
return
memberBiz
.
upMemberDays
(
userId
,
days
,
type
);
}
@GetMapping
(
"/user"
)
public
BaseUserMemberVO
findBaseUserMemberByUserId
(
@RequestParam
(
value
=
"userId"
)
Integer
userId
){
return
memberBiz
.
findOneByUserId
(
userId
);
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/OrderItemDTO.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/OrderItemD
etailD
TO.java
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
lombok.Data
;
public
class
OrderItemDTO
extends
OrderItem
{
import
java.math.BigDecimal
;
@Data
public
class
OrderItemDetailDTO
{
Integer
day
;
BigDecimal
price
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
0b1c3c3c
...
...
@@ -27,6 +27,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.pojo.OrderAccompanyDTO
;
import
com.xxfc.platform.order.pojo.order.OrderItemDetailDTO
;
import
com.xxfc.platform.order.pojo.order.RentVehicleBO
;
import
com.xxfc.platform.order.pojo.price.RentVehiclePriceVO
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
...
...
@@ -233,6 +234,17 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//车型信息
VehicleModel
vehicleModel
=
vehicleFeign
.
get
(
detail
.
getModelId
()).
getData
();
//itemDetail
List
<
OrderItemDetailDTO
>
orderItemDetailDTOS
=
CollUtil
.
newArrayList
(
new
OrderItemDetailDTO
()
{{
setDay
(
20191015
);
setPrice
(
BigDecimal
.
ONE
);
}},
new
OrderItemDetailDTO
()
{{
setDay
(
20191016
);
setPrice
(
BigDecimal
.
TEN
);
}});
//orderItemDetailDTOS.parallelStream().
//设置Item
OrderItem
vehicleOrderItem
=
orderItemBiz
.
initOrderItem
(
vehicleModel
.
getPrice
(),
detail
.
getDayNum
(),
vehicleModel
.
getName
(),
vehicleModel
.
getId
(),
ItemTypeEnum
.
VEHICLE_MODEL
);
OrderItem
driverOrderItem
=
orderItemBiz
.
initOrderItem
(
DRIVER_PRICE
,
detail
.
getDayNum
(),
"平台司机"
,
null
,
ItemTypeEnum
.
DRIVER
);
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/entity/VehicleModelCalendarPrice.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description 车型日历价格
* @data 2019/10/14 16:32
*/
@Data
@Builder
(
toBuilder
=
true
)
@NoArgsConstructor
@AllArgsConstructor
@Table
(
name
=
"vehicle_model_calendar_price"
)
public
class
VehicleModelCalendarPrice
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Long
id
;
/**
* 日期设置
*/
@Column
(
name
=
"vehicle_model_day"
)
private
Date
vehicleModelDay
;
/**
* 是否全局设置
*/
@Column
(
name
=
"is_global"
)
private
Boolean
isGlobal
;
/**
* 车型id
*/
@Column
(
name
=
"vehicle_model_id"
)
private
Integer
vehicleModelId
;
/**
* 1:倍数 2:绝对值 3:会员价
*/
private
Integer
type
;
/**
* 倍数
*/
private
Double
multiple
;
/**
* 抵扣天数
*/
@Column
(
name
=
"free_days"
)
private
Integer
freeDays
;
/**
* 绝对值 或会员价
*/
private
BigDecimal
price
;
/**
* 创建时间
*/
@Column
(
name
=
"crt_time"
)
private
Date
crtTime
;
/**
* 更新时间
*/
@Column
(
name
=
"upd_time"
)
private
Date
updTime
;
/**
* 创建者id
*/
@Column
(
name
=
"crt_userId"
)
private
Integer
crtUserId
;
/**
* 更新者id
*/
@Column
(
name
=
"upd_userId"
)
private
Integer
updUserId
;
@Column
(
name
=
"is_del"
)
private
Integer
isDel
;
/**
* 会员等级 1:普通 2:黄金 3:钻石
*/
private
Integer
level
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/entity/VehicleModelHolidayPrice.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 16:30
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
@Table
(
name
=
"vehicle_model_holiday_price"
)
public
class
VehicleModelHolidayPrice
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Long
id
;
/**
* 节假日日期
*/
@Column
(
name
=
"festival_day"
)
private
Date
festivalDay
;
/**
* 节假日
*/
private
String
festival
;
/**
* 倍数
*/
private
Double
multiple
;
/**
* 免费天数
*/
@Column
(
name
=
"free_days"
)
private
Integer
freeDays
;
/**
* 创建时间
*/
@Column
(
name
=
"crt_time"
)
private
Date
crtTime
;
/**
* 创建者
*/
@Column
(
name
=
"crt_userId"
)
private
Integer
crtUserId
;
/**
* 更新时间
*/
@Column
(
name
=
"upd_time"
)
private
Date
updTime
;
/**
* 更新者
*/
@Column
(
name
=
"upd_userId"
)
private
Integer
updUserId
;
@Column
(
name
=
"is_del"
)
private
Integer
isDel
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehicleModelCalendarPriceDTO.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:11
*/
@Data
@Builder
(
toBuilder
=
true
)
@NoArgsConstructor
@AllArgsConstructor
public
class
VehicleModelCalendarPriceDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Date
date
;
private
BigDecimal
price
;
private
Integer
freeDays
;
private
Boolean
isSelect
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehicleModelCalendarPriceSaveDTO.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:11
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
VehicleModelCalendarPriceSaveDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Long
id
;
/**
* 日期设置
*/
private
Date
vehicleModelDay
;
/**
* 是否全局设置
*/
private
Boolean
isGlobal
;
/**
* 车型id
*/
private
Integer
vehicleModelId
;
/**
* 1:倍数 2:绝对值 3:会员价
*/
private
Integer
type
;
/**
* 倍数
*/
private
Double
multiple
;
/**
* 抵扣天数
*/
private
Integer
freeDays
;
/**
* 绝对值 或会员价
*/
private
BigDecimal
price
;
/**
* 会员等级 1:普通 2:黄金 3:钻石
*/
private
Integer
level
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehicleModelDTO.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/15 18:06
*/
@Data
@Builder
(
toBuilder
=
true
)
@NoArgsConstructor
@AllArgsConstructor
public
class
VehicleModelDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Integer
vehicleModelId
;
private
String
name
;
private
BigDecimal
basePrice
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehicleModelHolidayPriceDTO.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 18:59
*/
@Data
@Builder
(
toBuilder
=
true
)
@NoArgsConstructor
@AllArgsConstructor
public
class
VehicleModelHolidayPriceDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 节假日日期
*/
private
Date
festivalDay
;
/**
* 节假日
*/
private
String
festival
;
/**
* 倍数
*/
private
Double
multiple
;
/**
* 免费天数
*/
private
Integer
freeDays
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehicleModelHolidayPriceFindDTO.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
dto
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 18:34
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
VehicleModelHolidayPriceFindDTO
extends
PageParam
{
private
String
festival
;
private
Date
date
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehicleModelHolidayPriceSaveDTO.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:12
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
VehicleModelHolidayPriceSaveDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Long
id
;
/**
* 节假日日期
*/
private
Date
festivalDay
;
/**
* 节假日
*/
private
String
festival
;
/**
* 倍数
*/
private
Double
multiple
;
/**
* 免费天数
*/
private
Integer
freeDays
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/vo/VehicleModelDayPriceVo.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
vo
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/15 17:55
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
VehicleModelDayPriceVo
extends
VehicleModelDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 绝对值 | 会员价
*/
private
BigDecimal
price
;
/**
* 倍数
*/
private
Double
multiple
;
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/vo/VehicleModelHolidayPriceVo.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:18
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
VehicleModelHolidayPriceVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Long
id
;
/**
* 节假日日期
*/
private
Date
festivalDay
;
/**
* 节假日
*/
private
String
festival
;
/**
* 倍数
*/
private
Double
multiple
;
/**
* 免费天数
*/
private
Integer
freeDays
;
/**
* 创建时间
*/
private
Date
crtTime
;
/**
* 更新时间
*/
private
Date
updTime
;
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleModelBiz.java
View file @
0b1c3c3c
...
...
@@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
import
com.github.pagehelper.PageHelper
;
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.RandomUtil
;
import
com.github.wxiaoqi.security.common.vo.GoodDataVO
;
...
...
@@ -13,6 +14,7 @@ import com.xxfc.platform.vehicle.entity.VehicleModel;
import
com.xxfc.platform.vehicle.mapper.VehicleModelMapper
;
import
com.xxfc.platform.vehicle.pojo.VehicleModelQueryCondition
;
import
com.xxfc.platform.vehicle.pojo.VehicleModelVo
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -21,6 +23,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import
tk.mybatis.mapper.entity.Example
;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.math.BigDecimal
;
import
java.util.*
;
/**
...
...
@@ -152,4 +155,16 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> {
// }
return
goodDataVOS
;
}
public
BigDecimal
findVehicleModelPriceByVehicleModelId
(
Integer
vehicleModelId
)
{
BigDecimal
price
=
mapper
.
selectPriceById
(
vehicleModelId
);
if
(
price
==
null
||
price
.
doubleValue
()==
0.0
){
throw
new
BaseException
(
"该车型不存在原价"
);
}
return
price
;
}
public
List
<
VehicleModelDTO
>
findAllVehicleModel
()
{
return
mapper
.
findAllVehicleModel
();
}
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleModelCalendarPriceBiz.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
biz
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMember
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.vehicle.entity.VehicleModelCalendarPrice
;
import
com.xxfc.platform.vehicle.mapper.VehicleModelCalendarPriceMapper
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceSaveDTO
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelDTO
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelHolidayPriceDTO
;
import
com.xxfc.platform.vehicle.pojo.vo.VehicleModelDayPriceVo
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.math.BigDecimal
;
import
java.time.LocalDate
;
import
java.time.ZoneId
;
import
java.time.temporal.TemporalAdjusters
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:32
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
VehicleModelCalendarPriceBiz
extends
BaseBiz
<
VehicleModelCalendarPriceMapper
,
VehicleModelCalendarPrice
>
{
/**
* 一个星期的第一天
*/
private
static
final
int
START_OF_WEEK
=
1
;
/**
* 一个星期的最后一天
*/
private
static
final
int
END_OF_WEEK
=
7
;
private
final
VehicleModelHolidayPriceBiz
vehicleModelHolidayPriceBiz
;
private
final
VehicleModelBiz
vehicleModelBiz
;
private
final
UserFeign
userFeign
;
/**
* 保存
*
* @param vehicleModelCalendarPrices
* @param userId
*/
public
void
addVehicleModelCalendarPrice
(
List
<
VehicleModelCalendarPriceSaveDTO
>
vehicleModelCalendarPrices
,
Integer
userId
)
{
if
(
CollectionUtils
.
isNotEmpty
(
vehicleModelCalendarPrices
))
{
List
<
VehicleModelCalendarPrice
>
vehicleModelCalendarPriceList
=
new
ArrayList
<>();
List
<
Date
>
dateList
=
vehicleModelCalendarPrices
.
stream
().
peek
(
x
->
{
VehicleModelCalendarPrice
calendarPrice
=
new
VehicleModelCalendarPrice
();
BeanUtils
.
copyProperties
(
x
,
calendarPrice
);
calendarPrice
.
setCrtTime
(
new
Date
());
calendarPrice
.
setCrtUserId
(
userId
);
vehicleModelCalendarPriceList
.
add
(
calendarPrice
);
}).
map
(
VehicleModelCalendarPriceSaveDTO:
:
getVehicleModelDay
).
distinct
().
collect
(
Collectors
.
toList
());
//1.删除当月做更改了的日期的数据
VehicleModelCalendarPrice
vehicleModelCalendarPrice
=
new
VehicleModelCalendarPrice
();
vehicleModelCalendarPrice
.
setUpdUserId
(
userId
);
vehicleModelCalendarPrice
.
setUpdTime
(
new
Date
());
vehicleModelCalendarPrice
.
setIsDel
(
1
);
Example
example
=
new
Example
(
VehicleModelCalendarPrice
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andIn
(
"vehicleModelDay"
,
dateList
);
mapper
.
updateByExample
(
vehicleModelCalendarPrice
,
example
);
//2.插入新的数据
mapper
.
insertList
(
vehicleModelCalendarPriceList
);
}
}
/**
* 查询全部车型
*
* @return
*/
public
List
<
VehicleModelDayPriceVo
>
listVehicleModelPrice
()
{
List
<
VehicleModelDayPriceVo
>
vehicleModelDayPriceVos
=
new
ArrayList
<>();
List
<
VehicleModelDTO
>
vehicleModelDTOS
=
vehicleModelBiz
.
findAllVehicleModel
();
VehicleModelDayPriceVo
vehicleModelDayPriceVo
;
for
(
VehicleModelDTO
vehicleModelDTO
:
vehicleModelDTOS
)
{
vehicleModelDayPriceVo
=
new
VehicleModelDayPriceVo
();
BeanUtils
.
copyProperties
(
vehicleModelDTO
,
vehicleModelDayPriceVo
);
vehicleModelDayPriceVos
.
add
(
vehicleModelDayPriceVo
);
}
return
vehicleModelDayPriceVos
;
}
/**
* 根据俱体日期查询
*
* @param currentDate
* @return
*/
public
List
<
VehicleModelDayPriceVo
>
findVehicleModelcalendarPriceByDateWithDay
(
Date
currentDate
)
{
List
<
VehicleModelDayPriceVo
>
vehicleModelDayPriceVos
=
new
ArrayList
<>();
Map
<
Integer
,
VehicleModelCalendarPrice
>
vehicleModelCalendarPriceMap
=
null
;
Example
example
=
new
Example
(
VehicleModelCalendarPrice
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"vehicleModelDay"
,
currentDate
);
criteria
.
andEqualTo
(
"isDel"
,
0
);
List
<
VehicleModelCalendarPrice
>
vehicleModelCalendarPriceList
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isNotEmpty
(
vehicleModelCalendarPriceList
))
{
vehicleModelCalendarPriceMap
=
vehicleModelCalendarPriceList
.
stream
().
collect
(
Collectors
.
toMap
(
VehicleModelCalendarPrice:
:
getVehicleModelId
,
Function
.
identity
()));
}
List
<
VehicleModelDTO
>
vehicleModelDTOS
=
vehicleModelBiz
.
findAllVehicleModel
();
VehicleModelDayPriceVo
vehicleModelDayPriceVo
;
for
(
VehicleModelDTO
vehicleModelDTO
:
vehicleModelDTOS
)
{
vehicleModelDayPriceVo
=
new
VehicleModelDayPriceVo
();
BeanUtils
.
copyProperties
(
vehicleModelDTO
,
vehicleModelDayPriceVo
);
boolean
isNullOfVehicleModelPrice
=
vehicleModelCalendarPriceMap
==
null
?
true
:
vehicleModelCalendarPriceMap
.
get
(
vehicleModelDTO
.
getVehicleModelId
())
==
null
;
Double
multiple
=
isNullOfVehicleModelPrice
?
null
:
vehicleModelCalendarPriceMap
.
get
(
vehicleModelDTO
.
getVehicleModelId
()).
getMultiple
();
vehicleModelDayPriceVo
.
setMultiple
(
multiple
);
BigDecimal
aPrice
=
isNullOfVehicleModelPrice
?
null
:
vehicleModelCalendarPriceMap
.
get
(
vehicleModelDTO
.
getVehicleModelId
()).
getPrice
();
vehicleModelDayPriceVo
.
setPrice
(
aPrice
);
vehicleModelDayPriceVos
.
add
(
vehicleModelDayPriceVo
);
}
return
vehicleModelDayPriceVos
;
}
/**
* 根据月份查询
*
* @param currentDate
* @return
*/
public
List
<
VehicleModelCalendarPriceSaveDTO
>
findVehicleModelCalendarPricesByDateWithMonth
(
Date
currentDate
)
{
List
<
VehicleModelCalendarPriceSaveDTO
>
vehicleModelCalendarPriceSaveDTOS
=
new
ArrayList
<>();
Example
example
=
new
Example
(
VehicleModelCalendarPrice
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
LocalDate
startLocalDate
=
currentDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
().
withDayOfMonth
(
1
);
Date
startDate
=
Date
.
from
(
startLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
());
LocalDate
endLocalDate
=
startLocalDate
.
with
(
TemporalAdjusters
.
lastDayOfMonth
());
Date
endDate
=
Date
.
from
(
endLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
());
criteria
.
andBetween
(
"vehicleModelDay"
,
startDate
,
endDate
);
criteria
.
andEqualTo
(
"isDel"
,
0
);
List
<
VehicleModelCalendarPrice
>
vehicleModelCalendarPriceList
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isEmpty
(
vehicleModelCalendarPriceList
))
{
return
vehicleModelCalendarPriceSaveDTOS
;
}
VehicleModelCalendarPriceSaveDTO
vehicleModelCalendarPrice
;
for
(
VehicleModelCalendarPrice
calendarPrice
:
vehicleModelCalendarPriceList
)
{
vehicleModelCalendarPrice
=
new
VehicleModelCalendarPriceSaveDTO
();
BeanUtils
.
copyProperties
(
calendarPrice
,
vehicleModelCalendarPrice
);
vehicleModelCalendarPriceSaveDTOS
.
add
(
vehicleModelCalendarPrice
);
}
return
vehicleModelCalendarPriceSaveDTOS
;
}
/**
* 根据下单时间查询
*
* @param startDate
* @param endDate
* @param vehicleModelId
* @param userId
* @return
*/
public
List
<
VehicleModelCalendarPriceDTO
>
findVehicleModelCalendarPriceByDateAndVehilceIdAndUserId
(
Date
startDate
,
Date
endDate
,
Integer
vehicleModelId
,
Integer
userId
)
{
return
findVehicleModelCalendarPrice
(
startDate
,
endDate
,
vehicleModelId
,
userId
);
}
/**
* 日历展示车型价格
*
* @param startDate
* @param endDate
* @param vehicleModelId
* @param userId
* @return
*/
public
List
<
VehicleModelCalendarPriceDTO
>
listVehicleModelCalendarPriceByDateAndVehicleModelIdAndUserId
(
Date
startDate
,
Date
endDate
,
Integer
vehicleModelId
,
Integer
userId
)
{
LocalDate
startLocalDate
=
startDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
LocalDate
endLocalDate
=
endDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
//处理后延伸的开始时间
AtomicReference
<
Date
>
startReference
=
new
AtomicReference
<>(
startDate
);
//处理后延伸的结束时间
AtomicReference
<
Date
>
endReference
=
new
AtomicReference
<>(
endDate
);
transformStartDateAndEndDate
(
startReference
,
endReference
);
List
<
VehicleModelCalendarPriceDTO
>
vehicleModelCalendarPrice
=
findVehicleModelCalendarPrice
(
startReference
.
get
(),
endReference
.
get
(),
vehicleModelId
,
userId
);
for
(
VehicleModelCalendarPriceDTO
vehicleModelCalendarPriceDTO
:
vehicleModelCalendarPrice
)
{
LocalDate
current_date
=
vehicleModelCalendarPriceDTO
.
getDate
().
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
boolean
isSelect
=
(
current_date
.
isAfter
(
startLocalDate
)
&&
current_date
.
isBefore
(
endLocalDate
))
||
current_date
.
isEqual
(
startLocalDate
)
||
current_date
.
isEqual
(
endLocalDate
);
if
(
isSelect
)
{
vehicleModelCalendarPriceDTO
.
setIsSelect
(
true
);
}
else
{
vehicleModelCalendarPriceDTO
.
setIsSelect
(
false
);
}
}
return
vehicleModelCalendarPrice
;
}
/**
* 日历价格查询
*
* @param startDate
* @param endDate
* @param vehicleModelId
* @return
*/
public
List
<
VehicleModelCalendarPriceDTO
>
findVehicleModelCalendarPrice
(
Date
startDate
,
Date
endDate
,
Integer
vehicleModelId
,
Integer
userId
)
{
List
<
VehicleModelCalendarPriceDTO
>
vehicleModelCalendarPriceVos
=
new
ArrayList
<>();
//默认折扣
Integer
discount
=
100
;
//默认免费天数
int
free_days
=
1
;
//会员默认等级
Integer
memberLevel
=
0
;
//日历价格转map
List
<
VehicleModelCalendarPrice
>
vehicleModelCalendarPrices
=
getVehicleModelCalendarPricesByVehicleModelIdAndDate
(
vehicleModelId
,
startDate
,
endDate
);
Map
<
Date
,
VehicleModelCalendarPrice
>
calendarPriceMap
=
vehicleModelCalendarPrices
.
stream
().
collect
(
Collectors
.
toMap
(
VehicleModelCalendarPrice:
:
getVehicleModelDay
,
Function
.
identity
()));
//节假日转map
List
<
VehicleModelHolidayPriceDTO
>
vehicleModelHolidayPrices
=
vehicleModelHolidayPriceBiz
.
findVehicleModelHolidayPriceByMonth
(
startDate
,
endDate
);
Map
<
Date
,
VehicleModelHolidayPriceDTO
>
festivalDayMap
=
vehicleModelHolidayPrices
.
stream
().
collect
(
Collectors
.
toMap
(
VehicleModelHolidayPriceDTO:
:
getFestivalDay
,
Function
.
identity
()));
Map
<
Integer
,
Integer
>
levelAndDiscountMap
=
userFeign
.
levels
().
stream
().
collect
(
Collectors
.
toMap
(
BaseUserMemberLevel:
:
getLevel
,
BaseUserMemberLevel:
:
getDiscount
));
//车型的原价
BigDecimal
vehicle_price
=
vehicleModelBiz
.
findVehicleModelPriceByVehicleModelId
(
vehicleModelId
);
if
(
Objects
.
nonNull
(
userId
))
{
BaseUserMember
baseUserMember
=
userFeign
.
findBaseUserMemberByUserId
(
userId
);
discount
=
baseUserMember
==
null
?
discount
:
baseUserMember
.
getDiscount
();
memberLevel
=
baseUserMember
==
null
?
memberLevel
:
baseUserMember
.
getMemberLevel
();
}
VehicleModelCalendarPriceDTO
vehicleModelCalendarPriceDTO
;
LocalDate
final_startLocalDate
=
startDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
LocalDate
final_endLocalDate
=
endDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
while
(
final_startLocalDate
.
isBefore
(
final_endLocalDate
)
||
final_startLocalDate
.
isEqual
(
final_endLocalDate
))
{
vehicleModelCalendarPriceDTO
=
new
VehicleModelCalendarPriceDTO
();
Date
current_date
=
Date
.
from
(
final_startLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
());
vehicleModelCalendarPriceDTO
.
setDate
(
current_date
);
if
(
calendarPriceMap
!=
null
&&
!
calendarPriceMap
.
isEmpty
())
{
VehicleModelCalendarPrice
vehicleModelCalendarPrice
=
calendarPriceMap
.
get
(
current_date
);
if
(
Objects
.
isNull
(
vehicleModelCalendarPrice
))
{
if
(
festivalDayMap
!=
null
&&
!
festivalDayMap
.
isEmpty
())
{
VehicleModelHolidayPriceDTO
vehicleModelHolidayPriceDTO
=
festivalDayMap
.
get
(
current_date
);
if
(
Objects
.
nonNull
(
vehicleModelHolidayPriceDTO
))
{
vehicle_price
=
vehicle_price
.
multiply
(
new
BigDecimal
(
vehicleModelHolidayPriceDTO
.
getMultiple
().
doubleValue
()
*
(
discount
/
100
)));
free_days
=
vehicleModelHolidayPriceDTO
.
getFreeDays
();
}
}
}
else
{
switch
(
vehicleModelCalendarPrice
.
getType
())
{
case
VehicleModelPriceType
.
MULTIPLE
:
vehicle_price
=
vehicle_price
.
multiply
(
new
BigDecimal
(
vehicleModelCalendarPrice
.
getMultiple
().
doubleValue
()
*
(
discount
/
100
)));
break
;
case
VehicleModelPriceType
.
ABS
:
vehicle_price
=
vehicleModelCalendarPrice
.
getPrice
().
multiply
(
new
BigDecimal
(
discount
/
100
));
break
;
case
VehicleModelPriceType
.
MEMBER
:
memberLevel
=
vehicleModelCalendarPrice
.
getLevel
()
>
memberLevel
?
vehicleModelCalendarPrice
.
getLevel
()
:
memberLevel
;
Integer
level_discount
=
levelAndDiscountMap
.
get
(
memberLevel
);
vehicle_price
=
level_discount
==
null
?
vehicleModelCalendarPrice
.
getPrice
()
:
vehicleModelCalendarPrice
.
getPrice
().
multiply
(
new
BigDecimal
(
level_discount
/
100
));
break
;
default
:
break
;
}
free_days
=
vehicleModelCalendarPrice
.
getFreeDays
();
}
vehicleModelCalendarPriceDTO
.
setPrice
(
vehicle_price
);
vehicleModelCalendarPriceDTO
.
setFreeDays
(
free_days
);
}
final_startLocalDate
=
final_startLocalDate
.
plusDays
(
1
);
vehicleModelCalendarPriceVos
.
add
(
vehicleModelCalendarPriceDTO
);
}
return
vehicleModelCalendarPriceVos
;
}
/**
* 根据时间范围查询
*
* @param vehicleModelId
* @param final_startDate
* @param final_endDate
* @return
*/
private
List
<
VehicleModelCalendarPrice
>
getVehicleModelCalendarPricesByVehicleModelIdAndDate
(
Integer
vehicleModelId
,
Date
final_startDate
,
Date
final_endDate
)
{
Example
example
=
new
Example
(
VehicleModelCalendarPrice
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"isDel"
,
0
);
criteria
.
andEqualTo
(
"vehicleModelId"
,
vehicleModelId
);
criteria
.
andBetween
(
"vehicleModelDay"
,
final_startDate
,
final_endDate
);
List
<
VehicleModelCalendarPrice
>
vehicleModelCalendarPrices
=
mapper
.
selectByExample
(
example
);
return
CollectionUtils
.
isEmpty
(
vehicleModelCalendarPrices
)
?
Collections
.
EMPTY_LIST
:
vehicleModelCalendarPrices
;
}
/**
* 时间处理
*
* @param startDatee
* @param endDatee
*/
public
static
void
transformStartDateAndEndDate
(
AtomicReference
<
Date
>
startDatee
,
AtomicReference
<
Date
>
endDatee
)
{
Date
startDate
=
startDatee
.
get
();
Date
endDate
=
endDatee
.
get
();
if
(
startDate
==
null
&&
endDate
==
null
)
{
LocalDate
now
=
LocalDate
.
now
();
LocalDate
endLocalDate
=
now
.
with
(
TemporalAdjusters
.
lastDayOfMonth
());
LocalDate
startLocalDate
=
now
.
withDayOfMonth
(
1
);
startDate
=
Date
.
from
(
startLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
());
endDate
=
Date
.
from
(
endLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
());
}
else
{
/****************************************开始时间处理******************************************************/
LocalDate
startLocalDate
=
LocalDate
.
from
(
startDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
());
int
start_dayOfMonth
=
startLocalDate
.
getDayOfMonth
();
int
start_week
=
startLocalDate
.
getDayOfWeek
().
getValue
();
if
(
START_OF_WEEK
<
start_week
&&
start_week
<
END_OF_WEEK
)
{
start_dayOfMonth
=
start_dayOfMonth
-
(
start_week
-
START_OF_WEEK
);
}
else
{
if
(
END_OF_WEEK
==
start_week
)
{
start_dayOfMonth
=
start_dayOfMonth
-
END_OF_WEEK
+
1
;
}
else
{
start_dayOfMonth
=
START_OF_WEEK
;
}
}
start_dayOfMonth
=
start_dayOfMonth
>
0
?
start_dayOfMonth
:
1
;
LocalDate
start_startLocalDate
=
startLocalDate
.
withDayOfMonth
(
start_dayOfMonth
);
/****************************************结束时间处理******************************************************/
LocalDate
endLocalDate
=
LocalDate
.
from
(
endDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
());
int
end_dayOfMonth
=
endLocalDate
.
getDayOfMonth
();
int
end_week
=
endLocalDate
.
getDayOfWeek
().
getValue
();
int
last_day
=
endLocalDate
.
with
(
TemporalAdjusters
.
lastDayOfMonth
()).
getDayOfMonth
();
if
(
START_OF_WEEK
<
end_week
&&
end_week
<
END_OF_WEEK
)
{
end_dayOfMonth
=
end_dayOfMonth
+
(
END_OF_WEEK
-
end_week
);
}
else
{
if
(
START_OF_WEEK
==
end_week
)
{
end_dayOfMonth
=
end_dayOfMonth
+
END_OF_WEEK
-
1
;
}
}
end_dayOfMonth
=
end_dayOfMonth
>
last_day
?
last_day
:
end_dayOfMonth
;
LocalDate
end_endLocalDate
=
endLocalDate
.
withDayOfMonth
(
end_dayOfMonth
);
/****************************************时间转换******************************************************/
startDate
=
Date
.
from
(
start_startLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
());
endDate
=
Date
.
from
(
end_endLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
());
}
startDatee
.
set
(
startDate
);
endDatee
.
set
(
endDate
);
}
/**
* 车型日历价格设置类型
*/
private
class
VehicleModelPriceType
{
/**
* 倍数
*/
private
static
final
int
MULTIPLE
=
0
;
/**
* 绝对值
*/
private
static
final
int
ABS
=
1
;
/**
* 会员价
*/
private
static
final
int
MEMBER
=
2
;
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleModelHolidayPriceBiz.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
biz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.xxfc.platform.vehicle.entity.VehicleModelHolidayPrice
;
import
com.xxfc.platform.vehicle.mapper.VehicleModelHolidayPriceMapper
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelHolidayPriceDTO
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelHolidayPriceFindDTO
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelHolidayPriceSaveDTO
;
import
com.xxfc.platform.vehicle.pojo.vo.VehicleModelHolidayPriceVo
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.time.Instant
;
import
java.time.LocalDate
;
import
java.time.ZoneId
;
import
java.time.temporal.TemporalAdjusters
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:32
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Service
public
class
VehicleModelHolidayPriceBiz
extends
BaseBiz
<
VehicleModelHolidayPriceMapper
,
VehicleModelHolidayPrice
>
{
/**
* 保存
*
* @param vehicleModelHolidayPriceSaveDTO
* @param userId
*/
public
void
addVehicleModelHolidayPrice
(
VehicleModelHolidayPriceSaveDTO
vehicleModelHolidayPriceSaveDTO
,
Integer
userId
)
{
VehicleModelHolidayPrice
vehicleModelHolidayPrice
=
new
VehicleModelHolidayPrice
();
BeanUtils
.
copyProperties
(
vehicleModelHolidayPriceSaveDTO
,
vehicleModelHolidayPrice
);
//编辑
if
(
Objects
.
nonNull
(
vehicleModelHolidayPriceSaveDTO
.
getId
()))
{
vehicleModelHolidayPrice
.
setUpdTime
(
new
Date
());
vehicleModelHolidayPrice
.
setUpdUserId
(
userId
);
int
effect
=
mapper
.
updateByPrimaryKeySelective
(
vehicleModelHolidayPrice
);
if
(
effect
<
1
)
{
throw
new
BaseException
(
"车型节假日设置失败"
);
}
}
else
{
vehicleModelHolidayPrice
.
setCrtTime
(
new
Date
());
vehicleModelHolidayPrice
.
setCrtUserId
(
userId
);
int
effect
=
mapper
.
insertSelective
(
vehicleModelHolidayPrice
);
if
(
effect
<
1
)
{
throw
new
BaseException
(
"车型节假日保存失败"
);
}
}
}
/**
*
* @param multiple 倍数
* @param freeDays 免费天数
* @param configDate 设置的日期*月份
*/
public
void
updateVehicleModelHolidayPrice
(
Double
multiple
,
Integer
freeDays
,
Date
configDate
){
VehicleModelHolidayPrice
vehicleModelHolidayPrice
=
new
VehicleModelHolidayPrice
();
vehicleModelHolidayPrice
.
setMultiple
(
multiple
);
vehicleModelHolidayPrice
.
setFreeDays
(
freeDays
);
Example
example
=
new
Example
(
VehicleModelHolidayPrice
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
setCondtionDate
(
configDate
,
criteria
);
int
effect
=
mapper
.
updateByExampleSelective
(
vehicleModelHolidayPrice
,
example
);
if
(
effect
<
1
){
throw
new
BaseException
(
"车型节假日更新失败"
);
}
}
/**
* 按年 月 节假日 等条件查询
*
* @param vehicleModelHolidayPriceFindDTO
* @return
*/
public
List
<
VehicleModelHolidayPriceVo
>
listVehicleModelHolidayPrice
(
VehicleModelHolidayPriceFindDTO
vehicleModelHolidayPriceFindDTO
)
{
List
<
VehicleModelHolidayPriceVo
>
vehicleModelHolidayPriceVos
=
new
ArrayList
<>();
Example
example
=
new
Example
(
VehicleModelHolidayPrice
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
setCondtionDate
(
vehicleModelHolidayPriceFindDTO
.
getDate
(),
criteria
);
if
(
StringUtils
.
isNotEmpty
(
vehicleModelHolidayPriceFindDTO
.
getFestival
())
&&
vehicleModelHolidayPriceFindDTO
.
getFestival
().
trim
().
length
()
>
0
)
{
criteria
.
andLike
(
"festival"
,
String
.
format
(
"%%%s%%"
,
vehicleModelHolidayPriceFindDTO
.
getFestival
()));
}
List
<
VehicleModelHolidayPrice
>
holidayPrices
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isEmpty
(
holidayPrices
))
{
return
vehicleModelHolidayPriceVos
;
}
VehicleModelHolidayPriceVo
vehicleModelHolidayPriceVo
;
for
(
VehicleModelHolidayPrice
holidayPrice
:
holidayPrices
)
{
vehicleModelHolidayPriceVo
=
new
VehicleModelHolidayPriceVo
();
BeanUtils
.
copyProperties
(
holidayPrice
,
vehicleModelHolidayPriceVo
);
vehicleModelHolidayPriceVos
.
add
(
vehicleModelHolidayPriceVo
);
}
return
vehicleModelHolidayPriceVos
;
}
/**
* 根据开始与结束时间查询
*
* @param startDate
* @param endDate
* @return
*/
public
List
<
VehicleModelHolidayPriceDTO
>
findVehicleModelHolidayPriceByMonth
(
Date
startDate
,
Date
endDate
)
{
List
<
VehicleModelHolidayPriceDTO
>
vehicleModelHolidayPriceDTOS
=
new
ArrayList
<>();
Example
example
=
new
Example
(
VehicleModelHolidayPrice
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andBetween
(
"festivalDay"
,
startDate
,
endDate
);
List
<
VehicleModelHolidayPrice
>
modelHolidayPrices
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isEmpty
(
modelHolidayPrices
))
{
return
vehicleModelHolidayPriceDTOS
;
}
VehicleModelHolidayPriceDTO
vehicleModelHolidayPriceDTO
;
for
(
VehicleModelHolidayPrice
modelHolidayPrice
:
modelHolidayPrices
)
{
vehicleModelHolidayPriceDTO
=
new
VehicleModelHolidayPriceDTO
();
BeanUtils
.
copyProperties
(
modelHolidayPrice
,
vehicleModelHolidayPriceDTO
);
vehicleModelHolidayPriceDTOS
.
add
(
vehicleModelHolidayPriceDTO
);
}
return
vehicleModelHolidayPriceDTOS
;
}
/**
* @param id
* @return
*/
public
VehicleModelHolidayPriceSaveDTO
findVehicleModelHolidayPriceById
(
Long
id
)
{
VehicleModelHolidayPrice
vehicleModelHolidayPrice
=
mapper
.
selectByPrimaryKey
(
id
);
if
(
Objects
.
isNull
(
vehicleModelHolidayPrice
))
{
throw
new
BaseException
(
"数据不存在"
);
}
VehicleModelHolidayPriceSaveDTO
vehicleModelHolidayPriceSaveDTO
=
new
VehicleModelHolidayPriceSaveDTO
();
BeanUtils
.
copyProperties
(
vehicleModelHolidayPrice
,
vehicleModelHolidayPriceSaveDTO
);
return
vehicleModelHolidayPriceSaveDTO
;
}
/**
* 设置查询条件日期
* @param conditionDate
* @param criteria
*/
private
void
setCondtionDate
(
Date
conditionDate
,
Example
.
Criteria
criteria
){
LocalDate
localDate
=
LocalDate
.
from
(
conditionDate
.
toInstant
());
//开始日期
Instant
startInstant
=
localDate
.
withDayOfMonth
(
1
).
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
();
//结束日期
LocalDate
endLocalDate
=
localDate
.
with
(
TemporalAdjusters
.
lastDayOfMonth
());
Instant
endInstant
=
endLocalDate
.
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
();
criteria
.
andBetween
(
"festivalDay"
,
Date
.
from
(
startInstant
),
Date
.
from
(
endInstant
));
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleModelCalendarPriceMapper.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
import
com.xxfc.platform.vehicle.entity.VehicleModelCalendarPrice
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.additional.insert.InsertListMapper
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:31
*/
public
interface
VehicleModelCalendarPriceMapper
extends
Mapper
<
VehicleModelCalendarPrice
>,
InsertListMapper
<
VehicleModelCalendarPrice
>
{
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleModelHolidayPriceMapper.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
import
com.xxfc.platform.vehicle.entity.VehicleModelHolidayPrice
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:32
*/
public
interface
VehicleModelHolidayPriceMapper
extends
Mapper
<
VehicleModelHolidayPrice
>
{
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleModelMapper.java
View file @
0b1c3c3c
...
...
@@ -3,9 +3,13 @@ package com.xxfc.platform.vehicle.mapper;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
com.xxfc.platform.vehicle.pojo.VehicleModelQueryCondition
;
import
com.xxfc.platform.vehicle.pojo.VehicleModelVo
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelDTO
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.ResultType
;
import
org.apache.ibatis.annotations.Select
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -26,4 +30,11 @@ public interface VehicleModelMapper extends Mapper<VehicleModel> {
* @return
*/
int
updateScoreByModelIdAndavgScore
(
@Param
(
"modelId"
)
Integer
modelId
,
@Param
(
"avgScore"
)
int
avgScore
);
@Select
(
"select `price` from `vehicle_model` where `id`=#{vehicleModelId}"
)
BigDecimal
selectPriceById
(
@Param
(
"vehicleModelId"
)
Integer
vehicleModelId
);
@Select
({
"select `id` AS `vehicleModelId`,`name`,`price` AS `basePrice` from `vehicle_model` where `isdel`=0"
})
@ResultType
(
value
=
VehicleModelDTO
.
class
)
List
<
VehicleModelDTO
>
findAllVehicleModel
();
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleModelCalendarPriceController.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
rest
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.vehicle.biz.VehicleModelCalendarPriceBiz
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:35
*/
@RestController
@RequestMapping
(
"/vehicle_model/calendar_price"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
@Api
(
tags
=
"车型日历价格"
)
public
class
VehicleModelCalendarPriceController
{
private
final
VehicleModelCalendarPriceBiz
vehicleModelCalendarPriceBiz
;
@ApiOperation
(
"返回车型日历价格"
)
@GetMapping
(
"/list/vehicle_model/calendar_price/{vehicleModelId}/{type}"
)
public
ObjectRestResponse
<
VehicleModelCalendarPriceDTO
>
listVehicleModelCalendarPriceByDateAndVehicleModelId
(
@RequestParam
(
value
=
"start"
,
required
=
false
)
Date
startDate
,
@RequestParam
(
value
=
"end"
,
required
=
false
)
Date
endDate
,
@PathVariable
(
value
=
"vehicleModelId"
)
Integer
vehicleModelId
,
AppUserDTO
appUserDTO
){
List
<
VehicleModelCalendarPriceDTO
>
vehicleModelCalendarPriceVos
=
vehicleModelCalendarPriceBiz
.
listVehicleModelCalendarPriceByDateAndVehicleModelIdAndUserId
(
startDate
,
endDate
,
vehicleModelId
,
appUserDTO
.
getUserid
());
return
ObjectRestResponse
.
succ
(
vehicleModelCalendarPriceVos
);
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/admin/VehicleModelCalendarPriceAdminController.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
rest
.
admin
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.vehicle.biz.VehicleModelCalendarPriceBiz
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceSaveDTO
;
import
com.xxfc.platform.vehicle.pojo.vo.VehicleModelDayPriceVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:35
*/
@RestController
@RequestMapping
(
"/admin/vehicle_model/calendar_price"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
@Api
(
tags
=
"车型日历价格"
)
public
class
VehicleModelCalendarPriceAdminController
{
private
final
VehicleModelCalendarPriceBiz
vehicleModelCalendarPriceBiz
;
@ApiOperation
(
"车型日历价格设置"
)
@PostMapping
(
"/add_edit"
)
public
ObjectRestResponse
<
Void
>
add
(
@RequestBody
List
<
VehicleModelCalendarPriceSaveDTO
>
vehicleModelCalendarPriceSaveDTO
,
UserDTO
userDTO
){
vehicleModelCalendarPriceBiz
.
addVehicleModelCalendarPrice
(
vehicleModelCalendarPriceSaveDTO
,
userDTO
.
getId
());
return
ObjectRestResponse
.
succ
();
}
@ApiOperation
(
"车型日历月份价格"
)
@GetMapping
(
"/day"
)
public
ObjectRestResponse
<
VehicleModelDayPriceVo
>
listVehicleModelCalendarPriceWithMonth
(
@RequestParam
(
value
=
"date"
)
Date
date
){
List
<
VehicleModelDayPriceVo
>
vehicleModelDayPriceVos
=
vehicleModelCalendarPriceBiz
.
findVehicleModelcalendarPriceByDateWithDay
(
date
);
return
ObjectRestResponse
.
succ
(
vehicleModelDayPriceVos
);
}
@ApiOperation
(
"根据日查询不同车型的设置"
)
@GetMapping
(
"/month"
)
public
ObjectRestResponse
<
List
<
VehicleModelCalendarPriceSaveDTO
>>
listVehicleModelCalendarPriceWithDay
(
@RequestParam
(
value
=
"date"
)
Date
date
){
List
<
VehicleModelCalendarPriceSaveDTO
>
calendarPrices
=
vehicleModelCalendarPriceBiz
.
findVehicleModelCalendarPricesByDateWithMonth
(
date
);
return
ObjectRestResponse
.
succ
(
calendarPrices
);
}
@ApiOperation
(
"查询所有车型的的基本信息(id,价格)"
)
@GetMapping
(
"/vehicle_model/all"
)
public
ObjectRestResponse
<
VehicleModelDayPriceVo
>
listVehicleModelPrice
(){
List
<
VehicleModelDayPriceVo
>
vehicleModelDayPriceVos
=
vehicleModelCalendarPriceBiz
.
listVehicleModelPrice
();
return
ObjectRestResponse
.
succ
(
vehicleModelDayPriceVos
);
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/admin/VehicleModelHolidayPriceAdminController.java
0 → 100644
View file @
0b1c3c3c
package
com
.
xxfc
.
platform
.
vehicle
.
rest
.
admin
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.vehicle.biz.VehicleModelHolidayPriceBiz
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelHolidayPriceFindDTO
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelHolidayPriceSaveDTO
;
import
com.xxfc.platform.vehicle.pojo.vo.VehicleModelHolidayPriceVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/14 17:35
*/
@RestController
@RequestMapping
(
"/admin/vehicle_model/holiday_price"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
@Api
(
tags
=
"节假日设置"
)
public
class
VehicleModelHolidayPriceAdminController
{
private
final
VehicleModelHolidayPriceBiz
vehicleModelHolidayPriceBiz
;
@ApiOperation
(
"节假日添加|设置"
)
@PostMapping
(
"/add_edit"
)
public
ObjectRestResponse
<
Void
>
add
(
@RequestBody
VehicleModelHolidayPriceSaveDTO
vehicleModelHolidayPriceSaveDTO
,
UserDTO
userDTO
)
{
vehicleModelHolidayPriceBiz
.
addVehicleModelHolidayPrice
(
vehicleModelHolidayPriceSaveDTO
,
userDTO
.
getId
());
return
ObjectRestResponse
.
succ
();
}
@GetMapping
(
"/{id}"
)
public
ObjectRestResponse
<
VehicleModelHolidayPriceSaveDTO
>
findVehicleModelHolidayPrice
(
@PathVariable
(
value
=
"id"
)
Long
id
){
VehicleModelHolidayPriceSaveDTO
vehicleModelHolidayPriceSaveDTO
=
vehicleModelHolidayPriceBiz
.
findVehicleModelHolidayPriceById
(
id
);
return
ObjectRestResponse
.
succ
(
vehicleModelHolidayPriceSaveDTO
);
}
@ApiOperation
(
"节假日页查询"
)
@PostMapping
(
"/page"
)
public
ObjectRestResponse
<
List
<
VehicleModelHolidayPriceVo
>>
listVehicleModelHolidayPrice
(
@RequestBody
VehicleModelHolidayPriceFindDTO
vehicleModelHolidayPriceFindDTO
){
List
<
VehicleModelHolidayPriceVo
>
priceVoPageDataVO
=
vehicleModelHolidayPriceBiz
.
listVehicleModelHolidayPrice
(
vehicleModelHolidayPriceFindDTO
);
return
ObjectRestResponse
.
succ
(
priceVoPageDataVO
);
}
}
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