Commit 1bc9514d by fudahua

Merge remote-tracking branch 'origin/developer' into developer

parents 9da8cd9d 42f2530d
......@@ -28,6 +28,10 @@ public class YwWxEnterpriseDTO implements Serializable {
private String corpSquareLogoUrl;
//关联商户数量
private Integer relationCount=0;
/**
* 是否开启标签同步标记 1 是 0 否
*/
private Integer tagOpenFlag;
public static long getSerialversionuid() {
......@@ -133,4 +137,11 @@ public class YwWxEnterpriseDTO implements Serializable {
this.version = version;
}
public Integer getTagOpenFlag() {
return tagOpenFlag;
}
public void setTagOpenFlag(Integer tagOpenFlag) {
this.tagOpenFlag = tagOpenFlag;
}
}
......@@ -38,7 +38,7 @@ public interface ExternalClerkRelatedApiService {
List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(String enterpriseId,Date date);
Page<ExternalClerkRelatedDTO> pageMemberUnionByParams(List<String> userIdList, List<String> sendMemberIds,
String enterpriseId, BasePageInfo pageInfo);
String enterpriseId, BasePageInfo pageInfo);
List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String wxUserId, String wxEnterpriseId);
......@@ -74,66 +74,78 @@ public interface ExternalClerkRelatedApiService {
*/
ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid);
/**
* 查询clerk与union好友关系
*
* @param enterpriseId
* @return
*/
ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedDTO> listExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String wxUserId, String enterpriseId, String externalUserId);
/**
* 根据id查询列表
*
* @param wxEnterpriseId
* @param ids
* @return
*/
List<ExternalClerkRelatedDTO> listByIds(String wxEnterpriseId, List<String> ids);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize);
/**
* 查询clerk与union好友关系
*
* @param enterpriseId
* @return
*/
ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedDTO> listExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String wxUserId, String enterpriseId, String externalUserId);
/**
* 根据id查询列表
*
* @param wxEnterpriseId
* @param ids
* @return
*/
List<ExternalClerkRelatedDTO> listByIds(String wxEnterpriseId, List<String> ids);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize);
/**
* 获取企业下的关联关系的 memberIds
*
* @return
*/
List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系的 memberIds
*
* 获取企业下的关联关系列表
*
* @return
*/
List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId);
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId);
/**
* gic删除会员,解除好办与gic关联关系
*
* @param memberId 会员ID
* @param enterpriseId 企业标识
* @param mergeMemberId 合并后的会员ID 删除传null,
* @author mozhu
* @date 2021-09-13 16:52:31
*/
void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId);
}
......@@ -225,7 +225,12 @@
<artifactId>sharing-core-api</artifactId>
<version>${sharing-core-api}</version>
</dependency>
</dependencies>
<dependency>
<groupId>com.gic</groupId>
<artifactId>haoban-app-customer-api</artifactId>
<version>${haoban-app-customer-api}</version>
</dependency>
</dependencies>
<build>
<finalName>haoban-manage3-operation-web</finalName>
......
package com.gic.haoban.manage.web.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.gic.haoban.app.customer.service.api.service.QywxTagSyncApiService;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -20,8 +20,6 @@ import cn.hutool.core.collection.CollectionUtil;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.GlobalVar;
import com.gic.commons.util.Md5Util;
import com.gic.commons.util.RandomUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.EnterpriseService;
......@@ -39,90 +37,178 @@ import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.vo.EnterpriseDetailVo;
import com.gic.haoban.operation.api.service.EnterpriseRelationService;
import com.gic.redis.data.util.RedisUtil;
@RestController
public class EnterpriseController extends WebBaseController{
public class EnterpriseController extends WebBaseController {
private static final String LOGIN_URL = "/haoban-manage3-web/yw-login";
private static Logger logger = LoggerFactory.getLogger(EnterpriseController.class);
@Autowired
private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService;
@Autowired
private DepartmentApiService departmentApiService;
@Autowired
private StoreService storeService;
@Autowired
private EnterpriseService enterpriseService;
// @Autowired
private static Logger logger = LoggerFactory.getLogger(EnterpriseController.class);
@Autowired
private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService;
@Autowired
private DepartmentApiService departmentApiService;
@Autowired
private StoreService storeService;
@Autowired
private EnterpriseService enterpriseService;
@Autowired
private QywxTagSyncApiService qywxTagSyncApiService;
// @Autowired
// private WxEnterpriseRelatedApiService wxEnterpriseRelllatedApiService;
//企业列表
@RequestMapping("wx-enterprise-list")
public HaobanResponse wxEnterpriseList(BasePageInfo pageInfo,String keyword,String gicEnterpriseName,Integer gicContactHelper,String version) {
List<String> wxEnterpriseIds = new ArrayList<String>();
if(!StringUtils.isEmpty(gicEnterpriseName)){
List<EnterpriseDTO> enterpriseNames = enterpriseService.getEnterpriseByName(gicEnterpriseName);
if(CollectionUtil.isNotEmpty(enterpriseNames)){
List<String>enterpriseIds = enterpriseNames.stream().map(s->s.getEnterpriseId()).collect(Collectors.toList());
List<EnterpriseDetailDTO> wxEnterpriseIdDTOs = wxEnterpriseRelatedApiService.listEnterpriseByEnterpriseIds(enterpriseIds);
if(CollectionUtil.isNotEmpty(wxEnterpriseIdDTOs)){
wxEnterpriseIds = wxEnterpriseIdDTOs.stream().map(s->s.getWxEnterpriseId()).collect(Collectors.toList());
}
}
if(CollectionUtil.isEmpty(wxEnterpriseIds)){
wxEnterpriseIds = Arrays.asList("-9999");
}
}
Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo,keyword,wxEnterpriseIds,gicContactHelper,version);
PageResult<YwWxEnterpriseDTO> pageVo = new PageResult<>();
List<YwWxEnterpriseDTO> list = EntityUtil.changeEntityListByJSON(YwWxEnterpriseDTO.class, page.getResult());
for(YwWxEnterpriseDTO dto : list){
dto.setVersion("3.0");
dto.setBuyDate(new Date());
dto.setBuyStatus("1");
List<EnterpriseDetailDTO> counts = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(dto.getWxEnterpriseId());
dto.setRelationCount(counts.size());
}
pageVo.setList(list);
//企业列表
// openTagFlag 0 未开启 1 开启 2 所有
@RequestMapping("wx-enterprise-list")
public HaobanResponse wxEnterpriseList(BasePageInfo pageInfo, String keyword, Integer openTagFlag, String gicEnterpriseName, Integer gicContactHelper, String version) {
List<String> wxEnterpriseIds = new ArrayList<String>();
if (!StringUtils.isEmpty(gicEnterpriseName)) {
List<EnterpriseDTO> enterpriseNames = enterpriseService.getEnterpriseByName(gicEnterpriseName);
if (CollectionUtil.isNotEmpty(enterpriseNames)) {
List<String> enterpriseIds = enterpriseNames.stream().map(s -> s.getEnterpriseId()).collect(Collectors.toList());
List<EnterpriseDetailDTO> wxEnterpriseIdDTOs = wxEnterpriseRelatedApiService.listEnterpriseByEnterpriseIds(enterpriseIds);
if (CollectionUtil.isNotEmpty(wxEnterpriseIdDTOs)) {
wxEnterpriseIds = wxEnterpriseIdDTOs.stream().map(s -> s.getWxEnterpriseId()).collect(Collectors.toList());
}
}
if (CollectionUtil.isEmpty(wxEnterpriseIds)) {
wxEnterpriseIds = Arrays.asList("-9999");
}
}
// 查询开启标签同步缓存-详情在 /tag/open-tag 接口
String wxEntIdStr = (String) RedisUtil.getCache("qywx-tag-open");
Set<String> wxEntIdSet = Sets.newHashSet();
if (StringUtils.isNotEmpty(wxEntIdStr)) {
wxEntIdSet = Arrays.stream(wxEntIdStr.split(",")).collect(Collectors.toSet());
}
Page<YwWxEnterpriseDTO> page = wxEnterpriseApiService.list(pageInfo, keyword, wxEnterpriseIds, gicContactHelper, version);
PageResult<YwWxEnterpriseDTO> pageVo = new PageResult<>();
List<YwWxEnterpriseDTO> list = EntityUtil.changeEntityListByJSON(YwWxEnterpriseDTO.class, page.getResult());
List<YwWxEnterpriseDTO> resList = Lists.newArrayListWithCapacity(list.size());
for (YwWxEnterpriseDTO dto : list) {
dto.setVersion("3.0");
dto.setBuyDate(new Date());
dto.setBuyStatus("1");
List<EnterpriseDetailDTO> counts = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(dto.getWxEnterpriseId());
dto.setRelationCount(counts.size());
if (openTagFlag == 0 && !wxEntIdSet.contains(dto.getWxEnterpriseId())) {
dto.setTagOpenFlag(0);
resList.add(dto);
} else if (openTagFlag == 1 && wxEntIdSet.contains(dto.getWxEnterpriseId())) {
dto.setTagOpenFlag(1);
resList.add(dto);
} else if (openTagFlag == 2) {
dto.setTagOpenFlag(wxEntIdSet.contains(dto.getWxEnterpriseId()) ? 1 : 0);
resList.add(dto);
}
}
pageVo.setList(resList);
pageVo.setPageNum(page.getCurrentPage());
pageVo.setPages(page.getPages());
pageVo.setPageSize(page.getPageSize());
// 因为过滤了此处取list长度
pageVo.setPageSize(resList.size());
pageVo.setTotal(page.getTotalCount());
return resultResponse(HaoBanErrCode.ERR_1,pageVo);
}
//授权详情列表
@RequestMapping("authorize-detail")
public HaobanResponse authorizeDetail(String wxEnterpriseId) {
List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
List<EnterpriseDetailVo> result = EntityUtil.changeEntityListByJSON(EnterpriseDetailVo.class, list);
for(EnterpriseDetailVo vo:result){
List<StoreDTO> stores = storeService.getStoreByEnterId(vo.getEnterpriseId(), null, null);
if(CollectionUtil.isEmpty(stores)){
continue;
}else{
List<String> storeIds = stores.stream().map(s->s.getStoreId()).collect(Collectors.toList());
List<DepartmentDTO> countList = departmentApiService.listByRelatedIds(storeIds);
vo.setStoreCount(countList.size());
}
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(vo.getEnterpriseId());
vo.setEnterpriseName(enterpriseDTO.getEnterpriseName());
vo.setEnterpriseLogo(enterpriseDTO.getQcloudImageUrl());
}
return resultResponse(HaoBanErrCode.ERR_1,result);
}
//登录
@RequestMapping("yw-login")
public void ywLogin(String wxEnterpriseId,HttpServletResponse httpServletResponse) throws IOException {
return resultResponse(HaoBanErrCode.ERR_1, pageVo);
}
/**
* 开启关闭标签同步
*
* @param wxEnterpriseId 微信企业id
* @param flag 操作标记 1 开启 0 关闭
* @return HaobanResponse
*/
@RequestMapping("operate-tag-sync")
public HaobanResponse operateTagSync(String wxEnterpriseId, Integer flag) {
if (StringUtils.isEmpty(wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
if (Objects.isNull(flag)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
// 操作缓存
String key = "qywx-tag-open";
String lockKey = "qywx-tag-open-lock";
try {
RedisUtil.lock(lockKey, 5L);
String wxEntIdStr = (String) RedisUtil.getCache(key);
if (flag == 1) {
// 开启
if (StringUtils.isEmpty(wxEntIdStr)) {
wxEntIdStr = wxEnterpriseId;
} else {
wxEntIdStr = wxEntIdStr + "," + wxEnterpriseId;
}
logger.info("开启企业标签同步, wxEntIdStr:{}", wxEntIdStr);
RedisUtil.setCache(key, wxEntIdStr);
}
if (flag == 0) {
// 关闭标签检查是否有任务在进行
boolean tagSync = qywxTagSyncApiService.checkQywxTagSync(wxEnterpriseId);
if (!tagSync) {
// 有同步任务
return resultResponse(HaoBanErrCode.ERR_30001);
}
}
if (flag == 0 && StringUtils.isNotEmpty(wxEntIdStr)) {
// 关闭标签同步,只有在字符串不为空时才能关
List<String> filterList = Arrays.stream(wxEntIdStr.split(","))
.filter(one -> !one.equals(wxEnterpriseId))
.collect(Collectors.toList());
String closeStr = StringUtils.join(filterList, ",");
logger.info("关闭企业标签同步, closeStr:{}", closeStr);
RedisUtil.setCache(key, closeStr);
}
} finally {
RedisUtil.unlock(lockKey);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
//授权详情列表
@RequestMapping("authorize-detail")
public HaobanResponse authorizeDetail(String wxEnterpriseId) {
List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
List<EnterpriseDetailVo> result = EntityUtil.changeEntityListByJSON(EnterpriseDetailVo.class, list);
for (EnterpriseDetailVo vo : result) {
List<StoreDTO> stores = storeService.getStoreByEnterId(vo.getEnterpriseId(), null, null);
if (CollectionUtil.isEmpty(stores)) {
continue;
} else {
List<String> storeIds = stores.stream().map(s -> s.getStoreId()).collect(Collectors.toList());
List<DepartmentDTO> countList = departmentApiService.listByRelatedIds(storeIds);
vo.setStoreCount(countList.size());
}
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(vo.getEnterpriseId());
vo.setEnterpriseName(enterpriseDTO.getEnterpriseName());
vo.setEnterpriseLogo(enterpriseDTO.getQcloudImageUrl());
}
return resultResponse(HaoBanErrCode.ERR_1, result);
}
//登录
@RequestMapping("yw-login")
public void ywLogin(String wxEnterpriseId, HttpServletResponse httpServletResponse) throws IOException {
String host = GlobalVar.ctxPropertiesMap.get("haoban_service_host");
logger.info("host============================>{}",host);
String random = "ywLogin:"+UuidUtil.randomUUID();
RedisUtil.setCache(random, 1,1000L);
String url=host+LOGIN_URL+"?wxEnterpriseId="+wxEnterpriseId+"&random="+random;
logger.info("host============================>{}", host);
String random = "ywLogin:" + UuidUtil.randomUUID();
RedisUtil.setCache(random, 1, 1000L);
String url = host + LOGIN_URL + "?wxEnterpriseId=" + wxEnterpriseId + "&random=" + random;
httpServletResponse.sendRedirect(url);
}
}
}
......@@ -74,9 +74,12 @@ public enum HaoBanErrCode {
ERR_10020(10020,"模板名称已存在"),
ERR_20001(20001,"企业微信商户不存在"),
ERR_20002(20002,"门店不存在"),
ERR_30001(30001,"已存在同步任务, 无法关闭"),
ERR_DEFINE(-888, "自定义错误"),
ERR_OTHER(-999, "未知错误code");
private int code;
......
......@@ -57,4 +57,7 @@
<dubbo:reference interface="com.gic.sharing.core.service.api.service.MqApiService"
id="mqApiService"/>
<dubbo:reference interface="com.gic.haoban.app.customer.service.api.service.QywxTagSyncApiService"
id="qywxTagSyncApiService"/>
</beans>
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.github.pagehelper.Page;
public interface TabHaobanExternalClerkRelatedMapper {
int deleteByPrimaryKey(String externalClerkRelatedId);
......@@ -20,8 +19,6 @@ public interface TabHaobanExternalClerkRelatedMapper {
int updateByPrimaryKeySelective(TabHaobanExternalClerkRelated record);
int updateByPrimaryKey(TabHaobanExternalClerkRelated record);
TabHaobanExternalClerkRelated selectByClerkIdAndExternalUserId(@Param("clerkId")String clerkId, @Param("externalUserId")String externalUserId);
void delByUserIdAndExternalUserId(TabHaobanExternalClerkRelated record);
......@@ -201,4 +198,15 @@ public interface TabHaobanExternalClerkRelatedMapper {
* @return
*/
int updateMemberIdByMemberId(@Param("memberId") String memberId, @Param("oldMemberId") String oldMemberId);
/**
* 更新状态通过会员id
*
* @param memberId 会员ID
* @param enterpriseId 企业id
* @return int
* @author mozhu
* @date 2021-09-13 16:59:49
*/
int updateStatusByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId);
}
\ No newline at end of file
......@@ -5,8 +5,6 @@ import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.app.customer.dto.SearchComputeDTO;
import com.gic.haoban.app.customer.dto.SearchDataDTO;
import com.gic.haoban.app.customer.enums.GicQywxSyncTypeEnum;
import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum;
import com.gic.haoban.base.api.common.BasePageInfo;
......@@ -20,130 +18,122 @@ import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMap
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.search.engine.api.constant.MemberDataEnum;
import com.gic.search.engine.api.constant.OperateEnum;
import com.gic.search.engine.api.dto.ESResponseQueryBatch;
import com.gic.search.engine.api.dto.ESResponseQuerySingle;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService{
private static final Logger log = LogManager.getLogger(ExternalClerkRelatedApiServiceImpl.class);
@Autowired
private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper;
public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService {
private static final Logger log = LogManager.getLogger(ExternalClerkRelatedApiServiceImpl.class);
@Autowired
private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper;
@Autowired
private MemberUnionidRelatedMapper memberUnionidRelatedMapper;
/**
* 查询导购好友关联
*
* @param wxUserId : 微信用户id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回好友关联
*/
@Override
public List<ExternalClerkRelatedDTO> listByWxUserIdAndWxEnterpriseId(String wxUserId, String wxEnterpriseId, String enterpriseId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByWxUserIdAndWxEnterpriseId(wxUserId, wxEnterpriseId, enterpriseId);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list);
}
/**
* 查询会员在企业下的好友关系
*
* @param memberId : 会员id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回会员导购关联关系
*/
@Override
public List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId){
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdAndWxEnterpriseId(memberId, wxEnterpriseId, enterpriseId);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class,list);
}
@Override
public List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(
String enterpriseId, Date date) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByEnterpriseIdAndDate(enterpriseId,date);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class,list);
}
@Override
public Page<ExternalClerkRelatedDTO> pageMemberUnionByParams(List<String> userIdList, List<String> sendMemberIds,
String enterpriseId, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
return PageUtil.changePageHelperToCurrentPage(tabHaobanExternalClerkRelatedMapper.pageMemberUnionByParams(userIdList,sendMemberIds,enterpriseId),ExternalClerkRelatedDTO.class);
}
@Override
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String wxUserId, String wxEnterpriseId) {
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserId(wxUserId,wxEnterpriseId));
}
@Override
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> userIdList,
String wxEnterpriseId) {
if(userIdList == null || userIdList.isEmpty()){
return Collections.EMPTY_LIST;
}
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIds(userIdList,wxEnterpriseId));
}
@Override
public ExternalClerkRelatedDTO getExternalClerkByRelationKeyAndPre(String relationKey) {
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey);
return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, related);
}
@Override
public Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String wxUserId, List<Integer> statusFlags, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo);
List<TabHaobanExternalClerkRelated> ret = tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIdAndStatus(wxEnterpriseId, wxUserId, statusFlags);
Page<ExternalClerkRelatedDTO> retPage = PageUtil.changePageHelperToCurrentPage(new PageInfo<>(ret), ExternalClerkRelatedDTO.class);
/**
* 查询导购好友关联
*
* @param wxUserId : 微信用户id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回好友关联
*/
@Override
public List<ExternalClerkRelatedDTO> listByWxUserIdAndWxEnterpriseId(String wxUserId, String wxEnterpriseId, String enterpriseId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByWxUserIdAndWxEnterpriseId(wxUserId, wxEnterpriseId, enterpriseId);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list);
}
/**
* 查询会员在企业下的好友关系
*
* @param memberId : 会员id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回会员导购关联关系
*/
@Override
public List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdAndWxEnterpriseId(memberId, wxEnterpriseId, enterpriseId);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list);
}
@Override
public List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(
String enterpriseId, Date date) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByEnterpriseIdAndDate(enterpriseId, date);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list);
}
@Override
public Page<ExternalClerkRelatedDTO> pageMemberUnionByParams(List<String> userIdList, List<String> sendMemberIds,
String enterpriseId, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
return PageUtil.changePageHelperToCurrentPage(tabHaobanExternalClerkRelatedMapper.pageMemberUnionByParams(userIdList, sendMemberIds, enterpriseId), ExternalClerkRelatedDTO.class);
}
@Override
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String wxUserId, String wxEnterpriseId) {
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserId(wxUserId, wxEnterpriseId));
}
@Override
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> userIdList,
String wxEnterpriseId) {
if (userIdList == null || userIdList.isEmpty()) {
return Collections.EMPTY_LIST;
}
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIds(userIdList, wxEnterpriseId));
}
@Override
public ExternalClerkRelatedDTO getExternalClerkByRelationKeyAndPre(String relationKey) {
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey);
return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, related);
}
@Override
public Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String wxUserId, List<Integer> statusFlags, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo);
List<TabHaobanExternalClerkRelated> ret = tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIdAndStatus(wxEnterpriseId, wxUserId, statusFlags);
Page<ExternalClerkRelatedDTO> retPage = PageUtil.changePageHelperToCurrentPage(new PageInfo<>(ret), ExternalClerkRelatedDTO.class);
return retPage;
}
@Override
public boolean pushExternalByRelationKey(String relationKey) {
tabHaobanExternalClerkRelatedMapper.pushExternalByRelationKey(relationKey);
return true;
}
@Override
public boolean pushExternalByRelationKey(String relationKey) {
tabHaobanExternalClerkRelatedMapper.pushExternalByRelationKey(relationKey);
return true;
}
@Override
public ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid) {
ServiceResponse<ExternalClerkRelatedDTO> resp = new ServiceResponse<>();
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey);
if (null == externalClerkRelated) {
@Override
public ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid) {
ServiceResponse<ExternalClerkRelatedDTO> resp = new ServiceResponse<>();
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey);
if (null == externalClerkRelated) {
resp.setCode(0);
resp.setMessage("relationKey对应的关联关系不存在或删除");
return resp;
}
if (!externalClerkRelated.getEnterpriseId().equals(enterpriseId)) {
return resp;
}
if (!externalClerkRelated.getEnterpriseId().equals(enterpriseId)) {
resp.setCode(0);
resp.setMessage("relationKey对应的企业与所传会员企业不对应");
return resp;
}
externalClerkRelated.setMemberId(memberId);
externalClerkRelated.setUnionid(unionid);
externalClerkRelated.setUpdateTime(new Date());
return resp;
}
externalClerkRelated.setMemberId(memberId);
externalClerkRelated.setUnionid(unionid);
externalClerkRelated.setUpdateTime(new Date());
externalClerkRelated.setStatusFlag(1);
tabHaobanExternalClerkRelatedMapper.updateByPrimaryKeySelective(externalClerkRelated);
//更新unionid
......@@ -152,48 +142,48 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
memberUnionidRelated.setUpdateTime(new Date());
memberUnionidRelatedMapper.updateByPrimaryKeySelective(memberUnionidRelated);
resp.setResult(EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated));
pushTagSync(memberId, externalClerkRelated.getWxEnterpriseId(), enterpriseId);
return resp;
}
/**
* 刷新标签信息
*
* @param memberId
* @param wxEnterpriseId
* @param enterpriseId
*/
private void pushTagSync(String memberId, String wxEnterpriseId, String enterpriseId) {
QywxTagSyncInfoPojo pojo = new QywxTagSyncInfoPojo();
pojo.setDataId(memberId);
pojo.setTaskId("-1");
pojo.setTaskType(QywxSyncTaskTypeEnum.MEMBER_SYNC.getType());
//单个会员同步
pojo.setSyncType(GicQywxSyncTypeEnum.SINGLE_WXENT_MEMNER_SYNC.getType());
pojo.setWxEnterpriseId(wxEnterpriseId);
pojo.setEnterpriseId(enterpriseId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendMessage("qywxTagSyncDeal", JSONObject.toJSONString(pojo));
} catch (Exception e) {
e.printStackTrace();
log.info("异常:{}", e);
}
}
@Override
public ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid) {
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getClerkExternalByUnionId(enterpriseId, clerkId, unionid);
ExternalClerkRelatedDTO clerkRelatedDTO = EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated);
return clerkRelatedDTO;
}
@Override
public List<ExternalClerkRelatedDTO> listExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String wxUserId, String enterpriseId, String externalUserId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listExternalClerkByWxUserIdAncExternalUserId(wxEnterpriseId, wxUserId, enterpriseId, externalUserId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedDTO.class, list);
}
resp.setResult(EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated));
pushTagSync(memberId, externalClerkRelated.getWxEnterpriseId(), enterpriseId);
return resp;
}
/**
* 刷新标签信息
*
* @param memberId
* @param wxEnterpriseId
* @param enterpriseId
*/
private void pushTagSync(String memberId, String wxEnterpriseId, String enterpriseId) {
QywxTagSyncInfoPojo pojo = new QywxTagSyncInfoPojo();
pojo.setDataId(memberId);
pojo.setTaskId("-1");
pojo.setTaskType(QywxSyncTaskTypeEnum.MEMBER_SYNC.getType());
//单个会员同步
pojo.setSyncType(GicQywxSyncTypeEnum.SINGLE_WXENT_MEMNER_SYNC.getType());
pojo.setWxEnterpriseId(wxEnterpriseId);
pojo.setEnterpriseId(enterpriseId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendMessage("qywxTagSyncDeal", JSONObject.toJSONString(pojo));
} catch (Exception e) {
e.printStackTrace();
log.info("异常:{}", e);
}
}
@Override
public ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid) {
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getClerkExternalByUnionId(enterpriseId, clerkId, unionid);
ExternalClerkRelatedDTO clerkRelatedDTO = EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated);
return clerkRelatedDTO;
}
@Override
public List<ExternalClerkRelatedDTO> listExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String wxUserId, String enterpriseId, String externalUserId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listExternalClerkByWxUserIdAncExternalUserId(wxEnterpriseId, wxUserId, enterpriseId, externalUserId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedDTO.class, list);
}
@Override
public List<ExternalClerkRelatedDTO> listByIds(String wxEnterpriseId, List<String> ids) {
......@@ -208,28 +198,39 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs));
}
@Override
public Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<String> memberIDs = tabHaobanExternalClerkRelatedMapper.listMemberIdByEnterpriseId(wxEnterpriseId, enterpriseId);
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs));
}
@Override
public List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds) {
return tabHaobanExternalClerkRelatedMapper.listMemberIdsByMemberIds(memberIds, wxEnterpriseId);
}
@Override
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIds(memberIds, wxEnterpriseId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
}
@Override
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
}
@Override
public Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<String> memberIDs = tabHaobanExternalClerkRelatedMapper.listMemberIdByEnterpriseId(wxEnterpriseId, enterpriseId);
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs));
}
@Override
public List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds) {
return tabHaobanExternalClerkRelatedMapper.listMemberIdsByMemberIds(memberIds, wxEnterpriseId);
}
@Override
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIds(memberIds, wxEnterpriseId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
}
@Override
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
}
@Override
public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId) {
if (StringUtils.isBlank(mergeMemberId)) {
//删除会员
tabHaobanExternalClerkRelatedMapper.updateStatusByMemberId(memberId, enterpriseId);
} else {
//合并会员
tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId);
}
}
}
......@@ -228,26 +228,7 @@
</set>
where external_clerk_related_id = #{externalClerkRelatedId,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated" >
update tab_haoban_external_clerk_related
set wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR},
enterprise_id = #{enterpriseId,jdbcType=VARCHAR},
store_id = #{storeId,jdbcType=VARCHAR},
member_id = #{memberId,jdbcType=VARCHAR},
unionid = #{unionid,jdbcType=VARCHAR},
external_name = #{externalName,jdbcType=VARCHAR},
add_create_time = #{addCreateTime,jdbcType=VARCHAR},
member_unionid_related_id = #{memberUnionidRelatedId,jdbcType=VARCHAR},
clerk_id = #{clerkId,jdbcType=VARCHAR},
staff_id = #{staffId,jdbcType=VARCHAR},
wx_user_id = #{wxUserId,jdbcType=VARCHAR},
status_flag = #{statusFlag,jdbcType=INTEGER},
external_user_id = #{externalUserId},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where external_clerk_related_id = #{externalClerkRelatedId,jdbcType=VARCHAR}
</update>
<select id="selectByClerkIdAndExternalUserId" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
......@@ -577,11 +558,18 @@
<update id="updateMemberIdByMemberId">
UPDATE
tab_haoban_external_clerk_related
SET
member_id=#{memberId},
update_time = now()
where
member_id = #{oldMemberId}
and status_flag = 1
SET member_id=#{memberId},
update_time = now()
where member_id = #{oldMemberId}
and status_flag = 1
</update>
<update id="updateStatusByMemberId">
UPDATE
tab_haoban_external_clerk_related
SET status_flag = 0,
update_time = now()
where member_id = #{memberId}
and enterprise_id = #{enterpriseId}
</update>
</mapper>
\ No newline at end of file
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