Browse Source

Merge remote-tracking branch 'origin/main'

1 month ago
parent
commit
0ec4a8b038
35 changed files with 820 additions and 33 deletions
  1. 2 2
      edu-travel-model/edu-travel-model-base/src/main/java/edu/travel/po/PagePO.java
  2. 20 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/dto/AddShopCartDto.java
  3. 45 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/dto/UpdateAddressDto.java
  4. 0 6
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopParameters.java
  5. 11 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopProductSku.java
  6. 5 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopShoppingCart.java
  7. 8 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopAddressService.java
  8. 5 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopParametersService.java
  9. 8 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductSkuService.java
  10. 1 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductSpecService.java
  11. 8 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopShoppingCartService.java
  12. 64 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopAddressServiceImpl.java
  13. 43 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopParametersServiceImpl.java
  14. 0 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductServiceImpl.java
  15. 81 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSkuServiceImpl.java
  16. 70 9
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSpecServiceImpl.java
  17. 94 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopShoppingCartServiceImpl.java
  18. 22 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/utils/PageUtil.java
  19. 16 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/utils/TokenData.java
  20. 54 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ProductSkuVo.java
  21. 30 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ProductSpecVo.java
  22. 47 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ShopAddressVo.java
  23. 60 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ShopCartListVo.java
  24. 30 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ShopParametersVo.java
  25. 16 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/SpecValueVo.java
  26. 1 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/BaseCountryController.java
  27. 0 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/BaseCountryServeController.java
  28. 30 2
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopAddressController.java
  29. 13 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopParametersController.java
  30. 1 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSkuController.java
  31. 2 3
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSpecController.java
  32. 27 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopShoppingCartController.java
  33. 1 2
      edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopParametersMapper.xml
  34. 3 1
      edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopProductSkuMapper.xml
  35. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopShoppingCartMapper.xml

+ 2 - 2
edu-travel-model/edu-travel-model-base/src/main/java/edu/travel/po/PagePO.java

@@ -4,9 +4,9 @@ import lombok.Data;
 
 @Data
 public class PagePO extends BasePO{
-    private Integer currentPage;
+    private Integer currentPage = 1;
 
-    private Integer pageSize;
+    private Integer pageSize = 10;
 
     private Integer total;
 

+ 20 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/dto/AddShopCartDto.java

@@ -0,0 +1,20 @@
+package edu.travel.commodity.dto;
+
+import lombok.Data;
+
+@Data
+public class AddShopCartDto {
+    /**
+     * 产品ID
+     */
+    private String productId;
+
+    /**
+     * sku ID
+     */
+    private String skuId;
+    /**
+     * 数量
+     */
+    private Integer quantity;
+}

+ 45 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/dto/UpdateAddressDto.java

@@ -0,0 +1,45 @@
+package edu.travel.commodity.dto;
+
+import lombok.Data;
+
+@Data
+public class UpdateAddressDto{
+    /**地址ID*/
+    private String id;
+
+    /**
+     * 国家id
+     */
+    private String countryId;
+
+    /**
+     * 经度
+     */
+    private String longitude;
+
+    /**
+     * 维度
+     */
+    private String latitude;
+
+    /**
+     * 收货人名称
+     */
+    private String recipientName;
+
+    /**
+     * 收货人电话
+     */
+    private String phone;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+
+    /**
+     * 是否默认地址 0是 1否
+     */
+    private Integer isDefault;
+
+}

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

@@ -26,12 +26,6 @@ public class ShopParameters extends BaseEntity {
     private Long id;
 
     /**
-     * 商品id
-     */
-    @TableField(value = "product_id")
-    private Long productId;
-
-    /**
      * 商品参数名称
      */
     @TableField(value = "parameters_name")

+ 11 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopProductSku.java

@@ -68,5 +68,16 @@ public class ShopProductSku extends BaseEntity {
     @TableField(value = "price")
     private BigDecimal price;
 
+    /**
+     * 商品SKU图片
+     */
+    @TableField(value = "image_url")
+    private String imageUrl;
+    /**
+     * 销量
+     */
+    @TableField(value = "sales_volume")
+    private Integer salesVolume;
+
 
 }

+ 5 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopShoppingCart.java

@@ -43,5 +43,9 @@ public class ShopShoppingCart extends BaseEntity {
     @TableField(value = "quantity")
     private Integer quantity;
 
-
+    /**
+     * 产品sku_ID
+     */
+    @TableField(value = "product_id")
+    private Long productId;
 }

+ 8 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopAddressService.java

@@ -1,8 +1,16 @@
 package edu.travel.commodity.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.commodity.dto.BaseDto;
+import edu.travel.commodity.dto.UpdateAddressDto;
 import edu.travel.commodity.entity.ShopAddress;
 import com.baomidou.mybatisplus.extension.service.IService;
+import edu.travel.commodity.vo.ShopAddressVo;
+
 public interface ShopAddressService extends IService<ShopAddress>{
 
 
+    Page<ShopAddressVo> getShopAddress(BaseDto dto);
+
+    boolean updateAddressById(UpdateAddressDto param);
 }

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

@@ -1,8 +1,13 @@
 package edu.travel.commodity.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.commodity.dto.ProductSpecDto;
 import edu.travel.commodity.entity.ShopParameters;
 import com.baomidou.mybatisplus.extension.service.IService;
+import edu.travel.commodity.vo.ShopParametersVo;
+
 public interface ShopParametersService extends IService<ShopParameters>{
 
 
+    Page<ShopParametersVo> getShopParameters(ProductSpecDto param);
 }

+ 8 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductSkuService.java

@@ -2,7 +2,15 @@ package edu.travel.commodity.service;
 
 import edu.travel.commodity.entity.ShopProductSku;
 import com.baomidou.mybatisplus.extension.service.IService;
+import edu.travel.commodity.vo.SpecValueVo;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 public interface ShopProductSkuService extends IService<ShopProductSku>{
 
+    Map<String,List<SpecValueVo>> getSkuValuesById(Set<String> skuId);
 
+    Map<String,List<SpecValueVo>> getShopProductSkuId(Set<String> shopProductSkuId);
 }

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

@@ -10,5 +10,5 @@ import java.util.List;
 public interface ShopProductSpecService extends IService<ShopProductSpec>{
 
 
-    List<ProductSpecVo> getShopSpec(ProductSpecDto param);
+    ProductSpecVo getShopSpec(ProductSpecDto param);
 }

+ 8 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopShoppingCartService.java

@@ -1,8 +1,16 @@
 package edu.travel.commodity.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.commodity.dto.AddShopCartDto;
+import edu.travel.commodity.dto.BaseDto;
 import edu.travel.commodity.entity.ShopShoppingCart;
 import com.baomidou.mybatisplus.extension.service.IService;
+import edu.travel.commodity.vo.ShopCartListVo;
+
 public interface ShopShoppingCartService extends IService<ShopShoppingCart>{
 
 
+    Boolean addShopCart(AddShopCartDto params);
+
+    Page<ShopCartListVo> getShopCartList(BaseDto params);
 }

+ 64 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopAddressServiceImpl.java

@@ -1,12 +1,76 @@
 package edu.travel.commodity.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import edu.travel.commodity.dto.BaseDto;
+import edu.travel.commodity.dto.UpdateAddressDto;
+import edu.travel.commodity.entity.BaseCountry;
 import edu.travel.commodity.entity.ShopAddress;
 import edu.travel.commodity.mapper.ShopAddressMapper;
+import edu.travel.commodity.service.BaseCountryService;
 import edu.travel.commodity.service.ShopAddressService;
+import edu.travel.commodity.utils.PageUtil;
+import edu.travel.commodity.utils.TokenData;
+import edu.travel.commodity.vo.ShopAddressVo;
+import edu.travel.exception.BaseException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+
 @Service
 public class ShopAddressServiceImpl extends ServiceImpl<ShopAddressMapper, ShopAddress> implements ShopAddressService {
+    @Autowired
+    private BaseCountryService baseCountryService;
+    @Override
+    public Page<ShopAddressVo> getShopAddress(BaseDto dto) {
+        //当前登录对象
+        Page<ShopAddress> page = lambdaQuery().eq(ShopAddress::getCountryId, dto.getCountryId())
+                .eq(ShopAddress::getUserId, TokenData.getUserId())
+                .orderByAsc(ShopAddress::getIsDefault)
+                .page(new Page<ShopAddress>(dto.getCurrentPage(), dto.getPageSize()));
+        //page对象转换.
+        return PageUtil.toPageEntity(page, ShopAddressVo.class);
+    }
 
+    @Override
+    public boolean updateAddressById(UpdateAddressDto param) {
+        if(!ObjectUtil.isEmpty(param.getCountryId())){
+            BaseCountry byId = baseCountryService.getById(param.getCountryId());
+            if(byId==null){
+                throw new BaseException("国家不存在");
+            }
+        }
+        LambdaQueryWrapper<ShopAddress> query = Wrappers.<ShopAddress>lambdaQuery().eq(ShopAddress::getId, param.getId())
+                .eq(ShopAddress::getUserId, TokenData.getUserId());
+        ShopAddress one = getOne(query);
+        if(one==null){//新增
+            ShopAddress bean = BeanUtil.toBean(param, ShopAddress.class);
+            return save(bean);
+        }
+        if(!ObjectUtil.isEmpty(param.getCountryId())){
+            //修改国家ID
+            one.setCountryId(Long.valueOf(param.getCountryId()));
+        }
+        if(!ObjectUtil.isEmpty(param.getRecipientName())){
+            //修改收货人名称
+            one.setRecipientName(param.getRecipientName());
+        }
+        if(!ObjectUtil.isEmpty(param.getPhone())){
+            //修改收货人手机号
+            one.setPhone(param.getPhone());
+        }
+        if(!ObjectUtil.isEmpty(param.getDetailedAddress())){
+            //修改详细地址
+            one.setDetailedAddress(param.getDetailedAddress());
+        }
+        if(!ObjectUtil.isEmpty(param.getIsDefault())){
+            //修改详细地址
+            one.setIsDefault(param.getIsDefault());
+        }
+        return updateById(one);
+    }
 }

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

@@ -1,12 +1,54 @@
 package edu.travel.commodity.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import edu.travel.commodity.dto.ProductSpecDto;
 import edu.travel.commodity.entity.ShopParameters;
+import edu.travel.commodity.entity.ShopProductParameters;
 import edu.travel.commodity.mapper.ShopParametersMapper;
 import edu.travel.commodity.service.ShopParametersService;
+import edu.travel.commodity.service.ShopProductParametersService;
+import edu.travel.commodity.utils.PageUtil;
+import edu.travel.commodity.vo.ShopParametersVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
 @Service
 public class ShopParametersServiceImpl extends ServiceImpl<ShopParametersMapper, ShopParameters> implements ShopParametersService {
-
+    @Autowired
+    private ShopProductParametersService shopProductParametersService;
+    @Override
+    public Page<ShopParametersVo> getShopParameters(ProductSpecDto param) {
+        Page<ShopProductParameters> page = shopProductParametersService.lambdaQuery().eq(ShopProductParameters::getProductId, param.getProductId())
+                .page(new Page<>(param.getCurrentPage(), param.getPageSize()));
+        //分页获取参数值和参数ID
+        Page<ShopParametersVo> pageEntity = PageUtil.toPageEntity(page, ShopParametersVo.class);
+        List<ShopParametersVo> list = pageEntity.getRecords();
+        if(ObjectUtil.isEmpty(list)){
+            return pageEntity;
+        }
+        //参数IDS
+        Set<String> collect = list.stream().map(ShopParametersVo::getParametersId).collect(Collectors.toSet());
+        //参数值
+        List<ShopParameters> parameters = lambdaQuery().in(ShopParameters::getId, collect).list();
+        HashMap<String, ShopParameters> map = new HashMap<>();
+        for (ShopParameters parameter : parameters) {
+            map.put(parameter.getId().toString(), parameter);
+        }
+        //封装返回结果
+        for (ShopParametersVo shopParametersVo : list) {
+            ShopParameters shopParameters = map.get(shopParametersVo.getParametersId());
+            if(!ObjectUtil.isNotEmpty(shopParameters)){
+                shopParametersVo.setParametersName(shopParameters.getParametersName());
+                shopParametersVo.setIsNecessary(shopParameters.getIsNecessary());
+            }
+        }
+        return pageEntity;
+    }
 }

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

@@ -21,7 +21,6 @@ public class ShopProductServiceImpl extends ServiceImpl<ShopProductMapper, ShopP
                 .eq(ShopProduct::getStatus, BaseConstant.BASIC_STATUS_NO_NUM)
                 .eq(ShopProduct::getCountryId, type.getCountryId())
                 .orderByDesc(ShopProduct::getHeatValue).list();
-
         return BeanUtil.copyToList(list, ShopProductVo.class);
     }
 }

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

@@ -2,11 +2,92 @@ package edu.travel.commodity.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import edu.travel.commodity.entity.ShopProductSku;
+import edu.travel.commodity.entity.ShopSkuSpecValue;
+import edu.travel.commodity.entity.ShopSpec;
+import edu.travel.commodity.entity.ShopSpecValue;
 import edu.travel.commodity.mapper.ShopProductSkuMapper;
 import edu.travel.commodity.service.ShopProductSkuService;
+import edu.travel.commodity.service.ShopSkuSpecValueService;
+import edu.travel.commodity.service.ShopSpecService;
+import edu.travel.commodity.service.ShopSpecValueService;
+import edu.travel.commodity.vo.SpecValueVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 @Service
 public class ShopProductSkuServiceImpl extends ServiceImpl<ShopProductSkuMapper, ShopProductSku> implements ShopProductSkuService {
 
+    @Autowired
+    private ShopProductSkuService shopProductSkuService;
+    @Autowired
+    private ShopSkuSpecValueService shopSkuSpecValueService;
+    @Autowired
+    private ShopSpecValueService shopSpecValueService;
+    @Autowired
+    private ShopSpecService shopSpecService;
+    @Override
+    public Map<String,List<SpecValueVo>> getSkuValuesById(Set<String> skuId) {
+        List<ShopSkuSpecValue> shopSkuSpecValues = shopSkuSpecValueService.listByIds(skuId);
+        //规格值ID
+        Set<Long> collect1 = shopSkuSpecValues.stream().map(ShopSkuSpecValue::getSpecValueId).collect(Collectors.toSet());
+        //规格值对象
+        List<ShopSpecValue> shopSpecValues = shopSpecValueService.listByIds(collect1);
+        //规格ID
+        Set<Long> collect2 = shopSpecValues.stream().map(ShopSpecValue::getSpecId).collect(Collectors.toSet());
+        //规格对象
+        List<ShopSpec> shopSpecs = shopSpecService.listByIds(collect2);
+        HashMap<String, ShopSpec> specs = new HashMap<>();
+        for (ShopSpec shopSpec : shopSpecs) {
+            specs.put(shopSpec.getId().toString(),shopSpec);
+        }
+        HashMap<String, List<SpecValueVo>> map = new HashMap<>();
+        for (String s : skuId) {
+            ArrayList<SpecValueVo> list = new ArrayList<>();
+            //当前sku拥有的规格值Ids
+            List<String> collect = shopSkuSpecValues.stream().filter(item -> item.getSkuId().toString().equals(s)).map(item -> item.getSpecValueId().toString()).collect(Collectors.toList());
+            List<ShopSpecValue> collect3 = shopSpecValues.stream().filter(item -> collect.contains(item.getId().toString())).collect(Collectors.toList());
+            for (ShopSpecValue string : collect3) {
+                SpecValueVo specValueVo = new SpecValueVo();
+                specValueVo.setValueId(string.getId().toString());
+                specValueVo.setValue(string.getSpecValue());
+                specValueVo.setKeyId(string.getSpecId().toString());
+                ShopSpec shopSpec1 = specs.get(string.getSpecId().toString());
+                specValueVo.setKey(shopSpec1.getSpecName());
+                list.add(specValueVo);
+            }
+            map.put(s,list);
+        }
+        return map;
+    }
+
+    /**
+     *  商品和sku关联表ID  ->sku详情
+     * @param shopProductSkuIds 商品和sku关联表ID
+     * @return {@link Map }<{@link String },{@link SpecValueVo }>
+     */
+    @Override
+    public Map<String,List<SpecValueVo>> getShopProductSkuId(Set<String> shopProductSkuIds) {
+        List<ShopProductSku> shopProductSkus = shopProductSkuService.listByIds(shopProductSkuIds);
+        //sku ids
+        Set<String> collect = shopProductSkus.stream().map(item->item.getSkuId().toString()).collect(Collectors.toSet());
+        //shopProductSkuIds ->sku
+        HashMap<String, String> stringStringHashMap = new HashMap<>();
+        for (ShopProductSku productSkus : shopProductSkus) {
+            stringStringHashMap.put(productSkus.getId().toString(),productSkus.getSkuId().toString());
+        }
+
+        Map<String, List<SpecValueVo>> map = getSkuValuesById(collect);
+
+        HashMap<String, List<SpecValueVo>> result = new HashMap<>();
+        for (String shopProductSkuId : shopProductSkuIds) {
+            String skuId = stringStringHashMap.get(shopProductSkuId);
+            List<SpecValueVo> specValueVos = map.get(skuId);
+            result.put(shopProductSkuId,specValueVos);
+        }
+
+        return result;
+    }
 }

+ 70 - 9
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSpecServiceImpl.java

@@ -1,31 +1,92 @@
 package edu.travel.commodity.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import edu.travel.commodity.constant.BaseConstant;
 import edu.travel.commodity.dto.ProductSpecDto;
-import edu.travel.commodity.entity.ShopProduct;
-import edu.travel.commodity.entity.ShopProductSpec;
+import edu.travel.commodity.entity.*;
 import edu.travel.commodity.mapper.ShopProductSpecMapper;
-import edu.travel.commodity.service.ShopProductService;
-import edu.travel.commodity.service.ShopProductSpecService;
+import edu.travel.commodity.service.*;
+import edu.travel.commodity.vo.ProductSkuVo;
 import edu.travel.commodity.vo.ProductSpecVo;
+import edu.travel.commodity.vo.SpecValueVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class ShopProductSpecServiceImpl extends ServiceImpl<ShopProductSpecMapper, ShopProductSpec> implements ShopProductSpecService {
     @Autowired
     private ShopProductService shopProductService;
+    @Autowired
+    private ShopSpecValueService shopSpecValueService;
+    @Autowired
+    private ShopProductSkuService shopProductSkuService;
+    @Autowired
+    private ShopSkuSpecValueService shopSkuSpecValueService;
+    @Autowired
+    private ShopSpecService shopSpecService;
 
     @Override
-    public List<ProductSpecVo> getShopSpec(ProductSpecDto param) {
-
-        shopProductService.lambdaQuery().eq(ShopProduct::getId, param.getProductId())
+    public ProductSpecVo getShopSpec(ProductSpecDto param) {
+        LambdaQueryChainWrapper<ShopProduct> query = shopProductService.lambdaQuery().eq(ShopProduct::getId, param.getProductId())
                 .eq(ShopProduct::getCountryId, param.getCountryId());
+        ShopProduct one = shopProductService.getOne(query);
+        if(ObjectUtil.isEmpty(one)){
+            return null;
+        }
+        List<ShopProductSku> list1 = shopProductSkuService.list(Wrappers.<ShopProductSku>lambdaQuery()
+                .eq(ShopProductSku::getStatus, BaseConstant.BASIC_STATUS_NO_NUM)
+                .eq(ShopProductSku::getProductId, one.getId()));
+
+        if(ObjectUtil.isEmpty(list1)){
+            return null;
+        }
+        ProductSpecVo bean = BeanUtil.toBean(one, ProductSpecVo.class);
+        Set<Long> skus = list1.stream().map(ShopProductSku::getSkuId).collect(Collectors.toSet());
+        //规格和规格对应的值
+        List<ShopSkuSpecValue> skuValues = shopSkuSpecValueService.lambdaQuery().eq(ShopSkuSpecValue::getSkuId, skus).list();
+        //规格值ID
+        Set<Long> collect = skuValues.stream().map(ShopSkuSpecValue::getSpecValueId).collect(Collectors.toSet());
+        List<ShopSpecValue> list2 = shopSpecValueService.list(Wrappers.<ShopSpecValue>lambdaQuery().in(ShopSpecValue::getId, collect));
+
+        //规格ID
+        Set<Long> collect3 = list2.stream().map(ShopSpecValue::getSpecId).collect(Collectors.toSet());
+        Map<String, ShopSpec> specs = new HashMap<>();
+        List<ShopSpec> list = shopSpecService.lambdaQuery().in(ShopSpec::getId, collect3).list();
+
+        for (ShopSpec spec : list) {
+            specs.put(spec.getId().toString(), spec);
+        }
 
+        Set<Long> skuIds = skuValues.stream().map(ShopSkuSpecValue::getSkuId).collect(Collectors.toSet());
+        //SKU -> ShopSpecValue
+        ArrayList<ProductSkuVo> productSkuVos = new ArrayList<>();
+        for (Long skuId : skuIds) {
+            List<Long> collect2 = skuValues.stream().filter(item -> item.getSkuId().equals(skuId)).map(ShopSkuSpecValue::getSpecValueId).collect(Collectors.toList());
+            List<ShopSpecValue> collect1 = list2.stream().filter(item -> collect2.contains(item.getId())).collect(Collectors.toList());
 
+            ProductSkuVo productSkuVo = new ProductSkuVo();
+            List<SpecValueVo> specValueVos = new ArrayList<>();
+            for (ShopSpecValue shopSpecValue : collect1) {
+                SpecValueVo specValueVo = new SpecValueVo();
+                ShopSpec shopSpec = specs.get(shopSpecValue.getSpecId().toString());
+                specValueVo.setKeyId(shopSpecValue.getSpecId().toString());
+                specValueVo.setKey(shopSpec.getSpecName());
+                specValueVo.setValueId(shopSpecValue.getId().toString());
+                specValueVo.setValue(shopSpecValue.getSpecValue());
+                specValueVos.add(specValueVo);
+            }
+            productSkuVo.setSpecValue(specValueVos);
+            productSkuVos.add(productSkuVo);
+        }
+        bean.setSkuList(productSkuVos);
 
-        return null;
+        return bean;
     }
 }

+ 94 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopShoppingCartServiceImpl.java

@@ -1,12 +1,106 @@
 package edu.travel.commodity.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import edu.travel.commodity.constant.BaseConstant;
+import edu.travel.commodity.dto.AddShopCartDto;
+import edu.travel.commodity.dto.BaseDto;
+import edu.travel.commodity.entity.ShopProduct;
+import edu.travel.commodity.entity.ShopProductSku;
 import edu.travel.commodity.entity.ShopShoppingCart;
 import edu.travel.commodity.mapper.ShopShoppingCartMapper;
+import edu.travel.commodity.service.ShopProductService;
+import edu.travel.commodity.service.ShopProductSkuService;
 import edu.travel.commodity.service.ShopShoppingCartService;
+import edu.travel.commodity.utils.PageUtil;
+import edu.travel.commodity.utils.TokenData;
+import edu.travel.commodity.vo.ShopCartListVo;
+import edu.travel.commodity.vo.SpecValueVo;
+import edu.travel.exception.BaseException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 @Service
 public class ShopShoppingCartServiceImpl extends ServiceImpl<ShopShoppingCartMapper, ShopShoppingCart> implements ShopShoppingCartService {
+    @Autowired
+    private ShopProductSkuService shopProductSkuService;
+    @Autowired
+    private ShopProductService shopProductService;
+
+    @Override
+    public Boolean addShopCart(AddShopCartDto params) {
+        // 获取用户id
+        String userId = TokenData.getUserId();
+        ShopProduct byId = shopProductService.getById(params.getProductId());
+        LambdaQueryWrapper<ShopProductSku> query = Wrappers.<ShopProductSku>lambdaQuery().eq(ShopProductSku::getProductId, params.getProductId())
+                .eq(ShopProductSku::getSkuId, params.getSkuId());
+        ShopProductSku one = shopProductSkuService.getOne(query);
+        if(byId==null||byId.getStatus().equals(BaseConstant.BASIC_STATUS_YES_NUM)||one==null){
+            throw new BaseException("商品已经下架");
+        }
+
+        ShopShoppingCart shopShoppingCart = new ShopShoppingCart();
+        shopShoppingCart.setProductSkuId(one.getId());
+        shopShoppingCart.setUserId(Long.valueOf(userId));
+        shopShoppingCart.setQuantity(params.getQuantity());
+        return save(shopShoppingCart);
+    }
+
+    @Override
+    public Page<ShopCartListVo> getShopCartList(BaseDto params) {
+        String userId = TokenData.getUserId();
+        LambdaQueryWrapper<ShopShoppingCart> query = Wrappers.<ShopShoppingCart>lambdaQuery()
+                .eq(ShopShoppingCart::getUserId, userId).orderByDesc(ShopShoppingCart::getCreateTime);
+
+        Page<ShopShoppingCart> page = this.page(new Page<ShopShoppingCart>(params.getCurrentPage(), params.getPageSize()), query);
+        //转换为结果集
+        Page<ShopCartListVo> pageEntity = PageUtil.toPageEntity(page, ShopCartListVo.class);
+        List<ShopCartListVo> records = pageEntity.getRecords();
+        if(ObjectUtil.isEmpty(records)){
+            return pageEntity;
+        }
+        // 商品ID
+        Set<String> collect = records.stream().map(ShopCartListVo::getProductId).collect(Collectors.toSet());
+        List<ShopProduct> shopProducts = shopProductService.listByIds(collect);
+        HashMap<String, ShopProduct> map = new HashMap<>();
+        for (ShopProduct shopProduct : shopProducts) {
+            map.put(shopProduct.getId().toString(), shopProduct);
+        }
+        //商品和sku关联表的id
+        Set<String> productToSkus = records.stream().map(ShopCartListVo::getProductSkuId).collect(Collectors.toSet());
+
+        List<ShopProductSku> shopProductSkus = shopProductSkuService.listByIds(productToSkus);
+        HashMap<String, ShopProductSku> productSkuMap = new HashMap<>();
+        for (ShopProductSku shopProduct : shopProductSkus) {
+            productSkuMap.put(shopProduct.getId().toString(), shopProduct);
+        }
+        Set<String> collect1 = records.stream().map(ShopCartListVo::getProductSkuId).collect(Collectors.toSet());
+        Map<String, List<SpecValueVo>> shopProductSkuId = shopProductSkuService.getShopProductSkuId(collect1);
+
+        //封装结果集
+        for (ShopCartListVo record : records) {
+            ShopProduct shopProduct = map.get(record.getProductId());
+            if(!ObjectUtil.isNotEmpty(shopProduct)){
+                record.setProductName(shopProduct.getProductName());
+                record.setDescription(shopProduct.getDescription());
+                ShopProductSku shopProductSku = productSkuMap.get(record.getProductSkuId());
+                if(!ObjectUtil.isNotEmpty(shopProductSku)){
+                    record.setSkuImage(shopProductSku.getImageUrl());
+                    record.setSalesVolume(shopProductSku.getSalesVolume());
+                    record.setPrice(shopProductSku.getPrice());
+                }
+                String productSkuId = record.getProductSkuId();
+                record.setSpecValue(shopProductSkuId.get(productSkuId));
+            }
+        }
+        return pageEntity;
+    }
+
 
 }

+ 22 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/utils/PageUtil.java

@@ -0,0 +1,22 @@
+package edu.travel.commodity.utils;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.BeanUtils;
+
+public class PageUtil{
+
+    /**
+     * Page类型entity转换
+     * @param source
+     * @param type
+     * @return
+     */
+    public static <T,E> Page<E> toPageEntity(Page<T> source, Class<E> type) {
+        Page<E> target = new Page<E>();
+        BeanUtils.copyProperties(source, target);
+        target.setRecords(BeanUtil.copyToList(source.getRecords(), type));
+        return target;
+    }
+
+}

+ 16 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/utils/TokenData.java

@@ -0,0 +1,16 @@
+package edu.travel.commodity.utils;
+
+import edu.travel.entity.EduTenantPO;
+import org.springframework.security.core.context.SecurityContextHolder;
+
+public class TokenData {
+
+    /**
+     *  获取用户ID
+     * @return {@link String }
+     */
+    public static String getUserId(){
+        EduTenantPO principal =(EduTenantPO) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+        return principal.getId().toString();
+    }
+}

+ 54 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ProductSkuVo.java

@@ -0,0 +1,54 @@
+package edu.travel.commodity.vo;
+
+
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+@Data
+public class ProductSkuVo {
+    /**
+     * SKU ID
+     */
+    private String skuId;
+    /**
+     * 商品ID
+     */
+    private String productId;
+    /**
+     * 商品名称
+     */
+    private String productName;
+
+    /**
+     * 商品描述
+     */
+    private String description;
+
+    /**
+     * SKU商品图片
+     */
+    private String skuImage;
+
+    /**
+     * 销量
+     */
+    private Integer salesVolume;
+    /**
+     * 价格
+     */
+    private BigDecimal defaultPrice;
+
+    /**
+     * 库存
+     */
+    private Integer inventory;
+
+    /**
+     * 规格值
+     */
+    private List<SpecValueVo> specValue;
+}

+ 30 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ProductSpecVo.java

@@ -1,7 +1,37 @@
 package edu.travel.commodity.vo;
 
+
+
 import lombok.Data;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 @Data
 public class ProductSpecVo {
+
+    /**
+     * 商品ID
+     */
+    private String  id;
+
+    /**
+     * 商品名称
+     */
+    private String productName;
+    /**
+     * 列表展示图片
+     */
+    private List<String> images;
+
+    /**
+     * 商品描述
+     */
+    private String description;
+
+    /**默认价格*/
+    private BigDecimal defaultPrice;
+
+    /**商品对应的规格值*/
+    private List<ProductSkuVo> skuList;
 }

+ 47 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ShopAddressVo.java

@@ -0,0 +1,47 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+@Data
+public class ShopAddressVo {
+    /**
+     * 收货地址ID
+     */
+    private String id;
+
+
+    /**
+     * 国家id
+     */
+    private String countryId;
+
+    /**
+     * 经度
+     */
+    private String longitude;
+
+    /**
+     * 维度
+     */
+    private String latitude;
+
+    /**
+     * 收货人名称
+     */
+    private String recipientName;
+
+    /**
+     * 收货人电话
+     */
+    private String phone;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+
+    /**
+     * 是否默认地址 0是 1否
+     */
+    private Integer isDefault;
+}

+ 60 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ShopCartListVo.java

@@ -0,0 +1,60 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class ShopCartListVo {
+    /**
+     * '购物车表ID'
+     */
+    private String id;
+    /**
+     * SKU ID
+     */
+    private String skuId;
+    /**
+     * 商品ID
+     */
+    private String productId;
+
+    /**产品sku_ID*/
+    private String productSkuId;
+
+    /**
+     * 商品名称
+     */
+    private String productName;
+
+    /**
+     * 商品描述
+     */
+    private String description;
+
+    /**
+     * SKU商品图片
+     */
+    private String skuImage;
+
+    /**
+     * 销量
+     */
+    private Integer salesVolume;
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 规格值
+     */
+    private List<SpecValueVo> specValue;
+
+}

+ 30 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ShopParametersVo.java

@@ -0,0 +1,30 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+@Data
+public class ShopParametersVo {
+    /**
+     * 商品参数ID
+     */
+    private String parametersId;
+    /**
+     * 商品参数名称
+     */
+    private String parametersName;
+
+    /**
+     * 商品参数值ID
+     */
+    private String Id;
+
+    /**
+     * 参数值
+     */
+    private String parametersValue;
+
+    /**
+     * 是否是必须参数 0是 1否
+     */
+    private Integer isNecessary;
+}

+ 16 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/SpecValueVo.java

@@ -0,0 +1,16 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+@Data
+public class SpecValueVo {
+    /**规格ID*/
+    private String keyId;
+    /**规格值*/
+    private String key;
+    /**值ID*/
+    private String valueId;
+    /**值*/
+    private String value;
+
+}

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

@@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 * @author xxxxx
 */
 @RestController
-@RequestMapping("/base_country")
+@RequestMapping("/baseCountry")
 public class BaseCountryController {
 /**
 * 服务对象

+ 0 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/BaseCountryServeController.java

@@ -9,7 +9,6 @@ import edu.travel.interfaces.UpdateGroups;
 import edu.travel.resp.BaseResponse;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.web.BaseController;
-import org.springframework.beans.BeanUtils;
 import org.springframework.validation.Errors;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;

+ 30 - 2
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopAddressController.java

@@ -1,6 +1,14 @@
 package edu.travel.commodity.web;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.commodity.dto.BaseDto;
+import edu.travel.commodity.dto.UpdateAddressDto;
+import edu.travel.commodity.entity.ShopAddress;
 import edu.travel.commodity.service.ShopAddressService;
+import edu.travel.commodity.vo.BaseCountryServeVo;
+import edu.travel.commodity.vo.ShopAddressVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.web.BaseController;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,12 +19,32 @@ import org.springframework.beans.factory.annotation.Autowired;
 * @author xxxxx
 */
 @RestController
-@RequestMapping("/shop_address")
-public class ShopAddressController {
+@RequestMapping("/shopAddress")
+public class ShopAddressController extends BaseController {
 /**
 * 服务对象
 */
     @Autowired
     private ShopAddressService shopAddressService;
 
+    /** 查询登录用户的地址信息
+     * @param dto
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopAddress }>>
+     */
+    @GetMapping("/getShopAddress")
+    public BaseResponse<Page<ShopAddressVo>> getShopAddress(BaseDto dto) {
+        return new BaseResponse<>(200, "success", shopAddressService.getShopAddress(dto)) ;
+    }
+
+    /**
+     *  新增或编辑地址
+     * @param param
+     * @return {@link BaseResponse }<{@link Void }>
+     */
+    @PostMapping("/savaOrUpdateAddressById")
+    public BaseResponse<Boolean> updateAddressById(@RequestBody UpdateAddressDto param) {
+        return new BaseResponse<>(200, "success", shopAddressService.updateAddressById(param)) ;
+    }
+
+
 }

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

@@ -1,6 +1,10 @@
 package edu.travel.commodity.web;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.commodity.dto.ProductSpecDto;
 import edu.travel.commodity.service.ShopParametersService;
+import edu.travel.commodity.vo.ShopParametersVo;
+import edu.travel.resp.BaseResponse;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,5 +23,13 @@ public class ShopParametersController {
     @Autowired
     private ShopParametersService shopParametersService;
 
-
+    /**
+     *  获取商品参数
+     * @param param
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopParametersVo }>>
+     */
+    @GetMapping("getShopParameters")
+    public BaseResponse<Page<ShopParametersVo>> getShopParameters(ProductSpecDto param){
+        return new BaseResponse<>(200,"success",shopParametersService.getShopParameters(param));
+    }
 }

+ 1 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSkuController.java

@@ -22,4 +22,5 @@ public class ShopProductSkuController extends BaseController<ShopProductSku> {
     private ShopProductSkuService shopProductSkuService;
 
 
+
 }

+ 2 - 3
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSpecController.java

@@ -1,6 +1,5 @@
 package edu.travel.commodity.web;
 
-import edu.travel.commodity.dto.GetProductByTypeDto;
 import edu.travel.commodity.dto.ProductSpecDto;
 import edu.travel.commodity.entity.ShopProductSpec;
 import edu.travel.commodity.service.ShopProductSpecService;
@@ -20,7 +19,7 @@ import java.util.List;
 * @author xxxxx
 */
 @RestController
-@RequestMapping("/shop_product_spec")
+@RequestMapping("/shopProductSpec")
 public class ShopProductSpecController extends BaseController<ShopProductSpec> {
 /**
 * 服务对象
@@ -33,7 +32,7 @@ public class ShopProductSpecController extends BaseController<ShopProductSpec> {
      * @return {@link BaseResponse }<{@link List }<{@link ShopProductVo }>>
      */
     @GetMapping("/getShopSpec")
-    public BaseResponse<List<ProductSpecVo>> getShopSpec(ProductSpecDto param){
+    public BaseResponse<ProductSpecVo> getShopSpec(ProductSpecDto param){
         return new BaseResponse<>(200,"success",shopProductSpecService.getShopSpec(param));
     }
 }

+ 27 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopShoppingCartController.java

@@ -1,6 +1,11 @@
 package edu.travel.commodity.web;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.commodity.dto.AddShopCartDto;
+import edu.travel.commodity.dto.BaseDto;
 import edu.travel.commodity.service.ShopShoppingCartService;
+import edu.travel.commodity.vo.ShopCartListVo;
+import edu.travel.resp.BaseResponse;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,4 +25,26 @@ public class ShopShoppingCartController {
     private ShopShoppingCartService shopShoppingCartService;
 
 
+    /**
+     *  新增购物车
+     * @param params
+     * @return {@link BaseResponse }<{@link Boolean }>
+     */
+    @PostMapping("/addShopCart")
+    public BaseResponse<Boolean> addShopCart(@RequestBody AddShopCartDto params) {
+        return new BaseResponse<>(200,"success",shopShoppingCartService.addShopCart(params));
+    }
+
+    /**
+     * 分页查询购物车列表
+     * @param params
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopCartListVo }>>
+     */
+
+    @PostMapping("/getShopCartList")
+    public BaseResponse<Page<ShopCartListVo>> getShopCartList(BaseDto params) {
+        return new BaseResponse<>(200,"success",shopShoppingCartService.getShopCartList(params));
+    }
+
+
 }

+ 1 - 2
edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopParametersMapper.xml

@@ -5,7 +5,6 @@
     <!--@mbg.generated-->
     <!--@Table shop_parameters-->
     <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="product_id" jdbcType="BIGINT" property="productId" />
     <result column="parameters_name" jdbcType="VARCHAR" property="parametersName" />
     <result column="is_necessary" jdbcType="INTEGER" property="isNecessary" />
     <result column="project" jdbcType="VARCHAR" property="project" />
@@ -17,7 +16,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, product_id, parameters_name, is_necessary, project, create_time, create_user_id, 
+    id, parameters_name, is_necessary, project, create_time, create_user_id,
     update_time, update_user_id, delete_flag
   </sql>
 </mapper>

+ 3 - 1
edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopProductSkuMapper.xml

@@ -10,7 +10,9 @@
     <result column="warehouse_id" jdbcType="BIGINT" property="warehouseId" />
     <result column="freeze" jdbcType="INTEGER" property="freeze" />
     <result column="inventory" jdbcType="INTEGER" property="inventory" />
+    <result column="sales_volume" jdbcType="INTEGER" property="salesVolume" />
     <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="image_url" jdbcType="INTEGER" property="imageUrl" />
     <result column="price" jdbcType="DECIMAL" property="price" />
     <result column="project" jdbcType="VARCHAR" property="project" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
@@ -21,7 +23,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, sku_id, product_id, warehouse_id, `freeze`, inventory, `status`, price, project, 
+    id, sku_id, product_id, warehouse_id, `freeze`, inventory, `status`, price, project, image_url,sales_volume,
     create_time, create_user_id, update_time, update_user_id, delete_flag
   </sql>
 </mapper>

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopShoppingCartMapper.xml

@@ -8,6 +8,7 @@
     <result column="user_id" jdbcType="BIGINT" property="userId" />
     <result column="product_sku_id" jdbcType="BIGINT" property="productSkuId" />
     <result column="quantity" jdbcType="INTEGER" property="quantity" />
+    <result column="product_id" jdbcType="BIGINT" property="productId" />
     <result column="project" jdbcType="VARCHAR" property="project" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="create_user_id" jdbcType="VARCHAR" property="createUserId" />
@@ -17,7 +18,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, user_id, product_sku_id, quantity, project, create_time, create_user_id, update_time, 
+    id, user_id, product_sku_id, quantity, project, create_time, create_user_id, update_time, product_id,
     update_user_id, delete_flag
   </sql>
 </mapper>