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.*;
...@@ -8,180 +9,205 @@ import java.util.Set; ...@@ -8,180 +9,205 @@ import java.util.Set;
public interface WxEnterpriseApiService { public interface WxEnterpriseApiService {
/** /**
* 好办接收企业微信回调信息 * 好办接收企业微信回调信息
* *
* @param dto * @param dto
*/ */
void callbackReviceEnterprise(QywxCorpInfoSimpleDTO dto); void callbackReviceEnterprise(QywxCorpInfoSimpleDTO dto);
/**
* 运维后台获取微信企业id列表 /**
* @return * desc: 运维后台获取微信企业id列表
*/ *
com.gic.api.base.commons.Page<YwWxEnterpriseDTO> list(BasePageInfo pageInfo,String keyword,List<String> enterpriseIds,Integer gicContactFlag,String version, List<String> enterpriseIdsNotIn); * @param pageInfo 分页参数
/** * @param keyword 关键字
* 获取一个 * @param enterpriseIds 企业id列表
* @param wxEnterpriseId * @param gicContactFlag 关联标记
* @return * @param version 版本
*/ * @param enterpriseIdsNotIn 企业不存在列表
WxEnterpriseDTO getOne(String wxEnterpriseId); * @param loginUserId 登录用户id
* @return : {@link Page< YwWxEnterpriseDTO>}
/** * @author : YongEn
* 根据corpId查询一条数据 * @date : 2022/2/15
* @param corpId */
* @return com.gic.api.base.commons.Page<YwWxEnterpriseDTO> list(BasePageInfo pageInfo,
*/ String keyword,
WxEnterpriseDTO getEnterpriseBycorpId(String corpId); List<String> enterpriseIds,
/** Integer gicContactFlag,
* 更新企业 String version,
* @param enterpriseDTO List<String> enterpriseIdsNotIn,
*/ String loginUserId);
void update(WxEnterpriseDTO enterpriseDTO);
/**
List<YwWxEnterpriseDTO> listAll(); * 获取一个
*
List<YwWxEnterpriseDTO> listByIds(Set<String> enterpriseIds); * @param wxEnterpriseId
* @return
/** */
* 企业是否过期 true是 WxEnterpriseDTO getOne(String wxEnterpriseId);
* @param enterpriseId
* @return /**
*/ * 根据corpId查询一条数据
boolean enterpriseIsOver(String enterpriseId); *
* @param corpId
/** * @return
* 获取配置 */
* WxEnterpriseDTO getEnterpriseBycorpId(String corpId);
* @param wxEnterpriseId
* @param secretType /**
* @param enterpriseId * 更新企业
* @return *
*/ * @param enterpriseDTO
SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType, String enterpriseId); */
void update(WxEnterpriseDTO enterpriseDTO);
/**
* 保存 List<YwWxEnterpriseDTO> listAll();
*
* @param secretSettingDTO List<YwWxEnterpriseDTO> listByIds(Set<String> enterpriseIds);
* @return
*/ /**
boolean saveSecretSetting(SecretSettingDTO secretSettingDTO); * 企业是否过期 true是
*
/** * @param enterpriseId
* secretList * @return
* @param wxEnterpriseId */
* @return boolean enterpriseIsOver(String enterpriseId);
*/
List<SecretSettingDTO> listSecret(String wxEnterpriseId); /**
* 获取配置
/** *
* 删除 * @param wxEnterpriseId
* @param secretId * @param secretType
* @return * @param enterpriseId
*/ * @return
boolean delSecretSetting(String secretId); */
SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType, String enterpriseId);
/**
* 保存小程序配置 /**
* * 保存
* @param miniprogramSettingDTO *
* @return * @param secretSettingDTO
*/ * @return
boolean saveMiniprogramSetting(MiniprogramSettingDTO miniprogramSettingDTO); */
boolean saveSecretSetting(SecretSettingDTO secretSettingDTO);
/** /**
* 查询小程序配置列表 * secretList
* *
* @param wxEnterpriseId * @param wxEnterpriseId
* @return * @return
*/ */
List<MiniprogramSettingDTO> listMiniprogramSetting(String wxEnterpriseId); List<SecretSettingDTO> listSecret(String wxEnterpriseId);
/** /**
* 获取单个小程序配置 * 删除
* *
* @param wxEnterpriseId * @param secretId
* @param enterpriseId * @return
* @return */
*/ boolean delSecretSetting(String secretId);
MiniprogramSettingDTO getMiniprogramSettingByEid(String wxEnterpriseId, String enterpriseId);
/**
* 保存小程序配置
/** *
* 获取单个小程序配置 * @param miniprogramSettingDTO
* * @return
* @param wxEnterpriseId */
* @param appId boolean saveMiniprogramSetting(MiniprogramSettingDTO miniprogramSettingDTO);
* @return
*/
MiniprogramSettingDTO getMiniprogramSettingByAppId(String wxEnterpriseId, String appId); /**
* 查询小程序配置列表
/** *
* 删除 小程序配置 * @param wxEnterpriseId
* * @return
* @return */
*/ List<MiniprogramSettingDTO> listMiniprogramSetting(String wxEnterpriseId);
boolean delMiniprogramSettingByEid(String id);
/**
/** * 获取单个小程序配置
* @param dto *
* @return * @param wxEnterpriseId
*/ * @param enterpriseId
boolean saveWelcome(WelcomeDTO dto); * @return
*/
/** MiniprogramSettingDTO getMiniprogramSettingByEid(String wxEnterpriseId, String enterpriseId);
* 获取欢迎语
*
* @param wxEnterpriseId /**
* @return * 获取单个小程序配置
*/ *
WelcomeDTO getWelcome(String wxEnterpriseId); * @param wxEnterpriseId
* @param appId
/** * @return
* 获取欢迎语 */
* MiniprogramSettingDTO getMiniprogramSettingByAppId(String wxEnterpriseId, String appId);
* @param wxEnterpriseId
* @return /**
*/ * 删除 小程序配置
boolean setWelcome(String wxEnterpriseId, Integer openFlag); *
* @return
/** */
* 删除欢迎语 boolean delMiniprogramSettingByEid(String id);
*
* @param wxEnterpriseId /**
* @return * @param dto
*/ * @return
boolean delWelcome(String wxEnterpriseId); */
boolean saveWelcome(WelcomeDTO dto);
/** /**
* 企微回调-同意授权转换external_userid * 获取欢迎语
* *
* @param corpId 公司标识(同意授权的企业ID) * @param wxEnterpriseId
* @param serviceCorpId 服务公司id(服务商企业ID) * @return
* @author mozhu */
* @date 2021-11-30 19:14:08 WelcomeDTO getWelcome(String wxEnterpriseId);
*/
void agreeExternalUseridCallBack(String corpId, String serviceCorpId); /**
* 获取欢迎语
*
/** * @param wxEnterpriseId
* 同意外部标识标志 * @return
* */
* @param wxEnterpriseId 公司标识 boolean setWelcome(String wxEnterpriseId, Integer openFlag);
* @param openFlag 开放的标志
* @author mozhu /**
* @date 2021-12-18 11:55:51 * 删除欢迎语
*/ *
void agreeExternalUseridFlag(String wxEnterpriseId, Integer openFlag); * @param wxEnterpriseId
* @return
/** */
* 好办登录 boolean delWelcome(String wxEnterpriseId);
*
* @param staffLoginDTO 员工登录dto
* @author mozhu /**
* @date 2021-12-15 11:02:52 * 企微回调-同意授权转换external_userid
*/ *
void wellDoneLogin(StaffLoginDTO staffLoginDTO); * @param corpId 公司标识(同意授权的企业ID)
* @param serviceCorpId 服务公司id(服务商企业ID)
* @author mozhu
* @date 2021-11-30 19:14:08
*/
void agreeExternalUseridCallBack(String corpId, String serviceCorpId);
/**
* 同意外部标识标志
*
* @param wxEnterpriseId 公司标识
* @param openFlag 开放的标志
* @author mozhu
* @date 2021-12-18 11:55:51
*/
void agreeExternalUseridFlag(String wxEnterpriseId, Integer openFlag);
/**
* 好办登录
*
* @param staffLoginDTO 员工登录dto
* @author mozhu
* @date 2021-12-15 11:02:52
*/
void wellDoneLogin(StaffLoginDTO staffLoginDTO);
} }
...@@ -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