Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
bfa7005e
Commit
bfa7005e
authored
Dec 17, 2022
by
徐高华
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/社群' into 'developer'
Feature/社群 See merge request
!664
parents
f448d15c
72838aad
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
78 additions
and
49 deletions
+78
-49
GroupChatPlanOwnerLogMapper.java
.../service/dao/mapper/chat/GroupChatPlanOwnerLogMapper.java
+3
-0
GroupChatPlanServiceImpl.java
...e/service/service/chat/impl/GroupChatPlanServiceImpl.java
+42
-42
GroupChatPlanMapper.xml
...ce/src/main/resources/mapper/chat/GroupChatPlanMapper.xml
+1
-1
GroupChatPlanOwnerLogMapper.xml
...ain/resources/mapper/chat/GroupChatPlanOwnerLogMapper.xml
+4
-0
GroupChatPlanController.java
...n/manage/web/controller/chat/GroupChatPlanController.java
+28
-6
No files found.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatPlanOwnerLogMapper.java
View file @
bfa7005e
...
...
@@ -36,6 +36,9 @@ public interface GroupChatPlanOwnerLogMapper {
public
List
<
Long
>
listForTimer
(
@Param
(
"planId"
)
Long
planId
);
public
List
<
TabGroupChatPlanOwnerLog
>
listForDoPlan
(
@Param
(
"planId"
)
Long
planId
,
@Param
(
"startItem"
)
int
startItem
,
@Param
(
"pageSize"
)
int
pageSize
);
public
List
<
ChatOwnerTotalDTO
>
listOwnerLogPageForWxaTotal
(
GroupChatPlanSearchQDTO
qdto
);
public
List
<
GroupChatPlanOwnerLogDTO
>
listOwnerLogPageForWxa
(
GroupChatPlanSearchQDTO
qdto
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatPlanServiceImpl.java
View file @
bfa7005e
...
...
@@ -34,7 +34,6 @@ import com.gic.haoban.common.utils.DingUtils;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO
;
import
com.gic.haoban.manage.api.enums.PendingTaskTypeEnum
;
import
com.gic.haoban.manage.api.enums.chat.PlanSendStatusEnum
;
...
...
@@ -42,6 +41,7 @@ import com.gic.haoban.manage.service.config.Config;
import
com.gic.haoban.manage.service.dao.mapper.StaffMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanOwnerLogMapper
;
import
com.gic.haoban.manage.service.entity.TabHaobanStaff
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlan
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanLog
;
...
...
@@ -72,6 +72,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
@Autowired
private
GroupChatPlanOwnerLogService
groupChatPlanOwnerLogService
;
@Autowired
private
GroupChatPlanOwnerLogMapper
groupChatPlanOwnerLogMapper
;
@Autowired
private
GroupChatPlanLogMapper
groupChatPlanLogMapper
;
@Autowired
private
QywxSendService
qywxSendService
;
...
...
@@ -184,11 +186,10 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
logger
.
info
(
"计划不存在,planid={}"
,
planId
);
return
;
}
if
(
plan
.
getSendFlag
()
==
2
)
{
if
(
plan
.
getSendFlag
()
==
PlanSendStatusEnum
.
SENDED
.
getCode
()
)
{
logger
.
info
(
"计划已执行过,planid={}"
,
planId
);
return
;
}
// 控制重复发送
this
.
groupChatPlanMapper
.
updateSendFlag
(
planId
);
String
wxEnterpriseId
=
plan
.
getWxEnterpriseId
();
String
chatContent
=
plan
.
getChatContent
();
...
...
@@ -198,55 +199,54 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
JSONObject
json
=
jsonArr
.
getJSONObject
(
i
);
madidList
.
add
(
json
.
getString
(
"relation_id"
));
}
int
currentPage
=
1
;
GroupChatPlanSearchQDTO
qdto
=
new
GroupChatPlanSearchQDTO
();
qdto
.
setWxEnterpriseId
(
wxEnterpriseId
);
BasePageInfo
basePageInfo
=
new
BasePageInfo
();
basePageInfo
.
setPageNum
(
currentPage
);
basePageInfo
.
setPageSize
(
1
);
Page
<
GroupChatPlanOwnerLogDTO
>
page
=
this
.
groupChatPlanOwnerLogService
.
listPage
(
planId
,
qdto
,
basePageInfo
);
while
(
page
.
getTotalPage
()
>=
currentPage
)
{
if
(
currentPage
>
1
)
{
basePageInfo
.
setPageNum
(
currentPage
);
page
=
this
.
groupChatPlanOwnerLogService
.
listPage
(
planId
,
qdto
,
basePageInfo
);
int
pageNum
=
0
;
int
pageSize
=
1
;
List
<
TabGroupChatPlanOwnerLog
>
ownerList
=
null
;
while
(
true
)
{
ownerList
=
this
.
groupChatPlanOwnerLogMapper
.
listForDoPlan
(
planId
,
pageNum
*
pageSize
,
pageSize
);
if
(
CollectionUtils
.
isEmpty
(
ownerList
))
{
break
;
}
currentPage
++;
List
<
GroupChatPlanOwnerLogDTO
>
ownerList
=
page
.
getResult
();
for
(
GroupChatPlanOwnerLogDTO
dto
:
ownerList
)
{
String
staffId
=
dto
.
getStaffId
();
ServiceResponse
<
String
>
sendResp
=
qywxSendService
.
sendChatMessage
(
wxEnterpriseId
,
staffId
,
madidList
);
TabGroupChatPlanOwnerLog
ownerLog
=
EntityUtil
.
changeEntityByJSON
(
TabGroupChatPlanOwnerLog
.
class
,
dto
);
if
(
sendResp
.
isSuccess
())
{
String
msgid
=
sendResp
.
getResult
();
ownerLog
.
setMsgid
(
msgid
);
ownerLog
.
setSendStatus
(
PlanSendStatusEnum
.
TO_BE_SEND
.
getCode
());
}
else
{
ownerLog
.
setRemark
(
sendResp
.
getMessage
());
ownerLog
.
setSendStatus
(
PlanSendStatusEnum
.
FAIL
.
getCode
());
}
ownerLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
this
.
groupChatPlanOwnerLogService
.
update
(
ownerLog
);
// 代办
if
(
StringUtils
.
isNotBlank
(
ownerLog
.
getClerkId
()))
{
this
.
savePendTask
(
dto
,
plan
);
pageNum
++;
for
(
TabGroupChatPlanOwnerLog
ownerLog
:
ownerList
)
{
try
{
String
staffId
=
ownerLog
.
getStaffId
();
ServiceResponse
<
String
>
sendResp
=
qywxSendService
.
sendChatMessage
(
wxEnterpriseId
,
staffId
,
madidList
);
if
(
sendResp
.
isSuccess
())
{
String
msgid
=
sendResp
.
getResult
();
ownerLog
.
setMsgid
(
msgid
);
ownerLog
.
setSendStatus
(
PlanSendStatusEnum
.
TO_BE_SEND
.
getCode
());
}
else
{
ownerLog
.
setRemark
(
sendResp
.
getMessage
().
substring
(
0
,
500
));
ownerLog
.
setSendStatus
(
PlanSendStatusEnum
.
FAIL
.
getCode
());
}
ownerLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
this
.
groupChatPlanOwnerLogService
.
update
(
ownerLog
);
// 代办
if
(
StringUtils
.
isNotBlank
(
ownerLog
.
getClerkId
())
&&
StringUtils
.
isNotBlank
(
ownerLog
.
getMsgid
()))
{
this
.
savePendTask
(
ownerLog
,
plan
);
}
}
catch
(
Exception
e
)
{
logger
.
info
(
"群群发任务异常,ownerLog={}"
,
ownerLog
.
getOwnerLogId
());
}
}
}
}
private
void
savePendTask
(
GroupChatPlanOwnerLogDTO
ownerDTO
,
TabGroupChatPlan
plan
)
{
logger
.
info
(
"创建
待办数据:{}"
,
JSON
.
toJSONString
(
ownerDTO
));
private
void
savePendTask
(
TabGroupChatPlanOwnerLog
ownerLog
,
TabGroupChatPlan
plan
)
{
logger
.
info
(
"创建
导购待办={}"
,
JSON
.
toJSONString
(
ownerLog
));
PendingTaskBO
task
=
new
PendingTaskBO
();
task
.
setRelationId
(
owner
DTO
.
getOwnerLogId
()
+
""
);
task
.
setBusinessId
(
owner
DTO
.
getPlanId
()
+
""
);
task
.
setRelationId
(
owner
Log
.
getOwnerLogId
()
+
""
);
task
.
setBusinessId
(
owner
Log
.
getPlanId
()
+
""
);
task
.
setTaskType
(
PendingTaskTypeEnum
.
GROUP_CHAT
.
getType
());
task
.
setTitle
(
plan
.
getName
());
task
.
setInvalidTime
(
ownerDTO
.
getExpireDat
e
());
task
.
setInvalidTime
(
plan
.
getEndTim
e
());
task
.
setDescription
(
plan
.
getRemark
());
task
.
setStoreId
(
owner
DTO
.
getStoreId
());
task
.
setClerkId
(
owner
DTO
.
getClerkId
());
task
.
setEnterpriseId
(
owner
DTO
.
getEnterpriseId
());
task
.
setOverdueTime
(
ownerDTO
.
getExpireDat
e
());
task
.
setStoreId
(
owner
Log
.
getStoreId
());
task
.
setClerkId
(
owner
Log
.
getClerkId
());
task
.
setEnterpriseId
(
owner
Log
.
getEnterpriseId
());
task
.
setOverdueTime
(
plan
.
getEndTim
e
());
this
.
pendingTaskService
.
addOrUpdatePendingTask
(
task
);
}
...
...
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatPlanMapper.xml
View file @
bfa7005e
...
...
@@ -102,7 +102,7 @@
</insert>
<!-- =====================删除==================== -->
<update
id=
"deleteById"
parameterType=
"long"
>
<update
id=
"deleteById"
>
UPDATE
tab_haoban_group_chat_plan SET delete_flag = 1 , modifier_id =
#{clerkId} , modifier_name = #{clerkName} , update_time=now() WHERE plan_id = #{planId}
...
...
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatPlanOwnerLogMapper.xml
View file @
bfa7005e
...
...
@@ -110,6 +110,10 @@
</if>
</select>
<select
id=
"listForDoPlan"
resultMap=
"result-map-tabHaobanGroupChatPlanOwnerLog"
>
select
<include
refid=
"Base_Column_List"
/>
FROM tab_haoban_group_chat_plan_owner_log WHERE plan_id = #{planId} and delete_flag = 0 limit ${startItem},${pageSize}
</select>
<select
id=
"listPage"
parameterType=
"com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO"
resultType=
"com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO"
>
select
a.owner_log_id ownerLogId ,
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/chat/GroupChatPlanController.java
View file @
bfa7005e
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
chat
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -26,17 +25,20 @@ import com.gic.commons.webapi.reponse.RestResponse;
import
com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO
;
import
com.gic.haoban.common.utils.AuthWebRequestUtil
;
import
com.gic.haoban.manage.api.dto.MaterialDTO
;
import
com.gic.haoban.manage.api.dto.StaffDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO
;
import
com.gic.haoban.manage.api.service.MaterialApiService
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService
;
import
com.gic.haoban.manage.web.log.LogRecordUserServiceImpl
;
import
com.gic.haoban.manage.web.utils.CreatorUtils
;
import
com.gic.haoban.manage.web.vo.chat.ChatOwnerVO
;
import
com.gic.haoban.manage.web.vo.chat.GroupChatPlanVO
;
import
com.gic.log.record.anno.GicLogRecord
;
import
com.gic.log.record.util.GicLogRecordCategoryEnum
;
import
com.gic.log.record.util.GicLogRecordEvaluationContext
;
import
com.gic.log.record.util.GicLogRecordOptTypeEnum
;
/**
*
...
...
@@ -58,6 +60,7 @@ public class GroupChatPlanController {
private
MaterialApiService
materialApiService
;
@RequestMapping
(
"add"
)
@GicLogRecord
(
value
=
"${#logValue}"
,
category
=
GicLogRecordCategoryEnum
.
HUOMA
,
optType
=
GicLogRecordOptTypeEnum
.
HM_LINK_ADD
,
userFunc
=
LogRecordUserServiceImpl
.
class
,
optPage
=
"客户群群发"
)
public
RestResponse
<
Object
>
save
(
@RequestBody
GroupChatPlanDTO
dto
)
{
if
(
StringUtils
.
isBlank
(
dto
.
getStaffIdList
()))
{
return
RestResponse
.
failure
(
"9999"
,
"请选择群主"
);
...
...
@@ -71,16 +74,27 @@ public class GroupChatPlanController {
dto
.
setWxEnterpriseId
(
loginUser
.
getWxEnterpriseId
());
dto
.
setEnterpriseId
(
loginUser
.
getEnterpriseId
());
this
.
groupChatPlanApiService
.
save
(
dto
);
String
logContent
=
"新增客户群群发【"
+
dto
.
getName
()
+
"】"
;
GicLogRecordEvaluationContext
.
putAttribute
(
"logValue"
,
logContent
);
GicLogRecordEvaluationContext
.
putOptTargetId
(
AuthWebRequestUtil
.
getLoginUser
().
getClerkId
());
return
RestResponse
.
successResult
();
}
@RequestMapping
(
"del"
)
@GicLogRecord
(
value
=
"${#logValue}"
,
category
=
GicLogRecordCategoryEnum
.
HUOMA
,
optType
=
GicLogRecordOptTypeEnum
.
HM_LINK_ADD
,
userFunc
=
LogRecordUserServiceImpl
.
class
,
optPage
=
"客户群群发"
)
public
RestResponse
<
Object
>
del
(
Long
planId
)
{
if
(
null
==
planId
)
{
return
RestResponse
.
failure
(
"9999"
,
"计划ID空"
);
}
ServiceResponse
<
GroupChatPlanDTO
>
planResp
=
this
.
groupChatPlanApiService
.
detail
(
planId
);
if
(!
planResp
.
isSuccess
())
{
return
RestResponse
.
failure
(
"1"
,
"计划不存在"
);
}
WebLoginDTO
loginUser
=
AuthWebRequestUtil
.
getLoginUser
();
this
.
groupChatPlanApiService
.
del
(
loginUser
.
getClerkId
(),
loginUser
.
getClerkName
(),
planId
);
String
logContent
=
"删除客户群群发【"
+
planResp
.
getResult
().
getName
()
+
"】"
;
GicLogRecordEvaluationContext
.
putAttribute
(
"logValue"
,
logContent
);
GicLogRecordEvaluationContext
.
putOptTargetId
(
AuthWebRequestUtil
.
getLoginUser
().
getClerkId
());
return
RestResponse
.
successResult
();
}
...
...
@@ -94,12 +108,20 @@ public class GroupChatPlanController {
* @throws
*/
@RequestMapping
(
"stop"
)
@GicLogRecord
(
value
=
"${#logValue}"
,
category
=
GicLogRecordCategoryEnum
.
HUOMA
,
optType
=
GicLogRecordOptTypeEnum
.
HM_LINK_ADD
,
userFunc
=
LogRecordUserServiceImpl
.
class
,
optPage
=
"客户群群发"
)
public
RestResponse
<
Object
>
stop
(
Long
planId
)
{
if
(
null
==
planId
)
{
return
RestResponse
.
failure
(
"9999"
,
"计划ID空"
);
}
ServiceResponse
<
GroupChatPlanDTO
>
planResp
=
this
.
groupChatPlanApiService
.
detail
(
planId
);
if
(!
planResp
.
isSuccess
())
{
return
RestResponse
.
failure
(
"1"
,
"计划不存在"
);
}
WebLoginDTO
loginUser
=
AuthWebRequestUtil
.
getLoginUser
();
this
.
groupChatPlanApiService
.
stop
(
loginUser
.
getClerkId
(),
loginUser
.
getClerkName
(),
planId
);
String
logContent
=
"终止客户群群发【"
+
planResp
.
getResult
().
getName
()
+
"】"
;
GicLogRecordEvaluationContext
.
putAttribute
(
"logValue"
,
logContent
);
GicLogRecordEvaluationContext
.
putOptTargetId
(
AuthWebRequestUtil
.
getLoginUser
().
getClerkId
());
return
RestResponse
.
successResult
();
}
...
...
@@ -142,11 +164,11 @@ public class GroupChatPlanController {
@RequestMapping
(
"detail"
)
public
RestResponse
<
Object
>
detail
(
Long
planId
,
@RequestParam
(
defaultValue
=
"0"
)
int
updteFlag
)
{
ServiceResponse
<
GroupChatPlanDTO
>
link
Resp
=
this
.
groupChatPlanApiService
.
detail
(
planId
);
if
(!
link
Resp
.
isSuccess
())
{
ServiceResponse
<
GroupChatPlanDTO
>
plan
Resp
=
this
.
groupChatPlanApiService
.
detail
(
planId
);
if
(!
plan
Resp
.
isSuccess
())
{
return
RestResponse
.
failure
(
"1"
,
"计划不存在"
);
}
GroupChatPlanDTO
plan
=
link
Resp
.
getResult
();
GroupChatPlanDTO
plan
=
plan
Resp
.
getResult
();
plan
.
getStaffIdList
();
String
content
=
plan
.
getChatContent
();
JSONArray
array
=
JSONArray
.
parseArray
(
content
);
...
...
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