Commit e4b65ec4 by 徐高华

群活码-链接调整

parent f1f0a8d1
......@@ -49,6 +49,34 @@ public class GroupChatHmDTO implements Serializable {
private Integer usableChatCount;
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() {
return storeId;
......
......@@ -46,6 +46,7 @@ public class HmLinkDTO implements Serializable {
// 群活码配置
private List<HmLinkChatDTO> linkChatList ;
// [{"type":1服务门店2协管3lbs4指定人群,"open":1}]
private String chatStoreRule ;
public String getChatStoreRule() {
......
......@@ -78,6 +78,26 @@ public class QwMomentPlanDTO implements Serializable{
*/
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() {
return mediaLinkFlag;
}
......
......@@ -26,7 +26,29 @@ public class OwnerSearchQDTO implements Serializable {
private List<String> departmentIdList ;
// 1查询在职 2查离职
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() {
return departmentIdList;
}
......
......@@ -10,6 +10,7 @@ import com.gic.api.base.commons.Constant;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
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.StoreGroupDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
......@@ -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.ChatActivityJoinRuleEnum;
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.GroupChatMapper;
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.TabGroupChatHm;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatHmRelation;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmBO;
......@@ -79,6 +82,8 @@ public class JoinRuleManager {
private ESMemberInfoService esMemberInfoService;
@Autowired
private MemberTagGroupApiService memberTagGroupApiService;
@Autowired
private GroupChatHmMapper groupChatHmMapper ;
private final Map<ChatActivityJoinRuleEnum, FunctionWithException<GroupChatActivityHmQDTO,List<GroupChatHmBO>>> ruleHandlers = new HashMap<>();
......@@ -241,7 +246,7 @@ public class JoinRuleManager {
* @param activityHmQDTO qdto
* @return
*/
private List<GroupChatHmBO> handleMainStore(GroupChatActivityHmQDTO activityHmQDTO) {
public List<GroupChatHmBO> handleMainStore(GroupChatActivityHmQDTO activityHmQDTO) {
String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId());
......@@ -260,7 +265,7 @@ public class JoinRuleManager {
* @param activityHmQDTO qdto
* @return
*/
private List<GroupChatHmBO> handleOtherStore(GroupChatActivityHmQDTO activityHmQDTO) {
public List<GroupChatHmBO> handleOtherStore(GroupChatActivityHmQDTO activityHmQDTO) {
String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId());
......@@ -280,7 +285,7 @@ public class JoinRuleManager {
* @return
* @throws BusinessException
*/
private List<GroupChatHmBO> handleLbs(GroupChatActivityHmQDTO activityHmQDTO) throws BusinessException {
public List<GroupChatHmBO> handleLbs(GroupChatActivityHmQDTO activityHmQDTO) throws BusinessException {
String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
boolean skipArea = activityHmQDTO.isSkipArea();
......@@ -336,6 +341,10 @@ public class JoinRuleManager {
*/
private List<GroupChatHmBO> getByStoreIdList(String enterpriseId,String wxEnterpriseId,List<String> 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);
List<ClerkDTO> clerkList = page.getResult();
......@@ -355,6 +364,13 @@ public class JoinRuleManager {
if (CollectionUtils.isEmpty(staffIdList)) {
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查询群
List<TabGroupChat> groupChatList = groupChatMapper.listByStaffIds(enterpriseId, staffIdList);
if (CollectionUtils.isEmpty(groupChatList)) {
......@@ -377,7 +393,13 @@ public class JoinRuleManager {
hmSearchQDTO.setChatHmIdList(chatHmIdList);
hmSearchQDTO.setStatus(1);
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 {
if (CollectionUtils.isEmpty(staffIdList)) {
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,
Collectors.mapping(StaffClerkRelationDTO::getStaffId, Collectors.toSet())));
//通过staffId查询群
......@@ -436,11 +465,16 @@ public class JoinRuleManager {
hmSearchQDTO.setChatHmIdList(chatHmIdList);
hmSearchQDTO.setStatus(1);
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<>();
}
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);
return storeIdToGroupChatHmBOMap;
......
......@@ -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.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.StaffStoreNumBO;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
......@@ -150,4 +151,6 @@ public interface TabHaobanStaffClerkRelationMapper {
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<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;
import java.util.List;
import com.gic.haoban.manage.service.pojo.HmStoreNumBO;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
......@@ -33,5 +34,9 @@ public interface GroupChatHmMapper {
public List<TabGroupChatHm> list(ChatHmSearchQDTO qdto);
List<TabGroupChatHm> listByStoreIdList(@Param("storeIdList") List<String> storeIdList) ;
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{
*/
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() {
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 {
/**0删除 1正常*/
private Integer statusFlag;
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() {
return otherChatHmId;
......
......@@ -204,4 +204,6 @@ public interface StaffClerkRelationService {
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);
Map<String,Boolean> staffManyStore(List<String> staffIdList);
}
package com.gic.haoban.manage.service.service.chat;
import java.util.List;
import java.util.Map;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
......@@ -63,4 +64,11 @@ public interface GroupChatHmService {
Page<GroupChatHmMemberRelationDTO> memberGroupChatHmPage(String enterpriseId, String memberId, BasePageInfo basePageInfo);
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;
import java.util.ArrayList;
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.*;
import java.util.stream.Collectors;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO;
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.service.chat.GroupChatUserService;
import org.apache.commons.collections.CollectionUtils;
......@@ -471,4 +465,18 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
public Integer memberJoinGroupChatHmCount(String enterpriseId, String 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;
import com.gic.commons.util.DateUtil;
import com.gic.enterprise.api.service.StoreWidgetService;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.pojo.StaffStoreNumBO;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -678,4 +679,17 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
map = list.stream().collect(Collectors.groupingBy(StaffClerkRelationDTO::getStoreId,Collectors.mapping(StaffClerkRelationDTO::getClerkId,Collectors.toList()))) ;
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;
import java.util.Random;
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.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -121,6 +126,8 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
private GroupChatHmService groupChatHmService;
@Autowired
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired
private JoinRuleManager joinRuleManager ;
@Override
public ServiceResponse<String> getHmLinkUrl() {
......@@ -184,7 +191,6 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
String mixPhone, String unionid, String memberId, HmLinkBO link, HmLinkWxaDTO retDTO) {
Long hmId = link.getOtherChatHmId();
Long linkId = link.getLinkId();
List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
if (StringUtils.isNotEmpty(mixPhone)) {
String mobile = this.keyDataService.getMobile(mixPhone, link.getShortCode());
log.info("查询手机号,mobile={},mixPhone={}", mobile, mixPhone);
......@@ -193,14 +199,61 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
memberId = mobileMemberId;
}
}
if (CollectionUtils.isNotEmpty(hmList)) {
for (HmLinkChatDTO item : hmList) {
boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(),
link.getUpdateTime());
if (flag) {
log.info("使用特殊群活码={}", item.getChatHmId());
hmId = item.getChatHmId();
break;
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)) {
for (HmLinkChatDTO item : hmList) {
boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(),
link.getUpdateTime());
if (flag) {
log.info("使用特殊群活码={}", item.getChatHmId());
hmId = item.getChatHmId();
break;
}
}
}
}
}
}
......
......@@ -514,5 +514,14 @@
</if>
GROUP BY a.staff_id
</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>
\ No newline at end of file
......@@ -187,4 +187,24 @@
order by create_time desc
</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>
\ No newline at end of file
......@@ -14,6 +14,7 @@ import com.gic.commons.util.ExcelUtils;
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.EnterpriseDetailDTO;
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.GroupChatOwnerDTO;
......@@ -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.OwnerSearchQDTO;
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.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.log.LogRecordUserServiceImpl;
......@@ -68,6 +70,8 @@ public class GroupChatController {
private GroupChatUserExcelHandler groupChatUserExcelHandler;
@Autowired
private GroupChatUserQuitExcelHandler groupChatUserQuitExcelHandler ;
@Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService ;
@RequestMapping("get-set-gic-flag")
public RestResponse<Object> getFlag() {
......@@ -268,6 +272,20 @@ public class GroupChatController {
public RestResponse<Object> ownerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
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);
return RestResponse.successResult(resp.getResult());
}
......
......@@ -294,8 +294,6 @@ public class GroupChatHmController {
vo.setStoreCode(storeDTO.getStoreCode());
if(null != storeDTO.getStatus() && storeDTO.getStatus()!=0) {
vo.setStoreStatus(1);
}else {
storeDTO.setStatus(0);
}
}
}
......@@ -314,6 +312,16 @@ public class GroupChatHmController {
return RestResponse.failure("1", "群活码不存在");
}
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);
}
......
......@@ -69,6 +69,26 @@ public class QwMomentPlanQO implements Serializable {
*/
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() {
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