Commit 9d6aa264 by 徐高华

parent f34c7820
......@@ -123,4 +123,28 @@ public interface GroupChatApiService {
*/
public ServiceResponse<List<GroupChatOwnerHistoryDTO>> listOwnerHistory(Long groupChatId, String WxEnterpriseId);
/**
*
* @Title: transfer
* @Description: 继承
* @author xugh
* @param wxEnterpriseId
* @param staffId
* @param groupChatIdList
* @return
* @throws
*/
public ServiceResponse<Void> transfer(String wxEnterpriseId, String staffId, List<Long> groupChatIdList);
/**
*
* @Title: getSetFlag
* @Description:
* @author xugh
* @param wxEnterpriseId
* @return
* @throws
*/
public ServiceResponse<Boolean> getSetGicFlag(String wxEnterpriseId) ;
}
......@@ -28,4 +28,6 @@ public interface GroupChatPlanOwnerLogMapper {
@Param("sendTime") Date sendTime);
public List<GroupChatPlanOwnerLogDTO> listPage(GroupChatPlanSearchQDTO qdto);
public List<TabGroupChatPlanOwnerLog> listForTimer();
}
\ No newline at end of file
......@@ -91,4 +91,17 @@ public interface GroupChatService {
* @throws
*/
public List<GroupChatOwnerHistoryDTO> listOwnerHistory(Long groupChatId, String WxEnterpriseId);
/**
*
* @Title: transfer
* @Description: 群继承
* @author xugh
* @param wxEnterpriseId
* @param staffId
* @param groupChatIdList
* @return
* @throws
*/
public void transfer(String wxEnterpriseId , String staffId , List<Long> groupChatIdList) ;
}
\ No newline at end of file
......@@ -136,7 +136,8 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
@Override
public List<TabGroupChatPlanOwnerLog> listForTimer() {
return null;
List<TabGroupChatPlanOwnerLog> list = this.groupChatPlanOwnerLogMapper.listForTimer() ;
return list;
}
}
\ No newline at end of file
......@@ -191,7 +191,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
JSONResponse respon = qywxSuiteApiService.resultExternalMessage(qwDTO.getThirdCorpid(),
config.getWxSuiteid(), msgid, null, userid);
logger.info(JSON.toJSONString(respon));
logger.info("统计返回={}",JSON.toJSONString(respon));
if (respon.getErrorCode() == 0) {
List<QywxSendMessageResultDTO> list = (List<QywxSendMessageResultDTO>) respon.getList();
if (CollectionUtils.isNotEmpty(list)) {
......
......@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.service.chat.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -41,6 +42,7 @@ import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatUserMapper;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import com.gic.haoban.manage.service.entity.chat.TabChatNotice;
import com.gic.haoban.manage.service.entity.chat.TabGroupChat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatOwner;
......@@ -49,10 +51,12 @@ import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatBO;
import com.gic.haoban.manage.service.service.SecretSettingService;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.chat.GroupChatService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberService;
import com.gic.wechat.api.dto.qywx.chat.FailChatListDTO;
import com.gic.wechat.api.dto.qywx.chat.GroupChatDetailDTO;
import com.gic.wechat.api.dto.qywx.chat.GroupChatDetailMemberDTO;
import com.gic.wechat.api.dto.qywx.chat.GroupChatListDTO;
......@@ -91,6 +95,8 @@ public class GroupChatServiceImpl implements GroupChatService {
private GroupChatOwnerMapper groupChatOwnerMapper;
@Autowired
private GroupChatOwnerHistoryMapper groupChatOwnerHistoryMapper;
@Autowired
private WxEnterpriseRelatedService wxEnterpriseRelatedService;
// 每次拉取成员数
private int pageSize = 10;
......@@ -296,8 +302,8 @@ public class GroupChatServiceImpl implements GroupChatService {
private void syncGroupChatList(WxEnterpriseQwDTO qwDTO, List<String> userIdList, String cursor,
boolean syncDetailFlag) {
logger.info("qwDTO={},idlist={},cursor={}", JSON.toJSONString(qwDTO), JSON.toJSONString(userIdList), cursor);
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList3th(qwDTO.getDkCorpid(), config.getWxSuiteid(),
userIdList, limit, cursor);
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList3th(qwDTO.getDkCorpid(),
config.getWxSuiteid(), userIdList, limit, cursor);
if (!resp.isSuccess()) {
logger.info("拉取群列表异常={}", JSON.toJSON(resp));
return;
......@@ -366,8 +372,8 @@ public class GroupChatServiceImpl implements GroupChatService {
Long groupChatId = chat.getGroupChatId();
String wxEnterpriseId = chat.getWxEnterpriseId();
String enterpriseId = chat.getEnterpriseId();
ServiceResponse<GroupChatDetailDTO> detailResp = this.qywxChatApiService.groupchatDetail3th(qwDTO.getThirdCorpid(),
config.getWxSuiteid(), chat.getWxChatId(), 1);
ServiceResponse<GroupChatDetailDTO> detailResp = this.qywxChatApiService
.groupchatDetail3th(qwDTO.getThirdCorpid(), config.getWxSuiteid(), chat.getWxChatId(), 1);
GroupChatDetailDTO detail = detailResp.getResult();
chat.setGroupChatId(groupChatId);
......@@ -387,8 +393,17 @@ public class GroupChatServiceImpl implements GroupChatService {
chat.setStaffId(null);
logger.info("群主未关联好办,不同步群成员,userid={}", owner);
}
// 匹配GIC企业ID
if (StringUtils.isBlank(enterpriseId)) {
List<TabHaobanWxEnterpriseRelated> list = this.wxEnterpriseRelatedService.getByWxEnterpriseId(enterpriseId);
if (CollectionUtils.isNotEmpty(list) && list.size() == 1) {
logger.info("匹配群的gic商户id,gic={}", list.get(0).getEnterpriseId());
enterpriseId = list.get(0).getEnterpriseId();
}
}
if (StringUtils.isBlank(enterpriseId) && null != staff) {
logger.info("开始匹配群的gic商户id,staffid={}", staff.getStaffId());
logger.info("匹配群的gic商户id,staffid={}", staff.getStaffId());
List<StaffClerkRelationDTO> clerkList = this.staffClerkRelationService.listByStaffId(wxEnterpriseId,
staff.getStaffId());
if (CollectionUtils.isNotEmpty(clerkList)) {
......@@ -558,8 +573,8 @@ public class GroupChatServiceImpl implements GroupChatService {
logger.info("未配置代开应用");
}
String secret = secretSetting.getSecretVal();
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList(qwDTO.getDkCorpid(),
secret, userIdList, limit, cursor);
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList(qwDTO.getDkCorpid(), secret,
userIdList, limit, cursor);
if (!resp.isSuccess()) {
logger.info("拉取群异常={}", JSON.toJSON(resp));
return;
......@@ -619,4 +634,23 @@ public class GroupChatServiceImpl implements GroupChatService {
}
return list;
}
@Override
public void transfer(String wxEnterpriseId, String staffId, List<Long> groupChatIdList) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (null == qwDTO) {
logger.info("wxEnterpriseId不存在,id={}", wxEnterpriseId);
return ;
}
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(staffId);
String userid = staff.getWxUserId();
if (qwDTO.needOpenUserId3th()) {
userid = staff.getWxOpenUseId();
}
List<TabGroupChat> list = this.groupChatMapper.listByIdSet(new HashSet<>(groupChatIdList));
List<String> wxChatIdList = list.stream().map(dto -> dto.getWxChatId()).collect(Collectors.toList());
ServiceResponse<List<FailChatListDTO>> resp = this.qywxChatApiService.transfer(qwDTO.getThirdCorpid(),
config.getWxSuiteid(), wxChatIdList, userid);
logger.info("群继承={}",JSON.toJSONString(resp));
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.service.out.impl.chat;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -24,8 +25,10 @@ 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.entity.TabHaobanWxEnterpriseRelated;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatBO;
import com.gic.haoban.manage.service.service.StaffService;
import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import com.gic.haoban.manage.service.service.chat.GroupChatService;
import com.gic.haoban.manage.service.service.chat.GroupChatUserService;
......@@ -40,6 +43,8 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
private GroupChatUserService groupChatUserService;
@Autowired
private StaffService staffService;
@Autowired
private WxEnterpriseRelatedService wxEnterpriseRelatedService;
@Override
public ServiceResponse<Page<GroupChatDTO>> listPage(GroupChatSearchQDTO qdto, BasePageInfo basePageInfo) {
......@@ -112,10 +117,24 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
}
return ServiceResponse.success();
}
@Override
public ServiceResponse<List<GroupChatOwnerHistoryDTO>> listOwnerHistory(Long groupChatId, String WxEnterpriseId) {
return ServiceResponse.success(this.groupChatService.listOwnerHistory(groupChatId, WxEnterpriseId));
}
@Override
public ServiceResponse<Void> transfer(String wxEnterpriseId, String staffId, List<Long> groupChatIdList) {
this.groupChatService.transfer(wxEnterpriseId, staffId, groupChatIdList);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Boolean> getSetGicFlag(String wxEnterpriseId) {
List<TabHaobanWxEnterpriseRelated> list = this.wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterpriseId) ;
if(CollectionUtils.isNotEmpty(list) && list.size()==1) {
return ServiceResponse.success(Boolean.TRUE) ;
}
return ServiceResponse.success(Boolean.FALSE) ;
}
}
......@@ -82,6 +82,11 @@
SELECT <include refid="Base_Column_List"/> FROM tab_haoban_group_chat_plan_owner_log WHERE owner_log_id = #{ownerLogId} and delete_flag = 0
</select>
<select id="listForTimer" resultMap="result-map-tabHaobanGroupChatPlanOwnerLog">
SELECT <include refid="Base_Column_List"/> FROM tab_haoban_group_chat_plan_owner_log WHERE create_time >= DATE_ADD(NOW(),INTERVAL -60 day) and send_time is null and delete_flag = 0
</select>
<select id="listPage" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO">
select
b.staff_name staffName ,
......
......@@ -145,6 +145,7 @@ public class StaffController extends WebBaseController {
*/
@RequestMapping("staff-list")
public HaobanResponse staffList(String departmentId,
List<String> departmentIdList ,
Integer activeFlag,
Integer relationFlag,
String keyWord,
......@@ -156,7 +157,6 @@ public class StaffController extends WebBaseController {
if (departmentDTO != null) {
String parentDepartmentId = departmentDTO.getParentDepartmentId();
if (!"0".equals(parentDepartmentId)) {
// 部门
departmentIds = departmentApiService.listSonDeptIdsByDepartmentId(departmentId, wxEnterpriseId);
}
}
......
......@@ -3,7 +3,6 @@ package com.gic.haoban.manage.web.controller.chat;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -14,7 +13,6 @@ 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.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.GroupChatOwnerHistoryDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
......@@ -38,8 +36,25 @@ public class GroupChatController {
@Autowired
private GroupChatApiService groupChatApiService;
@RequestMapping("get-set-gic-flag")
public RestResponse<Object> getFlag() {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
ServiceResponse<Boolean> resp = this.groupChatApiService.getSetGicFlag(wxEnterpriseId);
return RestResponse.successResult(resp.getResult());
}
/**
*
* @Title: save
* @Description: 认领gic
* @author xugh
* @param groupChatIdList
* @return
* @throws
*/
@RequestMapping("set-gic-enterprise")
public RestResponse<Object> save(@RequestBody GroupChatHmDTO dto) {
public RestResponse<Object> save(List<Long> groupChatIdList) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
String enterpriseId = loginUser.getEnterpriseId();
......@@ -84,12 +99,21 @@ public class GroupChatController {
ServiceResponse<Page<GroupChatOwnerDTO>> resp = this.groupChatApiService.listOwnerPage(qdto, basePageInfo);
return RestResponse.successResult(resp.getResult());
}
@RequestMapping("owner-history")
public RestResponse<Object> ownerHistory(Long groupChatId) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId() ;
ServiceResponse<List<GroupChatOwnerHistoryDTO>> resp = this.groupChatApiService.listOwnerHistory(groupChatId, wxEnterpriseId) ;
String wxEnterpriseId = loginUser.getWxEnterpriseId();
ServiceResponse<List<GroupChatOwnerHistoryDTO>> resp = this.groupChatApiService.listOwnerHistory(groupChatId,
wxEnterpriseId);
return RestResponse.successResult(resp.getResult());
}
@RequestMapping("transfer")
public RestResponse<Object> transfer(String staffId, List<Long> groupChatIdList) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
ServiceResponse<Void> resp = this.groupChatApiService.transfer(wxEnterpriseId, staffId, groupChatIdList);
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