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
b6943319
Commit
b6943319
authored
Apr 14, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
企业微信通知
parent
0b362d2e
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
202 additions
and
13 deletions
+202
-13
ScheduleManageServiceImpl.java
...plication/order/serve/impl/ScheduleManageServiceImpl.java
+20
-7
EnterpriseWxMsg.java
src/main/java/com/gogirl/dto/EnterpriseWxMsg.java
+18
-0
GogirlProperties.java
...girl/infrastructure/config/property/GogirlProperties.java
+2
-0
PushMsgService.java
...om/gogirl/infrastructure/service/push/PushMsgService.java
+9
-0
TechnicianPushService.java
...rl/infrastructure/service/push/TechnicianPushService.java
+28
-0
TechnicianPushServiceImpl.java
...tructure/service/push/impl/TechnicianPushServiceImpl.java
+81
-0
TreeProgram.java
.../com/gogirl/shared/order/serve/query/qry/TreeProgram.java
+35
-0
application-dev.yml
src/main/resources/application-dev.yml
+4
-2
application-pre.yml
src/main/resources/application-pre.yml
+3
-2
application-prod.yml
src/main/resources/application-prod.yml
+1
-1
application-test.yml
src/main/resources/application-test.yml
+1
-1
No files found.
src/main/java/com/gogirl/application/order/serve/impl/ScheduleManageServiceImpl.java
View file @
b6943319
...
...
@@ -783,28 +783,37 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
/*2、校验提交的预约时间是否可约*/
IdleTimeQuery
query
=
new
IdleTimeQuery
();
//店铺id
query
.
setDepartmentId
(
scheduleManage
.
getDepartmentId
());
//预约日期
query
.
setScheduleDate
(
new
SimpleDateFormat
(
"yyyy-MM-dd"
).
format
(
scheduleManage
.
getArriveTime
()));
query
.
setListScheduleServer
(
scheduleManage
.
getListScheduleServer
()
.
stream
()
.
map
(
scheduleServeCommand
->
{
ScheduleServeQuery
scheduleServe
=
new
ScheduleServeQuery
();
//时长
scheduleServe
.
setLengthTimeForEndTime
(
scheduleServeCommand
.
getLengthTime
());
//款式id
scheduleServe
.
setProduceId
(
scheduleServeCommand
.
getProduceId
());
//服务id
scheduleServe
.
setServeId
(
scheduleServeCommand
.
getServeId
());
return
scheduleServe
;
})
.
collect
(
Collectors
.
toList
()));
//是否显示详情
query
.
setShowNodeDetail
(
true
);
//查询时间节点
query
.
setDateTimeList
(
Lists
.
newArrayList
(
scheduleManage
.
getArriveTime
().
getTime
()));
//查询方案树
List
<
IdleTimeDTO
>
idleTimeDTOList
=
this
.
queryIdleTime
(
query
);
//如果时间节点不可用返回false
IdleTimeDTO
idleTimeDTO
=
idleTimeDTOList
.
stream
().
findAny
().
orElseThrow
(
NullPointerException:
:
new
);
if
(!
idleTimeDTO
.
isStatus
())
{
throw
new
RRException
(
"预约时间不可用"
);
}
/*3、
判断美甲师是否是可用的美甲师
*/
//构造
子树
/*3、
如果是指定美甲师、判断美甲师是否仍然可用
*/
//构造
路径
List
<
TreeProgram
>
treeProgramList
=
new
ArrayList
<>();
TreeProgram
treeProgram
=
new
TreeProgram
();
List
<
ScheduleServe
>
scheduleServeList
=
scheduleManage
.
getListScheduleServer
()
...
...
@@ -812,14 +821,17 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
.
filter
(
scheduleServe
->
scheduleServe
.
getServeId
()
==
null
)
.
collect
(
Collectors
.
toList
());
List
<
List
<
ScheduleServe
>>
params
=
new
ArrayList
<>();
scheduleServeList
.
forEach
(
scheduleServe
->
{
params
.
add
(
CloneUtil
.
deepClone
(
scheduleServeList
));
});
//方案树
TreeProgram
targetTree
=
idleTimeDTO
.
getTreeProgram
();
boolean
isPath
=
treeProgram
.
isSubTree
(
targetTree
);
if
(!
isPath
)
{
throw
new
RRException
(
"请重新选择美甲师"
);
}
}
}
/**
* 通过ScheduleServe构建TreeProgram
*
...
...
@@ -869,6 +881,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
public
void
submitSchedule
(
SubmitScheduleCommand
cmd
)
throws
ParseException
,
ExecutionException
,
InterruptedException
{
/*1、校验*/
cmd
.
getScheduleManageDTO
().
setScheduledUser
(
SessionUtils
.
getCustomerId
());
//参数补全
ScheduleManage
scheduleManage
=
this
.
setScheduleServe
(
cmd
.
getScheduleManageDTO
(),
cmd
.
getDefaultNodeList
());
this
.
validSubmit
(
scheduleManage
);
...
...
@@ -1139,7 +1152,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
List
<
ScheduleServeCommand
>
scheduleServeCommandList
=
cmd
.
getScheduleServeDTOList
();
//根据defaultNodeList的参数设置服务开始时间,服务结束时间,服务美甲师
//
如果defaultNodeList不为空
根据defaultNodeList的参数设置服务开始时间,服务结束时间,服务美甲师
if
(
ListUtil
.
isNotEmpty
(
defaultNodeList
))
{
defaultNodeList
.
forEach
(
defaultNode
->
{
scheduleServeCommandList
...
...
src/main/java/com/gogirl/dto/EnterpriseWxMsg.java
0 → 100644
View file @
b6943319
package
com
.
gogirl
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
EnterpriseWxMsg
{
private
String
msgType
;
private
EnterpriseTextWxMsg
text
;
@Data
public
static
class
EnterpriseTextWxMsg
{
private
String
content
;
private
List
<
String
>
mentioned_mobile_list
;
}
}
src/main/java/com/gogirl/infrastructure/config/property/GogirlProperties.java
View file @
b6943319
...
...
@@ -62,4 +62,6 @@ public class GogirlProperties {
private
String
adminBackendUrl
;
private
String
adminBackendAchievementsUrl
;
private
String
enterpriseWechatWebhook
;
}
src/main/java/com/gogirl/infrastructure/service/push/PushMsgService.java
View file @
b6943319
...
...
@@ -8,6 +8,15 @@ import java.util.Date;
*/
public
interface
PushMsgService
{
/**
* 发送预约消息
*
* @param openId
* @param scheduleName
* @param arriveTime
* @param departmentName
* @param address
*/
void
sendScheduleMsg
(
String
openId
,
String
scheduleName
,
Date
arriveTime
,
...
...
src/main/java/com/gogirl/infrastructure/service/push/TechnicianPushService.java
0 → 100644
View file @
b6943319
package
com
.
gogirl
.
infrastructure
.
service
.
push
;
public
interface
TechnicianPushService
{
/**
* 预约提醒
*
* @param scheduledId
*/
void
scheduledMsg
(
Integer
scheduledId
);
/**
* 取消预约提醒
*
* @param scheduledId
*/
void
cancelScheduledMsg
(
Integer
scheduledId
);
/**
* 预约过期
*
* @param scheduledId
*/
void
ScheduledOverTimeMsg
(
Integer
scheduledId
);
}
src/main/java/com/gogirl/infrastructure/service/push/impl/TechnicianPushServiceImpl.java
0 → 100644
View file @
b6943319
package
com
.
gogirl
.
infrastructure
.
service
.
push
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.gogirl.domain.order.serve.ScheduleManage
;
import
com.gogirl.domain.order.serve.ScheduleServe
;
import
com.gogirl.domain.store.store.StoreTechnician
;
import
com.gogirl.dto.EnterpriseWxMsg
;
import
com.gogirl.infrastructure.config.property.GogirlProperties
;
import
com.gogirl.infrastructure.mapper.order.serve.ScheduleManageMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.ScheduleServeMapper
;
import
com.gogirl.infrastructure.mapper.store.store.StoreTechnicianMapper
;
import
com.gogirl.infrastructure.service.push.TechnicianPushService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
@Slf4j
public
class
TechnicianPushServiceImpl
implements
TechnicianPushService
{
@Resource
RestTemplate
restTemplate
;
@Resource
ScheduleManageMapper
scheduleManageMapper
;
@Resource
ScheduleServeMapper
scheduleServeMapper
;
@Resource
StoreTechnicianMapper
storeTechnicianMapper
;
@Resource
GogirlProperties
gogirlProperties
;
@Override
public
void
scheduledMsg
(
Integer
scheduledId
)
{
ScheduleManage
scheduleManage
=
scheduleManageMapper
.
selectById
(
scheduledId
);
String
name
=
scheduleManage
.
getStoreScheduleUsername
();
String
phone
=
scheduleManage
.
getTelephone
();
String
date
=
scheduleManage
.
getArriveTime
().
toString
();
List
<
ScheduleServe
>
scheduleServeList
=
scheduleServeMapper
.
selectList
(
new
LambdaQueryWrapper
<
ScheduleServe
>().
eq
(
ScheduleServe:
:
getSchId
,
scheduledId
));
String
serves
=
scheduleServeList
.
stream
().
map
(
ScheduleServe:
:
getServeName
).
collect
(
Collectors
.
joining
(
","
));
List
<
StoreTechnician
>
storeTechnicianList
=
storeTechnicianMapper
.
selectBatchIds
(
scheduleServeList
.
stream
().
map
(
ScheduleServe:
:
getTechnicianId
).
collect
(
Collectors
.
toList
()));
String
technicianNames
=
storeTechnicianList
.
stream
().
map
(
StoreTechnician:
:
getName
).
collect
(
Collectors
.
joining
(
","
));
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
EnterpriseWxMsg
enterpriseWxMsg
=
new
EnterpriseWxMsg
();
enterpriseWxMsg
.
setMsgType
(
"text"
);
EnterpriseWxMsg
.
EnterpriseTextWxMsg
textWxMsg
=
new
EnterpriseWxMsg
.
EnterpriseTextWxMsg
();
StringBuilder
builder
=
new
StringBuilder
();
String
content
=
builder
.
append
(
"预约提醒\n"
)
.
append
(
"预约客户 :"
).
append
(
name
).
append
(
"\n"
)
.
append
(
"预约客户手机 :"
).
append
(
phone
).
append
(
"\n"
)
.
append
(
"预约时间:"
).
append
(
date
).
append
(
"\n"
)
.
append
(
"预约技师"
).
append
(
technicianNames
).
append
(
"\n"
)
.
append
(
"预约项目: "
).
append
(
serves
).
append
(
"\n"
)
.
toString
();
textWxMsg
.
setMentioned_mobile_list
(
storeTechnicianList
.
stream
().
map
(
StoreTechnician:
:
getMobile
).
collect
(
Collectors
.
toList
()));
textWxMsg
.
setContent
(
content
);
enterpriseWxMsg
.
setText
(
textWxMsg
);
HttpEntity
<
EnterpriseWxMsg
>
httpEntity
=
new
HttpEntity
<>(
enterpriseWxMsg
,
httpHeaders
);
restTemplate
.
postForEntity
(
gogirlProperties
.
getEnterpriseWechatWebhook
(),
httpEntity
,
String
.
class
);
}
@Override
public
void
cancelScheduledMsg
(
Integer
scheduledId
)
{
}
@Override
public
void
ScheduledOverTimeMsg
(
Integer
scheduledId
)
{
}
}
src/main/java/com/gogirl/shared/order/serve/query/qry/TreeProgram.java
View file @
b6943319
...
...
@@ -97,4 +97,39 @@ public class TreeProgram implements Serializable {
return
this
.
getStoreTechnicianDTO
().
getTechnicianId
().
equals
(
treeProgram
.
getStoreTechnicianDTO
().
getTechnicianId
())
&&
this
.
getScheduleServeQuery
().
getServeId
().
equals
(
treeProgram
.
getScheduleServeQuery
().
getServeId
());
}
public
boolean
isSubTree
(
TreeProgram
treeProgram
)
{
if
(
treeProgram
==
null
)
{
return
true
;
}
boolean
bool
=
this
.
isSameNode
(
treeProgram
);
if
(!
bool
)
{
return
false
;
}
else
{
TreeProgram
subPath
=
this
.
getChildList
().
stream
().
findAny
().
orElseThrow
(
NullPointerException:
:
new
);
List
<
TreeProgram
>
targetTreeList
=
treeProgram
.
getChildList
();
TreeProgram
targetTree
=
targetTreeList
.
stream
().
filter
(
val
->
val
.
isSameNode
(
subPath
)).
findAny
().
orElse
(
null
);
if
(
targetTree
==
null
)
{
return
false
;
}
return
subPath
.
isSubTree
(
targetTree
);
}
}
public
boolean
isSameNode
(
TreeProgram
treeProgram
)
{
/**/
boolean
sameServe
=
this
.
getScheduleServeQuery
().
getLengthTimeForEndTime
()
.
equals
(
treeProgram
.
getScheduleServeQuery
().
getLengthTimeForEndTime
())
&&
this
.
getScheduleServeQuery
().
getServeId
().
equals
(
treeProgram
.
getScheduleServeQuery
().
getServeId
())
&&
this
.
getScheduleServeQuery
().
getProduceId
().
equals
(
treeProgram
.
getScheduleServeQuery
().
getProduceId
())
&&
this
.
getScheduleServeQuery
().
getPeriod
().
equals
(
treeProgram
.
getScheduleServeQuery
().
getPeriod
());
/**/
boolean
sameTech
=
this
.
getStoreTechnicianDTO
().
getTechnicianId
().
equals
(
treeProgram
.
getStoreTechnicianDTO
().
getTechnicianId
());
/**/
return
sameServe
&&
sameTech
;
}
}
src/main/resources/application-dev.yml
View file @
b6943319
...
...
@@ -94,9 +94,11 @@ gogirl:
#评论延迟时间
test-paper-time
:
1440
#后台后端接口访问地址
admin-backend-url
:
http://test.admin.begogirls.com:7712/api/ReportTable/GetTechnicianPage
admin-backend-url
:
http://test.admin.begogirls.com:7712/api/ReportTable/GetTechnicianPage、
#
admin-backend-achievements-url
:
http://test.admin.begogirls.com:7712/api/salary/AchievementsPersonaResultPageApi
#
enterprise-wechat-webhook
:
"
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa"
wx
:
pay
:
appId
:
wx058b46db3cd0e979
...
...
src/main/resources/application-pre.yml
View file @
b6943319
...
...
@@ -93,10 +93,11 @@ gogirl:
#评论延迟时间
test-paper-time
:
1
#后台后端接口访问地址
admin-backend-url
:
http://test.admin.begogirls.com:7712/api/ReportTable/GetTechnicianPage
admin-backend-url
:
"
http://test.admin.begogirls.com:7712/api/ReportTable/GetTechnicianPage"
admin-backend-achievements-url
:
http://test.admin.begogirls.com:7712/api/salary/AchievementsPersonaResultPageApi
admin-backend-achievements-url
:
"
http://test.admin.begogirls.com:7712/api/salary/AchievementsPersonaResultPageApi"
enterprise-wechat-webhook
:
"
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa"
wx
:
pay
:
appId
:
wx058b46db3cd0e979
...
...
src/main/resources/application-prod.yml
View file @
b6943319
...
...
@@ -94,7 +94,7 @@ gogirl:
#后台后端接口访问地址
admin-backend-url
:
http://admin.begogirls.com:7712/api/ReportTable/GetTechnicianPageApi
admin-backend-achievements-url
:
http://admin.begogirls.com:7712/api/salary/AchievementsPersonaResultPageApi
enterprise-wechat-webhook
:
"
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa"
wx
:
pay
:
appId
:
wx058b46db3cd0e979
...
...
src/main/resources/application-test.yml
View file @
b6943319
...
...
@@ -95,7 +95,7 @@ gogirl:
#后台后端接口访问地址
admin-backend-url
:
http://test.admin.begogirls.com:7712/api/ReportTable/GetTechnicianPage
admin-backend-achievements-url
:
http://test.admin.begogirls.com:7712/api/salary/AchievementsPersonaResultPageApi
enterprise-wechat-webhook
:
"
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa"
wx
:
pay
:
appId
:
wx058b46db3cd0e979
...
...
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