Commit d3255f9a by guojx

门店状态筛选接口优化

parent 1e3d5de3
...@@ -237,13 +237,26 @@ public interface StaffApiService { ...@@ -237,13 +237,26 @@ public interface StaffApiService {
/** /**
* 导购gic门店和好办企业门店交集 * 导购gic门店和好办企业门店交集
*
* 当管理员是所有门店权限的时候:返回为空
* @param clerkId
* @param wxEnterpriseId
* @param storeStatusList 可以为空,为空则查询全部。门店状态筛选: 状态(0:无效,2:上线,3:未上线,-3:回收站 , 4占坑 ,6:停业整顿),7待上线
* @param addUnassignedStore 当符合条件时,是否需要无归属门店Id -1 的数据,如果需要,则添加到返回集合中。默认不需要。
* @return
*/
List<String> getHaobanStoreIdsRolesByClerkIdAndStoreStatus(String clerkId, String wxEnterpriseId, List<String> storeStatusList, Boolean addUnassignedStore);
/**
* 导购gic门店和好办企业门店交集(比返回门店Id)
* 当管理员是所有门店权限的时候返回所有门店id
* @param clerkId * @param clerkId
* @param wxEnterpriseId * @param wxEnterpriseId
* @param storeStatusList 可以为空,为空则查询全部。门店状态筛选: 状态(0:无效,2:上线,3:未上线,-3:回收站 , 4占坑 ,6:停业整顿),7待上线 * @param storeStatusList 可以为空,为空则查询全部。门店状态筛选: 状态(0:无效,2:上线,3:未上线,-3:回收站 , 4占坑 ,6:停业整顿),7待上线
* @param isMustReturnStoreIdWhenSuperAdmin false:全部门店权限则返回为空 true:必返回门店id * @param addUnassignedStore 当符合条件时,是否需要无归属门店Id -1 的数据,如果需要,则添加到返回集合中。默认不需要。
* @return * @return
*/ */
List<String> getHaobanStoreIdsRolesByClerkIdAndStoreStatus(String clerkId, String wxEnterpriseId, List<String> storeStatusList, boolean isMustReturnStoreIdWhenSuperAdmin); List<String> getNotEmptyHaobanStoreIdsRolesByClerkIdAndStoreStatus(String clerkId, String wxEnterpriseId, List<String> storeStatusList, Boolean addUnassignedStore);
List<String> isGicSuper(String clerkId , String wxEnterpriseId) ; List<String> isGicSuper(String clerkId , String wxEnterpriseId) ;
......
...@@ -900,23 +900,39 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -900,23 +900,39 @@ public class StaffApiServiceImpl implements StaffApiService {
return gicStoreIds; return gicStoreIds;
} }
@Override @Override
public List<String> getHaobanStoreIdsRolesByClerkIdAndStoreStatus(String clerkId, String wxEnterpriseId, List<String> storeStatusList, boolean isMustReturnStoreIdWhenSuperAdmin) { public List<String> getHaobanStoreIdsRolesByClerkIdAndStoreStatus(String clerkId, String wxEnterpriseId, List<String> storeStatusList, Boolean addUnassignedStore) {
boolean hasStoreStatusFilter = CollectionUtils.isNotEmpty(storeStatusList); return getHaobanStoreIdsRolesByClerkIdAndStoreStatusCommon(clerkId, wxEnterpriseId, storeStatusList, false, addUnassignedStore);
}
@Override
public List<String> getNotEmptyHaobanStoreIdsRolesByClerkIdAndStoreStatus(String clerkId, String wxEnterpriseId, List<String> storeStatusList, Boolean addUnassignedStore) {
return getHaobanStoreIdsRolesByClerkIdAndStoreStatusCommon(clerkId, wxEnterpriseId, storeStatusList, true, addUnassignedStore);
}
private List<String> getHaobanStoreIdsRolesByClerkIdAndStoreStatusCommon(String clerkId, String wxEnterpriseId, List<String> storeStatusList,
boolean isMustReturnStoreIdWhenSuperAdmin, Boolean addUnassignedStore) {
if (addUnassignedStore == null) {
addUnassignedStore = false;
}
List<String> storeIds = getHaoBanStoreIdsRolesByClerkId(clerkId, wxEnterpriseId); List<String> storeIds = getHaoBanStoreIdsRolesByClerkId(clerkId, wxEnterpriseId);
if (CollectionUtils.isEmpty(storeIds)) { if (CollectionUtils.isEmpty(storeIds)) {
//无权限 //无权限
return Collections.singletonList("no_store"); return Collections.singletonList("no_store");
} }
boolean hasStoreStatusFilter = CollectionUtils.isNotEmpty(storeStatusList);
boolean isSuperAdminStore = storeIds.size() == 1 && StringUtils.equals(storeIds.get(0), "-1"); boolean isSuperAdminStore = storeIds.size() == 1 && StringUtils.equals(storeIds.get(0), "-1");
//当有门店状态筛选或者是超管且强制返回门店Id,需要去调用门店接口
boolean needQueryStore = hasStoreStatusFilter || (isSuperAdminStore && isMustReturnStoreIdWhenSuperAdmin);
if (isSuperAdminStore) { if (isSuperAdminStore) {
//所有权限 //所有权限
if (!hasStoreStatusFilter && !isMustReturnStoreIdWhenSuperAdmin) { if (!needQueryStore) {
return Collections.emptyList(); return Collections.emptyList();
} }
} }
if (!hasStoreStatusFilter) { if (!needQueryStore) {
return storeIds; return storeIds;
} }
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId); ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
...@@ -932,8 +948,8 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -932,8 +948,8 @@ public class StaffApiServiceImpl implements StaffApiService {
storeSearchDTO.setStatusAnyIn(storeStatusList); storeSearchDTO.setStatusAnyIn(storeStatusList);
} }
List<String> resultList = storeService.listStoreIds(storeSearchDTO); List<String> resultList = storeService.listStoreIds(storeSearchDTO);
if (isSuperAdminStore) { if (addUnassignedStore && isSuperAdminStore) {
if (storeStatusList.contains("2")) { if (!hasStoreStatusFilter || storeStatusList.contains("2")) {
//所有门店权限,且选择了上线门店状态,则添加无归属门店id //所有门店权限,且选择了上线门店状态,则添加无归属门店id
resultList.add("-1"); resultList.add("-1");
} }
......
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