Commit f194a676 by 徐高华

parent f181f873
......@@ -19,12 +19,21 @@ public class GroupChatOwnerDTO extends StaffDTO implements Serializable {
/**成员ID*/
private String staffId;
private String staffName;
private String wxEnterpriseId;
/**群数量*/
private Integer chatCount;
private java.util.Date createTime;
private java.util.Date updateTime;
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
......
......@@ -2,8 +2,6 @@ package com.gic.haoban.manage.api.dto.qdto.chat;
import java.io.Serializable;
import com.gic.haoban.manage.api.dto.StaffDTO;
/**
*
* @ClassName: TabHaobanGroupChatOwner
......@@ -13,5 +11,31 @@ import com.gic.haoban.manage.api.dto.StaffDTO;
* @Modify
* @CopyRight
*/
public class OwnerSearchQDTO implements Serializable {
public class OwnerSearchQDTO implements Serializable {
/**
* @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = 5476735570005749927L;
private String wxEnterpriseId;
private String searchParams;
public String getSearchParams() {
return searchParams;
}
public void setSearchParams(String searchParams) {
this.searchParams = searchParams;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
}
\ No newline at end of file
......@@ -7,9 +7,11 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.ChatEventDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO;
public interface GroupChatApiService {
......@@ -24,7 +26,7 @@ public interface GroupChatApiService {
* @throws
*/
public ServiceResponse<Page<GroupChatDTO>> listPage(GroupChatSearchQDTO qdto, BasePageInfo basePageInfo);
/**
*
* @Title: listUserPage
......@@ -35,7 +37,8 @@ public interface GroupChatApiService {
* @return
* @throws
*/
public ServiceResponse<Page<GroupChatUserDTO>> listUserPage(GroupChatUserSearchQDTO qdto, BasePageInfo basePageInfo);
public ServiceResponse<Page<GroupChatUserDTO>> listUserPage(GroupChatUserSearchQDTO qdto,
BasePageInfo basePageInfo);
/**
*
......@@ -95,4 +98,16 @@ public interface GroupChatApiService {
*/
public ServiceResponse<Void> qwEventNotice(ChatEventDTO dto);
/**
*
* @Title: listOwnerPage
* @Description: 群主列表查询
* @author xugh
* @param qdto
* @param basePageInfo
* @return
* @throws
*/
public ServiceResponse<Page<GroupChatOwnerDTO>> listOwnerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo);
}
......@@ -5,6 +5,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatOwner;
/**
......@@ -24,5 +25,5 @@ public interface GroupChatOwnerMapper {
public int updateChatCount(@Param("staffId") String staffId, @Param("chatCount") int chatCount);
public List<GroupChatOwnerDTO> listOwner(GroupChatOwnerDTO qdto);
public List<GroupChatOwnerDTO> listOwner(OwnerSearchQDTO qdto);
}
\ No newline at end of file
......@@ -4,7 +4,9 @@ import java.util.List;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatBO;
public interface GroupChatService {
......@@ -66,4 +68,16 @@ public interface GroupChatService {
public Page<GroupChatBO> listPage(GroupChatSearchQDTO qdto, BasePageInfo basePageInfo);
public void updateChatEnterpriseId(String wxEnterpriseId, String enterpriseId, List<Long> groupChatIdList);
/**
*
* @Title: listOwnerPage
* @Description: 群主列表查询
* @author xugh
* @param qdto
* @param basePageInfo
* @return
* @throws
*/
public Page<GroupChatOwnerDTO> listOwnerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo);
}
\ No newline at end of file
......@@ -24,6 +24,7 @@ import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.enterprise.api.dto.StoreDTO;
......@@ -35,11 +36,9 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
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.GroupChatMapper;
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.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.chat.TabGroupChat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatPlan;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanLog;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanOwnerLog;
......@@ -50,6 +49,7 @@ import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.chat.GroupChatPlanOwnerLogService;
import com.gic.haoban.manage.service.service.chat.GroupChatPlanService;
import com.gic.haoban.manage.service.service.chat.GroupChatService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.wechat.api.dto.qywx.QywxSendMessageResultDTO;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import com.github.pagehelper.PageHelper;
......@@ -81,8 +81,18 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
private ClerkService clerkService;
@Autowired
private StoreService storeService;
@Autowired
private GroupChatMapper groupChatMapper;
private static GicMQClient mqClient = GICMQClientUtil.getClientInstance();
private void sendMQ(Long id) {
try {
mqClient.sendCommonMessage("haobanCommonRouter", id + "",
"com.gic.haoban.manage.api.service.HaobanCommonMQApiService", "commonHandler");
} catch (Exception e) {
logger.error("发送MQ异常");
e.printStackTrace();
}
}
@Override
public void save(GroupChatPlanDTO dto) {
......@@ -90,8 +100,16 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
if (null == dto.getPlanId()) {
entity.setPlanId(UniqueIdUtils.uniqueLong());
this.groupChatPlanMapper.insert(entity);
// 立即发送
if (entity.getSendType() == 1) {
this.sendMQ(entity.getPlanId());
}
} else {
this.groupChatPlanMapper.updateById(entity);
// 立即发送
if (entity.getSendType() == 1) {
this.sendMQ(entity.getPlanId());
}
}
}
......@@ -118,6 +136,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
logger.info("计划不存在,planid={}", planId);
return;
}
// 控制重复发送
String[] staffIdList = plan.getStaffIdList().split(",");
String wxEnterpriseId = plan.getWxEnterpriseId();
String enterpriseId = plan.getEnterpriseId();
......@@ -153,8 +172,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
@Override
public void doPlanSendInfoTimer(String params) {
List<TabGroupChatPlanOwnerLog> logList = this.groupChatPlanOwnerLogService.listForTimer() ;
for(TabGroupChatPlanOwnerLog log : logList) {
List<TabGroupChatPlanOwnerLog> logList = this.groupChatPlanOwnerLogService.listForTimer();
for (TabGroupChatPlanOwnerLog log : logList) {
Long ownerLogId = log.getOwnerLogId();
TabGroupChatPlanOwnerLog ownerLog = this.groupChatPlanOwnerLogService.getById(ownerLogId);
String wxEnterpriseId = ownerLog.getWxEnterpriseId();
......@@ -163,17 +182,15 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO != null) {
}
String staffId = ownerLog.getStaffId();
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(staffId);
String userid = staff.getWxUserId();
if (qwDTO.needOpenUserId3th()) {
userid = staff.getWxOpenUseId();
}
JSONResponse respon = qywxSuiteApiService.resultExternalMessage(qwDTO.getThirdCorpid(), config.getWxSuiteid(),
msgid, null, userid);
JSONResponse respon = qywxSuiteApiService.resultExternalMessage(qwDTO.getThirdCorpid(),
config.getWxSuiteid(), msgid, null, userid);
logger.info(JSON.toJSONString(respon));
if (respon.getErrorCode() == 0) {
List<QywxSendMessageResultDTO> list = (List<QywxSendMessageResultDTO>) respon.getList();
......@@ -230,9 +247,9 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
List<String> storeIdList = list.stream().filter(dto -> StringUtils.isNotBlank(dto.getStoreId()))
.map(dto -> dto.getStoreId()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(storeIdList)) {
String[] arr = new String[storeIdList.size()] ;
for(int i=0;i<storeIdList.size();i++) {
arr[i] = storeIdList.get(i) ;
String[] arr = new String[storeIdList.size()];
for (int i = 0; i < storeIdList.size(); i++) {
arr[i] = storeIdList.get(i);
}
List<StoreDTO> storeList = this.storeService.getStores(arr);
Map<String, StoreDTO> map = storeList.stream()
......@@ -245,20 +262,6 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
}
});
}
Set<Long> groupChatIdSet = list.stream().map(dto -> dto.getGroupChatId()).collect(Collectors.toSet());
List<TabGroupChat> chatList = this.groupChatMapper.listByIdSet(groupChatIdSet);
if (CollectionUtils.isNotEmpty(chatList)) {
Map<Long, TabGroupChat> map = chatList.stream()
.collect(Collectors.toMap(TabGroupChat::getGroupChatId, dto -> dto, (k1, k2) -> k1));
list.forEach(dto -> {
Long groupChatId = dto.getGroupChatId();
if (null != groupChatId && null != map.get(groupChatId)) {
dto.setChatName(map.get(groupChatId).getName());
dto.setChatTotalCount(map.get(groupChatId).getTotalCount());
}
});
}
}
Page<GroupChatPlanLogDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list,
GroupChatPlanLogDTO.class);
......
......@@ -25,7 +25,9 @@ import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
......@@ -567,4 +569,12 @@ public class GroupChatServiceImpl implements GroupChatService {
this.groupChatOwnerMapper.insert(owner);
}
}
@Override
public Page<GroupChatOwnerDTO> listOwnerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
List<GroupChatOwnerDTO> list = this.groupChatOwnerMapper.listOwner(qdto);
Page<GroupChatOwnerDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, GroupChatOwnerDTO.class);
return retPage;
}
}
\ No newline at end of file
......@@ -16,9 +16,11 @@ import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.haoban.manage.api.dto.chat.ChatEventDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatBO;
......@@ -88,6 +90,12 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
}
@Override
public ServiceResponse<Page<GroupChatOwnerDTO>> listOwnerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo) {
Page<GroupChatOwnerDTO> page = this.groupChatService.listOwnerPage(qdto, basePageInfo);
return ServiceResponse.success(page);
}
@Override
public ServiceResponse<Void> qwEventNotice(ChatEventDTO dto) {
logger.info("收到群事件,params={}", JSON.toJSONString(dto));
String changeType = dto.getChangeType();
......
......@@ -51,8 +51,11 @@
<select id="listOwner" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO">
select a.staff_id staffId
from tab_haoban_group_chat_owner a
SELECT a.staff_id staffId , b.`staff_name` staffName
FROM tab_haoban_group_chat_owner a LEFT JOIN tab_haoban_staff b ON a.`staff_id` = b.`staff_id`
where wx_enterprise_id=#{wxEnterpriseId}
<if test="null != searchParams">
and b.staff_name like '%${searchParams}%'
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -13,9 +13,11 @@ import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.chat.GroupChatDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
/**
......@@ -50,7 +52,7 @@ public class GroupChatController {
ServiceResponse<Page<GroupChatDTO>> page = this.groupChatApiService.listPage(qdto, basePageInfo);
return RestResponse.successResult(page.getResult());
}
@RequestMapping("user/page")
public RestResponse<Object> userPage(GroupChatUserSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
......@@ -58,18 +60,26 @@ public class GroupChatController {
qdto.setEnterpriseId(loginUser.getEnterpriseId());
ServiceResponse<Page<GroupChatUserDTO>> page = this.groupChatApiService.listUserPage(qdto, basePageInfo);
return RestResponse.successResult(page.getResult());
}
}
@RequestMapping("detail")
public RestResponse<Object> detail(Long groupChatId) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
ServiceResponse<GroupChatDTO> linkResp = this.groupChatApiService.detail(loginUser.getWxEnterpriseId(),
ServiceResponse<GroupChatDTO> resp = this.groupChatApiService.detail(loginUser.getWxEnterpriseId(),
groupChatId);
if (!linkResp.isSuccess()) {
if (!resp.isSuccess()) {
return RestResponse.failure("1", "群不存在");
}
GroupChatDTO dto = linkResp.getResult();
GroupChatDTO dto = resp.getResult();
return RestResponse.successResult(dto);
}
@RequestMapping("owner-page")
public RestResponse<Object> ownerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
ServiceResponse<Page<GroupChatOwnerDTO>> resp = this.groupChatApiService.listOwnerPage(qdto, basePageInfo);
return RestResponse.successResult(resp.getResult());
}
}
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