Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gogirl-miniapp-backend
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
huluobin
gogirl-miniapp-backend
Commits
6ae2a580
Commit
6ae2a580
authored
Oct 11, 2021
by
liyanlin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更改预约逻辑:
1、下班前预约的,只要开始时间在下班前的,服务结束的时间没有超过最晚可预约时间,就可以约; 2、如果勾选了超出最晚可预约时间是否可约,那就是只要开始时间是下班前的,就都可约。
parent
2161c272
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
8 deletions
+65
-8
ScheduleManageServiceImpl.java
...plication/order/serve/impl/ScheduleManageServiceImpl.java
+34
-7
Period.java
src/main/java/com/gogirl/shared/order/Period.java
+9
-0
StoreTechnicianPeriod.java
...n/java/com/gogirl/shared/order/StoreTechnicianPeriod.java
+22
-1
No files found.
src/main/java/com/gogirl/application/order/serve/impl/ScheduleManageServiceImpl.java
View file @
6ae2a580
...
@@ -57,6 +57,7 @@ import org.springframework.stereotype.Service;
...
@@ -57,6 +57,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
...
@@ -164,15 +165,19 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
...
@@ -164,15 +165,19 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
periodList
.
add
(
period2
);
periodList
.
add
(
period2
);
/*5、如果开启了门店最晚预约时间,最晚可预约时间之后的时间不可用*/
/*5、下班前预约的,只要开始时间在下班前的,服务结束的时间没有超过最晚可预约时间,就可以约
if
(
StringUtils
.
isNotEmpty
(
latestScheduledTime
)
&&
storeClassesTechnician
.
getClassesManage
().
getLatestScheduledTimeEnable
()
==
1
)
{
如果勾选了超出最晚可预约时间是否可约,那就是只要开始时间是下班前的,就都可约
因此这里改为下班后不可约,下班前预约的做特殊时间段处理*/
Period
latestScheduledTimeMillsPeriod
=
new
Period
(
workEndTime
,
dayEndTime
);
periodList
.
add
(
latestScheduledTimeMillsPeriod
);
/*if (StringUtils.isNotEmpty(latestScheduledTime) && storeClassesTechnician.getClassesManage().getLatestScheduledTimeEnable() == 1) {
long latestScheduledTimeMills = simpleDateFormat.parse(day + " " + latestScheduledTime).getTime();
long latestScheduledTimeMills = simpleDateFormat.parse(day + " " + latestScheduledTime).getTime();
Period latestScheduledTimeMillsPeriod = new Period(latestScheduledTimeMills, dayEndTime);
Period latestScheduledTimeMillsPeriod = new Period(latestScheduledTimeMills, dayEndTime);
periodList.add(latestScheduledTimeMillsPeriod);
periodList.add(latestScheduledTimeMillsPeriod);
} else {
} else {
Period latestScheduledTimeMillsPeriod = new Period(workEndTime, dayEndTime);
Period latestScheduledTimeMillsPeriod = new Period(workEndTime, dayEndTime);
periodList.add(latestScheduledTimeMillsPeriod);
periodList.add(latestScheduledTimeMillsPeriod);
}
}
*/
/*6、上班开始时间之前的时间不可用*/
/*6、上班开始时间之前的时间不可用*/
Period
period3
=
new
Period
(
dayStartTime
,
workStartTime
);
Period
period3
=
new
Period
(
dayStartTime
,
workStartTime
);
...
@@ -202,7 +207,13 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
...
@@ -202,7 +207,13 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
}
/*9、构造返回值*/
/*9、构造返回值*/
StoreTechnicianPeriod
storeTechnicianDTO
=
new
StoreTechnicianPeriod
(
periodList
,
storeClassesTechnician
.
getTechnicianManage
());
//最晚可约时间
long
latestScheduledTimeMills
=
simpleDateFormat
.
parse
(
day
+
" "
+
latestScheduledTime
).
getTime
();
StoreTechnicianPeriod
storeTechnicianDTO
=
new
StoreTechnicianPeriod
(
periodList
,
storeClassesTechnician
.
getTechnicianManage
(),
latestScheduledTimeMills
,
storeClassesTechnician
.
getClassesManage
().
getLatestScheduledTimeEnable
(),
workEndTime
);
storeTechnicianPeriodList
.
add
(
storeTechnicianDTO
);
storeTechnicianPeriodList
.
add
(
storeTechnicianDTO
);
}
}
...
@@ -215,7 +226,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
...
@@ -215,7 +226,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
LocalDateTime
serveStartTime
,
LocalDateTime
serveStartTime
,
LocalDateTime
serveEndTime
)
throws
ParseException
{
LocalDateTime
serveEndTime
)
throws
ParseException
{
//查询店铺的美甲师和美甲师的可用时间
//查询店铺的美甲师和美甲师的可用时间
List
<
StoreTechnicianPeriod
>
storeTechnicianPeriodList
=
this
.
queryStoreTechnicianPeriod
(
null
,
departmentId
,
serveStartTime
.
toLocalDate
().
toString
(),
Lists
.
newArrayList
(
serveId
));
List
<
StoreTechnicianPeriod
>
storeTechnicianPeriodList
=
this
.
queryStoreTechnicianPeriod
(
null
,
departmentId
,
serveStartTime
.
toLocalDate
().
toString
(),
Lists
.
newArrayList
(
serveId
));
//服务占用的时间区间
//服务占用的时间区间
Period
servePeriod
=
new
Period
(
serveStartTime
.
toInstant
(
ZoneOffset
.
of
(
"+8"
)).
toEpochMilli
(),
serveEndTime
.
toInstant
(
ZoneOffset
.
of
(
"+8"
)).
toEpochMilli
());
Period
servePeriod
=
new
Period
(
serveStartTime
.
toInstant
(
ZoneOffset
.
of
(
"+8"
)).
toEpochMilli
(),
serveEndTime
.
toInstant
(
ZoneOffset
.
of
(
"+8"
)).
toEpochMilli
());
...
@@ -240,7 +254,11 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
...
@@ -240,7 +254,11 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
/*1、获取美甲师和美甲师不可用时间段*/
/*1、获取美甲师和美甲师不可用时间段*/
List
<
StoreTechnicianPeriod
>
storeTechnicianDTOList
=
this
.
queryStoreTechnicianPeriod
(
qry
.
getId
(),
qry
.
getDepartmentId
(),
qry
.
getScheduleDate
(),
qry
.
getListScheduleServer
().
stream
().
map
(
ScheduleServeQuery:
:
getServeId
).
collect
(
Collectors
.
toList
()));
List
<
StoreTechnicianPeriod
>
storeTechnicianDTOList
=
this
.
queryStoreTechnicianPeriod
(
qry
.
getId
(),
qry
.
getDepartmentId
(),
qry
.
getScheduleDate
(),
qry
.
getListScheduleServer
().
stream
().
map
(
ScheduleServeQuery:
:
getServeId
).
collect
(
Collectors
.
toList
())
);
/*2、迭代出所有需要返回的时间节点*/
/*2、迭代出所有需要返回的时间节点*/
if
(
ListUtil
.
isEmpty
(
qry
.
getDateTimeList
()))
{
if
(
ListUtil
.
isEmpty
(
qry
.
getDateTimeList
()))
{
...
@@ -490,7 +508,16 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
...
@@ -490,7 +508,16 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
ScheduleServeQuery
scheduleServeQuery
=
treeProgram
.
getScheduleServeQuery
();
ScheduleServeQuery
scheduleServeQuery
=
treeProgram
.
getScheduleServeQuery
();
for
(
Period
period
:
storeTechnician
.
getPeriodList
())
{
for
(
Period
period
:
storeTechnician
.
getPeriodList
())
{
if
(
period
.
conflict
(
scheduleServeQuery
.
getPeriod
()))
{
/*下班前预约的,只要开始时间在下班前的,服务结束的时间没有超过最晚可预约时间,就可以约
如果勾选了超出最晚可预约时间是否可约,那就是只要开始时间是下班前的,就都可约*/
if
(
period
.
in
(
storeTechnician
.
getWorkEndTime
()))
{
if
(
storeTechnician
.
getLatestScheduledTimeEnable
()
!=
1
&&
scheduleServeQuery
.
getPeriod
().
getEndTime
()
>
storeTechnician
.
getLatestScheduledTimeMills
())
{
//未勾选
bool
=
false
;
}
}
else
if
(
period
.
conflict
(
scheduleServeQuery
.
getPeriod
()))
{
bool
=
false
;
bool
=
false
;
}
}
}
}
...
...
src/main/java/com/gogirl/shared/order/Period.java
View file @
6ae2a580
...
@@ -35,11 +35,20 @@ public class Period implements Serializable {
...
@@ -35,11 +35,20 @@ public class Period implements Serializable {
return
period
.
getEndTime
()
>=
endTime
return
period
.
getEndTime
()
>=
endTime
&&
period
.
getStartTime
()
<=
startTime
;
&&
period
.
getStartTime
()
<=
startTime
;
}
}
public
boolean
in
(
long
datetime
)
{
return
datetime
>=
startTime
&&
datetime
<=
endTime
;
}
public
boolean
notIn
(
Period
period
)
{
public
boolean
notIn
(
Period
period
)
{
return
!
in
(
period
);
return
!
in
(
period
);
}
}
public
boolean
notIn
(
long
datetime
)
{
return
!
in
(
datetime
);
}
public
boolean
conflict
(
Period
period
)
{
public
boolean
conflict
(
Period
period
)
{
...
...
src/main/java/com/gogirl/shared/order/StoreTechnicianPeriod.java
View file @
6ae2a580
...
@@ -15,6 +15,24 @@ public class StoreTechnicianPeriod implements Serializable {
...
@@ -15,6 +15,24 @@ public class StoreTechnicianPeriod implements Serializable {
*/
*/
@JsonIgnore
@JsonIgnore
List
<
Period
>
periodList
;
List
<
Period
>
periodList
;
/**
* 最晚可约时间
*/
@JsonIgnore
long
latestScheduledTimeMills
;
/**
* 美甲师下班时间
*/
@JsonIgnore
long
workEndTime
;
/**
* 超过最晚时间是否可约
*/
@JsonIgnore
Integer
latestScheduledTimeEnable
;
/**
/**
* 美甲师id
* 美甲师id
*/
*/
...
@@ -43,13 +61,16 @@ public class StoreTechnicianPeriod implements Serializable {
...
@@ -43,13 +61,16 @@ public class StoreTechnicianPeriod implements Serializable {
}
}
public
StoreTechnicianPeriod
(
List
<
Period
>
periodList
,
StoreTechnician
storeTechnician
)
{
public
StoreTechnicianPeriod
(
List
<
Period
>
periodList
,
StoreTechnician
storeTechnician
,
long
latestScheduledTimeMills
,
Integer
latestScheduledTimeEnable
,
long
workEndTime
)
{
this
.
periodList
=
periodList
;
this
.
periodList
=
periodList
;
this
.
technicianId
=
storeTechnician
.
getId
();
this
.
technicianId
=
storeTechnician
.
getId
();
this
.
name
=
storeTechnician
.
getName
();
this
.
name
=
storeTechnician
.
getName
();
this
.
picturePath
=
storeTechnician
.
getPicturePath
();
this
.
picturePath
=
storeTechnician
.
getPicturePath
();
this
.
grade
=
storeTechnician
.
getGrade
();
this
.
grade
=
storeTechnician
.
getGrade
();
this
.
storeTechnician
=
storeTechnician
;
this
.
storeTechnician
=
storeTechnician
;
this
.
latestScheduledTimeMills
=
latestScheduledTimeMills
;
this
.
latestScheduledTimeEnable
=
latestScheduledTimeEnable
;
this
.
workEndTime
=
workEndTime
;
}
}
}
}
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