Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gxpt_ht
Overview
Overview
Details
Activity
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
pseer
gxpt_ht
Commits
f93ea65e
Commit
f93ea65e
authored
Nov 11, 2024
by
吕明尚
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'test'
parents
aec3c8bc
5ab69429
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
533 additions
and
247 deletions
+533
-247
DurationLogController.java
...va/share/web/controller/system/DurationLogController.java
+3
-0
SRoomController.java
...ain/java/share/web/controller/system/SRoomController.java
+8
-17
DurationTypeEnum.java
...on/src/main/java/share/common/enums/DurationTypeEnum.java
+1
-0
ConsumerMonthlyCardController.java
.../web/controller/system/ConsumerMonthlyCardController.java
+10
-2
DurationLogController.java
...va/share/web/controller/system/DurationLogController.java
+11
-0
RedisTask.java
share-quartz/src/main/java/share/quartz/task/RedisTask.java
+58
-26
ConsumerMonthlyCard.java
...rc/main/java/share/system/domain/ConsumerMonthlyCard.java
+8
-0
ConsumerSecondaryCard.java
.../main/java/share/system/domain/ConsumerSecondaryCard.java
+8
-0
DurationLog.java
...system/src/main/java/share/system/domain/DurationLog.java
+3
-0
MonthlyCardConf.java
...em/src/main/java/share/system/domain/MonthlyCardConf.java
+2
-3
MonthlyCardLog.java
...tem/src/main/java/share/system/domain/MonthlyCardLog.java
+2
-3
SecondaryCardConf.java
.../src/main/java/share/system/domain/SecondaryCardConf.java
+2
-3
SecondaryCardLog.java
...m/src/main/java/share/system/domain/SecondaryCardLog.java
+2
-3
ConsumerMonthlyCardVo.java
...in/java/share/system/domain/vo/ConsumerMonthlyCardVo.java
+0
-6
ConsumerSecondaryCardVo.java
.../java/share/system/domain/vo/ConsumerSecondaryCardVo.java
+0
-6
DurationLogVo.java
...m/src/main/java/share/system/domain/vo/DurationLogVo.java
+6
-0
SOrderVo.java
...system/src/main/java/share/system/domain/vo/SOrderVo.java
+18
-4
MonthlyCardResponse.java
.../main/java/share/system/response/MonthlyCardResponse.java
+25
-0
ConsumerMonthlyCardService.java
...java/share/system/service/ConsumerMonthlyCardService.java
+5
-2
ConsumerSecondaryCardService.java
...va/share/system/service/ConsumerSecondaryCardService.java
+3
-0
IPackService.java
...stem/src/main/java/share/system/service/IPackService.java
+1
-1
ISConsumerCouponService.java
...in/java/share/system/service/ISConsumerCouponService.java
+1
-1
ISRoomService.java
...tem/src/main/java/share/system/service/ISRoomService.java
+4
-1
ConsumerMonthlyCardServiceImpl.java
...e/system/service/impl/ConsumerMonthlyCardServiceImpl.java
+67
-22
ConsumerSecondaryCardServiceImpl.java
...system/service/impl/ConsumerSecondaryCardServiceImpl.java
+13
-0
ConsumerWalletServiceImpl.java
.../share/system/service/impl/ConsumerWalletServiceImpl.java
+2
-0
DeviceGatewayServiceImpl.java
...a/share/system/service/impl/DeviceGatewayServiceImpl.java
+18
-19
DeviceLogServiceImpl.java
.../java/share/system/service/impl/DeviceLogServiceImpl.java
+32
-36
DeviceServiceImpl.java
...ain/java/share/system/service/impl/DeviceServiceImpl.java
+11
-10
DurationLogServiceImpl.java
...ava/share/system/service/impl/DurationLogServiceImpl.java
+5
-0
EquityFundExcessServiceImpl.java
...hare/system/service/impl/EquityFundExcessServiceImpl.java
+2
-0
MonthlyCardOrderServiceImpl.java
...hare/system/service/impl/MonthlyCardOrderServiceImpl.java
+6
-0
OrderPayServiceImpl.java
...n/java/share/system/service/impl/OrderPayServiceImpl.java
+2
-2
PackServiceImpl.java
.../main/java/share/system/service/impl/PackServiceImpl.java
+1
-1
RoomLabelServiceImpl.java
.../java/share/system/service/impl/RoomLabelServiceImpl.java
+6
-7
SConsumerCouponServiceImpl.java
...share/system/service/impl/SConsumerCouponServiceImpl.java
+1
-1
SOrderServiceImpl.java
...ain/java/share/system/service/impl/SOrderServiceImpl.java
+100
-54
SRoomServiceImpl.java
...main/java/share/system/service/impl/SRoomServiceImpl.java
+52
-4
SStoreServiceImpl.java
...ain/java/share/system/service/impl/SStoreServiceImpl.java
+1
-1
SecondaryCardOrderServiceImpl.java
...re/system/service/impl/SecondaryCardOrderServiceImpl.java
+2
-0
ConsumerMonthlyCardMapper.xml
...ain/resources/mapper/system/ConsumerMonthlyCardMapper.xml
+7
-5
ConsumerSecondaryCardMapper.xml
...n/resources/mapper/system/ConsumerSecondaryCardMapper.xml
+7
-5
DeviceLogMapper.xml
...stem/src/main/resources/mapper/system/DeviceLogMapper.xml
+4
-0
DurationLogMapper.xml
...em/src/main/resources/mapper/system/DurationLogMapper.xml
+10
-1
MonthlyCardLogMapper.xml
...src/main/resources/mapper/system/MonthlyCardLogMapper.xml
+1
-1
MonthlyCardOrderMapper.xml
...c/main/resources/mapper/system/MonthlyCardOrderMapper.xml
+1
-0
SecondaryCardOrderMapper.xml
...main/resources/mapper/system/SecondaryCardOrderMapper.xml
+1
-0
No files found.
share-admin/src/main/java/share/web/controller/system/DurationLogController.java
View file @
f93ea65e
...
...
@@ -10,10 +10,13 @@ import share.common.core.page.TableDataInfo;
import
share.common.enums.BusinessType
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.domain.DurationLog
;
import
share.system.domain.SConsumer
;
import
share.system.domain.vo.DurationLogVo
;
import
share.system.domain.vo.FrontTokenComponent
;
import
share.system.service.DurationLogService
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
share-admin/src/main/java/share/web/controller/system/SRoomController.java
View file @
f93ea65e
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.*
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.domain.Device
;
import
share.system.domain.SRoom
;
import
share.system.domain.vo.SRoomVo
;
import
share.system.service.ISRoomService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
* 房间Controller
...
...
@@ -43,9 +36,7 @@ public class SRoomController extends BaseController
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SRoom
sRoom
)
{
startPage
();
List
<
SRoom
>
list
=
sRoomService
.
selectSRoomList
(
sRoom
);
return
getDataTable
(
list
);
return
sRoomService
.
pageList
(
sRoom
);
}
/**
...
...
share-common/src/main/java/share/common/enums/DurationTypeEnum.java
View file @
f93ea65e
...
...
@@ -5,6 +5,7 @@ public enum DurationTypeEnum {
ORDER
(
1
,
"订单消费"
),
SHARE
(
2
,
"分享赠送"
),
ORDER_REFUND
(
3
,
"订单消费退款"
),
GIVE
(
4
,
"赠送"
),
;
...
...
share-front/src/main/java/share/web/controller/system/ConsumerMonthlyCardController.java
View file @
f93ea65e
package
share
.
web
.
controller
.
system
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.R
;
import
share.common.core.page.TableDataInfo
;
import
share.common.utils.JsonConvertUtil
;
import
share.system.domain.vo.ConsumerMonthlyCardVo
;
import
share.system.request.MonthlyCardRequest
;
import
share.system.response.MonthlyCardResponse
;
import
share.system.service.ConsumerMonthlyCardService
;
import
java.util.List
;
...
...
@@ -18,6 +22,7 @@ import java.util.List;
* @author wuwenlong
* @date 2024-08-27
*/
@Slf4j
@RestController
@RequestMapping
(
"/consumerMonthlyCard"
)
public
class
ConsumerMonthlyCardController
extends
BaseController
{
...
...
@@ -43,7 +48,10 @@ public class ConsumerMonthlyCardController extends BaseController {
//查询可用卡类
@PostMapping
(
"/queryCardType"
)
public
AjaxResult
queryCardType
(
@RequestBody
@Validated
MonthlyCardRequest
monthlyCardRequest
)
{
return
success
(
consumerMonthlyCardService
.
queryCardType
(
monthlyCardRequest
));
public
R
<
MonthlyCardResponse
>
queryCardType
(
@RequestBody
@Validated
MonthlyCardRequest
monthlyCardRequest
)
{
log
.
debug
(
"ConsumerMonthlyCardController method queryCardType 入参 {}"
,
JsonConvertUtil
.
write2JsonStr
(
monthlyCardRequest
));
MonthlyCardResponse
monthlyCardResponse
=
consumerMonthlyCardService
.
queryCardType
(
monthlyCardRequest
);
log
.
debug
(
"ConsumerMonthlyCardController method queryCardType 出参 {}"
,
JsonConvertUtil
.
write2JsonStr
(
monthlyCardResponse
));
return
R
.
ok
(
monthlyCardResponse
);
}
}
share-front/src/main/java/share/web/controller/system/DurationLogController.java
View file @
f93ea65e
...
...
@@ -56,4 +56,15 @@ public class DurationLogController extends BaseController {
BigDecimal
sumVariableDuration
=
durationLogService
.
sumVariableDuration
(
durationLog
);
return
success
(
sumVariableDuration
);
}
@GetMapping
(
"/shareList"
)
public
TableDataInfo
shareList
(
DurationLogVo
durationLog
)
{
startPage
();
SConsumer
user
=
FrontTokenComponent
.
getWxSConsumerEntry
();
durationLog
.
setConsumerId
(
user
.
getId
());
durationLog
.
setDurationType
(
DurationTypeEnum
.
SHARE
.
getCode
());
List
<
DurationLogVo
>
list
=
durationLogService
.
selectDurationLogList
(
durationLog
);
return
getDataTable
(
list
);
}
}
share-quartz/src/main/java/share/quartz/task/RedisTask.java
View file @
f93ea65e
...
...
@@ -35,6 +35,7 @@ import java.math.BigDecimal;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.IntStream
;
...
...
@@ -554,20 +555,10 @@ public class RedisTask {
Long
consumerId
=
jsonObject
.
getLong
(
"consumerId"
);
if
(
expirationTime
.
getTime
()
<
new
Date
().
getTime
())
{
ConsumerMember
consumerMember
=
consumerMemberService
.
getOne
(
new
LambdaQueryWrapper
<
ConsumerMember
>().
eq
(
ConsumerMember:
:
getConsumerId
,
consumerId
));
consumerMember
.
setIsRights
(
YesNoEnum
.
no
.
getIndex
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
consumerMember
.
setIsRights
(
YesNoEnum
.
no
.
getIndex
());
String
rechargeMembershipExpirationTime
=
sysConfigService
.
selectConfigByKey
(
"rechargeMembershipExpirationTime"
);
if
(
consumerMember
.
getIsRecharge
().
equals
(
YesNoEnum
.
yes
.
getIndex
()))
{
consumerMember
.
setExpirationDate
(
DateUtils
.
addYears
(
new
Date
(),
Integer
.
parseInt
(
rechargeMembershipExpirationTime
)));
}
else
{
consumerMember
.
setExpirationDate
(
DateUtils
.
addYears
(
new
Date
(),
Integer
.
parseInt
(
rechargeMembershipExpirationTime
)));
}
// MemberConfig memberConfigServiceOne = memberConfigService.getOne(new LambdaQueryWrapper<MemberConfig>()
//// .eq(MemberConfig::getMemberType, consumerMember.getMemberType())
// .eq(MemberConfig::getMembershipLevel, consumerMember.getMembershipLevel())
// );
// consumerMember.setMemberConfigId(memberConfigServiceOne.getId());
// consumerMember.setExpirationDate(DateUtils.addYears(new Date(), memberConfigServiceOne.getValidityPeriod().intValue()));
consumerMember
.
setExpirationDate
(
DateUtils
.
addYears
(
new
Date
(),
Integer
.
parseInt
(
rechargeMembershipExpirationTime
)));
consumerMemberService
.
updateConsumerMember
(
consumerMember
);
}
redisUtil
.
delete
(
key
);
...
...
@@ -594,22 +585,19 @@ public class RedisTask {
List
<
Long
>
consumerIds
=
list
.
stream
().
map
(
MemberProgressLog:
:
getConsumerId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
Long
,
ConsumerMember
>
consumerMemberMap
=
consumerMemberService
.
list
(
new
LambdaQueryWrapper
<
ConsumerMember
>().
in
(
ConsumerMember:
:
getConsumerId
,
consumerIds
))
.
stream
().
collect
(
Collectors
.
toMap
(
ConsumerMember:
:
getConsumerId
,
item
->
item
));
//按照consumerId进行分组
Map
<
Long
,
List
<
MemberProgressLog
>>
collect
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
MemberProgressLog:
:
getConsumerId
));
Map
<
Long
,
MemberConfig
>
memberConfigMap
=
memberConfigService
.
list
().
stream
().
collect
(
Collectors
.
toMap
(
MemberConfig:
:
getMembershipLevel
,
item
->
item
));
List
<
ConsumerMember
>
updateList
=
new
ArrayList
<>();
consumerIds
.
stream
().
forEach
(
item
->
{
List
<
MemberProgressLog
>
memberProgressLogs
=
collect
.
get
(
item
);
if
(
memberProgressLogs
.
size
()
>
0
)
{
//查询会员
ConsumerMember
consumerMember
=
consumerMemberMap
.
get
(
item
);
;
if
(
consumerMember
.
getMembershipProgress
().
equals
(
BigDecimal
.
ZERO
))
{
//结束此次循环
return
;
}
//查询会员配置
MemberConfig
memberConfig
=
memberConfigMap
.
get
(
consumerMember
.
getMembershipLevel
());
final
BigDecimal
[]
sum
=
{
BigDecimal
.
ZERO
};
//计算扣除进度
memberProgressLogs
.
stream
().
forEach
(
log
->
{
...
...
@@ -627,17 +615,36 @@ public class RedisTask {
//判断会员进度是否大于扣除进度
}
else
if
(
consumerMember
.
getMembershipProgress
().
compareTo
(
sum
[
0
].
abs
())
>=
0
)
{
//会员进度减去扣除进度
BigDecimal
subtract
=
BigDecimal
.
ZERO
;
if
(
sum
[
0
].
compareTo
(
BigDecimal
.
ZERO
)
<
0
)
{
subtract
=
consumerMember
.
getMembershipProgress
().
add
(
sum
[
0
]);
}
else
if
(
sum
[
0
].
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
subtract
=
consumerMember
.
getMembershipProgress
().
subtract
(
sum
[
0
]);
}
consumerMember
.
setMembershipProgress
(
subtract
);
if
(
consumerMember
.
getMembershipProgress
().
compareTo
(
BigDecimal
.
valueOf
(
memberConfig
.
getLimitRequirements
()))
<
0
)
{
BigDecimal
subtract
=
consumerMember
.
getMembershipProgress
().
subtract
(
sum
[
0
]);
// consumerMember.setMembershipProgress(subtract);
// if (consumerMember.getMembershipProgress().compareTo(BigDecimal.valueOf(memberConfig.getLimitRequirements())) < 0) {
//等级降一级
if
(
consumerMember
.
getMembershipLevel
()
>
0L
)
{
consumerMember
.
setMembershipLevel
(
consumerMember
.
getMembershipLevel
()
-
1
);
// if (consumerMember.getMembershipLevel() > 0L) {
// consumerMember.setMembershipLevel(consumerMember.getMembershipLevel() - 1);
// }
//转Map limitRequirements,MemberConfig
Map
<
Long
,
MemberConfig
>
configMap
=
memberConfigService
.
list
(
new
LambdaQueryWrapper
<
MemberConfig
>()
.
orderByDesc
(
MemberConfig:
:
getMembershipLevel
)).
stream
().
collect
(
Collectors
.
toMap
(
MemberConfig:
:
getMembershipLevel
,
Function
.
identity
()));
//Map根
//判断subtract小于当前等级的积分,并大于下一等级的积分
for
(
Map
.
Entry
<
Long
,
MemberConfig
>
entry
:
configMap
.
entrySet
())
{
if
(
subtract
.
compareTo
(
BigDecimal
.
valueOf
(
entry
.
getValue
().
getLimitRequirements
()))
>
0
&&
subtract
.
compareTo
(
BigDecimal
.
valueOf
(
configMap
.
get
(
entry
.
getKey
()
+
1
).
getLimitRequirements
()))
<=
0
&&
entry
.
getKey
().
compareTo
(
Collections
.
min
(
configMap
.
keySet
()))
>
0
)
{
consumerMember
.
setMembershipLevel
(
entry
.
getKey
());
consumerMember
.
setMembershipProgress
(
subtract
);
updateList
.
add
(
consumerMember
);
return
;
}
else
if
(
subtract
.
compareTo
(
BigDecimal
.
valueOf
(
configMap
.
get
(
Collections
.
min
(
configMap
.
keySet
())).
getLimitRequirements
()))
<=
0
)
{
consumerMember
.
setMembershipLevel
(
Collections
.
min
(
configMap
.
keySet
()));
consumerMember
.
setMembershipProgress
(
subtract
);
updateList
.
add
(
consumerMember
);
return
;
}
else
if
(
subtract
.
compareTo
(
BigDecimal
.
valueOf
(
configMap
.
get
(
Collections
.
max
(
configMap
.
keySet
())).
getLimitRequirements
()))
>=
0
)
{
consumerMember
.
setMembershipLevel
(
Collections
.
max
(
configMap
.
keySet
()));
consumerMember
.
setMembershipProgress
(
subtract
);
updateList
.
add
(
consumerMember
);
return
;
}
}
}
...
...
@@ -802,6 +809,31 @@ public class RedisTask {
logger
.
debug
(
"AutomaticallyMonthlyCard:自动结束月卡结束"
);
}
//每日00:00:00增加时长
@XxlJob
(
"AutoMonthlyCardTime"
)
public
void
AutoMonthlyCardTime
()
{
logger
.
debug
(
"AutoMonthlyCardTime:自动增加月卡时长开始"
);
Set
<
String
>
keys
=
redisTemplate
.
keys
(
ReceiptRdeisEnum
.
MONTHLY_CARD
.
getValue
()
+
"*"
);
if
(
keys
.
size
()
==
0
)
return
;
List
<
ConsumerMonthlyCard
>
consumerMonthlyCards
=
new
ArrayList
<>();
String
monthlyCardTime
=
sysConfigService
.
selectConfigByKey
(
"monthlyCardTime"
);
keys
.
stream
().
forEach
(
key
->
{
String
value
=
redisUtil
.
get
(
String
.
valueOf
(
key
));
JSONObject
jsonObject
=
new
JSONObject
(
value
);
Date
expirationTime
=
jsonObject
.
getDate
(
"expirationTime"
);
Long
consumerMonthlyCardId
=
jsonObject
.
getLong
(
"consumerMonthlyCardId"
);
if
(
expirationTime
.
getTime
()
>
new
Date
().
getTime
())
{
ConsumerMonthlyCard
consumerMonthlyCard
=
new
ConsumerMonthlyCard
();
consumerMonthlyCard
.
setFreeDuration
(
new
BigDecimal
(
monthlyCardTime
));
consumerMonthlyCard
.
setId
(
consumerMonthlyCardId
);
consumerMonthlyCards
.
add
(
consumerMonthlyCard
);
}
});
if
(!
CollectionUtils
.
isEmpty
(
consumerMonthlyCards
))
consumerMonthlyCardService
.
updateBatchById
(
consumerMonthlyCards
);
logger
.
debug
(
"AutoMonthlyCardTime:自动增加月卡时长结束"
);
}
@XxlJob
(
"AutomaticallySecondaryCard"
)
public
void
AutomaticallySecondaryCard
()
{
logger
.
debug
(
"AutomaticallySecondaryCard:自动结束次卡开始"
);
...
...
share-system/src/main/java/share/system/domain/ConsumerMonthlyCard.java
View file @
f93ea65e
...
...
@@ -34,6 +34,14 @@ public class ConsumerMonthlyCard extends BaseEntity {
@Excel
(
name
=
"月卡配置表id"
)
private
Long
monthlyCardConfId
;
//配置名称
@Excel
(
name
=
"月卡配置名称"
)
private
String
confName
;
//月卡金额
@Excel
(
name
=
"月卡金额"
)
private
BigDecimal
confAmount
;
/**
* 用户ID
*/
...
...
share-system/src/main/java/share/system/domain/ConsumerSecondaryCard.java
View file @
f93ea65e
...
...
@@ -32,6 +32,14 @@ public class ConsumerSecondaryCard extends BaseEntity {
@Excel
(
name
=
"次卡配置表id"
)
private
Long
secondaryCardConfId
;
//配置名称
@Excel
(
name
=
"次卡配置名称"
)
private
String
confName
;
//月卡金额
@Excel
(
name
=
"次卡金额"
)
private
BigDecimal
confAmount
;
/**
* 用户ID
*/
...
...
share-system/src/main/java/share/system/domain/DurationLog.java
View file @
f93ea65e
...
...
@@ -70,6 +70,9 @@ public class DurationLog extends BaseEntity {
@Excel
(
name
=
"时长类型0-充值赠送,1-订单消费,2-分享赠送,3-订单退款"
)
private
Integer
durationType
;
@Excel
(
name
=
"下级用户ID"
)
private
Long
newId
;
@Override
public
String
toString
()
{
...
...
share-system/src/main/java/share/system/domain/MonthlyCardConf.java
View file @
f93ea65e
package
share
.
system
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
...
...
@@ -25,6 +23,7 @@ public class MonthlyCardConf extends BaseEntity {
/**
* 主键
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
...
...
share-system/src/main/java/share/system/domain/MonthlyCardLog.java
View file @
f93ea65e
package
share
.
system
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
...
...
@@ -27,6 +25,7 @@ public class MonthlyCardLog extends BaseEntity {
/**
* 主键
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
...
...
share-system/src/main/java/share/system/domain/SecondaryCardConf.java
View file @
f93ea65e
package
share
.
system
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
share.common.annotation.Excel
;
import
share.common.core.domain.BaseEntity
;
...
...
@@ -23,6 +21,7 @@ public class SecondaryCardConf extends BaseEntity {
/**
* 主键
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
...
...
share-system/src/main/java/share/system/domain/SecondaryCardLog.java
View file @
f93ea65e
package
share
.
system
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
...
...
@@ -26,6 +24,7 @@ public class SecondaryCardLog extends BaseEntity {
/**
* 主键
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
...
...
share-system/src/main/java/share/system/domain/vo/ConsumerMonthlyCardVo.java
View file @
f93ea65e
...
...
@@ -3,16 +3,10 @@ package share.system.domain.vo;
import
lombok.Data
;
import
share.system.domain.ConsumerMonthlyCard
;
import
java.math.BigDecimal
;
@Data
public
class
ConsumerMonthlyCardVo
extends
ConsumerMonthlyCard
{
//用户昵称
private
String
nickName
;
//用户头像
private
String
avatar
;
//配置名称
private
String
confName
;
//月卡金额
private
BigDecimal
confAmount
;
}
share-system/src/main/java/share/system/domain/vo/ConsumerSecondaryCardVo.java
View file @
f93ea65e
...
...
@@ -3,18 +3,12 @@ package share.system.domain.vo;
import
lombok.Data
;
import
share.system.domain.ConsumerSecondaryCard
;
import
java.math.BigDecimal
;
@Data
public
class
ConsumerSecondaryCardVo
extends
ConsumerSecondaryCard
{
//用户昵称
private
String
nickName
;
//用户头像
private
String
avatar
;
//配置名称
private
String
confName
;
//次卡金额
private
BigDecimal
confAmount
;
//是否适用当前套餐
private
Integer
isUse
;
//原因
...
...
share-system/src/main/java/share/system/domain/vo/DurationLogVo.java
View file @
f93ea65e
...
...
@@ -10,4 +10,10 @@ public class DurationLogVo extends DurationLog {
private
String
avatar
;
private
String
phone
;
private
String
newNickName
;
private
String
newAvatar
;
private
String
newPhone
;
}
share-system/src/main/java/share/system/domain/vo/SOrderVo.java
View file @
f93ea65e
...
...
@@ -103,6 +103,24 @@ public class SOrderVo
@Excel
(
name
=
"优惠卷促销价"
)
private
BigDecimal
couponPayPrice
;
@Excel
(
name
=
"次卡ID"
)
private
Long
secondaryCardId
;
@Excel
(
name
=
"次卡名称"
)
private
String
secondaryCardName
;
@Excel
(
name
=
"次卡金额"
)
private
BigDecimal
secondaryCardAmount
;
@Excel
(
name
=
"月卡ID"
)
private
Long
monthlyCardId
;
@Excel
(
name
=
"月卡名称"
)
private
String
monthlyCardName
;
@Excel
(
name
=
"月卡金额"
)
private
BigDecimal
monthlyCardAmount
;
@ApiModelProperty
(
value
=
"订单总价"
)
@Excel
(
name
=
"订单总价"
)
private
BigDecimal
totalPrice
;
...
...
@@ -283,11 +301,7 @@ public class SOrderVo
@ApiModelProperty
(
name
=
"是否可以申请退款"
)
private
Boolean
isRefund
;
@Excel
(
name
=
"次卡ID"
)
private
Long
secondaryCardId
;
@Excel
(
name
=
"月卡ID"
)
private
Long
monthlyCardId
;
@Excel
(
name
=
"历史订单号"
)
private
String
historicalOrderNo
;
...
...
share-system/src/main/java/share/system/response/MonthlyCardResponse.java
0 → 100644
View file @
f93ea65e
package
share
.
system
.
response
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
share.system.domain.ConsumerMonthlyCard
;
import
share.system.domain.ConsumerSecondaryCard
;
import
java.util.List
;
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"MonthlyCardResponse"
,
description
=
"卡包响应对象"
)
public
class
MonthlyCardResponse
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"月卡"
)
private
List
<
ConsumerMonthlyCard
>
consumerMonthlyCard
;
@ApiModelProperty
(
value
=
"次卡"
)
private
List
<
ConsumerSecondaryCard
>
consumerSecondaryCard
;
}
share-system/src/main/java/share/system/service/ConsumerMonthlyCardService.java
View file @
f93ea65e
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
share.system.domain.ConsumerMonthlyCard
;
import
share.system.domain.vo.ConsumerMonthlyCardVo
;
import
share.system.request.MonthlyCardRequest
;
import
share.system.response.MonthlyCardResponse
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* 用户月卡Service接口
...
...
@@ -65,5 +66,7 @@ public interface ConsumerMonthlyCardService extends IService<ConsumerMonthlyCard
List
<
ConsumerMonthlyCardVo
>
selectByConsumerId
();
Map
<
String
,
List
<
Long
>>
queryCardType
(
MonthlyCardRequest
monthlyCardRequest
);
MonthlyCardResponse
queryCardType
(
MonthlyCardRequest
monthlyCardRequest
);
List
<
ConsumerMonthlyCard
>
confNameByIds
(
ArrayList
<
Long
>
longs
);
}
share-system/src/main/java/share/system/service/ConsumerSecondaryCardService.java
View file @
f93ea65e
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
share.system.domain.ConsumerSecondaryCard
;
import
share.system.domain.vo.ConsumerSecondaryCardVo
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -64,4 +65,6 @@ public interface ConsumerSecondaryCardService extends IService<ConsumerSecondary
List
<
ConsumerSecondaryCardVo
>
selectByConsumerId
();
List
<
ConsumerSecondaryCardVo
>
selectByPaclId
(
Long
packId
);
List
<
ConsumerSecondaryCard
>
confNameByIds
(
ArrayList
<
Long
>
longs
);
}
share-system/src/main/java/share/system/service/IPackService.java
View file @
f93ea65e
...
...
@@ -66,5 +66,5 @@ public interface IPackService extends IService<SPack> {
List
<
SPack
>
pageList
(
SPack
sPack
);
List
<
SPack
>
store
NameByIds
(
List
<
Long
>
longs
);
List
<
SPack
>
pack
NameByIds
(
List
<
Long
>
longs
);
}
share-system/src/main/java/share/system/service/ISConsumerCouponService.java
View file @
f93ea65e
...
...
@@ -90,7 +90,7 @@ public interface ISConsumerCouponService extends IService<SConsumerCoupon>
SConsumerCoupon
selectSConsumerCouponByCode
(
String
code
);
List
<
SConsumerCoupon
>
store
NameByIds
(
List
<
Long
>
longs
);
List
<
SConsumerCoupon
>
coupon
NameByIds
(
List
<
Long
>
longs
);
List
<
SConsumerCoupon
>
selectOrderList
();
...
...
share-system/src/main/java/share/system/service/ISRoomService.java
View file @
f93ea65e
package
share
.
system
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
share.common.core.page.TableDataInfo
;
import
share.system.domain.Device
;
import
share.system.domain.SPack
;
import
share.system.domain.SRoom
;
...
...
@@ -109,5 +110,7 @@ public interface ISRoomService extends IService<SRoom>
List
<
SRoomVo
>
convertDoListToVoList
(
List
<
SRoom
>
roomList
);
List
<
SRoom
>
storeNameByIds
(
List
<
Long
>
longs
);
List
<
SRoom
>
roomNameByIds
(
List
<
Long
>
longs
);
TableDataInfo
pageList
(
SRoom
sRoom
);
}
share-system/src/main/java/share/system/service/impl/ConsumerMonthlyCardServiceImpl.java
View file @
f93ea65e
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
...
...
@@ -13,10 +14,13 @@ import share.system.domain.*;
import
share.system.domain.vo.ConsumerMonthlyCardVo
;
import
share.system.mapper.ConsumerMonthlyCardMapper
;
import
share.system.request.MonthlyCardRequest
;
import
share.system.response.MonthlyCardResponse
;
import
share.system.service.*
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
/**
* 用户月卡Service业务层处理
...
...
@@ -37,6 +41,8 @@ public class ConsumerMonthlyCardServiceImpl extends ServiceImpl<ConsumerMonthlyC
@Autowired
private
RoomLabelService
roomLabelService
;
@Autowired
private
LabelService
labelService
;
@Autowired
private
IPackService
packService
;
@Autowired
private
ISRoomService
roomService
;
...
...
@@ -118,36 +124,44 @@ public class ConsumerMonthlyCardServiceImpl extends ServiceImpl<ConsumerMonthlyC
}
@Override
public
M
ap
<
String
,
List
<
Long
>>
queryCardType
(
MonthlyCardRequest
monthlyCardRequest
)
{
public
M
onthlyCardResponse
queryCardType
(
MonthlyCardRequest
monthlyCardRequest
)
{
SConsumer
user
=
sConsumerService
.
getInfo
();
ConsumerMember
consumerMember
=
consumerMemberService
.
getOne
(
new
LambdaQueryWrapper
<
ConsumerMember
>().
eq
(
ConsumerMember:
:
getConsumerId
,
user
.
getId
()).
eq
(
ConsumerMember:
:
getIsRights
,
YesNoEnum
.
yes
.
getIndex
()));
ConsumerMonthlyCard
consumerMonthlyCard
=
null
;
List
<
ConsumerSecondaryCard
>
consumerSecondaryCard
=
null
;
M
ap
<
String
,
List
<
Long
>>
map
=
new
HashMap
<>
();
List
<
Long
>
consumerMonthlyCardList
=
new
ArrayList
<>();
List
<
Long
>
consumerSecondaryCardList
=
new
ArrayList
<>();
M
onthlyCardResponse
map
=
new
MonthlyCardResponse
();
List
<
ConsumerMonthlyCard
>
consumerMonthlyCardList
=
new
ArrayList
<>();
List
<
ConsumerSecondaryCard
>
consumerSecondaryCardList
=
new
ArrayList
<>();
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
SRoom
room
=
roomService
.
getById
(
monthlyCardRequest
.
getRoomId
());
consumerMonthlyCard
=
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
ConsumerMonthlyCard
>().
eq
(
ConsumerMonthlyCard:
:
getConsumerId
,
user
.
getId
()));
consumerSecondaryCard
=
consumerSecondaryCardService
.
list
(
new
LambdaQueryWrapper
<
ConsumerSecondaryCard
>().
eq
(
ConsumerSecondaryCard:
:
getConsumerId
,
user
.
getId
()).
orderByAsc
(
ConsumerSecondaryCard:
:
getNumber
));
consumerMonthlyCard
=
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
ConsumerMonthlyCard
>().
eq
(
ConsumerMonthlyCard:
:
getConsumerId
,
user
.
getId
()).
gt
(
ConsumerMonthlyCard:
:
getFreeDuration
,
0
));
consumerSecondaryCard
=
consumerSecondaryCardService
.
list
(
new
LambdaQueryWrapper
<
ConsumerSecondaryCard
>()
.
eq
(
ConsumerSecondaryCard:
:
getConsumerId
,
user
.
getId
())
.
gt
(
ConsumerSecondaryCard:
:
getNumber
,
0
)
.
orderByAsc
(
ConsumerSecondaryCard:
:
getNumber
)
);
if
(!
ObjectUtils
.
isEmpty
(
monthlyCardRequest
.
getRoomLabelId
()))
{
RoomLabel
roomLabel
=
roomLabelService
.
selectRoomLabelById
(
monthlyCardRequest
.
getRoomLabelId
());
Label
label
=
labelService
.
getById
(
roomLabel
.
getLabelId
());
if
(
ObjectUtils
.
isEmpty
(
roomLabel
.
getPackId
()))
{
//标签没绑定套餐
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
consumerMonthlyCardList
.
add
(
consumerMonthlyCard
.
getId
()
);
map
.
put
(
"consumerMonthlyCard"
,
consumerMonthlyCardList
);
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
)
&&
new
BigDecimal
(
label
.
getDuration
()).
compareTo
(
BigDecimal
.
ONE
)
>=
0
)
{
consumerMonthlyCardList
.
add
(
consumerMonthlyCard
);
map
.
setConsumerMonthlyCard
(
consumerMonthlyCardList
);
}
if
(
CollectionUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
//过滤时长相等的
consumerSecondaryCard
.
stream
().
forEach
(
item
->
{
if
(
Objects
.
equals
(
item
.
getSingleDuration
(),
Integer
.
valueOf
(
roomLabel
.
getPromotionDuration
()))
&&
item
.
getSingleAmount
().
compareTo
(
new
BigDecimal
(
roomLabel
.
getPromotionDuration
()).
multiply
(
room
.
getPrice
()))
>=
0
)
{
consumerSecondaryCardList
.
add
(
item
.
getId
());
map
.
put
(
"consumerSecondaryCard"
,
consumerSecondaryCardList
);
if
(
new
BigDecimal
(
label
.
getDuration
()).
compareTo
(
BigDecimal
.
ONE
)
>=
0
)
{
if
(
Objects
.
equals
(
item
.
getSingleDuration
(),
Integer
.
valueOf
(
label
.
getDuration
()))
&&
item
.
getSingleAmount
().
compareTo
(
new
BigDecimal
(
label
.
getDuration
()).
multiply
(
room
.
getPrice
()))
>=
0
)
{
consumerSecondaryCardList
.
add
(
item
);
map
.
setConsumerSecondaryCard
(
consumerSecondaryCardList
);
}
}
});
}
return
map
;
...
...
@@ -160,17 +174,33 @@ public class ConsumerMonthlyCardServiceImpl extends ServiceImpl<ConsumerMonthlyC
consumerSecondaryCard
.
stream
().
forEach
(
item
->
{
if
(
Objects
.
equals
(
item
.
getSingleDuration
(),
Integer
.
valueOf
(
byId
.
getDuration
()))
&&
item
.
getSingleAmount
().
compareTo
(
byId
.
getPrice
())
>=
0
)
{
consumerSecondaryCardList
.
add
(
item
.
getId
()
);
map
.
put
(
"consumerSecondaryCard"
,
consumerSecondaryCardList
);
consumerSecondaryCardList
.
add
(
item
);
map
.
setConsumerSecondaryCard
(
consumerSecondaryCardList
);
}
});
}
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
)
&&
consumerMonthlyCard
.
getFreeDuration
().
compareTo
(
new
BigDecimal
(
byId
.
getDuration
()))
>=
0
)
{
consumerMonthlyCardList
.
add
(
consumerMonthlyCard
);
map
.
setConsumerMonthlyCard
(
consumerMonthlyCardList
);
}
return
map
;
//标签绑定了套餐,套餐没开启,小时
}
else
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
consumerMonthlyCardList
.
add
(
consumerMonthlyCard
.
getId
());
map
.
put
(
"consumerMonthlyCard"
,
consumerMonthlyCardList
);
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
)
&&
new
BigDecimal
(
label
.
getDuration
()).
compareTo
(
BigDecimal
.
ONE
)
>=
0
)
{
consumerMonthlyCardList
.
add
(
consumerMonthlyCard
);
map
.
setConsumerMonthlyCard
(
consumerMonthlyCardList
);
}
if
(
CollectionUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
//过滤时长相等的
consumerSecondaryCard
.
stream
().
forEach
(
item
->
{
if
(
new
BigDecimal
(
label
.
getDuration
()).
compareTo
(
BigDecimal
.
ONE
)
>=
0
)
{
if
(
Objects
.
equals
(
item
.
getSingleDuration
(),
Integer
.
valueOf
(
label
.
getDuration
()))
&&
item
.
getSingleAmount
().
compareTo
(
new
BigDecimal
(
label
.
getDuration
()).
multiply
(
room
.
getPrice
()))
>=
0
)
{
consumerSecondaryCardList
.
add
(
item
);
map
.
setConsumerSecondaryCard
(
consumerSecondaryCardList
);
}
}
});
}
return
map
;
}
...
...
@@ -183,13 +213,28 @@ public class ConsumerMonthlyCardServiceImpl extends ServiceImpl<ConsumerMonthlyC
consumerSecondaryCard
.
stream
().
forEach
(
item
->
{
if
(
Objects
.
equals
(
item
.
getSingleDuration
(),
Integer
.
valueOf
(
pack
.
getDuration
()))
&&
item
.
getSingleAmount
().
compareTo
(
pack
.
getPrice
())
>=
0
)
{
consumerSecondaryCardList
.
add
(
item
.
getId
()
);
map
.
put
(
"consumerSecondaryCard"
,
consumerSecondaryCardList
);
consumerSecondaryCardList
.
add
(
item
);
map
.
setConsumerSecondaryCard
(
consumerSecondaryCardList
);
}
});
}
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
)
&&
consumerMonthlyCard
.
getFreeDuration
().
compareTo
(
new
BigDecimal
(
pack
.
getDuration
()))
>=
0
)
{
consumerMonthlyCardList
.
add
(
consumerMonthlyCard
);
map
.
setConsumerMonthlyCard
(
consumerMonthlyCardList
);
}
return
map
;
}
}
return
new
HashMap
<>();
return
new
MonthlyCardResponse
();
}
@Override
public
List
<
ConsumerMonthlyCard
>
confNameByIds
(
ArrayList
<
Long
>
longs
)
{
LambdaQueryWrapper
<
ConsumerMonthlyCard
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
ConsumerMonthlyCard:
:
getId
,
ConsumerMonthlyCard:
:
getConfName
,
ConsumerMonthlyCard:
:
getConfAmount
);
if
(
CollectionUtils
.
isNotEmpty
(
longs
))
{
queryWrapper
.
in
(
ConsumerMonthlyCard:
:
getId
,
longs
);
}
return
list
(
queryWrapper
);
}
}
share-system/src/main/java/share/system/service/impl/ConsumerSecondaryCardServiceImpl.java
View file @
f93ea65e
package
share
.
system
.
service
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
share.common.exception.base.BaseException
;
...
...
@@ -15,6 +17,7 @@ import share.system.service.ConsumerSecondaryCardService;
import
share.system.service.IPackService
;
import
share.system.service.SConsumerService
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
...
...
@@ -134,4 +137,14 @@ public class ConsumerSecondaryCardServiceImpl extends ServiceImpl<ConsumerSecond
// });
return
consumerSecondaryCardVos
;
}
@Override
public
List
<
ConsumerSecondaryCard
>
confNameByIds
(
ArrayList
<
Long
>
longs
)
{
LambdaQueryWrapper
<
ConsumerSecondaryCard
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
ConsumerSecondaryCard:
:
getId
,
ConsumerSecondaryCard:
:
getConfName
,
ConsumerSecondaryCard:
:
getConfAmount
);
if
(
CollectionUtils
.
isNotEmpty
(
longs
))
{
queryWrapper
.
in
(
ConsumerSecondaryCard:
:
getId
,
longs
);
}
return
list
(
queryWrapper
);
}
}
share-system/src/main/java/share/system/service/impl/ConsumerWalletServiceImpl.java
View file @
f93ea65e
...
...
@@ -485,6 +485,7 @@ public class ConsumerWalletServiceImpl extends ServiceImpl<ConsumerWalletMapper,
durationLog
.
setVariableDuration
(
consumerWallet
.
getRemainingDuration
());
durationLog
.
setOperationType
(
YesNoEnum
.
yes
.
getIndex
());
durationLog
.
setOperationTime
(
new
Date
());
durationLog
.
setDurationType
(
DurationTypeEnum
.
GIVE
.
getCode
());
durationLog
.
setCreateTime
(
new
Date
());
oldConsumerWallet
.
setRemainingDuration
(
oldConsumerWallet
.
getRemainingDuration
().
add
(
consumerWallet
.
getRemainingDuration
()));
durationLogService
.
save
(
durationLog
);
...
...
@@ -505,6 +506,7 @@ public class ConsumerWalletServiceImpl extends ServiceImpl<ConsumerWalletMapper,
durationLog
.
setOperationType
(
YesNoEnum
.
yes
.
getIndex
());
durationLog
.
setOperationTime
(
new
Date
());
durationLog
.
setCreateTime
(
new
Date
());
durationLog
.
setDurationType
(
DurationTypeEnum
.
GIVE
.
getCode
());
newConsumerWallet
.
setRemainingDuration
(
newConsumerWallet
.
getRemainingDuration
().
add
(
consumerWallet
.
getRemainingDuration
()));
newConsumerWallet
.
setRemainingIntegral
(
BigDecimal
.
ZERO
);
...
...
share-system/src/main/java/share/system/service/impl/DeviceGatewayServiceImpl.java
View file @
f93ea65e
package
share
.
system
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
share.common.core.page.PageDomain
;
import
share.common.core.page.TableDataInfo
;
import
share.common.core.page.TableSupport
;
import
share.common.enums.DeviceStatusEnum
;
import
share.common.enums.YesNoEnum
;
import
share.common.utils.DateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
share.system.domain.
*
;
import
share.system.domain.DeviceGateway
;
import
share.system.domain.DeviceGatewayDto
;
import
share.system.domain.
SStore
;
import
share.system.domain.vo.DeviceGatewayVo
;
import
share.system.domain.vo.DeviceVo
;
import
share.system.mapper.DeviceGatewayMapper
;
import
share.system.mapper.SStoreMapper
;
import
share.system.service.DeviceGatewayService
;
import
share.system.service.ISysConfigService
;
import
share.system.service.SmsService
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
/**
* 设备网关信息Service业务层处理
*
...
...
@@ -159,7 +158,13 @@ public class DeviceGatewayServiceImpl extends ServiceImpl<DeviceGatewayMapper, D
@Override
public
TableDataInfo
deviceGatewayPage
(
DeviceGatewayDto
deviceGatewayDto
)
{
List
<
DeviceGateway
>
deviceGateways
=
deviceGatewayMapper
.
selectDeviceGatewayList
(
deviceGatewayDto
);
List
<
DeviceGatewayVo
>
deviceGatewayVoList
=
convertDosToVos
(
deviceGateways
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setTotal
(
deviceGateways
.
size
());
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
int
start
=
(
pageDomain
.
getPageNum
()
-
1
)
*
pageDomain
.
getPageSize
();
int
end
=
Math
.
min
(
start
+
pageDomain
.
getPageSize
(),
deviceGateways
.
size
());
List
<
DeviceGateway
>
deviceGatewayVos
=
deviceGateways
.
subList
(
start
,
end
);
List
<
DeviceGatewayVo
>
deviceGatewayVoList
=
convertDosToVos
(
deviceGatewayVos
);
if
(
CollectionUtils
.
isNotEmpty
(
deviceGatewayVoList
))
{
List
<
SStore
>
sStoreList
=
storeMapper
.
selectList
(
new
LambdaQueryWrapper
<>());
deviceGatewayVoList
.
stream
().
forEach
(
item
->
{
...
...
@@ -172,13 +177,7 @@ public class DeviceGatewayServiceImpl extends ServiceImpl<DeviceGatewayMapper, D
});
}
deviceGatewayVoList
.
sort
(
Comparator
.
comparing
(
DeviceGatewayVo:
:
getCreateTime
).
reversed
());
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
int
start
=
(
pageDomain
.
getPageNum
()
-
1
)
*
pageDomain
.
getPageSize
();
int
end
=
Math
.
min
(
start
+
pageDomain
.
getPageSize
(),
deviceGatewayVoList
.
size
());
List
<
DeviceGatewayVo
>
deviceGatewayVos
=
deviceGatewayVoList
.
subList
(
start
,
end
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setRows
(
deviceGatewayVos
);
tableDataInfo
.
setTotal
(
deviceGatewayVoList
.
size
());
tableDataInfo
.
setRows
(
deviceGatewayVoList
);
tableDataInfo
.
setCode
(
200
);
tableDataInfo
.
setMsg
(
"查询成功"
);
return
tableDataInfo
;
...
...
share-system/src/main/java/share/system/service/impl/DeviceLogServiceImpl.java
View file @
f93ea65e
package
share
.
system
.
service
.
impl
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
share.common.utils.DateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
share.common.utils.
Security
Utils
;
import
share.system.domain.
*
;
import
share.common.utils.
Date
Utils
;
import
share.system.domain.
DeviceLog
;
import
share.system.domain.vo.MqttxVo
;
import
share.system.mapper.DeviceLogMapper
;
import
share.system.mapper.DeviceMapper
;
...
...
@@ -18,6 +12,8 @@ import share.system.mapper.SRoomMapper;
import
share.system.mapper.SStoreMapper
;
import
share.system.service.DeviceLogService
;
import
java.util.List
;
/**
* 设备操作日志Service业务层处理
*
...
...
@@ -58,34 +54,34 @@ public class DeviceLogServiceImpl extends ServiceImpl<DeviceLogMapper, DeviceLog
public
List
<
DeviceLog
>
selectDeviceLogList
(
DeviceLog
deviceLog
)
{
List
<
DeviceLog
>
list
=
deviceLogMapper
.
selectDeviceLogList
(
deviceLog
);
if
(
list
.
size
()
>
0
)
{
List
<
String
>
devIds
=
list
.
stream
().
map
(
DeviceLog:
:
getDevId
).
collect
(
Collectors
.
toList
());
// 设备信息查询
LambdaQueryWrapper
<
Device
>
queryDeviceWrapper
=
new
LambdaQueryWrapper
();
queryDeviceWrapper
.
in
(
Device:
:
getDevId
,
devIds
);
List
<
Device
>
deviceList
=
deviceMapper
.
selectList
(
queryDeviceWrapper
);
// 提取roomId,方便批量查询
List
<
Long
>
roomIds
=
deviceList
.
stream
().
map
(
Device:
:
getRoomId
).
collect
(
Collectors
.
toList
());
Map
<
String
,
Long
>
deviceRoomMap
=
deviceList
.
stream
().
collect
(
Collectors
.
toMap
(
Device:
:
getDevId
,
Device:
:
getRoomId
));
if
(
roomIds
!=
null
&&
roomIds
.
size
()
>
0
)
{
// 房间信息查询
LambdaQueryWrapper
<
SRoom
>
queryWrapper
=
new
LambdaQueryWrapper
();
queryWrapper
.
in
(
SRoom:
:
getId
,
roomIds
);
List
<
SRoom
>
roomList
=
roomMapper
.
selectList
(
queryWrapper
);
Map
<
Long
,
String
>
roomMap
=
roomList
.
stream
().
collect
(
Collectors
.
toMap
(
SRoom:
:
getId
,
SRoom:
:
getName
));
Map
<
Long
,
Long
>
roomStoreMap
=
roomList
.
stream
().
collect
(
Collectors
.
toMap
(
SRoom:
:
getId
,
SRoom:
:
getStoreId
));
// 门店信息查询
List
<
Long
>
storeIds
=
roomList
.
stream
().
map
(
SRoom:
:
getStoreId
).
collect
(
Collectors
.
toList
());
LambdaQueryWrapper
<
SStore
>
queryStoreWrapper
=
new
LambdaQueryWrapper
();
queryStoreWrapper
.
in
(
SStore:
:
getId
,
storeIds
);
List
<
SStore
>
storeList
=
storeMapper
.
selectList
(
queryStoreWrapper
);
Map
<
Long
,
String
>
storeMap
=
storeList
.
stream
().
collect
(
Collectors
.
toMap
(
SStore:
:
getId
,
SStore:
:
getName
));
list
.
stream
().
forEach
(
log
->
{
log
.
setRoomName
(
roomMap
.
get
(
deviceRoomMap
.
get
(
log
.
getDevId
())));
log
.
setStoreName
(
storeMap
.
get
(
roomStoreMap
.
get
(
deviceRoomMap
.
get
(
log
.
getDevId
()))));
});
}
}
//
if (list.size() > 0) {
//
List<String> devIds = list.stream().map(DeviceLog::getDevId).collect(Collectors.toList());
//
// 设备信息查询
//
LambdaQueryWrapper<Device> queryDeviceWrapper = new LambdaQueryWrapper();
//
queryDeviceWrapper.in(Device::getDevId, devIds);
//
List<Device> deviceList = deviceMapper.selectList(queryDeviceWrapper);
//
// 提取roomId,方便批量查询
//
List<Long> roomIds = deviceList.stream().map(Device::getRoomId).collect(Collectors.toList());
//
Map<String, Long> deviceRoomMap = deviceList.stream().collect(Collectors.toMap(Device::getDevId, Device::getRoomId));
//
if (roomIds != null && roomIds.size() > 0) {
//
// 房间信息查询
//
LambdaQueryWrapper<SRoom> queryWrapper = new LambdaQueryWrapper();
//
queryWrapper.in(SRoom::getId, roomIds);
//
List<SRoom> roomList = roomMapper.selectList(queryWrapper);
//
Map<Long, String> roomMap = roomList.stream().collect(Collectors.toMap(SRoom::getId, SRoom::getName));
//
Map<Long, Long> roomStoreMap = roomList.stream().collect(Collectors.toMap(SRoom::getId, SRoom::getStoreId));
//
// 门店信息查询
//
List<Long> storeIds = roomList.stream().map(SRoom::getStoreId).collect(Collectors.toList());
//
LambdaQueryWrapper<SStore> queryStoreWrapper = new LambdaQueryWrapper();
//
queryStoreWrapper.in(SStore::getId, storeIds);
//
List<SStore> storeList = storeMapper.selectList(queryStoreWrapper);
//
Map<Long, String> storeMap = storeList.stream().collect(Collectors.toMap(SStore::getId, SStore::getName));
//
list.stream().forEach(log -> {
//
log.setRoomName(roomMap.get(deviceRoomMap.get(log.getDevId())));
//
log.setStoreName(storeMap.get(roomStoreMap.get(deviceRoomMap.get(log.getDevId()))));
//
});
//
}
//
}
return
list
;
}
...
...
share-system/src/main/java/share/system/service/impl/DeviceServiceImpl.java
View file @
f93ea65e
...
...
@@ -36,6 +36,7 @@ import java.util.ArrayList;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* 设备信息Service业务层处理
...
...
@@ -170,10 +171,16 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
@Override
public
TableDataInfo
devicePage
(
DeviceDto
device
)
{
List
<
Device
>
devices
=
deviceMapper
.
selectDeviceList
(
device
);
List
<
DeviceVo
>
deviceVoList
=
convertDosToVos
(
devices
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
tableDataInfo
.
setTotal
(
devices
.
size
());
int
start
=
(
pageDomain
.
getPageNum
()
-
1
)
*
pageDomain
.
getPageSize
();
int
end
=
Math
.
min
(
start
+
pageDomain
.
getPageSize
(),
devices
.
size
());
List
<
Device
>
deviceVos
=
devices
.
subList
(
start
,
end
);
List
<
DeviceVo
>
deviceVoList
=
convertDosToVos
(
deviceVos
);
if
(
CollectionUtils
.
isNotEmpty
(
deviceVoList
))
{
List
<
S
Store
>
sStoreList
=
storeMapper
.
selectList
(
new
LambdaQueryWrapper
<>(
));
List
<
S
Room
>
sRoomList
=
roomMapper
.
selectList
(
new
LambdaQueryWrapper
<>(
));
List
<
S
Room
>
sRoomList
=
roomMapper
.
selectList
(
new
LambdaQueryWrapper
<
SRoom
>().
in
(
SRoom:
:
getId
,
deviceVoList
.
stream
().
map
(
DeviceVo:
:
getRoomId
).
collect
(
Collectors
.
toList
())
));
List
<
S
Store
>
sStoreList
=
storeMapper
.
selectList
(
new
LambdaQueryWrapper
<
SStore
>().
in
(
SStore:
:
getId
,
sRoomList
.
stream
().
map
(
SRoom:
:
getStoreId
).
collect
(
Collectors
.
toList
())
));
deviceVoList
.
stream
().
forEach
(
item
->
{
if
(
ObjectUtil
.
isNotEmpty
(
item
.
getRoomId
()))
{
SRoom
sRoom
=
sRoomList
.
stream
().
filter
(
room
->
room
.
getId
().
equals
(
item
.
getRoomId
())).
findFirst
().
orElse
(
null
);
...
...
@@ -188,13 +195,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
});
}
deviceVoList
.
sort
(
Comparator
.
comparing
(
DeviceVo:
:
getCreateTime
).
reversed
());
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
int
start
=
(
pageDomain
.
getPageNum
()
-
1
)
*
pageDomain
.
getPageSize
();
int
end
=
Math
.
min
(
start
+
pageDomain
.
getPageSize
(),
deviceVoList
.
size
());
List
<
DeviceVo
>
deviceVos
=
deviceVoList
.
subList
(
start
,
end
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setRows
(
deviceVos
);
tableDataInfo
.
setTotal
(
deviceVoList
.
size
());
tableDataInfo
.
setRows
(
deviceVoList
);
tableDataInfo
.
setCode
(
200
);
tableDataInfo
.
setMsg
(
"查询成功"
);
return
tableDataInfo
;
...
...
share-system/src/main/java/share/system/service/impl/DurationLogServiceImpl.java
View file @
f93ea65e
...
...
@@ -110,4 +110,9 @@ public class DurationLogServiceImpl extends ServiceImpl<DurationLogMapper, Durat
.
stream
().
map
(
DurationLog:
:
getVariableDuration
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
}
}
share-system/src/main/java/share/system/service/impl/EquityFundExcessServiceImpl.java
View file @
f93ea65e
...
...
@@ -264,6 +264,7 @@ public class EquityFundExcessServiceImpl extends ServiceImpl<EquityFundExcessMap
consumerWallet
.
setUpdateTime
(
DateUtils
.
getNowDate
());
DurationLog
durationLog
=
new
DurationLog
();
durationLog
.
setConsumerId
(
consumerWallet
.
getConsumerId
());
durationLog
.
setNewId
(
sOrder
.
getConsumerId
());
durationLog
.
setVariableDuration
(
anHour
);
durationLog
.
setCurrentDuration
(
accumulateEquityFund
);
durationLog
.
setOperationType
(
YesNoEnum
.
yes
.
getIndex
());
...
...
@@ -287,6 +288,7 @@ public class EquityFundExcessServiceImpl extends ServiceImpl<EquityFundExcessMap
consumerWalletService
.
insertConsumerWallet
(
newConsumerWallet
);
DurationLog
newDurationLog
=
new
DurationLog
();
newDurationLog
.
setConsumerId
(
consumerWallet
.
getConsumerId
());
newDurationLog
.
setNewId
(
sOrder
.
getConsumerId
());
newDurationLog
.
setVariableDuration
(
anHour
);
newDurationLog
.
setCurrentDuration
(
consumerWallet
.
getRemainingDuration
());
newDurationLog
.
setOperationType
(
YesNoEnum
.
yes
.
getIndex
());
...
...
share-system/src/main/java/share/system/service/impl/MonthlyCardOrderServiceImpl.java
View file @
f93ea65e
...
...
@@ -135,6 +135,10 @@ public class MonthlyCardOrderServiceImpl extends ServiceImpl<MonthlyCardOrderMap
throw
new
BaseException
(
"请绑定手机号"
);
}
}
ConsumerMonthlyCard
one
=
consumerMonthlyCardService
.
getOne
(
new
LambdaQueryWrapper
<
ConsumerMonthlyCard
>().
eq
(
ConsumerMonthlyCard:
:
getConsumerId
,
user
.
getId
()));
if
(
ObjectUtil
.
isNotEmpty
(
one
))
{
throw
new
BaseException
(
"月卡一个月只能购买一次"
);
}
MonthlyCardOrder
monthlyCardOrder
=
generatMonthlyCarddOrder
(
request
,
user
);
monthlyCardOrder
.
setCreateTime
(
new
Date
());
save
(
monthlyCardOrder
);
...
...
@@ -175,6 +179,8 @@ public class MonthlyCardOrderServiceImpl extends ServiceImpl<MonthlyCardOrderMap
ConsumerMember
consumerMember
=
consumerMemberService
.
getOne
(
new
LambdaQueryWrapper
<
ConsumerMember
>().
eq
(
ConsumerMember:
:
getConsumerId
,
monthlyCardOrder
.
getConsumerId
()));
MonthlyCardConf
byId
=
monthlyCardConfService
.
getById
(
monthlyCardOrder
.
getMonthlyCardConfId
());
consumerMonthlyCard
.
setMonthlyCardConfId
(
byId
.
getId
());
consumerMonthlyCard
.
setConfName
(
byId
.
getName
());
consumerMonthlyCard
.
setConfAmount
(
byId
.
getMonthlyCardAmount
());
consumerMonthlyCard
.
setConsumerId
(
monthlyCardOrder
.
getConsumerId
());
consumerMonthlyCard
.
setPhone
(
monthlyCardOrder
.
getPhone
());
consumerMonthlyCard
.
setExpirationDate
(
DateUtils
.
addDays
(
new
Date
(),
byId
.
getMonthlyCardDays
().
intValue
()));
...
...
share-system/src/main/java/share/system/service/impl/OrderPayServiceImpl.java
View file @
f93ea65e
...
...
@@ -471,7 +471,7 @@ public class OrderPayServiceImpl implements OrderPayService {
vo
.
setAttach
(
JSONObject
.
toJSONString
(
attachVo
));
vo
.
setTerminal_trace
(
BaseUtil
.
getOrderNo
(
"WXNO"
));
vo
.
setTerminal_time
(
DateUtil
.
nowDate
(
Constants
.
DATE_TIME_FORMAT_NUM
));
vo
.
setOrder_body
(
StrUtil
.
concat
(
true
,
"购买"
+
byId
.
getSecondaryCardAmount
()
+
"元"
+
byId
.
getName
()
+
"次卡"
));
vo
.
setOrder_body
(
StrUtil
.
concat
(
true
,
"购买"
+
byId
.
getSecondaryCardAmount
()
+
"元"
+
byId
.
getName
()));
// 订单中使用的是BigDecimal,这里要转为Integer类型
vo
.
setTotal_fee
(
String
.
valueOf
(
secondaryCardOrder
.
getSecondaryCardAmount
().
multiply
(
BigDecimal
.
TEN
).
multiply
(
BigDecimal
.
TEN
).
intValue
()));
vo
.
setNotify_url
(
apiDomain
+
PayConstants
.
SAOBEI_PAY_NOTIFY_API_URI
);
...
...
@@ -544,7 +544,7 @@ public class OrderPayServiceImpl implements OrderPayService {
vo
.
setAttach
(
JSONObject
.
toJSONString
(
attachVo
));
vo
.
setTerminal_trace
(
BaseUtil
.
getOrderNo
(
"WXNO"
));
vo
.
setTerminal_time
(
DateUtil
.
nowDate
(
Constants
.
DATE_TIME_FORMAT_NUM
));
vo
.
setOrder_body
(
StrUtil
.
concat
(
true
,
"购买"
+
byId
.
getMonthlyCardAmount
()
+
"元"
+
byId
.
get
Name
()
+
"
月卡"
));
vo
.
setOrder_body
(
StrUtil
.
concat
(
true
,
"购买"
+
byId
.
getMonthlyCardAmount
()
+
"元"
+
byId
.
get
MonthlyCardDays
()
+
"天
月卡"
));
// 订单中使用的是BigDecimal,这里要转为Integer类型
vo
.
setTotal_fee
(
String
.
valueOf
(
monthlyCardOrder
.
getMonthlyCardAmount
().
multiply
(
BigDecimal
.
TEN
).
multiply
(
BigDecimal
.
TEN
).
intValue
()));
vo
.
setNotify_url
(
apiDomain
+
PayConstants
.
SAOBEI_PAY_NOTIFY_API_URI
);
...
...
share-system/src/main/java/share/system/service/impl/PackServiceImpl.java
View file @
f93ea65e
...
...
@@ -159,7 +159,7 @@ public class PackServiceImpl extends ServiceImpl<PackMapper, SPack> implements I
}
@Override
public
List
<
SPack
>
store
NameByIds
(
List
<
Long
>
longs
)
{
public
List
<
SPack
>
pack
NameByIds
(
List
<
Long
>
longs
)
{
LambdaQueryWrapper
<
SPack
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
SPack:
:
getId
,
SPack:
:
getName
);
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isNotEmpty
(
longs
))
{
...
...
share-system/src/main/java/share/system/service/impl/RoomLabelServiceImpl.java
View file @
f93ea65e
...
...
@@ -158,17 +158,16 @@ public class RoomLabelServiceImpl extends ServiceImpl<RoomLabelMapper, RoomLabel
@Override
public
TableDataInfo
pageList
(
RoomLabelDto
roomLabel
)
{
List
<
RoomLabel
>
roomLabels
=
roomLabelMapper
.
pageList
(
roomLabel
);
List
<
RoomLabelVo
>
voList
=
doListToVoList
(
roomLabels
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setTotal
(
roomLabels
.
size
());
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
Integer
pageNum
=
pageDomain
.
getPageNum
();
Integer
pageSize
=
pageDomain
.
getPageSize
();
int
start
=
(
pageNum
-
1
)
*
pageSize
;
int
end
=
Math
.
min
(
start
+
pageSize
,
voList
.
size
());
List
<
RoomLabelVo
>
pagedList
=
voList
.
subList
(
start
,
end
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setRows
(
pagedList
);
tableDataInfo
.
setTotal
(
roomLabels
.
size
());
int
end
=
Math
.
min
(
start
+
pageSize
,
roomLabels
.
size
());
List
<
RoomLabel
>
pagedList
=
roomLabels
.
subList
(
start
,
end
);
List
<
RoomLabelVo
>
voList
=
doListToVoList
(
pagedList
);
tableDataInfo
.
setRows
(
voList
);
tableDataInfo
.
setCode
(
200
);
tableDataInfo
.
setMsg
(
"查询成功"
);
return
tableDataInfo
;
...
...
share-system/src/main/java/share/system/service/impl/SConsumerCouponServiceImpl.java
View file @
f93ea65e
...
...
@@ -591,7 +591,7 @@ public class SConsumerCouponServiceImpl extends ServiceImpl<SConsumerCouponMappe
}
@Override
public
List
<
SConsumerCoupon
>
store
NameByIds
(
List
<
Long
>
longs
)
{
public
List
<
SConsumerCoupon
>
coupon
NameByIds
(
List
<
Long
>
longs
)
{
LambdaQueryWrapper
<
SConsumerCoupon
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
SConsumerCoupon:
:
getId
,
SConsumerCoupon:
:
getName
);
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isNotEmpty
(
longs
))
{
...
...
share-system/src/main/java/share/system/service/impl/SOrderServiceImpl.java
View file @
f93ea65e
...
...
@@ -53,6 +53,7 @@ import share.system.service.*;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDate
;
import
java.time.ZoneId
;
import
java.time.ZonedDateTime
;
import
java.util.*
;
...
...
@@ -616,22 +617,22 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
@Override
public
TableDataInfo
queryOrderList
(
SOrder
sOrder
)
{
List
<
SOrder
>
sOrderList
=
baseMapper
.
queryList
(
sOrder
.
getRoomId
());
List
<
SOrderVo
>
sOrderVos
=
convertDosToVos
(
sOrderList
);
List
<
SStore
>
list
=
storeService
.
list
();
List
<
SRoom
>
list1
=
roomService
.
list
();
sOrderVos
.
stream
().
forEach
(
vo
->
{
vo
.
setRoomName
(
list1
.
stream
().
filter
(
room
->
room
.
getId
().
equals
(
vo
.
getRoomId
())).
findFirst
().
get
().
getName
());
vo
.
setStoreName
(
list
.
stream
().
filter
(
store
->
store
.
getId
().
equals
(
vo
.
getStoreId
())).
findFirst
().
get
().
getName
());
});
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setTotal
(
sOrderList
.
size
());
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
Integer
pageNum
=
pageDomain
.
getPageNum
();
Integer
pageSize
=
pageDomain
.
getPageSize
();
int
start
=
(
pageNum
-
1
)
*
pageSize
;
int
end
=
Math
.
min
(
start
+
pageSize
,
sOrderVos
.
size
());
List
<
SOrderVo
>
pagedList
=
sOrderVos
.
subList
(
start
,
end
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setRows
(
pagedList
);
tableDataInfo
.
setTotal
(
sOrderVos
.
size
());
int
end
=
Math
.
min
(
start
+
pageSize
,
sOrderList
.
size
());
List
<
SOrder
>
pagedList
=
sOrderList
.
subList
(
start
,
end
);
List
<
SOrderVo
>
sOrderVos
=
convertDosToVos
(
pagedList
);
// List<SStore> list = storeService.list();
// List<SRoom> list1 = roomService.list();
// sOrderVos.stream().forEach(vo -> {
// vo.setRoomName(list1.stream().filter(room -> room.getId().equals(vo.getRoomId())).findFirst().get().getName());
// vo.setStoreName(list.stream().filter(store -> store.getId().equals(vo.getStoreId())).findFirst().get().getName());
// });
tableDataInfo
.
setRows
(
sOrderVos
);
tableDataInfo
.
setCode
(
200
);
tableDataInfo
.
setMsg
(
"查询成功"
);
return
tableDataInfo
;
...
...
@@ -991,12 +992,10 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
response
.
setOrderNo
(
sOrder
.
getOrderNo
());
sOrder
.
setPayStatus
(
YesNoEnum
.
yes
.
getIndex
());
sOrder
.
setPayTime
(
DateUtils
.
getNowDate
());
if
(
ObjectUtils
.
isEmpty
(
request
.
getMonthlyCardId
())
&&
ObjectUtils
.
isEmpty
(
request
.
getSecondaryCardId
()))
{
creatExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
}
else
{
if
(!
ObjectUtils
.
isEmpty
(
request
.
getMonthlyCardId
())
||
!
ObjectUtils
.
isEmpty
(
request
.
getSecondaryCardId
()))
{
creatExtracted
(
consumerMonthlyCard
,
sOrder
,
consumerSecondaryCard
);
}
creatExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
}
else
{
// response = orderPayService.payment(sOrder);
// 扫呗聚合支付
...
...
@@ -1132,7 +1131,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
private
void
creatExtracted
(
ConsumerWallet
consumerWallet
,
SOrder
sOrder
,
ConsumerMember
consumerMember
)
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerWallet
))
{
if
(
ObjectUtil
.
isNotEmpty
(
sOrder
.
getDuration
())
&&
sOrder
.
getDuration
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
ObjectUtil
.
isNotEmpty
(
sOrder
.
getDuration
())
&&
sOrder
.
getDuration
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
&&
ObjectUtil
.
isEmpty
(
sOrder
.
getMonthlyCardId
())
)
{
DurationLog
durationLog
=
new
DurationLog
();
durationLog
.
setConsumerId
(
sOrder
.
getConsumerId
());
durationLog
.
setVariableDuration
(
sOrder
.
getDuration
());
...
...
@@ -1357,7 +1356,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
private
void
refundExtracted
(
ConsumerWallet
consumerWallet
,
SOrder
sOrder
,
ConsumerMember
consumerMember
)
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerWallet
))
{
if
(
ObjectUtil
.
isNotEmpty
(
sOrder
.
getDuration
())
&&
sOrder
.
getDuration
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
ObjectUtil
.
isNotEmpty
(
sOrder
.
getDuration
())
&&
sOrder
.
getDuration
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
&&
ObjectUtil
.
isEmpty
(
sOrder
.
getMonthlyCardId
())
)
{
DurationLog
durationLog
=
new
DurationLog
();
durationLog
.
setConsumerId
(
sOrder
.
getConsumerId
());
durationLog
.
setVariableDuration
(
sOrder
.
getDuration
());
...
...
@@ -1574,19 +1573,23 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
private
void
refundExtracted
(
ConsumerMonthlyCard
consumerMonthlyCard
,
SOrder
sOrder
,
ConsumerSecondaryCard
consumerSecondaryCard
)
{
if
(!
ObjectUtils
.
isEmpty
(
sOrder
.
getMonthlyCardId
())
&&
!
ObjectUtils
.
isEmpty
(
sOrder
.
getDuration
()))
{
consumerMonthlyCard
.
setFreeDuration
(
consumerMonthlyCard
.
getFreeDuration
().
add
(
sOrder
.
getDuration
()));
MonthlyCardLog
monthlyCardLog
=
new
MonthlyCardLog
();
monthlyCardLog
.
setConsumerMonthlyCardId
(
sOrder
.
getMonthlyCardId
());
monthlyCardLog
.
setConsumerId
(
consumerMonthlyCard
.
getConsumerId
());
monthlyCardLog
.
setPhone
(
sOrder
.
getConsumerPhone
());
monthlyCardLog
.
setUseDuration
(
sOrder
.
getDuration
());
monthlyCardLog
.
setResidueDuration
(
consumerMonthlyCard
.
getFreeDuration
());
monthlyCardLog
.
setOperationType
(
YesNoEnum
.
yes
.
getIndex
());
monthlyCardLog
.
setOperationTime
(
new
Date
());
monthlyCardLog
.
setCreateTime
(
new
Date
());
consumerMonthlyCardService
.
updateById
(
consumerMonthlyCard
);
monthlyCardLogService
.
save
(
monthlyCardLog
);
//判断订单的下单时间是否是当前天
LocalDate
localDate1
=
sOrder
.
getCreateTime
().
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
LocalDate
localDate2
=
new
Date
().
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
if
(
localDate1
.
equals
(
localDate2
))
{
consumerMonthlyCard
.
setFreeDuration
(
consumerMonthlyCard
.
getFreeDuration
().
add
(
sOrder
.
getDuration
()));
MonthlyCardLog
monthlyCardLog
=
new
MonthlyCardLog
();
monthlyCardLog
.
setConsumerMonthlyCardId
(
sOrder
.
getMonthlyCardId
());
monthlyCardLog
.
setConsumerId
(
consumerMonthlyCard
.
getConsumerId
());
monthlyCardLog
.
setPhone
(
sOrder
.
getConsumerPhone
());
monthlyCardLog
.
setUseDuration
(
sOrder
.
getDuration
());
monthlyCardLog
.
setResidueDuration
(
consumerMonthlyCard
.
getFreeDuration
());
monthlyCardLog
.
setOperationType
(
YesNoEnum
.
yes
.
getIndex
());
monthlyCardLog
.
setOperationTime
(
new
Date
());
monthlyCardLog
.
setCreateTime
(
new
Date
());
consumerMonthlyCardService
.
updateById
(
consumerMonthlyCard
);
monthlyCardLogService
.
save
(
monthlyCardLog
);
}
}
if
(!
ObjectUtils
.
isEmpty
(
sOrder
.
getSecondaryCardId
()))
{
consumerSecondaryCard
.
setNumber
(
consumerSecondaryCard
.
getNumber
()
+
1
);
...
...
@@ -2190,9 +2193,8 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
}
if
(!
ObjectUtils
.
isEmpty
(
sOrder
.
getMonthlyCardId
())
||
!
ObjectUtils
.
isEmpty
(
sOrder
.
getSecondaryCardId
()))
{
creatExtracted
(
consumerMonthlyCard
,
sOrder
,
consumerSecondaryCard
);
}
else
{
creatExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
}
creatExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
baseMapper
.
updateSOrder
(
sOrder
);
unLockOrder
(
sOrder
.
getRoomId
());
if
(
sOrder
.
getOrderType
().
equals
(
OrderTypeEnum
.
RENEW
.
getCode
()))
{
...
...
@@ -2348,9 +2350,9 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
}
if
(!
ObjectUtils
.
isEmpty
(
sOrder
.
getMonthlyCardId
())
||
!
ObjectUtils
.
isEmpty
(
sOrder
.
getSecondaryCardId
()))
{
refundExtracted
(
consumerMonthlyCard
,
sOrder
,
consumerSecondaryCard
);
}
else
{
refundExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
}
refundExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -2379,9 +2381,8 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
updateById
(
sOrder
);
if
(!
ObjectUtils
.
isEmpty
(
sOrder
.
getMonthlyCardId
())
||
!
ObjectUtils
.
isEmpty
(
sOrder
.
getSecondaryCardId
()))
{
refundExtracted
(
consumerMonthlyCard
,
sOrder
,
consumerSecondaryCard
);
}
else
{
refundExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
}
refundExtracted
(
consumerWallet
,
sOrder
,
consumerMember
);
//微信退款
// if (sOrder.getPayType().equals(PayTypeEnum.WECHAT.getCode()) && request.getAmount().compareTo(BigDecimal.ZERO) == 0) {
// 退款task, 定时任务退优惠券
...
...
@@ -2435,6 +2436,24 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
Set
<
Long
>
roomIds
=
orderList
.
stream
().
map
(
SOrder:
:
getRoomId
).
distinct
().
collect
(
Collectors
.
toSet
());
Set
<
Long
>
couponIds
=
orderList
.
stream
().
map
(
SOrder:
:
getCouponId
).
distinct
().
collect
(
Collectors
.
toSet
());
Set
<
Long
>
packIds
=
orderList
.
stream
().
map
(
SOrder:
:
getPackId
).
distinct
().
collect
(
Collectors
.
toSet
());
Set
<
Long
>
secondaryCardIds
=
orderList
.
stream
().
map
(
SOrder:
:
getSecondaryCardId
).
distinct
().
collect
(
Collectors
.
toSet
());
Set
<
Long
>
monthlyCardIds
=
orderList
.
stream
().
map
(
SOrder:
:
getMonthlyCardId
).
distinct
().
collect
(
Collectors
.
toSet
());
Map
<
Long
,
ConsumerSecondaryCard
>
secondaryCardMap
;
if
(!
secondaryCardIds
.
isEmpty
())
{
List
<
ConsumerSecondaryCard
>
consumerSecondaryCardVos
=
consumerSecondaryCardService
.
confNameByIds
(
new
ArrayList
<>(
secondaryCardIds
));
secondaryCardMap
=
consumerSecondaryCardVos
.
stream
().
collect
(
Collectors
.
toMap
(
ConsumerSecondaryCard:
:
getId
,
s
->
s
));
}
else
{
secondaryCardMap
=
new
HashMap
<>();
}
Map
<
Long
,
ConsumerMonthlyCard
>
monthlyCardMap
;
if
(!
monthlyCardIds
.
isEmpty
())
{
List
<
ConsumerMonthlyCard
>
consumerMonthlyCards
=
consumerMonthlyCardService
.
confNameByIds
(
new
ArrayList
<>(
monthlyCardIds
));
monthlyCardMap
=
consumerMonthlyCards
.
stream
().
collect
(
Collectors
.
toMap
(
ConsumerMonthlyCard:
:
getId
,
s
->
s
));
}
else
{
monthlyCardMap
=
new
HashMap
<>();
}
Map
<
Long
,
SStore
>
storeMap
;
if
(!
storeIds
.
isEmpty
())
{
...
...
@@ -2446,7 +2465,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
Map
<
Long
,
SRoom
>
roomMap
;
if
(!
roomIds
.
isEmpty
())
{
List
<
SRoom
>
rooms
=
roomService
.
store
NameByIds
(
new
ArrayList
<>(
roomIds
));
List
<
SRoom
>
rooms
=
roomService
.
room
NameByIds
(
new
ArrayList
<>(
roomIds
));
roomMap
=
rooms
.
stream
().
collect
(
Collectors
.
toMap
(
SRoom:
:
getId
,
s
->
s
));
}
else
{
roomMap
=
new
HashMap
<>();
...
...
@@ -2454,7 +2473,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
Map
<
Long
,
SConsumerCoupon
>
couponMap
;
if
(!
couponIds
.
isEmpty
())
{
List
<
SConsumerCoupon
>
coupons
=
consumerCouponService
.
store
NameByIds
(
new
ArrayList
<>(
couponIds
));
List
<
SConsumerCoupon
>
coupons
=
consumerCouponService
.
coupon
NameByIds
(
new
ArrayList
<>(
couponIds
));
couponMap
=
coupons
.
stream
().
collect
(
Collectors
.
toMap
(
SConsumerCoupon:
:
getId
,
s
->
s
));
}
else
{
couponMap
=
new
HashMap
<>();
...
...
@@ -2462,7 +2481,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
Map
<
Long
,
SPack
>
packMap
;
if
(!
packIds
.
isEmpty
())
{
List
<
SPack
>
packs
=
packService
.
store
NameByIds
(
new
ArrayList
<>(
packIds
));
List
<
SPack
>
packs
=
packService
.
pack
NameByIds
(
new
ArrayList
<>(
packIds
));
packMap
=
packs
.
stream
().
collect
(
Collectors
.
toMap
(
SPack:
:
getId
,
s
->
s
));
}
else
{
packMap
=
new
HashMap
<>();
...
...
@@ -2476,6 +2495,16 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
vo
.
setStoreName
(
store
.
getName
());
vo
.
setAddress
(
store
.
getAddress
());
}
ConsumerSecondaryCard
consumerSecondaryCard
=
secondaryCardMap
.
get
(
vo
.
getSecondaryCardId
());
if
(
consumerSecondaryCard
!=
null
)
{
vo
.
setSecondaryCardName
(
consumerSecondaryCard
.
getConfName
());
vo
.
setSecondaryCardAmount
(
consumerSecondaryCard
.
getConfAmount
());
}
ConsumerMonthlyCard
consumerMonthlyCard
=
monthlyCardMap
.
get
(
vo
.
getMonthlyCardId
());
if
(
consumerMonthlyCard
!=
null
)
{
vo
.
setMonthlyCardName
(
consumerMonthlyCard
.
getConfName
());
vo
.
setMonthlyCardAmount
(
consumerMonthlyCard
.
getConfAmount
());
}
SRoom
room
=
roomMap
.
get
(
vo
.
getRoomId
());
if
(
room
!=
null
)
{
vo
.
setRoomName
(
room
.
getName
());
...
...
@@ -2720,7 +2749,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
request
.
setBuyType
(
BuyTypeEnum
.
TIME
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
totalPrice
,
room
,
consumerMember
);
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
payPrice
,
room
,
consumerMember
,
consumerWallet
);
}
else
if
(
ObjectUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
totalFee
=
getBigDecimal
(
consumerSecondaryCard
,
priceResponse
,
payPrice
,
timeLong
,
room
);
}
else
{
...
...
@@ -2744,7 +2773,9 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setTotalFeeNow
(
payPrice
);
request
.
setBuyType
(
BuyTypeEnum
.
PACK
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
payPrice
,
room
,
consumerMember
,
consumerWallet
);
}
else
if
(
ObjectUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
totalFee
=
getBigDecimal
(
consumerSecondaryCard
,
priceResponse
,
byId
,
payPrice
);
}
else
{
queryWrapper
.
eq
(
Activity:
:
getLabelId
,
roomLabel
.
getLabelId
());
...
...
@@ -2771,7 +2802,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
request
.
setBuyType
(
BuyTypeEnum
.
TIME
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
totalPrice
,
room
,
consumerMember
);
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
payPrice
,
room
,
consumerMember
,
consumerWallet
);
}
else
if
(
ObjectUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
totalFee
=
getBigDecimal
(
consumerSecondaryCard
,
priceResponse
,
payPrice
,
timeLong
,
room
);
}
else
{
...
...
@@ -2796,7 +2827,9 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setTotalFeeNow
(
payPrice
);
request
.
setBuyType
(
BuyTypeEnum
.
PACK
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
payPrice
,
room
,
consumerMember
,
consumerWallet
);
}
else
if
(
ObjectUtil
.
isNotEmpty
(
consumerSecondaryCard
))
{
totalFee
=
getBigDecimal
(
consumerSecondaryCard
,
priceResponse
,
byId
,
payPrice
);
}
else
{
queryWrapper
.
eq
(
Activity:
:
getPackId
,
request
.
getPackId
());
...
...
@@ -3142,32 +3175,45 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
}
private
BigDecimal
getBigDecimal
(
ConsumerMonthlyCard
consumerMonthlyCard
,
BigDecimal
timeLong
,
ComputedOrderPriceResponse
priceResponse
,
BigDecimal
totalFee
,
SRoom
room
,
ConsumerMember
consumerMember
)
{
ComputedOrderPriceResponse
priceResponse
,
BigDecimal
totalFee
,
SRoom
room
,
ConsumerMember
consumerMember
,
ConsumerWallet
consumerWallet
)
{
MemberConfig
memberConfig
=
memberConfigService
.
getOne
(
new
LambdaQueryWrapper
<
MemberConfig
>().
eq
(
MemberConfig:
:
getMembershipLevel
,
consumerMember
.
getMembershipLevel
()));
priceResponse
.
setDiscountRatio
(
memberConfig
.
getDiscountRatio
());
priceResponse
.
setDiscount
(
memberConfig
.
getDiscountRatio
());
priceResponse
.
setTotalFee
(
totalFee
);
priceResponse
.
setAvailableDuration
(
consumerMonthlyCard
.
getFreeDuration
());
if
(
consumerMonthlyCard
.
getFreeDuration
().
compareTo
(
timeLong
)
>=
0
)
{
priceResponse
.
setDuration
(
timeLong
);
priceResponse
.
setRemainingDuration
(
consumerMonthlyCard
.
getFreeDuration
().
subtract
(
timeLong
));
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
totalFee
=
new
BigDecimal
(
0
);
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setMemberDiscount
(
new
BigDecimal
(
0.00
));
priceResponse
.
setTotalFeeNow
(
priceResponse
.
getTotalFee
());
priceResponse
.
setPayFee
(
BigDecimal
.
ZERO
);
priceResponse
.
setMonthlyCardId
(
consumerMonthlyCard
.
getId
());
priceResponse
.
setPayFee
(
BigDecimal
.
ZERO
);
}
else
if
(
consumerMonthlyCard
.
getFreeDuration
().
compareTo
(
timeLong
)
<
0
)
{
priceResponse
.
setDuration
(
consumerMonthlyCard
.
getFreeDuration
());
priceResponse
.
setRemainingDuration
(
new
BigDecimal
(
0
));
//时长的金额
BigDecimal
remainingBalance
=
consumerMonthlyCard
.
getFreeDuration
().
multiply
(
room
.
getPrice
());
//恢复原价
// totalFee = totalFee.divide(memberConfig.getDiscountRatio(), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
//原价减时长
remainingBalance
=
totalFee
.
subtract
(
remainingBalance
);
priceResponse
.
setTotalFeeNow
(
remainingBalance
);
priceResponse
.
setMemberDiscount
(
totalFee
.
subtract
(
remainingBalance
));
totalFee
=
remainingBalance
.
multiply
(
memberConfig
.
getDiscountRatio
()).
divide
(
new
BigDecimal
(
100
));
priceResponse
.
setTotalFeeNow
(
totalFee
);
BigDecimal
divide
=
remainingBalance
;
divide
=
divide
.
multiply
(
memberConfig
.
getDiscountRatio
()).
divide
(
new
BigDecimal
(
100
));
priceResponse
.
setTotalFeeNow
(
divide
);
priceResponse
.
setPayFee
(
remainingBalance
);
priceResponse
.
setMonthlyCardId
(
consumerMonthlyCard
.
getId
());
priceResponse
.
setMemberDiscount
(
remainingBalance
.
subtract
(
totalFee
));
priceResponse
.
setMemberDiscount
(
remainingBalance
.
subtract
(
divide
));
if
(
consumerWallet
.
getBalance
().
compareTo
(
divide
)
>=
0
)
{
priceResponse
.
setBalance
(
divide
);
priceResponse
.
setRemainingBalance
(
consumerWallet
.
getBalance
().
subtract
(
divide
));
totalFee
=
new
BigDecimal
(
0
);
}
else
if
(
consumerWallet
.
getBalance
().
compareTo
(
divide
)
<
0
)
{
priceResponse
.
setBalance
(
consumerWallet
.
getBalance
());
priceResponse
.
setRemainingBalance
(
BigDecimal
.
ZERO
);
totalFee
=
divide
.
subtract
(
consumerWallet
.
getBalance
());
}
}
return
totalFee
;
}
...
...
@@ -3177,7 +3223,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
if
(
consumerSecondaryCard
.
getSingleDuration
()
>=
Integer
.
valueOf
(
byId
.
getDuration
())
&&
consumerSecondaryCard
.
getSingleAmount
().
compareTo
(
byId
.
getPrice
())
>=
0
)
{
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setMemberDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setTotalFeeNow
(
BigDecimal
.
ZERO
);
//
priceResponse.setTotalFeeNow(BigDecimal.ZERO);
priceResponse
.
setPayFee
(
BigDecimal
.
ZERO
);
priceResponse
.
setSecondaryCardId
(
consumerSecondaryCard
.
getId
());
payPrice
=
BigDecimal
.
ZERO
;
...
...
@@ -3191,7 +3237,7 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
if
(
bigDecimal
.
compareTo
(
timeLong
)
==
0
&&
consumerSecondaryCard
.
getSingleAmount
().
compareTo
(
timeLong
.
multiply
(
room
.
getPrice
()))
>=
0
)
{
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setMemberDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setTotalFeeNow
(
BigDecimal
.
ZERO
);
priceResponse
.
setTotalFeeNow
(
payPrice
);
priceResponse
.
setPayFee
(
BigDecimal
.
ZERO
);
priceResponse
.
setSecondaryCardId
(
consumerSecondaryCard
.
getId
());
payPrice
=
BigDecimal
.
ZERO
;
...
...
share-system/src/main/java/share/system/service/impl/SRoomServiceImpl.java
View file @
f93ea65e
...
...
@@ -7,6 +7,9 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
share.common.core.page.PageDomain
;
import
share.common.core.page.TableDataInfo
;
import
share.common.core.page.TableSupport
;
import
share.common.enums.*
;
import
share.common.exception.base.BaseException
;
import
share.common.utils.DateUtils
;
...
...
@@ -81,11 +84,19 @@ public class SRoomServiceImpl extends ServiceImpl<SRoomMapper, SRoom> implements
return
new
ArrayList
<>();
}
List
<
Long
>
storeIds
=
roomList
.
stream
().
map
(
SRoom:
:
getStoreId
).
collect
(
Collectors
.
toList
());
List
<
Long
>
roomIds
=
roomList
.
stream
().
map
(
SRoom:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
Map
>
storeList
=
sStoreService
.
optionList
(
storeIds
);
List
<
SRoomPack
>
list
=
roomPackService
.
list
(
new
LambdaQueryWrapper
<
SRoomPack
>().
in
(
SRoomPack:
:
getRoomId
,
roomIds
));
Map
<
Long
,
List
<
Long
>>
listMap
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
SRoomPack:
:
getRoomId
,
Collectors
.
mapping
(
SRoomPack:
:
getPackId
,
Collectors
.
toList
())));
List
<
SPack
>
packList
=
packService
.
list
(
new
LambdaQueryWrapper
<
SPack
>().
eq
(
SPack:
:
getType
,
YesNoEnum
.
yes
.
getIndex
()));
Map
<
Long
,
List
<
SPack
>>
packMap
=
new
HashMap
<>();
//循环listMap
for
(
Map
.
Entry
<
Long
,
List
<
Long
>>
entry
:
listMap
.
entrySet
())
{
packMap
.
put
(
entry
.
getKey
(),
packList
.
stream
().
filter
(
o
->
entry
.
getValue
().
contains
(
o
.
getId
())).
collect
(
Collectors
.
toList
()));
}
roomList
.
forEach
(
o
->
{
List
<
Long
>
roomId
=
roomPackService
.
selectPackListByRoomId
(
o
.
getId
());
o
.
setPackIds
(
roomId
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
)));
o
.
setPackList
(
packService
.
selectPackListByIds
(
roomId
));
o
.
setPackIds
(
CollectionUtils
.
isNotEmpty
(
listMap
.
get
(
o
.
getId
()))
?
listMap
.
get
(
o
.
getId
()).
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
))
:
""
);
o
.
setPackList
(
CollectionUtils
.
isNotEmpty
(
packMap
.
get
(
o
.
getId
()))
?
packMap
.
get
(
o
.
getId
())
:
new
ArrayList
<>());
storeList
.
stream
().
forEach
(
store
->
{
if
(
o
.
getStoreId
().
compareTo
(
Long
.
parseLong
(
store
.
get
(
"id"
).
toString
()))
==
0
)
{
o
.
setStoreName
(
store
.
getOrDefault
(
"name"
,
""
).
toString
());
...
...
@@ -476,7 +487,7 @@ public class SRoomServiceImpl extends ServiceImpl<SRoomMapper, SRoom> implements
}
@Override
public
List
<
SRoom
>
store
NameByIds
(
List
<
Long
>
longs
)
{
public
List
<
SRoom
>
room
NameByIds
(
List
<
Long
>
longs
)
{
LambdaQueryWrapper
<
SRoom
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
SRoom:
:
getId
,
SRoom:
:
getName
,
SRoom:
:
getImages
,
SRoom:
:
getRoomType
);
if
(
CollectionUtils
.
isNotEmpty
(
longs
))
{
...
...
@@ -485,4 +496,41 @@ public class SRoomServiceImpl extends ServiceImpl<SRoomMapper, SRoom> implements
return
this
.
list
(
queryWrapper
);
}
@Override
public
TableDataInfo
pageList
(
SRoom
sRoom
)
{
List
<
SRoom
>
roomList
=
baseMapper
.
selectSRoomList
(
sRoom
);
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setTotal
(
roomList
.
size
());
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
Integer
pageNum
=
pageDomain
.
getPageNum
();
Integer
pageSize
=
pageDomain
.
getPageSize
();
int
start
=
(
pageNum
-
1
)
*
pageSize
;
int
end
=
Math
.
min
(
start
+
pageSize
,
roomList
.
size
());
List
<
SRoom
>
pagedList
=
roomList
.
subList
(
start
,
end
);
List
<
Long
>
storeIds
=
pagedList
.
stream
().
map
(
SRoom:
:
getStoreId
).
collect
(
Collectors
.
toList
());
List
<
Long
>
roomIds
=
pagedList
.
stream
().
map
(
SRoom:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
Map
>
storeList
=
sStoreService
.
optionList
(
storeIds
);
List
<
SRoomPack
>
list
=
roomPackService
.
list
(
new
LambdaQueryWrapper
<
SRoomPack
>().
in
(
SRoomPack:
:
getRoomId
,
roomIds
));
Map
<
Long
,
List
<
Long
>>
listMap
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
SRoomPack:
:
getRoomId
,
Collectors
.
mapping
(
SRoomPack:
:
getPackId
,
Collectors
.
toList
())));
List
<
SPack
>
packList
=
packService
.
list
(
new
LambdaQueryWrapper
<
SPack
>().
eq
(
SPack:
:
getType
,
YesNoEnum
.
yes
.
getIndex
()));
Map
<
Long
,
List
<
SPack
>>
packMap
=
new
HashMap
<>();
//循环listMap
for
(
Map
.
Entry
<
Long
,
List
<
Long
>>
entry
:
listMap
.
entrySet
())
{
packMap
.
put
(
entry
.
getKey
(),
packList
.
stream
().
filter
(
o
->
entry
.
getValue
().
contains
(
o
.
getId
())).
collect
(
Collectors
.
toList
()));
}
roomList
.
forEach
(
o
->
{
o
.
setPackIds
(
CollectionUtils
.
isNotEmpty
(
listMap
.
get
(
o
.
getId
()))
?
listMap
.
get
(
o
.
getId
()).
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
))
:
""
);
o
.
setPackList
(
CollectionUtils
.
isNotEmpty
(
packMap
.
get
(
o
.
getId
()))
?
packMap
.
get
(
o
.
getId
())
:
new
ArrayList
<>());
storeList
.
stream
().
forEach
(
store
->
{
if
(
o
.
getStoreId
().
compareTo
(
Long
.
parseLong
(
store
.
get
(
"id"
).
toString
()))
==
0
)
{
o
.
setStoreName
(
store
.
getOrDefault
(
"name"
,
""
).
toString
());
}
});
});
tableDataInfo
.
setRows
(
pagedList
);
tableDataInfo
.
setCode
(
200
);
tableDataInfo
.
setMsg
(
"查询成功"
);
return
tableDataInfo
;
}
}
share-system/src/main/java/share/system/service/impl/SStoreServiceImpl.java
View file @
f93ea65e
...
...
@@ -285,7 +285,7 @@ public class SStoreServiceImpl extends ServiceImpl<SStoreMapper, SStore> impleme
LambdaQueryWrapper
<
SStore
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
ne
(
SStore:
:
getStatus
,
StoreStatusEnum
.
STOP
.
getIndex
());
if
(
StringUtils
.
isNotEmpty
(
request
.
getName
()))
{
queryWrapper
.
eq
(
SStore:
:
getName
,
request
.
getName
());
queryWrapper
.
like
(
SStore:
:
getName
,
request
.
getName
());
}
List
<
SStore
>
storeList
=
baseMapper
.
selectList
(
queryWrapper
);
List
<
SStoreVo
>
voList
=
new
ArrayList
<>();
...
...
share-system/src/main/java/share/system/service/impl/SecondaryCardOrderServiceImpl.java
View file @
f93ea65e
...
...
@@ -165,6 +165,8 @@ public class SecondaryCardOrderServiceImpl extends ServiceImpl<SecondaryCardOrde
ConsumerSecondaryCard
consumerSecondaryCard
=
new
ConsumerSecondaryCard
();
SecondaryCardConf
secondaryCardConf
=
secondaryCardConfService
.
getById
(
secondaryCardOrder
.
getSecondaryCardConfId
());
consumerSecondaryCard
.
setSecondaryCardConfId
(
secondaryCardOrder
.
getSecondaryCardConfId
());
consumerSecondaryCard
.
setConfName
(
secondaryCardConf
.
getName
());
consumerSecondaryCard
.
setConfAmount
(
secondaryCardConf
.
getSecondaryCardAmount
());
consumerSecondaryCard
.
setConsumerId
(
secondaryCardOrder
.
getConsumerId
());
consumerSecondaryCard
.
setPhone
(
secondaryCardOrder
.
getPhone
());
consumerSecondaryCard
.
setSingleAmount
(
secondaryCardConf
.
getSingleAmount
());
...
...
share-system/src/main/resources/mapper/system/ConsumerMonthlyCardMapper.xml
View file @
f93ea65e
...
...
@@ -27,6 +27,8 @@
<sql
id=
"selectConsumerMonthlyCardVo"
>
select id,
monthly_card_conf_id,
conf_name,
conf_amount,
consumer_id,
phone,
free_duration,
...
...
@@ -45,8 +47,8 @@
resultMap=
"ConsumerMonthlyCardResult"
>
select c.id,
c.monthly_card_conf_id,
c
1.name as 'conf_name'
,
c
1.monthly_card_amount as 'conf_amount'
,
c
.conf_name
,
c
.conf_amount
,
c.consumer_id,
c2.nick_name,
c2.avatar,
...
...
@@ -60,7 +62,7 @@
c.update_by,
c.update_time,
c.remark
from s_consumer_monthly_card c
join s_monthly_card_conf c1 on c.monthly_card_conf_id = c1.id
from s_consumer_monthly_card c
join s_consumer c2 on c.consumer_id = c2.id
where c.is_delete = 0
<if
test=
"monthlyCardConfId != null "
>
and c.monthly_card_conf_id = #{monthlyCardConfId}
</if>
...
...
@@ -78,7 +80,8 @@
<select
id=
"selectByConsumerId"
resultMap=
"ConsumerMonthlyCardResult"
>
select c.id,
c.monthly_card_conf_id,
c1.name as 'conf_name', c1.monthly_card_amount as 'conf_amount',
c.conf_name,
c.conf_amount,
c.consumer_id,
c2.nick_name,
c2.avatar,
...
...
@@ -94,7 +97,6 @@
c.remark
from s_consumer_monthly_card c
join s_consumer c2 on c.consumer_id = c2.id
join s_monthly_card_conf c1 on c.monthly_card_conf_id = c1.id
where c.is_delete = 0
and c.consumer_id = #{consumerId}
</select>
...
...
share-system/src/main/resources/mapper/system/ConsumerSecondaryCardMapper.xml
View file @
f93ea65e
...
...
@@ -28,6 +28,8 @@
<sql
id=
"selectConsumerSecondaryCardVo"
>
select id,
secondary_card_conf_id,
conf_name,
conf_amount,
consumer_id,
phone,
single_duration,
...
...
@@ -51,8 +53,8 @@
c.phone,
m.nick_name,
m.avatar,
c
2.name as 'conf_name'
,
c
2.secondary_card_amount as 'conf_amount'
,
c
.conf_name
,
c
.conf_amount
,
c.single_duration,
c.single_amount,
c.expiration_date,
...
...
@@ -64,7 +66,6 @@
c.update_time,
c. remark
from s_consumer_secondary_card c join s_consumer m on c.consumer_id = m.id
join s_secondary_card_conf c2 on c.secondary_card_conf_id = c2.id
where
c.is_delete = 0
<if
test=
"secondaryCardConfId != null "
>
and c.secondary_card_conf_id = #{secondaryCardConfId}
</if>
...
...
@@ -87,7 +88,8 @@
c.phone,
m.nick_name,
m.avatar,
s.name as 'conf_name', s.secondary_card_amount as 'conf_amount',
c.conf_name,
c.conf_amount,
c.single_duration,
c.single_amount,
c.expiration_date,
...
...
@@ -100,8 +102,8 @@
c.remark
from s_consumer_secondary_card c
join s_consumer m on c.consumer_id = m.id
join s_secondary_card_conf s on c.secondary_card_conf_id = s.id
where c.is_delete = 0
and c.number > 0
and c.consumer_id = #{consumerId}
</select>
...
...
share-system/src/main/resources/mapper/system/DeviceLogMapper.xml
View file @
f93ea65e
...
...
@@ -22,6 +22,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result
property=
"description"
column=
"description"
/>
<result
property=
"afreshNum"
column=
"afresh_num"
/>
<result
property=
"source"
column=
"source"
/>
<result
property=
"roomName"
column=
"room_name"
/>
<result
property=
"storeName"
column=
"store_name"
/>
</resultMap>
<sql
id=
"selectDeviceLogVo"
>
...
...
@@ -40,6 +42,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
t1.dev_mac,
t1.dev_id,
t1.seq,
t3.name as 'room_name',
t4.name as 'store_name',
t1.mqtt_type,
t1.mqtt_describe,
t1.payload,
...
...
share-system/src/main/resources/mapper/system/DurationLogMapper.xml
View file @
f93ea65e
...
...
@@ -21,6 +21,10 @@
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"durationType"
column=
"duration_type"
/>
<result
property=
"newNickName"
column=
"new_nick_name"
/>
<result
property=
"newPhone"
column=
"new_phone"
/>
<result
property=
"newAvatar"
column=
"new_avatar"
/>
<result
property=
"newId"
column=
"new_id"
/>
</resultMap>
<sql
id=
"selectDurationLogVo"
>
...
...
@@ -56,8 +60,13 @@
d.update_by,
d.update_time,
d.remark,
d.duration_type
d.duration_type,
e.nick_name as new_nick_name,
e.phone as new_phone,
e.avatar as new_avatar,
e.id as new_id
from s_duration_log d join s_consumer c on d.consumer_id = c.id
left join s_consumer e on d.new_id = e.id
<where>
<if
test=
"nickName != null and nickName != ''"
>
and c.nick_name like concat('%', #{nickName},'%')
</if>
...
...
share-system/src/main/resources/mapper/system/MonthlyCardLogMapper.xml
View file @
f93ea65e
...
...
@@ -71,7 +71,7 @@
<if
test=
"phone != null and phone != ''"
>
and l.phone = #{phone}
</if>
<if
test=
"useDuration != null "
>
and l.use_duration = #{useDuration}
</if>
<if
test=
"residueDuration != null "
>
and l.residue_duration = #{residueDuration}
</if>
order by l.create_time
order by l.create_time
desc
</select>
<select
id=
"selectMonthlyCardLogById"
parameterType=
"Long"
resultMap=
"MonthlyCardLogResult"
>
...
...
share-system/src/main/resources/mapper/system/MonthlyCardOrderMapper.xml
View file @
f93ea65e
...
...
@@ -98,6 +98,7 @@
<if
test=
"endDate != null"
>
and DATE_FORMAT(o.create_time, '%Y-%m-%d')
<
= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
</if>
order by o.create_time desc
</select>
<select
id=
"selectMonthlyCardOrderById"
parameterType=
"Long"
resultMap=
"MonthlyCardOrderResult"
>
...
...
share-system/src/main/resources/mapper/system/SecondaryCardOrderMapper.xml
View file @
f93ea65e
...
...
@@ -97,6 +97,7 @@
<if
test=
"endDate != null"
>
and DATE_FORMAT(o.create_time, '%Y-%m-%d')
<
= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
</if>
order by o.create_time desc
</select>
<select
id=
"selectSecondaryCardOrderById"
parameterType=
"Long"
resultMap=
"SecondaryCardOrderResult"
>
...
...
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