Commit e4b65ec4 by 徐高华

群活码-链接调整

parent f1f0a8d1
...@@ -49,6 +49,34 @@ public class GroupChatHmDTO implements Serializable { ...@@ -49,6 +49,34 @@ public class GroupChatHmDTO implements Serializable {
private Integer usableChatCount; private Integer usableChatCount;
private String storeId ; private String storeId ;
private String storeName ;
private String storeCode ;
// 0已删除 1有效
private int storeStatus ;
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public int getStoreStatus() {
return storeStatus;
}
public void setStoreStatus(int storeStatus) {
this.storeStatus = storeStatus;
}
public String getStoreId() { public String getStoreId() {
return storeId; return storeId;
......
...@@ -46,6 +46,7 @@ public class HmLinkDTO implements Serializable { ...@@ -46,6 +46,7 @@ public class HmLinkDTO implements Serializable {
// 群活码配置 // 群活码配置
private List<HmLinkChatDTO> linkChatList ; private List<HmLinkChatDTO> linkChatList ;
// [{"type":1服务门店2协管3lbs4指定人群,"open":1}]
private String chatStoreRule ; private String chatStoreRule ;
public String getChatStoreRule() { public String getChatStoreRule() {
......
...@@ -78,6 +78,26 @@ public class QwMomentPlanDTO implements Serializable{ ...@@ -78,6 +78,26 @@ public class QwMomentPlanDTO implements Serializable{
*/ */
private List<QwMomentPlanAttendDTO> clerkList ; private List<QwMomentPlanAttendDTO> clerkList ;
private Integer analyseFlag ;
private Integer analyseDay ;
public Integer getAnalyseFlag() {
return analyseFlag;
}
public void setAnalyseFlag(Integer analyseFlag) {
this.analyseFlag = analyseFlag;
}
public Integer getAnalyseDay() {
return analyseDay;
}
public void setAnalyseDay(Integer analyseDay) {
this.analyseDay = analyseDay;
}
public Integer getMediaLinkFlag() { public Integer getMediaLinkFlag() {
return mediaLinkFlag; return mediaLinkFlag;
} }
......
...@@ -27,6 +27,28 @@ public class OwnerSearchQDTO implements Serializable { ...@@ -27,6 +27,28 @@ public class OwnerSearchQDTO implements Serializable {
// 1查询在职 2查离职 // 1查询在职 2查离职
private int status = 1; private int status = 1;
// 选择的企业id
private String paramsEnterpriseId ;
// 是否需要显示门店名称
private int showStoreNames ;
public int getShowStoreNames() {
return showStoreNames;
}
public void setShowStoreNames(int showStoreNames) {
this.showStoreNames = showStoreNames;
}
public String getParamsEnterpriseId() {
return paramsEnterpriseId;
}
public void setParamsEnterpriseId(String paramsEnterpriseId) {
this.paramsEnterpriseId = paramsEnterpriseId;
}
public List<String> getDepartmentIdList() { public List<String> getDepartmentIdList() {
return departmentIdList; return departmentIdList;
} }
......
...@@ -10,6 +10,7 @@ import com.gic.api.base.commons.Constant; ...@@ -10,6 +10,7 @@ import com.gic.api.base.commons.Constant;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO; import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService; import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.dto.StoreDTO; import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreGroupDTO; import com.gic.enterprise.api.dto.StoreGroupDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO; import com.gic.enterprise.api.dto.StoreSearchDTO;
...@@ -22,10 +23,12 @@ import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO; ...@@ -22,10 +23,12 @@ import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
import com.gic.haoban.manage.api.enums.chat.ChatActivityJoinEnum; import com.gic.haoban.manage.api.enums.chat.ChatActivityJoinEnum;
import com.gic.haoban.manage.api.enums.chat.ChatActivityJoinRuleEnum; import com.gic.haoban.manage.api.enums.chat.ChatActivityJoinRuleEnum;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityHmQDTO; import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityHmQDTO;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatHmMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatHmRelationMapper; import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatHmRelationMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatMapper; import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatUserMapper; import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatUserMapper;
import com.gic.haoban.manage.service.entity.chat.TabGroupChat; import com.gic.haoban.manage.service.entity.chat.TabGroupChat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatHm;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatHmRelation; import com.gic.haoban.manage.service.entity.chat.TabGroupChatHmRelation;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser; import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmBO; import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmBO;
...@@ -79,6 +82,8 @@ public class JoinRuleManager { ...@@ -79,6 +82,8 @@ public class JoinRuleManager {
private ESMemberInfoService esMemberInfoService; private ESMemberInfoService esMemberInfoService;
@Autowired @Autowired
private MemberTagGroupApiService memberTagGroupApiService; private MemberTagGroupApiService memberTagGroupApiService;
@Autowired
private GroupChatHmMapper groupChatHmMapper ;
private final Map<ChatActivityJoinRuleEnum, FunctionWithException<GroupChatActivityHmQDTO,List<GroupChatHmBO>>> ruleHandlers = new HashMap<>(); private final Map<ChatActivityJoinRuleEnum, FunctionWithException<GroupChatActivityHmQDTO,List<GroupChatHmBO>>> ruleHandlers = new HashMap<>();
...@@ -241,7 +246,7 @@ public class JoinRuleManager { ...@@ -241,7 +246,7 @@ public class JoinRuleManager {
* @param activityHmQDTO qdto * @param activityHmQDTO qdto
* @return * @return
*/ */
private List<GroupChatHmBO> handleMainStore(GroupChatActivityHmQDTO activityHmQDTO) { public List<GroupChatHmBO> handleMainStore(GroupChatActivityHmQDTO activityHmQDTO) {
String enterpriseId = activityHmQDTO.getEnterpriseId(); String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId(); String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId()); MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId());
...@@ -260,7 +265,7 @@ public class JoinRuleManager { ...@@ -260,7 +265,7 @@ public class JoinRuleManager {
* @param activityHmQDTO qdto * @param activityHmQDTO qdto
* @return * @return
*/ */
private List<GroupChatHmBO> handleOtherStore(GroupChatActivityHmQDTO activityHmQDTO) { public List<GroupChatHmBO> handleOtherStore(GroupChatActivityHmQDTO activityHmQDTO) {
String enterpriseId = activityHmQDTO.getEnterpriseId(); String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId(); String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId()); MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId());
...@@ -280,7 +285,7 @@ public class JoinRuleManager { ...@@ -280,7 +285,7 @@ public class JoinRuleManager {
* @return * @return
* @throws BusinessException * @throws BusinessException
*/ */
private List<GroupChatHmBO> handleLbs(GroupChatActivityHmQDTO activityHmQDTO) throws BusinessException { public List<GroupChatHmBO> handleLbs(GroupChatActivityHmQDTO activityHmQDTO) throws BusinessException {
String enterpriseId = activityHmQDTO.getEnterpriseId(); String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId(); String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
boolean skipArea = activityHmQDTO.isSkipArea(); boolean skipArea = activityHmQDTO.isSkipArea();
...@@ -336,6 +341,10 @@ public class JoinRuleManager { ...@@ -336,6 +341,10 @@ public class JoinRuleManager {
*/ */
private List<GroupChatHmBO> getByStoreIdList(String enterpriseId,String wxEnterpriseId,List<String> storeIdList) { private List<GroupChatHmBO> getByStoreIdList(String enterpriseId,String wxEnterpriseId,List<String> storeIdList) {
logger.info("门店id列表:{}",JSON.toJSONString(storeIdList)); logger.info("门店id列表:{}",JSON.toJSONString(storeIdList));
List<TabGroupChatHm> hmList = this.groupChatHmMapper.listByStoreIdList(storeIdList) ;
if(CollectionUtils.isNotEmpty(hmList)) {
return EntityUtil.changeEntityListByJSON(GroupChatHmBO.class,hmList) ;
}
// 获取导购列表 // 获取导购列表
Page<ClerkDTO> page = clerkService.pageClerkByNameOrCode(enterpriseId,"",storeIdList,1,1000); Page<ClerkDTO> page = clerkService.pageClerkByNameOrCode(enterpriseId,"",storeIdList,1,1000);
List<ClerkDTO> clerkList = page.getResult(); List<ClerkDTO> clerkList = page.getResult();
...@@ -355,6 +364,13 @@ public class JoinRuleManager { ...@@ -355,6 +364,13 @@ public class JoinRuleManager {
if (CollectionUtils.isEmpty(staffIdList)) { if (CollectionUtils.isEmpty(staffIdList)) {
return new ArrayList<>(); return new ArrayList<>();
} }
// 过滤绑定多个门店的成员
Map<String,Boolean> map = this.staffClerkRelationService.staffManyStore(staffIdList) ;
staffIdList = staffIdList.stream().filter(item -> null == map.get(item) || !map.get(item)).collect(Collectors.toList()) ;
logger.info("过滤有多个门店的成员后={}",staffIdList);
if (CollectionUtils.isEmpty(staffIdList)) {
return new ArrayList<>();
}
// 通过staffId查询群 // 通过staffId查询群
List<TabGroupChat> groupChatList = groupChatMapper.listByStaffIds(enterpriseId, staffIdList); List<TabGroupChat> groupChatList = groupChatMapper.listByStaffIds(enterpriseId, staffIdList);
if (CollectionUtils.isEmpty(groupChatList)) { if (CollectionUtils.isEmpty(groupChatList)) {
...@@ -377,7 +393,13 @@ public class JoinRuleManager { ...@@ -377,7 +393,13 @@ public class JoinRuleManager {
hmSearchQDTO.setChatHmIdList(chatHmIdList); hmSearchQDTO.setChatHmIdList(chatHmIdList);
hmSearchQDTO.setStatus(1); hmSearchQDTO.setStatus(1);
Page<GroupChatHmBO> listPage = groupChatHmService.listPage(hmSearchQDTO, basePageInfo); Page<GroupChatHmBO> listPage = groupChatHmService.listPage(hmSearchQDTO, basePageInfo);
return listPage.getResult(); logger.info("群活码列表:{}",JSON.toJSONString(listPage));
List<GroupChatHmBO> retList = listPage.getResult();
if(CollectionUtils.isNotEmpty(retList)) {
Map<Long,Boolean> hmMap = this.groupChatHmService.hasManyOwnerStore(wxEnterpriseId,retList.stream().map(o->o.getChatHmId()).collect(Collectors.toList())) ;
retList = retList.stream().filter(item -> null == hmMap.get(item.getChatHmId()) || !hmMap.get(item.getChatHmId())).collect(Collectors.toList()) ;
}
return retList;
} }
...@@ -407,6 +429,13 @@ public class JoinRuleManager { ...@@ -407,6 +429,13 @@ public class JoinRuleManager {
if (CollectionUtils.isEmpty(staffIdList)) { if (CollectionUtils.isEmpty(staffIdList)) {
return new HashMap<>(); return new HashMap<>();
} }
// 过滤绑定多个门店的成员
Map<String,Boolean> map = this.staffClerkRelationService.staffManyStore(staffIdList) ;
staffIdList = staffIdList.stream().filter(item -> null == map.get(item) || !map.get(item)).collect(Collectors.toList()) ;
logger.info("过滤有多个门店的成员后={}",staffIdList);
if (CollectionUtils.isEmpty(staffIdList)) {
return new HashMap<>();
}
Map<String, Set<String>> storeToStaffMap = relationDTOList.stream().collect(Collectors.groupingBy(StaffClerkRelationDTO::getStoreId, Map<String, Set<String>> storeToStaffMap = relationDTOList.stream().collect(Collectors.groupingBy(StaffClerkRelationDTO::getStoreId,
Collectors.mapping(StaffClerkRelationDTO::getStaffId, Collectors.toSet()))); Collectors.mapping(StaffClerkRelationDTO::getStaffId, Collectors.toSet())));
//通过staffId查询群 //通过staffId查询群
...@@ -436,11 +465,16 @@ public class JoinRuleManager { ...@@ -436,11 +465,16 @@ public class JoinRuleManager {
hmSearchQDTO.setChatHmIdList(chatHmIdList); hmSearchQDTO.setChatHmIdList(chatHmIdList);
hmSearchQDTO.setStatus(1); hmSearchQDTO.setStatus(1);
Page<GroupChatHmBO> listPage = groupChatHmService.listPage(hmSearchQDTO, basePageInfo); Page<GroupChatHmBO> listPage = groupChatHmService.listPage(hmSearchQDTO, basePageInfo);
if (CollectionUtils.isEmpty(listPage.getResult())) { List<GroupChatHmBO> hmList = listPage.getResult();
if (CollectionUtils.isEmpty(hmList)) {
return new HashMap<>();
}
Map<Long,Boolean> hmMap = this.groupChatHmService.hasManyOwnerStore(wxEnterpriseId,hmList.stream().map(o->o.getChatHmId()).collect(Collectors.toList())) ;
hmList = hmList.stream().filter(item -> null == hmMap.get(item.getChatHmId()) || !hmMap.get(item.getChatHmId())).collect(Collectors.toList()) ;
Map<Long, GroupChatHmBO> groupHmMap = hmList.stream().collect(Collectors.toMap(GroupChatHmBO::getChatHmId, v -> v, (e, x) -> e));
if (CollectionUtils.isEmpty(hmList)) {
return new HashMap<>(); return new HashMap<>();
} }
Map<Long, GroupChatHmBO> groupHmMap = listPage.getResult().stream().collect(Collectors.toMap(GroupChatHmBO::getChatHmId, v -> v, (e, x) -> e));
Map<String, List<GroupChatHmBO>> storeIdToGroupChatHmBOMap = convertMap(storeToStaffMap, staffToGroupChatMap, groupChatToHmMap, groupHmMap); Map<String, List<GroupChatHmBO>> storeIdToGroupChatHmBOMap = convertMap(storeToStaffMap, staffToGroupChatMap, groupChatToHmMap, groupHmMap);
return storeIdToGroupChatHmBOMap; return storeIdToGroupChatHmBOMap;
......
...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.dao.mapper; ...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO; import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation; import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO; import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.StaffStoreNumBO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Date; import java.util.Date;
...@@ -150,4 +151,6 @@ public interface TabHaobanStaffClerkRelationMapper { ...@@ -150,4 +151,6 @@ public interface TabHaobanStaffClerkRelationMapper {
List<TabHaobanStaffClerkRelation> taskoverClerkIdListAll(@Param("staffId")String staffId) ; List<TabHaobanStaffClerkRelation> taskoverClerkIdListAll(@Param("staffId")String staffId) ;
List<String> listAllStaffIdForOpenStaff(@Param("enterpriseId")String enterpriseId, @Param("wxEnterpriseId")String wxEnterpriseId, @Param("clerkId") String clerkId, @Param(("storeIdList")) List<String> storeIdList); List<String> listAllStaffIdForOpenStaff(@Param("enterpriseId")String enterpriseId, @Param("wxEnterpriseId")String wxEnterpriseId, @Param("clerkId") String clerkId, @Param(("storeIdList")) List<String> storeIdList);
List<StaffStoreNumBO> staffStoreNum(@Param("staffIdList")List<String> staffIdList);
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.dao.mapper.chat; ...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.dao.mapper.chat;
import java.util.List; import java.util.List;
import com.gic.haoban.manage.service.pojo.HmStoreNumBO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO; import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
...@@ -33,5 +34,9 @@ public interface GroupChatHmMapper { ...@@ -33,5 +34,9 @@ public interface GroupChatHmMapper {
public List<TabGroupChatHm> list(ChatHmSearchQDTO qdto); public List<TabGroupChatHm> list(ChatHmSearchQDTO qdto);
List<TabGroupChatHm> listByStoreIdList(@Param("storeIdList") List<String> storeIdList) ;
List<TabGroupChatHm> listAvailableByEnterpriseId(@Param("enterpriseId") String enterpriseId); List<TabGroupChatHm> listAvailableByEnterpriseId(@Param("enterpriseId") String enterpriseId);
List<HmStoreNumBO> hasManyOwnerStore(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("chatHmIdList") List<Long> chatHmIdList);
} }
\ No newline at end of file
...@@ -82,6 +82,25 @@ public class TabQwMomentPlan implements Serializable{ ...@@ -82,6 +82,25 @@ public class TabQwMomentPlan implements Serializable{
*/ */
private Integer mediaLinkFlag ; private Integer mediaLinkFlag ;
private Integer analyseFlag ;
private Integer analyseDay ;
public Integer getAnalyseFlag() {
return analyseFlag;
}
public void setAnalyseFlag(Integer analyseFlag) {
this.analyseFlag = analyseFlag;
}
public Integer getAnalyseDay() {
return analyseDay;
}
public void setAnalyseDay(Integer analyseDay) {
this.analyseDay = analyseDay;
}
public Integer getMediaLinkFlag() { public Integer getMediaLinkFlag() {
return mediaLinkFlag; return mediaLinkFlag;
} }
......
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class HmStoreNumBO implements Serializable {
private Long chatHmId ;
private int num ;
public Long getChatHmId() {
return chatHmId;
}
public void setChatHmId(Long chatHmId) {
this.chatHmId = chatHmId;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class StaffStoreNumBO implements Serializable {
private String staffId ;
private int num ;
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
...@@ -41,6 +41,16 @@ public class HmLinkBO implements Serializable { ...@@ -41,6 +41,16 @@ public class HmLinkBO implements Serializable {
/**0删除 1正常*/ /**0删除 1正常*/
private Integer statusFlag; private Integer statusFlag;
private Long otherChatHmId ; private Long otherChatHmId ;
// [{"type":1服务门店2协管3lbs4指定人群,"open":1}]
private String chatStoreRule ;
public String getChatStoreRule() {
return chatStoreRule;
}
public void setChatStoreRule(String chatStoreRule) {
this.chatStoreRule = chatStoreRule;
}
public Long getOtherChatHmId() { public Long getOtherChatHmId() {
return otherChatHmId; return otherChatHmId;
......
...@@ -204,4 +204,6 @@ public interface StaffClerkRelationService { ...@@ -204,4 +204,6 @@ public interface StaffClerkRelationService {
List<String> listAllStaffIdForOpenStaff(String enterpriseId,String wxEnterpriseId,String clerkId , List<String> storeIdList); List<String> listAllStaffIdForOpenStaff(String enterpriseId,String wxEnterpriseId,String clerkId , List<String> storeIdList);
ServiceResponse<Map<String, List<String>>> listClerkForCanvas(String wxEnterpriseId, String enterpriseId, String creatorId, String storeFilterId); ServiceResponse<Map<String, List<String>>> listClerkForCanvas(String wxEnterpriseId, String enterpriseId, String creatorId, String storeFilterId);
Map<String,Boolean> staffManyStore(List<String> staffIdList);
} }
package com.gic.haoban.manage.service.service.chat; package com.gic.haoban.manage.service.service.chat;
import java.util.List; import java.util.List;
import java.util.Map;
import com.gic.api.base.commons.BasePageInfo; import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
...@@ -63,4 +64,11 @@ public interface GroupChatHmService { ...@@ -63,4 +64,11 @@ public interface GroupChatHmService {
Page<GroupChatHmMemberRelationDTO> memberGroupChatHmPage(String enterpriseId, String memberId, BasePageInfo basePageInfo); Page<GroupChatHmMemberRelationDTO> memberGroupChatHmPage(String enterpriseId, String memberId, BasePageInfo basePageInfo);
Integer memberJoinGroupChatHmCount(String enterpriseId, String memberId); Integer memberJoinGroupChatHmCount(String enterpriseId, String memberId);
/**
* 活码包含的群主有多个门店
* @param wxEnterpriseId
* @return
*/
Map<Long,Boolean> hasManyOwnerStore(String wxEnterpriseId, List<Long> chatHmIdList);
} }
\ No newline at end of file
package com.gic.haoban.manage.service.service.chat.impl; package com.gic.haoban.manage.service.service.chat.impl;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO; import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO;
import com.gic.haoban.manage.service.dao.mapper.chat.*; import com.gic.haoban.manage.service.dao.mapper.chat.*;
import com.gic.haoban.manage.service.pojo.HmStoreNumBO;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmMemberRelationBO; import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmMemberRelationBO;
import com.gic.haoban.manage.service.service.chat.GroupChatUserService; import com.gic.haoban.manage.service.service.chat.GroupChatUserService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
...@@ -471,4 +465,18 @@ public class GroupChatHmServiceImpl implements GroupChatHmService { ...@@ -471,4 +465,18 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
public Integer memberJoinGroupChatHmCount(String enterpriseId, String memberId) { public Integer memberJoinGroupChatHmCount(String enterpriseId, String memberId) {
return groupChatUserMapper.getMemberJoinChatGroupCountByHmName(enterpriseId, memberId, "骑行"); return groupChatUserMapper.getMemberJoinChatGroupCountByHmName(enterpriseId, memberId, "骑行");
} }
@Override
public Map<Long,Boolean> hasManyOwnerStore(String wxEnterpriseId, List<Long> chatHmIdList) {
Map<Long, Boolean> map = new HashMap<>() ;
List<HmStoreNumBO> list = this.groupChatHmMapper.hasManyOwnerStore(wxEnterpriseId, chatHmIdList);
if(CollectionUtils.isNotEmpty(list)) {
list.forEach(item -> {
map.put(item.getChatHmId(),item.getNum()>1) ;
}) ;
}
return map ;
}
} }
\ No newline at end of file
...@@ -15,6 +15,7 @@ import com.gic.api.base.commons.ServiceResponse; ...@@ -15,6 +15,7 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil; import com.gic.commons.util.DateUtil;
import com.gic.enterprise.api.service.StoreWidgetService; import com.gic.enterprise.api.service.StoreWidgetService;
import com.gic.haoban.manage.service.entity.*; import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.pojo.StaffStoreNumBO;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -678,4 +679,17 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -678,4 +679,17 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
map = list.stream().collect(Collectors.groupingBy(StaffClerkRelationDTO::getStoreId,Collectors.mapping(StaffClerkRelationDTO::getClerkId,Collectors.toList()))) ; map = list.stream().collect(Collectors.groupingBy(StaffClerkRelationDTO::getStoreId,Collectors.mapping(StaffClerkRelationDTO::getClerkId,Collectors.toList()))) ;
return ServiceResponse.success(map) ; return ServiceResponse.success(map) ;
} }
// 成员是否绑定多加家门店
@Override
public Map<String, Boolean> staffManyStore(List<String> staffIdList) {
Map<String, Boolean> map = new HashMap<>() ;
List<StaffStoreNumBO> list = this.tabHaobanStaffClerkRelationMapper.staffStoreNum(staffIdList) ;
if(CollectionUtils.isNotEmpty(list)) {
list.forEach(item -> {
map.put(item.getStaffId(),item.getNum()>1) ;
}) ;
}
return map ;
}
} }
...@@ -9,6 +9,11 @@ import java.util.Map; ...@@ -9,6 +9,11 @@ import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONArray;
import com.gic.api.base.commons.BusinessException;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityHmQDTO;
import com.gic.haoban.manage.service.context.chat.JoinRuleManager;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
...@@ -121,6 +126,8 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -121,6 +126,8 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
private GroupChatHmService groupChatHmService; private GroupChatHmService groupChatHmService;
@Autowired @Autowired
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper; private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired
private JoinRuleManager joinRuleManager ;
@Override @Override
public ServiceResponse<String> getHmLinkUrl() { public ServiceResponse<String> getHmLinkUrl() {
...@@ -184,7 +191,6 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -184,7 +191,6 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
String mixPhone, String unionid, String memberId, HmLinkBO link, HmLinkWxaDTO retDTO) { String mixPhone, String unionid, String memberId, HmLinkBO link, HmLinkWxaDTO retDTO) {
Long hmId = link.getOtherChatHmId(); Long hmId = link.getOtherChatHmId();
Long linkId = link.getLinkId(); Long linkId = link.getLinkId();
List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
if (StringUtils.isNotEmpty(mixPhone)) { if (StringUtils.isNotEmpty(mixPhone)) {
String mobile = this.keyDataService.getMobile(mixPhone, link.getShortCode()); String mobile = this.keyDataService.getMobile(mixPhone, link.getShortCode());
log.info("查询手机号,mobile={},mixPhone={}", mobile, mixPhone); log.info("查询手机号,mobile={},mixPhone={}", mobile, mixPhone);
...@@ -193,6 +199,50 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -193,6 +199,50 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
memberId = mobileMemberId; memberId = mobileMemberId;
} }
} }
String chatStoreRule = link.getChatStoreRule() ;
log.info("活码规则={},memberId={}",chatStoreRule,memberId);
if(StringUtils.isBlank(chatStoreRule)) {
log.info("无活码规则配置");
return ServiceResponse.failure("9999", "群活码不存在");
}
// [{"type":1服务门店2协管3lbs4指定人群,"open":1}]
JSONArray arr = JSONArray.parseArray(chatStoreRule) ;
GroupChatActivityHmQDTO hmQDTO = new GroupChatActivityHmQDTO() ;
hmQDTO.setEnterpriseId(enterpriseId);
hmQDTO.setInviteeMemberId(memberId);
GroupChatActivityDTO chatActivity = new GroupChatActivityDTO() ;
chatActivity.setWxEnterpriseId(wxEnterpriseId);
hmQDTO.setChatActivity(chatActivity);
for(int i=0;i< arr.size();i++) {
JSONObject json = arr.getJSONObject(i) ;
int open = json.getIntValue("open") ;
if(open == 1) {
int type = json.getIntValue("type") ;
if(type==1) {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleMainStore(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
hmId = hmBOList.get(0).getChatHmId() ;
break;
}
}else if(type==2) {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleOtherStore(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
hmId = hmBOList.get(0).getChatHmId() ;
break;
}
}else if(type==3) {
try {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleLbs(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
hmId = hmBOList.get(0).getChatHmId() ;
break;
}
} catch (BusinessException e) {
log.info("获取lbs失败");
continue;
}
}else if(type==4) {
List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
if (CollectionUtils.isNotEmpty(hmList)) { if (CollectionUtils.isNotEmpty(hmList)) {
for (HmLinkChatDTO item : hmList) { for (HmLinkChatDTO item : hmList) {
boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(), boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(),
...@@ -204,6 +254,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -204,6 +254,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
} }
} }
} }
}
}
}
GroupChatHmBO hm = null; GroupChatHmBO hm = null;
if (null == hmId) { if (null == hmId) {
log.info("群活码不存在"); log.info("群活码不存在");
......
...@@ -515,4 +515,13 @@ ...@@ -515,4 +515,13 @@
GROUP BY a.staff_id GROUP BY a.staff_id
</select> </select>
<select id="staffStoreNum" resultType="com.gic.haoban.manage.service.pojo.StaffStoreNumBO">
select a.staff_id staffId, count(a.store_id) num from tab_haoban_staff_clerk_relation a
where a.status_flag = 1 and a.staff_id in
<foreach collection="staffIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
and a.store_id is not null
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -187,4 +187,24 @@ ...@@ -187,4 +187,24 @@
order by create_time desc order by create_time desc
</select> </select>
<select id="listByStoreIdList" resultMap="result-map-tabHaobanGroupChatHm">
select <include refid="Base_Column_List" /> from tab_haoban_group_chat_hm where store_id in
<foreach collection="storeIdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
and status_flag = 1 and delete_flag = 0
</select>
<select id="hasManyOwnerStore" resultType="com.gic.haoban.manage.service.pojo.HmStoreNumBO">
SELECT chat_hm_id , COUNT(1) FROM (
SELECT a.chat_hm_id , c.store_id FROM `tab_haoban_group_chat_hm_relation` a
LEFT JOIN tab_haoban_group_chat b ON a.group_chat_id = b.group_chat_id
LEFT JOIN `tab_haoban_staff_clerk_relation` c ON c.staff_id = b.staff_id AND c.status_flag = 1
WHERE a.delete_flag = 0 AND a.status_flag = 1 AND b.delete_flag = 0 AND c.`store_id` <![CDATA[ <> ]]> '' AND a.chat_hm_id in
<foreach collection="chatHmIdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
GROUP BY a.`chat_hm_id` , c.`store_id` ) t GROUP BY chat_hm_id
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -14,6 +14,7 @@ import com.gic.commons.util.ExcelUtils; ...@@ -14,6 +14,7 @@ import com.gic.commons.util.ExcelUtils;
import com.gic.commons.webapi.reponse.RestResponse; import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO; import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil; import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO;
import com.gic.haoban.manage.api.dto.StaffDTO; import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatDTO; 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.GroupChatOwnerDTO;
...@@ -23,6 +24,7 @@ import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO; ...@@ -23,6 +24,7 @@ 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.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO; import com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO;
import com.gic.haoban.manage.api.service.StaffApiService; import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService; import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode; import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.log.LogRecordUserServiceImpl; import com.gic.haoban.manage.web.log.LogRecordUserServiceImpl;
...@@ -68,6 +70,8 @@ public class GroupChatController { ...@@ -68,6 +70,8 @@ public class GroupChatController {
private GroupChatUserExcelHandler groupChatUserExcelHandler; private GroupChatUserExcelHandler groupChatUserExcelHandler;
@Autowired @Autowired
private GroupChatUserQuitExcelHandler groupChatUserQuitExcelHandler ; private GroupChatUserQuitExcelHandler groupChatUserQuitExcelHandler ;
@Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService ;
@RequestMapping("get-set-gic-flag") @RequestMapping("get-set-gic-flag")
public RestResponse<Object> getFlag() { public RestResponse<Object> getFlag() {
...@@ -268,6 +272,20 @@ public class GroupChatController { ...@@ -268,6 +272,20 @@ public class GroupChatController {
public RestResponse<Object> ownerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo) { public RestResponse<Object> ownerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId()); qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
// 是否需要显示门店名称
String paramsEnterpriseId = qdto.getParamsEnterpriseId() ;
if(StringUtils.isNotBlank(paramsEnterpriseId)) {
qdto.setShowStoreNames(1);
}else {
List<EnterpriseDetailDTO> list = this.wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(loginUser.getWxEnterpriseId(),loginUser.getPhoneNumber(),false) ;
if(CollectionUtils.isEmpty(list)) {
return RestResponse.failure("-1", "未关联gic商户");
}
if(list.size()==1) {
qdto.setShowStoreNames(1);
}
qdto.setParamsEnterpriseId(list.get(0).getEnterpriseId());
}
ServiceResponse<Page<GroupChatOwnerDTO>> resp = this.groupChatApiService.listOwnerPage(qdto, basePageInfo); ServiceResponse<Page<GroupChatOwnerDTO>> resp = this.groupChatApiService.listOwnerPage(qdto, basePageInfo);
return RestResponse.successResult(resp.getResult()); return RestResponse.successResult(resp.getResult());
} }
......
...@@ -294,8 +294,6 @@ public class GroupChatHmController { ...@@ -294,8 +294,6 @@ public class GroupChatHmController {
vo.setStoreCode(storeDTO.getStoreCode()); vo.setStoreCode(storeDTO.getStoreCode());
if(null != storeDTO.getStatus() && storeDTO.getStatus()!=0) { if(null != storeDTO.getStatus() && storeDTO.getStatus()!=0) {
vo.setStoreStatus(1); vo.setStoreStatus(1);
}else {
storeDTO.setStatus(0);
} }
} }
} }
...@@ -314,6 +312,16 @@ public class GroupChatHmController { ...@@ -314,6 +312,16 @@ public class GroupChatHmController {
return RestResponse.failure("1", "群活码不存在"); return RestResponse.failure("1", "群活码不存在");
} }
GroupChatHmDTO hm = linkResp.getResult(); GroupChatHmDTO hm = linkResp.getResult();
if(StringUtils.isNotBlank(hm.getStoreId())) {
StoreDTO storeDTO = this.storeService.getStoreByIdNoStatus(hm.getStoreId());
if(null != storeDTO) {
hm.setStoreName(storeDTO.getStoreName());
hm.setStoreCode(storeDTO.getStoreCode());
if(null != storeDTO.getStatus() && storeDTO.getStatus()!=0) {
hm.setStoreStatus(1);
}
}
}
return RestResponse.successResult(hm); return RestResponse.successResult(hm);
} }
......
...@@ -69,6 +69,26 @@ public class QwMomentPlanQO implements Serializable { ...@@ -69,6 +69,26 @@ public class QwMomentPlanQO implements Serializable {
*/ */
private Integer mediaLinkFlag ; private Integer mediaLinkFlag ;
private Integer analyseFlag ;
private Integer analyseDay ;
public Integer getAnalyseFlag() {
return analyseFlag;
}
public void setAnalyseFlag(Integer analyseFlag) {
this.analyseFlag = analyseFlag;
}
public Integer getAnalyseDay() {
return analyseDay;
}
public void setAnalyseDay(Integer analyseDay) {
this.analyseDay = analyseDay;
}
public Integer getMediaLinkFlag() { public Integer getMediaLinkFlag() {
return mediaLinkFlag; return mediaLinkFlag;
} }
......
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