刘帅
2026-09-30 9a6551aebd6b523439beda5c642371998c5289f6
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -474,22 +474,42 @@
    @ResponseBody
    public Object list(String provinceCode, String cityCode , String name, String phone,String shopName) {
        Page<TStoreListVo> page = new PageFactory<TStoreListVo>().defaultPage();
        String roleid = UserExt.getUser().getRoleid();
        List<TStoreListVo> list =new ArrayList<>();
        if("3".equals(roleid)){
        Integer objectType = UserExt.getUser().getObjectType();
        if (Integer.valueOf(3).equals(objectType)) {
            // 门店员工按员工-门店中间表的数据范围查询;getStoreIdsByUserId 同时兼容
            // sys_user.objectId 和 t_store.storeStaffId 两种历史归属数据。
            List<Integer> storeIds = userMapper.getStoreIdsByUserId(UserExt.getUser().getId());
            if (!CollectionUtils.isEmpty(storeIds)) {
                list = storeService.listAllStoresByIds(page, provinceCode, cityCode, name, phone, shopName, storeIds);
            }
        }else {
        } else if (Integer.valueOf(2).equals(objectType)) {
            Integer objectId = UserExt.getUser().getObjectId();
            list = storeService.listAll(page,provinceCode,cityCode,name,phone,shopName,objectId);
        } else {
            // 平台账号不带运营商条件,查询全部门店;数据范围由 objectType 决定,
            // 不能用 roleid(菜单权限)判断,避免员工被授予角色 1 后被误当成运营商。
            list = storeService.listAll(page, provinceCode, cityCode, name, phone, shopName, null);
        }
        normalizePhoneFields(list);
        page.setRecords(list);
        return  super.packForBT(page);
    }
    /**
     * 统一将列表 DTO 的底层字段写回非 null 值。
     *
     * 部分运行环境使用字段序列化而非 JavaBean getter 序列化;仅在 getter 中做兜底时,
     * 此类环境仍可能把原始 null 输出为 JSON null。这里在返回前固化字段值,保证三个
     * 数据范围的列表接口均稳定返回 phone、userPhone 两个字符串字段。
     */
    private void normalizePhoneFields(List<TStoreListVo> stores) {
        for (TStoreListVo store : stores) {
            store.setPhone(store.getPhone());
            store.setUserPhone(store.getUserPhone());
        }
    }
    @RequestMapping(value = "/listOne")
    @ResponseBody
    public Object listOne(Integer id) {