Parcourir la source

仓库动态查询上传

Sakana il y a 1 semaine
Parent
commit
678166ed85

+ 13 - 1
edu-travel-adapter/edu-travel-adapter-tenant/src/main/java/edu/travel/adapter/service/tenant/TenantAdapter.java

@@ -2,9 +2,12 @@ package edu.travel.adapter.service.tenant;
 
 import edu.travel.adapter.annotation.AdapterAnnotation;
 import edu.travel.remote.feign.mode.vo.tenant.EduTenantVo;
+import edu.travel.remote.feign.mode.vo.tenant.SysRoleVo;
+import edu.travel.resp.BaseResponse;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.tenant.TenantRemoteController;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -19,7 +22,16 @@ public class TenantAdapter {
     public RPCBaseResponse<EduTenantVo> getTenantById(Long id) {
         return tenantRemoteController.getTenantById(id);
     }
-
+    /**
+     * 根据用户id获取用户角色列表(未分页)
+     */
+    @AdapterAnnotation
+    public BaseResponse<List<SysRoleVo>> getRoleListByUserId(){
+        return tenantRemoteController.getRoleListByUserId();
+    };
+    /**
+     * 通过id查询商城用户信息
+     */
     @AdapterAnnotation
     public RPCBaseResponse<List<EduTenantVo>> getTenantByIds(Set<String> id) {
         return tenantRemoteController.getTenantByIds(id);

+ 1 - 1
edu-travel-remote/edu-travel-remote-warehouse/src/main/java/edu/travel/dto/ShopWarehouseDto.java

@@ -44,7 +44,7 @@ public class ShopWarehouseDto extends PagePO {
     /**
      * 国家ID
      */
-    private String countryId;
+    private String countryServeId;
 
     /**
      * 库房详细地址

+ 0 - 6
edu-travel-remote/edu-travel-remote-warehouse/src/main/java/edu/travel/vo/ShopWarehouseVo.java

@@ -1,13 +1,7 @@
 package edu.travel.vo;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
 import edu.travel.entity.BaseEntity;
-import lombok.AllArgsConstructor;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 
 import java.util.Date;
 import java.util.List;

+ 52 - 0
edu-travel-service/edu-travel-service-warehouse/src/main/java/edu/travel/warehouse/mapper/ShopWarehouseMapper.java

@@ -1,7 +1,59 @@
 package edu.travel.warehouse.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import edu.travel.vo.ShopWarehouseVo;
 import edu.travel.warehouse.entity.ShopWarehouse;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 public interface ShopWarehouseMapper extends BaseMapper<ShopWarehouse> {
+        @Select({
+                "<script>",
+                "SELECT sw.*, bcs.* FROM shop_warehouse sw ",
+                "LEFT JOIN base_country_serve bcs ON sw.country_serve_id = bcs.id ",
+                "WHERE 1=1 ",
+                "<if test='warehouseName != null and warehouseName != \"\"'>",
+                "AND sw.warehouse_name LIKE CONCAT('%', #{warehouseName}, '%') ",
+                "</if>",
+                "<if test='status != null'>",
+                "AND sw.status = #{status} ",
+                "</if>",
+                "<if test='parentId != null'>",
+                "AND sw.parent_id = #{parentId} ",
+                "</if>",
+                "AND sw.delete_flag = 0 ",
+                "LIMIT #{pageSize} OFFSET #{offset}",
+                "</script>"
+        })
+        List<ShopWarehouseVo> selectWarehouseWithCountry(
+                @Param("warehouseName") String warehouseName,
+                @Param("status") Integer status,
+                @Param("parentId") Long parentId,
+                @Param("pageSize") int pageSize,
+                @Param("offset") int offset
+        );
+
+        @Select({
+                "<script>",
+                "SELECT COUNT(*) FROM shop_warehouse sw WHERE sw.delete_flag = 0 ",
+                "<if test='warehouseName != null and warehouseName != \"\"'>",
+                "AND sw.warehouse_name LIKE CONCAT('%', #{warehouseName}, '%') ",
+                "</if>",
+                "<if test='status != null'>",
+                "AND sw.status = #{status} ",
+                "</if>",
+                "<if test='parentId != null'>",
+                "AND sw.parent_id = #{parentId} ",
+                "</if>",
+                "</script>"
+        })
+        int countWarehouseWithCountry(
+                @Param("warehouseName") String warehouseName,
+                @Param("status") Integer status,
+                @Param("parentId") Long parentId
+        );
+
+
 }

+ 5 - 2
edu-travel-service/edu-travel-service-warehouse/src/main/java/edu/travel/warehouse/service/ShopWarehouseService.java

@@ -1,5 +1,6 @@
 package edu.travel.warehouse.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import edu.travel.dto.ShopWarehouseDto;
 import edu.travel.rpc.RPCBaseResponse;
@@ -9,6 +10,8 @@ import edu.travel.warehouse.entity.ShopWarehouse;
 import java.util.List;
 
 public interface ShopWarehouseService extends IService<ShopWarehouse> {
-//分页
-    RPCBaseResponse<List<ShopWarehouseVo>> getWarehouseCountryPageForm(ShopWarehouseDto dto);
+//树形结构查询(连表)
+    RPCBaseResponse<List<ShopWarehouseVo>> getWarehouseCountryForm(ShopWarehouseDto dto);
+
+    RPCBaseResponse<IPage<ShopWarehouseVo>> getWarehouseCountryPageForm(ShopWarehouseDto dto);
 }

+ 60 - 2
edu-travel-service/edu-travel-service-warehouse/src/main/java/edu/travel/warehouse/service/impl/ShopWarehouseServiceImpl.java

@@ -1,7 +1,10 @@
 package edu.travel.warehouse.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.adapter.service.country.CountryAdapter;
+import edu.travel.adapter.service.tenant.TenantAdapter;
 import edu.travel.dto.ShopWarehouseDto;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.service.SysServiceImpl;
@@ -21,13 +24,15 @@ import java.util.stream.Collectors;
 public class ShopWarehouseServiceImpl extends SysServiceImpl<ShopWarehouseMapper, ShopWarehouse> implements ShopWarehouseService {
     @Autowired
     private CountryAdapter countryAdapter;
+    @Autowired
+    private ShopWarehouseMapper shopWarehouseMapper;
     /**
-     * 获取仓库国家分页数据
+     * 树形结构查询(连表)
      * @param dto
      * @return
      */
     @Override
-    public RPCBaseResponse<List<ShopWarehouseVo>> getWarehouseCountryPageForm(ShopWarehouseDto dto) {
+    public RPCBaseResponse<List<ShopWarehouseVo>> getWarehouseCountryForm(ShopWarehouseDto dto) {
         // 查询所有库房数据
         LambdaQueryWrapper<ShopWarehouse> queryWrapper = new LambdaQueryWrapper<>();
         List<ShopWarehouse> shopWarehouseList = super.getListLink(queryWrapper);
@@ -95,5 +100,58 @@ public class ShopWarehouseServiceImpl extends SysServiceImpl<ShopWarehouseMapper
         return new RPCBaseResponse<>(200, "SUCCESS", tree);
     }
 
+    @Override
+    public RPCBaseResponse<IPage<ShopWarehouseVo>> getWarehouseCountryPageForm(ShopWarehouseDto dto) {
+        // 创建分页对象
+        Page<ShopWarehouseVo> shopWarehousePage = new Page<>(dto.getCurrentPage(), dto.getPageSize());
+
+        // 计算 OFFSET
+        int offset = (int) ((dto.getCurrentPage() - 1) * dto.getPageSize());
+
+        // 创建查询包装器
+        LambdaQueryWrapper<ShopWarehouse> queryWrapper = new LambdaQueryWrapper<>();
+
+        // 动态添加查询条件
+        if (dto.getWarehouseName() != null && !dto.getWarehouseName().isEmpty()) {
+            queryWrapper.like(ShopWarehouse::getWarehouseName, dto.getWarehouseName());
+        }
+        if (dto.getCreateTime() != null) {
+            queryWrapper.ge(ShopWarehouse::getCreateTime, dto.getCreateTime());
+        }
+        if (dto.getParentId() != null) {
+            queryWrapper.eq(ShopWarehouse::getParentId, dto.getParentId());
+        }
+        if (dto.getDetailedAddress() != null && !dto.getDetailedAddress().isEmpty()) {
+            queryWrapper.like(ShopWarehouse::getDetailedAddress, dto.getDetailedAddress());
+        }
+        if (dto.getStatus() != null) {
+            queryWrapper.eq(ShopWarehouse::getStatus, dto.getStatus());
+        }
+        queryWrapper.eq(ShopWarehouse::getDeleteFlag, 0); // 查询未删除的记录
+
+        // 执行查询,获取分页的库房数据
+        List<ShopWarehouseVo> warehouseList = shopWarehouseMapper.selectWarehouseWithCountry(
+                dto.getWarehouseName(),
+                dto.getStatus(),
+                dto.getParentId(),
+                dto.getPageSize(),
+                offset
+        );
+
+        // 计算总记录数
+        int total = shopWarehouseMapper.countWarehouseWithCountry(dto.getWarehouseName(), dto.getStatus(), dto.getParentId());
+
+        // 创建新的分页对象用于存储 ShopWarehouseVo
+        IPage<ShopWarehouseVo> pageVoLink = new Page<>();
+        pageVoLink.setRecords(warehouseList); // 设置转换后的记录列表
+        pageVoLink.setTotal(total); // 设置总条数
+        pageVoLink.setCurrent(shopWarehousePage.getCurrent()); // 设置当前页
+        pageVoLink.setSize(shopWarehousePage.getSize()); // 设置每页大小
+
+        // 封装返回
+        return new RPCBaseResponse<>(200, "SUCCESS", pageVoLink);
+    }
+
+
 
 }

+ 12 - 3
edu-travel-service/edu-travel-service-warehouse/src/main/java/edu/travel/warehouse/web/ShopWarehouseController.java

@@ -1,5 +1,6 @@
 package edu.travel.warehouse.web;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import edu.travel.dto.ShopWarehouseDto;
 import edu.travel.remote.ShopWarehouseRemoteController;
 import edu.travel.rpc.RPCBaseResponse;
@@ -27,13 +28,21 @@ public class ShopWarehouseController extends BaseController<ShopWarehouse> imple
     private ShopWarehouseService shopWarehouseService;
 
     /**
-     * 分页查询(连表)
+     * 树形结构查询(连表)
      */
-    @GetMapping("/getWarehouseCountryPageForm")
-    public RPCBaseResponse<List<ShopWarehouseVo>> getWarehouseCountryPageForm(ShopWarehouseDto dto) {
+    @GetMapping("/getWarehouseCountryForm")
+    public RPCBaseResponse<List<ShopWarehouseVo>> getWarehouseCountryForm(ShopWarehouseDto dto) {
+        return shopWarehouseService.getWarehouseCountryForm(dto);
+    }
+    /**
+     * 分页动态查询(连表)
+     */
+    @GetMapping("/getWarehouseCountryPage")
+    public RPCBaseResponse<IPage<ShopWarehouseVo>> getWarehouseCountryPage(ShopWarehouseDto dto) {
         return shopWarehouseService.getWarehouseCountryPageForm(dto);
     }
 
+
     /**
      * 查询库房详情
      */