|
|
|
@ -3,14 +3,20 @@ package com.kiisoo.ic.store.service;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.github.pagehelper.Page;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.kiisoo.ic.common.utils.ExcelUtils;
|
|
|
|
|
import com.kiisoo.ic.customer.entity.OpSellerCustomerRelation;
|
|
|
|
|
import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper;
|
|
|
|
|
import com.kiisoo.ic.department.entity.DepartmentDO;
|
|
|
|
|
import com.kiisoo.ic.department.mapper.PrivilageDepartmentDOMapper;
|
|
|
|
|
import com.kiisoo.ic.domain.service.PrivilageDomainService;
|
|
|
|
|
import com.kiisoo.ic.employee.entity.EmployeeDO;
|
|
|
|
|
import com.kiisoo.ic.employee.entity.ImportErrorDTO;
|
|
|
|
|
import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
|
|
|
|
|
import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper;
|
|
|
|
|
import com.kiisoo.ic.employee.service.EmployeeService;
|
|
|
|
|
import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalMember;
|
|
|
|
|
import com.kiisoo.ic.store.bean.PoiStoreStaffDTO;
|
|
|
|
|
import com.kiisoo.ic.store.entity.PoiStore;
|
|
|
|
|
import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO;
|
|
|
|
|
import com.kiisoo.ic.store.entity.StoreUserDTO;
|
|
|
|
@ -31,10 +37,8 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import static com.kiisoo.ic.employee.constant.Constants.ADD_CP_CODE_BINDED;
|
|
|
|
|
import static com.kiisoo.ic.store.constant.Constants.*;
|
|
|
|
@ -66,48 +70,63 @@ public class StoreEmployeeService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private EmployeeService employeeService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private PrivilageDomainService privilageDomainService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private OpSellerCustomerRelationDOMapper opSellerCustomerRelationDOMapper;
|
|
|
|
|
/**
|
|
|
|
|
* 查询门店号
|
|
|
|
|
* @param storeId 门店id
|
|
|
|
|
* @param regionId 区域id
|
|
|
|
|
*/
|
|
|
|
|
public void listStoreUser(Long storeId, Long regionId, Integer pageNum, Integer pageSize) {
|
|
|
|
|
public PageInfo<StoreUserDTO> listStoreUser(Long userId ,Long storeId, Long regionId, Integer pageNum, Integer pageSize) {
|
|
|
|
|
Map<String,Object> result = new HashMap<>();
|
|
|
|
|
List<PoiStore> poiStores = null;
|
|
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
|
|
List<Long> shopIds = new ArrayList<>();
|
|
|
|
|
if (storeId != null){
|
|
|
|
|
QueryWrapper<PoiStore> storeParams = new QueryWrapper<>();
|
|
|
|
|
poiStores = poiStoreDOMapper.selectList(storeParams);
|
|
|
|
|
shopIds.add(storeId);
|
|
|
|
|
}else if(regionId != null){
|
|
|
|
|
poiStores = poiStoreDOMapper.selectRegionShop(regionId);
|
|
|
|
|
shopIds = privilageDomainService.listUserDatePermission(userId);
|
|
|
|
|
//有区域就查区域店铺
|
|
|
|
|
List<PoiStore> stores = poiStoreDOMapper.selectRegionShop(regionId);
|
|
|
|
|
shopIds = stores.stream().map(i -> i.getId()).collect(Collectors.toList());
|
|
|
|
|
}else{
|
|
|
|
|
poiStores = poiStoreDOMapper.selectList(null);
|
|
|
|
|
//查询用户权限店铺
|
|
|
|
|
shopIds = new ArrayList<>(privilageDomainService.listUserDatePermission(userId));
|
|
|
|
|
}
|
|
|
|
|
List<StoreUserDTO> storeUserDTOS = new ArrayList<>();
|
|
|
|
|
if (CollectionUtils.isNotEmpty(poiStores)){
|
|
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
|
|
List<StoreUserDTO> cpUserStoreDO = privilageCpUserStoreDOMapper.selectCpUserByShops(shopIds);
|
|
|
|
|
if (CollectionUtils.isNotEmpty(cpUserStoreDO)){
|
|
|
|
|
int orderNum = (pageNum -1) * pageSize;
|
|
|
|
|
for(PoiStore store : poiStores) {
|
|
|
|
|
StoreUserDTO storeUserDTO = new StoreUserDTO();
|
|
|
|
|
BeanUtils.copyProperties(store,storeUserDTO);
|
|
|
|
|
for(StoreUserDTO cpUserStore : cpUserStoreDO) {
|
|
|
|
|
//设置序号
|
|
|
|
|
storeUserDTO.setOrderNum(++orderNum);
|
|
|
|
|
cpUserStore.setOrderNum(++orderNum);
|
|
|
|
|
//查询店铺绑定的企业微信
|
|
|
|
|
QueryWrapper<PrivilageCpUserStoreDO> relationParams = new QueryWrapper<>();
|
|
|
|
|
relationParams.eq(DATABASE_STORE_ID_KEY,storeUserDTO.getId());
|
|
|
|
|
PrivilageCpUserStoreDO cpUserStoreDO = privilageCpUserStoreDOMapper.selectOne(relationParams);
|
|
|
|
|
if (cpUserStoreDO != null){
|
|
|
|
|
//企业微信存在则查询数据
|
|
|
|
|
PrivilageCpUserDO privilageCpUserDO = privilageCpUserDOMapper.selectById(cpUserStoreDO.getCpUserId());
|
|
|
|
|
storeUserDTO.setCpUserId(privilageCpUserDO.getCpUserId());
|
|
|
|
|
PoiStore poiStore = poiStoreDOMapper.selectById(cpUserStore.getId());
|
|
|
|
|
if (null != poiStore){
|
|
|
|
|
cpUserStore.setName(poiStore.getName());
|
|
|
|
|
cpUserStore.setCode(poiStore.getCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//查询导购数目
|
|
|
|
|
|
|
|
|
|
// poiStoreStaffDOMapper
|
|
|
|
|
List<Long> shops = Arrays.asList(cpUserStore.getId());
|
|
|
|
|
List<PoiStoreStaffDTO> sellerList = poiStoreStaffDOMapper.selectSellersByShopIds(shops);
|
|
|
|
|
int staffNum = 0;
|
|
|
|
|
if (null != sellerList && sellerList.size() > 0){
|
|
|
|
|
staffNum = sellerList.size();
|
|
|
|
|
}
|
|
|
|
|
cpUserStore.setStaffNum(staffNum);
|
|
|
|
|
//客户数
|
|
|
|
|
QueryWrapper<OpSellerCustomerRelation> wrapper2 = new QueryWrapper<>();
|
|
|
|
|
wrapper2.eq("store_id",cpUserStore.getId());
|
|
|
|
|
wrapper2.eq("type",1);
|
|
|
|
|
List<OpSellerCustomerRelation> opRelations = opSellerCustomerRelationDOMapper.selectList(wrapper2);
|
|
|
|
|
long count = opRelations.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count();
|
|
|
|
|
cpUserStore.setCustomerNum((int)count);
|
|
|
|
|
}
|
|
|
|
|
Page<StoreUserDTO> pageList = (Page<StoreUserDTO>)storeUserDTOS;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/*PageInfo<StoreUserDTO> storeUserDTOPageInfo = ;
|
|
|
|
|
storeUserDTOPageInfo.setTotal(poiStores1.getTotal());*/
|
|
|
|
|
return new PageInfo<>(cpUserStoreDO) ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|