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
bcc4b899
Commit
bcc4b899
authored
Mar 13, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug fix
parent
7b0c78b9
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
272 additions
and
161 deletions
+272
-161
IChargeOrderService.java
.../gogirl/application/order/member/IChargeOrderService.java
+11
-0
ChargeOrderServiceImpl.java
...application/order/member/impl/ChargeOrderServiceImpl.java
+93
-0
ScheduleManageService.java
...gogirl/application/order/serve/ScheduleManageService.java
+15
-5
OrderManageServiceImpl.java
.../application/order/serve/impl/OrderManageServiceImpl.java
+19
-2
ScheduleManageServiceImpl.java
...plication/order/serve/impl/ScheduleManageServiceImpl.java
+69
-58
BaseProduceServiceImpl.java
...pplication/product/serve/impl/BaseProduceServiceImpl.java
+18
-0
StoreClassesTechnicianService.java
...pplication/store/store/StoreClassesTechnicianService.java
+9
-3
StoreClassesTechnicianServiceImpl.java
...n/store/store/impl/StoreClassesTechnicianServiceImpl.java
+5
-6
BaseQuestionServiceImpl.java
...tion/user/investigation/impl/BaseQuestionServiceImpl.java
+11
-0
DiscountConfig.java
...ava/com/gogirl/domain/market/discount/DiscountConfig.java
+1
-0
StoreClassesTechnicianMapper.java
...ture/mapper/store/store/StoreClassesTechnicianMapper.java
+8
-5
ScheduleManageController.java
...girl/interfaces/order/serve/ScheduleManageController.java
+1
-3
PayController.java
src/main/java/com/gogirl/interfaces/xcx/PayController.java
+1
-73
IdleTimeQuery.java
...om/gogirl/shared/order/serve/query/qry/IdleTimeQuery.java
+1
-1
StoreTechnicianPeriod.java
...l/shared/order/serve/query/qry/StoreTechnicianPeriod.java
+5
-1
TreeProgram.java
.../com/gogirl/shared/order/serve/query/qry/TreeProgram.java
+2
-2
MallProductMapper.xml
src/main/resources/mapper/product/MallProductMapper.xml
+3
-2
No files found.
src/main/java/com/gogirl/application/order/member/IChargeOrderService.java
View file @
bcc4b899
...
...
@@ -31,4 +31,15 @@ public interface IChargeOrderService extends IService<ChargeOrder> {
* @return
*/
WxPayMpOrderResult
customerChargeBalance
(
Integer
chargeId
)
throws
UnknownHostException
,
WxPayException
;
/**
* 美甲师充值会员卡
* @param name
* @param phone
* @param amount
* @param source
* @param refereeId
* @param remark
*/
void
chargeCustomerCard
(
String
name
,
String
phone
,
Double
amount
,
Integer
source
,
String
refereeId
,
String
remark
);
}
src/main/java/com/gogirl/application/order/member/impl/ChargeOrderServiceImpl.java
View file @
bcc4b899
...
...
@@ -7,7 +7,11 @@ import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import
com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult
;
import
com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest
;
import
com.github.binarywang.wxpay.exception.WxPayException
;
import
com.gogirl.application.market.CouponService
;
import
com.gogirl.application.market.DiscountConfigService
;
import
com.gogirl.application.order.member.IChargeOrderService
;
import
com.gogirl.application.store.store.CustomerDepartmentRelevanceService
;
import
com.gogirl.application.user.customer.CustomerService
;
import
com.gogirl.domain.market.discount.DiscountConfig
;
import
com.gogirl.domain.order.member.ChargeOrder
;
import
com.gogirl.domain.user.customer.Customer
;
...
...
@@ -24,7 +28,9 @@ import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceRecordMappe
import
com.gogirl.infrastructure.mapper.user.customer.CustomerMapper
;
import
com.gogirl.infrastructure.util.SessionUtils
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.net.InetAddress
;
import
java.net.UnknownHostException
;
...
...
@@ -42,6 +48,8 @@ import java.util.Date;
*/
@Service
@AllArgsConstructor
@Transactional
@Slf4j
public
class
ChargeOrderServiceImpl
extends
ServiceImpl
<
ChargeOrderMapper
,
ChargeOrder
>
implements
IChargeOrderService
{
private
final
CustomerMapper
customerMapper
;
...
...
@@ -49,6 +57,7 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
private
final
CustomerBalanceMapper
customerBalanceMapper
;
private
final
CustomerBalanceRecordMapper
customerBalanceRecordMapper
;
private
final
CouponService
couponService
;
@Override
public
void
notifyChargeOrder
(
WxPayOrderNotifyResult
result
)
{
...
...
@@ -57,6 +66,7 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
throw
new
RRException
();
}
Customer
customer
=
customerMapper
.
selectOne
(
new
LambdaQueryWrapper
<
Customer
>().
eq
(
Customer:
:
getOpenid1
,
result
.
getOpenid
()));
CustomerBalance
customerBalance
=
customerBalanceMapper
.
selectOne
(
new
LambdaQueryWrapper
<
CustomerBalance
>().
eq
(
CustomerBalance:
:
getCustomerId
,
customer
.
getId
()));
...
...
@@ -65,6 +75,9 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
.
stream
().
filter
(
config
->
config
.
getChargeAmount
()
<=
result
.
getTotalFee
())
.
max
(
Comparator
.
comparing
(
DiscountConfig:
:
getChargeAmount
)).
orElseThrow
(
RRException:
:
new
);
couponService
.
sendCoupon
(
discountConfig
.
getCouponId
(),
customer
.
getId
());
//首次充值
if
(
customerBalance
==
null
||
customerBalance
.
getBalance
()
==
0
)
{
customerBalance
=
CustomerBalance
.
builder
()
...
...
@@ -175,4 +188,84 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
WxPayMpOrderResult
result
=
wxPayControllerFeign
.
createJsapiOrder
(
request
);
return
result
;
}
private
final
CustomerService
customerService
;
private
final
CustomerDepartmentRelevanceService
customerDepartmentRelevanceService
;
private
final
DiscountConfigService
discountConfigService
;
@Override
public
void
chargeCustomerCard
(
String
name
,
String
phone
,
Double
amount
,
Integer
source
,
String
refereeId
,
String
remark
)
{
Customer
customer
=
customerService
.
selectByPhone
(
phone
);
GogirlToken
gogirlToken
=
SessionUtils
.
getTechnicianToken
();
Integer
departmentId
=
gogirlToken
.
getDepartmentId
();
log
.
info
(
"{} 充值给 {}"
,
gogirlToken
.
getTechnicianId
(),
phone
);
//新建会员
if
(
customer
==
null
)
{
customer
=
new
Customer
();
customer
.
setStoreRecordRealName
(
name
);
customer
.
setPhone
(
phone
);
customerService
.
save
(
customer
);
}
//更新会员的店员记录名字
else
if
(
name
!=
null
&&
!
name
.
isEmpty
())
{
customer
.
setStoreRecordRealName
(
name
);
customerService
.
updateById
(
customer
);
}
//店铺会员关联
customerDepartmentRelevanceService
.
insertDepartmentRelevanceIfNotExist
(
customer
.
getId
(),
departmentId
,
4
,
new
Date
());
//折扣信息
DiscountConfig
discountConfig
=
discountConfigService
.
selectByCharge
((
int
)
(
amount
*
100
));
//会员卡
CustomerBalance
customerBalance
=
customerBalanceMapper
.
selectOne
(
new
LambdaQueryWrapper
<
CustomerBalance
>()
.
eq
(
CustomerBalance:
:
getCustomerId
,
customer
.
getId
()));
//充值类型
Integer
type
=
customerBalance
==
null
?
2
:
1
;
//如果会员卡不存在就新增会员卡
if
(
customerBalance
==
null
)
{
customerBalance
=
CustomerBalance
.
getInstance
(
customer
.
getId
());
customerBalanceMapper
.
insert
(
customerBalance
);
}
int
chargeAmount
=
(
int
)
(
amount
*
100
);
//充值订单id
String
orderId
=
IdWorker
.
getIdStr
();
//更新余额
customerBalance
.
setBalance
(
customerBalance
.
getBalance
()
+
chargeAmount
);
customerBalance
.
setTotalCharge
(
customerBalance
.
getTotalCharge
()
+
chargeAmount
);
customerBalance
.
setUpdateTime
(
new
Date
());
//会员等级
customerBalance
.
setLevel
(
discountConfig
.
getLevel
());
customerBalanceMapper
.
updateById
(
customerBalance
);
//充值流水
CustomerBalanceRecord
customerBalanceRecord
=
CustomerBalanceRecord
.
builder
()
.
currentBalance
(
customerBalance
.
getBalance
())
.
customerId
(
customer
.
getId
())
//充送金额由定时任务计算
.
bestowAmount
(
0
)
.
departmentId
(
gogirlToken
.
getDepartmentId
())
.
departmentName
(
gogirlToken
.
getDepartmentName
())
.
discount
(
1
d
)
.
orderAmount
(
chargeAmount
)
.
orderId
(
orderId
)
//支付方式
.
source
(
source
)
.
refereeId
(
refereeId
)
.
remark
(
remark
)
//订单类型
.
type
(
type
)
.
time
(
new
Date
())
.
build
();
customerBalanceRecordMapper
.
insert
(
customerBalanceRecord
);
}
}
src/main/java/com/gogirl/application/order/serve/ScheduleManageService.java
View file @
bcc4b899
...
...
@@ -13,7 +13,7 @@ import com.gogirl.shared.order.serve.command.schedule.CancelScheduleCommand;
import
com.gogirl.shared.order.serve.command.schedule.SubmitScheduleCommand
;
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.qry.StoreTechnician
Query
;
import
com.gogirl.shared.order.serve.query.qry.StoreTechnician
Period
;
import
com.gogirl.shared.order.serve.query.qry.schedule.ScheduleManagePageQuery
;
import
java.text.ParseException
;
...
...
@@ -151,10 +151,20 @@ public interface ScheduleManageService extends IService<ScheduleManage> {
*/
IPage
<
LeisureScheduleServe
>
queryPageLeisureScheduleServe
(
LeisureScheduleServeQuery
query
);
List
<
StoreTechnicianQuery
>
storeTechnicianQueryList
(
Integer
scheduledId
,
Integer
departmentId
,
String
scheduleDate
,
List
<
Integer
>
serveIdList
)
throws
ParseException
;
/**
* 查询美甲师不可用时间段
*
* @param scheduledId 是否必传 否
* @param departmentId 店铺id
* @param scheduleDate localData
* @param serveIdList 预约的服务id
* @return
* @throws ParseException
*/
List
<
StoreTechnicianPeriod
>
queryStoreTechnicianPeriod
(
Integer
scheduledId
,
Integer
departmentId
,
String
scheduleDate
,
List
<
Integer
>
serveIdList
)
throws
ParseException
;
List
<
StoreTechnician
>
queryLeisureTechnician
(
Integer
departmentId
,
Integer
serveId
,
LocalDateTime
serveStartTime
,
LocalDateTime
serveEndTime
)
throws
ParseException
;
}
src/main/java/com/gogirl/application/order/serve/impl/OrderManageServiceImpl.java
View file @
bcc4b899
...
...
@@ -8,6 +8,7 @@ import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.gogirl.application.market.CouponCustomerRelevanceService
;
import
com.gogirl.application.market.CouponService
;
import
com.gogirl.application.market.MarketService
;
import
com.gogirl.application.market.TimesCardUsedRecordService
;
import
com.gogirl.application.order.serve.OrderManageService
;
...
...
@@ -16,6 +17,7 @@ import com.gogirl.application.order.serve.OrderServeSkuService;
import
com.gogirl.application.user.customer.CustomerBalanceService
;
import
com.gogirl.application.user.customer.CustomerService
;
import
com.gogirl.application.xcx.GogirlTokenService
;
import
com.gogirl.domain.market.coupon.Coupon
;
import
com.gogirl.domain.market.coupon.CouponCustomerRelevance
;
import
com.gogirl.domain.market.timescard.TimesCardUsedRecord
;
import
com.gogirl.domain.order.serve.*
;
...
...
@@ -316,8 +318,10 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
orderManage
.
setScheduleManage
(
list
.
stream
().
findAny
().
orElse
(
null
));
}
orderManage
.
getListOrderServer
().
forEach
(
orderServe
->
{
orderServe
.
setActualServeDuration
((
int
)
(
orderServe
.
getEndTime
().
getTime
()
-
orderServe
.
getStartTime
().
getTime
())
/
1000
/
60
);
if
(
orderServe
.
getEndTime
()!=
null
&&
orderServe
.
getStartTime
()!=
null
){
orderServe
.
setActualServeDuration
((
int
)
(
orderServe
.
getEndTime
().
getTime
()
-
orderServe
.
getStartTime
().
getTime
())
/
1000
/
60
);
}
});
});
...
...
@@ -435,6 +439,8 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
}
private
final
CouponService
couponService
;
@Override
public
void
recordOrderData
(
Integer
orderId
,
String
remark
,
String
userFeedback
,
String
picturePath
,
String
afterSaleIsBuyCard
,
String
afterSaleBuyCardReason
)
{
...
...
@@ -606,6 +612,17 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
orderManage
.
setStatus
(
OrderManage
.
STATUS_FINISHED
);
//订单已完成
orderManageMapper
.
updateById
(
orderManage
);
//如果全部项评论了
if
(
orderServeList
.
stream
().
noneMatch
(
orderServe
->
orderServe
.
getCommentStatus
().
equals
(
OrderServe
.
COMMENT_STATUS_NO
)))
{
orderManage
.
setStatus
(
OrderManage
.
STATUS_FINISHED
);
Coupon
coupon
=
couponService
.
getOne
(
new
LambdaQueryWrapper
<
Coupon
>().
eq
(
Coupon:
:
getName
,
"评价礼券"
));
if
(
coupon
!=
null
)
{
couponService
.
sendCoupon
(
coupon
.
getId
(),
orderManage
.
getOrderUser
());
}
orderManageMapper
.
updateById
(
orderManage
);
}
return
orderServeList
;
}
...
...
src/main/java/com/gogirl/application/order/serve/impl/ScheduleManageServiceImpl.java
View file @
bcc4b899
...
...
@@ -90,11 +90,6 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
/**
* rpc service
*/
// private final ScheduleManageControllerFeign scheduleManageControllerFeign;
// private final PurchaseSkuControllerFeign purchaseSkuControllerFeign;
// private final ServeControllerFeign serveControllerFeign;
// private final StoreManageControllerFeign storeManageControllerFeign;
// private final StoreTechnicianControllerFeign storeTechnicianControllerFeign;
private
final
GogirlProperties
gogirlProperties
;
private
final
ScheduleManageMapper
scheduleManageMapper
;
...
...
@@ -103,10 +98,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
private
final
BaseProduceMapper
baseProduceMapper
;
@Override
public
List
<
StoreTechnician
Query
>
storeTechnicianQueryList
(
Integer
scheduledId
,
Integer
departmentId
,
String
scheduleDate
,
List
<
Integer
>
serveIdList
)
throws
ParseException
{
public
List
<
StoreTechnician
Period
>
queryStoreTechnicianPeriod
(
Integer
scheduledId
,
Integer
departmentId
,
String
scheduleDate
,
List
<
Integer
>
serveIdList
)
throws
ParseException
{
//1.查询美甲师排班表
List
<
StoreClassesTechnician
>
storeClassesTechnicianList
=
storeClassesTechnicianService
.
listClassesTechnician
(
scheduledId
,
departmentId
,
scheduleDate
);
...
...
@@ -123,30 +118,18 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
.
collect
(
Collectors
.
toList
());
}
//
List
<
StoreTechnicianQuery
>
storeTechnicianDTOList
=
new
ArrayList
<>();
List
<
StoreTechnicianPeriod
>
storeTechnicianPeriodList
=
new
ArrayList
<>();
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
//遍历美甲师排班 获取每个美甲师的不可用时间段
for
(
StoreClassesTechnician
storeClassesTechnician
:
storeClassesTechnicianList
)
{
//美甲师正在服务的时间为不可用时间
List
<
ScheduleServe
>
scheduleServeList
=
storeClassesTechnician
.
getListScheduleServe
();
List
<
Period
>
periodList
=
scheduleServeList
.
stream
()
.
map
(
scheduleServe
->
new
Period
(
scheduleServe
.
getStartTime
().
getTime
(),
scheduleServe
.
getEndTime
().
getTime
()))
.
collect
(
Collectors
.
toList
());
//一天开始的时间
long
dayStartTime
=
simpleDateFormat
.
parse
(
scheduleDate
+
" 00:00:00"
).
getTime
();
//一天结束的时间
long
dayEndTime
=
simpleDateFormat
.
parse
(
scheduleDate
+
" 23:59:59"
).
getTime
();
//当前时间之前不可用
Period
period2
=
new
Period
(
dayStartTime
,
System
.
currentTimeMillis
());
periodList
.
add
(
period2
);
//上班开始时间str
String
startTime
=
storeClassesTechnician
.
getClassesManage
().
getStartTime
().
toString
();
//上班结束时间str
...
...
@@ -157,9 +140,25 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
//上班结束时间
long
workEndTime
=
simpleDateFormat
.
parse
(
scheduleDate
+
" "
+
endTime
).
getTime
();
//最晚可预约时间
String
latestScheduledTime
=
storeClassesTechnician
.
getClassesManage
().
getLatestScheduledTime
().
toString
();
//美甲师正在服务的时间为不可用时间
List
<
ScheduleServe
>
scheduleServeList
=
storeClassesTechnician
.
getListScheduleServe
();
//正在服务时间不可用
List
<
Period
>
periodList
=
scheduleServeList
.
stream
()
.
map
(
scheduleServe
->
new
Period
(
scheduleServe
.
getStartTime
().
getTime
(),
scheduleServe
.
getEndTime
().
getTime
()))
.
collect
(
Collectors
.
toList
());
//当前时间之前不可用
Period
period2
=
new
Period
(
dayStartTime
,
System
.
currentTimeMillis
());
periodList
.
add
(
period2
);
//最晚可预约时间
if
(
StringUtils
.
isNotEmpty
(
latestScheduledTime
)
&&
storeClassesTechnician
.
getClassesManage
().
getLatestScheduledTimeEnable
()
==
1
)
{
long
latestScheduledTimeMills
=
simpleDateFormat
.
parse
(
scheduleDate
+
" "
+
latestScheduledTime
).
getTime
();
...
...
@@ -191,27 +190,31 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
StoreTechnician
storeTechnician
=
storeClassesTechnician
.
getTechnicianManage
();
StoreTechnician
Query
storeTechnicianDTO
=
new
StoreTechnicianQuery
(
StoreTechnician
Period
storeTechnicianDTO
=
new
StoreTechnicianPeriod
(
periodList
,
storeTechnician
.
getId
(),
storeTechnician
.
getName
(),
storeTechnician
.
getPicturePath
(),
storeTechnician
.
getGrade
()
);
storeTechnician
DTO
List
.
add
(
storeTechnicianDTO
);
storeTechnician
Period
List
.
add
(
storeTechnicianDTO
);
}
return
storeTechnicianDTOList
;
return
storeTechnicianPeriodList
;
}
@Override
public
List
<
StoreTechnician
>
queryLeisureTechnician
(
Integer
departmentId
,
Integer
serveId
,
LocalDateTime
serveStartTime
,
LocalDateTime
serveEndTime
)
throws
ParseException
{
List
<
StoreTechnicianQuery
>
storeTechnicianQueryList
=
this
.
storeTechnicianQueryList
(
null
,
departmentId
,
serveStartTime
.
toLocalDate
().
toString
(),
Lists
.
newArrayList
(
serveId
));
public
List
<
StoreTechnician
>
queryLeisureTechnician
(
Integer
departmentId
,
Integer
serveId
,
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
());
List
<
Integer
>
technicianIds
=
storeTechnician
QueryList
.
stream
().
filter
(
storeTechnicianQuery
->
!
storeTechnician
Query
.
getPeriodList
().
stream
().
map
(
period
->
period
.
conflict
(
servePeriod
))
List
<
Integer
>
technicianIds
=
storeTechnician
PeriodList
.
stream
().
filter
(
storeTechnicianPeriod
->
!
storeTechnician
Period
.
getPeriodList
().
stream
().
map
(
period
->
period
.
conflict
(
servePeriod
))
.
collect
(
Collectors
.
toList
()).
contains
(
true
))
.
map
(
StoreTechnician
Query
:
:
getTechnicianId
)
.
map
(
StoreTechnician
Period
:
:
getTechnicianId
)
.
collect
(
Collectors
.
toList
());
if
(
ListUtil
.
isNotEmpty
(
technicianIds
))
{
return
storeTechnicianMapper
.
selectBatchIds
(
technicianIds
);
...
...
@@ -227,7 +230,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
List
<
StoreTechnician
Query
>
storeTechnicianDTOList
=
this
.
storeTechnicianQueryList
(
qry
.
getId
(),
qry
.
getDepartmentId
(),
qry
.
getScheduleDate
(),
qry
.
getListScheduleServer
().
stream
().
map
(
ScheduleServe:
:
getServeId
).
collect
(
Collectors
.
toList
()));
List
<
StoreTechnician
Period
>
storeTechnicianDTOList
=
this
.
queryStoreTechnicianPeriod
(
qry
.
getId
(),
qry
.
getDepartmentId
(),
qry
.
getScheduleDate
(),
qry
.
getListScheduleServer
().
stream
().
map
(
ScheduleServe:
:
getServeId
).
collect
(
Collectors
.
toList
()));
idleTimeQuery
.
setStoreTechnicianDTOList
(
storeTechnicianDTOList
);
...
...
@@ -302,7 +305,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
List
<
ScheduleServeQuery
>
cloneMainServeDTOList
=
mainServeDTOList
.
stream
().
map
(
CloneUtil:
:
deepClone
).
collect
(
Collectors
.
toList
());
//美甲师深度克隆
List
<
StoreTechnician
Query
>
cloneStoreTechnicianDTOList
=
idleTimeQuery
.
getStoreTechnicianDTOList
().
stream
().
map
(
CloneUtil:
:
deepClone
).
collect
(
Collectors
.
toList
());
List
<
StoreTechnician
Period
>
cloneStoreTechnicianDTOList
=
idleTimeQuery
.
getStoreTechnicianDTOList
().
stream
().
map
(
CloneUtil:
:
deepClone
).
collect
(
Collectors
.
toList
());
//构造预约方案树🌲
TreeProgram
treeProgram
=
this
.
rec
(
new
LinkedList
<>(
cloneMainServeDTOList
),
cloneStoreTechnicianDTOList
,
TreeProgram
.
root
());
...
...
@@ -362,7 +365,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
private
TreeProgram
rec
(
Queue
<
ScheduleServeQuery
>
scheduleServeQueryList
,
List
<
StoreTechnician
Query
>
storeTechnicians
,
List
<
StoreTechnician
Period
>
storeTechnicians
,
TreeProgram
parent
)
{
long
time
=
System
.
currentTimeMillis
();
...
...
@@ -387,7 +390,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
TreeProgram
t
=
CloneUtil
.
deepClone
(
parent
);
List
<
StoreTechnician
Query
>
treeProgramList
=
Lists
.
newArrayList
();
List
<
StoreTechnician
Period
>
treeProgramList
=
Lists
.
newArrayList
();
while
(
t
!=
null
&&
t
.
getParent
()
!=
null
)
{
if
(
t
.
getStoreTechnicianDTO
()
!=
null
)
{
...
...
@@ -395,7 +398,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
t
=
t
.
getParent
();
}
List
<
Integer
>
technicianIds
=
treeProgramList
.
stream
().
map
(
StoreTechnician
Query
:
:
getTechnicianId
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
technicianIds
=
treeProgramList
.
stream
().
map
(
StoreTechnician
Period
:
:
getTechnicianId
).
collect
(
Collectors
.
toList
());
Integer
technicianId
=
storeTechnician
.
getTechnicianId
();
log
.
info
(
"technicianIds:{},technicianId:{}"
,
technicianIds
,
technicianId
);
...
...
@@ -447,7 +450,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
private
boolean
test
(
List
<
TreeProgram
>
path
)
{
Map
<
StoreTechnician
Query
,
List
<
TreeProgram
>>
map
=
path
.
stream
()
Map
<
StoreTechnician
Period
,
List
<
TreeProgram
>>
map
=
path
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
TreeProgram:
:
getStoreTechnicianDTO
));
List
<
TreeProgram
>
treePrograms
=
map
.
values
().
stream
()
...
...
@@ -471,7 +474,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
boolean
bool
=
true
;
for
(
TreeProgram
treeProgram
:
treePrograms
)
{
StoreTechnician
Query
storeTechnician
=
treeProgram
.
getStoreTechnicianDTO
();
StoreTechnician
Period
storeTechnician
=
treeProgram
.
getStoreTechnicianDTO
();
ScheduleServeQuery
scheduleServeQuery
=
treeProgram
.
getScheduleServeQuery
();
for
(
Period
period
:
storeTechnician
.
getPeriodList
())
{
...
...
@@ -526,7 +529,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
return
Lists
.
newArrayList
();
}
List
<
StoreTechnician
Query
>
storeTechnicianQueryList
=
this
.
storeTechnicianQueryList
(
null
,
departmentId
,
scheduleDate
,
null
);
List
<
StoreTechnician
Period
>
storeTechnicianPeriodList
=
this
.
queryStoreTechnicianPeriod
(
null
,
departmentId
,
scheduleDate
,
null
);
int
finalWeekday
=
weekday
;
List
<
IdleTimeDTO
>
result
=
dateTimeList
.
stream
()
...
...
@@ -537,17 +540,17 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
List
<
LeisureTechServe
>
leisureTechServeList
=
new
ArrayList
<>();
List
<
BaseServe
>
list
=
leisureDiscountConfigMapper
.
selectByDepartmentIdAndWeekAndDateTime
(
departmentId
,
finalWeekday
,
idleTimeDTO
.
getTime
());
storeTechnician
QueryList
.
forEach
(
storeTechnicianQuery
->
{
storeTechnician
PeriodList
.
forEach
(
storeTechnicianPeriod
->
{
List
<
BaseServe
>
canScheduledServeList
=
list
.
stream
()
.
filter
(
baseServe
->
{
Period
servePeriod
=
new
Period
(
dateTime
,
dateTime
+
baseServe
.
getServiceDuration
()
*
60L
*
1000
);
//如果和美甲师空闲列表冲突 返回false过滤
boolean
b
=
storeTechnician
Query
.
getPeriodList
().
stream
().
map
(
period
->
period
.
conflict
(
servePeriod
)).
collect
(
Collectors
.
toList
()).
contains
(
true
);
boolean
b
=
storeTechnician
Period
.
getPeriodList
().
stream
().
map
(
period
->
period
.
conflict
(
servePeriod
)).
collect
(
Collectors
.
toList
()).
contains
(
true
);
return
!
b
;
})
.
collect
(
Collectors
.
toList
());
canScheduledServeList
.
forEach
(
canScheduledServe
->
{
this
.
addLeisureTechServe
(
leisureTechServeList
,
storeTechnician
Query
.
getTechnicianId
(),
canScheduledServe
.
getId
());
this
.
addLeisureTechServe
(
leisureTechServeList
,
storeTechnician
Period
.
getTechnicianId
(),
canScheduledServe
.
getId
());
});
});
idleTimeDTO
.
setIsLeisureDiscount
(
1
);
...
...
@@ -617,7 +620,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
if
(!
scheduleServeSet
.
stream
().
map
(
ScheduleServe:
:
getStatus
).
map
(
stats
->
stats
==
3
).
collect
(
Collectors
.
toList
()).
contains
(
false
))
{
if
(!
scheduleManage
.
getStatus
().
equals
(
8
)
||
scheduleManage
.
getStatus
()
!=
3
)
{
if
(!
scheduleManage
.
getStatus
().
equals
(
8
)
&&
scheduleManage
.
getStatus
()
!=
3
)
{
throw
new
RRException
(
"重复请求"
);
}
...
...
@@ -902,14 +905,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
latestOfDayString
;
}
@Override
public
void
submitSchedule
(
SubmitScheduleCommand
cmd
)
{
private
void
validSubmit
(
SubmitScheduleCommand
cmd
)
{
ScheduleManageCommand
scheduleManageDTO
=
cmd
.
getScheduleManageDTO
();
cmd
.
getScheduleManageDTO
().
getScheduleServeDTOList
().
forEach
(
scheduleServeCommand
->
{
if
(
scheduleServeCommand
.
getMainServeId
()
==
null
)
{
BaseServe
baseServe
=
baseServeMapper
.
selectById
(
scheduleServeCommand
.
getServeId
());
List
<
ScheduleServe
>
typeConflictScheduleServe
=
scheduleServeMapper
.
selectConflictType
(
...
...
@@ -919,14 +918,12 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
}
});
}
this
.
setScheduleServe
(
cmd
.
getScheduleManageDTO
(),
cmd
.
getDefaultNodeList
());
ScheduleManageCommand
scheduleManageCommand
=
cmd
.
getScheduleManageDTO
();
private
String
getScheduleNo
(
Integer
deparmentId
)
{
//调用店铺服务根据id查询店铺
StoreManage
storeManage
=
storeManageMapper
.
selectById
(
scheduleManageCommand
.
getDepartmentId
());
StoreManage
storeManage
=
storeManageMapper
.
selectById
(
deparmentId
);
//生成预约单号
String
shortCode
=
storeManage
.
getShortCode
();
...
...
@@ -943,8 +940,23 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
else
{
lastOfDayString
=
String
.
format
(
"%04d"
,
(
Integer
.
parseInt
(
lastOfDay
.
getScheduledNo
().
substring
(
lastOfDay
.
getScheduledNo
().
length
()
-
4
))
+
1
));
}
return
shortCode
+
day
+
lastOfDayString
;
}
scheduleManageCommand
.
setScheduledNo
(
shortCode
+
day
+
lastOfDayString
);
@Override
public
void
submitSchedule
(
SubmitScheduleCommand
cmd
)
{
this
.
validSubmit
(
cmd
);
//预约服务补充
this
.
setScheduleServe
(
cmd
.
getScheduleManageDTO
(),
cmd
.
getDefaultNodeList
());
ScheduleManageCommand
scheduleManageCommand
=
cmd
.
getScheduleManageDTO
();
StoreManage
storeManage
=
storeManageMapper
.
selectById
(
scheduleManageCommand
.
getDepartmentId
());
//获取预约号
String
scheduleNo
=
this
.
getScheduleNo
(
storeManage
.
getId
());
scheduleManageCommand
.
setScheduledNo
(
scheduleNo
);
Customer
customer
=
customerService
.
getById
(
scheduleManageCommand
.
getScheduledUser
());
...
...
@@ -966,8 +978,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
//设置服务店铺名称
scheduleManageCommand
.
setDepartmentName
(
storeManage
.
getName
());
//预约服务
this
.
setSeverProduce
(
scheduleManageCommand
);
scheduleManageCommand
.
getScheduleServeDTOList
().
forEach
(
scheduleServeCommand
->
{
scheduleServeCommand
.
setTechnicianIds
(
String
.
valueOf
(
scheduleServeCommand
.
getTechnicianId
()));
scheduleServeCommand
.
setTechnicianNames
(
scheduleServeCommand
.
getTechnicianName
());
...
...
@@ -1496,7 +1507,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
wrapper
.
orderByDesc
(
ScheduleManage:
:
getArriveTime
);
}
IPage
<
ScheduleManage
>
page
=
new
Page
<>();
IPage
<
ScheduleManage
>
page
=
new
Page
<>(
qry
.
getPageNum
(),
qry
.
getPageSize
()
);
page
=
scheduleManageMapper
.
selectPage
(
page
,
wrapper
);
if
(
ListUtil
.
isEmpty
(
page
.
getRecords
()))
{
...
...
@@ -1597,12 +1608,12 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
||
defaultNode
.
getScheduleServeQuery
().
getServeId
().
equals
(
scheduleServe
.
getMainServeId
()))
.
forEach
(
scheduleServeCommand
->
{
ScheduleServeQuery
scheduleServeQuery
=
defaultNode
.
getScheduleServeQuery
();
StoreTechnician
Query
storeTechnicianQuery
=
defaultNode
.
getStoreTechnicianDTO
();
StoreTechnician
Period
storeTechnicianPeriod
=
defaultNode
.
getStoreTechnicianDTO
();
Period
schedulePeriod
=
scheduleServeQuery
.
getPeriod
();
scheduleServeCommand
.
setStartTime
(
new
Date
(
schedulePeriod
.
getStartTime
()));
scheduleServeCommand
.
setEndTime
(
new
Date
(
schedulePeriod
.
getEndTime
()));
scheduleServeCommand
.
setTechnicianId
(
storeTechnician
Query
.
getTechnicianId
());
scheduleServeCommand
.
setTechnicianId
(
storeTechnician
Period
.
getTechnicianId
());
scheduleServeCommand
.
setServeNumber
(
1
);
});
});
...
...
src/main/java/com/gogirl/application/product/serve/impl/BaseProduceServiceImpl.java
View file @
bcc4b899
...
...
@@ -10,6 +10,7 @@ import com.gogirl.domain.product.serve.BaseFeatures;
import
com.gogirl.domain.product.serve.BaseProduce
;
import
com.gogirl.domain.product.serve.PraiseRecord
;
import
com.gogirl.infrastructure.common.exception.RRException
;
import
com.gogirl.infrastructure.common.util.ListUtil
;
import
com.gogirl.infrastructure.mapper.product.serve.BaseFeaturesMapper
;
import
com.gogirl.infrastructure.mapper.product.serve.BaseProduceMapper
;
import
com.gogirl.infrastructure.mapper.product.serve.PraiseRecordMapper
;
...
...
@@ -19,6 +20,8 @@ import org.springframework.stereotype.Service;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Service
...
...
@@ -52,6 +55,21 @@ public class BaseProduceServiceImpl extends ServiceImpl<BaseProduceMapper, BaseP
//排序条件 1-saleNum 2-index_sort
Integer
sort
=
baseFeatures
!=
null
&&
baseFeatures
.
getName
().
equals
(
"热销款"
)
?
1
:
2
;
page
=
baseProduceMapper
.
queryProducePage
(
page
,
featuresId
,
serveTypeId
,
sort
);
List
<
Integer
>
produceIds
=
page
.
getRecords
().
stream
().
map
(
BaseProduce:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
PraiseRecord
>
praiseRecordList
=
praiseRecordMapper
.
selectList
(
new
LambdaQueryWrapper
<
PraiseRecord
>()
.
in
(
PraiseRecord:
:
getServeId
,
produceIds
)
.
eq
(
PraiseRecord:
:
getType
,
2
));
Map
<
Integer
,
List
<
PraiseRecord
>>
map
=
praiseRecordList
.
stream
().
collect
(
Collectors
.
groupingBy
(
PraiseRecord:
:
getServeId
));
page
.
getRecords
().
forEach
(
baseProduce
->
{
List
<
PraiseRecord
>
mapPraiseRecordList
=
map
.
get
(
baseProduce
.
getId
());
if
(
ListUtil
.
isNotEmpty
(
mapPraiseRecordList
))
{
baseProduce
.
setPraiseRecord
(
mapPraiseRecordList
.
stream
().
findAny
().
orElse
(
null
));
}
else
{
baseProduce
.
setPraiseRecord
(
new
PraiseRecord
());
}
});
return
page
;
}
...
...
src/main/java/com/gogirl/application/store/store/StoreClassesTechnicianService.java
View file @
bcc4b899
...
...
@@ -25,7 +25,7 @@ public interface StoreClassesTechnicianService extends IService<StoreClassesTech
/**
* 查询美甲师排班详
情
* 查询美甲师排班详
和美甲师当前正在做的服务
*
* @param userId
* @param days
...
...
@@ -33,6 +33,14 @@ public interface StoreClassesTechnicianService extends IService<StoreClassesTech
*/
List
<
StoreClassesTechnician
>
listClassesTechnicianDetail
(
Integer
userId
,
String
days
);
/**
* 店铺端查询美甲师可用时间
*
* @param startDate
* @param startTime
* @param departmentId
* @return
*/
List
<
StoreClassesTechnician
>
getReservableTime
(
String
startDate
,
String
startTime
,
Integer
departmentId
);
/**
...
...
@@ -51,6 +59,4 @@ public interface StoreClassesTechnicianService extends IService<StoreClassesTech
*/
void
updateDayTechnicianClasses
(
ParmTechnicianClasses
parmTechnicianClasses
)
throws
ParseException
;
List
<
StoreTechnician
>
queryDayTechnicianClassesList
(
Integer
departmentId
,
Date
day
);
}
src/main/java/com/gogirl/application/store/store/impl/StoreClassesTechnicianServiceImpl.java
View file @
bcc4b899
...
...
@@ -46,7 +46,6 @@ public class StoreClassesTechnicianServiceImpl extends ServiceImpl<StoreClassesT
@Override
public
List
<
StoreClassesTechnician
>
listClassesTechnician
(
Integer
scheduledId
,
Integer
departmentId
,
String
days
)
{
return
storeClassesTechnicianMapper
.
listClassesTechnician
(
scheduledId
,
departmentId
,
days
);
}
...
...
@@ -59,7 +58,7 @@ public class StoreClassesTechnicianServiceImpl extends ServiceImpl<StoreClassesT
public
List
<
StoreTechnician
>
queryDayTechnicianClasses
(
Integer
departmentId
,
Date
day
)
{
//查询店铺下的美甲师
List
<
StoreTechnician
>
list
=
this
.
queryDayTechnicianClassesList
(
departmentId
,
day
);
List
<
StoreTechnician
>
list
=
storeTechnicianMapper
.
queryDayTechnicianClasses
(
departmentId
,
day
);
list
.
forEach
(
storeTechnician
->
{
StoreClassesTechnician
storeClassesTechnician
=
storeClassesTechnicianMapper
.
selectOneClassTech
(
departmentId
,
day
,
storeTechnician
.
getTechnicianId
());
...
...
@@ -166,9 +165,9 @@ public class StoreClassesTechnicianServiceImpl extends ServiceImpl<StoreClassesT
private
final
StoreTechnicianMapper
storeTechnicianMapper
;
@Override
public
List
<
StoreTechnician
>
queryDayTechnicianClassesList
(
Integer
departmentId
,
Date
day
)
{
return
storeTechnicianMapper
.
queryDayTechnicianClasses
(
departmentId
,
day
)
;
}
//
@Override
//
public List<StoreTechnician> queryDayTechnicianClassesList(Integer departmentId, Date day) {
// return
;
//
}
}
src/main/java/com/gogirl/application/user/investigation/impl/BaseQuestionServiceImpl.java
View file @
bcc4b899
package
com
.
gogirl
.
application
.
user
.
investigation
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.gogirl.application.market.CouponService
;
import
com.gogirl.application.store.complaint.ComplaintMainService
;
import
com.gogirl.application.user.investigation.BaseQuestionService
;
import
com.gogirl.application.user.investigation.OrderQuestionOptionService
;
import
com.gogirl.application.user.investigation.TestPaperQuestionService
;
import
com.gogirl.domain.market.coupon.Coupon
;
import
com.gogirl.domain.user.investigation.*
;
import
com.gogirl.infrastructure.mapper.user.investigation.BaseQuestionMapper
;
import
com.gogirl.infrastructure.mapper.user.investigation.TestPaperCustomerMapMapper
;
...
...
@@ -29,6 +32,8 @@ public class BaseQuestionServiceImpl extends ServiceImpl<BaseQuestionMapper, Bas
private
final
OrderQuestionOptionService
orderQuestionOptionService
;
private
final
ComplaintMainService
complaintMainService
;
private
final
CouponService
couponService
;
@Override
public
List
<
BaseQuestion
>
getTestPaper
(
Integer
currentCustomerId
)
{
return
baseQuestionMapper
.
getTestPaper
(
currentCustomerId
);
...
...
@@ -69,6 +74,12 @@ public class BaseQuestionServiceImpl extends ServiceImpl<BaseQuestionMapper, Bas
orderQuestionOptionService
.
saveBatch
(
list
);
complaintMainService
.
saveComplainsByOrderQuestion
(
list
);
Coupon
coupon
=
couponService
.
getOne
(
new
LambdaQueryWrapper
<
Coupon
>().
eq
(
Coupon:
:
getName
,
"问卷调查礼券"
));
if
(
coupon
!=
null
)
{
couponService
.
sendCoupon
(
coupon
.
getId
(),
currentCustomerId
);
}
}
...
...
src/main/java/com/gogirl/domain/market/discount/DiscountConfig.java
View file @
bcc4b899
...
...
@@ -34,4 +34,5 @@ public class DiscountConfig {
@ApiModelProperty
(
"备注"
)
private
String
remark
;
private
Integer
couponId
;
}
src/main/java/com/gogirl/infrastructure/mapper/store/store/StoreClassesTechnicianMapper.java
View file @
bcc4b899
...
...
@@ -3,19 +3,22 @@ package com.gogirl.infrastructure.mapper.store.store;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.gogirl.domain.store.store.StoreClassesTechnician
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
import
java.util.List
;
/**
* Created by yinyong on 2018/9/20.
*/
@Repository
public
interface
StoreClassesTechnicianMapper
extends
BaseMapper
<
StoreClassesTechnician
>
{
/**
* 查询美甲师排班和美甲师正在做的服务
*
* @param scheduleId 如果传id正在做的服务要排除这个预约
* @param departmentId 店铺id
* @param days 日志 localDate
* @return
*/
List
<
StoreClassesTechnician
>
listClassesTechnician
(
@Param
(
"scheduleId"
)
Integer
scheduleId
,
@Param
(
"departmentId"
)
Integer
departmentId
,
@Param
(
"days"
)
String
days
);
...
...
src/main/java/com/gogirl/interfaces/order/serve/ScheduleManageController.java
View file @
bcc4b899
...
...
@@ -74,9 +74,7 @@ public class ScheduleManageController {
@PostMapping
(
"/customer/schedule/submitSchedule"
)
public
JsonResult
<
Void
>
submitSchedule
(
@RequestHeader
String
token
,
@RequestBody
SubmitScheduleCommand
cmd
)
{
Integer
currentCustomerId
=
Optional
.
ofNullable
(
gogirlTokenService
.
getByToken
(
token
).
getCustomerId
())
.
orElseThrow
(()
->
new
RRException
(
500
,
"token不存在"
));
cmd
.
getScheduleManageDTO
().
setScheduledUser
(
currentCustomerId
);
cmd
.
getScheduleManageDTO
().
setScheduledUser
(
SessionUtils
.
getCustomerId
());
scheduleManageService
.
submitSchedule
(
cmd
);
return
JsonResult
.
success
();
}
...
...
src/main/java/com/gogirl/interfaces/xcx/PayController.java
View file @
bcc4b899
...
...
@@ -268,79 +268,7 @@ public class PayController {
String
refereeId
,
String
remark
)
{
Customer
customer
=
customerService
.
selectByPhone
(
phone
);
GogirlToken
gogirlToken
=
gogirlTokenService
.
getByToken
(
token
);
Integer
departmentId
=
gogirlToken
.
getDepartmentId
();
log
.
info
(
"{} 充值给 {}"
,
gogirlToken
.
getTechnicianId
(),
phone
);
//新建会员
if
(
customer
==
null
)
{
customer
=
new
Customer
();
customer
.
setStoreRecordRealName
(
name
);
customer
.
setPhone
(
phone
);
customerService
.
save
(
customer
);
}
//更新会员的店员记录名字
else
if
(
name
!=
null
&&
!
name
.
isEmpty
())
{
customer
.
setStoreRecordRealName
(
name
);
customerService
.
updateById
(
customer
);
}
//店铺会员关联
customerDepartmentRelevanceService
.
insertDepartmentRelevanceIfNotExist
(
customer
.
getId
(),
departmentId
,
4
,
new
Date
());
//折扣信息
DiscountConfig
discountConfig
=
discountConfigService
.
selectByCharge
((
int
)
(
amount
*
100
));
//会员卡
CustomerBalance
customerBalance
=
customerBalanceMapper
.
selectOne
(
new
LambdaQueryWrapper
<
CustomerBalance
>()
.
eq
(
CustomerBalance:
:
getCustomerId
,
customer
.
getId
()));
//充值类型
Integer
type
=
customerBalance
==
null
?
2
:
1
;
//如果会员卡不存在就新增会员卡
if
(
customerBalance
==
null
)
{
customerBalance
=
CustomerBalance
.
getInstance
(
customer
.
getId
());
customerBalanceMapper
.
insert
(
customerBalance
);
}
int
chargeAmount
=
(
int
)
(
amount
*
100
);
//充值订单id
String
orderId
=
IdWorker
.
getIdStr
();
//更新余额
customerBalance
.
setBalance
(
customerBalance
.
getBalance
()
+
chargeAmount
);
customerBalance
.
setTotalCharge
(
customerBalance
.
getTotalCharge
()
+
chargeAmount
);
customerBalance
.
setUpdateTime
(
new
Date
());
//会员等级
customerBalance
.
setLevel
(
discountConfig
.
getLevel
());
customerBalanceMapper
.
updateById
(
customerBalance
);
//充值流水
CustomerBalanceRecord
customerBalanceRecord
=
CustomerBalanceRecord
.
builder
()
.
currentBalance
(
customerBalance
.
getBalance
())
.
customerId
(
customer
.
getId
())
//充送金额由定时任务计算
.
bestowAmount
(
0
)
.
departmentId
(
gogirlToken
.
getDepartmentId
())
.
departmentName
(
gogirlToken
.
getDepartmentName
())
.
discount
(
1
d
)
.
orderAmount
(
chargeAmount
)
.
orderId
(
orderId
)
//支付方式
.
source
(
source
)
.
refereeId
(
refereeId
)
.
remark
(
remark
)
//订单类型
.
type
(
type
)
.
time
(
new
Date
())
.
build
();
customerBalanceRecordMapper
.
insert
(
customerBalanceRecord
);
chargeOrderService
.
chargeCustomerCard
(
name
,
phone
,
amount
,
source
,
refereeId
,
remark
);
return
JsonResult
.
success
();
}
}
src/main/java/com/gogirl/shared/order/serve/query/qry/IdleTimeQuery.java
View file @
bcc4b899
...
...
@@ -9,7 +9,7 @@ import java.util.List;
public
class
IdleTimeQuery
{
@ApiModelProperty
(
"所有美甲师"
)
List
<
StoreTechnician
Query
>
storeTechnicianDTOList
;
List
<
StoreTechnician
Period
>
storeTechnicianDTOList
;
@ApiModelProperty
(
"时间节点"
)
List
<
Long
>
dateTimeList
;
...
...
src/main/java/com/gogirl/shared/order/serve/query/qry/StoreTechnician
Query
.java
→
src/main/java/com/gogirl/shared/order/serve/query/qry/StoreTechnician
Period
.java
View file @
bcc4b899
...
...
@@ -10,7 +10,7 @@ import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
StoreTechnician
Query
implements
Serializable
{
public
class
StoreTechnician
Period
implements
Serializable
{
/**
* 美甲师的不可用时间段
...
...
@@ -20,7 +20,11 @@ public class StoreTechnicianQuery implements Serializable {
* 美甲师id
*/
private
Integer
technicianId
;
//美甲师姓名
private
String
name
;
private
String
picturePath
;
private
String
grade
;
}
src/main/java/com/gogirl/shared/order/serve/query/qry/TreeProgram.java
View file @
bcc4b899
...
...
@@ -16,7 +16,7 @@ public class TreeProgram implements Serializable {
/**
* 节点的美甲师
*/
StoreTechnician
Query
storeTechnicianDTO
;
StoreTechnician
Period
storeTechnicianDTO
;
/**
* 节点的服务
...
...
@@ -50,7 +50,7 @@ public class TreeProgram implements Serializable {
* @param scheduleServeQuery 节点服务
* @param parent 父节点
*/
public
TreeProgram
(
StoreTechnician
Query
storeTechnicianDTO
,
ScheduleServeQuery
scheduleServeQuery
,
TreeProgram
parent
)
{
public
TreeProgram
(
StoreTechnician
Period
storeTechnicianDTO
,
ScheduleServeQuery
scheduleServeQuery
,
TreeProgram
parent
)
{
this
.
storeTechnicianDTO
=
storeTechnicianDTO
;
...
...
src/main/resources/mapper/product/MallProductMapper.xml
View file @
bcc4b899
...
...
@@ -8,7 +8,7 @@
left join mall_category mc on mcpr.mall_category_id = mc.id
where true
<if
test=
"param.mallCategoryId!=null"
>
and
t3
.id=#{param.mallCategoryId}
and
mc
.id=#{param.mallCategoryId}
</if>
<if
test=
"param.isHot!=null"
>
and t1.is_hot=#{param.isHot}
...
...
@@ -17,7 +17,7 @@
and t1.name like concat('%',#{param.searchWord},'%')
</if>
<if
test=
"param.status!=null"
>
and t1.`status` =
param.status
and t1.`status` =
#{param.status}
</if>
</select>
</mapper>
\ No newline at end of file
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