Commit 3db536d8 by 徐高华

Merge branch 'feature/社群' of http://git.gicdev.com/haoban3.0/haoban-manage3.0.git into feature/社群

parents c8d23b17 64712b61
...@@ -56,14 +56,14 @@ public class TabGroupChat implements Serializable{ ...@@ -56,14 +56,14 @@ public class TabGroupChat implements Serializable{
private String wxChatIdDk; private String wxChatIdDk;
private Date offTime ; private Date offTime ;
private String originalStaffId ; private String originalStaffId ;
private int hmAddStatus = 1 ; private String chatRemark ;
public int getHmAddStatus() { public String getChatRemark() {
return hmAddStatus; return chatRemark;
} }
public void setHmAddStatus(int hmAddStatus) { public void setChatRemark(String chatRemark) {
this.hmAddStatus = hmAddStatus; this.chatRemark = chatRemark;
} }
public Date getOffTime() { public Date getOffTime() {
......
...@@ -181,9 +181,12 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe ...@@ -181,9 +181,12 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
@Override @Override
public Page<ChatOwnerTotalDTO> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto, public Page<ChatOwnerTotalDTO> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo) { BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
String clerkId = qdto.getClerkId(); String clerkId = qdto.getClerkId();
ClerkDTO clerk = this.clerkService.getclerkById(clerkId); ClerkDTO clerk = this.clerkService.getclerkById(clerkId);
if(null == clerk) {
logger.info("导购不存在");
return new Page<ChatOwnerTotalDTO>();
}
int clerkType = clerk.getClerkType(); int clerkType = clerk.getClerkType();
String storeId = null; String storeId = null;
if (clerkType == 1) { if (clerkType == 1) {
...@@ -191,6 +194,7 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe ...@@ -191,6 +194,7 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
clerkId = null; clerkId = null;
} }
qdto.setStoreId(storeId); qdto.setStoreId(storeId);
PageHelper.startPage(basePageInfo);
List<ChatOwnerTotalDTO> list = this.groupChatPlanOwnerLogMapper.listOwnerLogPageForWxaTotal(qdto); List<ChatOwnerTotalDTO> list = this.groupChatPlanOwnerLogMapper.listOwnerLogPageForWxaTotal(qdto);
Page<ChatOwnerTotalDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, ChatOwnerTotalDTO.class); Page<ChatOwnerTotalDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, ChatOwnerTotalDTO.class);
return retPage; return retPage;
......
...@@ -126,7 +126,7 @@ public class GroupChatServiceImpl implements GroupChatService { ...@@ -126,7 +126,7 @@ public class GroupChatServiceImpl implements GroupChatService {
private static GicMQClient mqClient = GICMQClientUtil.getClientInstance(); private static GicMQClient mqClient = GICMQClientUtil.getClientInstance();
// 每次拉取成员数 // 每次拉取成员数
private int pageSize = 800; private int pageSize = 100;
// 每次拉取群数 // 每次拉取群数
private int limit = 1; private int limit = 1;
// 群下线成员数 // 群下线成员数
...@@ -245,18 +245,18 @@ public class GroupChatServiceImpl implements GroupChatService { ...@@ -245,18 +245,18 @@ public class GroupChatServiceImpl implements GroupChatService {
@Override @Override
public Page<GroupChatDTO> listPage(GroupChatSearchQDTO qdto, BasePageInfo basePageInfo) { public Page<GroupChatDTO> listPage(GroupChatSearchQDTO qdto, BasePageInfo basePageInfo) {
List<TabGroupChatHmRelation> relationList = null;
if (null != qdto.getChatHmId()) { if (null != qdto.getChatHmId()) {
List<TabGroupChatHmRelation> list = null;
if (qdto.getIncludeOff() == 1) { if (qdto.getIncludeOff() == 1) {
list = this.groupChatHmRelationMapper.listByChatHmIdIncludeOff(qdto.getChatHmId()); relationList = this.groupChatHmRelationMapper.listByChatHmIdIncludeOff(qdto.getChatHmId());
} else { } else {
list = this.groupChatHmRelationMapper.listByChatHmId(qdto.getChatHmId()); relationList = this.groupChatHmRelationMapper.listByChatHmId(qdto.getChatHmId());
} }
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(relationList)) {
return new Page<GroupChatDTO>(); return new Page<GroupChatDTO>();
} }
logger.info("活码页查询群列表{},关联群数={}", qdto.getChatHmId(), list.size()); logger.info("活码页查询群列表{},关联群数={}", qdto.getChatHmId(), relationList.size());
List<Long> groupChatIdList = list.stream().map(dto -> dto.getGroupChatId()).collect(Collectors.toList()); List<Long> groupChatIdList = relationList.stream().map(dto -> dto.getGroupChatId()).collect(Collectors.toList());
qdto.setGroupChatIdList(groupChatIdList); qdto.setGroupChatIdList(groupChatIdList);
} }
qdto.setDepartmentIdList(this.setDepartIdList(qdto.getWxEnterpriseId(), qdto.getDepartmentId())); qdto.setDepartmentIdList(this.setDepartIdList(qdto.getWxEnterpriseId(), qdto.getDepartmentId()));
...@@ -267,6 +267,15 @@ public class GroupChatServiceImpl implements GroupChatService { ...@@ -267,6 +267,15 @@ public class GroupChatServiceImpl implements GroupChatService {
qdto.setSearchParams("%" + params + "%"); qdto.setSearchParams("%" + params + "%");
} }
List<GroupChatDTO> list = this.groupChatMapper.list(qdto); List<GroupChatDTO> list = this.groupChatMapper.list(qdto);
if(CollectionUtils.isNotEmpty(list) && CollectionUtils.isNotEmpty(relationList)) {
Map<Long,Date> offMap = relationList.stream().filter(dto->dto.getStatusFlag()==2).collect(Collectors.toMap(TabGroupChatHmRelation::getGroupChatId,TabGroupChatHmRelation::getUpdateTime,(k1,k2)->k1));
for(GroupChatDTO dto : list) {
if(null != offMap.get(dto.getGroupChatId())) {
dto.setOffTime( offMap.get(dto.getGroupChatId()));
dto.setHmAddStatus(2);
}
}
}
Page<GroupChatDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, GroupChatDTO.class); Page<GroupChatDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, GroupChatDTO.class);
return retPage; return retPage;
} }
...@@ -1073,7 +1082,7 @@ public class GroupChatServiceImpl implements GroupChatService { ...@@ -1073,7 +1082,7 @@ public class GroupChatServiceImpl implements GroupChatService {
// 通知处理群活码 // 通知处理群活码
try { try {
TabGroupChat chat = this.groupChatMapper.selectById(groupChatId); TabGroupChat chat = this.groupChatMapper.selectById(groupChatId);
if (null == chat || chat.getHmAddStatus() == 1 || null == chat.getOffTime()) { if (null == chat || chat.getTotalCount() < offNum) {
continue; continue;
} }
if (chat.getOffTime().getTime() + 1000 * 60 * 60 * 8 < new Date().getTime()) { if (chat.getOffTime().getTime() + 1000 * 60 * 60 * 8 < new Date().getTime()) {
......
...@@ -100,6 +100,6 @@ ...@@ -100,6 +100,6 @@
#{id} #{id}
</foreach> </foreach>
and relation.delete_flag = 0 and relation.status_flag = 1 and chat.delete_flag = 0 and chat.chat_status in (0,1,2,3) and relation.delete_flag = 0 and relation.status_flag = 1 and chat.delete_flag = 0 and chat.chat_status in (0,1,2,3)
and chat.`hm_add_status` = 1 GROUP BY relation.`chat_hm_id` and chat.total_count <![CDATA[<]]> 200 GROUP BY relation.`chat_hm_id`
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -157,14 +157,19 @@ ...@@ -157,14 +157,19 @@
from tab_haoban_group_chat_plan_owner_log a left join tab_haoban_group_chat_plan b on a.plan_id = b.plan_id from tab_haoban_group_chat_plan_owner_log a left join tab_haoban_group_chat_plan b on a.plan_id = b.plan_id
where where
a.wx_enterprise_id = #{wxEnterpriseId} a.wx_enterprise_id = #{wxEnterpriseId} and b.delete_flag = 0
<if test="null != storeId"> <if test="null != storeId">
and a.store_id = #{storeId} and a.store_id = #{storeId}
</if> </if>
<if test="null != clerkId"> <if test="null != clerkId">
and a.clerk_id = #{clerkId} and a.clerk_id = #{clerkId}
</if> </if>
<if test="null != sendStatus">
and a.send_status = #{sendStatus}
</if>
group by b.plan_id group by b.plan_id
order by a.create_time desc , a.owner_log_id
</select> </select>
<select id="listOwnerLogPageForWxa" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO"> <select id="listOwnerLogPageForWxa" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO">
...@@ -185,13 +190,17 @@ ...@@ -185,13 +190,17 @@
a.done_flag doneFlag , a.done_flag doneFlag ,
a.msgid msgid a.msgid msgid
from tab_haoban_group_chat_plan_owner_log a left join tab_haoban_group_chat_plan b on a.plan_id = b.plan_id from tab_haoban_group_chat_plan_owner_log a left join tab_haoban_group_chat_plan b on a.plan_id = b.plan_id
where a.wx_enterprise_id = #{wxEnterpriseId} and a.plan_id = #{planId} where a.wx_enterprise_id = #{wxEnterpriseId} and a.plan_id = #{planId} and b.delete_flag = 0
<if test="null != storeId"> <if test="null != storeId">
and a.store_id = #{storeId} and a.store_id = #{storeId}
</if> </if>
<if test="null != clerkId"> <if test="null != clerkId">
and a.clerk_id = #{clerkId} and a.clerk_id = #{clerkId}
</if> </if>
<if test="null != sendStatus">
and a.send_status = #{sendStatus}
</if>
order by a.create_time desc , a.owner_log_id
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -387,11 +387,13 @@ public class GroupChatHmController { ...@@ -387,11 +387,13 @@ public class GroupChatHmController {
ServiceResponse<Page<GroupChatDTO>> pageResp = this.groupChatApiService.listPage(qdto, basePageInfo); ServiceResponse<Page<GroupChatDTO>> pageResp = this.groupChatApiService.listPage(qdto, basePageInfo);
Page<GroupChatDTO> page = pageResp.getResult(); Page<GroupChatDTO> page = pageResp.getResult();
List<GroupChatDTO> list = page.getResult(); List<GroupChatDTO> list = page.getResult();
list.stream().forEach(dto->{ if(CollectionUtils.isNotEmpty(list)) {
if(dto.getTotalCount()>=200) { list.stream().forEach(dto->{
dto.setHmAddStatus(2); if(dto.getTotalCount()>=200) {
} dto.setHmAddStatus(2);
}); }
});
}
return RestResponse.successResult(page); return RestResponse.successResult(page);
} }
......
...@@ -29,11 +29,11 @@ import com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService; ...@@ -29,11 +29,11 @@ import com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService;
/** /**
* *
* @ClassName: GroupChatPlanController * @ClassName: GroupChatPlanController
* @Description: 群群发计划 * @Description: 群群发计划
* @author xugh * @author xugh
* @date 2022年11月26日 上午9:32:56 * @date 2022年11月26日 上午9:32:56
* *
*/ */
@RestController @RestController
@RequestMapping("/chat/plan") @RequestMapping("/chat/plan")
...@@ -47,23 +47,26 @@ public class GroupChatPlanController { ...@@ -47,23 +47,26 @@ public class GroupChatPlanController {
private MaterialApiService materialApiService; private MaterialApiService materialApiService;
@RequestMapping("total-list") @RequestMapping("total-list")
public RestResponse<Object> totalList(String clerkId, String wxEnterpriseId, String enterpriseId,String searchParams , public RestResponse<Object> totalList(String clerkId, String wxEnterpriseId, String enterpriseId,
BasePageInfo basePageInfo) { String searchParams, BasePageInfo basePageInfo) {
if (StringUtils.isEmpty(clerkId)) {
return RestResponse.failure("1", "clerkId为空");
}
GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO(); GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId); qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId); qdto.setEnterpriseId(enterpriseId);
qdto.setClerkId(clerkId); qdto.setClerkId(clerkId);
if(StringUtils.isNotBlank(searchParams)) { if (StringUtils.isNotBlank(searchParams)) {
qdto.setSearchParams(searchParams); qdto.setSearchParams(searchParams);
} }
ServiceResponse<Page<ChatOwnerTotalDTO>> pageResp = this.groupChatPlanApiService.listOwnerLogPageForWxaTotal(qdto, ServiceResponse<Page<ChatOwnerTotalDTO>> pageResp = this.groupChatPlanApiService
basePageInfo); .listOwnerLogPageForWxaTotal(qdto, basePageInfo);
Page<ChatOwnerTotalDTO> page = pageResp.getResult() ; Page<ChatOwnerTotalDTO> page = pageResp.getResult();
if(null != page.getResult()) { if (null != page.getResult()) {
page.getResult().forEach(dto->{ page.getResult().forEach(dto -> {
if(dto.getEndTime().before(new Date())) { if (dto.getEndTime().before(new Date())) {
dto.setPlanStatus(2); dto.setPlanStatus(2);
}else { } else {
dto.setPlanStatus(1); dto.setPlanStatus(1);
} }
}); });
...@@ -73,6 +76,9 @@ public class GroupChatPlanController { ...@@ -73,6 +76,9 @@ public class GroupChatPlanController {
@RequestMapping("owner-list") @RequestMapping("owner-list")
public RestResponse<Object> ownerList(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo) { public RestResponse<Object> ownerList(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo) {
if (null == qdto.getPlanId()) {
return RestResponse.failure("1", "planid为空");
}
ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> page = this.groupChatPlanApiService.listOwnerLogPageForWxa(qdto, ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> page = this.groupChatPlanApiService.listOwnerLogPageForWxa(qdto,
basePageInfo); basePageInfo);
return RestResponse.successResult(page.getResult()); return RestResponse.successResult(page.getResult());
...@@ -86,8 +92,11 @@ public class GroupChatPlanController { ...@@ -86,8 +92,11 @@ public class GroupChatPlanController {
@RequestMapping("detail") @RequestMapping("detail")
public RestResponse<Object> detail(Long planId) { public RestResponse<Object> detail(Long planId) {
if (null == planId) {
return RestResponse.failure("1", "planid为空");
}
ServiceResponse<GroupChatPlanDTO> linkResp = this.groupChatPlanApiService.detail(planId); ServiceResponse<GroupChatPlanDTO> linkResp = this.groupChatPlanApiService.detail(planId);
if (!linkResp.isSuccess()) { if (!linkResp.isSuccess() || null == linkResp.getResult()) {
return RestResponse.failure("1", "计划不存在"); return RestResponse.failure("1", "计划不存在");
} }
GroupChatPlanDTO plan = linkResp.getResult(); GroupChatPlanDTO plan = linkResp.getResult();
...@@ -109,6 +118,9 @@ public class GroupChatPlanController { ...@@ -109,6 +118,9 @@ public class GroupChatPlanController {
@RequestMapping("owner-do-list") @RequestMapping("owner-do-list")
public RestResponse<Object> ownerDoList(Long planId, String clerkId, String wxEnterpriseId, String enterpriseId, public RestResponse<Object> ownerDoList(Long planId, String clerkId, String wxEnterpriseId, String enterpriseId,
Long ownLogId, BasePageInfo basePageInfo) { Long ownLogId, BasePageInfo basePageInfo) {
if (null == ownLogId || null == planId || StringUtils.isEmpty(clerkId)) {
return RestResponse.failure("1", "参数未传");
}
GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO(); GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId); qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId); qdto.setEnterpriseId(enterpriseId);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment