Commit 84ae5206 by fudahua

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

# Conflicts:
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/StaffClerkRelationApiServiceImpl.java
parents 512fb42b f676b335
...@@ -30,7 +30,7 @@ public class MemberUnionidRelatedDTO implements Serializable{ ...@@ -30,7 +30,7 @@ public class MemberUnionidRelatedDTO implements Serializable{
private String externalName; private String externalName;
private String addCreateTime; private String addCreateTime;
private Date createTime; private Date createTime;
private Date updateTime; private Date updateTime;
......
...@@ -25,9 +25,9 @@ public interface MemberUnionidRelatedApiService { ...@@ -25,9 +25,9 @@ public interface MemberUnionidRelatedApiService {
List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String wxUserId); List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String wxUserId);
String add(String wxEnterpriseId, String selfExternalUserId, String userId1); String add(String wxEnterpriseId, String selfExternalUserId, String userId1,String storeId);
void freshWxFrend(String wxEnterpriseId, String wxUserId); void freshWxFrend(String wxEnterpriseId, String wxUserId,String storeId);
public void cleanByCid(String cid); public void cleanByCid(String cid);
...@@ -40,4 +40,6 @@ public interface MemberUnionidRelatedApiService { ...@@ -40,4 +40,6 @@ public interface MemberUnionidRelatedApiService {
List<MemberUnionidRelatedDTO> getByWxUserIdListAndWxEnterpriseId(List<String> userIdList, String wxEnterpriseId); List<MemberUnionidRelatedDTO> getByWxUserIdListAndWxEnterpriseId(List<String> userIdList, String wxEnterpriseId);
String addMemberUnionidRelatedNew(MemberUnionidRelatedDTO dto);
} }
...@@ -34,7 +34,7 @@ public interface MemberUnionidRelatedMapper { ...@@ -34,7 +34,7 @@ public interface MemberUnionidRelatedMapper {
List<MemberUnionidRelated> listByEnterpriseIdAndDate(@Param("enterpriseId")String enterpriseId,@Param("date")Date date); List<MemberUnionidRelated> listByEnterpriseIdAndDate(@Param("enterpriseId")String enterpriseId,@Param("date")Date date);
MemberUnionidRelated getByParams(@Param("wxUserId")String wxUserId, @Param("enterpriseId")String enterpriseId, MemberUnionidRelated getByParams(@Param("wxUserId")String wxUserId, @Param("wxEnterpriseId")String wxEnterpriseId,
@Param("externalName")String name, @Param("addCreateTime")String createTime); @Param("externalName")String name, @Param("addCreateTime")String createTime);
List<MemberUnionidRelated> listByExTernalUseridAndWxUserId(@Param("externalUserid")String externalUserid, @Param("wxUserId")String wxUserId); List<MemberUnionidRelated> listByExTernalUseridAndWxUserId(@Param("externalUserid")String externalUserid, @Param("wxUserId")String wxUserId);
......
package com.gic.haoban.manage.service.dao.mapper;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
public interface TabHaobanExternalClerkRelatedMapper {
int deleteByPrimaryKey(String externalClerkRelatedId);
int insert(TabHaobanExternalClerkRelated record);
int insertSelective(TabHaobanExternalClerkRelated record);
TabHaobanExternalClerkRelated selectByPrimaryKey(String externalClerkRelatedId);
int updateByPrimaryKeySelective(TabHaobanExternalClerkRelated record);
int updateByPrimaryKey(TabHaobanExternalClerkRelated record);
TabHaobanExternalClerkRelated selectByClerkIdAndExternalUserId(@Param("clerkId")String clerkId, @Param("externalUserId")String externalUserId);
void delByUserIdAndExternalUserId(TabHaobanExternalClerkRelated record);
}
\ No newline at end of file
...@@ -79,4 +79,8 @@ public interface TabHaobanStaffClerkRelationMapper { ...@@ -79,4 +79,8 @@ public interface TabHaobanStaffClerkRelationMapper {
void delByClerkId(@Param("clerkId")String clerkId); void delByClerkId(@Param("clerkId")String clerkId);
List<TabHaobanStaffClerkRelation>listByEnterpriseIdAndWxUserId(@Param("enterpriseId")String enterpriseId,@Param("wxUserId")String wxUserId); List<TabHaobanStaffClerkRelation>listByEnterpriseIdAndWxUserId(@Param("enterpriseId")String enterpriseId,@Param("wxUserId")String wxUserId);
List<TabHaobanStaffClerkRelation> lisByStaffId(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("staffId")String staffId);
TabHaobanStaffClerkRelation getByCodeAndStoreId(String clerkCode, String storeId);
} }
\ No newline at end of file
...@@ -29,7 +29,7 @@ public class MemberUnionidRelated implements Serializable { ...@@ -29,7 +29,7 @@ public class MemberUnionidRelated implements Serializable {
private String externalName; private String externalName;
private String addCreateTime; private String addCreateTime;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public String getMemberUnionidRelatedId() { public String getMemberUnionidRelatedId() {
...@@ -137,5 +137,4 @@ public class MemberUnionidRelated implements Serializable { ...@@ -137,5 +137,4 @@ public class MemberUnionidRelated implements Serializable {
} }
} }
\ No newline at end of file
package com.gic.haoban.manage.service.entity;
import java.io.Serializable;
import java.util.Date;
public class TabHaobanExternalClerkRelated implements Serializable {
private String externalClerkRelatedId;
private String wxEnterpriseId;
private String enterpriseId;
private String storeId;
private String memberId;
private String unionid;
private String externalUserId;
private String externalName;
private String addCreateTime;
private String memberUnionidRelatedId;
private String clerkId;
private String staffId;
private String wxUserId;
private Integer statusFlag;
private Date createTime;
private Date updateTime;
private static final long serialVersionUID = 1L;
public String getExternalClerkRelatedId() {
return externalClerkRelatedId;
}
public void setExternalClerkRelatedId(String externalClerkRelatedId) {
this.externalClerkRelatedId = externalClerkRelatedId == null ? null : externalClerkRelatedId.trim();
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId == null ? null : wxEnterpriseId.trim();
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId == null ? null : enterpriseId.trim();
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId == null ? null : storeId.trim();
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId == null ? null : memberId.trim();
}
public String getUnionid() {
return unionid;
}
public void setUnionid(String unionid) {
this.unionid = unionid == null ? null : unionid.trim();
}
public String getExternalName() {
return externalName;
}
public void setExternalName(String externalName) {
this.externalName = externalName == null ? null : externalName.trim();
}
public String getAddCreateTime() {
return addCreateTime;
}
public void setAddCreateTime(String addCreateTime) {
this.addCreateTime = addCreateTime == null ? null : addCreateTime.trim();
}
public String getMemberUnionidRelatedId() {
return memberUnionidRelatedId;
}
public void setMemberUnionidRelatedId(String memberUnionidRelatedId) {
this.memberUnionidRelatedId = memberUnionidRelatedId == null ? null : memberUnionidRelatedId.trim();
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId == null ? null : clerkId.trim();
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId == null ? null : staffId.trim();
}
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId == null ? null : wxUserId.trim();
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getExternalUserId() {
return externalUserId;
}
public void setExternalUserId(String externalUserId) {
this.externalUserId = externalUserId;
}
}
\ No newline at end of file
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class ExternalUserPojo implements Serializable{
private String wxEnterpriseId;
private String name;
private String unionId;
private String avatar;
private String addCreateTime;
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getAddCreateTime() {
return addCreateTime;
}
public void setAddCreateTime(String addCreateTime) {
this.addCreateTime = addCreateTime;
}
}
package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
public interface ExternalClerkRelatedService {
void insert(TabHaobanExternalClerkRelated related);
void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto);
}
...@@ -55,4 +55,6 @@ public interface StaffClerkRelationService { ...@@ -55,4 +55,6 @@ public interface StaffClerkRelationService {
List<StaffClerkRelationDTO> listByClerkIds(List<String> clerkList); List<StaffClerkRelationDTO> listByClerkIds(List<String> clerkList);
List<StaffClerkRelationDTO> lisByStaffId(String wxEnterpriseId, String staffId);
} }
package com.gic.haoban.manage.service.service.impl;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.dubbo.config.annotation.Service;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
@Service
public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedService {
@Autowired
private TabHaobanExternalClerkRelatedMapper mapper;
@Override
public void insert(TabHaobanExternalClerkRelated related) {
String clerkId = related.getClerkId();
String externalUserId = related.getExternalUserId();
TabHaobanExternalClerkRelated tab = mapper.selectByClerkIdAndExternalUserId(clerkId,externalUserId);
if(tab != null){
String uuId = StringUtil.randomUUID();
related.setExternalClerkRelatedId(uuId);
related.setCreateTime(new Date());
related.setUpdateTime(new Date());
mapper.insertSelective(related);
}
}
@Override
public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto) {
mapper.delByUserIdAndExternalUserId(EntityUtil.changeEntityByJSON(TabHaobanExternalClerkRelated.class, dto));
}
}
...@@ -50,8 +50,8 @@ public class MemberUnionRelatedServiceImpl implements MemberUnionRelatedService ...@@ -50,8 +50,8 @@ public class MemberUnionRelatedServiceImpl implements MemberUnionRelatedService
} }
@Override @Override
public MemberUnionidRelatedDTO getByParams(String wxUserId, String enterpriseId, String name, String createTime) { public MemberUnionidRelatedDTO getByParams(String wxUserId, String wxEnterpriseId, String name, String createTime) {
return EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class,mapper.getByParams(wxUserId,enterpriseId,name,createTime)); return EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class,mapper.getByParams(wxUserId,wxEnterpriseId,name,createTime));
} }
@Override @Override
......
...@@ -144,4 +144,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -144,4 +144,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
} }
return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class,mapper.listByClerkIds(clerkList)); return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class,mapper.listByClerkIds(clerkList));
} }
@Override
public List<StaffClerkRelationDTO> lisByStaffId(String wxEnterpriseId, String staffId) {
return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, mapper.lisByStaffId(wxEnterpriseId, staffId));
}
} }
...@@ -52,10 +52,12 @@ import com.gic.haoban.manage.service.config.Config; ...@@ -52,10 +52,12 @@ import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper; import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated; import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated; import com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanStaff; import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffDepartmentRelated; import com.gic.haoban.manage.service.entity.TabHaobanStaffDepartmentRelated;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise; import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated; import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import com.gic.haoban.manage.service.pojo.ExternalUserPojo;
import com.gic.haoban.manage.service.util.EmojiFilterUtil; import com.gic.haoban.manage.service.util.EmojiFilterUtil;
import com.gic.member.api.dto.MemberDTO; import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberOpenCardBusinessService; import com.gic.member.api.service.MemberOpenCardBusinessService;
...@@ -121,6 +123,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -121,6 +123,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired @Autowired
private StaffClerkRelationService staffClerkRelationService; private StaffClerkRelationService staffClerkRelationService;
@Autowired
private ExternalClerkRelatedService externalClerkRelatedService;
@Override @Override
public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String wxUserId) { public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String wxUserId) {
...@@ -239,7 +243,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -239,7 +243,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return ""; return "";
} }
List<TabHaobanWxEnterpriseRelated> list = wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
String suiteid = dto.getSuiteid(); String suiteid = dto.getSuiteid();
String unionIdJson = ""; String unionIdJson = "";
if(SELF_APP.equals(suiteid)){ if(SELF_APP.equals(suiteid)){
...@@ -292,193 +295,204 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -292,193 +295,204 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return ""; return "";
} }
List<String> enterpriseIdList = list.stream().map(s->s.getEnterpriseId()).collect(Collectors.toList()); TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staff.getStaffId(),wxEnterprise.getWxEnterpriseId());
List<StaffClerkRelationDTO> staffRelationList = staffClerkRelationService.listBindCodeByStaffId(enterpriseIdList, staff.getStaffId()); if(r == null){
if(staffRelationList == null || staffRelationList.isEmpty()){ log.info("【新增外部联系人】主门店为空");
log.info("【新增外部联系人】未绑定");
return ""; return "";
} }
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staff.getStaffId(),wxEnterprise.getWxEnterpriseId());
StoreDTO mainStore = null; StoreDTO mainStore = null;
for (TabHaobanWxEnterpriseRelated tabHaobanWxEnterpriseRelated : list) { mainStore = storeService.getStore(r.getStoreId());
if(r != null){ if(mainStore == null){
mainStore = storeService.getStore(r.getStoreId()); log.info("【新增外部联系人】门店为空");
if(mainStore != null){ return "";
if(!tabHaobanWxEnterpriseRelated.getEnterpriseId().equals(mainStore.getEnterpriseId())){ }
continue; String key = "external" + mainStore.getEnterpriseId() + "_"+ userId1 + "_" + name + "_" + createTime;
} RedisUtil.lock(key,2l);
} dto.setWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
} dto.setEnterpriseId(mainStore.getEnterpriseId());
String key = "external" + tabHaobanWxEnterpriseRelated.getEnterpriseId() + "_"+ userId1 + "_" + name + "_" + createTime; MemberDTO member = null;
RedisUtil.lock(key,2l); if(SELF_APP.equals(suiteid)){
dto.setWxEnterpriseId(tabHaobanWxEnterpriseRelated.getWxEnterpriseId());
dto.setEnterpriseId(tabHaobanWxEnterpriseRelated.getEnterpriseId());
MemberDTO member = null;
//TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId1, tabHaobanWxEnterpriseRelated.getWxEnterpriseId());
if(staff == null){
continue;
}
if(SELF_APP.equals(suiteid)){
// List<StaffDepartmentRelatedDTO> relatedList = staffDepartmentRelatedApiService.listByStaffId(staff.getStaffId());
// log.info("【部门list】staffId={}",staff.getStaffId());
// List<StaffDepartmentRelatedDTO> rList = new ArrayList<StaffDepartmentRelatedDTO>();
// for (StaffDepartmentRelatedDTO staffDepartmentRelatedDTO : relatedList) {
// DepartmentDTO depart = departmentApiService.selectById(staffDepartmentRelatedDTO.getDepartmentId());
// log.info("【部门list】depart={},deparmentId={}",JSON.toJSONString(depart),staffDepartmentRelatedDTO.getDepartmentId());
// if(depart != null && tabHaobanWxEnterpriseRelated != null && depart.getEnterpriseId() != null && tabHaobanWxEnterpriseRelated.getEnterpriseId() != null){
// log.info("【部门list】enterpriseId={},enterpriseId2={}",depart.getEnterpriseId(),tabHaobanWxEnterpriseRelated.getEnterpriseId());
// if(depart.getEnterpriseId().equals(tabHaobanWxEnterpriseRelated.getEnterpriseId())){
// if(mainStore != null){
// if(depart.getRelatedId().equals(mainStore.getStoreId())){
// rList.add(staffDepartmentRelatedDTO);
// }
// }else{
// rList.add(staffDepartmentRelatedDTO);
// }
// }
// }
// }
// log.info("【部门list】rList={}",JSON.toJSONString(rList));
// //DepartmentDTO departmentDTO =
// String clerkCode = "";
// if(!rList.isEmpty()){
// for (StaffDepartmentRelatedDTO staffDepartmentRelatedDTO : rList) {
// clerkCode = staffDepartmentRelatedDTO.getClerkCode();
// if(StringUtils.isNotBlank(clerkCode)){
// break;
// }
// }
// }
String clerkCode = "";
for (StaffClerkRelationDTO staffClerkRelationDTO : staffRelationList) {
if(tabHaobanWxEnterpriseRelated.getEnterpriseId().equals(staffClerkRelationDTO.getEnterpriseId())){
clerkCode = staffClerkRelationDTO.getClerkCode();
break;
}
}
ClerkDTO clerk = clerkService.getClerkByClerkCode(tabHaobanWxEnterpriseRelated.getEnterpriseId(), clerkCode);
log.info("【新增外部联系人】clerkCode={},unionid:{}",clerkCode,unionId);
if(clerk != null && StringUtils.isNotBlank(clerk.getQrcodeParam())&&StringUtils.isNotBlank(unionId)){
log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}",tabHaobanWxEnterpriseRelated.getEnterpriseId(),unionId,name,avatar,clerk.getQrcodeParam());
member = memberOpenCardBusinessService.getMemberByQywxChannelParam(tabHaobanWxEnterpriseRelated.getEnterpriseId(),unionId,"",relaName,avatar,clerk.getQrcodeParam());
}
log.info("【新增外部联系人】member={},clerk={}",JSON.toJSONString(member),JSON.toJSONString(clerk));
if(member != null){
dto.setMemberId(member.getMemberId());
}
}
dto.setSelfExternalUserid(dto.getExternalUserid());
dto.setUnionid(unionId);
dto.setExternalName(name); StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getOneBindByStoreId(staff.getStaffId(), r.getStoreId());
dto.setAddCreateTime(createTime); if(staffClerkRelationDTO == null){
if(StringUtils.isBlank(unionId)){ log.info("【新增外部联系人】主门店未绑定");
return ""; return "";
} }
String clerkCode = staffClerkRelationDTO.getClerkCode();
dto.setSuiteid(wxEnterprise.getWxSecretKey()); ClerkDTO clerk = clerkService.getClerkByClerkCode(mainStore.getEnterpriseId(), clerkCode);
log.info("【新增外部联系人】clerkCode={},unionid:{}",clerkCode,unionId);
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(dto.getWxUserId(), tabHaobanWxEnterpriseRelated.getEnterpriseId(),name,createTime); if(clerk != null && StringUtils.isNotBlank(clerk.getQrcodeParam())&&StringUtils.isNotBlank(unionId)){
String uuid = ""; log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}",mainStore.getEnterpriseId(),unionId,name,avatar,clerk.getQrcodeParam());
if(exsitDTO == null){ member = memberOpenCardBusinessService.getMemberByQywxChannelParam(mainStore.getEnterpriseId(),unionId,"",relaName,avatar,clerk.getQrcodeParam());
uuid = memberUnionRelatedService.addMemberUnionidRelated(dto); }
}else{ log.info("【新增外部联系人】member={},clerk={}",JSON.toJSONString(member),JSON.toJSONString(clerk));
//如果是自建更新uuid if(member != null){
if(SELF_APP.equals(suiteid)){ dto.setMemberId(member.getMemberId());
exsitDTO.setUnionid(unionId);
exsitDTO.setMemberId(dto.getMemberId());
}else{
//更新对外联系人id
exsitDTO.setExternalUserid(dto.getExternalUserid());
}
memberUnionRelatedService.update(exsitDTO);
uuid = exsitDTO.getMemberUnionidRelatedId();
} }
} }
dto.setSelfExternalUserid(dto.getExternalUserid());
dto.setUnionid(unionId);
// if(SELF_APP.equals(suiteid)){ dto.setExternalName(name);
// MemberDTO member = null; dto.setAddCreateTime(createTime);
// for (TabHaobanWxEnterpriseRelated tabHaobanWxEnterpriseRelated : list) { if(StringUtils.isBlank(unionId)){
// TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId, tabHaobanWxEnterpriseRelated.getWxEnterpriseId()); return "";
// if(staff == null){ }
// continue;
// } dto.setSuiteid(wxEnterprise.getWxSecretKey());
// List<StaffDepartmentRelatedDTO> relatedList = staffDepartmentRelatedApiService.listByStaffId(staff.getStaffId());
// String clerkCode = ""; MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(dto.getWxUserId(), mainStore.getEnterpriseId(),name,createTime);
// if(!relatedList.isEmpty()){ String uuid = "";
// for (StaffDepartmentRelatedDTO staffDepartmentRelatedDTO : relatedList) { if(exsitDTO == null){
// clerkCode = staffDepartmentRelatedDTO.getClerkCode(); uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
// if(StringUtils.isNotBlank(clerkCode)){ }else{
// break; //如果是自建更新uuid
// } if(SELF_APP.equals(suiteid)){
// } exsitDTO.setUnionid(unionId);
// } exsitDTO.setMemberId(dto.getMemberId());
// ClerkDTO clerk = clerkService.getClerkByClerkCode(tabHaobanWxEnterpriseRelated.getEnterpriseId(), clerkCode); }else{
// if(clerk != null){ //更新对外联系人id
// log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}",tabHaobanWxEnterpriseRelated.getEnterpriseId(),unionId,name,avatar,clerk.getQrcodeParam()); exsitDTO.setExternalUserid(dto.getExternalUserid());
// member = memberOpenCardBusinessService.getMemberByQywxChannelParam(tabHaobanWxEnterpriseRelated.getEnterpriseId(),unionId,null,name,avatar,clerk.getQrcodeParam()); }
// } memberUnionRelatedService.update(exsitDTO);
// log.info("【新增外部联系人】member={},clerk={}",JSON.toJSONString(member),JSON.toJSONString(clerk)); uuid = exsitDTO.getMemberUnionidRelatedId();
// //member = memberService.getMemberByUnionid(unionId, tabHaobanWxEnterpriseRelated.getEnterpriseId()); }
//// if(member != null){ return uuid;
//// break;
//// }
// }
// if(member != null){
// dto.setMemberId(member.getMemberId());
// }
// dto.setSelfExternalUserid(dto.getExternalUserid());
// dto.setUnionid(unionId);
// }
//
// dto.setExternalName(name);
// dto.setAddCreateTime(createTime);
// if(StringUtils.isBlank(unionId)){
// return "";
// }
//
// dto.setWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
// dto.setSuiteid(wxEnterprise.getWxSecretKey());
//
// MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(dto.getWxUserId(), wxEnterprise.getWxEnterpriseId(),name,createTime);
// String uuid = "";
// if(exsitDTO == null){
// uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
// }else{
// //如果是自建更新uuid
// if(SELF_APP.equals(suiteid)){
// exsitDTO.setUnionid(unionId);
// exsitDTO.setMemberId(dto.getMemberId());
// }else{
// //更新对外联系人id
// exsitDTO.setExternalUserid(dto.getExternalUserid());
// }
// memberUnionRelatedService.update(exsitDTO);
// uuid = exsitDTO.getMemberUnionidRelatedId();
// }
return "";
} }
@Override @Override
public String add(String wxEnterpriseId,String selfExternalUserId,String userId1) { public String addMemberUnionidRelatedNew(MemberUnionidRelatedDTO dto) {
WxEnterpriseDTO wxEnterprise = wxEnterpriseService.selectById(wxEnterpriseId); log.info("【新增外部联系人回调】dto={}",JSON.toJSONString(dto));
String corpId = dto.getCorpid();
TabHaobanWxEnterprise wxEnterprise = wxEnterpriseService.getEnterpriseBycorpId(corpId);
if(wxEnterprise == null){ if(wxEnterprise == null){
return ""; return "";
} }
List<TabHaobanWxEnterpriseRelated> list = wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
String wxEnterpriseId = wxEnterprise.getWxEnterpriseId();
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CONTACT_CUSTOMER.getVal());
if (null == secretSetting) { String userId = dto.getWxUserId();
log.info("没有配置secret"); TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId, wxEnterpriseId);
if(staff == null){
return ""; return "";
} }
String unionIdJson = qywxUserApiService.getCorpSelfExternalUseridInfo(wxEnterprise.getCorpid(), secretSetting.getSecretVal(), selfExternalUserId);
String suiteid = dto.getSuiteid();
String unionIdJson = "";
if(SELF_APP.equals(suiteid)){
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CONTACT_CUSTOMER.getVal());
if (null == secretSetting) {
log.info("没有配置secret");
return "";
}
unionIdJson = qywxUserApiService.getCorpSelfExternalUseridInfo(dto.getCorpid(), secretSetting.getSecretVal(), dto.getExternalUserid());
}else{
unionIdJson = qywxUserApiService.getExternalUseridInfo(dto.getCorpid(), dto.getSuiteid(), dto.getExternalUserid());
}
log.info("【新增外部联系人回调】unionIdJson={}",JSON.toJSONString(unionIdJson)); log.info("【新增外部联系人回调】unionIdJson={}",JSON.toJSONString(unionIdJson));
ExternalUserPojo pojo = getExternalUserPojo(unionIdJson,userId,wxEnterpriseId);
String unionId = pojo.getUnionId();
String name = pojo.getName();
String createTime = pojo.getAddCreateTime();
String key = "external" + wxEnterpriseId + "_"+ userId + "_" + name + "_" + createTime;
RedisUtil.lock(key,2l);
dto.setWxEnterpriseId(wxEnterpriseId);
dto.setUnionid(unionId);
dto.setExternalName(name);
dto.setAddCreateTime(createTime);
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(dto.getWxUserId(), wxEnterpriseId,name,createTime);
String uuid = "";
if(exsitDTO == null){
if(SELF_APP.equals(suiteid)){
dto.setSelfExternalUserid(dto.getExternalUserid());
}else{
dto.setExternalUserid(dto.getExternalUserid());
}
uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
}else{
//如果是自建更新uuid
if(SELF_APP.equals(suiteid)){
dto.setSelfExternalUserid(dto.getExternalUserid());
exsitDTO.setUnionid(unionId);
}else{
//更新对外联系人id
exsitDTO.setExternalUserid(dto.getExternalUserid());
}
memberUnionRelatedService.update(exsitDTO);
uuid = exsitDTO.getMemberUnionidRelatedId();
}
//新增导购和外部联系人关系
if(SELF_APP.equals(suiteid)){
String staffId = staff.getStaffId();
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId,wxEnterpriseId);
if(r == null){
log.info("【新增外部联系人】主门店为空");
return "";
}
insertExternalClerkRelated(pojo, wxEnterpriseId, staffId, uuid, userId, dto.getExternalUserid(),r.getStoreId());
}
return uuid;
}
private void insertExternalClerkRelated(ExternalUserPojo pojo,String wxEnterpriseId,String staffId,String memberUnionidRelatedId,String userId,String externalUserId,String storeId){
MemberDTO member = null;
StoreDTO mainStore = null;
mainStore = storeService.getStore(storeId);
if(mainStore == null){
log.info("【新增外部联系人】门店为空");
return;
}
StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getOneBindByStoreId(staffId,storeId);
if(staffClerkRelationDTO == null){
log.info("【新增外币联系人】导购和clerk关联为空");
return;
}
String unionId = pojo.getUnionId();
String name = pojo.getName();
String createTime = pojo.getAddCreateTime();
String avatar = pojo.getAvatar();
String relaName = name;
String clerkCode = staffClerkRelationDTO.getClerkCode();
ClerkDTO clerk = clerkService.getClerkByClerkCode(mainStore.getEnterpriseId(), clerkCode);
log.info("【新增外部联系人】clerkCode={},unionid:{}",clerkCode,unionId);
if(clerk != null && StringUtils.isNotBlank(clerk.getQrcodeParam())&&StringUtils.isNotBlank(unionId)){
log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}",mainStore.getEnterpriseId(),unionId,name,avatar,clerk.getQrcodeParam());
member = memberOpenCardBusinessService.getMemberByQywxChannelParam(mainStore.getEnterpriseId(),unionId,"",relaName,avatar,clerk.getQrcodeParam());
}
log.info("【新增外部联系人】member={},clerk={}",JSON.toJSONString(member),JSON.toJSONString(clerk));
TabHaobanExternalClerkRelated related = new TabHaobanExternalClerkRelated();
related.setAddCreateTime(createTime);
related.setClerkId(staffClerkRelationDTO.getClerkId());
related.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
related.setExternalName(relaName);
related.setExternalUserId(externalUserId);
related.setStaffId(staffId);
related.setMemberUnionidRelatedId(memberUnionidRelatedId);
related.setStoreId(storeId);
related.setUnionid(unionId);
related.setWxEnterpriseId(wxEnterpriseId);
related.setWxUserId(userId);
if(member != null){
related.setMemberId(member.getMemberId());
}
externalClerkRelatedService.insert(related);
}
private ExternalUserPojo getExternalUserPojo(String unionIdJson,String userId1,String wxEnterpriseId) {
ExternalUserPojo pojo = new ExternalUserPojo();
String unionId = ""; String unionId = "";
String name = "";
String follow_user = ""; String follow_user = "";
String createTime = ""; String createTime = "";
String userId = ""; String userId = "";
...@@ -490,7 +504,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -490,7 +504,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if(StringUtils.isNotBlank(external_contact)){ if(StringUtils.isNotBlank(external_contact)){
JSONObject jt = JSON.parseObject(external_contact); JSONObject jt = JSON.parseObject(external_contact);
unionId = jt.getString("unionid"); unionId = jt.getString("unionid");
name = EmojiFilterUtil.filterEmojiLast(jt.getString("name"), true);
relaName = EmojiFilterUtil.filterEmojiLast(jt.getString("name"), true); relaName = EmojiFilterUtil.filterEmojiLast(jt.getString("name"), true);
avatar = jt.getString("avatar"); avatar = jt.getString("avatar");
} }
...@@ -508,10 +521,76 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -508,10 +521,76 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} }
} }
} }
pojo.setAddCreateTime(createTime);
pojo.setAvatar(avatar);
pojo.setName(relaName);
pojo.setUnionId(unionId);
pojo.setWxEnterpriseId(wxEnterpriseId);
return pojo;
}
@Override
public String add(String wxEnterpriseId,String selfExternalUserId,String userId,String storeId) {
WxEnterpriseDTO wxEnterprise = wxEnterpriseService.selectById(wxEnterpriseId);
if(wxEnterprise == null){
return "";
}
TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId, wxEnterpriseId);
if(staff == null){
return "";
}
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CONTACT_CUSTOMER.getVal());
if (null == secretSetting) {
log.info("没有配置secret");
return "";
}
String unionIdJson = qywxUserApiService.getCorpSelfExternalUseridInfo(wxEnterprise.getCorpid(), secretSetting.getSecretVal(), selfExternalUserId);
ExternalUserPojo pojo = getExternalUserPojo(unionIdJson,userId,wxEnterpriseId);
String unionId = pojo.getUnionId();
String name = pojo.getName();
String createTime = pojo.getAddCreateTime();
MemberUnionidRelatedDTO dto = new MemberUnionidRelatedDTO();
String externalUserId = getExternalUserId(wxEnterprise, userId, createTime, name);
dto.setExternalUserid(externalUserId);
dto.setWxEnterpriseId(wxEnterpriseId);
dto.setUnionid(unionId);
dto.setExternalName(name);
dto.setAddCreateTime(createTime);
dto.setWxUserId(userId);
if(StringUtils.isBlank(unionId)){
return "";
}
dto.setSuiteid(secretSetting.getSecretVal());
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(userId, wxEnterpriseId,name,createTime);
String uuid = "";
if(exsitDTO == null){
dto.setUnionid(unionId);
//更新对外联系人id
dto.setSelfExternalUserid(selfExternalUserId);
uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
}else{
return "";
}
//新增门店和导购的关联关系
String staffId = staff.getStaffId();
insertExternalClerkRelated(pojo, wxEnterpriseId, staffId, uuid, userId, dto.getExternalUserid(),storeId);
return uuid;
}
private String getExternalUserId(WxEnterpriseDTO wxEnterprise,String userId1,String createTime,String name){
log.info("新增外部联系人】corpid={},suiteId={},userId1={}",wxEnterprise.getCorpid(),config.getWxSuiteid(),userId1); log.info("新增外部联系人】corpid={},suiteId={},userId1={}",wxEnterprise.getCorpid(),config.getWxSuiteid(),userId1);
String wxRes = qywxUserApiService.listExternalUserid(wxEnterprise.getCorpid(), config.getWxSuiteid(), userId1); String wxRes = qywxUserApiService.listExternalUserid(wxEnterprise.getCorpid(), config.getWxSuiteid(), userId1);
MemberUnionidRelatedDTO dto = new MemberUnionidRelatedDTO();
String externalUserId = ""; String externalUserId = "";
log.info("【新增外部联系人】wxRes={}",wxRes); log.info("【新增外部联系人】wxRes={}",wxRes);
if(StringUtils.isNotBlank(wxRes)){ if(StringUtils.isNotBlank(wxRes)){
...@@ -538,7 +617,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -538,7 +617,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
uj_userId = follow.getString("userid"); uj_userId = follow.getString("userid");
log.info("【新增外部联系人】createTime={},name={},followCreateTime={},wxName={}",createTime,name,follow.getString("createtime"),wxName); log.info("【新增外部联系人】createTime={},name={},followCreateTime={},wxName={}",createTime,name,follow.getString("createtime"),wxName);
if(uj_userId.equals(userId1) && createTime.equals(follow.getString("createtime")) && name.equals(wxName)){ if(uj_userId.equals(userId1) && createTime.equals(follow.getString("createtime")) && name.equals(wxName)){
dto.setExternalUserid(externalUserId);
break; break;
} }
} }
...@@ -546,135 +624,15 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -546,135 +624,15 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} }
} }
} }
return externalUserId;
TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId1, wxEnterprise.getWxEnterpriseId());
if(staff == null){
return "";
}
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staff.getStaffId(),wxEnterprise.getWxEnterpriseId());
StoreDTO mainStore = null;
List<String> enterpriseIdList = list.stream().map(s->s.getEnterpriseId()).collect(Collectors.toList());
List<StaffClerkRelationDTO> staffRelationList = staffClerkRelationService.listBindCodeByStaffId(enterpriseIdList, staff.getStaffId());
if(staffRelationList == null || staffRelationList.isEmpty()){
log.info("【新增外部联系人】未绑定");
return "";
}
for (TabHaobanWxEnterpriseRelated tabHaobanWxEnterpriseRelated : list) {
if(r != null){
mainStore = storeService.getStore(r.getStoreId());
if(mainStore != null){
if(!tabHaobanWxEnterpriseRelated.getEnterpriseId().equals(mainStore.getEnterpriseId())){
continue;
}
}
}
String key = "external" + tabHaobanWxEnterpriseRelated.getEnterpriseId() + "_"+ userId1 + "_" + name + "_" + createTime;
RedisUtil.lock(key,2l);
dto.setWxEnterpriseId(tabHaobanWxEnterpriseRelated.getWxEnterpriseId());
dto.setEnterpriseId(tabHaobanWxEnterpriseRelated.getEnterpriseId());
MemberDTO member = null;
//TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId1, tabHaobanWxEnterpriseRelated.getWxEnterpriseId());
if(staff == null){
continue;
}
// List<StaffDepartmentRelatedDTO> relatedList = staffDepartmentRelatedApiService.listByStaffId(staff.getStaffId());
// log.info("【部门list】staffId={}",staff.getStaffId());
// List<StaffDepartmentRelatedDTO> rList = new ArrayList<StaffDepartmentRelatedDTO>();
// for (StaffDepartmentRelatedDTO staffDepartmentRelatedDTO : relatedList) {
// DepartmentDTO depart = departmentApiService.selectById(staffDepartmentRelatedDTO.getDepartmentId());
// log.info("【部门list】depart={},deparmentId={}",JSON.toJSONString(depart),staffDepartmentRelatedDTO.getDepartmentId());
// if(depart != null && tabHaobanWxEnterpriseRelated != null && depart.getEnterpriseId() != null && tabHaobanWxEnterpriseRelated.getEnterpriseId() != null){
// log.info("【部门list】enterpriseId={},enterpriseId2={}",depart.getEnterpriseId(),tabHaobanWxEnterpriseRelated.getEnterpriseId());
// if(mainStore != null){
// if(depart.getRelatedId().equals(mainStore.getStoreId())){
// rList.add(staffDepartmentRelatedDTO);
// }
// }else{
// rList.add(staffDepartmentRelatedDTO);
// }
// }
// }
// log.info("【部门list】rList={}",JSON.toJSONString(rList));
// //DepartmentDTO departmentDTO =
// String clerkCode = "";
// if(!rList.isEmpty()){
// for (StaffDepartmentRelatedDTO staffDepartmentRelatedDTO : rList) {
// clerkCode = staffDepartmentRelatedDTO.getClerkCode();
// if(StringUtils.isNotBlank(clerkCode)){
// break;
// }
// }
// }
String clerkCode = "";
for (StaffClerkRelationDTO staffClerkRelationDTO : staffRelationList) {
if(tabHaobanWxEnterpriseRelated.getEnterpriseId().equals(staffClerkRelationDTO.getEnterpriseId())){
clerkCode = staffClerkRelationDTO.getClerkCode();
break;
}
}
ClerkDTO clerk = clerkService.getClerkByClerkCode(tabHaobanWxEnterpriseRelated.getEnterpriseId(), clerkCode);
log.info("【新增外部联系人】clerkCode={}",clerkCode);
if(clerk != null && StringUtils.isNotBlank(clerk.getQrcodeParam())){
log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}",tabHaobanWxEnterpriseRelated.getEnterpriseId(),unionId,name,avatar,clerk.getQrcodeParam());
member = memberOpenCardBusinessService.getMemberByQywxChannelParam(tabHaobanWxEnterpriseRelated.getEnterpriseId(),unionId,"",relaName,avatar,clerk.getQrcodeParam());
}
log.info("【新增外部联系人】member={},clerk={}",JSON.toJSONString(member),JSON.toJSONString(clerk));
if(member != null){
dto.setMemberId(member.getMemberId());
}
dto.setUnionid(unionId);
dto.setExternalName(name);
dto.setAddCreateTime(createTime);
dto.setWxUserId(userId1);
if(StringUtils.isBlank(unionId)){
return "";
}
dto.setSuiteid(secretSetting.getSecretVal());
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(userId, tabHaobanWxEnterpriseRelated.getEnterpriseId(),name,createTime);
String uuid = "";
if(exsitDTO == null){
dto.setUnionid(unionId);
dto.setMemberId(dto.getMemberId());
//更新对外联系人id
dto.setSelfExternalUserid(selfExternalUserId);
uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
}else{
return "";
}
}
return "";
} }
@Override @Override
public void delMemberUnionidRelated(MemberUnionidRelatedDTO dto) { public void delMemberUnionidRelated(MemberUnionidRelatedDTO dto) {
externalClerkRelatedService.delByUserIdAndExternalUserId(dto);
memberUnionRelatedService.delMemberUnionidRelated(dto); memberUnionRelatedService.delMemberUnionidRelated(dto);
} }
private void getExternalUserUnionid(MemberUnionidRelatedDTO dto){
TabHaobanWxEnterprise wxEnterprise = wxEnterpriseService.getEnterpriseBycorpId(dto.getCorpid());
if(wxEnterprise == null){
return ;
}
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterprise.getWxEnterpriseId(), SecretTypeEnum.CONTACT_CUSTOMER.getVal());
if (null == secretSetting) {
log.info("没有配置secret");
return ;
}
String externalUseridInfo = this.qywxUserApiService.getCorpSelfExternalUseridInfo(dto.getCorpid(), secretSetting.getSecretVal(), dto.getExternalUserid());
if(StringUtils.isNotBlank(externalUseridInfo)){
JSONObject jsonObject = JSON.parseObject(externalUseridInfo);
dto.setUnionid(jsonObject.getString("unionid"));
}
}
@Override @Override
public MemberUnionidRelatedDTO getByMemberId(String staffId, String memberId) { public MemberUnionidRelatedDTO getByMemberId(String staffId, String memberId) {
TabHaobanStaff staff = staffService.selectById(staffId); TabHaobanStaff staff = staffService.selectById(staffId);
...@@ -696,7 +654,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -696,7 +654,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} }
@Override @Override
public void freshWxFrend(String wxEnterpriseId, String wxUserId) { public void freshWxFrend(String wxEnterpriseId, String wxUserId,String storeId) {
log.info("【刷下好友】wxUserId={}",wxUserId); log.info("【刷下好友】wxUserId={}",wxUserId);
WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId); WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId);
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CONTACT_CUSTOMER.getVal()); SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CONTACT_CUSTOMER.getVal());
...@@ -721,7 +679,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -721,7 +679,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
continue; continue;
}else{ }else{
//String string = qywxUserApiService.getCorpSelfExternalUseridInfo(enterprise.getCorpid(), enterprise.getWxSecretKey(), object.toString()); //String string = qywxUserApiService.getCorpSelfExternalUseridInfo(enterprise.getCorpid(), enterprise.getWxSecretKey(), object.toString());
this.add(wxEnterpriseId, object.toString(), wxUserId); this.add(wxEnterpriseId, object.toString(), wxUserId,storeId);
} }
} }
......
...@@ -483,6 +483,7 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -483,6 +483,7 @@ public class StaffApiServiceImpl implements StaffApiService {
@Override @Override
public void wxGetAdd(String userId,String wxEnterpriseId){ public void wxGetAdd(String userId,String wxEnterpriseId){
RedisUtil.lock("haoban_add_user" + wxEnterpriseId + userId, 2l);
ServiceResponse wxSaveNew = getWxSaveNew(userId, wxEnterpriseId); ServiceResponse wxSaveNew = getWxSaveNew(userId, wxEnterpriseId);
logger.info("信息:{}",JSONObject.toJSONString(wxSaveNew)); logger.info("信息:{}",JSONObject.toJSONString(wxSaveNew));
} }
......
package com.gic.haoban.manage.service.service.out.impl; package com.gic.haoban.manage.service.service.out.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO; import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkNewService; import com.gic.clerk.api.service.ClerkNewService;
import com.gic.clerk.api.service.ClerkService; import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO; import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.StoreDTO; import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.EnterpriseService; import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreService; import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.BasePageInfo; import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.*; import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.AuditType; import com.gic.haoban.manage.api.enums.AuditType;
import com.gic.haoban.manage.api.enums.BindTypeEnum; import com.gic.haoban.manage.api.enums.BindTypeEnum;
import com.gic.haoban.manage.api.enums.ChannelCodeEnum; import com.gic.haoban.manage.api.enums.ChannelCodeEnum;
import com.gic.haoban.manage.api.service.AuditApiService; import com.gic.haoban.manage.api.service.AuditApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService; import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper; import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaff; import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkBindLog; import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkBindLog;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation; import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated; import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.StaffClerkBindLogService; import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import com.gic.haoban.manage.service.service.StaffClerkRelationService; import com.gic.haoban.manage.service.service.StaffClerkBindLogService;
import com.gic.haoban.manage.service.service.ClerkMainStoreRelatedService;
import com.gic.haoban.manage.service.service.StaffService; import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import org.apache.commons.collections.CollectionUtils; import com.gic.haoban.manage.service.service.StaffService;
import org.apache.commons.lang3.StringUtils; import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import org.apache.ibatis.annotations.Param; import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger; import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory; import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired; import org.slf4j.Logger;
import org.springframework.stereotype.Service; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.*; import org.springframework.stereotype.Service;
import java.util.stream.Collectors;
import java.util.*;
@Service import java.util.stream.Collectors;
public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiService {
@Service
private static final Logger logger= LoggerFactory.getLogger(StaffClerkRelationApiServiceImpl.class); public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiService {
@Autowired private static final Logger logger= LoggerFactory.getLogger(StaffClerkRelationApiServiceImpl.class);
private StaffClerkRelationService staffClerkRelatinService;
@Autowired
@Autowired private StaffClerkRelationService staffClerkRelatinService;
private EnterpriseService enterpriseService;
@Autowired
@Autowired private EnterpriseService enterpriseService;
private ClerkService clerkService;
@Autowired
@Autowired private ClerkService clerkService;
private StoreService storeService;
@Autowired @Autowired
private TabHaobanStaffClerkRelationMapper tabHaobanStaffClerkRelationMapper; private StoreService storeService;
@Autowired
@Autowired private TabHaobanStaffClerkRelationMapper tabHaobanStaffClerkRelationMapper;
private AuditApiService auditApiService;
@Autowired
@Autowired private AuditApiService auditApiService;
private StaffClerkBindLogService staffClerkBindLogService;
@Autowired
@Autowired private ClerkMainStoreRelatedService clerkMainStoreRelatedService;
private WxEnterpriseRelatedService wxEnterpriseRelatedService;
@Autowired
@Autowired private StaffClerkBindLogService staffClerkBindLogService;
private ClerkNewService clerkNewService;
@Autowired
@Autowired private WxEnterpriseRelatedService wxEnterpriseRelatedService;
private StaffService staffService;
@Autowired
@Override private ClerkNewService clerkNewService;
public void bindLogMq(String params) {
logger.info("绑定日志mq:{}",params); @Autowired
StaffClerkBindLogInfoDTO infoDTO = JSONObject.parseObject(params, StaffClerkBindLogInfoDTO.class); private StaffService staffService;
if (null == infoDTO){
logger.info("数据不存在"); @Override
return; public void bindLogMq(String params) {
} logger.info("绑定日志mq:{}",params);
TabHaobanStaffClerkRelation clerkRelation = tabHaobanStaffClerkRelationMapper.selectByPrimaryKey(infoDTO.getRelationId()); StaffClerkBindLogInfoDTO infoDTO = JSONObject.parseObject(params, StaffClerkBindLogInfoDTO.class);
if (null == clerkRelation) { if (null == infoDTO){
logger.info("不存在绑定数据"); logger.info("数据不存在");
return; return;
} }
TabHaobanStaffClerkBindLog staffClerkRelation=new TabHaobanStaffClerkBindLog(); TabHaobanStaffClerkRelation clerkRelation = tabHaobanStaffClerkRelationMapper.selectByPrimaryKey(infoDTO.getRelationId());
staffClerkRelation.setClerkId(clerkRelation.getClerkId()); if (null == clerkRelation) {
staffClerkRelation.setChannelCode(infoDTO.getChannelCode()); logger.info("不存在绑定数据");
staffClerkRelation.setClerkCode(clerkRelation.getClerkCode()); return;
staffClerkRelation.setCreateTime(new Date()); }
staffClerkRelation.setEnterpriseId(clerkRelation.getEnterpriseId()); TabHaobanStaffClerkBindLog staffClerkRelation=new TabHaobanStaffClerkBindLog();
staffClerkRelation.setOptStaffId(infoDTO.getOptStaffId()); staffClerkRelation.setClerkId(clerkRelation.getClerkId());
staffClerkRelation.setOptType(infoDTO.getOptType()); staffClerkRelation.setChannelCode(infoDTO.getChannelCode());
staffClerkRelation.setStatusFlag(1); staffClerkRelation.setClerkCode(clerkRelation.getClerkCode());
staffClerkRelation.setWxEnterpriseId(clerkRelation.getWxEnterpriseId()); staffClerkRelation.setCreateTime(new Date());
staffClerkRelation.setRelationId(infoDTO.getRelationId()); staffClerkRelation.setEnterpriseId(clerkRelation.getEnterpriseId());
staffClerkRelation.setUpdateTime(clerkRelation.getUpdateTime()); staffClerkRelation.setOptStaffId(infoDTO.getOptStaffId());
staffClerkRelation.setOptType(infoDTO.getOptType());
staffClerkBindLogService.insert(staffClerkRelation); staffClerkRelation.setStatusFlag(1);
staffClerkRelation.setWxEnterpriseId(clerkRelation.getWxEnterpriseId());
} staffClerkRelation.setRelationId(infoDTO.getRelationId());
staffClerkRelation.setUpdateTime(clerkRelation.getUpdateTime());
@Override
public List<StaffClerkRelationDTO> listBindCode(String enterpriseId, Set<String> clerkCodeList) { staffClerkBindLogService.insert(staffClerkRelation);
return staffClerkRelatinService.listBindCode(enterpriseId,clerkCodeList);
} }
@Override
public List<StaffClerkRelationDTO> listBindCodeByStaffId(List<String> enterpriseIdList, String staffId) { @Override
return staffClerkRelatinService.listBindCodeByStaffId(enterpriseIdList,staffId); public List<StaffClerkRelationDTO> listBindCode(String enterpriseId, Set<String> clerkCodeList) {
} return staffClerkRelatinService.listBindCode(enterpriseId,clerkCodeList);
}
@Override @Override
public List<StaffClerkInfoDTO> listBindDetailByStaffId(String staffId) { public List<StaffClerkRelationDTO> listBindCodeByStaffId(List<String> enterpriseIdList, String staffId) {
List<StaffClerkRelationDTO> list = staffClerkRelatinService.listBindCodeByStaffId(null, staffId); return staffClerkRelatinService.listBindCodeByStaffId(enterpriseIdList,staffId);
if (CollectionUtils.isEmpty(list)) { }
return null;
} @Override
List<StaffClerkInfoDTO> infoDTOS = EntityUtil.changeEntityListByJSON(StaffClerkInfoDTO.class, list); public List<StaffClerkInfoDTO> listBindDetailByStaffId(String staffId) {
Map<String,String> nameMap=new HashMap<>(); List<StaffClerkRelationDTO> list = staffClerkRelatinService.listBindCodeByStaffId(null, staffId);
infoDTOS.forEach(infoDTO->{ if (CollectionUtils.isEmpty(list)) {
//企业 return null;
if (!nameMap.containsKey(infoDTO.getEnterpriseId())) { }
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(infoDTO.getEnterpriseId()); List<StaffClerkInfoDTO> infoDTOS = EntityUtil.changeEntityListByJSON(StaffClerkInfoDTO.class, list);
if (null != enterpriseDTO) { Map<String,String> nameMap=new HashMap<>();
nameMap.put(infoDTO.getEnterpriseId(),enterpriseDTO.getEnterpriseName()); infoDTOS.forEach(infoDTO->{
}else{ //企业
nameMap.put(infoDTO.getEnterpriseId(),"未知商户"); if (!nameMap.containsKey(infoDTO.getEnterpriseId())) {
} EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(infoDTO.getEnterpriseId());
} if (null != enterpriseDTO) {
//门店店员名称 nameMap.put(infoDTO.getEnterpriseId(),enterpriseDTO.getEnterpriseName());
if (!nameMap.containsKey(infoDTO.getClerkId())) { }else{
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(infoDTO.getClerkId()); nameMap.put(infoDTO.getEnterpriseId(),"未知商户");
if (null != clerkDTO) { }
nameMap.put(infoDTO.getClerkId(),clerkDTO.getClerkName()); }
nameMap.put(infoDTO.getStoreId(),clerkDTO.getStoreName()); //门店店员名称
infoDTO.setClerkPhoneNumber(clerkDTO.getPhoneNumber()); if (!nameMap.containsKey(infoDTO.getClerkId())) {
}else{ ClerkDTO clerkDTO = clerkService.getClerkByClerkId(infoDTO.getClerkId());
nameMap.put(infoDTO.getEnterpriseId(),"未知店员"); if (null != clerkDTO) {
} nameMap.put(infoDTO.getClerkId(),clerkDTO.getClerkName());
} nameMap.put(infoDTO.getStoreId(),clerkDTO.getStoreName());
infoDTO.setClerkPhoneNumber(clerkDTO.getPhoneNumber());
//门店店员名称 }else{
if (!nameMap.containsKey(infoDTO.getStoreId())) { nameMap.put(infoDTO.getEnterpriseId(),"未知店员");
StoreDTO storeDTO = storeService.getStore(infoDTO.getStoreId()); }
if (null != storeDTO) { }
nameMap.put(infoDTO.getStoreId(),storeDTO.getStoreName());
}else{ //门店店员名称
nameMap.put(infoDTO.getStoreId(),"未知门店"); if (!nameMap.containsKey(infoDTO.getStoreId())) {
} StoreDTO storeDTO = storeService.getStore(infoDTO.getStoreId());
} if (null != storeDTO) {
nameMap.put(infoDTO.getStoreId(),storeDTO.getStoreName());
infoDTO.setClerkName(nameMap.get(infoDTO.getClerkId())); }else{
infoDTO.setStoreName(nameMap.get(infoDTO.getStoreId())); nameMap.put(infoDTO.getStoreId(),"未知门店");
infoDTO.setEnterpriseName(nameMap.get(infoDTO.getEnterpriseId())); }
}); }
return infoDTOS;
} infoDTO.setClerkName(nameMap.get(infoDTO.getClerkId()));
infoDTO.setStoreName(nameMap.get(infoDTO.getStoreId()));
@Override infoDTO.setEnterpriseName(nameMap.get(infoDTO.getEnterpriseId()));
public ServiceResponse bindStaffClerk(StaffClerkRelationDTO staffClerkRelationDTO,String optStaffId,int chanelCode) { });
logger.info("绑定clerk:{}", JSONObject.toJSONString(staffClerkRelationDTO)); return infoDTOS;
ServiceResponse<Object> response = new ServiceResponse<>(); }
StaffClerkRelationDTO relationDTO = staffClerkRelatinService.getBindByClerkId(staffClerkRelationDTO.getClerkId(), staffClerkRelationDTO.getWxEnterpriseId());
if (null!=relationDTO) { @Override
response.setCode(2); public ServiceResponse bindStaffClerk(StaffClerkRelationDTO staffClerkRelationDTO,String optStaffId,int chanelCode) {
response.setMessage("已经被绑定,不能绑定"); logger.info("绑定clerk:{}", JSONObject.toJSONString(staffClerkRelationDTO));
return response; ServiceResponse<Object> response = new ServiceResponse<>();
} StaffClerkRelationDTO relationDTO = staffClerkRelatinService.getBindByClerkId(staffClerkRelationDTO.getClerkId(), staffClerkRelationDTO.getWxEnterpriseId());
AuditDTO auditDTO = auditApiService.findByBindRelatedIdAndAuditType(staffClerkRelationDTO.getClerkId(), AuditType.CLERK_BIND.getCode()); if (null!=relationDTO) {
if (null != auditDTO) { response.setCode(2);
response.setCode(4); response.setMessage("已经被绑定,不能绑定");
response.setMessage("该导购已经被被申请绑定,请审核处理后再绑定"); return response;
return response; }
} AuditDTO auditDTO = auditApiService.findByBindRelatedIdAndAuditType(staffClerkRelationDTO.getClerkId(), AuditType.CLERK_BIND.getCode());
List<AuditDTO> list = auditApiService.listByStoreId(staffClerkRelationDTO.getStoreId()); if (null != auditDTO) {
if (CollectionUtils.isNotEmpty(list)) { response.setCode(4);
response.setCode(5); response.setMessage("该导购已经被被申请绑定,请审核处理后再绑定");
response.setMessage("该成员已经已经在该门店下申请了绑定,请审核处理后再绑定"); return response;
return response; }
} List<AuditDTO> list = auditApiService.listByStoreId(staffClerkRelationDTO.getStoreId());
StaffClerkRelationDTO storeHasBind = staffClerkRelatinService.getOneBindByStoreId(staffClerkRelationDTO.getStaffId(), staffClerkRelationDTO.getStoreId()); if (CollectionUtils.isNotEmpty(list)) {
if (storeHasBind!=null) { response.setCode(5);
response.setCode(3); response.setMessage("该成员已经已经在该门店下申请了绑定,请审核处理后再绑定");
response.setMessage("该导购已在该门店下有其它成员绑定"); return response;
return response; }
} StaffClerkRelationDTO storeHasBind = staffClerkRelatinService.getOneBindByStoreId(staffClerkRelationDTO.getStaffId(), staffClerkRelationDTO.getStoreId());
if (storeHasBind!=null) {
String relationId = staffClerkRelatinService.bind(staffClerkRelationDTO,optStaffId,chanelCode); response.setCode(3);
response.setResult(relationId); response.setMessage("该导购已在该门店下有其它成员绑定");
return response; return response;
} }
@Override String relationId = staffClerkRelatinService.bind(staffClerkRelationDTO,optStaffId,chanelCode);
public StaffClerkRelationDTO getByCodeAndEnterpriseId(String clerkCode, String enterpriseId) { response.setResult(relationId);
return staffClerkRelatinService.getByCodeAndEnterpriseId(clerkCode,enterpriseId); //设置主门店
} setMainStore(staffClerkRelationDTO);
return response;
}
@Override
public String delByStoreIdAndCode(String storeId, String clerkCode) { @Override
tabHaobanStaffClerkRelationMapper.delByStoreIdAndCode(storeId,clerkCode); public StaffClerkRelationDTO getByCodeAndEnterpriseId(String clerkCode, String enterpriseId) {
return null; return staffClerkRelatinService.getByCodeAndEnterpriseId(clerkCode,enterpriseId);
} }
@Override
public List<StaffClerkRelationDTO> listByClerkIds(List<String> clerkIds) {
if(clerkIds == null || clerkIds.isEmpty()){ @Override
return Collections.EMPTY_LIST; public String delByStoreIdAndCode(String storeId, String clerkCode) {
} TabHaobanStaffClerkRelation staffClerkRelation = tabHaobanStaffClerkRelationMapper.getByCodeAndStoreId(clerkCode, storeId);
List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByClerkIds(clerkIds); tabHaobanStaffClerkRelationMapper.delByStoreIdAndCode(storeId,clerkCode);
if(CollectionUtil.isEmpty(list)){ delSetMainStore(staffClerkRelation);
return new ArrayList<StaffClerkRelationDTO>(); return null;
} }
List<StaffClerkRelationDTO> result = EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list); @Override
return result; public List<StaffClerkRelationDTO> listByClerkIds(List<String> clerkIds) {
} if(clerkIds == null || clerkIds.isEmpty()){
@Override return Collections.EMPTY_LIST;
public List<StaffClerkRelationDTO> listByStoreId(String storeId) { }
List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByStoreId(storeId); List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByClerkIds(clerkIds);
if(CollectionUtil.isEmpty(list)){ if(CollectionUtil.isEmpty(list)){
return new ArrayList<StaffClerkRelationDTO>(); return new ArrayList<StaffClerkRelationDTO>();
} }
List<StaffClerkRelationDTO> result = EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list); List<StaffClerkRelationDTO> result = EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list);
return result; return result;
} }
@Override
@Override public List<StaffClerkRelationDTO> listByStoreId(String storeId) {
public boolean unbindByStaffAndClerkId(String staffId, String clerkId) { List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByStoreId(storeId);
boolean b = staffClerkRelatinService.delBind(clerkId,staffId, ChannelCodeEnum.ADMIN_UNBIND.getCode()); if(CollectionUtil.isEmpty(list)){
return b; return new ArrayList<StaffClerkRelationDTO>();
} }
@Override List<StaffClerkRelationDTO> result = EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list);
public StaffClerkRelationDTO getOneByClerkId(String clerkId) { return result;
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId); }
StaffClerkRelationDTO result = EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, tab);
return result; @Override
} public boolean unbindByStaffAndClerkId(String staffId, String clerkId) {
public StaffClerkRelationDTO getByClerkId(String clerkId) { boolean b = staffClerkRelatinService.delBind(clerkId,staffId, ChannelCodeEnum.ADMIN_UNBIND.getCode());
StaffClerkRelationDTO staffRelation = staffClerkRelatinService.getByClerkId(clerkId); TabHaobanStaffClerkRelation staffClerkRelation = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
return staffRelation; delSetMainStore(staffClerkRelation);
} return b;
@Override }
public StaffClerkRelationDTO getOneByStoreIdAndStaffId(String storeId, @Override
String staffId) { public StaffClerkRelationDTO getOneByClerkId(String clerkId) {
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByStoreIdAndStaffId(storeId,staffId); TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
if(tab == null){ StaffClerkRelationDTO result = EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, tab);
return null; return result;
} }
StaffClerkRelationDTO dto = EntityUtil.changeEntity(StaffClerkRelationDTO.class, tab); public StaffClerkRelationDTO getByClerkId(String clerkId) {
return dto; StaffClerkRelationDTO staffRelation = staffClerkRelatinService.getByClerkId(clerkId);
} return staffRelation;
@Override }
public void delAndInsert(StaffClerkRelationDTO staffClerkRelation,String optStaffId,int chanelCode) { @Override
if(StringUtils.isEmpty(staffClerkRelation.getStaffClerkRelationId())){ public StaffClerkRelationDTO getOneByStoreIdAndStaffId(String storeId,
TabHaobanStaffClerkRelation oldStaffClerkRelation = tabHaobanStaffClerkRelationMapper.selectByPrimaryKey(staffClerkRelation.getStaffClerkRelationId()); String staffId) {
tabHaobanStaffClerkRelationMapper.delByPrimaryKey(staffClerkRelation.getStaffClerkRelationId()); TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByStoreIdAndStaffId(storeId,staffId);
staffClerkBindLogService.pushToMq(oldStaffClerkRelation.getStaffId(),optStaffId, BindTypeEnum.BIND.getVal(),chanelCode,staffClerkRelation.getStaffClerkRelationId()); if(tab == null){
} return null;
String relationId = staffClerkRelatinService.insert(staffClerkRelation); }
staffClerkBindLogService.pushToMq(staffClerkRelation.getStaffId(),optStaffId, BindTypeEnum.BIND.getVal(),chanelCode,relationId); StaffClerkRelationDTO dto = EntityUtil.changeEntity(StaffClerkRelationDTO.class, tab);
} return dto;
@Override }
public void delByClerkId(String clerkId) { @Override
tabHaobanStaffClerkRelationMapper.delByClerkId(clerkId); public void delAndInsert(StaffClerkRelationDTO staffClerkRelation,String optStaffId,int chanelCode) {
} if(StringUtils.isEmpty(staffClerkRelation.getStaffClerkRelationId())){
@Override TabHaobanStaffClerkRelation oldStaffClerkRelation = tabHaobanStaffClerkRelationMapper.selectByPrimaryKey(staffClerkRelation.getStaffClerkRelationId());
public List<StaffClerkRelationDTO> listByEnterpriseIdAndWxUserId(String enterpriseId,String wxUserId) { tabHaobanStaffClerkRelationMapper.delByPrimaryKey(staffClerkRelation.getStaffClerkRelationId());
List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByEnterpriseIdAndWxUserId(enterpriseId,wxUserId); staffClerkBindLogService.pushToMq(oldStaffClerkRelation.getStaffId(),optStaffId, BindTypeEnum.BIND.getVal(),chanelCode,staffClerkRelation.getStaffClerkRelationId());
return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list); }
} String relationId = staffClerkRelatinService.insert(staffClerkRelation);
staffClerkBindLogService.pushToMq(staffClerkRelation.getStaffId(),optStaffId, BindTypeEnum.BIND.getVal(),chanelCode,relationId);
@Override //设置主门店
public Page<StaffClerkBindLogDetailDTO> pageStaffClerkBindLog(String wxEnterpriseId, String search, String enterpriseId, int optType, BasePageInfo pageInfo) { setMainStore(staffClerkRelation);
}
List<TabHaobanWxEnterpriseRelated> wxEnterpriseRelateds = wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterpriseId); @Override
if (CollectionUtils.isEmpty(wxEnterpriseRelateds)) { public void delByClerkId(String clerkId) {
logger.info("没有关联企业"); TabHaobanStaffClerkRelation staffClerkRelation = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
return null; tabHaobanStaffClerkRelationMapper.delByClerkId(clerkId);
} delSetMainStore(staffClerkRelation);
List<String> enterpriseList = wxEnterpriseRelateds.stream().map(TabHaobanWxEnterpriseRelated::getEnterpriseId) }
.filter(eid->{ @Override
if (StringUtils.isBlank(enterpriseId)) { public List<StaffClerkRelationDTO> listByEnterpriseIdAndWxUserId(String enterpriseId,String wxUserId) {
return true; List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByEnterpriseIdAndWxUserId(enterpriseId,wxUserId);
}else if (enterpriseId.equals(eid)) { return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list);
return true; }
}else{
return false; @Override
} public Page<StaffClerkBindLogDetailDTO> pageStaffClerkBindLog(String wxEnterpriseId, String search, String enterpriseId, int optType, BasePageInfo pageInfo) {
}).collect(Collectors.toList());
if (CollectionUtils.isEmpty(enterpriseList)) { List<TabHaobanWxEnterpriseRelated> wxEnterpriseRelateds = wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterpriseId);
logger.info("没有有效的企业"); if (CollectionUtils.isEmpty(wxEnterpriseRelateds)) {
return null; logger.info("没有关联企业");
} return null;
List<String> clerkIds=null; }
if (StringUtils.isNotBlank(search)) { List<String> enterpriseList = wxEnterpriseRelateds.stream().map(TabHaobanWxEnterpriseRelated::getEnterpriseId)
List<ClerkDTO> clerk = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseList, search); .filter(eid->{
if (CollectionUtils.isEmpty(clerk)) { if (StringUtils.isBlank(enterpriseId)) {
logger.info("没有搜索到相应信息"); return true;
return new Page<StaffClerkBindLogDetailDTO>(); }else if (enterpriseId.equals(eid)) {
} return true;
clerkIds = clerk.stream().map(ClerkDTO::getClerkId).collect(Collectors.toList()); }else{
} return false;
Page<StaffClerkBindLogDetailDTO> retList = staffClerkBindLogService.pageBindLog(wxEnterpriseId, clerkIds, null, enterpriseList, optType, pageInfo); }
if (CollectionUtils.isNotEmpty(retList.getResult())) { }).collect(Collectors.toList());
retList.getResult().forEach(staffClerkBindLogDetailDTO -> { if (CollectionUtils.isEmpty(enterpriseList)) {
TabHaobanStaff haobanStaff = staffService.selectById(staffClerkBindLogDetailDTO.getStaffId()); logger.info("没有有效的企业");
if (null !=haobanStaff) { return null;
staffClerkBindLogDetailDTO.setStaffName(haobanStaff.getStaffName()); }
}else{ List<String> clerkIds=null;
staffClerkBindLogDetailDTO.setStaffName("未知成员"); if (StringUtils.isNotBlank(search)) {
} List<ClerkDTO> clerk = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseList, search);
if (CollectionUtils.isEmpty(clerk)) {
haobanStaff = staffService.selectById(staffClerkBindLogDetailDTO.getOptStaffId()); logger.info("没有搜索到相应信息");
if (null !=haobanStaff) { return new Page<StaffClerkBindLogDetailDTO>();
staffClerkBindLogDetailDTO.setOptStaffName(haobanStaff.getStaffName()); }
}else{ clerkIds = clerk.stream().map(ClerkDTO::getClerkId).collect(Collectors.toList());
staffClerkBindLogDetailDTO.setOptStaffName("未知成员"); }
} Page<StaffClerkBindLogDetailDTO> retList = staffClerkBindLogService.pageBindLog(wxEnterpriseId, clerkIds, null, enterpriseList, optType, pageInfo);
if (CollectionUtils.isNotEmpty(retList.getResult())) {
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(staffClerkBindLogDetailDTO.getClerkId()); retList.getResult().forEach(staffClerkBindLogDetailDTO -> {
if (null != clerkDTO) { TabHaobanStaff haobanStaff = staffService.selectById(staffClerkBindLogDetailDTO.getStaffId());
staffClerkBindLogDetailDTO.setClerkName(clerkDTO.getClerkName()); if (null !=haobanStaff) {
staffClerkBindLogDetailDTO.setClerkPhoneNumber(clerkDTO.getPhoneNumber()); staffClerkBindLogDetailDTO.setStaffName(haobanStaff.getStaffName());
} }else{
}); staffClerkBindLogDetailDTO.setStaffName("未知成员");
} }
return retList;
} haobanStaff = staffService.selectById(staffClerkBindLogDetailDTO.getOptStaffId());
if (null !=haobanStaff) {
@Override staffClerkBindLogDetailDTO.setOptStaffName(haobanStaff.getStaffName());
public void pushToBindLog(String staffId, String optStaffId, int optType, int channelCode, String relationId) { }else{
staffClerkBindLogService.pushToMq(staffId,optStaffId,optType,channelCode,relationId); staffClerkBindLogDetailDTO.setOptStaffName("未知成员");
} }
}
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(staffClerkBindLogDetailDTO.getClerkId());
if (null != clerkDTO) {
staffClerkBindLogDetailDTO.setClerkName(clerkDTO.getClerkName());
staffClerkBindLogDetailDTO.setClerkPhoneNumber(clerkDTO.getPhoneNumber());
}
});
}
return retList;
}
@Override
public void pushToBindLog(String staffId, String optStaffId, int optType, int channelCode, String relationId) {
staffClerkBindLogService.pushToMq(staffId,optStaffId,optType,channelCode,relationId);
}
private void setMainStore(StaffClerkRelationDTO staffClerkRelation){
String staffId = staffClerkRelation.getStaffId();
String wxEnterpriseId = staffClerkRelation.getWxEnterpriseId();
List<StaffClerkRelationDTO> list = staffClerkRelatinService.lisByStaffId(wxEnterpriseId, staffId);
if(list != null && list.size() == 1){
clerkMainStoreRelatedService.setMainStore(staffId, staffClerkRelation.getStoreId(), wxEnterpriseId);
}
}
private void delSetMainStore(TabHaobanStaffClerkRelation staffClerkRelation){
String staffId = staffClerkRelation.getStaffId();
String wxEnterpriseId = staffClerkRelation.getWxEnterpriseId();
List<StaffClerkRelationDTO> list = staffClerkRelatinService.lisByStaffId(wxEnterpriseId, staffId);
if(list != null && list.size() >= 1){
clerkMainStoreRelatedService.setMainStore(staffId, list.get(0).getStoreId(), wxEnterpriseId);
}
}
}
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
from tab_haoban_member_unionid_related from tab_haoban_member_unionid_related
where wx_user_id = #{wxUserId} where wx_user_id = #{wxUserId}
and status_flag = 1 and status_flag = 1
and enterprise_id = #{enterpriseId} and wx_enterprise_id = #{wxEnterpriseId}
and external_name = #{externalName} and external_name = #{externalName}
and add_create_time = #{addCreateTime} and add_create_time = #{addCreateTime}
</select> </select>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper" >
<resultMap id="BaseResultMap" type="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated" >
<id column="external_clerk_related_id" property="externalClerkRelatedId" jdbcType="VARCHAR" />
<result column="wx_enterprise_id" property="wxEnterpriseId" jdbcType="VARCHAR" />
<result column="enterprise_id" property="enterpriseId" jdbcType="VARCHAR" />
<result column="store_id" property="storeId" jdbcType="VARCHAR" />
<result column="member_id" property="memberId" jdbcType="VARCHAR" />
<result column="unionid" property="unionid" jdbcType="VARCHAR" />
<result column="external_name" property="externalName" jdbcType="VARCHAR" />
<result column="add_create_time" property="addCreateTime" jdbcType="VARCHAR" />
<result column="member_unionid_related_id" property="memberUnionidRelatedId" jdbcType="VARCHAR" />
<result column="clerk_id" property="clerkId" jdbcType="VARCHAR" />
<result column="staff_id" property="staffId" jdbcType="VARCHAR" />
<result column="wx_user_id" property="wxUserId" jdbcType="VARCHAR" />
<result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
external_clerk_related_id, wx_enterprise_id, enterprise_id, store_id, member_id,
unionid, external_name, add_create_time, member_unionid_related_id, clerk_id, staff_id,
wx_user_id, status_flag, create_time, update_time,external_user_id
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from tab_haoban_external_clerk_related
where external_clerk_related_id = #{externalClerkRelatedId,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from tab_haoban_external_clerk_related
where external_clerk_related_id = #{externalClerkRelatedId,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated" >
insert into tab_haoban_external_clerk_related (external_clerk_related_id, wx_enterprise_id,
enterprise_id, store_id, member_id,
unionid, external_name, add_create_time,
member_unionid_related_id, clerk_id, staff_id,
wx_user_id, status_flag, create_time,
update_time,external_user_id)
values (#{externalClerkRelatedId,jdbcType=VARCHAR}, #{wxEnterpriseId,jdbcType=VARCHAR},
#{enterpriseId,jdbcType=VARCHAR}, #{storeId,jdbcType=VARCHAR}, #{memberId,jdbcType=VARCHAR},
#{unionid,jdbcType=VARCHAR}, #{externalName,jdbcType=VARCHAR}, #{addCreateTime,jdbcType=VARCHAR},
#{memberUnionidRelatedId,jdbcType=VARCHAR}, #{clerkId,jdbcType=VARCHAR}, #{staffId,jdbcType=VARCHAR},
#{wxUserId,jdbcType=VARCHAR}, #{statusFlag,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP},#{externalUserId})
</insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated" >
insert into tab_haoban_external_clerk_related
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="externalClerkRelatedId != null" >
external_clerk_related_id,
</if>
<if test="wxEnterpriseId != null" >
wx_enterprise_id,
</if>
<if test="enterpriseId != null" >
enterprise_id,
</if>
<if test="storeId != null" >
store_id,
</if>
<if test="memberId != null" >
member_id,
</if>
<if test="unionid != null" >
unionid,
</if>
<if test="externalName != null" >
external_name,
</if>
<if test="externalUserId != null" >
external_user_id,
</if>
<if test="addCreateTime != null" >
add_create_time,
</if>
<if test="memberUnionidRelatedId != null" >
member_unionid_related_id,
</if>
<if test="clerkId != null" >
clerk_id,
</if>
<if test="staffId != null" >
staff_id,
</if>
<if test="wxUserId != null" >
wx_user_id,
</if>
<if test="statusFlag != null" >
status_flag,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null" >
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="externalClerkRelatedId != null" >
#{externalClerkRelatedId,jdbcType=VARCHAR},
</if>
<if test="wxEnterpriseId != null" >
#{wxEnterpriseId,jdbcType=VARCHAR},
</if>
<if test="enterpriseId != null" >
#{enterpriseId,jdbcType=VARCHAR},
</if>
<if test="storeId != null" >
#{storeId,jdbcType=VARCHAR},
</if>
<if test="memberId != null" >
#{memberId,jdbcType=VARCHAR},
</if>
<if test="unionid != null" >
#{unionid,jdbcType=VARCHAR},
</if>
<if test="externalName != null" >
#{externalName,jdbcType=VARCHAR},
</if>
<if test="externalUserId != null" >
#{externalUserId,jdbcType=VARCHAR},
</if>
<if test="addCreateTime != null" >
#{addCreateTime,jdbcType=VARCHAR},
</if>
<if test="memberUnionidRelatedId != null" >
#{memberUnionidRelatedId,jdbcType=VARCHAR},
</if>
<if test="clerkId != null" >
#{clerkId,jdbcType=VARCHAR},
</if>
<if test="staffId != null" >
#{staffId,jdbcType=VARCHAR},
</if>
<if test="wxUserId != null" >
#{wxUserId,jdbcType=VARCHAR},
</if>
<if test="statusFlag != null" >
#{statusFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated" >
update tab_haoban_external_clerk_related
<set >
<if test="wxEnterpriseId != null" >
wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR},
</if>
<if test="enterpriseId != null" >
enterprise_id = #{enterpriseId,jdbcType=VARCHAR},
</if>
<if test="storeId != null" >
store_id = #{storeId,jdbcType=VARCHAR},
</if>
<if test="memberId != null" >
member_id = #{memberId,jdbcType=VARCHAR},
</if>
<if test="unionid != null" >
unionid = #{unionid,jdbcType=VARCHAR},
</if>
<if test="externalName != null" >
external_name = #{externalName,jdbcType=VARCHAR},
</if>
<if test="externalUserId != null" >
external_user_id = #{externalUserId,jdbcType=VARCHAR},
</if>
<if test="addCreateTime != null" >
add_create_time = #{addCreateTime,jdbcType=VARCHAR},
</if>
<if test="memberUnionidRelatedId != null" >
member_unionid_related_id = #{memberUnionidRelatedId,jdbcType=VARCHAR},
</if>
<if test="clerkId != null" >
clerk_id = #{clerkId,jdbcType=VARCHAR},
</if>
<if test="staffId != null" >
staff_id = #{staffId,jdbcType=VARCHAR},
</if>
<if test="wxUserId != null" >
wx_user_id = #{wxUserId,jdbcType=VARCHAR},
</if>
<if test="statusFlag != null" >
status_flag = #{statusFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</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" />
from tab_haoban_external_clerk_related
where clerk_id = #{clerkId,jdbcType=VARCHAR}
and external_user_id = #{externalUserId}
and status_flag = 1
</select>
<update id="delByUserIdAndExternalUserId" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated" >
update tab_haoban_external_clerk_related
set
status_flag = 2,
update_time = #{updateTime,jdbcType=TIMESTAMP}
where external_user_id = #{externalUserId,jdbcType=VARCHAR}
and wx_user_id = #{wxUserId}
and status_flag = 1
</update>
</mapper>
\ No newline at end of file
...@@ -338,4 +338,26 @@ ...@@ -338,4 +338,26 @@
and wx_user_id = #{wxUserId} and wx_user_id = #{wxUserId}
</select> </select>
<select id="lisByStaffId" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from tab_haoban_staff_clerk_relation
where
wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and staff_id = #{staffId}
and status_flag = 1
order by create_time desc
</select>
<select id="getByCodeAndStoreId" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from tab_haoban_staff_clerk_relation
where
clerk_code = #{clerkCode}
and store_id = #{storeId}
and status_flag = 1
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -423,7 +423,7 @@ public class ClerkController extends WebBaseController{ ...@@ -423,7 +423,7 @@ public class ClerkController extends WebBaseController{
Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key); Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key);
if(count == null || count < 4){ if(count == null || count < 4){
RedisUtil.setCache(key,count + 1,31 * 24 * 60 * 60l); RedisUtil.setCache(key,count + 1,31 * 24 * 60 * 60l);
memberUnionidRelatedApiService.freshWxFrend(wxEnterpriseId, staff.getWxUserId()); memberUnionidRelatedApiService.freshWxFrend(wxEnterpriseId, staff.getWxUserId(),storeId);
}else{ }else{
return resultResponse(HaoBanErrCode.ERR_10011); return resultResponse(HaoBanErrCode.ERR_10011);
......
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