Commit cbf6f281 by xugaojun

存量会员:新增登录用户参数、新增配置、匹配逻辑

parent 5ae73d4c
...@@ -36,6 +36,10 @@ public class YwWxEnterpriseDTO implements Serializable { ...@@ -36,6 +36,10 @@ public class YwWxEnterpriseDTO implements Serializable {
* 转换状态:0:未转换;1:转换成功;2:转换中 * 转换状态:0:未转换;1:转换成功;2:转换中
*/ */
private Integer externalFlag; private Integer externalFlag;
/**
* 是否开启群发 true 开启 false 关闭
*/
private Boolean openMassFlag;
public static long getSerialversionuid() { public static long getSerialversionuid() {
...@@ -156,4 +160,12 @@ public class YwWxEnterpriseDTO implements Serializable { ...@@ -156,4 +160,12 @@ public class YwWxEnterpriseDTO implements Serializable {
public void setExternalFlag(Integer externalFlag) { public void setExternalFlag(Integer externalFlag) {
this.externalFlag = externalFlag; this.externalFlag = externalFlag;
} }
public Boolean getOpenMassFlag() {
return openMassFlag;
}
public void setOpenMassFlag(Boolean openMassFlag) {
this.openMassFlag = openMassFlag;
}
} }
package com.gic.haoban.manage.api.service; package com.gic.haoban.manage.api.service;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo; import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.manage.api.dto.*; import com.gic.haoban.manage.api.dto.*;
...@@ -14,13 +15,32 @@ public interface WxEnterpriseApiService { ...@@ -14,13 +15,32 @@ public interface WxEnterpriseApiService {
* @param dto * @param dto
*/ */
void callbackReviceEnterprise(QywxCorpInfoSimpleDTO dto); void callbackReviceEnterprise(QywxCorpInfoSimpleDTO dto);
/** /**
* 运维后台获取微信企业id列表 * desc: 运维后台获取微信企业id列表
* @return *
*/ * @param pageInfo 分页参数
com.gic.api.base.commons.Page<YwWxEnterpriseDTO> list(BasePageInfo pageInfo,String keyword,List<String> enterpriseIds,Integer gicContactFlag,String version, List<String> enterpriseIdsNotIn); * @param keyword 关键字
* @param enterpriseIds 企业id列表
* @param gicContactFlag 关联标记
* @param version 版本
* @param enterpriseIdsNotIn 企业不存在列表
* @param loginUserId 登录用户id
* @return : {@link Page< YwWxEnterpriseDTO>}
* @author : YongEn
* @date : 2022/2/15
*/
com.gic.api.base.commons.Page<YwWxEnterpriseDTO> list(BasePageInfo pageInfo,
String keyword,
List<String> enterpriseIds,
Integer gicContactFlag,
String version,
List<String> enterpriseIdsNotIn,
String loginUserId);
/** /**
* 获取一个 * 获取一个
*
* @param wxEnterpriseId * @param wxEnterpriseId
* @return * @return
*/ */
...@@ -28,12 +48,15 @@ public interface WxEnterpriseApiService { ...@@ -28,12 +48,15 @@ public interface WxEnterpriseApiService {
/** /**
* 根据corpId查询一条数据 * 根据corpId查询一条数据
*
* @param corpId * @param corpId
* @return * @return
*/ */
WxEnterpriseDTO getEnterpriseBycorpId(String corpId); WxEnterpriseDTO getEnterpriseBycorpId(String corpId);
/** /**
* 更新企业 * 更新企业
*
* @param enterpriseDTO * @param enterpriseDTO
*/ */
void update(WxEnterpriseDTO enterpriseDTO); void update(WxEnterpriseDTO enterpriseDTO);
...@@ -44,6 +67,7 @@ public interface WxEnterpriseApiService { ...@@ -44,6 +67,7 @@ public interface WxEnterpriseApiService {
/** /**
* 企业是否过期 true是 * 企业是否过期 true是
*
* @param enterpriseId * @param enterpriseId
* @return * @return
*/ */
...@@ -69,6 +93,7 @@ public interface WxEnterpriseApiService { ...@@ -69,6 +93,7 @@ public interface WxEnterpriseApiService {
/** /**
* secretList * secretList
*
* @param wxEnterpriseId * @param wxEnterpriseId
* @return * @return
*/ */
...@@ -76,6 +101,7 @@ public interface WxEnterpriseApiService { ...@@ -76,6 +101,7 @@ public interface WxEnterpriseApiService {
/** /**
* 删除 * 删除
*
* @param secretId * @param secretId
* @return * @return
*/ */
......
...@@ -119,15 +119,15 @@ public class EnterpriseController extends WebBaseController { ...@@ -119,15 +119,15 @@ public class EnterpriseController extends WebBaseController {
Page<YwWxEnterpriseDTO> page = new Page<>(); Page<YwWxEnterpriseDTO> page = new Page<>();
if (Objects.nonNull(openTagFlag) && ALL == openTagFlag) { if (Objects.nonNull(openTagFlag) && ALL == openTagFlag) {
page = queryAll(pageInfo, keyword, gicContactHelper, version, wxEnterpriseIdInList, wxEnterpriseIdSetInCache); page = queryAll(pageInfo, keyword, gicContactHelper, version, wxEnterpriseIdInList, wxEnterpriseIdSetInCache, loginUserId);
} }
if (Objects.nonNull(openTagFlag) && OPEN == openTagFlag) { if (Objects.nonNull(openTagFlag) && OPEN == openTagFlag) {
page = queryOpen(pageInfo, keyword, gicEnterpriseName, gicContactHelper, version, wxEnterpriseIdInList, wxEnterpriseIdSetInCache); page = queryOpen(pageInfo, keyword, gicEnterpriseName, gicContactHelper, version, wxEnterpriseIdInList, wxEnterpriseIdSetInCache, loginUserId);
} }
if (Objects.nonNull(openTagFlag) && CLOSE == openTagFlag) { if (Objects.nonNull(openTagFlag) && CLOSE == openTagFlag) {
page = queryClose(pageInfo, keyword, gicContactHelper, version, wxEnterpriseIdInList, wxEnterpriseIdSetInCache); page = queryClose(pageInfo, keyword, gicContactHelper, version, wxEnterpriseIdInList, wxEnterpriseIdSetInCache, loginUserId);
} }
pageResult.setList(page.getResult()); pageResult.setList(page.getResult());
...@@ -167,9 +167,15 @@ public class EnterpriseController extends WebBaseController { ...@@ -167,9 +167,15 @@ public class EnterpriseController extends WebBaseController {
return wxEntIdSet; return wxEntIdSet;
} }
private Page<YwWxEnterpriseDTO> queryAll(BasePageInfo pageInfo, String keyword, Integer gicContactHelper, String version, List<String> wxEnterpriseIdInList, Set<String> wxEnterpriseIdSetInCache) { private Page<YwWxEnterpriseDTO> queryAll(BasePageInfo pageInfo,
String keyword,
Integer gicContactHelper,
String version,
List<String> wxEnterpriseIdInList,
Set<String> wxEnterpriseIdSetInCache,
String loginUserId) {
// 查询所有状态 // 查询所有状态
Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo, keyword, wxEnterpriseIdInList, gicContactHelper, version, null); Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo, keyword, wxEnterpriseIdInList, gicContactHelper, version, null, loginUserId);
page.getResult().forEach(one -> { page.getResult().forEach(one -> {
one.setVersion("3.0"); one.setVersion("3.0");
one.setBuyDate(new Date()); one.setBuyDate(new Date());
...@@ -185,14 +191,21 @@ public class EnterpriseController extends WebBaseController { ...@@ -185,14 +191,21 @@ public class EnterpriseController extends WebBaseController {
return page; return page;
} }
private Page<YwWxEnterpriseDTO> queryOpen(BasePageInfo pageInfo, String keyword, String gicEnterpriseName, Integer gicContactHelper, String version, List<String> wxEnterpriseIdInList, Set<String> wxEnterpriseIdSetInCache) { private Page<YwWxEnterpriseDTO> queryOpen(BasePageInfo pageInfo,
String keyword,
String gicEnterpriseName,
Integer gicContactHelper,
String version,
List<String> wxEnterpriseIdInList,
Set<String> wxEnterpriseIdSetInCache,
String loginUserId) {
// 查询开启状态 // 查询开启状态
if (haveCondition(gicEnterpriseName)) { if (haveCondition(gicEnterpriseName)) {
// 有条件-取交集 // 有条件-取交集
wxEnterpriseIdSetInCache.retainAll(wxEnterpriseIdInList); wxEnterpriseIdSetInCache.retainAll(wxEnterpriseIdInList);
} }
List<String> queryList = new ArrayList<>(wxEnterpriseIdSetInCache); List<String> queryList = new ArrayList<>(wxEnterpriseIdSetInCache);
Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo, keyword, queryList, gicContactHelper, version, null); Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo, keyword, queryList, gicContactHelper, version, null, loginUserId);
page.getResult().forEach(one -> { page.getResult().forEach(one -> {
one.setVersion("3.0"); one.setVersion("3.0");
one.setBuyDate(new Date()); one.setBuyDate(new Date());
...@@ -205,9 +218,15 @@ public class EnterpriseController extends WebBaseController { ...@@ -205,9 +218,15 @@ public class EnterpriseController extends WebBaseController {
return page; return page;
} }
private Page<YwWxEnterpriseDTO> queryClose(BasePageInfo pageInfo, String keyword, Integer gicContactHelper, String version, List<String> wxEnterpriseIdInList, Set<String> wxEnterpriseIdSetInCache) { private Page<YwWxEnterpriseDTO> queryClose(BasePageInfo pageInfo,
String keyword,
Integer gicContactHelper,
String version,
List<String> wxEnterpriseIdInList,
Set<String> wxEnterpriseIdSetInCache,
String loginUserId) {
// 查询关闭状态 // 查询关闭状态
Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo, keyword, wxEnterpriseIdInList, gicContactHelper, version, new ArrayList<>(wxEnterpriseIdSetInCache)); Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo, keyword, wxEnterpriseIdInList, gicContactHelper, version, new ArrayList<>(wxEnterpriseIdSetInCache), loginUserId);
page.getResult().forEach(one -> { page.getResult().forEach(one -> {
one.setVersion("3.0"); one.setVersion("3.0");
one.setBuyDate(new Date()); one.setBuyDate(new Date());
......
...@@ -23,6 +23,11 @@ public class Config { ...@@ -23,6 +23,11 @@ public class Config {
@Value("${memberOpenPage}") @Value("${memberOpenPage}")
private String memberOpenPage; private String memberOpenPage;
@Value("${historyMbrMassEnterpriseWhiteList}")
private String historyMbrMassEnterpriseWhiteList;
@Value("${historyMbrMassEnterpriseWhiteList}")
private String historyMbrMassOperWhiteList;
public String getMemberOpenPage() { public String getMemberOpenPage() {
return memberOpenPage; return memberOpenPage;
} }
...@@ -70,4 +75,20 @@ public class Config { ...@@ -70,4 +75,20 @@ public class Config {
public void setWxSuiteid(String wxSuiteid) { public void setWxSuiteid(String wxSuiteid) {
this.wxSuiteid = wxSuiteid; this.wxSuiteid = wxSuiteid;
} }
public String getHistoryMbrMassEnterpriseWhiteList() {
return historyMbrMassEnterpriseWhiteList;
}
public void setHistoryMbrMassEnterpriseWhiteList(String historyMbrMassEnterpriseWhiteList) {
this.historyMbrMassEnterpriseWhiteList = historyMbrMassEnterpriseWhiteList;
}
public String getHistoryMbrMassOperWhiteList() {
return historyMbrMassOperWhiteList;
}
public void setHistoryMbrMassOperWhiteList(String historyMbrMassOperWhiteList) {
this.historyMbrMassOperWhiteList = historyMbrMassOperWhiteList;
}
} }
...@@ -11,6 +11,7 @@ import com.gic.haoban.manage.api.dto.*; ...@@ -11,6 +11,7 @@ import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.SecretTypeEnum; import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.StaffApiService; import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService; import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanWelcomeMapper; import com.gic.haoban.manage.service.dao.mapper.TabHaobanWelcomeMapper;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper; import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.entity.TabHaobanWxApplication; import com.gic.haoban.manage.service.entity.TabHaobanWxApplication;
...@@ -21,6 +22,7 @@ import com.gic.haoban.manage.service.pojo.bo.StaffPrivacyUseLogBO; ...@@ -21,6 +22,7 @@ import com.gic.haoban.manage.service.pojo.bo.StaffPrivacyUseLogBO;
import com.gic.haoban.manage.service.service.*; import com.gic.haoban.manage.service.service.*;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
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;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -28,9 +30,8 @@ import org.springframework.beans.BeanUtils; ...@@ -28,9 +30,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.*;
import java.util.List; import java.util.stream.Collectors;
import java.util.Set;
@Service @Service
public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService { public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService {
...@@ -53,6 +54,8 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService { ...@@ -53,6 +54,8 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService {
private TabHaobanWelcomeMapper welcomeMapper; private TabHaobanWelcomeMapper welcomeMapper;
@Autowired @Autowired
private StaffPrivacyUseLogService staffPrivacyUseLogService; private StaffPrivacyUseLogService staffPrivacyUseLogService;
@Autowired
private Config config;
@Override @Override
public void callbackReviceEnterprise(QywxCorpInfoSimpleDTO dto) { public void callbackReviceEnterprise(QywxCorpInfoSimpleDTO dto) {
...@@ -120,10 +123,46 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService { ...@@ -120,10 +123,46 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService {
} }
@Override @Override
public com.gic.api.base.commons.Page<YwWxEnterpriseDTO> list(BasePageInfo pageInfo, String keyword, List<String> enterpriseIds, Integer gicContactFlag, String version, List<String> enterpriseIdsNotIn) { public com.gic.api.base.commons.Page<YwWxEnterpriseDTO> list(BasePageInfo pageInfo, String keyword, List<String> enterpriseIds, Integer gicContactFlag,
String version, List<String> enterpriseIdsNotIn, String loginUserId) {
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize()); PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
Page<TabHaobanWxEnterprise> page = wxEnterpriseMapper.list(keyword, enterpriseIds, gicContactFlag, version, enterpriseIdsNotIn); Page<TabHaobanWxEnterprise> page = wxEnterpriseMapper.list(keyword, enterpriseIds, gicContactFlag, version, enterpriseIdsNotIn);
return PageUtil.changePageHelperToCurrentPage(page, YwWxEnterpriseDTO.class); // 数据转换+白名单过滤
if (Objects.isNull(page) || CollectionUtils.isEmpty(page.getResult())) {
return new com.gic.api.base.commons.Page<>();
}
com.gic.api.base.commons.Page<YwWxEnterpriseDTO> resPage = PageUtil.changePageHelperToCurrentPage(page, YwWxEnterpriseDTO.class);
boolean matchOperId = matchOperId(loginUserId);
resPage.getResult().forEach(one -> {
if (matchWxEnterpriseIdWhiteList(one.getWxEnterpriseId()) && matchOperId) {
one.setOpenMassFlag(Boolean.TRUE);
} else {
one.setOpenMassFlag(Boolean.FALSE);
}
});
return resPage;
}
private boolean matchWxEnterpriseIdWhiteList(String wxEnterpriseId) {
// 匹配微信企业id白名单
String whiteList = config.getHistoryMbrMassEnterpriseWhiteList();
if (StringUtils.isEmpty(whiteList)) {
return false;
}
String[] idArr = whiteList.split(",");
Set<String> idSet = new HashSet<>(Arrays.asList(idArr));
return idSet.contains(wxEnterpriseId);
}
private boolean matchOperId(String loginUserId) {
// 匹配运营id白名单
String whiteList = config.getHistoryMbrMassOperWhiteList();
if (StringUtils.isEmpty(whiteList)) {
return false;
}
String[] idArr = whiteList.split(",");
Set<String> idSet = new HashSet<>(Arrays.asList(idArr));
return idSet.contains(loginUserId);
} }
@Override @Override
......
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