Commit 81bf837e by 徐高华

Merge branch 'feature/xgh/7月零散' into 'master'

Feature/xgh/7月零散

See merge request !2082
parents 1aa240ab bea257b7
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
/**
* 会员加群、好友信息
*/
public class MemberGroupFriendDTO implements Serializable {
// 0好友 1群
private int type ;
private String clerkId ;
private String storeId ;
private Long groupChatId ;
private String remark ;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public Long getGroupChatId() {
return groupChatId;
}
public void setGroupChatId(Long groupChatId) {
this.groupChatId = groupChatId;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
......@@ -26,6 +26,17 @@ public class WxUserAddLogQDTO implements Serializable{
private String friendStoreId ;
// 0手动 1系统
private int delType ;
// 删除时是否单向好友 1是0否
private int delIsSingle ;
public int getDelIsSingle() {
return delIsSingle;
}
public void setDelIsSingle(int delIsSingle) {
this.delIsSingle = delIsSingle;
}
public int getDelType() {
return delType;
......
......@@ -53,6 +53,16 @@ public class WelcomeDetailDTO implements Serializable {
*/
private List<WelcomeMediaDTO> welcomeMediaList;
private int scene ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getWelcomeId() {
return welcomeId;
}
......
......@@ -68,6 +68,16 @@ public class WelcomeListDTO implements Serializable {
private Integer type;
private int scene ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getModifierId() {
return modifierId;
}
......
......@@ -23,6 +23,17 @@ public class QueryWelcomeQDTO extends BasePageInfo {
*/
private Integer type;
// 发送场景 0无条件 1全部 2加好友 3继承
private int scene ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
......
......@@ -73,6 +73,16 @@ public class SaveWelcomeQDTO implements Serializable {
*/
private Integer type;
private int scene = 1 ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getModifierId() {
return modifierId;
}
......
......@@ -343,5 +343,13 @@ public interface ExternalClerkRelatedApiService {
ExternalClerkRelatedDTO getDelFriend(String wxEnterpriseId , String enterpriseId , String staffId) ;
/**
* 判断会员是否加过好友
* @param enterpriseId
* @param memberId
* @return
*/
public com.gic.api.base.commons.ServiceResponse<MemberGroupFriendDTO> memberIsAddClerk(String enterpriseId, String memberId) ;
}
......@@ -83,6 +83,10 @@ public interface QywxTagApiService {
*/
public ServiceResponse syncFriendTagToQywxByExternalUserId(String wxEnterpriseId, String enterpriseId, String externalUserId, List<String> tagItemIds);
public ServiceResponse syncFriendTagToQywxByExternalUserId(String wxEnterpriseId, String enterpriseId, String externalUserId, List<String> tagItemIds , String externalUserInfo);
/**
* 同步企业微信导入gic的会员标签
*
......
......@@ -235,6 +235,8 @@ public interface StaffApiService {
*/
List<String> getHaoBanStoreIdsRolesByClerkId(String clerkId, String wxEnterpriseId);
List<String> isGicSuper(String clerkId , String wxEnterpriseId) ;
/**
* 门店筛选器id和好办企业门店交集
......
......@@ -5,6 +5,7 @@ import java.util.List;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.MemberGroupFriendDTO;
import com.gic.haoban.manage.api.dto.chat.ChatEventDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO;
......@@ -173,4 +174,12 @@ public interface GroupChatApiService {
*/
public List<String> listOpenGroupChatDK(String enterpriseId , String staffId) ;
/**
* 判断会员是否入群
* @param enterpriseId
* @param memberId
* @return
*/
public ServiceResponse<MemberGroupFriendDTO> memberIsAddGroup(String enterpriseId, String memberId) ;
}
......@@ -76,4 +76,5 @@ public interface GroupChatUserMapper {
*/
List<UserQuitBO> listQuitNum(@Param("wxEnterpriseId") String wxEnterpriseId ,@Param("start") Date start ,@Param("end") Date end) ;
List<TabGroupChatUser> getByMember(@Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId);
}
\ No newline at end of file
......@@ -78,6 +78,17 @@ public class TabWelcome implements Serializable {
private String modifierName ;
private Integer type;
private int scene ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getModifierId() {
return modifierId;
}
......
......@@ -64,6 +64,15 @@ public class TabWxUserAddLog implements Serializable {
private String friendClerkId ;
private String friendStoreId ;
private int delType ;
private int delIsSingle ;
public int getDelIsSingle() {
return delIsSingle;
}
public void setDelIsSingle(int delIsSingle) {
this.delIsSingle = delIsSingle;
}
public int getDelType() {
return delType;
......
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class WelcomeUserInfoBO implements Serializable {
private String name ;
private int addWay ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAddWay() {
return addWay;
}
public void setAddWay(int addWay) {
this.addWay = addWay;
}
public WelcomeUserInfoBO(String name, int addWay) {
this.name = name;
this.addWay = addWay;
}
}
......@@ -27,6 +27,8 @@ public class SaveWelcomeBO {
* @see com.gic.haoban.manage.api.enums.hm.HmWelcomeType
*/
private Integer type;
private int scene = 1 ;
/**
* 内容
*/
......@@ -68,6 +70,14 @@ public class SaveWelcomeBO {
*/
private List<WelcomeSuitStaffBO> suitStaffDeleteList;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getModifierId() {
return modifierId;
}
......
......@@ -26,6 +26,8 @@ public class WelcomeDetailBO {
* 欢迎语类型
*/
private Integer type;
private int scene ;
/**
* 内容
*/
......@@ -51,6 +53,14 @@ public class WelcomeDetailBO {
*/
private List<WelcomeMediaBO> welcomeMediaList;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getWelcomeId() {
return welcomeId;
}
......
......@@ -66,6 +66,16 @@ public class WelcomeListBO {
private Integer type;
private int scene ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getCreatorId() {
return creatorId;
}
......
......@@ -18,6 +18,27 @@ public class WelcomeInfoQO extends BasePageInfo {
private Integer type;
//1 正常加好友 2离职继承
private int sceneType ;
private int scene ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public int getSceneType() {
return sceneType;
}
public void setSceneType(int sceneType) {
this.sceneType = sceneType;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
......
......@@ -87,7 +87,8 @@ public interface WelcomeService {
* @author : YongEn
* @date : 2022/2/9
*/
WelcomeDetailBO getMatchWelcome(String staffId, String wxEnterpriseId);
WelcomeDetailBO getMatchWelcome(String staffId, String wxEnterpriseId,int welcomeScene);
/**
* desc: 新增默认欢迎语
......
......@@ -4,6 +4,7 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatUserBO;
import java.util.List;
......@@ -16,4 +17,14 @@ public interface GroupChatUserService {
* 查询群组内群成员
*/
List<GroupChatUserBO> queryGroupMemberWithChatId(String enterpriseId, String wxEnterpriseId, Long groupChatId);
/**
* 判断会员是否进过群
* @param enterpriseId
* @param memberId
* @return
*/
List<TabGroupChatUser> getByMember(String enterpriseId , String memberId) ;
}
\ No newline at end of file
......@@ -67,4 +67,9 @@ public class GroupChatUserServiceImpl implements GroupChatUserService {
})
.collect(Collectors.toList());
}
@Override
public List<TabGroupChatUser> getByMember(String enterpriseId, String memberId) {
return this.groupChatUserMapper.getByMember(enterpriseId,memberId);
}
}
\ No newline at end of file
......@@ -151,6 +151,7 @@ public class WxUserAddLogServiceImpl implements WxUserAddLogService {
entity.setFriendClerkId(qdto.getFriendClerkId());
entity.setFriendStoreId(qdto.getFriendStoreId());
entity.setDelType(qdto.getDelType());
entity.setDelIsSingle(qdto.getDelIsSingle());
this.wxUserAddLogMapper.insert(entity);
}catch(Exception e) {
log.info("异常",e);
......
......@@ -179,6 +179,9 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
if(autoDelNum>0) {
wxUserAddLogQDTO.setDelType(1);
}
if(related.getExternalStatus()==3) {
wxUserAddLogQDTO.setDelIsSingle(1) ;
}
wxUserAddLogService.save(wxUserAddLogQDTO);
//定制
addDelFriendEvent(related.getUnionid(), related.getClerkId(), wxEnterpriseId, enterpriseId, related.getMemberId(), related.getStoreId(), 0);
......
......@@ -5,8 +5,10 @@ import java.util.Date;
import java.util.List;
import java.util.Objects;
import com.alibaba.fastjson.JSONArray;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanWelcomeMediaMapper;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.pojo.WelcomeUserInfoBO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
......@@ -112,10 +114,6 @@ public class WelcomeSendServiceImpl implements WelcomeSendService {
/**
* 发送欢迎语
*
* @param dto
* @param wxEnterpriseDTO
* @param enterpriseId
* @param staffId
* {"data":{"welcomeCode":"J0GjdrsF-nZNac3Xc6V2K2p8OokQZcY4g0jxljdHc7A","wxUserId":"016903","suiteid":"selfSuiteId","corpid":"wxbde984c3488b837e","externalUserid":"wmSe9FEAAAy39F1NI6Z-THUUd9mkqOIw","changeType":"add_external_contact"},"type":1,"mqTraceId":"278473818-1-1679557069.126"}
*/
@Override
......@@ -144,16 +142,23 @@ public class WelcomeSendServiceImpl implements WelcomeSendService {
log.info("发送欢迎语,state={}", state);
String relationKey = SecureUtil.md5(staffId + externalUserId);
WelcomeDetailBO welcomeBO = null;
WelcomeUserInfoBO userBO = this.getExternalUserName(qwDTO, externalUserId , wxUserId);
int addWay = userBO.getAddWay() ;
int welcomeScene = 0 ;
if(addWay==202) {
// 离职继承、在职继承
welcomeScene = 202 ;
}
if (StringUtils.isNotBlank(state)
&& (state.startsWith(Manage3Constants.HM) || state.startsWith(Manage3Constants.DT))) {
WelcomeReferBO welcomeReferBo = getWelcomeReferBo(state);
welcomeBO = welcomeService.getMatchWelcomeWithReferId(staffId, wxEnterpriseId, welcomeReferBo);
//单人活码欢迎语未配置时,取欢迎语的配置进行发送
if(state.startsWith(Manage3Constants.HM) && welcomeBO == null){
welcomeBO = welcomeService.getMatchWelcome(staffId, wxEnterpriseId);
welcomeBO = welcomeService.getMatchWelcome(staffId, wxEnterpriseId,welcomeScene);
}
} else {
welcomeBO = welcomeService.getMatchWelcome(staffId, wxEnterpriseId);
welcomeBO = welcomeService.getMatchWelcome(staffId, wxEnterpriseId,welcomeScene);
}
if (Objects.isNull(welcomeBO)) {
log.info("欢迎语未配置wxEnterpriseId:{}", wxEnterpriseId);
......@@ -163,7 +168,7 @@ public class WelcomeSendServiceImpl implements WelcomeSendService {
log.info("欢迎语发送{}={}", welcomeBO.getWelcomeId(), JSON.toJSONString(welcomeBO));
String content = welcomeBO.getWelcomeContent();
if (content.contains("<微信昵称>")) {
String nickName = this.getExternalUserName(qwDTO, externalUserId);
String nickName = userBO.getName() ;
//这里对“$”符号和”\\“符号进行转义处理
nickName = java.util.regex.Matcher.quoteReplacement(nickName);
content = content.replaceAll("<微信昵称>", nickName);
......@@ -403,7 +408,7 @@ public class WelcomeSendServiceImpl implements WelcomeSendService {
}
}
private String getExternalUserName(WxEnterpriseQwDTO qwDTO, String externalUserId) {
private WelcomeUserInfoBO getExternalUserName(WxEnterpriseQwDTO qwDTO, String externalUserId , String addUserId) {
log.info("查询好友详情,externalUserId={},{}", externalUserId,qwDTO.getWxSecurityType());
String userInfo = null ;
if(qwDTO.isSelf()) {
......@@ -412,13 +417,14 @@ public class WelcomeSendServiceImpl implements WelcomeSendService {
userInfo =qywxUserApiService.getExternalUseridInfo(qwDTO.getThirdCorpid(), config.getWxSuiteid(), externalUserId);
}
String name = "";
Integer addWay = 0 ;
if (StringUtils.isBlank(userInfo)) {
log.info("好友不存在");
return name;
return new WelcomeUserInfoBO(name,0);
}
if ("1".equals(userInfo)) {
log.info("限制次数");
return name;
return new WelcomeUserInfoBO(name,0);
}
if (StringUtils.isNotBlank(userInfo)) {
JSONObject userJson = JSON.parseObject(userInfo);
......@@ -428,8 +434,22 @@ public class WelcomeSendServiceImpl implements WelcomeSendService {
jt = JSON.parseObject(external_contact);
name = EmojiFilterUtil.filterEmojiLast(jt.getString("name"), true);
}
String follow_user = "";
follow_user = userJson.getString("follow_user");
if (StringUtils.isNotBlank(follow_user)) {
JSONArray j = JSON.parseArray(follow_user);
for (Object object : j) {
String followJson = JSON.toJSONString(object);
JSONObject follow = JSON.parseObject(followJson);
String userId = follow.getString("userid");
if (userId.equals(addUserId)) {
addWay = follow.getIntValue("add_way") ;
}
}
}
}
return name;
log.info("addWay={}",addWay);
return new WelcomeUserInfoBO(name,addWay);
}
private String getClerkId(String wxEnterpriseId, String staffId, String state) {
......
......@@ -205,6 +205,7 @@ public class WelcomeServiceImpl implements WelcomeService {
welcome.setModifierName(bo.getModifierName());
welcome.setDefaultWelcomeFlag(bo.getDefaultWelcomeFlag());
welcome.setType(bo.getType());
welcome.setScene(bo.getScene());
welcomeMapper.insert(welcome);
return welcome;
}
......@@ -226,6 +227,7 @@ public class WelcomeServiceImpl implements WelcomeService {
welcome.setDefaultWelcomeFlag(bo.getDefaultWelcomeFlag());
welcome.setModifierId(bo.getModifierId());
welcome.setModifierName(bo.getModifierName());
welcome.setScene(bo.getScene());
welcomeMapper.updateByPrimaryKeySelective(welcome);
return welcome;
}
......@@ -302,6 +304,7 @@ public class WelcomeServiceImpl implements WelcomeService {
bo.setOperatorName(one.getOperatorName());
bo.setDefaultWelcomeFlag(one.getDefaultWelcomeFlag());
bo.setType(one.getType());
bo.setScene(one.getScene());
// 媒体列表
bo.setWelcomeMediaList(
convertWelcomeMedia(welcomeMediaMapper.listByWelcomeId(one.getWelcomeId()))
......@@ -345,6 +348,7 @@ public class WelcomeServiceImpl implements WelcomeService {
welcomeDetail.setOpenFlag(welcome.getOpenFlag());
welcomeDetail.setDefaultWelcomeFlag(welcome.getDefaultWelcomeFlag());
welcomeDetail.setType(welcome.getType());
welcomeDetail.setScene(welcome.getScene());
// 媒体列表
welcomeDetail.setWelcomeMediaList(
convertWelcomeMedia(welcomeMediaMapper.listByWelcomeId(welcome.getWelcomeId()))
......@@ -460,24 +464,32 @@ public class WelcomeServiceImpl implements WelcomeService {
}
@Override
public WelcomeDetailBO getMatchWelcome(String staffId, String wxEnterpriseId) {
public WelcomeDetailBO getMatchWelcome(String staffId, String wxEnterpriseId,int welcomeScene) {
if (StringUtils.isEmpty(staffId) || StringUtils.isEmpty(wxEnterpriseId)) {
return null;
}
return queryMatchWelcome(staffId, wxEnterpriseId, HmWelcomeType.NORMAL.getCode());
return queryMatchWelcome(staffId, wxEnterpriseId, HmWelcomeType.NORMAL.getCode() ,welcomeScene);
}
private WelcomeDetailBO queryMatchWelcome(String staffId, String wxEnterpriseId, Integer type) {
private WelcomeDetailBO queryMatchWelcome(String staffId, String wxEnterpriseId, Integer type , int welcomeScene) {
WelcomeInfoQO welcomeInfoQO = new WelcomeInfoQO();
welcomeInfoQO.setWxEnterpriseId(wxEnterpriseId);
welcomeInfoQO.setType(type);
// 查询非默认欢迎语
welcomeInfoQO.setDefaultWelcomeFlag(0);
logger.info("发送场景={}",welcomeScene);
if(welcomeScene==202) {
welcomeInfoQO.setSceneType(2);
}else {
welcomeInfoQO.setSceneType(1);
}
List<TabWelcome> nonDefaultWelcomList = welcomeMapper.queryWelcomeList(welcomeInfoQO);
// 查询默认欢迎语
welcomeInfoQO.setSceneType(0);
welcomeInfoQO.setDefaultWelcomeFlag(1);
List<TabWelcome> defaultWelcomeList = welcomeMapper.queryWelcomeList(welcomeInfoQO);
if (CollectionUtils.isEmpty(nonDefaultWelcomList)) {
logger.info("只有默认欢迎语");
return checkAndGetDefaultWelcome(defaultWelcomeList);
}
// 匹配部门组织架构
......@@ -514,7 +526,7 @@ public class WelcomeServiceImpl implements WelcomeService {
if (Objects.isNull(matchWelcome)) {
return checkAndGetDefaultWelcome(defaultWelcomeList);
}
logger.info("欢迎语已匹配");
logger.info("欢迎语已匹配={}",matchWelcome.getWelcomeId());
return matchWelcome;
}
......@@ -532,6 +544,7 @@ public class WelcomeServiceImpl implements WelcomeService {
logger.info("未配置默认欢迎语");
return null;
}
logger.info("使用默认欢迎语发送");
return convertWelcomeToBo(defaultWelcomeList.get(0));
}
......@@ -692,6 +705,7 @@ public class WelcomeServiceImpl implements WelcomeService {
welcomeInfoQo.setWxEnterpriseId(queryWelcomeQDTO.getWxEnterpriseId());
welcomeInfoQo.setTitle(queryWelcomeQDTO.getTitle());
welcomeInfoQo.setType(queryWelcomeQDTO.getType());
welcomeInfoQo.setScene(queryWelcomeQDTO.getScene());
PageHelper.startPage(queryWelcomeQDTO.getPageNum(), queryWelcomeQDTO.getPageSize());
com.github.pagehelper.Page<TabWelcome> tabWelcomes =
(com.github.pagehelper.Page<TabWelcome>) welcomeMapper.queryWelcomeList(welcomeInfoQo);
......
......@@ -76,6 +76,12 @@ public class AuditApiServiceImpl implements AuditApiService {
}
if (storeIdList.contains("-1")) {
storeIdList = null;
}else {
List<String> superList = this.staffApiService.isGicSuper(clerkId,wxEnterpriseId) ;
if(CollectionUtils.isNotEmpty(superList) && superList.contains("-1")) {
logger.info("gic超管");
storeIdList = null ;
}
}
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
com.github.pagehelper.Page<TabHaobanAudit> page = auditMapper.page(wxEnterpriseId, auditType, storeIdList, search, enterpriseId, auditStatus, auditFlag);
......
......@@ -866,5 +866,24 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
return retPage;
}
@Override
public com.gic.api.base.commons.ServiceResponse<MemberGroupFriendDTO> memberIsAddClerk(String enterpriseId, String memberId) {
List<TabHaobanExternalClerkRelated> list = this.externalClerkRelatedService.getAddTimeByMemberId(memberId,enterpriseId,"1") ;
if(CollectionUtils.isNotEmpty(list)) {
TabHaobanExternalClerkRelated item = list.get(0) ;
MemberGroupFriendDTO dto = new MemberGroupFriendDTO() ;
dto.setType(0);
String storeId = item.getStoreId() ;
String clerkId = item.getClerkId() ;
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
if(clerkDTO != null && null != storeDTO) {
dto.setStoreId(storeId);
dto.setClerkId(clerkId);
dto.setRemark(clerkDTO.getClerkName()+"("+clerkDTO.getClerkCode()+") , " + storeDTO.getStoreName()+"("+storeDTO.getStoreCode()+")");
return com.gic.api.base.commons.ServiceResponse.success(dto) ;
}
}
return com.gic.api.base.commons.ServiceResponse.success(null) ;
}
}
......@@ -479,7 +479,12 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
@Override
public ServiceResponse syncFriendTagToQywxByExternalUserId(String wxEnterpriseId, String enterpriseId, String externalUserId, List<String> tagItemIds) {
logger.info("同步好友标签到企业微信:externalUserId={},{}", externalUserId, JSONObject.toJSONString(tagItemIds));
return this.syncFriendTagToQywxByExternalUserId(wxEnterpriseId,enterpriseId,externalUserId,tagItemIds,null);
}
@Override
public ServiceResponse syncFriendTagToQywxByExternalUserId(String wxEnterpriseId, String enterpriseId, String externalUserId, List<String> tagItemIds, String externalUserInfo) {
logger.info("同步gic标签到企业微信:externalUserId={},{},{}", externalUserId, JSONObject.toJSONString(tagItemIds),externalUserInfo);
ServiceResponse resp = new ServiceResponse();
//获取需要同步的标签
QywxSyncTagFormatPojo syncTagFormat = listSyncTagItems(wxEnterpriseId);
......@@ -496,11 +501,13 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
//查询外部联系人
String wxSuiteid = config.getWxSuiteid();
String externalUseridInfo = null ;
if(qwDTO.isSelf()) {
externalUseridInfo = this.qywxUserApiService.getCorpSelfExternalUseridInfo(qwDTO.getDkCorpid(), qwDTO.getSelfSecret(), externalUserId,qwDTO.getUrlHost()) ;
}else {
externalUseridInfo = this.qywxUserApiService.getExternalUseridInfo(qwDTO.getThirdCorpid(), wxSuiteid, externalUserId);
String externalUseridInfo = externalUserInfo ;
if(null == externalUseridInfo) {
if(qwDTO.isSelf()) {
externalUseridInfo = this.qywxUserApiService.getCorpSelfExternalUseridInfo(qwDTO.getDkCorpid(), qwDTO.getSelfSecret(), externalUserId,qwDTO.getUrlHost()) ;
}else {
externalUseridInfo = this.qywxUserApiService.getExternalUseridInfo(qwDTO.getThirdCorpid(), wxSuiteid, externalUserId);
}
}
if (StringUtils.isBlank(externalUseridInfo)) {
logger.info("好友不存在");
......
......@@ -890,6 +890,17 @@ public class StaffApiServiceImpl implements StaffApiService {
}
@Override
public List<String> isGicSuper(String clerkId, String wxEnterpriseId) {
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
if (clerkDTO == null) {
logger.info("导购不存在:clerkId:{},无门店", clerkId);
return Collections.emptyList();
}
List<String> gicStoreIds = getStoreIdList(clerkDTO);
return gicStoreIds;
}
@Override
public List<String> getHaoBanStoreIdsRolesByClerkId(String clerkId, String wxEnterpriseId) {
logger.info("查询导购权限,clerkId={},wxEnterpriseId={}", clerkId, wxEnterpriseId);
if (StringUtils.isAnyBlank(clerkId, wxEnterpriseId)) {
......
......@@ -62,6 +62,7 @@ public class WelcomeApiServiceImpl implements WelcomeApiService {
saveWelcomeBO.setModifierId(qdto.getModifierId());
saveWelcomeBO.setModifierName(qdto.getModifierName());
saveWelcomeBO.setType(qdto.getType());
saveWelcomeBO.setScene(qdto.getScene());
// 媒体列表
saveWelcomeBO.setWelcomeMediaList(EntityUtil.changeEntityListNew(SaveWelcomeMediaBO.class, qdto.getWelcomeMediaList()));
// 适用部门新增列表
......@@ -110,6 +111,7 @@ public class WelcomeApiServiceImpl implements WelcomeApiService {
dto.setOperatorName(one.getOperatorName());
dto.setDefaultWelcomeFlag(one.getDefaultWelcomeFlag());
dto.setType(one.getType());
dto.setScene(one.getScene());
// 媒体列表
dto.setWelcomeMediaList(
CollectionUtils.isEmpty(one.getWelcomeMediaList()) ? Collections.emptyList()
......@@ -138,6 +140,7 @@ public class WelcomeApiServiceImpl implements WelcomeApiService {
dto.setOpenFlag(welcome.getOpenFlag());
dto.setDefaultWelcomeFlag(welcome.getDefaultWelcomeFlag());
dto.setType(welcome.getType());
dto.setScene(welcome.getScene());
// 媒体列表
dto.setWelcomeMediaList(
CollectionUtils.isEmpty(welcome.getWelcomeMediaList()) ? Collections.emptyList()
......
......@@ -10,10 +10,11 @@ import java.util.stream.Collectors;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.manage.api.dto.MemberGroupFriendDTO;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanClerkMainStoreRelatedMapper;
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.TabHaobanClerkMainStoreRelated;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.entity.chat.TabGroupChat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import org.apache.commons.collections.CollectionUtils;
......@@ -41,9 +42,6 @@ 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.chat.GroupChatApiService;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatBO;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.StaffService;
......@@ -320,4 +318,23 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
public List<String> listOpenGroupChatDK(String enterpriseId, String staffId) {
return this.groupChatMapper.listOpenGroupChatDK(enterpriseId,staffId);
}
@Override
public ServiceResponse<MemberGroupFriendDTO> memberIsAddGroup(String enterpriseId, String memberId) {
List<TabGroupChatUser> list = this.groupChatUserService.getByMember(enterpriseId,memberId) ;
if(CollectionUtils.isNotEmpty(list)) {
logger.info("会员入群数={}",memberId,list.size());
TabGroupChatUser item = list.get(0) ;
MemberGroupFriendDTO dto = new MemberGroupFriendDTO() ;
dto.setType(1);
Long groupChatId = item.getGroupChatId() ;
TabGroupChat group = this.groupChatMapper.selectById(groupChatId) ;
if(null != group) {
dto.setGroupChatId(groupChatId);
dto.setRemark(group.getName()+"("+groupChatId+")");
return ServiceResponse.success(dto);
}
}
return ServiceResponse.success(null);
}
}
......@@ -896,6 +896,7 @@
<if test="null != flag">
and status_flag in (1)
</if>
order by create_time desc
</select>
<select id="getMemberIdByExternalId" resultType="java.lang.String">
......
......@@ -24,7 +24,7 @@
<sql id="Base_Column_List">
welcome_id
, wx_enterprise_id, title, welcome_content,welcome_img,open_flag, status_flag,
create_time, update_time, operator_id, operator_name, default_welcome_flag , creator_id , creator_name , modifier_id , modifier_name, `type`
create_time, update_time, operator_id, operator_name, default_welcome_flag , creator_id , creator_name , modifier_id , modifier_name, `type` , scene
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
......@@ -43,7 +43,7 @@
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabWelcome">
insert into tab_haoban_welcome (welcome_id, wx_enterprise_id, title,
welcome_content, welcome_img, open_flag, status_flag, create_time,
update_time, operator_id, operator_name, default_welcome_flag , creator_id , creator_name,modifier_id,modifier_name, `type`)
update_time, operator_id, operator_name, default_welcome_flag , creator_id , creator_name,modifier_id,modifier_name, `type` , scene)
values (#{welcomeId,jdbcType=VARCHAR},
#{wxEnterpriseId,jdbcType=VARCHAR},
#{title,jdbcType=VARCHAR},
......@@ -56,7 +56,7 @@
#{operatorId,jdbcType=VARCHAR},
#{operatorName,jdbcType=VARCHAR},
#{defaultWelcomeFlag,jdbcType=INTEGER} , #{creatorId} , #{creatorName} , #{modifierId} , #{modifierName},
#{type}
#{type} , #{scene}
)
</insert>
......@@ -100,7 +100,10 @@
modifier_name = #{modifierName},
</if>
<if test="type != null">
`type` = #{type}
`type` = #{type} ,
</if>
<if test="scene !=0 ">
scene = #{scene} ,
</if>
</set>
where welcome_id = #{welcomeId,jdbcType=VARCHAR}
......@@ -162,6 +165,15 @@
<if test="type != null">
and type = #{type}
</if>
<if test="scene>0">
and scene = #{scene}
</if>
<if test="sceneType==1">
and scene in (1,2)
</if>
<if test="sceneType==2">
and scene in (1,3)
</if>
</where>
order by update_time desc
</select>
......
......@@ -211,7 +211,7 @@
<select id="listByExternalUseridForMatch" resultMap="result-map-tabHaobanGroupChatUser">
select <include refid="Base_Column_List" /> from tab_haoban_group_chat_user where user_id = #{externalUserid}
and wx_enterprise_id = #{wxEnterpriseId} and enterprise_id = #{enterpriseId}
and wx_enterprise_id = #{wxEnterpriseId} and enterprise_id = #{enterpriseId}
and user_type != 3
and status_flag = 1 and delete_flag = 0
</select>
......@@ -315,4 +315,10 @@
and delete_flag = 0 and status_flag = 1 limit 1
</select>
<select id="getByMember" resultMap="result-map-tabHaobanGroupChatUser">
select <include refid="Base_Column_List"/> from tab_haoban_group_chat_user where enterprise_id = #{enterpriseId}
and member_id = #{memberId} and status_flag = 1 and delete_flag = 0 order by create_time desc
</select>
</mapper>
\ No newline at end of file
......@@ -106,7 +106,7 @@
create_time,
update_time,
add_time,
all_del_flag , qw_add_time , friend_clerk_id , friend_store_id , del_type )
all_del_flag , qw_add_time , friend_clerk_id , friend_store_id , del_type , del_is_single)
VALUES (#{logId,jdbcType=BIGINT},
#{wxEnterpriseId,jdbcType=VARCHAR},
#{enterpriseId,jdbcType=CHAR},
......@@ -138,7 +138,7 @@
now(),
now(),
now(),
#{allDelFlag,jdbcType=INTEGER} , #{qwAddTime} , #{friendClerkId} , #{friendStoreId} , #{delType})
#{allDelFlag,jdbcType=INTEGER} , #{qwAddTime} , #{friendClerkId} , #{friendStoreId} , #{delType} , #{delIsSingle})
]]>
</insert>
......
......@@ -126,6 +126,9 @@ public class WechatWorkController extends NewBaseController {
if (tempJson.containsKey("4")) {
vo.setSalesDeleteNum(tempJson.getInteger("4"));
}
if(tempJson.containsKey("5")) {
vo.setDelIsSingleNum(tempJson.getInteger("5"));
}
}
}
voList.add(vo);
......@@ -195,6 +198,8 @@ public class WechatWorkController extends NewBaseController {
fieldList.add("deleteSalesNum");
indexList.add("导购删除人数");
fieldList.add("salesDeleteNum");
indexList.add("非单向好友被删除人数");
fieldList.add("delIsSingleNum");
indexList.add("单向好友人数");
fieldList.add("onewayFriendNum");
......@@ -284,6 +289,8 @@ public class WechatWorkController extends NewBaseController {
fieldList.add("deleteSalesNum");
indexList.add("导购删除人数");
fieldList.add("salesDeleteNum");
indexList.add("非单向好友被删除人数");
fieldList.add("delIsSingleNum");
indexList.add("单向好友人数");
fieldList.add("onewayFriendNum");
......@@ -361,6 +368,8 @@ public class WechatWorkController extends NewBaseController {
fieldList.add("storeCode");
indexList.add("删除类型");
fieldList.add("deleteType");
indexList.add("单向好友被删除");
fieldList.add("delIsSingle");
indexList.add("留存天数");
fieldList.add("remainDays");
indexList.add("添加好友时间");
......
......@@ -105,6 +105,7 @@ public class WelcomeController extends WebBaseController {
qdto.setModifierId(login.getClerkId());
qdto.setModifierName(login.getClerkFullName());
qdto.setType(qo.getType());
qdto.setScene(qo.getScene());
if (qo.getType() == null) {
qdto.setType(HmWelcomeType.NORMAL.getCode());
}
......@@ -266,6 +267,7 @@ public class WelcomeController extends WebBaseController {
queryWelcomeQDTO.setPageNum(qo.getPageNum());
queryWelcomeQDTO.setPageSize(qo.getPageSize());
queryWelcomeQDTO.setType(qo.getType());
queryWelcomeQDTO.setScene(qo.getScene());
if (qo.getType() == null) {
queryWelcomeQDTO.setType(HmWelcomeType.NORMAL.getCode());
}
......
......@@ -68,6 +68,7 @@ public class WechatWorkLostClerkQO implements Serializable {
map.put("totalLostNum", 2);
map.put("deleteSalesNum", 3);
map.put("salesDeleteNum", 4);
map.put("delIsSingleNum",5) ;
return map.get(orderByFields) == null ? 1 : map.get(orderByFields);
}
......
......@@ -54,6 +54,8 @@ public class WechatWorkLostDetailQO implements Serializable {
*/
private Integer delType;
private Integer delIsSingle ;
/**
* 排序类型 1 正序 2 倒序
......@@ -119,5 +121,8 @@ public class WechatWorkLostDetailQO implements Serializable {
if (Objects.nonNull(delType)) {
jsonObject.put("delType", delType);
}
if(Objects.nonNull(delIsSingle) && -1 != delIsSingle) {
jsonObject.put("delIsSingle",delIsSingle) ;
}
}
}
......@@ -57,6 +57,7 @@ public class WechatWorkLostStoreGroupQO extends StoreGroupCommonQO implements Se
map.put("totalLostNum", 2);
map.put("deleteSalesNum", 3);
map.put("salesDeleteNum", 4);
map.put("delIsSingleNum",5) ;
return map.get(orderByFields) == null ? 1 : map.get(orderByFields);
}
......
......@@ -30,6 +30,16 @@ public class ListWelcomeQO extends BasePageInfo {
*/
private Integer type;
private int scene ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
......
......@@ -64,6 +64,16 @@ public class SaveWelcomeQO implements Serializable {
*/
private Integer type;
private int scene = 1 ;
public int getScene() {
return scene;
}
public void setScene(int scene) {
this.scene = scene;
}
public String getWelcomeId() {
return welcomeId;
}
......
......@@ -36,4 +36,6 @@ public class WechatWorkLostClerkVO extends StoreGroupCommonVO implements Seriali
private String clerkName;
private String clerkId;
private Integer delIsSingleNum ;
}
......@@ -80,4 +80,7 @@ public class WechatWorkLostDetailVO extends StoreGroupCommonVO implements Serial
private String staffCode;
private String staffName;
// 删除时是否单向好友0否 1是
private String delIsSingle ;
}
......@@ -30,4 +30,6 @@ public class WechatWorkLostStoreGroupVO extends StoreGroupCommonVO implements Se
* 导购删除好友人数
*/
private Integer salesDeleteNum;
private Integer delIsSingleNum ;
}
......@@ -32,6 +32,11 @@ public class WechatWorkLostVO implements Serializable {
private Integer salesDeleteNum = 0;
/**
* 删除时菲单向的数量
*/
private Integer delIsSingleNum = 0;
/**
*
*/
private String bizDate;
......
......@@ -15,6 +15,9 @@ import java.util.stream.Collectors;
import javax.validation.Valid;
import com.gic.enterprise.api.dto.custompage.CustomPageRenderDTO;
import com.gic.enterprise.api.enums.CustomPageTypeEnum;
import com.gic.enterprise.api.service.*;
import com.gic.haoban.manage.web.qo.StaffAddVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -47,10 +50,6 @@ import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.dto.enterprise.EnterpriseUsingStatusDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.EnterpriseUseForbidService;
import com.gic.enterprise.api.service.StoreService;
import com.gic.enterprise.api.service.StoreWidgetService;
import com.gic.haoban.app.customer.service.api.service.CustomerApiService;
import com.gic.haoban.app.customer.service.api.service.DistributeApiService;
import com.gic.haoban.base.api.common.BasePageInfo;
......@@ -163,6 +162,8 @@ public class WxStaffController extends WebBaseController {
private PowerService powerService;
@Autowired
private EnterpriseUseForbidService enterpriseUseForbidService;
@Autowired
private CustomPageNewService customPageNewService ;
// 选择成员列表
@RequestMapping("/staff-list")
......@@ -351,9 +352,43 @@ public class WxStaffController extends WebBaseController {
}
auditSettingVO.setWxEnterpriseType(enterpriseBindInfo.getWxEnterpriseType());
auditSettingVO.setFreshFriendFlag(mainStore.getFreshFriendFlag());
JSONObject json = this.getMemberSignPage(storeDTO.getEnterpriseId()) ;
auditSettingVO.setShowMemberSign(null==json?0:1);
auditSettingVO.setShareMemberSignInfo(json);
return resultResponse(HaoBanErrCode.ERR_1, auditSettingVO);
}
/**
* 获取会员签到页分析配置
* @param enterpriseId
* @return
*/
@IgnoreLogin
@RequestMapping("/get-member-sign-share")
public RestResponse<Object> getMemberSingInfo(String enterpriseId) {
JSONObject json = this.getMemberSignPage(enterpriseId) ;
if(null != json) {
return RestResponse.successResult(json) ;
}
return RestResponse.failure("9999","请联系管理员先配置签到页") ;
}
private int showMemberSign(String enterpriseId) {
JSONObject dto = this.getMemberSignPage(enterpriseId) ;
if(null != dto) {
return 1 ;
}
return 0 ;
}
private JSONObject getMemberSignPage(String enterpriseId) {
CustomPageRenderDTO dto = this.customPageNewService.getPageRenderByPageType(CustomPageTypeEnum.PAGE_MEMBER_SIGN,enterpriseId) ;
if(null != dto && dto.getStatus()==1) {
JSONObject json = dto.getSetting().getJSONObject("pageConfig") ;
return json ;
}
return null ;
}
@IgnoreLogin
@RequestMapping("/get-operation-setting")
public HaobanResponse getOperatorSetting(String wxEnterpriseId, String enterpriseId) {
......
package com.gic.haoban.manage.web.vo;
import com.alibaba.fastjson.JSONObject;
import java.io.Serializable;
import java.util.Date;
......@@ -21,9 +23,29 @@ public class AuditSettingVO implements Serializable {
private int wxEnterpriseType;
private int memberOpenCardFlag;
private int freshFriendFlag;
// 是否显示会员签到
private int showMemberSign ;
private JSONObject shareMemberSignInfo ;
private static final long serialVersionUID = 1L;
public JSONObject getShareMemberSignInfo() {
return shareMemberSignInfo;
}
public void setShareMemberSignInfo(JSONObject shareMemberSignInfo) {
this.shareMemberSignInfo = shareMemberSignInfo;
}
public int getShowMemberSign() {
return showMemberSign;
}
public void setShowMemberSign(int showMemberSign) {
this.showMemberSign = showMemberSign;
}
public int getFreshFriendFlag() {
return freshFriendFlag;
}
......
......@@ -14,6 +14,8 @@
<dubbo:protocol name="dubbo" port="30010"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.OpenStaffApiService" id="openStaffApiService" />
<dubbo:reference interface="com.gic.enterprise.api.service.CustomPageNewService" id="customPageNewService" />
<dubbo:reference interface="com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService" id="groupChatPlanApiService" />
<dubbo:reference interface="com.gic.member.api.service.GradeService" id="gradeService" />
<dubbo:reference interface="com.gic.ecm.api.service.EcmPlanService" id="ecmPlanService" />
......
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