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
09a61ee5
Commit
09a61ee5
authored
Jun 30, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into 3.8
parents
36eab8ec
9928b9b3
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
84 additions
and
87 deletions
+84
-87
ScheduleManageService.java
...gogirl/application/order/serve/ScheduleManageService.java
+1
-1
ScheduleManageServiceImpl.java
...plication/order/serve/impl/ScheduleManageServiceImpl.java
+51
-76
CustomerServiceImpl.java
...l/application/user/customer/impl/CustomerServiceImpl.java
+7
-4
StoreTechnicianPeriod.java
...n/java/com/gogirl/shared/order/StoreTechnicianPeriod.java
+25
-6
No files found.
src/main/java/com/gogirl/application/order/serve/ScheduleManageService.java
View file @
09a61ee5
...
...
@@ -142,7 +142,7 @@ public interface ScheduleManageService extends IService<ScheduleManage> {
IPage
<
LeisureScheduleServeResp
>
queryPageLeisureScheduleServe
(
LeisureScheduleServeQuery
query
);
/**
* 查询美甲师不可用时间段
* 查询美甲师
信息和美甲师
不可用时间段
*
* @param scheduledId 是否必传 否
* @param departmentId 店铺id
...
...
src/main/java/com/gogirl/application/order/serve/impl/ScheduleManageServiceImpl.java
View file @
09a61ee5
...
...
@@ -62,7 +62,6 @@ import java.time.ZoneOffset;
import
java.util.*
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.ForkJoinPool
;
import
java.util.concurrent.atomic.AtomicLong
;
import
java.util.stream.Collectors
;
import
static
com
.
gogirl
.
domain
.
order
.
serve
.
OrderServe
.
COMMENT_STATUS_NO
;
...
...
@@ -108,74 +107,65 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
String
scheduleDate
,
List
<
Integer
>
serveIdList
)
throws
ParseException
{
/
/1.查询美甲师排班表
/
*1.查询美甲师排班*/
List
<
StoreClassesTechnician
>
storeClassesTechnicianList
=
storeClassesTechnicianService
.
listClassesTechnician
(
scheduledId
,
departmentId
,
scheduleDate
);
//过滤不能做服务的美甲师
if
(
ListUtil
.
isNotEmpty
(
serveIdList
))
{
//美甲师能做哪些服务config查询
List
<
TechnicianServe
>
technicianServeList
=
technicianServeMapper
.
selectList
(
new
LambdaQueryWrapper
<
TechnicianServe
>().
in
(
TechnicianServe:
:
getServeId
,
serveIdList
));
//过滤不能做服务的美甲师
storeClassesTechnicianList
=
storeClassesTechnicianList
.
stream
()
.
filter
(
storeClassesTechnician
->
technicianServeList
.
stream
().
map
(
TechnicianServe:
:
getTechnicianId
).
collect
(
Collectors
.
toList
())
.
contains
(
storeClassesTechnician
.
getTechnicianManage
().
getId
()))
.
collect
(
Collectors
.
toList
());
storeClassesTechnicianList
=
storeClassesTechnicianList
.
stream
().
filter
(
storeClassesTechnician
->
technicianServeList
.
stream
().
map
(
TechnicianServe:
:
getTechnicianId
).
collect
(
Collectors
.
toList
()).
contains
(
storeClassesTechnician
.
getTechnicianManage
().
getId
())).
collect
(
Collectors
.
toList
());
}
List
<
StoreTechnicianPeriod
>
storeTechnicianPeriodList
=
new
ArrayList
<>();
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
//遍历美甲师排班 获取每个美甲师的不可用时间段
for
(
StoreClassesTechnician
storeClassesTechnician
:
storeClassesTechnicianList
)
{
//一天开始的时间
long
dayStartTime
=
simpleDateFormat
.
parse
(
scheduleDate
+
" 00:00:00"
).
getTime
();
//一天结束的时间
long
dayEndTime
=
simpleDateFormat
.
parse
(
scheduleDate
+
" 23:59:59"
).
getTime
();
//遍历美甲师排班 获取每个美甲师的不可用时间段
for
(
StoreClassesTechnician
storeClassesTechnician
:
storeClassesTechnicianList
)
{
/*2、获取各个边界时间*/
//上班开始时间str
String
startTime
=
storeClassesTechnician
.
getClassesManage
().
getStartTime
().
toString
();
//上班结束时间str
String
endTime
=
storeClassesTechnician
.
getClassesManage
().
getEndTime
().
toString
();
//上班开始时间
long
workStartTime
=
simpleDateFormat
.
parse
(
scheduleDate
+
" "
+
startTime
).
getTime
();
//上班结束时间
long
workEndTime
=
simpleDateFormat
.
parse
(
scheduleDate
+
" "
+
endTime
).
getTime
();
//最晚可预约时间
String
latestScheduledTime
=
storeClassesTechnician
.
getClassesManage
().
getLatestScheduledTime
().
toString
();
/
/美甲师正在服务的时间为不可用时间
/
*3、已预约的时间不可用*/
List
<
ScheduleServe
>
scheduleServeList
=
storeClassesTechnician
.
getListScheduleServe
();
List
<
Period
>
periodList
=
scheduleServeList
.
stream
().
map
(
scheduleServe
->
new
Period
(
scheduleServe
.
getStartTime
().
getTime
(),
scheduleServe
.
getEndTime
().
getTime
())).
collect
(
Collectors
.
toList
());
//正在服务时间不可用
List
<
Period
>
periodList
=
scheduleServeList
.
stream
()
.
map
(
scheduleServe
->
new
Period
(
scheduleServe
.
getStartTime
().
getTime
(),
scheduleServe
.
getEndTime
().
getTime
()))
.
collect
(
Collectors
.
toList
());
//当前时间之前不可用
/*4、当前时间之前的时间不可用*/
Period
period2
=
new
Period
(
dayStartTime
,
System
.
currentTimeMillis
());
periodList
.
add
(
period2
);
//最晚可预约时间
if
(
StringUtils
.
isNotEmpty
(
latestScheduledTime
)
&&
storeClassesTechnician
.
getClassesManage
().
getLatestScheduledTimeEnable
()
==
1
)
{
/*5、如果开启了门店最晚预约时间,最晚可预约时间之后的时间不可用*/
if
(
StringUtils
.
isNotEmpty
(
latestScheduledTime
)
&&
storeClassesTechnician
.
getClassesManage
().
getLatestScheduledTimeEnable
()
==
1
)
{
long
latestScheduledTimeMills
=
simpleDateFormat
.
parse
(
scheduleDate
+
" "
+
latestScheduledTime
).
getTime
();
Period
latestScheduledTimeMillsPeriod
=
new
Period
(
latestScheduledTimeMills
,
dayEndTime
);
periodList
.
add
(
latestScheduledTimeMillsPeriod
);
}
/
/上班开始时间之前的时间不可用
/
*6、上班开始时间之前的时间不可用*/
Period
period3
=
new
Period
(
dayStartTime
,
workStartTime
);
periodList
.
add
(
period3
);
/
/请假时间不可用
/
*7、请假时间不可用*/
List
<
Period
>
takeLeavePeriodList
=
takeLeaveEventMapper
.
selectList
(
new
LambdaQueryWrapper
<
TakeLeaveEvent
>()
.
eq
(
TakeLeaveEvent:
:
getApplyTechnicianId
,
storeClassesTechnician
.
getTechnicianManage
().
getId
())
.
eq
(
TakeLeaveEvent:
:
getStatus
,
TakeLeaveEvent
.
STATUS_APPROVAL_PASS
)
...
...
@@ -186,22 +176,14 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
periodList
.
addAll
(
takeLeavePeriodList
);
/
/10点上班的
/
*8、10点上班(早班)下班后时间不可用*/
if
(
startTime
.
equals
(
"10:00:00"
))
{
//下班后多久的时间是可用的
Period
period4
=
new
Period
(
workEndTime
,
dayEndTime
);
periodList
.
add
(
period4
);
}
StoreTechnician
storeTechnician
=
storeClassesTechnician
.
getTechnicianManage
();
StoreTechnicianPeriod
storeTechnicianDTO
=
new
StoreTechnicianPeriod
(
periodList
,
storeTechnician
.
getId
(),
storeTechnician
.
getName
(),
storeTechnician
.
getPicturePath
(),
storeTechnician
.
getGrade
()
);
/*9、构造返回值*/
StoreTechnicianPeriod
storeTechnicianDTO
=
new
StoreTechnicianPeriod
(
periodList
,
storeClassesTechnician
.
getTechnicianManage
());
storeTechnicianPeriodList
.
add
(
storeTechnicianDTO
);
}
...
...
@@ -214,8 +196,8 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
LocalDateTime
serveStartTime
,
LocalDateTime
serveEndTime
)
throws
ParseException
{
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
());
List
<
Integer
>
technicianIds
=
storeTechnicianPeriodList
.
stream
().
filter
(
storeTechnicianPeriod
->
!
storeTechnicianPeriod
.
getPeriodList
().
stream
().
map
(
period
->
period
.
conflict
(
servePeriod
))
.
collect
(
Collectors
.
toList
()).
contains
(
true
))
...
...
@@ -233,13 +215,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
//美甲师不可用日期列表
List
<
StoreTechnicianPeriod
>
storeTechnicianDTOList
=
this
.
queryStoreTechnicianPeriod
(
qry
.
getId
(),
qry
.
getDepartmentId
(),
qry
.
getScheduleDate
(),
qry
.
getListScheduleServer
().
stream
().
map
(
ScheduleServeQuery:
:
getServeId
).
collect
(
Collectors
.
toList
()));
/*1、获取美甲师和美甲师不可用时间段*/
List
<
StoreTechnicianPeriod
>
storeTechnicianDTOList
=
this
.
queryStoreTechnicianPeriod
(
qry
.
getId
(),
qry
.
getDepartmentId
(),
qry
.
getScheduleDate
(),
qry
.
getListScheduleServer
().
stream
().
map
(
ScheduleServeQuery:
:
getServeId
).
collect
(
Collectors
.
toList
()));
/
/查询时段
/
*2、迭代出所有需要返回的时间节点*/
if
(
ListUtil
.
isEmpty
(
qry
.
getDateTimeList
()))
{
long
workStartTime
=
simpleDateFormat
.
parse
(
qry
.
getScheduleDate
()
+
" 10:00:00"
).
getTime
();
long
workEndTime
=
simpleDateFormat
.
parse
(
qry
.
getScheduleDate
()
+
" 22:00:00"
).
getTime
();
...
...
@@ -251,6 +230,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
qry
.
setDateTimeList
(
dateTimeList
);
}
//预约服务时长和图片
qry
.
getListScheduleServer
().
forEach
(
scheduleServeQuery
->
{
if
(
scheduleServeQuery
.
getProduceId
()
==
null
)
{
...
...
@@ -286,41 +266,33 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
});
});
//线程池加速
ForkJoinPool
myPool
=
new
ForkJoinPool
(
qry
.
getDateTimeList
().
size
());
List
<
IdleTimeDTO
>
idleTimeDTOList
=
new
ArrayList
<>(
qry
.
getDateTimeList
().
size
());
myPool
.
submit
(()
->
{
qry
.
getDateTimeList
()
myPool
.
submit
(()
->
qry
.
getDateTimeList
()
.
forEach
(
dateTime
->
{
AtomicLong
time
=
new
AtomicLong
(
System
.
currentTimeMillis
());
//每个主服务由不同的美甲师做,setter主服务的时间period
mainScheduleServeQueryLinkedList
.
forEach
(
mainServeDTO
->
{
Period
period
=
new
Period
();
period
.
setStartTime
(
dateTime
);
period
.
setLength
(
mainServeDTO
.
getLengthTimeForEndTime
().
longValue
()
*
60000
);
period
.
setEndTime
(
dateTime
+
period
.
getLength
());
mainServeDTO
.
setPeriod
(
period
);
mainScheduleServeQueryLinkedList
.
forEach
(
mainScheduleServeQuery
->
{
Period
period
=
new
Period
(
dateTime
,
dateTime
+
mainScheduleServeQuery
.
getLengthTimeForEndTime
().
longValue
()
*
60000
);
mainScheduleServeQuery
.
setPeriod
(
period
);
});
//主服务深度克隆
List
<
ScheduleServeQuery
>
cloneMainServeDTOList
=
mainScheduleServeQueryLinkedList
.
stream
().
map
(
CloneUtil:
:
deepClone
).
collect
(
Collectors
.
toList
(
));
Queue
<
ScheduleServeQuery
>
cloneMainServeDTOList
=
mainScheduleServeQueryLinkedList
.
stream
().
map
(
CloneUtil:
:
deepClone
).
collect
(
Collectors
.
toCollection
(
LinkedList:
:
new
));
//美甲师深度克隆
List
<
StoreTechnicianPeriod
>
cloneStoreTechnicianDTOList
=
storeTechnicianDTOList
.
stream
().
map
(
CloneUtil:
:
deepClone
).
collect
(
Collectors
.
toList
());
//构造预约方案树🌲
TreeProgram
treeProgram
=
this
.
rec
(
new
LinkedList
<>(
cloneMainServeDTOList
),
cloneStoreTechnicianDTOList
,
TreeProgram
.
root
());
time
.
set
(
System
.
currentTimeMillis
());
List
<
TreeProgram
>
defaultNodes
=
new
ArrayList
<>();
//根据需要预约的服务和美甲师构造预约方案树🌲
TreeProgram
treeProgram
=
this
.
buildTreeProgram
(
cloneMainServeDTOList
,
cloneStoreTechnicianDTOList
,
TreeProgram
.
root
());
//构造默认美甲师
this
.
recDefault
(
defaultNodes
,
treeProgram
);
time
.
set
(
System
.
currentTimeMillis
()
);
List
<
TreeProgram
>
defaultNodeList
=
new
ArrayList
<>(
);
this
.
buildDefaultNodeList
(
defaultNodeList
,
treeProgram
);
IdleTimeDTO
idleTimeDTO
=
new
IdleTimeDTO
();
idleTimeDTO
.
setDateTime
(
dateTime
);
...
...
@@ -329,12 +301,11 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
/*关键信息 节点是否可用*/
idleTimeDTO
.
setStatus
(!
treeProgram
.
childNull
());
idleTimeDTO
.
setTreeProgram
(
treeProgram
);
idleTimeDTO
.
setDefaultNodeList
(
defaultNodes
);
idleTimeDTO
.
setDefaultNodeList
(
defaultNodeList
);
idleTimeDTOList
.
add
(
idleTimeDTO
);
});
}).
get
();
})).
get
();
myPool
.
shutdown
();
...
...
@@ -344,10 +315,11 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
idleTimeDTO
.
setTreeProgram
(
null
);
});
}
/*排序返回*/
return
idleTimeDTOList
.
stream
().
sorted
(
Comparator
.
comparing
(
IdleTimeDTO:
:
getTime
)).
collect
(
Collectors
.
toList
());
}
private
void
recDefaul
t
(
List
<
TreeProgram
>
list
,
private
void
buildDefaultNodeLis
t
(
List
<
TreeProgram
>
list
,
TreeProgram
parent
)
{
if
(!
CollectionUtils
.
isEmpty
(
parent
.
getChildList
()))
{
TreeProgram
treeProgram
=
new
TreeProgram
();
...
...
@@ -366,25 +338,28 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
treeProgram
.
setStoreTechnicianDTO
(
defaultNode
.
getStoreTechnicianDTO
());
list
.
add
(
treeProgram
);
this
.
recDefaul
t
(
list
,
defaultNode
);
this
.
buildDefaultNodeLis
t
(
list
,
defaultNode
);
}
}
private
TreeProgram
rec
(
Queue
<
ScheduleServeQuery
>
scheduleServeQueryList
,
private
TreeProgram
buildTreeProgram
(
Queue
<
ScheduleServeQuery
>
scheduleServeQueryList
,
List
<
StoreTechnicianPeriod
>
storeTechnicians
,
TreeProgram
parent
)
{
long
time
=
System
.
currentTimeMillis
();
final
ScheduleServeQuery
scheduleServeQuery
=
scheduleServeQueryList
.
poll
();
List
<
TreeProgram
>
childList
=
Lists
.
newArrayList
();
//遍历每一个美甲师
storeTechnicians
.
forEach
(
storeTechnician
->
{
storeTechnicians
.
stream
()
.
filter
(
storeTechnicianPeriod
->
{
List
<
TechnicianServe
>
technicianServeList
=
technicianServeMapper
.
selectList
(
new
LambdaQueryWrapper
<
TechnicianServe
>().
eq
(
TechnicianServe:
:
getServeId
,
scheduleServeQuery
.
getServeId
()));
return
technicianServeList
.
stream
().
map
(
TechnicianServe:
:
getTechnicianId
).
collect
(
Collectors
.
toList
()).
contains
(
storeTechnicianPeriod
.
getTechnicianId
());
})
.
forEach
(
storeTechnician
->
{
//美甲师深度克隆
List
<
TreeProgram
>
pathClone
=
parent
.
getPath
().
stream
().
map
(
CloneUtil:
:
deepClone
).
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toList
());
List
<
TreeProgram
>
pathClone
=
parent
.
getPath
().
stream
().
map
(
CloneUtil:
:
deepClone
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
//包含当前美甲师的父节点list
List
<
ScheduleServeQuery
>
severedList
=
pathClone
...
...
@@ -434,7 +409,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
//如果还有服务 继续构造子树
if
(!
CollectionUtils
.
isEmpty
(
scheduleServeQueryList
))
{
Queue
<
ScheduleServeQuery
>
cloneScheduleServeQueryList
=
scheduleServeQueryList
.
stream
().
map
(
CloneUtil:
:
deepClone
).
collect
(
Collectors
.
toCollection
(
LinkedList:
:
new
));
this
.
rec
(
cloneScheduleServeQueryList
,
storeTechnicians
,
node
);
this
.
buildTreeProgram
(
cloneScheduleServeQueryList
,
storeTechnicians
,
node
);
//如果构造的子树为空
if
(!
node
.
childNull
())
{
...
...
@@ -454,8 +429,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
private
boolean
test
(
List
<
TreeProgram
>
path
)
{
Map
<
StoreTechnicianPeriod
,
List
<
TreeProgram
>>
map
=
path
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
TreeProgram:
:
getStoreTechnicianDTO
));
Map
<
StoreTechnicianPeriod
,
List
<
TreeProgram
>>
map
=
path
.
stream
().
collect
(
Collectors
.
groupingBy
(
TreeProgram:
:
getStoreTechnicianDTO
));
List
<
TreeProgram
>
treePrograms
=
map
.
values
().
stream
()
...
...
@@ -1546,6 +1520,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
.
scheduledTime
(
scheduleManage
.
getScheduledTime
())
//自带款式
.
ownProduceId
(
scheduleServeVar
.
getOwnProduceId
())
.
isOwnProduce
(
scheduleServeVar
.
getIsOwnProduce
())
.
build
();
...
...
src/main/java/com/gogirl/application/user/customer/impl/CustomerServiceImpl.java
View file @
09a61ee5
...
...
@@ -24,7 +24,6 @@ import com.gogirl.infrastructure.common.util.StringUtils;
import
com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderRecordMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.ScheduleManageMapper
;
import
com.gogirl.infrastructure.mapper.product.serve.BaseServeMapper
;
import
com.gogirl.infrastructure.mapper.store.store.StoreManageMapper
;
import
com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper
;
...
...
@@ -52,36 +51,40 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
@Resource
private
CustomerMapper
customerMapper
;
@Resource
private
WechatService
wechatService
;
@Resource
private
GogirlTokenService
gogirlTokenService
;
@Resource
private
ScheduleManageMapper
scheduleManageMapper
;
@Resource
private
CustomerDetailMapper
customerDetailMapper
;
@Resource
private
CustomerBalanceMapper
customerBalanceMapper
;
@Resource
private
QRCodeService
qrCodeService
;
@Resource
private
StoreManageMapper
storeManageMapper
;
@Resource
private
OrderManageMapper
orderManageMapper
;
@Resource
private
OrderServeMapper
orderServeMapper
;
@Resource
private
BaseServeMapper
baseServeMapper
;
@Resource
private
OrderRecordMapper
orderRecordMapper
;
@Resource
private
CustomerDetailService
customerDetailService
;
@Resource
private
OrderManageService
orderManageService
;
...
...
src/main/java/com/gogirl/shared/order/StoreTechnicianPeriod.java
View file @
09a61ee5
package
com
.
gogirl
.
shared
.
order
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.AllArgsConstructor
;
import
com.gogirl.domain.store.store.StoreTechnician
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
StoreTechnicianPeriod
implements
Serializable
{
/**
...
...
@@ -23,11 +21,32 @@ public class StoreTechnicianPeriod implements Serializable {
*/
private
Integer
technicianId
;
//美甲师姓名
/**
* 美甲师姓名
*/
private
String
name
;
/**
* 美甲师头像
*/
private
String
picturePath
;
/**
* 美甲师级别
*/
private
String
grade
;
public
StoreTechnicianPeriod
()
{
}
public
StoreTechnicianPeriod
(
List
<
Period
>
periodList
,
StoreTechnician
storeTechnician
)
{
this
.
periodList
=
periodList
;
this
.
technicianId
=
storeTechnician
.
getId
();
this
.
name
=
storeTechnician
.
getName
();
this
.
picturePath
=
storeTechnician
.
getPicturePath
();
this
.
grade
=
storeTechnician
.
getGrade
();
}
}
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