Jelajahi Sumber

修复新增修改没有Project的bug,导致查询失败的错误

Sakana 1 Minggu lalu
induk
melakukan
ce8cb8da79

+ 5 - 4
edu-travel-adapter/edu-travel-adapter-warehouse/src/main/java/edu/travel/adapter/service/warehouse/WarehouseAdapter.java

@@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 @Component
@@ -39,14 +40,14 @@ public class WarehouseAdapter {
 
     //库房连表新增
     @AdapterAnnotation
-    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity) {
-        return shopWarehouseRemoteController.saveAllForm(entity);
+    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request) {
+        return shopWarehouseRemoteController.saveAllForm(entity,request);
     }
 
     //库房连表修改
     @AdapterAnnotation
-    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity) {
-        return shopWarehouseRemoteController.updateWarehouse(entity);
+    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity,HttpServletRequest request) {
+        return shopWarehouseRemoteController.updateWarehouse(entity,request);
     }
 
     //查询库房详情

+ 3 - 2
edu-travel-remote/edu-travel-remote-warehouse/src/main/java/edu/travel/remote/ShopWarehouseRemoteController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 @FeignClient(path = "/shopWarehouse", name = "warehouse-dev")
@@ -23,7 +24,7 @@ public interface ShopWarehouseRemoteController extends RemoteBaseController<Shop
     @GetMapping("/getWarehouseTenantRole")
     public RPCBaseResponse<List<ShopWarehouseStaffVo>> getWarehouseTenantRole(String id);
     @PostMapping("/saveAllForm")
-    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity);
+    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request);
     @PostMapping("/updateWarehouse")
-    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity);
+    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity,HttpServletRequest request);
 }

+ 0 - 5
edu-travel-service/edu-travel-service-commodity/pom.xml

@@ -178,11 +178,6 @@
             <artifactId>edu-travel-adapter-order</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
-        <dependency>
-            <groupId>edu.travel</groupId>
-            <artifactId>edu-travel-adapter-currency</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
         <!--        <dependency>-->
         <!--            <groupId>jakarta.validation</groupId>-->
         <!--            <artifactId>jakarta.validation-api</artifactId>-->

+ 1 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSkuServiceImpl.java

@@ -6,7 +6,7 @@ import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import edu.travel.adapter.service.country.CountryAdapter;
-import edu.travel.adapter.service.currency.CurrencyAdapter;
+import edu.travel.adapter.service.country.CurrencyAdapter;
 import edu.travel.adapter.service.order.OrderAdapter;
 import edu.travel.adapter.service.order.OrderItemAdapter;
 import edu.travel.adapter.service.order.ShopOrderLogAdapter;

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

@@ -8,7 +8,9 @@ import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.vo.ShopWarehouseStaffVo;
 import edu.travel.vo.ShopWarehouseVo;
 import edu.travel.warehouse.entity.ShopWarehouse;
+import org.springframework.web.bind.annotation.RequestBody;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 public interface ShopWarehouseService extends IService<ShopWarehouse> {
@@ -20,7 +22,7 @@ public interface ShopWarehouseService extends IService<ShopWarehouse> {
     //库房关联人员(角色)查询
     RPCBaseResponse<List<ShopWarehouseStaffVo>> getWarehouseTenantRole(String id);
 //连表新增
-    RPCBaseResponse<ShopWarehouseVo> saveAllForm(ShopWarehouseSaveDto entity);
-
-    RPCBaseResponse<ShopWarehouseVo> updateWarehouse(ShopWarehouseSaveDto entity);
+    RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request);
+//连表修改
+    RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request);
 }

+ 55 - 50
edu-travel-service/edu-travel-service-warehouse/src/main/java/edu/travel/warehouse/service/impl/ShopWarehouseServiceImpl.java

@@ -29,7 +29,9 @@ import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -299,65 +301,60 @@ public class ShopWarehouseServiceImpl extends SysServiceImpl<ShopWarehouseMapper
      * @return
      */
     @Override
-    @Transactional // 确保方法在事务中执行
-    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(ShopWarehouseSaveDto entity) {
+    @Transactional
+    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request) {
         // 创建一个新的 ShopWarehouse 实体
         ShopWarehouse warehouse = new ShopWarehouse();
 
+        // 从请求头中获取 project 的值
+        String project = request.getHeader("Project");
+        warehouse.setProject(project); // 设置 project
+
         // 获取当前用户 ID
-        Long currentUserId = getCurrentUserId(); // 获取当前用户 ID
+        Long currentUserId = getCurrentUserId();
 
         // 将 DTO 中的属性复制到实体对象中
         copyWarehouseProperties(entity, warehouse);
-        warehouse.setCreateUserId(String.valueOf(currentUserId)); // 填充创建人 ID
+        warehouse.setCreateUserId(String.valueOf(currentUserId));
+
+        // 检查项目是否存在
+        if (warehouse.getProject() == null) {
+            return new RPCBaseResponse<>(400, "项目不能为空", null);
+        }
 
         // 插入仓库信息到数据库
         shopWarehouseMapper.insert(warehouse);
 
         // 如果存在员工列表,则保存员工角色信息
         if (entity.getStaffList() != null && !entity.getStaffList().isEmpty()) {
-            saveStaffRoles(entity.getStaffList(), warehouse.getId(), currentUserId); // 传入用户 ID
+            saveStaffRoles(entity.getStaffList(), warehouse.getId(), currentUserId, project); // 传入 project
         }
 
         // 构建并返回响应对象
-        ShopWarehouseVo warehouseVo = new ShopWarehouseVo();
-        warehouseVo.setId(warehouse.getId());
-        warehouseVo.setWarehouseName(warehouse.getWarehouseName());
-        warehouseVo.setProject(warehouse.getProject());
-        warehouseVo.setCreateTime(warehouse.getCreateTime());
-        warehouseVo.setCreateUserId(warehouse.getCreateUserId());
-        warehouseVo.setUpdateTime(warehouse.getUpdateTime());
-        warehouseVo.setUpdateUserId(warehouse.getUpdateUserId());
-        warehouseVo.setDeleteFlag(warehouse.getDeleteFlag());
-        warehouseVo.setParentId(warehouse.getParentId());
-        warehouseVo.setLongitude(warehouse.getLongitude());
-        warehouseVo.setLatitude(warehouse.getLatitude());
-        warehouseVo.setCountryServeId(warehouse.getCountryServeId());
-        warehouseVo.setDetailedAddress(warehouse.getDetailedAddress());
-        warehouseVo.setStatus(warehouse.getStatus());
-        // 其他字段映射...
-
-        // 返回成功的响应
-        return new RPCBaseResponse<>(200, "SUCCESS", warehouseVo);
+        return buildWarehouseResponse(warehouse);
     }
 
     @Override
-    @Transactional // 确保方法在事务中执行
-    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(ShopWarehouseSaveDto entity) {
+    @Transactional
+    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request) {
         // 根据 ID 查找现有的仓库信息
         ShopWarehouse existingWarehouse = shopWarehouseMapper.selectById(entity.getId());
 
         // 如果找不到该仓库,返回错误响应
         if (existingWarehouse == null) {
-            return new RPCBaseResponse<>(404, "NULL", null);
+            return new RPCBaseResponse<>(404, "找不到仓库", null);
         }
 
+        // 从请求头中获取 project 的值
+        String project = request.getHeader("Project");
+        existingWarehouse.setProject(project); // 设置 project
+
         // 更新现有仓库的属性
         copyWarehouseProperties(entity, existingWarehouse);
 
         // 获取当前用户 ID
-        Long currentUserId = getCurrentUserId(); // 获取当前用户 ID
-        existingWarehouse.setUpdateUserId(String.valueOf(currentUserId)); // 填充更新人 ID
+        Long currentUserId = getCurrentUserId();
+        existingWarehouse.setUpdateUserId(String.valueOf(currentUserId));
 
         // 更新仓库信息到数据库
         shopWarehouseMapper.updateById(existingWarehouse);
@@ -367,31 +364,14 @@ public class ShopWarehouseServiceImpl extends SysServiceImpl<ShopWarehouseMapper
             // 先删除原有员工信息
             shopWarehouseStaffMapper.deleteByWarehouseId(existingWarehouse.getId());
             // 然后插入新的员工角色信息
-            saveStaffRoles(entity.getStaffList(), existingWarehouse.getId(), currentUserId); // 传入用户 ID
+            saveStaffRoles(entity.getStaffList(), existingWarehouse.getId(), currentUserId, project); // 传入 project
         }
 
         // 构建并返回响应对象
-        ShopWarehouseVo warehouseVo = new ShopWarehouseVo();
-        warehouseVo.setId(existingWarehouse.getId());
-        warehouseVo.setWarehouseName(existingWarehouse.getWarehouseName());
-        warehouseVo.setProject(existingWarehouse.getProject());
-        warehouseVo.setCreateTime(existingWarehouse.getCreateTime());
-        warehouseVo.setCreateUserId(existingWarehouse.getCreateUserId());
-        warehouseVo.setUpdateTime(existingWarehouse.getUpdateTime());
-        warehouseVo.setUpdateUserId(existingWarehouse.getUpdateUserId());
-        warehouseVo.setDeleteFlag(existingWarehouse.getDeleteFlag());
-        warehouseVo.setParentId(existingWarehouse.getParentId());
-        warehouseVo.setLongitude(existingWarehouse.getLongitude());
-        warehouseVo.setLatitude(existingWarehouse.getLatitude());
-        warehouseVo.setCountryServeId(existingWarehouse.getCountryServeId());
-        warehouseVo.setDetailedAddress(existingWarehouse.getDetailedAddress());
-        warehouseVo.setStatus(existingWarehouse.getStatus());
-        // 其他字段映射...
-
-        // 返回成功的响应
-        return new RPCBaseResponse<>(200, "更新成功", warehouseVo);
+        return buildWarehouseResponse(existingWarehouse);
     }
 
+
     // 复制仓库属性的方法
     private void copyWarehouseProperties(ShopWarehouseSaveDto source, ShopWarehouse target) {
         target.setParentId(source.getParentId());
@@ -422,14 +402,39 @@ public class ShopWarehouseServiceImpl extends SysServiceImpl<ShopWarehouseMapper
         return userId;
     }
     // 保存员工角色信息的方法
-    private void saveStaffRoles(List<ShopWarehouseStaffDto> staffList, Long warehouseId, Long currentUserId) {
+    private void saveStaffRoles(List<ShopWarehouseStaffDto> staffList, Long warehouseId, Long currentUserId, String project) {
         for (ShopWarehouseStaffDto staffDto : staffList) {
             ShopWarehouseStaff staff = new ShopWarehouseStaff();
             staff.setWarehouseId(warehouseId);
             staff.setUserId(staffDto.getUserId());
             staff.setRoleId(staffDto.getRoleId());
             staff.setCreateUserId(String.valueOf(currentUserId)); // 设置创建用户 ID
+            staff.setProject(project); // 设置项目
+
+            // 插入员工角色信息
             shopWarehouseStaffMapper.insert(staff);
         }
     }
+    //返回方法
+    private RPCBaseResponse<ShopWarehouseVo> buildWarehouseResponse(ShopWarehouse warehouse) {
+        ShopWarehouseVo warehouseVo = new ShopWarehouseVo();
+        warehouseVo.setId(warehouse.getId());
+        warehouseVo.setWarehouseName(warehouse.getWarehouseName());
+        warehouseVo.setProject(warehouse.getProject()); // 设置项目
+        warehouseVo.setCreateTime(warehouse.getCreateTime());
+        warehouseVo.setCreateUserId(warehouse.getCreateUserId());
+        warehouseVo.setUpdateTime(warehouse.getUpdateTime());
+        warehouseVo.setUpdateUserId(warehouse.getUpdateUserId());
+        warehouseVo.setDeleteFlag(warehouse.getDeleteFlag());
+        warehouseVo.setParentId(warehouse.getParentId());
+        warehouseVo.setLongitude(warehouse.getLongitude());
+        warehouseVo.setLatitude(warehouse.getLatitude());
+        warehouseVo.setCountryServeId(warehouse.getCountryServeId());
+        warehouseVo.setDetailedAddress(warehouse.getDetailedAddress());
+        warehouseVo.setStatus(warehouse.getStatus());
+        // 其他字段映射...
+
+        return new RPCBaseResponse<>(200, "SUCCESS", warehouseVo);
+    }
+
 }

+ 5 - 4
edu-travel-service/edu-travel-service-warehouse/src/main/java/edu/travel/warehouse/web/ShopWarehouseController.java

@@ -14,6 +14,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 /**
@@ -56,15 +57,15 @@ public class ShopWarehouseController extends BaseController<ShopWarehouse> imple
      * 库房连表新增
      */
     @PostMapping("/saveAllForm")
-    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity){
-        return shopWarehouseService.saveAllForm(entity);
+    public RPCBaseResponse<ShopWarehouseVo> saveAllForm(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request){
+        return shopWarehouseService.saveAllForm(entity,request);
     }
     /**
      * 库房连表修改
      */
     @PostMapping("/updateWarehouse")
-    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity){
-        return shopWarehouseService.updateWarehouse(entity);
+    public RPCBaseResponse<ShopWarehouseVo> updateWarehouse(@RequestBody ShopWarehouseSaveDto entity, HttpServletRequest request){
+        return shopWarehouseService.updateWarehouse(entity,request);
     }
 
 

+ 1 - 0
pom.xml

@@ -15,6 +15,7 @@
     <module>edu-travel-model</module>
       <module>edu-travel-api</module>
       <module>edu-travel-adapter</module>
+    <module>edu-travel-adapter/edu-travel-adapter-warehouse</module>
   </modules>
   <parent>
     <groupId>org.springframework.boot</groupId>