feat:浦江优化
This commit is contained in:
1 parent
da549b19aa
commit
7ae8d3e14b
7 files changed
+77
-8
No files matched your search
+2
-1
@@ -158,7 +158,8 @@ public class MchManageController {
|
||||
|
||||
@Operation(summary = "app查询合作商家的分店", description = "app查询合作商家的分店")
|
||||
@GetMapping("/app/children-page-join")
|
||||
@Inner(value = false)
|
||||
// 不再 @Inner(value = false) 匿名放行:未登录/token 过期时返回 424,
|
||||
// 与 page-join 行为一致,避免匿名上下文下静默查空导致前端显示"暂无分店"
|
||||
public R<Page<MchManageVo>> appParentPageJoin(@ParameterObject Page page, @ParameterObject MchManageDto dto) {
|
||||
dto.setVisibleMobile(YesNoEnum.YES.getCode());
|
||||
dto.setTypes(MerchantTypeEnum.SUPERMARKET.getType());
|
||||
|
||||
+27
@@ -6,6 +6,7 @@ import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.admin.api.dto.UserInfo;
|
||||
@@ -16,6 +17,7 @@ import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
|
||||
import com.bsd.pjcloud.admin.api.utils.DataUtil;
|
||||
import com.bsd.pjcloud.common.core.constant.CacheConstants;
|
||||
import com.bsd.pjcloud.common.core.constant.enums.MerchantTypeEnum;
|
||||
import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum;
|
||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||
import com.bsd.pjcloud.common.core.util.CollectionUtils;
|
||||
import com.bsd.pjcloud.common.core.util.QRCodeImageGenerator;
|
||||
@@ -59,8 +61,10 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
@@ -202,10 +206,33 @@ public class MchManageServiceImpl extends ServiceImpl<MchManageMapper, MchManage
|
||||
DataUtil.convertDeptList(list.getRecords(), deptList.getData());
|
||||
}
|
||||
}
|
||||
// 主店列表:实时统计可见分店数覆盖冗余字段 mchCount,保证与 children-page-join 查询口径一致
|
||||
if (Boolean.TRUE.equals(dto.getParentIsNull())) {
|
||||
fillMchCount(list.getRecords());
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按 parent_id 实时统计各主店可见分店数(visible_mobile=1,逻辑删除自动过滤),
|
||||
* 覆盖 mch_manage.mch_count 冗余计数,避免分店增删/隐藏后计数与实际不一致
|
||||
*/
|
||||
private void fillMchCount(List<MchManageVo> records) {
|
||||
List<Long> ids = records.stream().map(MchManageVo::getId).filter(Objects::nonNull).toList();
|
||||
if (ObjectUtil.isEmpty(ids)) return;
|
||||
QueryWrapper<MchManageEntity> wrapper = new QueryWrapper<>();
|
||||
wrapper.select("parent_id", "count(*) as cnt")
|
||||
.in("parent_id", ids)
|
||||
.eq("visible_mobile", YesNoEnum.YES.getCode())
|
||||
.groupBy("parent_id");
|
||||
Map<Long, Long> countMap = new HashMap<>();
|
||||
for (Map<String, Object> row : baseMapper.selectMaps(wrapper)) {
|
||||
countMap.put(Long.valueOf(String.valueOf(row.get("parent_id"))), Long.valueOf(String.valueOf(row.get("cnt"))));
|
||||
}
|
||||
records.forEach(v -> v.setMchCount(countMap.getOrDefault(v.getId(), 0L)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页级联
|
||||
*/
|
||||
|
||||
Reference in new issue
Block a user