Bladeren bron

Merge remote-tracking branch 'origin/main'

2 weken geleden
bovenliggende
commit
5f0f78173f
24 gewijzigde bestanden met toevoegingen van 264 en 147 verwijderingen
  1. 0 12
      .idea/ApifoxUploaderProjectSetting.xml
  2. 1 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/dto/BaseCountryServeDto.java
  3. 3 5
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/BaseCountryServeRemoteController.java
  4. 8 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/vo/BaseCountryServeVo.java
  5. 4 0
      edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/dto/ShopLanguageDto.java
  6. 22 0
      edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/remote/ShopLanguageRemoteController.java
  7. 4 1
      edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/vo/ShopLanguageVo.java
  8. 3 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/BaseCountryServe.java
  9. 9 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/mapper/ShopProductSkuMapper.java
  10. 2 2
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/BaseCountryServeService.java
  11. 0 8
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopLanguageService.java
  12. 4 3
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductSkuService.java
  13. 2 2
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/BaseCountryServeServiceImpl.java
  14. 1 4
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopAddressServiceImpl.java
  15. 0 13
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopLanguageServiceImpl.java
  16. 25 55
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSkuServiceImpl.java
  17. 20 5
      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/vo/SortSpecVo.java
  19. 22 0
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/SpecVo.java
  20. 51 25
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/BaseCountryServeController.java
  21. 48 0
      edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopProductSkuMapper.xml
  22. 3 1
      edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/entity/ShopLanguage.java
  23. 2 1
      edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/service/impl/ShopLanguageServiceImpl.java
  24. 8 7
      edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/web/ShopLanguageController.java

+ 0 - 12
.idea/ApifoxUploaderProjectSetting.xml

@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ApifoxUploaderProjectSetting">
-    <option name="apiAccessToken" value="APS-zVX12fxhdOW93TBWYxvewP8rxF9dEXvJ" />
-    <option name="apiProjectIds">
-      <array>
-        <option value="&lt;byte-array&gt;rO0ABXNyADZjb20uaXRhbmdjZW50LmlkZWEucGx1Z2luLmFwaS5hY2NvdW50LlByb2plY3RBbmRNb2R1bGUAAAAAAAAAAQIAFVoABmVuYWJsZUwACG1vZHVsZUlkdAASTGphdmEvbGFuZy9TdHJpbmc7TAAGb3RoZXIxcQB+AAFMAAdvdGhlcjEwcQB+AAFMAAdvdGhlcjExcQB+AAFMAAdvdGhlcjEycQB+AAFMAAZvdGhlcjJxAH4AAUwABm90aGVyM3EAfgABTAAGb3RoZXI0cQB+AAFMAAZvdGhlcjVxAH4AAUwABm90aGVyNnEAfgABTAAGb3RoZXI3cQB+AAFMAAZvdGhlcjhxAH4AAUwABm90aGVyOXEAfgABTAAKcGF0aEJlZm9yZXEAfgABTAANcHJvamVjdEZvbGRlcnEAfgABTAAPcHJvamVjdEZvbGRlcklkcQB+AAFMAAlwcm9qZWN0SWRxAH4AAUwAC3Byb2plY3ROYW1lcQB+AAFMAAxzY2hlbWFGb2xkZXJxAH4AAUwACHNjaGVtYUlkcQB+AAF4cAB0AAZoaWRkZW5wcHBwcHBwcHBwcHB0AApwYXRoQmVmb3JldAANcHJvamVjdEZvbGRlcnQAD3Byb2plY3RGb2xkZXJJZHQAC3Byb2plY3ROYW1ldAAIaGlkZGVuSWR0AABxAH4ACQ==&lt;/byte-array&gt;" />
-      </array>
-    </option>
-    <option name="treeNodes" value="" />
-  </component>
-</project>

+ 1 - 1
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/dto/BaseCountryServeDTO.java → edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/dto/BaseCountryServeDto.java

@@ -13,7 +13,7 @@ import java.math.BigDecimal;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class BaseCountryServeDTO extends PagePO {
+public class BaseCountryServeDto extends PagePO {
     /**
      * ID
      */

+ 3 - 5
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/remote/BaseCountryServeRemoteController.java → edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/BaseCountryServeRemoteController.java

@@ -1,6 +1,6 @@
 package edu.travel.remote;
 
-import edu.travel.dto.BaseCountryDto;
+import edu.travel.dto.BaseCountryServeDto;
 import edu.travel.remote.base.RemoteBaseController;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.vo.BaseCountryServeVo;
@@ -9,8 +9,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 @FeignClient(path = "/baseCountryServe",name = "commodity")
-public interface BaseCountryServeRemoteController extends RemoteBaseController<BaseCountryServeVo, BaseCountryDto> {
-    @GetMapping("/getByControlId")
-    RPCBaseResponse getByControlId( @RequestBody String id);
-
+public interface BaseCountryServeRemoteController extends RemoteBaseController<BaseCountryServeVo, BaseCountryServeDto> {
+    
 }

+ 8 - 1
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/vo/BaseCountryServeVo.java → edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/vo/BaseCountryServeVo.java

@@ -1,10 +1,13 @@
 package edu.travel.vo;
 
+import edu.travel.entity.BaseEntity;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 服务国家表
@@ -12,7 +15,7 @@ import java.math.BigDecimal;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class BaseCountryServeVo {
+public class BaseCountryServeVo extends BaseEntity {
     /**
      * ID
      */
@@ -63,4 +66,8 @@ public class BaseCountryServeVo {
      * 货币表id
      */
     private Long currencyId;
+    /**
+     * 子类
+     */
+    private List<BaseCountryServeVo> children = new ArrayList<>();
 }

+ 4 - 0
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/dto/ShopLanguageDto.java

@@ -82,4 +82,8 @@ public class ShopLanguageDto extends PagePO {
      * 删除标记 0正常 1删除
      */
     private Integer deleteFlag;
+    /**
+     * 项目标识
+     */
+    private String project;
 }

+ 22 - 0
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/remote/ShopLanguageRemoteController.java

@@ -1,14 +1,36 @@
 package edu.travel.remote;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import edu.travel.dto.ShopLanguageDto;
 import edu.travel.remote.base.RemoteBaseController;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.vo.ShopLanguageVo;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
 @FeignClient(path = "/shopLanguage",name = "commodity")
 public interface ShopLanguageRemoteController extends RemoteBaseController<ShopLanguageVo, ShopLanguageDto> {
 
+    //语言分页
+    @GetMapping("/getLanguagePage")
+    public RPCBaseResponse<IPage<ShopLanguageVo>> getLanguagePage(ShopLanguageDto shopLanguageDto);
+   //获取语言详情
+    @GetMapping("/getLanguageFormId")
+    public RPCBaseResponse<ShopLanguageVo> getFormId(String id);
+    //更新语言信息
+    @PostMapping("/updateLanguageFormId")
+    public RPCBaseResponse<ShopLanguageVo> updateTargetFormId(@RequestBody ShopLanguageDto entity);
+    //新增语言信息
+    @PostMapping("/saveLanguageForm")
+    public RPCBaseResponse<ShopLanguageVo> saveFormTarget(@RequestBody ShopLanguageDto entity);
+    //删除语言信息
+    @PostMapping("/deleteLanguageFormId")
+    public RPCBaseResponse<ShopLanguageVo> deleteTargetFormId(@RequestBody List<String> ids);
+    //获取语言
+    @GetMapping("/LanguagelistForm")
+    public RPCBaseResponse<List<ShopLanguageVo>> getAllForm();
 }

+ 4 - 1
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/vo/ShopLanguageVo.java

@@ -43,5 +43,8 @@ public class ShopLanguageVo extends BaseEntity {
      * web后端状态 0未完成 1完成
      */
     private Integer webBackendStatus;
-
+    /**
+     * 项目标识
+     */
+    private String project;
 }

+ 3 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/BaseCountryServe.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.math.BigDecimal;
 import java.util.Date;
+
+import edu.travel.entity.BaseEntity;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -17,7 +19,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @TableName(value = "base_country_serve")
-public class BaseCountryServe {
+public class BaseCountryServe extends BaseEntity {
     /**
      * ID
      */

+ 9 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/mapper/ShopProductSkuMapper.java

@@ -2,6 +2,15 @@ package edu.travel.commodity.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import edu.travel.commodity.entity.ShopProductSku;
+import edu.travel.commodity.vo.SortSpecVo;
+import edu.travel.commodity.vo.SpecVo;
+
+import java.util.List;
+import java.util.Set;
 
 public interface ShopProductSkuMapper extends BaseMapper<ShopProductSku> {
+
+    List<SpecVo> getSkuValuesById(Set<String> skuId);
+
+    List<SortSpecVo> getValuesByProductIds(Set<String> shopProductSkuIds);
 }

+ 2 - 2
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/BaseCountryServeService.java

@@ -3,12 +3,12 @@ package edu.travel.commodity.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import edu.travel.commodity.entity.BaseCountryServe;
 import com.baomidou.mybatisplus.extension.service.IService;
-import edu.travel.dto.BaseCountryServeDTO;
+import edu.travel.dto.BaseCountryServeDto;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.vo.BaseCountryServeVo;
 
 public interface BaseCountryServeService extends IService<BaseCountryServe>{
 
 
-    RPCBaseResponse<IPage<BaseCountryServeVo>> getCountryServePage(BaseCountryServeDTO dto);
+    RPCBaseResponse<IPage<BaseCountryServeVo>> getCountryServePage(BaseCountryServeDto dto);
 }

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

@@ -1,8 +0,0 @@
-package edu.travel.commodity.service;
-
-import edu.travel.commodity.entity.ShopLanguage;
-import com.baomidou.mybatisplus.extension.service.IService;
-public interface ShopLanguageService extends IService<ShopLanguage>{
-
-
-}

+ 4 - 3
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductSkuService.java

@@ -2,7 +2,8 @@ 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 edu.travel.commodity.vo.SortSpecVo;
+import edu.travel.commodity.vo.SpecVo;
 
 import java.util.List;
 import java.util.Map;
@@ -10,7 +11,7 @@ import java.util.Set;
 
 public interface ShopProductSkuService extends IService<ShopProductSku>{
 
-    Map<String,List<SpecValueVo>> getSkuValuesById(Set<String> skuId);
+    Map<String,List<SpecVo>> getSkuValuesById(Set<String> skuId);
 
-    Map<String,List<SpecValueVo>> getShopProductSkuId(Set<String> shopProductSkuId);
+    Map<String,List<SortSpecVo>> getShopProductSkuId(Set<String> shopProductSkuId);
 }

+ 2 - 2
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/BaseCountryServeServiceImpl.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.commodity.entity.BaseCountryServe;
 import edu.travel.commodity.mapper.BaseCountryServeMapper;
 import edu.travel.commodity.service.BaseCountryServeService;
-import edu.travel.dto.BaseCountryServeDTO;
+import edu.travel.dto.BaseCountryServeDto;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.service.SysServiceImpl;
 import edu.travel.vo.BaseCountryServeVo;
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Service;
 @Service
 public class BaseCountryServeServiceImpl extends SysServiceImpl<BaseCountryServeMapper, BaseCountryServe> implements BaseCountryServeService {
     @Override
-    public RPCBaseResponse<IPage<BaseCountryServeVo>> getCountryServePage(BaseCountryServeDTO dto) {
+    public RPCBaseResponse<IPage<BaseCountryServeVo>> getCountryServePage(BaseCountryServeDto dto) {
         Page<BaseCountryServe> baseCountryServePage = new Page<>(dto.getCurrentPage(), dto.getPageSize());
         IPage<BaseCountryServe> pageLink = super.getPageLink(new LambdaQueryWrapper<BaseCountryServe>(), baseCountryServePage);
         IPage<BaseCountryServeVo> result = new Page<>();

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

@@ -14,16 +14,13 @@ 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.remote.BaseCountryRemoteController;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
 
 
 @Service
 public class ShopAddressServiceImpl extends ServiceImpl<ShopAddressMapper, ShopAddress> implements ShopAddressService {
-    @Resource
-    private BaseCountryRemoteController baseCountryRemoteController;
+
     @Override
     public Page<ShopAddressVo> getShopAddress(BaseDto dto) {
         //当前登录对象

+ 0 - 13
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopLanguageServiceImpl.java

@@ -1,13 +0,0 @@
-package edu.travel.commodity.service.impl;
-
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import edu.travel.commodity.entity.ShopLanguage;
-import edu.travel.commodity.mapper.ShopLanguageMapper;
-import edu.travel.commodity.service.ShopLanguageService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class ShopLanguageServiceImpl extends ServiceImpl<ShopLanguageMapper, ShopLanguage> implements ShopLanguageService {
-
-}

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

@@ -2,15 +2,14 @@ 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.SortSpecVo;
 import edu.travel.commodity.vo.SpecValueVo;
+import edu.travel.commodity.vo.SpecVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -28,39 +27,19 @@ public class ShopProductSkuServiceImpl extends ServiceImpl<ShopProductSkuMapper,
     private ShopSpecValueService shopSpecValueService;
     @Autowired
     private ShopSpecService shopSpecService;
+    @Autowired
+    private ShopProductSkuMapper shopProductSkuMapper;
+
+
+    /**
+     *  查询SKU下的规格和对应的规格值 规格 排序  规格值排序
+     * @param skuId
+     * @return {@link Map }<{@link String },{@link List }<{@link SpecVo }>>
+     */
     @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;
+    public Map<String,List<SpecVo>> getSkuValuesById(Set<String> skuId) {
+        List<SpecVo> list=shopProductSkuMapper.getSkuValuesById(skuId);
+        return list.stream().collect(Collectors.groupingBy(SpecVo::getSkuId));
     }
 
     /**
@@ -69,25 +48,16 @@ public class ShopProductSkuServiceImpl extends ServiceImpl<ShopProductSkuMapper,
      * @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;
+    public Map<String,List<SortSpecVo>> getShopProductSkuId(Set<String> shopProductSkuIds) {
+        List<SortSpecVo> list=shopProductSkuMapper.getValuesByProductIds(shopProductSkuIds);
+        Map<String, List<SortSpecVo>> collect = list.stream().collect(Collectors.groupingBy(SortSpecVo::getSkuId));
+
+        collect.forEach((k,v)->
+        {
+            List<SortSpecVo> collect1 = v.stream().sorted(Comparator.comparing(SortSpecVo::getSpecOrder)
+                    .thenComparing(SortSpecVo::getValueSort)).collect(Collectors.toList());
+            collect.put(k,collect1);
+        });
+        return collect;
     }
 }

+ 20 - 5
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopShoppingCartServiceImpl.java

@@ -18,6 +18,7 @@ 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.SortSpecVo;
 import edu.travel.commodity.vo.SpecValueVo;
 import edu.travel.exception.BaseException;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,6 +55,7 @@ public class ShopShoppingCartServiceImpl extends ServiceImpl<ShopShoppingCartMap
 
     @Override
     public Page<ShopCartListVo> getShopCartList(BaseDto params) {
+        //登录用户
         String userId = TokenData.getUserId();
         LambdaQueryWrapper<ShopShoppingCart> query = Wrappers.<ShopShoppingCart>lambdaQuery()
                 .eq(ShopShoppingCart::getUserId, userId).orderByDesc(ShopShoppingCart::getCreateTime);
@@ -61,7 +63,9 @@ public class ShopShoppingCartServiceImpl extends ServiceImpl<ShopShoppingCartMap
         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;
         }
@@ -73,15 +77,14 @@ public class ShopShoppingCartServiceImpl extends ServiceImpl<ShopShoppingCartMap
             map.put(shopProduct.getId().toString(), shopProduct);
         }
         //商品和sku关联表的id
-        Set<String> productToSkus = records.stream().map(ShopCartListVo::getProductSkuId).collect(Collectors.toSet());
+        Set<String> collect1 = records.stream().map(ShopCartListVo::getProductSkuId).collect(Collectors.toSet());
 
-        List<ShopProductSku> shopProductSkus = shopProductSkuService.listByIds(productToSkus);
+        List<ShopProductSku> shopProductSkus = shopProductSkuService.listByIds(collect1);
         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);
+        Map<String, List<SortSpecVo>> Specmap = shopProductSkuService.getShopProductSkuId(collect1);
 
         //封装结果集
         for (ShopCartListVo record : records) {
@@ -96,7 +99,19 @@ public class ShopShoppingCartServiceImpl extends ServiceImpl<ShopShoppingCartMap
                     record.setPrice(shopProductSku.getPrice());
                 }
                 String productSkuId = record.getProductSkuId();
-                record.setSpecValue(shopProductSkuId.get(productSkuId));
+                List<SortSpecVo> sortSpecVos = Specmap.get(productSkuId);
+                ArrayList<SpecValueVo> specValueVos = new ArrayList<>();
+                if(ObjectUtil.isEmpty(sortSpecVos)){
+                    for (SortSpecVo sortSpecVo : sortSpecVos) {
+                        SpecValueVo specValueVo = new SpecValueVo();
+                        specValueVo.setKeyId(sortSpecVo.getSpecId());
+                        specValueVo.setKey(sortSpecVo.getSpecName());
+                        specValueVo.setValueId(sortSpecVo.getSpecValueId());
+                        specValueVo.setValue(sortSpecVo.getSpecValue());
+                        specValueVos.add(specValueVo);
+                    }
+                }
+                record.setSpecValue(specValueVos);
             }
         }
         return pageEntity;

+ 22 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/SortSpecVo.java

@@ -0,0 +1,22 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+
+@Data
+public class SortSpecVo {
+    /**sku*/
+    private String skuId;
+    /**规格Id*/
+    private String specId;
+    /**规格名称*/
+    private String specName;
+    /**规格排序值*/
+    private String specOrder;
+    /**规格值ID*/
+    private String specValueId;
+    /**规格值*/
+    private String specValue;
+    /**规格值排序值*/
+    private String valueSort;
+}

+ 22 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/SpecVo.java

@@ -0,0 +1,22 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+@Data
+public class SpecVo {
+    /**商品和规格关联表Id*/
+    private String id;
+
+    /**skuId*/
+    private String skuId;
+
+    /**规格ID*/
+    private String specId;
+
+    /**规格名*/
+    private String specName;
+    /**规格值ID*/
+    private String specValueId;
+    /**规格值*/
+    private String specValue;
+}

+ 51 - 25
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/BaseCountryServeController.java

@@ -1,19 +1,17 @@
 package edu.travel.commodity.web;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import edu.travel.commodity.entity.BaseCountryServe;
 import edu.travel.commodity.service.BaseCountryServeService;
-import edu.travel.dto.BaseCountryDto;
-import edu.travel.dto.BaseCountryServeDTO;
+import edu.travel.dto.BaseCountryServeDto;
 import edu.travel.remote.BaseCountryServeRemoteController;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.vo.BaseCountryServeVo;
 import edu.travel.web.BaseController;
 import org.springframework.beans.BeanUtils;
-import org.springframework.web.bind.annotation.*;
-
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -24,34 +22,48 @@ import java.util.List;
 */
 @RestController
 @RequestMapping("/base_country_serve")
-public class BaseCountryServeController  extends BaseController<BaseCountryServe>  implements BaseCountryServeRemoteController {
+public class BaseCountryServeController  extends BaseController<BaseCountryServe> implements BaseCountryServeRemoteController {
+
+    /**
+     * 服务国家表(base_country_serve)表控制层
+     *
+     */
+
     @Autowired
     private BaseCountryServeService baseCountryServeService;
 
+    /**
+     * 分页
+     * @param dto
+     * @return
+     */
     @GetMapping("/getCountryServePage")
-    public RPCBaseResponse<IPage<BaseCountryServeVo>> getCountryServePage(BaseCountryServeDTO dto) {
+    public RPCBaseResponse<IPage<BaseCountryServeVo>> getCountryServePage(BaseCountryServeDto dto) {
         return baseCountryServeService.getCountryServePage(dto);
     }
 
+    /**
+     * 获取服务国家信息
+     * @param id
+     * @return
+     */
     @Override
-    @GetMapping("/getByControlId")
-    public RPCBaseResponse getByControlId(String id) {
-        RPCBaseResponse baseResponse = super.getId(id);
-        return baseResponse;
-    }
-
-    @Override
-    @GetMapping("/getFormId")
+    @GetMapping("/getCountryServeFormId")
     public RPCBaseResponse<BaseCountryServeVo> getFormId(String id) {
-        RPCBaseResponse<BaseCountryServe> byId = super.getId(id);
-        RPCBaseResponse<BaseCountryServeVo> baseCountryServeVoRPCBaseResponse = new RPCBaseResponse<>();
-        BeanUtils.copyProperties(byId, baseCountryServeVoRPCBaseResponse);
-        return baseCountryServeVoRPCBaseResponse;
+        RPCBaseResponse<BaseCountryServe> baseCountryServeRPCBaseResponse = super.getId(id);
+        RPCBaseResponse<BaseCountryServeVo> baseCountryServeVoPRCBaseResponse = new RPCBaseResponse<>();
+        BeanUtils.copyProperties(baseCountryServeRPCBaseResponse, baseCountryServeVoPRCBaseResponse);
+        return baseCountryServeVoPRCBaseResponse;
     }
 
+    /**
+     * 更新服务国家信息
+     * @param entity
+     * @return
+     */
     @Override
-    @PostMapping("/updateFormId")
-    public RPCBaseResponse<BaseCountryServeVo> updateTargetFormId(BaseCountryDto entity) {
+    @PostMapping("/updateCountryServeFormId")
+    public RPCBaseResponse<BaseCountryServeVo> updateTargetFormId(@RequestBody BaseCountryServeDto entity) {
         BaseCountryServe baseCountryServe = new BaseCountryServe();
         BeanUtils.copyProperties(entity, baseCountryServe);
         RPCBaseResponse<BaseCountryServe> baseCountryServeRPCBaseResponse = super.updateTargetById(baseCountryServe);
@@ -60,9 +72,14 @@ public class BaseCountryServeController  extends BaseController<BaseCountryServe
         return baseCountryServeVoRPCBaseResponse;
     }
 
+    /**
+     * 新增服务国家信息
+     * @param entity
+     * @return
+     */
     @Override
-    @PostMapping("/saveForm")
-    public RPCBaseResponse<BaseCountryServeVo> saveFormTarget(BaseCountryDto entity) {
+    @PostMapping("/saveCountryServeForm")
+    public RPCBaseResponse<BaseCountryServeVo> saveFormTarget(@RequestBody BaseCountryServeDto entity) {
         BaseCountryServe baseCountryServe = new BaseCountryServe();
         BeanUtils.copyProperties(entity, baseCountryServe);
         RPCBaseResponse<BaseCountryServe> baseCountryServeRPCBaseResponse = super.saveTarget(baseCountryServe);
@@ -71,15 +88,24 @@ public class BaseCountryServeController  extends BaseController<BaseCountryServe
         return baseCountryServeVoRPCBaseResponse;
     }
 
+    /**
+     * 删除服务国家信息
+     * @param ids
+     * @return
+     */
     @Override
-    @PostMapping("/deleteFormId")
-    public RPCBaseResponse<BaseCountryServeVo> deleteTargetFormId(@RequestBody List<String> ids) {
+    @PostMapping("/deleteCountryServeFormId")
+    public RPCBaseResponse<BaseCountryServeVo> deleteTargetFormId(@RequestBody  List<String> ids) {
         RPCBaseResponse<BaseCountryServe> baseCountryServeRPCBaseResponse = super.deleteTargetById(ids);
         RPCBaseResponse<BaseCountryServeVo> baseCountryServeVoRPCBaseResponse = new RPCBaseResponse<>();
         BeanUtils.copyProperties(baseCountryServeRPCBaseResponse, baseCountryServeVoRPCBaseResponse);
         return baseCountryServeVoRPCBaseResponse;
     }
 
+    /**
+     * 获取服务国家信息
+     * @return
+     */
     @Override
     @GetMapping("/listForm")
     public RPCBaseResponse<List<BaseCountryServeVo>> getAllForm() {

+ 48 - 0
edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopProductSkuMapper.xml

@@ -28,4 +28,52 @@
     id, sku_id, product_id, warehouse_id, `freeze`, inventory, `status`, price, project, image_url,sales_volume,barcodes,
     create_time, create_user_id, update_time, update_user_id, delete_flag,cost_price
   </sql>
+
+  <select id="getSkuValuesById" resultType="edu.travel.commodity.vo.SpecVo">
+    SELECT
+      sv.id,
+      sv.spec_name,
+      sv.spec_id,
+      s.spec_value,
+      s.id as spec_value_id,
+      ssv.sku_id
+    FROM
+      shop_sku_spec_value ssv
+        JOIN shop_spec_value s ON ssv.spec_value_id = s.id
+        JOIN shop_product_spec sv ON ssv.spec_id = sv.id
+    <where>
+      <if test="skuId !=null and skuId.size()>0">
+        ssv.sku_id
+        <foreach collection="skuId" item="sku" open="IN(" separator="," close=")">
+          #{sku}
+        </foreach>
+      </if>
+    </where>
+    ORDER BY
+      sv.sort_order ASC
+  </select>
+
+  <select id="getValuesByProductIds" resultType="edu.travel.commodity.vo.SortSpecVo">
+    SELECT
+      p.sku_id,
+      ss.spec_id,sv.spec_name,
+      ss.spec_value_id,s.spec_value,sv.sort_order as value_order,
+      s.sort_order as spec_order
+    FROM
+      shop_product_sku as p
+        JOIN shop_sku_spec_value ss on p.sku_id=ss.sku_id
+        JOIN shop_spec_value s ON ss.spec_value_id = s.id
+        JOIN shop_product_spec sv ON ss.spec_id = sv.id
+      <where>
+        <if test="shopProductSkuIds !=null and shopProductSkuIds.size()>0">
+          p.product_id
+          <foreach collection="shopProductSkuIds" item="productId" open="IN(" separator="," close=")">
+            #{productId}
+          </foreach>
+        </if>
+      </where>
+    ORDER BY
+      sv.sort_order ASC,
+      s.sort_order ASC
+  </select>
 </mapper>

+ 3 - 1
edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/entity/ShopLanguage.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.util.Date;
+
+import edu.travel.entity.BaseEntity;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -16,7 +18,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @TableName(value = "shop_language")
-public class ShopLanguage {
+public class ShopLanguage extends BaseEntity {
     /**
      * id
      */

+ 2 - 1
edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/service/impl/ShopLanguageServiceImpl.java

@@ -12,12 +12,13 @@ import edu.travel.country.service.ShopLanguageService;
 
 import edu.travel.dto.ShopLanguageDto;
 import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.service.SysServiceImpl;
 import edu.travel.vo.ShopLanguageVo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 @Service
-public class ShopLanguageServiceImpl extends ServiceImpl<ShopLanguageMapper, ShopLanguage> implements ShopLanguageService {
+public class ShopLanguageServiceImpl extends SysServiceImpl<ShopLanguageMapper, ShopLanguage> implements ShopLanguageService {
 
 
     @Override

+ 8 - 7
edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/web/ShopLanguageController.java

@@ -12,6 +12,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;
 
 /**
@@ -42,7 +43,7 @@ public class ShopLanguageController extends BaseController<ShopLanguage> impleme
      * @return
      */
     @Override
-    @GetMapping("/getFormId")
+    @GetMapping("/getLanguageFormId")
     public RPCBaseResponse<ShopLanguageVo> getFormId(String id) {
         RPCBaseResponse<ShopLanguage> languageRPCBaseResponse = super.getId(id);
         RPCBaseResponse<ShopLanguageVo> shopLanguageVoRPCBaseResponse = new RPCBaseResponse<>();
@@ -56,8 +57,8 @@ public class ShopLanguageController extends BaseController<ShopLanguage> impleme
      * @return
      */
     @Override
-    @PostMapping("/updateFormId")
-    public RPCBaseResponse<ShopLanguageVo> updateTargetFormId(ShopLanguageDto entity) {
+    @PostMapping("/updateLanguageFormId")
+    public RPCBaseResponse<ShopLanguageVo> updateTargetFormId(@RequestBody ShopLanguageDto entity) {
         ShopLanguage shopLanguage = new ShopLanguage();
         BeanUtils.copyProperties(entity, shopLanguage);
         RPCBaseResponse<ShopLanguage> languageRPCBaseResponse = super.updateTargetById(shopLanguage);
@@ -72,8 +73,8 @@ public class ShopLanguageController extends BaseController<ShopLanguage> impleme
      * @return
      */
     @Override
-    @PostMapping("/saveForm")
-    public RPCBaseResponse<ShopLanguageVo> saveFormTarget(ShopLanguageDto entity) {
+    @PostMapping("/saveLanguageForm")
+    public RPCBaseResponse<ShopLanguageVo> saveFormTarget(@RequestBody ShopLanguageDto entity) {
         ShopLanguage shopLanguage = new ShopLanguage();
         BeanUtils.copyProperties(entity, shopLanguage);
         RPCBaseResponse<ShopLanguage> languageRPCBaseResponse = super.saveTarget(shopLanguage);
@@ -88,8 +89,8 @@ public class ShopLanguageController extends BaseController<ShopLanguage> impleme
      * @return
      */
     @Override
-    @PostMapping("/deleteFormId")
-    public RPCBaseResponse<ShopLanguageVo> deleteTargetFormId(List<String> ids) {
+    @PostMapping("/deleteLanguageFormId")
+    public RPCBaseResponse<ShopLanguageVo> deleteTargetFormId(@RequestBody List<String> ids) {
         RPCBaseResponse<ShopLanguage> languageRPCBaseResponse = super.deleteTargetById(ids);
         RPCBaseResponse<ShopLanguageVo> shopLanguageVoRPCBaseResponse = new RPCBaseResponse<>();
         BeanUtils.copyProperties(languageRPCBaseResponse, shopLanguageVoRPCBaseResponse);