Commit c97e6ece by fudahua

导购主门店设置

parent 7a9729a0
package com.gic.haoban.manage.service.dao.mapper;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Param;
......@@ -22,4 +23,21 @@ public interface TabHaobanClerkMainStoreRelatedMapper {
TabHaobanClerkMainStoreRelated selectByWxEnterpriseIdAndStoreId(@Param("staffId")String staffId, @Param("wxEnterpriseId")String wxEnterpriseId);
List<TabHaobanClerkMainStoreRelated> listByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId);
/**
* 删除主门店
*
* @param staffId
* @param storeId
* @param wxEnterpriseId
*/
void delMainStore(@Param("staffId") String staffId, @Param("storeId") String storeId, @Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 删除门店
*
* @param storeIds
* @return
*/
int delByStoreIds(@Param("storeIds") Set<String> storeIds);
}
\ No newline at end of file
......@@ -29,6 +29,8 @@ public interface TabHaobanExternalClerkRelatedMapper {
void delByClerkIdAndStaffId(@Param("clerkId")String clerkId, @Param("staffId")String staffId);
void delByStoreIdAndStaffId(@Param("storeId") String storeId, @Param("staffId") String staffId);
void cleanStaffRelated(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("staffIds")List<String> staffIds);
TabHaobanExternalClerkRelated getByParams(@Param("userId")String userId, @Param("wxEnterpriseId")String wxEnterpriseId, @Param("name")String name, @Param("createTime")String createTime);
......
package com.gic.haoban.manage.service.service;
import java.util.List;
import java.util.Set;
import com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated;
......@@ -10,6 +11,31 @@ public interface ClerkMainStoreRelatedService {
TabHaobanClerkMainStoreRelated selectByWxEnterpriseIdAndStoreId(String staffId, String wxEnterpriseId);
/**
* 获取主门店 如果没有主门店设置主门店
*
* @param staffId
* @param wxEnterpriseId
* @return
*/
TabHaobanClerkMainStoreRelated getMainStoreByStaffId(String staffId, String wxEnterpriseId);
/**
* 删除主门店 并删除主门店好友 设置新主门店
*
* @param staffId
* @param storeId
* @param wxEnterpriseId
*/
void delMainStore(String staffId, String storeId, String wxEnterpriseId);
/**
* 根据门店列表 删除主门店
*
* @param storeIds
*/
void delMainStoreByStoreIds(Set<String> storeIds);
void update(TabHaobanClerkMainStoreRelated r);
List<TabHaobanClerkMainStoreRelated> listByWxEnterpriseId(String wxEnterpriseId);
......
......@@ -23,6 +23,8 @@ public interface ExternalClerkRelatedService {
void delByClerkIdAndStaffId(String clerkId, String staffId);
void delByStoreIdAndStaffId(String storeId, String staffId);
void cleanStaffRelated(String wxEnterpriseId, List<String> staffIds);
void update(TabHaobanExternalClerkRelated exsitDTO);
......
......@@ -2,7 +2,13 @@ package com.gic.haoban.manage.service.service.impl;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -16,6 +22,12 @@ public class ClerkMainStoreRelatedServiceImpl implements ClerkMainStoreRelatedSe
@Autowired
private TabHaobanClerkMainStoreRelatedMapper mapper;
@Autowired
private StaffClerkRelationService staffClerkRelationService;
@Autowired
private ExternalClerkRelatedService externalClerkRelatedService;
@Override
public void setMainStore(String staffId, String storeId, String wxEnterpriseId) {
String uuId = com.gic.haoban.common.utils.StringUtil.randomUUID();
......@@ -38,6 +50,54 @@ public class ClerkMainStoreRelatedServiceImpl implements ClerkMainStoreRelatedSe
}
@Override
public TabHaobanClerkMainStoreRelated getMainStoreByStaffId(String staffId, String wxEnterpriseId) {
TabHaobanClerkMainStoreRelated mainStoreRelated = mapper.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
if (null != mainStoreRelated) {
return mainStoreRelated;
}
return setStaffMainStore(staffId, wxEnterpriseId);
}
/**
* 随机设置主门店
*
* @param staffId
* @param wxEnterpriseId
* @return
*/
private TabHaobanClerkMainStoreRelated setStaffMainStore(String staffId, String wxEnterpriseId) {
List<StaffClerkRelationDTO> clerkRelationDTOS = staffClerkRelationService.lisByStaffId(wxEnterpriseId, staffId);
if (CollectionUtils.isEmpty(clerkRelationDTOS)) {
return null;
}
StaffClerkRelationDTO staffClerkRelationDTO = clerkRelationDTOS.get(0);
String lockKey = "set-main-store:" + staffId;
RedisUtil.lock(lockKey, 3L);
TabHaobanClerkMainStoreRelated mainStoreRelated = mapper.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
if (null == mainStoreRelated) {
this.setMainStore(staffId, staffClerkRelationDTO.getStoreId(), wxEnterpriseId);
mainStoreRelated = mapper.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
}
RedisUtil.unlock(lockKey);
return mainStoreRelated;
}
@Override
public void delMainStore(String staffId, String storeId, String wxEnterpriseId) {
//删除主门店
mapper.delMainStore(staffId, storeId, wxEnterpriseId);
//删除主门店外部联系人 好友
externalClerkRelatedService.delByClerkIdAndStaffId(storeId, staffId);
//设置主门店
this.setStaffMainStore(staffId, wxEnterpriseId);
}
@Override
public void delMainStoreByStoreIds(Set<String> storeIds) {
mapper.delByStoreIds(storeIds);
}
@Override
public void update(TabHaobanClerkMainStoreRelated r) {
r.setUpdateTime(new Date());
mapper.updateByPrimaryKeySelective(r);
......
......@@ -54,6 +54,11 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
@Override
public void delByStoreIdAndStaffId(String storeId, String staffId) {
mapper.delByStoreIdAndStaffId(storeId, staffId);
}
@Override
public void cleanStaffRelated(String wxEnterpriseId, List<String> staffIds) {
if(staffIds != null && !staffIds.isEmpty()){
mapper.cleanStaffRelated(wxEnterpriseId,staffIds);
......
......@@ -57,8 +57,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
@Autowired
private StaffService staffService;
@Autowired
private TabHaobanStaffClerkRelationMapper tabHaobanStaffClerkRelationMapper;
@Autowired
private ClerkMainStoreRelatedService clerkMainStoreRelatedService;
......@@ -83,9 +81,10 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
logger.info("已经不存在:{},{}", clerkId, optStaffId);
return true;
}
TabHaobanStaffClerkRelation staffClerkRelation = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
int i = mapper.changeStatusByClerkId(clerkId, 0);
delSetMainStore(staffClerkRelation);
//删除 并设置主门店
clerkMainStoreRelatedService.delMainStore(clerkRelation.getStaffId(), clerkRelation.getStoreId(), clerkRelation.getWxEnterpriseId());
boolean b = i >= 0;
if (b) {
//推入日志
......@@ -106,6 +105,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
//清除绑定
mapper.delByStoreIds(storeIds);
//删除主门店
clerkMainStoreRelatedService.delMainStoreByStoreIds(storeIds);
List<String> need = needUnbind.stream().map(tab -> tab.getStaffClerkRelationId()).collect(Collectors.toList());
//放入队列
......@@ -140,16 +141,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
String staffId = staffClerkRelation.getStaffId();
String wxEnterpriseId = staffClerkRelation.getWxEnterpriseId();
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
if(r != null){
r.setStatusFlag(0);
clerkMainStoreRelatedService.update(r);
}
externalClerkRelatedService.delByClerkIdAndStaffId(staffClerkRelation.getClerkId(), staffId);
List<StaffClerkRelationDTO> list = this.lisByStaffId(wxEnterpriseId, staffId);
if (list != null && list.size() >= 1) {
clerkMainStoreRelatedService.setMainStore(staffId, list.get(list.size() - 1).getStoreId(), wxEnterpriseId);
}
//删除主门店 设置新主门店 删除好友关系
clerkMainStoreRelatedService.delMainStore(staffId, staffClerkRelation.getStoreId(), wxEnterpriseId);
}
private void setMainStore(StaffClerkRelationDTO staffClerkRelation) {
......@@ -173,7 +166,7 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
dto.setUpdateTime(new Date());
int insert = mapper.insert(EntityUtil.changeEntityByJSON(TabHaobanStaffClerkRelation.class, dto));
setMainStore(dto);
// setMainStore(dto);
String s = insert > 0 ? dto.getStaffClerkRelationId() : null;
if (null != s) {
//推入日志
......
......@@ -9,6 +9,8 @@ import com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService;
import com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated;
import com.gic.haoban.manage.service.service.ClerkMainStoreRelatedService;
import java.util.Date;
@Service
public class ClerkMainStoreRelatedApiServiceImpl implements ClerkMainStoreRelatedApiService {
......@@ -17,18 +19,18 @@ public class ClerkMainStoreRelatedApiServiceImpl implements ClerkMainStoreRelate
@Override
public void setMainStore(String staffId, String storeId, String wxEnterpriseId) {
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId,wxEnterpriseId);
if(r != null){
r.setStoreId(storeId);
clerkMainStoreRelatedService.update(r);
}else{
clerkMainStoreRelatedService.setMainStore(staffId, storeId, wxEnterpriseId);
TabHaobanClerkMainStoreRelated related = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
if (null != related && (!related.getStoreId().equals(storeId))) {
related.setStatusFlag(0);
related.setUpdateTime(new Date());
clerkMainStoreRelatedService.update(related);
}
clerkMainStoreRelatedService.setMainStore(staffId, storeId, wxEnterpriseId);
}
@Override
public ClerkMainStoreRelatedDTO getWxEnterpriseIdAndStaffId(String wxEnterpriseId, String staffId) {
return EntityUtil.changeEntityByJSON(ClerkMainStoreRelatedDTO.class, clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId,wxEnterpriseId));
return EntityUtil.changeEntityByJSON(ClerkMainStoreRelatedDTO.class, clerkMainStoreRelatedService.getMainStoreByStaffId(staffId, wxEnterpriseId));
}
}
......@@ -314,7 +314,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String staffId = staff.getStaffId();
MemberDTO member = null;
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId,wxEnterpriseId);
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.getMainStoreByStaffId(staffId, wxEnterpriseId);
if(r == null){
log.info("【新增外部联系人】主门店为空");
return;
......@@ -408,8 +408,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return;
}
String staffId = staff.getStaffId();
TabHaobanClerkMainStoreRelated mainStoreRelated = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
if (mainStoreRelated == null) {
TabHaobanClerkMainStoreRelated mainStoreRelated = clerkMainStoreRelatedService.getMainStoreByStaffId(staffId, wxEnterpriseId);
if (mainStoreRelated == null) {
log.info("【新增外部联系人】主门店为空:{}", staffId);
return;
}
......
package com.gic.haoban.manage.service.service.out.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
......@@ -23,14 +22,11 @@ import com.gic.haoban.manage.api.service.AuditApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.service.*;
import com.gic.wechat.api.dto.qywx.QywxExternalcontactDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -284,11 +280,12 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
TabHaobanStaffClerkRelation oldStaffClerkRelation = tabHaobanStaffClerkRelationMapper.selectByPrimaryKey(staffClerkRelation.getStaffClerkRelationId());
tabHaobanStaffClerkRelationMapper.delByPrimaryKey(staffClerkRelation.getStaffClerkRelationId());
staffClerkBindLogService.pushToMq(oldStaffClerkRelation.getStaffId(),optStaffId, BindTypeEnum.UNBIND.getVal(),chanelCode,staffClerkRelation.getStaffClerkRelationId());
clerkMainStoreRelatedService.delMainStore(oldStaffClerkRelation.getStaffId(), oldStaffClerkRelation.getStoreId(), oldStaffClerkRelation.getWxEnterpriseId());
}
String relationId = staffClerkRelatinService.insert(staffClerkRelation);
staffClerkBindLogService.pushToMq(staffClerkRelation.getStaffId(),optStaffId, BindTypeEnum.BIND.getVal(),chanelCode,relationId);
//设置主门店
setMainStore(staffClerkRelation);
clerkMainStoreRelatedService.getMainStoreByStaffId(staffClerkRelation.getStaffId(), staffClerkRelation.getWxEnterpriseId());
}
@Override
public void delByClerkId(String clerkId) {
......@@ -389,14 +386,16 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
}
String staffId = staffClerkRelation.getStaffId();
String wxEnterpriseId = staffClerkRelation.getWxEnterpriseId();
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
r.setStatusFlag(0);
clerkMainStoreRelatedService.update(r);
externalClerkRelatedService.delByClerkIdAndStaffId(staffClerkRelation.getClerkId(), staffId);
List<StaffClerkRelationDTO> list = staffClerkRelatinService.lisByStaffId(wxEnterpriseId, staffId);
if(list != null && list.size() >= 1){
clerkMainStoreRelatedService.setMainStore(staffId, list.get(list.size()-1).getStoreId(), wxEnterpriseId);
}
//删除主门店
clerkMainStoreRelatedService.delMainStore(staffId, staffClerkRelation.getStoreId(), wxEnterpriseId);
// TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
// r.setStatusFlag(0);
// clerkMainStoreRelatedService.update(r);
// List<StaffClerkRelationDTO> list = staffClerkRelatinService.lisByStaffId(wxEnterpriseId, staffId);
// if(list != null && list.size() >= 1){
// clerkMainStoreRelatedService.setMainStore(staffId, list.get(list.size()-1).getStoreId(), wxEnterpriseId);
// }
}
@Override
......
......@@ -143,9 +143,33 @@
select
<include refid="Base_Column_List" />
from tab_haoban_clerk_main_store_related
where 1
where 1=1
and wx_enterprise_id = #{wxEnterpriseId}
and status_flag = 1
group by staff_id
</select>
<update id="delMainStore">
update tab_haoban_clerk_main_store_related
set
status_flag = 0,
update_time = now()
where
staff_id=#{staffId}
and store_id=#{storeId}
and wx_enterprise_id = #{wxEnterpriseId}
and status_flag = 1
</update>
<update id="delByStoreIds">
update tab_haoban_clerk_main_store_related
set
status_flag = 0,
update_time = now()
where status_flag = 1
and store_id IN
<foreach collection="storeIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</update>
</mapper>
\ No newline at end of file
......@@ -291,6 +291,17 @@
and staff_id = #{staffId}
and status_flag in(1,3,4)
</update>
<update id="delByStoreIdAndStaffId"
parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated">
update tab_haoban_external_clerk_related
set
status_flag = 2,
update_time = now()
where store_id = #{storeId,jdbcType=VARCHAR}
and staff_id = #{staffId}
and status_flag in(1,3,4)
</update>
<update id="cleanStaffRelated" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated" >
update tab_haoban_external_clerk_related
......
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