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
05ceebb5
Commit
05ceebb5
authored
Mar 05, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
排班合并 预约更新合并
parent
8866fe46
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
375 additions
and
66 deletions
+375
-66
CouponServiceImpl.java
...com/gogirl/application/market/impl/CouponServiceImpl.java
+5
-1
ScheduleManageService.java
...gogirl/application/order/serve/ScheduleManageService.java
+11
-3
ScheduleManageServiceImpl.java
...plication/order/serve/impl/ScheduleManageServiceImpl.java
+337
-43
ScheduleServe.java
...ain/java/com/gogirl/domain/order/serve/ScheduleServe.java
+0
-1
PurchaseSkuMapper.java
...l/infrastructure/mapper/order/mall/PurchaseSkuMapper.java
+3
-0
ScheduleManageController.java
...girl/interfaces/order/serve/ScheduleManageController.java
+12
-3
ClassesTechnicianController.java
.../gogirl/interfaces/store/ClassesTechnicianController.java
+6
-15
PurchaseSkuMapper.xml
src/main/resources/mapper/product/PurchaseSkuMapper.xml
+1
-0
No files found.
src/main/java/com/gogirl/application/market/impl/CouponServiceImpl.java
View file @
05ceebb5
...
...
@@ -316,6 +316,10 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
new
LambdaQueryWrapper
<
Coupon
>().
in
(
Coupon:
:
getId
,
ids
)
);
Map
<
Integer
,
List
<
Coupon
>>
couponMap
=
couponList
.
stream
().
collect
(
Collectors
.
groupingBy
(
Coupon:
:
getId
));
couponCustomerRelevanceList
.
forEach
(
couponCustomerRelevance
->
couponCustomerRelevance
.
setCoupon
(
couponMap
.
get
(
couponCustomerRelevance
.
getCouponId
()).
stream
().
findAny
().
orElse
(
null
)));
couponCustomerRelevanceList
.
forEach
(
couponCustomerRelevance
->
{
if
(
ListUtil
.
isNotEmpty
(
couponMap
.
get
(
couponCustomerRelevance
.
getCouponId
())))
{
couponCustomerRelevance
.
setCoupon
(
couponMap
.
get
(
couponCustomerRelevance
.
getCouponId
()).
stream
().
findAny
().
orElse
(
null
));
}
});
}
}
src/main/java/com/gogirl/application/order/serve/ScheduleManageService.java
View file @
05ceebb5
...
...
@@ -62,10 +62,10 @@ public interface ScheduleManageService extends IService<ScheduleManage> {
/**
* 更新预约
时间
* 更新预约
状态
*
* @param scheduleServeId
* @param status
* @param scheduleServeId
预约服务id
* @param status
状态
*/
void
updateScheduledServeStatus
(
Integer
scheduleServeId
,
Integer
status
);
...
...
@@ -117,4 +117,12 @@ public interface ScheduleManageService extends IService<ScheduleManage> {
ScheduleManage
queryScheduleManage
(
Integer
id
);
IPage
<
ScheduleManage
>
queryPageScheduleManage
(
ScheduleManagePageQuery
qry
);
/**
* 当前服务是否在闲时 1-是 2-否
*
* @param scheduleServeId
* @return
*/
Integer
getScheduledServeLeisure
(
Integer
scheduleServeId
);
}
src/main/java/com/gogirl/application/order/serve/impl/ScheduleManageServiceImpl.java
View file @
05ceebb5
...
...
@@ -45,11 +45,15 @@ import com.gogirl.shared.order.serve.command.schedule.*;
import
com.gogirl.shared.order.serve.query.dto.IdleTimeDTO
;
import
com.gogirl.shared.order.serve.query.qry.*
;
import
com.gogirl.shared.order.serve.query.qry.schedule.ScheduleManagePageQuery
;
import
com.gogirl.shared.product.query.dto.BaseProduceDTO
;
import
com.gogirl.shared.product.query.dto.PurchaseSkuDTO
;
import
com.gogirl.shared.store.query.dto.StoreTechnicianDTO
;
import
com.google.common.collect.Lists
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
...
...
@@ -64,6 +68,7 @@ import static com.gogirl.domain.order.serve.OrderServe.COMMENT_STATUS_NO;
@Service
@AllArgsConstructor
@Slf4j
@Transactional
public
class
ScheduleManageServiceImpl
extends
ServiceImpl
<
ScheduleManageMapper
,
ScheduleManage
>
implements
ScheduleManageService
{
...
...
@@ -575,11 +580,8 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
updateList
.
forEach
(
val
->
val
.
setActualEndTime
(
new
Date
()));
scheduleServeService
.
updateBatchById
(
updateList
);
List
<
ScheduleServe
>
scheduleServeList
=
scheduleServeMapper
.
selectList
(
new
LambdaQueryWrapper
<
ScheduleServe
>().
eq
(
ScheduleServe:
:
getSchId
,
param
.
getSchId
()));
Set
<
ScheduleServe
>
scheduleServeSet
=
new
TreeSet
<>(
Comparator
.
comparing
(
o
->
o
.
getServeId
()
+
";"
+
o
.
getSchId
()));
scheduleServeSet
.
addAll
(
scheduleServeList
);
if
(!
scheduleServeSet
.
stream
().
map
(
ScheduleServe:
:
getStatus
).
map
(
stats
->
stats
==
3
).
collect
(
Collectors
.
toList
()).
contains
(
false
))
{
...
...
@@ -997,71 +999,140 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
@Override
public
void
updateSchedule
(
UpdateScheduleCommand
cmd
)
{
ScheduleManageCommand
scheduleManageCommand
=
cmd
.
getScheduleManageDTO
();
List
<
TreeProgram
>
defaultNodeList
=
cmd
.
getDefaultNodeList
();
log
.
info
(
"更新预约:{}"
,
cmd
);
//参数补全
this
.
setScheduleServe
(
scheduleManageCommand
,
defaultNodeList
);
if
(
ListUtil
.
isEmpty
(
cmd
.
getScheduleManageDTO
().
getScheduleServeDTOList
()))
{
throw
new
RRException
(
"入参错误"
);
}
this
.
setScheduleServe
(
cmd
.
getScheduleManageDTO
(),
cmd
.
getDefaultNodeList
());
ScheduleManage
oldScheduleManage
=
scheduleManageMapper
.
selectById
(
scheduleManageCommand
.
getId
()
);
ScheduleManage
Command
scheduleManageCommand
=
cmd
.
getScheduleManageDTO
(
);
//设置用户信息
ScheduleManage
oldScheduleManage
=
this
.
getById
(
cmd
.
getScheduleManageDTO
().
getId
());
scheduleManageCommand
.
setScheduledUser
(
oldScheduleManage
.
getScheduledUser
());
scheduleManageCommand
.
setDepartmentId
(
oldScheduleManage
.
getDepartmentId
());
Customer
customer
=
customerService
.
getById
(
scheduleManageCommand
.
getScheduledUser
());
this
.
setSeverProduce
(
scheduleManageCommand
);
ScheduleManage
scheduleManage
=
scheduleManageMapper
.
selectById
(
scheduleManageCommand
.
getId
());
SpringBeanUtils
.
copyPropertiesIgnoreNull
(
scheduleManageCommand
,
scheduleManage
);
scheduleManage
.
setScheduledUser
(
oldScheduleManage
.
getScheduledUser
());
scheduleManage
.
setDepartmentId
(
oldScheduleManage
.
getDepartmentId
());
Customer
customer
=
customerService
.
getById
(
scheduleManage
.
getScheduledUser
());
//预约类型小程序
scheduleManage
Command
.
setScheduledType
(
1
);
scheduleManage
.
setScheduledType
(
1
);
//预约用户手机号
scheduleManage
Command
.
setTelephone
(
customer
.
getPhone
());
scheduleManage
.
setTelephone
(
customer
.
getPhone
());
//预约用户姓名
scheduleManageCommand
.
setStoreScheduleUsername
(
customer
.
getNickname
());
scheduleManage
.
setStoreScheduleUsername
(
customer
.
getNickname
());
//调用店铺服务根据id查询店铺
StoreManage
storeManage
=
storeManageMapper
.
selectById
(
scheduleManageCommand
.
getDepartmentId
());
//设置服务店铺姓名
scheduleManage
.
setDepartmentName
(
storeManage
.
getName
());
//设置店铺信息
this
.
setDepartment
(
scheduleManageCommand
);
scheduleManage
.
setTotalPrice
(
BigDecimal
.
ZERO
);
//设置款式信息
this
.
setSeverProduce
(
scheduleManageCommand
);
scheduleManageMapper
.
updateById
(
scheduleManage
);
scheduleManageCommand
.
getScheduleServeDTOList
().
forEach
(
scheduleServeCommand
->
{
scheduleServeCommand
.
setTechnicianIds
(
String
.
valueOf
(
scheduleServeCommand
.
getTechnicianId
()));
scheduleServeCommand
.
setTechnicianNames
(
scheduleServeCommand
.
getTechnicianName
());
List
<
ScheduleServe
>
oldScheduleServeList
=
scheduleServeMapper
.
selectList
(
new
LambdaQueryWrapper
<
ScheduleServe
>().
eq
(
ScheduleServe:
:
getSchId
,
scheduleManage
.
getId
()));
oldScheduleServeList
.
forEach
(
scheduleServe
->
{
LeisureDiscountConfig
leisureDiscountConfig
=
leisureDiscountConfigMapper
.
selectById
(
scheduleServe
.
getLeisureDiscountConfigId
());
if
(
leisureDiscountConfig
!=
null
)
{
leisureDiscountConfig
.
setLeftTimes
(
leisureDiscountConfig
.
getLeftTimes
()
+
1
);
leisureDiscountConfigMapper
.
updateById
(
leisureDiscountConfig
);
}
});
List
<
ScheduleServe
>
scheduleServeList
=
scheduleManageCommand
.
getScheduleServeDTOList
()
.
stream
()
.
peek
(
scheduleServeCmd
->
{
//调用产品服务根据id查询 预约服务
BaseServe
baseServe
=
baseServeMapper
.
selectById
(
scheduleServeCmd
.
getServeId
());
BaseType
baseType
=
baseTypeService
.
getById
(
baseServe
.
getTypeId
());
//调用用户服务 根据id查询美甲师
StoreTechnician
storeTechnician
=
storeTechnicianMapper
.
selectById
(
scheduleServeCmd
.
getTechnicianId
());
ScheduleManage
scheduleManage
=
scheduleManageMapper
.
selectById
(
scheduleManageCommand
.
getId
());
SpringBeanUtils
.
copyPropertiesIgnoreNull
(
scheduleManageCommand
,
scheduleManage
);
scheduleManageMapper
.
updateById
(
scheduleManage
);
scheduleServeMapper
.
delete
(
new
LambdaQueryWrapper
<
ScheduleServe
>()
.
eq
(
ScheduleServe:
:
getSchId
,
scheduleManage
.
getId
()));
//服务详情设置
scheduleServeCmd
.
setServeName
(
baseServe
.
getName
());
scheduleServeCmd
.
setServePicturePath
(
baseServe
.
getPicturePath
());
scheduleServeCmd
.
setServePrice
(
baseServe
.
getPrice
());
scheduleServeCmd
.
setTechnicianName
(
storeTechnician
.
getName
());
scheduleServeCmd
.
setServeType
(
baseType
.
getName
());
String
technicianNames
=
storeTechnicianMapper
.
selectBatchIds
(
Lists
.
newArrayList
(
scheduleServeCmd
.
getTechnicianIds
().
split
(
","
))).
stream
().
map
(
StoreTechnician:
:
getName
).
collect
(
Collectors
.
joining
(
","
));
scheduleServeCmd
.
setTechnicianNames
(
technicianNames
);
//设置价格为服务价格
scheduleServeCmd
.
setPrice
(
baseServe
.
getPrice
());
//服务款式设置
if
(
scheduleServeCmd
.
getProduceId
()
!=
null
)
{
List
<
ScheduleServe
>
scheduleServeList
=
scheduleManageCommand
.
getScheduleServeDTOList
().
stream
().
map
(
scheduleServeCommand
->
{
if
(
scheduleServeCommand
.
getId
()
!=
null
)
{
BaseProduce
baseProduce
=
baseProduceMapper
.
selectById
(
scheduleServeCmd
.
getProduceId
());
scheduleServeCmd
.
setProduceName
(
baseProduce
.
getName
());
scheduleServeCmd
.
setProducePicturePath
(
baseProduce
.
getPicturePath
());
scheduleServeCmd
.
setProduceBargainPrice
(
baseProduce
.
getBargainPrice
());
scheduleServeCmd
.
setProduceCurrentPrice
(
baseProduce
.
getCurrentPrice
());
//如果有款式就设置款式价格
scheduleServeCmd
.
setPrice
(
baseProduce
.
getCurrentPrice
());
}
scheduleServeCmd
.
setLengthTime
(
baseServe
.
getServiceDuration
());
})
.
peek
(
scheduleServeCmd
->
{
scheduleManage
.
setTotalPrice
(
scheduleManage
.
getTotalPrice
().
add
(
scheduleServeCmd
.
getPrice
()));
})
.
map
(
scheduleServeCommand
->
{
List
<
ScheduleServe
>
list
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
scheduleServeCommand
.
getTechnicianIds
()))
{
ScheduleServe
scheduleServe
=
scheduleServeMapper
.
selectById
(
scheduleServeCommand
.
getId
());
SpringBeanUtils
.
copyPropertiesIgnoreNull
(
scheduleServeCommand
,
scheduleServe
);
return
scheduleServe
;
Lists
.
newArrayList
(
scheduleServeCommand
.
getTechnicianIds
().
split
(
","
))
.
forEach
(
id
->
{
ScheduleServe
item
;
if
(
scheduleServe
==
null
)
{
item
=
new
ScheduleServe
();
item
.
setSchId
(
scheduleManage
.
getId
());
}
else
{
ScheduleServe
scheduleServe
=
new
ScheduleServe
();
SpringBeanUtils
.
copyPropertiesIgnoreNull
(
scheduleServeCommand
,
scheduleServe
);
return
scheduleServe
;
item
=
CloneUtil
.
deepClone
(
scheduleServe
);
}
}).
collect
(
Collectors
.
toList
());
item
.
setTechnicianId
(
Integer
.
valueOf
(
id
));
StoreTechnician
storeTechnician
=
storeTechnicianMapper
.
selectById
(
item
.
getTechnicianId
());
item
.
setTechnicianName
(
storeTechnician
.
getName
());
Date
date
=
scheduleManage
.
getArriveTime
();
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
int
weekday
=
c
.
get
(
Calendar
.
DAY_OF_WEEK
);
if
(
weekday
==
1
)
{
weekday
=
7
;
}
else
{
weekday
=
weekday
-
1
;
SpringBeanUtils
.
copyPropertiesIgnoreNull
(
scheduleServeCommand
,
item
);
list
.
add
(
item
);
});
}
return
list
;
})
.
flatMap
(
List:
:
stream
)
.
collect
(
Collectors
.
toList
());
scheduleManageMapper
.
updateById
(
scheduleManage
);
scheduleServeMapper
.
delete
(
new
LambdaQueryWrapper
<
ScheduleServe
>()
.
eq
(
ScheduleServe:
:
getSchId
,
scheduleManage
.
getId
())
.
in
(
ScheduleServe:
:
getId
,
oldScheduleServeList
.
stream
()
.
map
(
ScheduleServe:
:
getId
)
.
filter
(
id
->
!
scheduleServeList
.
stream
().
map
(
ScheduleServe:
:
getId
).
collect
(
Collectors
.
toList
()).
contains
(
id
))
.
collect
(
Collectors
.
toList
())));
//获取参数
Date
date
=
scheduleManage
.
getArriveTime
();
int
finalWeekday
=
this
.
getWeek
(
scheduleManage
.
getArriveTime
());
int
finalWeekday
=
weekday
;
scheduleServeList
.
forEach
(
scheduleServe
->
{
LeisureDiscountConfig
leisureDiscountConfig
=
leisureDiscountConfigMapper
.
selectLeisureDiscount
(
scheduleServe
.
getServeId
(),
new
SimpleDateFormat
(
"HH:mm"
).
format
(
date
),
finalWeekday
);
if
(
leisureDiscountConfig
!=
null
)
{
...
...
@@ -1069,7 +1140,213 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
});
scheduleServeList
.
forEach
(
scheduleServe
->
scheduleServe
.
setSchId
(
scheduleManage
.
getId
()));
scheduleServeService
.
saveOrUpdateBatch
(
scheduleServeList
);
List
<
ScheduleServe
>
updatedScheduleServeList
=
scheduleServeService
.
list
(
new
LambdaQueryWrapper
<
ScheduleServe
>().
eq
(
ScheduleServe:
:
getSchId
,
scheduleManage
.
getId
()));
Set
<
ScheduleServe
>
scheduleServeSet
=
new
TreeSet
<>(
Comparator
.
comparing
(
o
->
o
.
getServeId
()
+
";"
+
o
.
getSchId
()));
scheduleServeSet
.
addAll
(
updatedScheduleServeList
);
if
(
scheduleManage
.
getStatus
().
equals
(
ScheduleManage
.
STATUS_SCHEDULED
))
{
if
(!
scheduleServeSet
.
stream
().
map
(
ScheduleServe:
:
getStatus
).
map
(
stats
->
stats
==
3
||
stats
==
2
).
collect
(
Collectors
.
toList
()).
contains
(
false
))
{
//守约
scheduleManage
.
setStatus
(
8
);
scheduleManage
.
setLastUpdateTime
(
new
Date
());
//预约的开单时间 为第一个预约的开单时间
if
(
scheduleManage
.
getOpenbillTime
()
==
null
)
{
scheduleManage
.
setOpenbillTime
(
new
Date
());
}
scheduleManageMapper
.
updateById
(
scheduleManage
);
}
}
if
(
scheduleManage
.
getStatus
().
equals
(
ScheduleManage
.
STATUS_SERVING
))
{
if
(!
scheduleServeSet
.
stream
().
map
(
ScheduleServe:
:
getStatus
).
map
(
stats
->
stats
==
3
).
collect
(
Collectors
.
toList
()).
contains
(
false
))
{
if
(!
scheduleManage
.
getStatus
().
equals
(
8
))
{
throw
new
RRException
(
"重复请求"
);
}
//更新预约状态已完成(守约)
scheduleManage
.
setStatus
(
ScheduleManage
.
STATUS_KEEP_SCHEDULED
);
scheduleManage
.
setLastUpdateTime
(
new
Date
());
scheduleManageMapper
.
updateById
(
scheduleManage
);
OrderManage
orderManage
=
OrderManage
.
builder
()
//订单类型
.
orderType
(
scheduleManage
.
getScheduledType
()
==
1
?
OrderManage
.
TYPE_CUSTOMER
:
OrderManage
.
TYPE_STORE
)
//订单用户
.
orderUser
(
scheduleManage
.
getScheduledUser
())
//到店时间
.
arriveTime
(
scheduleManage
.
getArriveTime
())
.
createTime
(
new
Date
())
.
dataIntegrity
(
0.00
)
//预约id
.
scheduledId
(
scheduleManage
.
getId
())
//店铺id
.
departmentId
(
scheduleManage
.
getDepartmentId
())
//店铺民
.
departmentName
(
scheduleManage
.
getDepartmentName
())
//手机号
.
telephone
(
scheduleManage
.
getTelephone
())
//预约客户名字
.
storeScheduleUsername
(
scheduleManage
.
getStoreScheduleUsername
())
//订单总改价
.
changePrice
(
BigDecimal
.
ZERO
)
//订单总打折价格
.
discountPrice
(
BigDecimal
.
ZERO
)
//订单总支付金额
.
totalPaymentAmount
(
BigDecimal
.
ZERO
)
//订单总金额
.
totalPrice
(
BigDecimal
.
ZERO
)
//创建时间
.
launchTime
(
new
Date
())
//待核算
.
status
(
OrderManage
.
STATUS_SYSTEM_UN_CHECK
)
//订单号
.
orderNo
(
this
.
getOrderNo
(
scheduleManage
.
getDepartmentId
(),
scheduleManage
.
getId
()))
.
build
();
List
<
OrderServe
>
orderServeList
=
new
ArrayList
<>();
for
(
ScheduleServe
scheduleServeVar
:
scheduleServeSet
)
{
BigDecimal
orderServePrice
;
//如果是预约服务使用服务特价
if
(
scheduleServeVar
.
getProduceId
()
!=
null
&&
scheduleServeVar
.
getProduceBargainPrice
()
!=
null
)
{
orderServePrice
=
scheduleServeVar
.
getProduceCurrentPrice
();
}
//预约款式使用款式价格
else
{
orderServePrice
=
scheduleServeVar
.
getServePrice
();
}
OrderServe
orderServe
=
OrderServe
.
builder
()
//服务参数
.
technicianId
(
String
.
valueOf
(
scheduleServeVar
.
getTechnicianIds
()))
//预约服务id
.
serveId
(
scheduleServeVar
.
getServeId
())
//预约服务名称
.
serveName
(
scheduleServeVar
.
getServeName
())
//预约服务图片
.
servePicturePath
(
scheduleServeVar
.
getServePicturePath
())
//预约服务数量
.
serveNumber
(
1
)
.
servePrice
(
scheduleServeVar
.
getServePrice
())
.
serveType
(
scheduleServeVar
.
getServeType
())
//款式参数
.
produceBargainPrice
(
scheduleServeVar
.
getProduceBargainPrice
())
//款式id
.
produceId
(
scheduleServeVar
.
getProduceId
())
//款式id
.
produceCurrentPrice
(
scheduleServeVar
.
getProduceCurrentPrice
())
//款式图片
.
producePicturePath
(
scheduleServeVar
.
getProducePicturePath
())
//款式姓名
.
produceName
(
scheduleServeVar
.
getProduceName
())
//美甲师姓名
.
technicianName
(
scheduleServeVar
.
getTechnicianName
())
//订单改价
.
serveChangePrice
(
BigDecimal
.
ZERO
)
//折扣金额
.
discountPrice
(
BigDecimal
.
ZERO
)
//评论状态未评论
.
commentStatus
(
COMMENT_STATUS_NO
)
//实际开始时间
.
startTime
(
scheduleServeVar
.
getActualStartTime
())
//实际结束时间
.
endTime
(
scheduleServeVar
.
getActualEndTime
())
//价格
.
price
(
orderServePrice
)
//业绩
.
achievement
(
orderServePrice
)
//支付金额
.
payPrice
(
orderServePrice
)
//预约时间
.
scheduledTime
(
scheduleManage
.
getScheduledTime
())
.
build
();
if
(
StringUtils
.
isNotEmpty
(
scheduleServeVar
.
getTechnicianIds
()))
{
orderServe
.
setTechnicianId
(
scheduleServeVar
.
getTechnicianIds
());
}
if
(
StringUtils
.
isNotEmpty
(
scheduleServeVar
.
getTechnicianNames
()))
{
orderServe
.
setTechnicianName
(
scheduleServeVar
.
getTechnicianNames
());
}
orderManage
.
setTotalPaymentAmount
(
orderManage
.
getTotalPaymentAmount
().
add
(
orderServe
.
getPayPrice
()));
//订单服务总金额
orderManage
.
setTotalPrice
(
orderManage
.
getTotalPrice
().
add
(
orderServe
.
getPrice
()));
//订单服务打折金额
orderManage
.
setDiscountPrice
(
orderManage
.
getDiscountPrice
().
add
(
orderServe
.
getDiscountPrice
()));
//订单服务折扣金额
orderManage
.
setChangePrice
(
orderManage
.
getChangePrice
().
add
(
orderServe
.
getServeChangePrice
()));
int
weekday
=
this
.
getWeek
(
orderServe
.
getStartTime
());
//订单实际对应的折扣
LeisureDiscountConfig
leisureDiscountConfig
=
leisureDiscountConfigMapper
.
selectLeisureDiscount
(
orderServe
.
getServeId
(),
new
SimpleDateFormat
(
"HH:mm"
).
format
(
orderServe
.
getStartTime
()),
weekday
);
if
(
leisureDiscountConfig
!=
null
)
{
//折扣金额
BigDecimal
leisureDiscountPrice
=
orderServe
.
getPrice
().
subtract
(
orderServe
.
getPrice
().
multiply
(
leisureDiscountConfig
.
getDiscountRate
()));
//设置折扣属性
orderServe
.
setLeisureDiscountConfigId
(
leisureDiscountConfig
.
getId
());
orderServe
.
setLeisureDiscountPrice
(
leisureDiscountPrice
);
orderServe
.
setDiscountPrice
(
leisureDiscountPrice
);
orderServe
.
setPayPrice
(
orderServe
.
getPayPrice
().
subtract
(
orderServe
.
getLeisureDiscountPrice
()));
//设置订单属性
orderManage
.
setDiscountPrice
(
orderManage
.
getDiscountPrice
().
add
(
orderServe
.
getLeisureDiscountPrice
()));
orderManage
.
setTotalPaymentAmount
(
orderManage
.
getTotalPaymentAmount
().
subtract
(
orderServe
.
getLeisureDiscountPrice
()));
//更新订单实际折扣的使用次数
leisureDiscountConfig
.
setLeftTimes
(
leisureDiscountConfig
.
getLeftTimes
()
-
1
);
leisureDiscountConfigMapper
.
updateById
(
leisureDiscountConfig
);
}
//预约对应的折扣
LeisureDiscountConfig
schLeisureDiscountConfig
=
leisureDiscountConfigMapper
.
selectById
(
scheduleServeVar
.
getLeisureDiscountConfigId
());
//更新预约折扣的使用次数
if
(
schLeisureDiscountConfig
!=
null
)
{
schLeisureDiscountConfig
.
setLeftTimes
(
schLeisureDiscountConfig
.
getLeftTimes
()
+
1
);
leisureDiscountConfigMapper
.
updateById
(
schLeisureDiscountConfig
);
}
orderServeList
.
add
(
orderServe
);
}
//插入订单
orderManageMapper
.
insert
(
orderManage
);
orderServeList
.
forEach
(
orderServe
->
orderServe
.
setOrderId
(
orderManage
.
getId
()));
//插入订单相亲
orderServeService
.
saveBatch
(
orderServeList
);
//更新预约
scheduleManage
.
setOrderId
(
orderManage
.
getId
());
scheduleManageMapper
.
updateById
(
scheduleManage
);
//设置订单sku
orderServeList
.
forEach
(
orderServe
->
{
if
(
orderServe
.
getProduceId
()
!=
null
)
{
List
<
PurchaseSku
>
purchaseSkuList
=
purchaseSkuMapper
.
selectByProduceId
(
orderServe
.
getProduceId
());
List
<
OrderServeSku
>
orderServeSkuList
=
purchaseSkuList
.
stream
()
.
map
(
purchaseSkuDTO
->
OrderServeSku
.
builder
()
.
type
(
purchaseSkuDTO
.
getSkuType
())
.
skuName
(
purchaseSkuDTO
.
getSkuName
())
.
skuId
(
purchaseSkuDTO
.
getId
())
.
orderServeId
(
orderServe
.
getId
())
.
build
()).
collect
(
Collectors
.
toList
());
orderServeSkuService
.
saveBatch
(
orderServeSkuList
);
}
});
log
.
info
(
"结束订单完成 orderManage:{}"
,
orderManage
);
}
}
}
@Override
...
...
@@ -1206,6 +1483,23 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
return
page
;
}
@Override
public
Integer
getScheduledServeLeisure
(
Integer
scheduleServeId
)
{
ScheduleServe
scheduleServe
=
scheduleServeMapper
.
selectById
(
scheduleServeId
);
LeisureDiscountConfig
leisureDiscountConfig
=
leisureDiscountConfigMapper
.
selectById
(
scheduleServe
.
getLeisureDiscountConfigId
());
if
(
leisureDiscountConfig
==
null
)
{
return
2
;
}
//
else
{
long
starTime
=
leisureDiscountConfig
.
getStartTime
().
getTime
();
long
endTime
=
leisureDiscountConfig
.
getEndTime
().
getTime
()
+
5
*
60000
;
long
now
=
System
.
currentTimeMillis
();
return
starTime
<=
now
&&
now
<=
endTime
?
1
:
2
;
}
}
/**
* 参数补全
*
...
...
src/main/java/com/gogirl/domain/order/serve/ScheduleServe.java
View file @
05ceebb5
...
...
@@ -177,5 +177,4 @@ public class ScheduleServe implements Serializable {
@ApiModelProperty
(
"实际结束时间"
)
private
Date
actualEndTime
;
}
src/main/java/com/gogirl/infrastructure/mapper/order/mall/PurchaseSkuMapper.java
View file @
05ceebb5
...
...
@@ -26,4 +26,7 @@ public interface PurchaseSkuMapper extends BaseMapper<PurchaseSku> {
* @return
*/
List
<
PurchaseSku
>
selectByProduceId
(
Integer
produceId
);
List
<
PurchaseSku
>
getByProduceId
(
Integer
produceId
);
}
src/main/java/com/gogirl/interfaces/order/serve/ScheduleManageController.java
View file @
05ceebb5
...
...
@@ -20,7 +20,6 @@ import com.gogirl.shared.order.serve.command.schedule.UpdateScheduleCommand;
import
com.gogirl.shared.order.serve.query.dto.IdleTimeDTO
;
import
com.gogirl.shared.order.serve.query.dto.ScheduleManageDTO
;
import
com.gogirl.shared.order.serve.query.qry.schedule.ScheduleManagePageQuery
;
import
com.gogirl.shared.order.serve.query.qry.schedule.ScheduleManageQuery
;
import
com.gogirl.shared.user.query.qry.VipServeQuery
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -203,13 +202,23 @@ public class ScheduleManageController {
}
@ApiOperation
(
"
s
更新预约服务状态"
)
@ApiOperation
(
"更新预约服务状态"
)
@GetMapping
(
"/technician/schedule/updateScheduledServeStatus"
)
public
JsonResult
<
Void
>
updateScheduledServeStatus
(
@RequestHeader
String
token
,
@RequestParam
Integer
scheduleServeId
,
@RequestParam
Integer
status
)
{
@RequestParam
Integer
status
,
@RequestParam
Integer
forceLeisureConfig
)
{
scheduleManageService
.
updateScheduledServeStatus
(
scheduleServeId
,
status
);
return
JsonResult
.
success
();
}
@ApiOperation
(
"当前服务是否在闲时间范围内 1-是 2-否"
)
@GetMapping
(
"/technician/schedule/getScheduledServeLeisure"
)
public
JsonResult
<
Integer
>
getScheduledServeLeisure
(
@RequestHeader
String
token
,
@RequestParam
Integer
scheduleServeId
)
{
scheduleManageService
.
getScheduledServeLeisure
(
scheduleServeId
);
return
JsonResult
.
success
();
}
}
src/main/java/com/gogirl/interfaces/store/ClassesTechnicianController.java
View file @
05ceebb5
...
...
@@ -18,14 +18,12 @@ import com.gogirl.infrastructure.common.util.JsonUtilByFsJson;
import
com.gogirl.infrastructure.mapper.store.StoreClassesTechnicianMapper
;
import
com.gogirl.infrastructure.mapper.xcx.SysLogMapper
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.text.ParseException
;
...
...
@@ -37,7 +35,6 @@ import java.util.Map;
@Api
(
tags
=
{
"11.美甲师排班"
},
value
=
"美甲师排班"
)
@RestController
@RequestMapping
(
"classestechnician"
)
@Slf4j
@AllArgsConstructor
public
class
ClassesTechnicianController
{
...
...
@@ -52,7 +49,7 @@ public class ClassesTechnicianController {
private
final
SysLogMapper
sysLogMapper
;
@ApiOperation
(
value
=
"美甲师端查询当天店铺排班"
)
@
RequestMapping
(
method
=
{
RequestMethod
.
GET
},
value
=
"
queryDayTechnicianClasses"
)
@
GetMapping
(
"/technician/classestechnician/
queryDayTechnicianClasses"
)
@GogirlShop
public
JsonResult
<
List
<
StoreTechnician
>>
queryDayTechnicianClasses
(
String
token
,
String
dayString
)
throws
ParseException
{
GogirlToken
gogirlToken
=
gogirlTokenService
.
getTokenByToken_t
(
token
);
...
...
@@ -86,8 +83,8 @@ public class ClassesTechnicianController {
}
@ApiOperation
(
value
=
"美甲师端提交当天店铺排班"
,
notes
=
"{\"dayString\":\"2019-08-28\",\"list\":[{\"id\":59,\"classesTechnician\":{\"classes\":1,\"id\":5678}},{\"id\":62,\"classesTechnician\":{\"classes\":2,\"id\":5709}}],\"token\":\"3a18ea5546\"}"
)
@
RequestMapping
(
method
=
{
RequestMethod
.
POST
},
value
=
"
updateDayTechnicianClasses"
)
@ApiOperation
(
value
=
"美甲师端提交当天店铺排班"
)
@
PostMapping
(
"/technician/classestechnician/
updateDayTechnicianClasses"
)
@GogirlShop
public
JsonResult
<
Object
>
updateDayTechnicianClasses
(
@RequestBody
ParmTechnicianClasses
ParmTechnicianClasses
)
{
...
...
@@ -186,13 +183,7 @@ public class ClassesTechnicianController {
@ApiOperation
(
value
=
"美甲师端查询当月排班排班"
)
@RequestMapping
(
method
=
{
RequestMethod
.
GET
},
value
=
"queryMonthClasses"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"month"
,
value
=
"年月:2019-08"
,
required
=
true
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"technicianId"
,
value
=
"美甲师id:59"
,
required
=
true
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
"token"
,
value
=
"token"
,
required
=
true
,
dataType
=
"String"
)
})
@GogirlShop
@GetMapping
(
"/technician/classestechnician/queryMonthClasses"
)
public
JsonResult
<
List
<
StoreClassesTechnician
>>
queryMonthClasses
(
String
token
,
Integer
technicianId
,
String
month
)
{
GogirlToken
gogirlToken
=
gogirlTokenService
.
getTokenByToken_t
(
token
);
if
(
gogirlToken
==
null
)
{
...
...
src/main/resources/mapper/product/PurchaseSkuMapper.xml
View file @
05ceebb5
...
...
@@ -17,4 +17,5 @@
left join purchase_sku t2 on t1.purchase_sku_id = t2.id
where t1.produce_id = #{produceId}
</select>
</mapper>
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