Răsfoiți Sursa

库存单位、商品规格基础方法,及连表上传

Sakana 2 zile în urmă
părinte
comite
cea1b31892

+ 10 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopParametersRemoteController.java

@@ -0,0 +1,10 @@
+package edu.travel.remote.commodity;
+
+import edu.travel.remote.base.RemoteBaseController;
+import edu.travel.remote.dto.ShopParametersDto;
+import edu.travel.remote.vo.ShopParametersVo;
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient(name="commodity",path = "/shopParameters")
+public interface ShopParametersRemoteController extends RemoteBaseController<ShopParametersVo, ShopParametersDto> {
+}

+ 10 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopUnitRemoteController.java

@@ -0,0 +1,10 @@
+package edu.travel.remote.commodity;
+
+import edu.travel.remote.base.RemoteBaseController;
+import edu.travel.remote.dto.ShopUnitDto;
+import edu.travel.remote.vo.ShopUnitVo;
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient(name="commodity",path = "/shopUnit")
+public interface ShopUnitRemoteController extends RemoteBaseController<ShopUnitVo, ShopUnitDto> {
+}

+ 39 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/ShopParametersDto.java

@@ -0,0 +1,39 @@
+package edu.travel.remote.dto;
+
+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;
+
+/**
+ * 商品参数
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "shop_parameters")
+public class ShopParametersDto extends BaseEntity {
+    /**
+     * 商品参数ID
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 商品参数名称
+     */
+    @TableField(value = "parameters_name")
+    private String parametersName;
+
+    /**
+     * 是否是必须参数 0是 1否
+     */
+    @TableField(value = "is_necessary")
+    private Integer isNecessary;
+
+
+}

+ 65 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/ShopUnitDto.java

@@ -0,0 +1,65 @@
+package edu.travel.remote.dto;
+
+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.po.PagePO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * 计件单位表
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "shop_unit")
+public class ShopUnitDto extends PagePO{
+    /**
+     * 计件单位id
+     */
+    private Long id;
+
+    /**
+     * 单位名
+     */
+    private String unitName;
+
+    /**
+     * 国家id
+     */
+    private Long countryId;
+
+    /**
+     * 项目code
+     */
+    private String project;
+
+    /**
+     * 创建人
+     */
+    private String createUserId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private String updateUserId;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除状态
+     */
+    private Integer deleteFlag;
+}

+ 12 - 1
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/ShopParametersVo.java

@@ -1,9 +1,12 @@
 package edu.travel.remote.vo;
 
+import edu.travel.entity.BaseEntity;
 import lombok.Data;
 
+import java.util.Map;
+
 @Data
-public class ShopParametersVo {
+public class ShopParametersVo extends BaseEntity {
     /**
      * 商品参数ID
      */
@@ -27,4 +30,12 @@ public class ShopParametersVo {
      * 是否是必须参数 0是 1否
      */
     private Integer isNecessary;
+    /**
+     * 国家id
+     */
+    private Long countryId;
+    /**
+     * Map
+     */
+    private Map<String,Object> map;
 }

+ 71 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/ShopUnitVo.java

@@ -0,0 +1,71 @@
+package edu.travel.remote.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.Map;
+
+/**
+ * 计件单位表
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "shop_unit")
+public class ShopUnitVo extends BaseEntity {
+    /**
+     * 计件单位id
+     */
+    private Long id;
+
+    /**
+     * 单位名
+     */
+    private String unitName;
+
+    /**
+     * 国家id
+     */
+    private Long countryId;
+
+    /**
+     * 项目code
+     */
+    private String project;
+
+    /**
+     * 创建人
+     */
+    private String createUserId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private String updateUserId;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除状态
+     */
+    private Integer deleteFlag;
+
+    /**
+     * map
+     */
+    private Map<String,Object> map;
+}

+ 4 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/constant/BaseConstant.java

@@ -25,6 +25,10 @@ public class BaseConstant {
     public static final Integer BASIC_IS_DEFAULT_YES_NO = 1;
 
     /**
+     * 返回数据 code
+     */
+    public static final Integer SUCCESS_CODE = 200;
+    /**
      * 商品文件上传图片类型
      */
     private static final Set<String> PRODUCT_IMAGE_TYPES = new HashSet<>(

+ 1 - 3
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/constant/RedisKey.java

@@ -9,9 +9,7 @@ public interface RedisKey {
    String PRODUCT_HOT_TYPE = BASH +"product:hot:type";
     /**热门二级商品类型*/
    String PRODUCT_TO_HOT_TYPE = BASH +"product:to:hot:type";
-    /**
-     * 加上国家
-     */
+    /**加上国家*/
 
 
     String PRODUCT_ORDER = BASH +"product:order";

+ 5 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopParameters.java

@@ -36,6 +36,11 @@ public class ShopParameters extends BaseEntity {
      */
     @TableField(value = "is_necessary")
     private Integer isNecessary;
+    /**
+     * 国家id
+     */
+    @TableField(value = "country_id")
+    private Long countryId;
 
 
 }

+ 167 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopParametersController.java

@@ -1,15 +1,31 @@
 package edu.travel.commodity.web;
 
+import com.alibaba.nacos.shaded.com.google.common.base.Objects;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.country.CountryAdapter;
+import edu.travel.commodity.constant.BaseConstant;
+import edu.travel.commodity.entity.ShopParameters;
 import edu.travel.commodity.service.ShopParametersService;
+import edu.travel.entity.BaseEntity;
+import edu.travel.remote.commodity.ShopParametersRemoteController;
 import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.dto.ShopParametersDto;
 import edu.travel.resp.BaseResponse;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.remote.vo.ShopParametersVo;
+import edu.travel.vo.BaseCountryServeVo;
+import edu.travel.vo.BaseCountryVo;
+import edu.travel.web.BaseController;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import static edu.travel.rpc.RPCBaseResponse.success;
 
 /**
@@ -19,12 +35,14 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 */
 @RestController
 @RequestMapping("/shopParameters")
-public class ShopParametersController {
+public class ShopParametersController extends BaseController<ShopParameters> implements ShopParametersRemoteController {
 /**
 * 服务对象
 */
     @Autowired
     private ShopParametersService shopParametersService;
+    @Autowired
+    private CountryAdapter countryAdapter;
 
     /**
      *  获取商品参数
@@ -35,4 +53,152 @@ public class ShopParametersController {
     public RPCBaseResponse<Page<ShopParametersVo>> getShopParameters(ProductSpecDto param){
         return success(shopParametersService.getShopParameters(param));
     }
+    /**
+     * 通过id获取商品参数(连表-服务国家)
+     * @param id
+     * @return
+     */
+    @Override
+    @GetMapping("/getFormId")
+    public RPCBaseResponse<ShopParametersVo> getFormId(String id) {
+        RPCBaseResponse<ShopParameters> parametersRPCBaseResponse = super.getId(id);
+        if (!Objects.equal(parametersRPCBaseResponse.getCode(), BaseConstant.SUCCESS_CODE))
+        {
+            return RPCBaseResponse.error(parametersRPCBaseResponse.getMsg());
+        }
+        ShopParameters shopParameters = parametersRPCBaseResponse.getData();
+
+        //提取countryID
+        Long countryId = shopParameters.getCountryId();
+
+        //调用方法获取国家信息
+        RPCBaseResponse<BaseCountryServeVo> countryInfoResponse = countryAdapter.getFormId(countryId.toString());
+        if (!Objects.equal(countryInfoResponse.getCode(), BaseConstant.SUCCESS_CODE))
+        {
+            return RPCBaseResponse.error(countryInfoResponse.getMsg());
+        }
+        BaseCountryServeVo countryInfo = countryInfoResponse.getData();
+        //创建返回对象
+        ShopParametersVo shopParametersVo = new ShopParametersVo();
+        BeanUtils.copyProperties(shopParameters, shopParametersVo);
+        //存入map
+        Map<String, Object> map = new HashMap<>();
+        map.put("countryData", countryInfo);
+        shopParametersVo.setMap(map);
+
+        return RPCBaseResponse.success(shopParametersVo);
+    }
+
+    /**
+     * 更新参数信息
+     * @param entity
+     * @return
+     */
+    @Override
+    @PostMapping("/updateFormId")
+    public RPCBaseResponse<ShopParametersVo> updateTargetFormId(@RequestBody ShopParametersDto entity) {
+        ShopParameters shopParameters = new ShopParameters();
+        BeanUtils.copyProperties(entity, shopParameters);
+        RPCBaseResponse<ShopParameters> countryRPCBaseResponse = super.updateTargetById(shopParameters);
+        RPCBaseResponse<ShopParametersVo> shopParametersVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(countryRPCBaseResponse, shopParametersVoRPCBaseResponse);
+        return shopParametersVoRPCBaseResponse;
+    }
+
+    /**
+     * 新增商品参数信息
+     * @param entity
+     * @return
+     */
+    @Override
+    @PostMapping("/saveFormTarget")
+    public RPCBaseResponse<ShopParametersVo> saveFormTarget(ShopParametersDto entity) {
+        ShopParameters shopParameters = new ShopParameters();
+        BeanUtils.copyProperties(entity, shopParameters);
+        RPCBaseResponse<ShopParameters> countryRPCBaseResponse = super.saveTarget(shopParameters);
+        RPCBaseResponse<ShopParametersVo> shopParametersVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(countryRPCBaseResponse, shopParametersVoRPCBaseResponse);
+        return shopParametersVoRPCBaseResponse;
+    }
+
+    /**
+     * 删除商品参数信息
+     * @param ids
+     * @return
+     */
+    @Override
+    @PostMapping("/deleteTargetFormId")
+    public RPCBaseResponse<ShopParametersVo> deleteTargetFormId(List<String> ids) {
+        RPCBaseResponse<ShopParameters> countryRPCBaseResponse = super.deleteTargetById(ids);
+        RPCBaseResponse<ShopParametersVo> shopParametersVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(countryRPCBaseResponse, shopParametersVoRPCBaseResponse);
+        return shopParametersVoRPCBaseResponse;
+    }
+
+    /**
+     * 获取所有商品参数信息
+     * @return
+     */
+    @Override
+    @GetMapping("/getAllForm")
+    public RPCBaseResponse<List<ShopParametersVo>> getAllForm() {
+        // Step 1: 获取所有 ShopParameters 数据
+        RPCBaseResponse<List<ShopParameters>> countryRPCBaseResponse = super.listAll();
+
+        // Step 2: 创建一个用于存储每个 ShopParametersVo 的映射
+        Map<Long, ShopParametersVo> parametersMap = new HashMap<>();
+        List<ShopParametersVo> result = new ArrayList<>();
+
+        // Step 3: 创建一个 Map,用于存储 countryId 对应的数据
+        Map<Long, BaseCountryVo> countryDataMap = new HashMap<>();
+
+        // Step 4: 将所有 ShopParameters 转换为 ShopParametersVo,并存储在 map 中
+        if (countryRPCBaseResponse.getData() != null) {
+            for (ShopParameters parameters : countryRPCBaseResponse.getData()) {
+                ShopParametersVo parametersVo = new ShopParametersVo();
+                BeanUtils.copyProperties(parameters, parametersVo);
+                parametersMap.put(parameters.getId(), parametersVo);
+
+                // Step 5: 利用 countryId 查找相关数据并存储到 countryDataMap 中
+                if (parameters.getCountryId() != null) {
+                    RPCBaseResponse<BaseCountryServeVo> countryResponse = countryAdapter.getFormId(parameters.getCountryId().toString());
+
+                    // 确保 countryResponse 不为 null,并提取数据
+                    if (countryResponse != null && countryResponse.getData() != null) {
+                        BaseCountryServeVo serveVo = countryResponse.getData();
+                        BaseCountryVo countryData = convertToBaseCountryVo(serveVo); // 进行转换
+                        countryDataMap.put(parameters.getCountryId(), countryData);
+                    }
+                }
+            }
+
+            // Step 6: 将国家数据添加到 ShopParametersVo 中
+            for (ShopParametersVo parametersVo : parametersMap.values()) {
+                if (countryDataMap.containsKey(parametersVo.getCountryId())) {
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("countryData", countryDataMap.get(parametersVo.getCountryId()));
+                    parametersVo.setMap(map);
+                }
+                result.add(parametersVo); // Adding to result list
+            }
+        }
+
+        // Step 7: 创建返回的 RPCBaseResponse
+        RPCBaseResponse<List<ShopParametersVo>> shopParametersVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(countryRPCBaseResponse, shopParametersVoRPCBaseResponse);
+        shopParametersVoRPCBaseResponse.setData(result); // 设置结果数据
+
+        return shopParametersVoRPCBaseResponse;
+    }
+
+    // 实现 BaseCountryServeVo 到 BaseCountryVo 的转换方法
+    private BaseCountryVo convertToBaseCountryVo(BaseCountryServeVo serveVo) {
+        BaseCountryVo countryVo = new BaseCountryVo();
+        countryVo.setId(serveVo.getId());
+        countryVo.setCountryNameZh(serveVo.getCountryNameZh());
+        countryVo.setCountryNameEn(serveVo.getCountryNameEn());
+        countryVo.setAreaCode(serveVo.getAreaCode());
+        return countryVo;
+    }
+
 }

+ 122 - 2
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopUnitController.java

@@ -1,17 +1,137 @@
 package edu.travel.commodity.web;
+import edu.travel.adapter.service.country.CountryAdapter;
+import edu.travel.commodity.constant.BaseConstant;
 import edu.travel.commodity.entity.ShopUnit;
+import edu.travel.remote.commodity.ShopUnitRemoteController;
+import edu.travel.remote.dto.ShopUnitDto;
+import edu.travel.remote.vo.ShopUnitVo;
+import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.vo.BaseCountryServeVo;
+import edu.travel.vo.BaseCountryVo;
+import edu.travel.web.BaseController;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
 /**
 * 计件单位表(shop_unit)表控制层
 *
 * @author xxxxx
 */
 @RestController
-@RequestMapping("/shop_unit")
-public class ShopUnitController {
+@RequestMapping("/shopUnit")
+public class ShopUnitController extends BaseController<ShopUnit> implements ShopUnitRemoteController {
+    @Autowired
+    private CountryAdapter countryAdapter;
+    /**
+     * 通过id查找货币单位
+     * @param id
+     * @return
+     */
+    @Override
+    @GetMapping("/getFormId")
+    public RPCBaseResponse<ShopUnitVo> getFormId(String id) {
+        // Step 1: 获取 ShopUnit 数据
+        RPCBaseResponse<ShopUnit> shopUnitRPCBaseResponse = super.getId(id);
+
+        // Step 2: 检查响应是否成功
+        if (!Objects.equals(shopUnitRPCBaseResponse.getCode(), BaseConstant.SUCCESS_CODE)) {
+            return RPCBaseResponse.error(shopUnitRPCBaseResponse.getMsg());
+        }
+
+        // 获取 ShopUnit 对象
+        ShopUnit shopUnit = shopUnitRPCBaseResponse.getData();
+
+        // Step 3: 提取 countryId
+        Long countryId = shopUnit.getCountryId();
+
+        // Step 4: 调用 countryAdapter 获取国家信息
+        RPCBaseResponse<BaseCountryServeVo> countryInfoResponse = countryAdapter.getFormId(countryId.toString());
+
+        // Step 5: 检查国家信息的响应
+        if (!Objects.equals(countryInfoResponse.getCode(), BaseConstant.SUCCESS_CODE)) {
+            return RPCBaseResponse.error(countryInfoResponse.getMsg());
+        }
+
+        // 获取国家信息
+        BaseCountryServeVo countryInfo = countryInfoResponse.getData();
+
+        // Step 6: 创建 ShopUnitVo 对象
+        ShopUnitVo shopUnitVo = new ShopUnitVo();
+        BeanUtils.copyProperties(shopUnit, shopUnitVo);
+
+        // Step 7: 将国家信息放入 map 中
+        Map<String, Object> map = new HashMap<>();
+        map.put("countryInfo", countryInfo);
+        shopUnitVo.setMap(map);
+
+        // Step 8: 返回成功的响应
+        return RPCBaseResponse.success(shopUnitVo);
+    }
+
+
+    /**
+     * 更新货币单位
+     * @param entity
+     * @return
+     */
+    @Override
+    @PostMapping("/updateTargetFormId")
+    public RPCBaseResponse<ShopUnitVo> updateTargetFormId(ShopUnitDto entity) {
+        ShopUnit shopUnit = new ShopUnit();
+        BeanUtils.copyProperties(entity, shopUnit);
+        RPCBaseResponse<ShopUnit> shopUnitRPCBaseResponse = super.updateTargetById(shopUnit);
+        RPCBaseResponse<ShopUnitVo> shopUnitVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(shopUnitRPCBaseResponse, shopUnitVoRPCBaseResponse);
+        return shopUnitVoRPCBaseResponse;
+    }
+
+    /**
+     * 新增货币单位
+     * @param entity
+     * @return
+     */
+    @Override
+    @PostMapping("/saveFormTarget")
+    public RPCBaseResponse<ShopUnitVo> saveFormTarget(ShopUnitDto entity) {
+        ShopUnit shopUnit = new ShopUnit();
+        BeanUtils.copyProperties(entity, shopUnit);
+        RPCBaseResponse<ShopUnit> shopUnitRPCBaseResponse = super.saveTarget(shopUnit);
+        RPCBaseResponse<ShopUnitVo> shopUnitVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(shopUnitRPCBaseResponse, shopUnitVoRPCBaseResponse);
+        return shopUnitVoRPCBaseResponse;
+    }
 
+    /**
+     * 删除货币单位
+     * @param ids
+     * @return
+     */
+    @Override
+    @PostMapping("/deleteFormTarget")
+    public RPCBaseResponse<ShopUnitVo> deleteTargetFormId(List<String> ids) {
+        RPCBaseResponse<ShopUnit> shopUnitRPCBaseResponse = super.deleteTargetById(ids);
+        RPCBaseResponse<ShopUnitVo> shopUnitVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(shopUnitRPCBaseResponse, shopUnitVoRPCBaseResponse);
+        return shopUnitVoRPCBaseResponse;
+    }
 
+    /**
+     * 获取所有货币单位
+     * @return
+     */
+    @Override
+    @GetMapping("/getAllForm")
+    public RPCBaseResponse<List<ShopUnitVo>> getAllForm() {
+        RPCBaseResponse<List<ShopUnit>> shopUnitRPCBaseResponse = super.listAll();
+        RPCBaseResponse<List<ShopUnitVo>> shopUnitVoRPCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(shopUnitRPCBaseResponse, shopUnitVoRPCBaseResponse);
+        return shopUnitVoRPCBaseResponse;
+    }
 }