Browse Source

product idea period 1

huodongdong 7 years ago
parent
commit
225693bfc7
100 changed files with 948 additions and 982 deletions
  1. 1 0
      pom.xml
  2. 5 0
      rankin-cms-web/pom.xml
  3. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/CourseController.java
  4. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/GroupController.java
  5. 0 38
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/ItemController.java
  6. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/LessonController.java
  7. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/SupportController.java
  8. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/TagController.java
  9. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/WareController.java
  10. 1 2
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/CourseService.java
  11. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/GroupService.java
  12. 0 29
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/ItemService.java
  13. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/LessonService.java
  14. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/SupportService.java
  15. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/TagService.java
  16. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/WareService.java
  17. 1 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/proxy/WareServiceProxy.java
  18. 5 0
      rankin-common-utils/pom.xml
  19. 3 0
      rankin-common-utils/src/main/java/cn/rankin/common/utils/api/model/APICode.java
  20. 0 32
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/ItemDTO.java
  21. 0 26
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/ItemPriceDTO.java
  22. 0 26
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/search/ItemSearchDTO.java
  23. 5 5
      rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/EnumUtil.java
  24. 0 20
      rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/ItemStatusEnum.java
  25. 0 31
      rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/ItemTypeEnum.java
  26. 0 21
      rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/PriceTypeEnum.java
  27. 15 0
      rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/ProductTypeEnum.java
  28. 2 2
      rankin-product-service/src/main/java/cn/rankin/productservice/utils/ListAttributeConverter.java
  29. 0 12
      rankin-common-utils/src/main/java/cn/rankin/common/utils/util/ListUtil.java
  30. 0 26
      rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/ItemPriceVo.java
  31. 0 42
      rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/ItemVo.java
  32. 63 0
      rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/ProductVo.java
  33. 2 2
      rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/RecommendVo.java
  34. 72 0
      rankin-data-api/pom.xml
  35. 1 1
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/CourseDTO.java
  36. 1 1
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/CourseSubRelationDTO.java
  37. 1 1
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/GroupDTO.java
  38. 1 1
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/LessonDTO.java
  39. 34 0
      rankin-data-api/src/main/java/cn/rankin/data/api/product/dto/MerchantProductSearchDTO.java
  40. 20 0
      rankin-data-api/src/main/java/cn/rankin/data/api/product/dto/ProductSearchDTO.java
  41. 1 1
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/SupportDTO.java
  42. 1 1
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/TagDTO.java
  43. 1 1
      rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/WareDTO.java
  44. 4 4
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Course.java
  45. 2 2
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/CourseSubRelation.java
  46. 2 2
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/CourseSupportRelation.java
  47. 4 7
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Ware.java
  48. 78 0
      rankin-data-api/src/main/java/cn/rankin/data/api/product/entity/Goods.java
  49. 3 3
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Lesson.java
  50. 2 2
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/LessonWareRelation.java
  51. 16 21
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Package.java
  52. 14 14
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Group.java
  53. 53 0
      rankin-data-api/src/main/java/cn/rankin/data/api/product/entity/PackageProductRelation.java
  54. 11 16
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Group.java
  55. 7 6
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/ItemTagRelation.java
  56. 12 9
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Recommend.java
  57. 3 4
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Support.java
  58. 3 3
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/SupportSelfRelation.java
  59. 4 4
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Tag.java
  60. 3 3
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/Group.java
  61. 4 6
      rankin-product-service/src/main/java/cn/rankin/productservice/vo/CourseSubItemVo.java
  62. 27 0
      rankin-data-api/src/main/java/cn/rankin/data/api/product/vo/ProductVo.java
  63. 6 0
      rankin-product-service/pom.xml
  64. 74 0
      rankin-product-service/src/main/java/cn/rankin/productservice/configuration/PersistConfiguration.java
  65. 14 13
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/CourseController.java
  66. 29 29
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/GroupController.java
  67. 0 148
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/ItemController.java
  68. 19 19
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/LessonController.java
  69. 52 0
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/MerchantProductController.java
  70. 0 1
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/PackageController.java
  71. 52 0
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/ProductController.java
  72. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/RecommendController.java
  73. 4 4
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/SupportController.java
  74. 6 22
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/TagController.java
  75. 19 19
      rankin-product-service/src/main/java/cn/rankin/productservice/controller/WareController.java
  76. 0 42
      rankin-product-service/src/main/java/cn/rankin/productservice/entity/PackageItemRelation.java
  77. 3 3
      rankin-product-service/src/main/java/cn/rankin/productservice/proxy/CourseServiceProxy.java
  78. 0 146
      rankin-product-service/src/main/java/cn/rankin/productservice/proxy/ItemServiceProxy.java
  79. 93 0
      rankin-product-service/src/main/java/cn/rankin/productservice/proxy/MerchantProductServiceProxy.java
  80. 5 5
      rankin-product-service/src/main/java/cn/rankin/productservice/proxy/SupportServiceProxy.java
  81. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/CourseRepository.java
  82. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/CourseSubRelationRepository.java
  83. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/CourseSupportRelationRepository.java
  84. 16 0
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/GoodsRepository.java
  85. 0 33
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/ItemPriceRepository.java
  86. 0 26
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/ItemRepository.java
  87. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/LessonRepository.java
  88. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/LessonWareRelationRepository.java
  89. 15 0
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/MerchantProductRepository.java
  90. 2 2
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/PackageItemRelationRepository.java
  91. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/PackageRepository.java
  92. 9 0
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/ProductRepository.java
  93. 8 8
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/ItemTagRelationRepository.java
  94. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/RecommendRepository.java
  95. 6 6
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/SupportSelfRelationRepository.java
  96. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/SupportRepository.java
  97. 5 5
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/GroupRepository.java
  98. 2 2
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/TagRepository.java
  99. 1 1
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/TagRepositoryImpl.java
  100. 0 0
      rankin-product-service/src/main/java/cn/rankin/productservice/repository/WareRepository.java

+ 1 - 0
pom.xml

@@ -36,6 +36,7 @@
         <module>rankin-api-gateway</module>
         <module>rankin-cms-gateway</module>
         <module>rankin-common-utils</module>
+        <module>rankin-data-api</module>
     </modules>
 
 	<dependencies>

+ 5 - 0
rankin-cms-web/pom.xml

@@ -62,6 +62,11 @@
             <artifactId>rankin-common-utils</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>cn.rankin</groupId>
+            <artifactId>rankin-data-api</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
 
 		<dependency>
 			<groupId>org.springframework.boot</groupId>

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/CourseController.java

@@ -3,7 +3,7 @@ package cn.rankin.cmsweb.controller.product;
 import cn.rankin.cmsweb.service.product.CourseService;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.CourseDTO;
+import cn.rankin.data.api.product.dto.CourseDTO;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.util.BeanUtil;
 import cn.rankin.common.utils.vo.product.CourseVo;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/GroupController.java

@@ -3,7 +3,7 @@ package cn.rankin.cmsweb.controller.product;
 import cn.rankin.cmsweb.service.product.GroupService;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.GroupDTO;
+import cn.rankin.data.api.product.dto.GroupDTO;
 import cn.rankin.common.utils.dto.search.GroupSearchDTO;
 import cn.rankin.common.utils.util.BeanUtil;
 import cn.rankin.common.utils.vo.product.GroupVo;

+ 0 - 38
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/ItemController.java

@@ -3,13 +3,9 @@ package cn.rankin.cmsweb.controller.product;
 import cn.rankin.cmsweb.assist.resolver.NeedUser;
 import cn.rankin.cmsweb.code.CmsWebAPICode;
 import cn.rankin.cmsweb.entity.UserDetails;
-import cn.rankin.cmsweb.service.product.ItemService;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.ItemDTO;
-import cn.rankin.common.utils.dto.search.ItemSearchDTO;
 import cn.rankin.common.utils.util.BeanUtil;
-import cn.rankin.common.utils.vo.product.ItemVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -17,38 +13,4 @@ import org.springframework.web.bind.annotation.*;
 @RequestMapping(value = "/item")
 public class ItemController {
 
-    @Autowired
-    private ItemService itemService;
-
-    @RequestMapping(value = "/list", method = RequestMethod.GET)
-    public APIResult<Page<ItemVo>> search(@NeedUser UserDetails user, ItemSearchDTO searchDTO) {
-        if (user == null) {
-            return APIResult.error(CmsWebAPICode.ACCESS_DENIED);
-        }
-        if (!user.isPlatForm()) {
-            searchDTO.setMerchantId(user.getMerchantId());
-        }
-        return itemService.search(BeanUtil.convertToMap(searchDTO));
-    }
-
-    @RequestMapping(method = RequestMethod.POST)
-    public APIResult<ItemVo> create(@RequestBody ItemDTO itemDTO) {
-        return itemService.create(itemDTO);
-    }
-
-    @RequestMapping(method = RequestMethod.PUT)
-    public APIResult<ItemVo> udpate(@RequestBody ItemDTO itemDTO) {
-        return itemService.update(itemDTO);
-    }
-
-    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
-    public APIResult<Boolean> delete(@PathVariable("id") String id) {
-        return itemService.delete(id);
-    }
-
-    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-    public APIResult<ItemVo> getItem(@PathVariable("id") String id) {
-        return itemService.getItem(id);
-    }
-
  }

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/LessonController.java

@@ -3,7 +3,7 @@ package cn.rankin.cmsweb.controller.product;
 import cn.rankin.cmsweb.service.product.LessonService;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.LessonDTO;
+import cn.rankin.data.api.product.dto.LessonDTO;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.util.BeanUtil;
 import cn.rankin.common.utils.vo.product.LessonVo;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/SupportController.java

@@ -3,7 +3,7 @@ package cn.rankin.cmsweb.controller.product;
 import cn.rankin.cmsweb.service.product.SupportService;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.SupportDTO;
+import cn.rankin.data.api.product.dto.SupportDTO;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.util.BeanUtil;
 import cn.rankin.common.utils.vo.product.SupportVo;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/TagController.java

@@ -3,7 +3,7 @@ package cn.rankin.cmsweb.controller.product;
 import cn.rankin.cmsweb.service.product.TagService;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.TagDTO;
+import cn.rankin.data.api.product.dto.TagDTO;
 import cn.rankin.common.utils.dto.search.TagSearchDTO;
 import cn.rankin.common.utils.util.BeanUtil;
 import cn.rankin.common.utils.vo.product.TagVo;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/product/WareController.java

@@ -4,7 +4,7 @@ import cn.rankin.cmsweb.service.product.proxy.WareServiceProxy;
 import cn.rankin.common.utils.api.model.APICode;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.WareDTO;
+import cn.rankin.data.api.product.dto.WareDTO;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.vo.product.WareVo;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 2
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/CourseService.java

@@ -2,8 +2,7 @@ package cn.rankin.cmsweb.service.product;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.CourseDTO;
-import cn.rankin.common.utils.dto.search.SearchDTO;
+import cn.rankin.data.api.product.dto.CourseDTO;
 import cn.rankin.common.utils.vo.product.CourseVo;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.*;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/GroupService.java

@@ -2,7 +2,7 @@ package cn.rankin.cmsweb.service.product;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.GroupDTO;
+import cn.rankin.data.api.product.dto.GroupDTO;
 import cn.rankin.common.utils.vo.product.GroupVo;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.*;

+ 0 - 29
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/ItemService.java

@@ -1,29 +0,0 @@
-package cn.rankin.cmsweb.service.product;
-
-import cn.rankin.common.utils.api.model.APIResult;
-import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.ItemDTO;
-import cn.rankin.common.utils.vo.product.ItemVo;
-import org.springframework.cloud.netflix.feign.FeignClient;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-@FeignClient(name = "${service.product.name}")
-public interface ItemService {
-
-    @RequestMapping(value = "/item/list", method = RequestMethod.GET)
-    APIResult<Page<ItemVo>> search(@RequestParam Map<String, Object> searchDTO);
-
-    @RequestMapping(value = "/item", method = RequestMethod.POST)
-    APIResult<ItemVo> create(@RequestBody ItemDTO itemDTO);
-
-    @RequestMapping(value = "/item", method = RequestMethod.PUT)
-    APIResult<ItemVo> update(@RequestBody ItemDTO itemDTO);
-
-    @RequestMapping(value = "/item/{id}", method = RequestMethod.DELETE)
-    APIResult<Boolean> delete(@PathVariable("id") String id);
-
-    @RequestMapping(value = "/item/{id}", method = RequestMethod.GET)
-    APIResult<ItemVo> getItem(@PathVariable("id") String id);
-}

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/LessonService.java

@@ -2,7 +2,7 @@ package cn.rankin.cmsweb.service.product;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.LessonDTO;
+import cn.rankin.data.api.product.dto.LessonDTO;
 import cn.rankin.common.utils.vo.product.LessonVo;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.*;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/SupportService.java

@@ -2,7 +2,7 @@ package cn.rankin.cmsweb.service.product;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.SupportDTO;
+import cn.rankin.data.api.product.dto.SupportDTO;
 import cn.rankin.common.utils.vo.product.SupportVo;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.*;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/TagService.java

@@ -2,7 +2,7 @@ package cn.rankin.cmsweb.service.product;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.TagDTO;
+import cn.rankin.data.api.product.dto.TagDTO;
 import cn.rankin.common.utils.vo.product.TagVo;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.*;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/WareService.java

@@ -2,7 +2,7 @@ package cn.rankin.cmsweb.service.product;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.WareDTO;
+import cn.rankin.data.api.product.dto.WareDTO;
 import cn.rankin.common.utils.vo.product.WareVo;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.*;

+ 1 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/product/proxy/WareServiceProxy.java

@@ -4,7 +4,7 @@ import cn.rankin.cmsweb.service.product.WareService;
 import cn.rankin.cmsweb.service.resource.ResourceService;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.WareDTO;
+import cn.rankin.data.api.product.dto.WareDTO;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.util.BeanUtil;
 import cn.rankin.common.utils.vo.product.WareVo;

+ 5 - 0
rankin-common-utils/pom.xml

@@ -86,6 +86,11 @@
             <artifactId>jackson-databind</artifactId>
             <version>2.8.10</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.4</version>
+        </dependency>
 
     </dependencies>
 

+ 3 - 0
rankin-common-utils/src/main/java/cn/rankin/common/utils/api/model/APICode.java

@@ -47,6 +47,9 @@ public class APICode {
     // api flag code
     public final static int _API_WEB_FLAG = 30000;
 
+    // product flag code
+    public final static int _PRODUCT_SERVICE_FLAG = 40000;
+
     public static BaseCode ok(String message) {
         return new BaseCode(_C_OK, message);
     }

+ 0 - 32
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/ItemDTO.java

@@ -1,32 +0,0 @@
-package cn.rankin.common.utils.dto.product;
-
-import cn.rankin.common.utils.enums.ItemStatusEnum;
-import cn.rankin.common.utils.enums.ItemTypeEnum;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.List;
-
-@Data
-public class ItemDTO implements Serializable {
-
-    private String id;
-
-    private String subId;
-
-    private String code;
-
-    private String name;
-
-    private ItemTypeEnum type;
-
-    private String merchantId;
-
-    private Integer sort;
-
-    private ItemStatusEnum status;
-
-    private List<ItemPriceDTO> priceList;
-
-    private List<String> tagList;
-}

+ 0 - 26
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/ItemPriceDTO.java

@@ -1,26 +0,0 @@
-package cn.rankin.common.utils.dto.product;
-
-import cn.rankin.common.utils.enums.PriceTypeEnum;
-import lombok.Data;
-
-import java.io.Serializable;
-
-@Data
-public class ItemPriceDTO implements Serializable {
-
-    private String id;
-
-    private String name;
-
-    private String itemId;
-
-    private PriceTypeEnum type;
-
-    private Integer duration;
-
-    private Double cpPrice;
-
-    private Double merchantPrice;
-
-    private Double terminalPrice;
-}

+ 0 - 26
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/search/ItemSearchDTO.java

@@ -1,26 +0,0 @@
-package cn.rankin.common.utils.dto.search;
-
-import cn.rankin.common.utils.enums.ItemStatusEnum;
-import cn.rankin.common.utils.enums.ItemTypeEnum;
-import lombok.Data;
-
-import java.io.Serializable;
-
-@Data
-public class ItemSearchDTO implements Serializable {
-
-    private String code;
-
-    private String name;
-
-    private ItemTypeEnum type;
-
-    private ItemStatusEnum status;
-
-    private String merchantId;
-
-    private Integer pageNo = 1;
-
-    private Integer pageSize = 10;
-
-}

+ 5 - 5
rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/EnumUtil.java

@@ -2,22 +2,22 @@ package cn.rankin.common.utils.enums;
 
 public class EnumUtil {
 
-    public static boolean compare(ItemTypeEnum itemType, TagTypeEnum tagType) {
+    public static boolean compare(ProductTypeEnum productType, TagTypeEnum tagType) {
         switch (tagType) {
             default:
                 return false;
             case COURSE:
-                if (itemType.equals(ItemTypeEnum.COURSE)) {
+                if (productType.equals(ProductTypeEnum.COURSE)) {
                     return true;
                 }
                 break;
             case SUPPORT:
-                if (itemType.equals(ItemTypeEnum.SUPPORT)) {
+                if (productType.equals(ProductTypeEnum.SUPPORT)) {
                     return true;
                 }
                 break;
             case TRAINING:
-                if (itemType.equals(ItemTypeEnum.COURSE)) {
+                if (productType.equals(ProductTypeEnum.COURSE)) {
                     return true;
                 }
                 break;
@@ -26,7 +26,7 @@ public class EnumUtil {
     }
 
     public static void main(String[] args) {
-        boolean diff = compare(ItemTypeEnum.COURSE, TagTypeEnum.SUPPORT);
+        boolean diff = compare(ProductTypeEnum.COURSE, TagTypeEnum.SUPPORT);
         System.out.println(diff);
     }
 

+ 0 - 20
rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/ItemStatusEnum.java

@@ -1,20 +0,0 @@
-package cn.rankin.common.utils.enums;
-
-public enum ItemStatusEnum {
-    SALE("出售中"), OFF("下架"), PRESELL("预售"), DEL("删除");
-
-    String name;
-
-    ItemStatusEnum(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
-}

+ 0 - 31
rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/ItemTypeEnum.java

@@ -1,31 +0,0 @@
-package cn.rankin.common.utils.enums;
-
-public enum ItemTypeEnum {
-
-    COURSE("课程"), SUPPORT("周边"), PACKAGE("课程包");
-
-    private String desc;
-
-    ItemTypeEnum(String desc) {
-        this.desc = desc;
-    }
-
-    public String getDesc() {
-        return desc;
-    }
-
-    public static ItemTypeEnum getByName(String name) {
-        for (ItemTypeEnum itemType : values()) {
-            if (itemType.name().equals(name)) {
-                return itemType;
-            }
-        }
-        return null;
-    }
-
-    public static void main(String[] args) {
-        ItemTypeEnum courseType = ItemTypeEnum.COURSE;
-        TagTypeEnum tagType = TagTypeEnum.COURSE;
-        System.out.println(courseType.name().equals(tagType.name()));
-    }
-}

+ 0 - 21
rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/PriceTypeEnum.java

@@ -1,21 +0,0 @@
-package cn.rankin.common.utils.enums;
-
-public enum PriceTypeEnum {
-    NORMAL("普通"), PACKAGE("课程包");
-
-    String name;
-
-    PriceTypeEnum(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
-}
-

+ 15 - 0
rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/ProductTypeEnum.java

@@ -0,0 +1,15 @@
+package cn.rankin.common.utils.enums;
+
+public enum ProductTypeEnum {
+    COURSE("课程"), SUPPORT("周边"), PACKAGE("课程包");
+
+    private String name;
+
+    ProductTypeEnum(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 2 - 2
rankin-product-service/src/main/java/cn/rankin/productservice/utils/ListAttributeConverter.java

@@ -1,6 +1,6 @@
-package cn.rankin.productservice.utils;
+package cn.rankin.common.utils.jpa;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import javax.persistence.AttributeConverter;
 import java.util.ArrayList;

+ 0 - 12
rankin-common-utils/src/main/java/cn/rankin/common/utils/util/ListUtil.java

@@ -1,6 +1,5 @@
 package cn.rankin.common.utils.util;
 
-import cn.rankin.common.utils.dto.product.LessonDTO;
 import com.alibaba.fastjson.JSON;
 import lombok.Data;
 
@@ -55,15 +54,4 @@ public class ListUtil {
         return result;
     }
 
-    public static void main(String[] args) {
-        List<LessonDTO> list = new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            LessonDTO tmp = new LessonDTO();
-            tmp.setCode(String.valueOf(i));
-            list.add(tmp);
-        }
-
-        Map<String, LessonDTO> test = ListUtil.convert(list, "code", LessonDTO.class);
-        System.out.println(JSON.toJSONString(test));
-    }
 }

+ 0 - 26
rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/ItemPriceVo.java

@@ -1,26 +0,0 @@
-package cn.rankin.common.utils.vo.product;
-
-import cn.rankin.common.utils.enums.PriceTypeEnum;
-import lombok.Data;
-
-import java.io.Serializable;
-
-@Data
-public class ItemPriceVo implements Serializable {
-
-    private String id;
-
-    private String name;
-
-    private String itemId;
-
-    private PriceTypeEnum type;
-
-    private Integer duration;
-
-    private Double cpPrice;
-
-    private Double merchantPrice;
-
-    private Double terminalPrice;
-}

+ 0 - 42
rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/ItemVo.java

@@ -1,42 +0,0 @@
-package cn.rankin.common.utils.vo.product;
-
-import cn.rankin.common.utils.dto.product.ItemPriceDTO;
-import cn.rankin.common.utils.dto.product.TagDTO;
-import cn.rankin.common.utils.enums.ItemStatusEnum;
-import cn.rankin.common.utils.enums.ItemTypeEnum;
-import lombok.Data;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
-
-@Data
-public class ItemVo implements Serializable {
-
-    private String id;
-
-    private String subId;
-
-    private String code;
-
-    private String name;
-
-    private ItemTypeEnum type;
-
-    private String merchantId;
-
-    private Integer sort;
-
-    private ItemStatusEnum status;
-
-    private Date gmtCreated;
-
-    private Date gmtModified;
-
-
-    private List<ItemPriceDTO> priceList;
-
-    private List<TagDTO> tagList;
-
-}

+ 63 - 0
rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/ProductVo.java

@@ -0,0 +1,63 @@
+package cn.rankin.common.utils.vo.product;
+
+import cn.rankin.common.utils.enums.ProductTypeEnum;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/*
+{
+    "code": 200,
+    "success": true,
+    "message": null,
+    "data": {
+      'totalNum':300,
+      'page':0,
+      'pageSize':10
+      'recs':[
+        {
+          'id':'xxx',
+          'pid': 'xxx',
+          'name':'xxx',
+          'code':'xxx',
+          'type':'xxx',
+          'gmt_modified':1321232,
+          'merchantId':'xxxx',
+          'goods':[{
+            'id':'xxx',
+            'duration':2322,
+            'chargeUnit':'xxx',
+            'cpPrice':12.01,
+            'merchantPrice':23.92,
+            'terminalPrice':50.1,
+            },
+            ...
+            ],
+        }
+        ...
+      ],
+    }
+}
+ */
+@Data
+public class ProductVo implements Serializable {
+
+    private String id;
+
+    private String pid;
+
+    private String name;
+
+    private String code;
+
+    private ProductTypeEnum type;
+
+    private String merchantId;
+
+    private Date gmtCreated;
+
+    private Date gmtModified;
+
+}

+ 2 - 2
rankin-common-utils/src/main/java/cn/rankin/common/utils/vo/product/RecommendVo.java

@@ -1,7 +1,7 @@
 package cn.rankin.common.utils.vo.product;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.common.utils.enums.ItemTypeEnum;
+import cn.rankin.common.utils.enums.ProductTypeEnum;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -24,7 +24,7 @@ public class RecommendVo implements Serializable {
 
     private Date gmtModified;
 
-    private ItemTypeEnum type;
+    private ProductTypeEnum type;
 
     private String name;
 }

+ 72 - 0
rankin-data-api/pom.xml

@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>cn.rankin</groupId>
+	<artifactId>rankin-data-api</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+
+	<name>rankin-data-api</name>
+	<description>data api for Spring Boot</description>
+
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>1.5.9.RELEASE</version>
+		<relativePath/> <!-- lookup parent from repository -->
+	</parent>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+		<java.version>1.8</java.version>
+	</properties>
+
+	<dependencies>
+        <dependency>
+            <groupId>cn.rankin</groupId>
+            <artifactId>rankin-common-utils</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.4</version>
+        </dependency>
+    </dependencies>
+
+	<build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>2.4</version>
+                <configuration>
+                    <attach>true</attach>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <encoding>UTF-8</encoding>
+                    <showWarnings>true</showWarnings>
+                </configuration>
+            </plugin>
+        </plugins>
+	</build>
+
+
+</project>

+ 1 - 1
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/CourseDTO.java

@@ -1,4 +1,4 @@
-package cn.rankin.common.utils.dto.product;
+package cn.rankin.data.api.product.dto;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;

+ 1 - 1
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/CourseSubRelationDTO.java

@@ -1,4 +1,4 @@
-package cn.rankin.common.utils.dto.product;
+package cn.rankin.data.api.product.dto;
 
 import cn.rankin.common.utils.enums.CourseSubTypeEnum;
 import lombok.Data;

+ 1 - 1
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/GroupDTO.java

@@ -1,4 +1,4 @@
-package cn.rankin.common.utils.dto.product;
+package cn.rankin.data.api.product.dto;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;

+ 1 - 1
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/LessonDTO.java

@@ -1,4 +1,4 @@
-package cn.rankin.common.utils.dto.product;
+package cn.rankin.data.api.product.dto;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;

+ 34 - 0
rankin-data-api/src/main/java/cn/rankin/data/api/product/dto/MerchantProductSearchDTO.java

@@ -0,0 +1,34 @@
+package cn.rankin.data.api.product.dto;
+
+import cn.rankin.common.utils.enums.ProductTypeEnum;
+import lombok.Data;
+import lombok.ToString;
+
+/*
+{
+  'code':'xxx',
+  'name':'xxxx',
+  'type':0,
+  'merchantId':23,
+  'pageSize':10,
+  'pageNum':0,
+}
+ */
+
+@Data
+@ToString
+public class MerchantProductSearchDTO {
+
+    private String code;
+
+    private String name;
+
+    private ProductTypeEnum type;
+
+    private String merchantId;
+
+    private Integer pageSize;
+
+    private Integer pageNo;
+
+}

+ 20 - 0
rankin-data-api/src/main/java/cn/rankin/data/api/product/dto/ProductSearchDTO.java

@@ -0,0 +1,20 @@
+package cn.rankin.data.api.product.dto;
+
+import cn.rankin.common.utils.enums.ProductTypeEnum;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ProductSearchDTO implements Serializable {
+
+    private String code;
+
+    private String name;
+
+    private ProductTypeEnum type;
+
+    private Integer pageNo;
+
+    private Integer pageSize;
+}

+ 1 - 1
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/SupportDTO.java

@@ -1,4 +1,4 @@
-package cn.rankin.common.utils.dto.product;
+package cn.rankin.data.api.product.dto;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;

+ 1 - 1
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/TagDTO.java

@@ -1,4 +1,4 @@
-package cn.rankin.common.utils.dto.product;
+package cn.rankin.data.api.product.dto;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.enums.TagTypeEnum;

+ 1 - 1
rankin-common-utils/src/main/java/cn/rankin/common/utils/dto/product/WareDTO.java

@@ -1,4 +1,4 @@
-package cn.rankin.common.utils.dto.product;
+package cn.rankin.data.api.product.dto;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;

+ 4 - 4
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Course.java

@@ -1,11 +1,11 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.productservice.vo.CourseSubItemVo;
+import cn.rankin.data.api.product.vo.CourseSubItemVo;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 import lombok.ToString;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.hibernate.annotations.DynamicInsert;
 import org.hibernate.annotations.DynamicUpdate;
 
@@ -17,7 +17,7 @@ import java.util.List;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_course", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
+@Table(name = "course", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
 @DynamicInsert
 @DynamicUpdate
 public class Course implements Serializable{

+ 2 - 2
rankin-product-service/src/main/java/cn/rankin/productservice/entity/CourseSubRelation.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.enums.CourseSubTypeEnum;
@@ -14,7 +14,7 @@ import java.util.Date;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_course_sub_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"course_id", "sub_id", "type"})},
+@Table(name = "course_sub_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"course_id", "sub_id", "type"})},
         indexes = {@Index(columnList = "course_id"), @Index(columnList = "sub_id")})
 @DynamicInsert
 @DynamicUpdate

+ 2 - 2
rankin-product-service/src/main/java/cn/rankin/productservice/entity/CourseSupportRelation.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;
@@ -12,7 +12,7 @@ import java.util.Date;
 
 @Data
 @ToString
-@Table(name = "lj_course_support_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"course_id", "support_id"})},
+@Table(name = "course_support_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"course_id", "support_id"})},
         indexes = {@Index(columnList = "course_id"), @Index(columnList = "support_id")})
 @Entity
 @DynamicInsert

+ 4 - 7
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Ware.java

@@ -1,27 +1,24 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.common.utils.enums.WareTypeEnum;
-import cn.rankin.productservice.utils.ListAttributeConverter;
+import cn.rankin.common.utils.jpa.ListAttributeConverter;
 import lombok.Data;
 import lombok.ToString;
-import org.apache.commons.lang.StringUtils;
 import org.hibernate.annotations.DynamicInsert;
 import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
 @Data
 @ToString
 @Entity
-@Table(name = "lj_ware", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
+@Table(name = "courseware", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
 @DynamicInsert
 @DynamicUpdate
-public class Ware implements Serializable{
+public class Courseware implements Serializable{
 
     @Id
     private String id;

+ 78 - 0
rankin-data-api/src/main/java/cn/rankin/data/api/product/entity/Goods.java

@@ -0,0 +1,78 @@
+package cn.rankin.data.api.product.entity;
+
+import cn.rankin.common.utils.enums.BaseStatusEnum;
+import cn.rankin.common.utils.enums.ProductTypeEnum;
+import lombok.Data;
+import lombok.ToString;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/*
+| field | type | null | default | desc | extra |
+|:----:|:-----|:-------|:------|:-----|:-----|
+| id | varchar(512) | no | | 主键 | pri |
+| pid | varchar(512) | no | | 产品id |  |
+| product_type | tinyint | no | | 产品类型, 课程/周边/课程包 | |
+| merchant_id | varchar(512) | no | | 渠道id | |
+| duration | int | no | | 售卖时长 | |
+| charge_unit | varchar(512) | no | | 计价单位, 如"季度", "件"等 | |
+| cp_price | double(16,2) | no | 0 | 内容提供商成本价 | |
+| merchant_price | double(16,2) | no | 0 | 给渠道价格 | |
+| terminal_price | double(16,2) | no | 0 | 终端显示价格 | |
+| status | smallint | no | | 状态 | |
+| gmt_created | timestamp | no | now | 创建时间 | |
+| gmt_modified | timestamp | no | now | 更新时间 | | |
+*/
+
+@Data
+@ToString
+@Entity
+@DynamicInsert
+@DynamicUpdate
+@Table(name = "goods")
+public class Goods implements Serializable {
+
+    @Id
+    private String id;
+
+    private String pid;
+
+    @Enumerated(EnumType.ORDINAL)
+    private ProductTypeEnum type;
+
+    @Column(name = "merchant_id")
+    private String merchantId;
+
+    private Integer duration;
+
+    @Column(name = "charge_unit")
+    private String chargeUnit;
+
+    @Column(name = "cp_price")
+    private BigDecimal cpPrice;
+
+    @Column(name = "merchant_price")
+    private BigDecimal merchantPrice;
+
+    @Column(name = "terminal_Price")
+    private BigDecimal terminalPrice;
+
+    @Column(name = "sort", nullable = false)
+    private Integer sort;
+
+    @Enumerated(EnumType.ORDINAL)
+    private BaseStatusEnum status;
+
+    @Column(name = "gmt_created", updatable = false, insertable = false, columnDefinition = "timestamp NULL DEFAULT CURRENT_TIMESTAMP")
+    @Temporal(TemporalType.TIMESTAMP)
+    private Date gmtCreated;
+
+    @Column(name = "gmt_modified", updatable = false, insertable = false, columnDefinition = "timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
+    @Temporal(TemporalType.TIMESTAMP)
+    private Date gmtModified;
+}

+ 3 - 3
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Lesson.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;
@@ -14,7 +14,7 @@ import java.util.List;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_lesson", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
+@Table(name = "lesson", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
 @DynamicInsert
 @DynamicUpdate
 public class Lesson implements Serializable {
@@ -47,5 +47,5 @@ public class Lesson implements Serializable {
     private Date gmtModified;
 
     @Transient
-    private List<Ware> wareList;
+    private List<Courseware> coursewareList;
 }

+ 2 - 2
rankin-product-service/src/main/java/cn/rankin/productservice/entity/LessonWareRelation.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;
@@ -13,7 +13,7 @@ import java.util.Date;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_lesson_ware_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"lesson_id", "ware_id"})},
+@Table(name = "lesson_ware_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"lesson_id", "ware_id"})},
         indexes = {@Index(columnList = "lesson_id"), @Index(columnList = "ware_id")})
 @DynamicInsert
 @DynamicUpdate

+ 16 - 21
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Package.java

@@ -1,6 +1,7 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
-import cn.rankin.common.utils.enums.ItemStatusEnum;
+import cn.rankin.common.utils.enums.BaseStatusEnum;
+import cn.rankin.common.utils.enums.ProductTypeEnum;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;
@@ -13,36 +14,30 @@ import java.util.List;
 
 @Data
 @ToString
+@Table(name = "merchant_product", uniqueConstraints = {@UniqueConstraint(columnNames = {"pid", "merchant_id"})})
 @Entity
-@Table(name = "lj_package")
-@DynamicInsert
 @DynamicUpdate
-public class Package implements Serializable {
+@DynamicInsert
+public class MerchantProduct implements Serializable {
 
     @Id
     private String id;
 
-    @Column(name = "merchant_id")
-    private String merchantId;
-
-    @Column
-    private String name;
+    @Column(name = "pid", nullable = false)
+    private String pid;
 
-    @Column
-    private String digest;
+    private String code;
 
-    @Column(name = "cv_img_ids")
-    private String cvImgIds;
+    private String name;
 
-    @Column(name = "dis_price")
-    private Double disPrice;
+    @Enumerated(EnumType.ORDINAL)
+    private ProductTypeEnum type;
 
-    @Column
-    private Integer sort;
+    @Column(name = "merchant_id", nullable = false)
+    private String merchantId;
 
-    @Column
     @Enumerated(EnumType.ORDINAL)
-    private ItemStatusEnum status;
+    private BaseStatusEnum status;
 
     @Column(name = "gmt_created", updatable = false, insertable = false, columnDefinition = "timestamp NULL DEFAULT CURRENT_TIMESTAMP")
     @Temporal(TemporalType.TIMESTAMP)
@@ -53,5 +48,5 @@ public class Package implements Serializable {
     private Date gmtModified;
 
     @Transient
-    private List<Item> itemList;
+    private List<Goods> goods;
 }

+ 14 - 14
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Group.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;
@@ -9,38 +9,38 @@ import org.hibernate.annotations.DynamicUpdate;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
-import java.util.List;
 
+/*
+| field | type | null | default | desc | extra |
+|----|:-----|:-------|:------|:-----|:-----|
+| id | varchar(512) | no | | 主键 | pri |
+| code | varchar(1024) | yes | null | 课程包编号 | |
+| name | varchar(1024) | no | '' | 课程包名 | |
+| sort | int | no | 0 | 排序字段 | |
+| status | smallint | no | | 状态 | |
+| gmt_created | timestamp | no | now | 创建时间 | |
+| gmt_modified | timestamp | no | now | 更新时间 | | |
+ */
 @Data
 @ToString
 @Entity
-@Table(name = "lj_group", uniqueConstraints = {@UniqueConstraint(columnNames = {"code", "merchant_id"})})
 @DynamicInsert
 @DynamicUpdate
-public class Group implements Serializable {
+@Table(name = "package")
+public class Package implements Serializable {
 
     @Id
     private String id;
 
-    @Column(unique = true, updatable = false)
     private String code;
 
-    @Column(nullable = false)
     private String name;
 
-    @Column(name = "merchant_id", updatable = false)
-    private String merchantId;
-
-    @Column
     private Integer sort;
 
-    @Column
     @Enumerated(EnumType.ORDINAL)
     private BaseStatusEnum status;
 
-    @Transient
-    private List<Tag> tagList;
-
     @Column(name = "gmt_created", updatable = false, insertable = false, columnDefinition = "timestamp NULL DEFAULT CURRENT_TIMESTAMP")
     @Temporal(TemporalType.TIMESTAMP)
     private Date gmtCreated;

+ 53 - 0
rankin-data-api/src/main/java/cn/rankin/data/api/product/entity/PackageProductRelation.java

@@ -0,0 +1,53 @@
+package cn.rankin.data.api.product.entity;
+
+import cn.rankin.common.utils.enums.BaseStatusEnum;
+import lombok.Data;
+import lombok.ToString;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/*
+| field | type | null | default | desc | extra |
+|----|:-----|:-------|:------|:-----|:-----|
+| id | varchar(512) | no | | 主键 | pri |
+| package_id | varchar(512) | no | | 课程包id | |
+| product_id | varchar(512) | no | | | |
+| cpPrice | float | no | | 产品在课程包内的cp价格 | |
+| sort | int | no | | 顺序 | |
+| status | smallint | no | | 状态 | |
+| gmt_created | timestamp | no | now | 创建时间 | | |
+ */
+@Data
+@ToString
+@Entity
+@Table(name = "package_product_relation")
+@DynamicInsert
+@DynamicUpdate
+public class PackageProductRelation implements Serializable {
+
+    @Id
+    private String id;
+
+    @Column(name = "package_id")
+    private String packageId;
+
+    private String pid;
+
+    @Column(name = "cp_price")
+    private BigDecimal cpPrice;
+
+    private Integer sort;
+
+    @Enumerated(EnumType.ORDINAL)
+    private BaseStatusEnum status;
+
+
+    @Column(name = "gmt_created", updatable = false, insertable = false, columnDefinition = "timestamp NULL DEFAULT CURRENT_TIMESTAMP")
+    @Temporal(TemporalType.TIMESTAMP)
+    private Date gmtCreated;
+}

+ 11 - 16
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Group.java

@@ -1,6 +1,7 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
+import cn.rankin.common.utils.enums.ProductTypeEnum;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;
@@ -9,38 +10,31 @@ import org.hibernate.annotations.DynamicUpdate;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
-import java.util.List;
 
 @Data
 @ToString
 @Entity
-@Table(name = "lj_group", uniqueConstraints = {@UniqueConstraint(columnNames = {"code", "merchant_id"})})
-@DynamicInsert
 @DynamicUpdate
-public class Group implements Serializable {
+@DynamicInsert
+@Table(name = "product")
+public class Product implements Serializable {
 
     @Id
     private String id;
 
-    @Column(unique = true, updatable = false)
+    @Column(name = "pid", nullable = false)
+    private String pid;
+
     private String code;
 
-    @Column(nullable = false)
     private String name;
 
-    @Column(name = "merchant_id", updatable = false)
-    private String merchantId;
-
-    @Column
-    private Integer sort;
+    @Enumerated(EnumType.ORDINAL)
+    private ProductTypeEnum type;
 
-    @Column
     @Enumerated(EnumType.ORDINAL)
     private BaseStatusEnum status;
 
-    @Transient
-    private List<Tag> tagList;
-
     @Column(name = "gmt_created", updatable = false, insertable = false, columnDefinition = "timestamp NULL DEFAULT CURRENT_TIMESTAMP")
     @Temporal(TemporalType.TIMESTAMP)
     private Date gmtCreated;
@@ -49,3 +43,4 @@ public class Group implements Serializable {
     @Temporal(TemporalType.TIMESTAMP)
     private Date gmtModified;
 }
+

+ 7 - 6
rankin-product-service/src/main/java/cn/rankin/productservice/entity/ItemTagRelation.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;
@@ -12,18 +12,18 @@ import java.util.Date;
 
 @Data
 @ToString
-@Table(name = "lj_item_tag_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"item_id", "tag_id"})},
-        indexes = {@Index(columnList = "item_id"), @Index(columnList = "tag_id")})
+@Table(name = "product_tag_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"pid", "tag_id"})},
+        indexes = {@Index(columnList = "pid"), @Index(columnList = "tag_id")})
 @Entity
 @DynamicUpdate
 @DynamicInsert
-public class ItemTagRelation implements Serializable {
+public class ProductTagRelation implements Serializable {
 
     @Id
     private String id;
 
-    @Column(name = "item_id")
-    private String itemId;
+    @Column(name = "pid")
+    private String pid;
 
     @Column(name = "tag_id")
     private String tagId;
@@ -36,4 +36,5 @@ public class ItemTagRelation implements Serializable {
 
     @Temporal(TemporalType.TIMESTAMP)
     private Date gmtCreated;
+
 }

+ 12 - 9
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Recommend.java

@@ -1,7 +1,7 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.common.utils.enums.ItemTypeEnum;
+import cn.rankin.common.utils.enums.ProductTypeEnum;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;
@@ -14,7 +14,7 @@ import java.util.Date;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_recommend", uniqueConstraints = {@UniqueConstraint(columnNames = {"merchant_id", "item_id"})})
+@Table(name = "recommend", uniqueConstraints = {@UniqueConstraint(columnNames = {"merchant_id", "pid"})})
 @DynamicInsert
 @DynamicUpdate
 public class Recommend implements Serializable {
@@ -29,17 +29,17 @@ public class Recommend implements Serializable {
     @Column(name = "merchant_id")
     private String merchantId;
 
-    @Column(name = "item_id")
-    private String itemId;
-
-    @Enumerated(EnumType.ORDINAL)
-    private BaseStatusEnum status;
+    @Column(name = "pid")
+    private String pid;
 
     @Column(name="sort")
     private Integer sort;
 
     @Enumerated(EnumType.ORDINAL)
-    private ItemTypeEnum type;
+    private ProductTypeEnum type;
+
+    @Enumerated(EnumType.ORDINAL)
+    private BaseStatusEnum status;
 
     @Column(name = "gmt_created", updatable = false, insertable = false, columnDefinition = "timestamp NULL DEFAULT CURRENT_TIMESTAMP")
     @Temporal(TemporalType.TIMESTAMP)
@@ -52,4 +52,7 @@ public class Recommend implements Serializable {
     @Transient
     private String name;
 
+    @Transient
+    private String code;
+
 }

+ 3 - 4
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Support.java

@@ -1,7 +1,7 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.productservice.utils.ListAttributeConverter;
+import cn.rankin.common.utils.jpa.ListAttributeConverter;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;
@@ -11,12 +11,11 @@ import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
-import java.util.Set;
 
 @Data
 @ToString
 @Entity
-@Table(name = "lj_support", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
+@Table(name = "support", indexes = {@Index(columnList = "code"), @Index(columnList = "name")})
 @DynamicInsert
 @DynamicUpdate
 public class Support implements Serializable {

+ 3 - 3
rankin-product-service/src/main/java/cn/rankin/productservice/entity/SupportSelfRelation.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;
@@ -13,11 +13,11 @@ import java.util.Date;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_support_self_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"fid", "tid"})},
+@Table(name = "support_reference", uniqueConstraints = {@UniqueConstraint(columnNames = {"fid", "tid"})},
         indexes = {@Index(columnList = "fid"), @Index(columnList = "tid")})
 @DynamicInsert
 @DynamicUpdate
-public class SupportSelfRelation implements Serializable {
+public class SupportReference implements Serializable {
 
     @Id
     private String id;

+ 4 - 4
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Tag.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.enums.TagTypeEnum;
@@ -15,7 +15,7 @@ import java.util.List;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_tag", uniqueConstraints = {@UniqueConstraint(columnNames = {"name", "group_id"})},
+@Table(name = "tag", uniqueConstraints = {@UniqueConstraint(columnNames = {"name", "group_id"})},
         indexes = {@Index(columnList = "name")})
 @DynamicInsert
 @DynamicUpdate
@@ -49,14 +49,14 @@ public class Tag implements Serializable {
     @Temporal(TemporalType.TIMESTAMP)
     private Date gmtModified;
 
-    @Transient
+    @Column(name = "merchant_id")
     private String merchantId;
 
     @Transient
     private String groupName;
 
     @Transient
-    private List<Item> itemList;
+    private List itemList;
 
     public Tag() {}
 

+ 3 - 3
rankin-product-service/src/main/java/cn/rankin/productservice/entity/Group.java

@@ -1,4 +1,4 @@
-package cn.rankin.productservice.entity;
+package cn.rankin.data.api.product.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import lombok.Data;
@@ -14,10 +14,10 @@ import java.util.List;
 @Data
 @ToString
 @Entity
-@Table(name = "lj_group", uniqueConstraints = {@UniqueConstraint(columnNames = {"code", "merchant_id"})})
+@Table(name = "tag_group", uniqueConstraints = {@UniqueConstraint(columnNames = {"code", "merchant_id"})})
 @DynamicInsert
 @DynamicUpdate
-public class Group implements Serializable {
+public class TagGroup implements Serializable {
 
     @Id
     private String id;

+ 4 - 6
rankin-product-service/src/main/java/cn/rankin/productservice/vo/CourseSubItemVo.java

@@ -1,14 +1,12 @@
-package cn.rankin.productservice.vo;
+package cn.rankin.data.api.product.vo;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.enums.CourseSubTypeEnum;
-import cn.rankin.productservice.entity.Lesson;
-import cn.rankin.productservice.entity.Ware;
+import cn.rankin.data.api.product.entity.Lesson;
+import cn.rankin.data.api.product.entity.Courseware;
 import lombok.Data;
 import org.springframework.beans.BeanUtils;
 
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
@@ -28,7 +26,7 @@ public class CourseSubItemVo implements Serializable{
 
     private BaseStatusEnum status;
 
-    private List<Ware> wareList;
+    private List<Courseware> coursewareList;
 
     private Date gmtCreated;
 

+ 27 - 0
rankin-data-api/src/main/java/cn/rankin/data/api/product/vo/ProductVo.java

@@ -0,0 +1,27 @@
+package cn.rankin.data.api.product.vo;
+
+import cn.rankin.common.utils.enums.ProductTypeEnum;
+import cn.rankin.data.api.product.entity.Goods;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class ProductVo implements Serializable {
+
+    private String id;
+
+    private String pid;
+
+    private String code;
+
+    private String name;
+
+    private ProductTypeEnum type;
+
+    private Date gmtCreated;
+
+    private Date gmtModified;
+}

+ 6 - 0
rankin-product-service/pom.xml

@@ -54,6 +54,12 @@
             <artifactId>rankin-common-utils</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
+
+        <dependency>
+            <groupId>cn.rankin</groupId>
+            <artifactId>rankin-data-api</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
 	</dependencies>
 
 	<dependencyManagement>

+ 74 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/configuration/PersistConfiguration.java

@@ -0,0 +1,74 @@
+package cn.rankin.productservice.configuration;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.EnvironmentAware;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+
+/**
+ * 类名:PersistConfiguration  <br />
+ *
+ * 功能:持久化相关配置
+ *
+ * @author xtwin <br />
+ * 创建时间:2016年7月26日 上午9:56:48  <br />
+ * @version 2016年7月26日
+ */
+@Configuration
+@EntityScan(basePackages={"cn.rankin.data.api.product.entity"})
+public class PersistConfiguration implements EnvironmentAware {
+	
+	// 日志记录器
+	private static final Logger logger = LoggerFactory.getLogger(PersistConfiguration.class);
+	
+	// 应用环境信息
+	private Environment environment;
+
+	@Bean(name="redisTemplate")
+	public RedisTemplate<String, Object> redisTemplate(JedisConnectionFactory factory){
+		String index = environment.getProperty("spring.redis.database", "0");
+		RedisTemplate<String, Object> template = new RedisTemplate<>();
+		template.setConnectionFactory(factory);
+		factory.setDatabase(Integer.parseInt(index));
+
+		Jackson2JsonRedisSerializer jackson2JsonRedisSerializer=new Jackson2JsonRedisSerializer(Object.class);
+		ObjectMapper om=new ObjectMapper();
+		om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+		om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+		jackson2JsonRedisSerializer.setObjectMapper(om);
+		template.setKeySerializer(new StringRedisSerializer());
+		template.setValueSerializer(jackson2JsonRedisSerializer);
+		template.setDefaultSerializer(jackson2JsonRedisSerializer);
+		template.setHashValueSerializer(jackson2JsonRedisSerializer);
+		template.setHashKeySerializer(new StringRedisSerializer());
+		template.afterPropertiesSet();
+		return template;
+	}
+
+
+	/**
+	 * 功能: 由spring注入环境信息 <br/>
+	 * 
+	 * 重写:xtwin <br/>
+	 * 
+	 * @version :2016年7月27日 上午10:02:15<br/>
+	 * 
+	 * @param environment <br/>
+	 * @see EnvironmentAware#setEnvironment(Environment)
+	 */
+	@Override
+	public void setEnvironment(Environment environment) {
+		this.environment = environment;
+	}
+}

+ 14 - 13
rankin-product-service/src/main/java/cn/rankin/productservice/controller/CourseController.java

@@ -1,17 +1,18 @@
 package cn.rankin.productservice.controller;
 
 import cn.rankin.common.utils.api.model.BaseCode;
-import cn.rankin.common.utils.api.model.APICode;
 import cn.rankin.common.utils.api.model.APIResult;
-import cn.rankin.common.utils.dto.product.CourseDTO;
-import cn.rankin.common.utils.dto.product.CourseSubRelationDTO;
+import cn.rankin.data.api.product.dto.CourseDTO;
+import cn.rankin.data.api.product.dto.CourseSubRelationDTO;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.api.page.Page;
 import cn.rankin.common.utils.enums.BaseOrderEnum;
-import cn.rankin.productservice.entity.*;
+import cn.rankin.data.api.product.entity.Course;
+import cn.rankin.data.api.product.entity.Support;
+import cn.rankin.productservice.code.ProductServiceAPICode;
 import cn.rankin.productservice.proxy.CourseServiceProxy;
 import cn.rankin.productservice.service.*;
-import cn.rankin.productservice.vo.CourseSubItemVo;
+import cn.rankin.data.api.product.vo.CourseSubItemVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,9 +35,6 @@ public class CourseController {
     @Autowired
     private CourseServiceProxy courseServiceProxy;
 
-    @Autowired
-    private ItemService itemService;
-
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     public APIResult<Page<Course>> search(SearchDTO searchDTO) {
         Course course = new Course();
@@ -65,11 +63,11 @@ public class CourseController {
     public APIResult<Course> create(@RequestBody CourseDTO courseDTO) {
         String code = courseDTO.getCode();
         if (StringUtils.isEmpty(code)) {
-            return APIResult.error(APICode.PARAMETER_ERROR);
+            return APIResult.error(ProductServiceAPICode.PARAMETER_ERROR);
         }
 
         if (courseService.exists(code)) {
-            return APIResult.error(APICode.ALREADY_EXISTS);
+            return APIResult.error(ProductServiceAPICode.ALREADY_EXISTS);
         }
 
         APIResult<Course> result = courseService.create(courseDTO);
@@ -111,7 +109,7 @@ public class CourseController {
     @RequestMapping(method = RequestMethod.PUT)
     public APIResult<Course> update(@RequestBody CourseDTO courseDTO) {
         if (courseDTO.getId() == null) {
-            return APIResult.error(APICode.PARAMETER_ERROR);
+            return APIResult.error(ProductServiceAPICode.PARAMETER_ERROR);
         }
 
         APIResult<Course> result = courseService.update(courseDTO);
@@ -153,9 +151,10 @@ public class CourseController {
     @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
     public APIResult delete(@PathVariable("id") String id) {
         if (StringUtils.isEmpty(id)) {
-            return APIResult.error(APICode.PARAMETER_ERROR);
+            return APIResult.error(ProductServiceAPICode.PARAMETER_ERROR);
         }
 
+        /*
         APIResult<List<Item>> itemResult = itemService.findAllBySubId(id);
         if (itemResult.getData() == null || itemResult.getData().size() == 0) {
             return courseService.delete(id);
@@ -166,12 +165,14 @@ public class CourseController {
 
         return result;
 
+*/
+        return null;
     }
 
     @RequestMapping(value = "/{id}", method = RequestMethod.GET)
     public APIResult<Course> getCourse(@PathVariable("id") String id) {
         if (StringUtils.isEmpty(id)) {
-            return APIResult.error(APICode.PARAMETER_ERROR);
+            return APIResult.error(ProductServiceAPICode.PARAMETER_ERROR);
         }
 
         Course result = courseServiceProxy.getCourse(id);

+ 29 - 29
rankin-product-service/src/main/java/cn/rankin/productservice/controller/GroupController.java

@@ -3,13 +3,13 @@ package cn.rankin.productservice.controller;
 import cn.rankin.common.utils.api.model.BaseCode;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.GroupDTO;
-import cn.rankin.common.utils.dto.product.TagDTO;
+import cn.rankin.data.api.product.dto.GroupDTO;
+import cn.rankin.data.api.product.dto.TagDTO;
 import cn.rankin.common.utils.dto.search.GroupSearchDTO;
 import cn.rankin.common.utils.enums.BaseOrderEnum;
-import cn.rankin.productservice.entity.Group;
-import cn.rankin.productservice.entity.Tag;
-import cn.rankin.productservice.service.GroupService;
+import cn.rankin.data.api.product.entity.TagGroup;
+import cn.rankin.data.api.product.entity.Tag;
+import cn.rankin.productservice.service.TagGroupService;
 import cn.rankin.productservice.service.TagService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,51 +26,51 @@ import java.util.List;
 public class GroupController {
 
     @Autowired
-    private GroupService groupService;
+    private TagGroupService tagGroupService;
 
     @Autowired
     private TagService tagService;
 
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    public APIResult<Page<Group>> search(GroupSearchDTO searchDTO) {
-        Group group = new Group();
+    public APIResult<Page<TagGroup>> search(GroupSearchDTO searchDTO) {
+        TagGroup tagGroup = new TagGroup();
 
         String code = searchDTO.getCode();
         if (!StringUtils.isEmpty(code)) {
-            group.setCode("%" + code + "%");
+            tagGroup.setCode("%" + code + "%");
         }
 
         String name = searchDTO.getName();
         if (!StringUtils.isEmpty(name)) {
-            group.setName("%" + name + "%");
+            tagGroup.setName("%" + name + "%");
         }
 
         // others
-        group.setStatus(searchDTO.getStatus());
-        group.setMerchantId(searchDTO.getMerchantId());
+        tagGroup.setStatus(searchDTO.getStatus());
+        tagGroup.setMerchantId(searchDTO.getMerchantId());
 
         // sort
         LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap<>();
         sort.put("gmtModified", BaseOrderEnum.DESC);
 
-        return groupService.search(group, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
+        return tagGroupService.search(tagGroup, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
     }
 
     @Transactional
     @RequestMapping(method = RequestMethod.POST)
-    public APIResult<Group> create(@Valid @RequestBody GroupDTO groupDTO) {
+    public APIResult<TagGroup> create(@Valid @RequestBody GroupDTO groupDTO) {
 
-        APIResult<Group> result = groupService.create(groupDTO);
+        APIResult<TagGroup> result = tagGroupService.create(groupDTO);
         if (!result.getSuccess()) {
             return result;
         }
 
-        Group group = result.getData();
+        TagGroup tagGroup = result.getData();
 
         List<TagDTO> tagDTOList = groupDTO.getTagList();
         if (!CollectionUtils.isEmpty(tagDTOList)) {
-            APIResult<List<Tag>> tagResult = tagService.updateGroupRelation(group.getId(), tagDTOList);
-            group.setTagList(tagResult.getData());
+            APIResult<List<Tag>> tagResult = tagService.updateGroupRelation(tagGroup.getId(), tagDTOList);
+            tagGroup.setTagList(tagResult.getData());
         }
 
         return result;
@@ -78,21 +78,21 @@ public class GroupController {
 
     @Transactional
     @RequestMapping(method = RequestMethod.PUT)
-    public APIResult<Group> update(@Valid @RequestBody GroupDTO groupDTO) {
-        APIResult<Group> result = groupService.update(groupDTO);
+    public APIResult<TagGroup> update(@Valid @RequestBody GroupDTO groupDTO) {
+        APIResult<TagGroup> result = tagGroupService.update(groupDTO);
         if (!result.getSuccess()) {
             return result;
         }
 
-        Group group = result.getData();
+        TagGroup tagGroup = result.getData();
 
         List<TagDTO> tagDTOList = groupDTO.getTagList();
         if (tagDTOList != null) {
-            APIResult<List<Tag>> tagResult = tagService.updateGroupRelation(group.getId(), tagDTOList);
+            APIResult<List<Tag>> tagResult = tagService.updateGroupRelation(tagGroup.getId(), tagDTOList);
             if (!tagResult.getSuccess()) {
                 return APIResult.error(new BaseCode(tagResult.getCode(), tagResult.getMessage()));
             }
-            group.setTagList(tagResult.getData());
+            tagGroup.setTagList(tagResult.getData());
         }
 
         return result;
@@ -100,7 +100,7 @@ public class GroupController {
 
     @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
     public APIResult<Boolean> delete(@PathVariable("id") String id) {
-        APIResult<Boolean> groupResult = groupService.delete(id);
+        APIResult<Boolean> groupResult = tagGroupService.delete(id);
         if (!groupResult.getSuccess()) {
             return groupResult;
         }
@@ -110,10 +110,10 @@ public class GroupController {
     }
 
     @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-    public APIResult<Group> getGroup(@PathVariable("id") String id) {
-        APIResult<Group> result = groupService.findNormalById(id);
-        Group group = result.getData();
-        if (!result.getSuccess() || group == null) {
+    public APIResult<TagGroup> getGroup(@PathVariable("id") String id) {
+        APIResult<TagGroup> result = tagGroupService.findNormalById(id);
+        TagGroup tagGroup = result.getData();
+        if (!result.getSuccess() || tagGroup == null) {
             return result;
         }
 
@@ -122,7 +122,7 @@ public class GroupController {
             return APIResult.error(new BaseCode(tagResult.getCode(), tagResult.getMessage()));
         }
 
-        group.setTagList(tagResult.getData());
+        tagGroup.setTagList(tagResult.getData());
         return result;
 
     }

+ 0 - 148
rankin-product-service/src/main/java/cn/rankin/productservice/controller/ItemController.java

@@ -1,148 +0,0 @@
-package cn.rankin.productservice.controller;
-
-import cn.rankin.common.utils.api.model.BaseCode;
-import cn.rankin.common.utils.api.model.APICode;
-import cn.rankin.common.utils.api.model.APIResult;
-import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.ItemDTO;
-import cn.rankin.common.utils.dto.product.ItemPriceDTO;
-import cn.rankin.common.utils.dto.search.ItemSearchDTO;
-import cn.rankin.common.utils.enums.BaseOrderEnum;
-import cn.rankin.productservice.entity.Tag;
-import cn.rankin.productservice.proxy.ItemServiceProxy;
-import cn.rankin.productservice.service.ItemService;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.LinkedHashMap;
-import java.util.List;
-
-@RestController
-@RequestMapping(value = "item")
-public class ItemController {
-
-    @Autowired
-    private ItemService itemService;
-
-    @Autowired
-    private ItemServiceProxy itemServiceProxy;
-
-    @RequestMapping(value = "/list", method = RequestMethod.GET)
-    public APIResult<Page<Item>> search(ItemSearchDTO searchDTO) {
-        Item item = new Item();
-
-        String code = searchDTO.getCode();
-        if (!StringUtils.isEmpty(code)) {
-            item.setCode("%" + code + "%");
-        }
-
-        String name = searchDTO.getName();
-        if (!StringUtils.isEmpty(name)) {
-            item.setName("%" + name + "%");
-        }
-
-        // others
-        item.setStatus(searchDTO.getStatus());
-        item.setType(searchDTO.getType());
-        item.setMerchantId(searchDTO.getMerchantId());
-
-        // sort
-        LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap<>();
-        sort.put("gmtModified", BaseOrderEnum.DESC);
-
-        return itemService.search(item, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
-    }
-
-    @Transactional
-    @RequestMapping(method = RequestMethod.POST)
-    public APIResult<Item> create(@RequestBody ItemDTO itemDTO) {
-        String code = itemDTO.getCode();
-        if (StringUtils.isEmpty(code) || itemDTO.getMerchantId() == null) {
-            return APIResult.error(APICode.PARAMETER_ERROR);
-        }
-
-        // 保存商品信息
-        APIResult<Item> result = itemService.create(itemDTO);
-        Item item = result.getData();
-        if (!result.getSuccess()) {
-            return result;
-        }
-
-        String itemId = item.getId();
-
-        // 保存标签关系
-        List<String> tagIdList = itemDTO.getTagList();
-        if (tagIdList != null) {
-            APIResult<List<Tag>> tagResult = itemServiceProxy.updateTagRelation(itemId, tagIdList);
-            if (!tagResult.getSuccess()) {
-                // 显式回滚
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return APIResult.error(new BaseCode(tagResult.getCode(), tagResult.getMessage()));
-            }
-            item.setTagList(tagResult.getData());
-        }
-
-        // 保存价格
-        List<ItemPriceDTO> itemPriceDTOList = itemDTO.getPriceList();
-        if (itemPriceDTOList != null) {
-            List<ItemPrice> priceList = itemServiceProxy.updatePrice(itemId, itemPriceDTOList).getData();
-            item.setPriceList(priceList);
-        }
-
-        return result;
-    }
-
-    @Transactional
-    @RequestMapping(method = RequestMethod.PUT)
-    public APIResult<Item> update(@RequestBody ItemDTO itemDTO) {
-        if (itemDTO.getId() == null) {
-            return APIResult.error(APICode.PARAMETER_ERROR);
-        }
-
-        // 保存商品信息
-        APIResult<Item> result = itemService.update(itemDTO);
-        Item item = result.getData();
-        if (!result.getSuccess()) {
-            return result;
-        }
-
-        String itemId = item.getId();
-        // 保存标签关系
-        List<String> tagIdList = itemDTO.getTagList();
-        if (tagIdList != null) {
-            APIResult<List<Tag>> tagResult = itemServiceProxy.updateTagRelation(itemId, tagIdList);
-            if (!tagResult.getSuccess()) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return APIResult.error(new BaseCode(tagResult.getCode(), tagResult.getMessage()));
-            }
-            item.setTagList(tagResult.getData());
-        }
-
-        // 保存价格
-        List<ItemPriceDTO> itemPriceDTOList = itemDTO.getPriceList();
-        if (itemPriceDTOList != null) {
-            List<ItemPrice> priceList = itemServiceProxy.updatePrice(itemId, itemPriceDTOList).getData();
-            item.setPriceList(priceList);
-        }
-
-        return result;
-    }
-
-    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
-    public APIResult<Boolean> delete(@PathVariable("id") String itemId) {
-        if (itemId == null) {
-            return APIResult.error(APICode.PARAMETER_ERROR);
-        }
-
-        return itemService.delete(itemId);
-    }
-
-    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-    public APIResult<Item> getItem(@PathVariable("id") String Id) {
-        Item item = itemServiceProxy.loadItem(Id);
-        return APIResult.ok(item);
-    }
-}

+ 19 - 19
rankin-product-service/src/main/java/cn/rankin/productservice/controller/LessonController.java

@@ -5,9 +5,9 @@ import cn.rankin.common.utils.api.model.APICode;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.LessonDTO;
+import cn.rankin.data.api.product.dto.LessonDTO;
 import cn.rankin.common.utils.enums.BaseOrderEnum;
-import cn.rankin.productservice.entity.*;
+import cn.rankin.data.api.product.entity.*;
 import cn.rankin.productservice.service.*;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +37,7 @@ public class LessonController {
     private LessonWareRelationService lessonWareRelationService;
 
     @Autowired
-    private WareService wareService;
+    private CoursewareService coursewareService;
 
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     public APIResult<Page<Lesson>> search(SearchDTO searchDTO) {
@@ -87,8 +87,8 @@ public class LessonController {
             }
         };
 
-        APIResult<List<Ware>> wareList = wareService.findByIds(wareIdList);
-        lesson.setWareList(wareList.getData());
+        APIResult<List<Courseware>> wareList = coursewareService.findByIds(wareIdList);
+        lesson.setCoursewareList(wareList.getData());
 
         return result;
 
@@ -116,16 +116,16 @@ public class LessonController {
             return result;
         }
 
-        APIResult<List<Ware>> wareResult = updateRelation(Id, wareIdList);
+        APIResult<List<Courseware>> wareResult = updateRelation(Id, wareIdList);
         if (!wareResult.getSuccess()) {
             // 显示回滚
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return APIResult.error(new BaseCode(wareResult.getCode(), wareResult.getMessage()));
         }
 
-        List<Ware> wareList = wareResult.getData();
-        if (wareList != null) {
-            result.getData().setWareList(wareList);
+        List<Courseware> coursewareList = wareResult.getData();
+        if (coursewareList != null) {
+            result.getData().setCoursewareList(coursewareList);
         }
 
         return result;
@@ -140,19 +140,19 @@ public class LessonController {
         }
 
         List<String> wareIdList = lessonDTO.getWareList();
-        List<Ware> wareList = new ArrayList<>();
+        List<Courseware> coursewareList = new ArrayList<>();
         if (wareIdList != null) {
-            APIResult<List<Ware>> wareResult = updateRelation(Id, wareIdList);
+            APIResult<List<Courseware>> wareResult = updateRelation(Id, wareIdList);
             if (!wareResult.getSuccess()) {
                 return APIResult.error(new BaseCode(wareResult.getCode(), wareResult.getMessage()));
             }else {
-                wareList = wareResult.getData();
+                coursewareList = wareResult.getData();
             }
         }
 
         APIResult<Lesson> result = lessonService.update(lessonDTO);
         if (result.getSuccess() && result.getData() != null) {
-            result.getData().setWareList(wareList);
+            result.getData().setCoursewareList(coursewareList);
         }
 
         return result;
@@ -187,24 +187,24 @@ public class LessonController {
 
     // 更新课与课件的关系
     @Transactional
-    public APIResult<List<Ware>> updateRelation(String lessonId, List<String> wareIdList) {
+    public APIResult<List<Courseware>> updateRelation(String lessonId, List<String> wareIdList) {
         if (wareIdList == null) {
             return APIResult.ok();
         }
 
-        List<Ware> wareList = new ArrayList<>();
+        List<Courseware> coursewareList = new ArrayList<>();
         if (wareIdList.size() == 0) {
             lessonWareRelationService.deleteByLessonId(lessonId);
         }else {
             // 验证wareId的正确性
-            APIResult<List<Ware>> wareResult = wareService.findByIds(wareIdList);
-            wareList = wareResult.getData();
-            if (wareList == null || wareList.size() != wareIdList.size()) {
+            APIResult<List<Courseware>> wareResult = coursewareService.findByIds(wareIdList);
+            coursewareList = wareResult.getData();
+            if (coursewareList == null || coursewareList.size() != wareIdList.size()) {
                 return APIResult.error(APICode.error("存在错误的课件"));
             }
             lessonWareRelationService.update(lessonId, wareIdList);
         }
 
-        return APIResult.ok(wareList);
+        return APIResult.ok(coursewareList);
     }
 }

+ 52 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/controller/MerchantProductController.java

@@ -0,0 +1,52 @@
+package cn.rankin.productservice.controller;
+
+import cn.rankin.common.utils.api.model.APIResult;
+import cn.rankin.common.utils.api.page.Page;
+import cn.rankin.data.api.product.dto.MerchantProductSearchDTO;
+import cn.rankin.common.utils.enums.BaseOrderEnum;
+import cn.rankin.data.api.product.entity.MerchantProduct;
+import cn.rankin.productservice.proxy.MerchantProductServiceProxy;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.LinkedHashMap;
+
+@RestController
+@RequestMapping(value = "/merchant/products")
+public class MerchantProductController {
+
+    @Autowired
+    private MerchantProductServiceProxy merchantProductServiceProxy;
+
+    @RequestMapping(method = RequestMethod.GET)
+    public APIResult<Page<MerchantProduct>> search(MerchantProductSearchDTO searchDTO) {
+        MerchantProduct merchantProduct = new MerchantProduct();
+
+        String code = searchDTO.getCode();
+        if (!StringUtils.isEmpty(code)) {
+            merchantProduct.setCode("%" + code + "%");
+        }
+
+        String name = searchDTO.getName();
+        if (!StringUtils.isEmpty(name)) {
+            merchantProduct.setName("%" + name + "%");
+        }
+
+        // others
+        merchantProduct.setType(searchDTO.getType());
+        merchantProduct.setMerchantId(searchDTO.getMerchantId());
+
+        // sort
+        LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap<>();
+        sort.put("gmtModified", BaseOrderEnum.DESC);
+
+        return merchantProductServiceProxy.search(merchantProduct, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
+    }
+
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    public APIResult<MerchantProduct> getProduct(@PathVariable("id") String productId) {
+        return merchantProductServiceProxy.getProduct(productId);
+    }
+
+}

+ 0 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/controller/PackageController.java

@@ -2,7 +2,6 @@ package cn.rankin.productservice.controller;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.productservice.entity.Package;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;

+ 52 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/controller/ProductController.java

@@ -0,0 +1,52 @@
+package cn.rankin.productservice.controller;
+
+import cn.rankin.common.utils.api.model.APIResult;
+import cn.rankin.common.utils.api.page.Page;
+import cn.rankin.common.utils.enums.BaseOrderEnum;
+import cn.rankin.data.api.product.dto.ProductSearchDTO;
+import cn.rankin.data.api.product.entity.Product;
+import cn.rankin.productservice.service.ProductService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.LinkedHashMap;
+
+@RestController
+@RequestMapping(value = "/product")
+public class ProductController {
+
+    @Autowired
+    private ProductService productService;
+
+    @RequestMapping(method = RequestMethod.GET)
+    public APIResult<Page<Product>> search(ProductSearchDTO searchDTO) {
+        Product product = new Product();
+        String code = searchDTO.getCode();
+        if (!StringUtils.isEmpty(code)) {
+            product.setCode(String.format("%" + code + "%"));
+        }
+
+        String name = searchDTO.getName();
+        if (!StringUtils.isEmpty(name)) {
+            product.setName(String.format("%" + name + "%"));
+        }
+
+        product.setType(searchDTO.getType());
+
+        LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap<>();
+        sort.put("gmtModified", BaseOrderEnum.DESC);
+
+        APIResult<Page<Product>> pageAPIResult = productService.search(product, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
+
+        return pageAPIResult;
+    }
+
+    @RequestMapping(value = "/{productId}", method = RequestMethod.GET)
+    public APIResult<Object> getProduct(@PathVariable String productId) {
+        return null;
+    }
+}

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/controller/RecommendController.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.controller;
 
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.productservice.code.ProductServiceAPICode;
-import cn.rankin.productservice.entity.Recommend;
+import cn.rankin.data.api.product.entity.Recommend;
 import cn.rankin.productservice.service.RecommendService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;

+ 4 - 4
rankin-product-service/src/main/java/cn/rankin/productservice/controller/SupportController.java

@@ -5,11 +5,11 @@ import cn.rankin.common.utils.api.model.APICode;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
 import cn.rankin.common.utils.dto.search.SearchDTO;
-import cn.rankin.common.utils.dto.product.SupportDTO;
+import cn.rankin.data.api.product.dto.SupportDTO;
 import cn.rankin.common.utils.enums.BaseOrderEnum;
-import cn.rankin.productservice.entity.Support;
+import cn.rankin.data.api.product.entity.Support;
 import cn.rankin.productservice.proxy.SupportServiceProxy;
-import cn.rankin.productservice.service.SupportSelfRelationService;
+import cn.rankin.productservice.service.SupportReferenceService;
 import cn.rankin.productservice.service.SupportService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,7 +28,7 @@ public class SupportController {
     private SupportService supportService;
 
     @Autowired
-    private SupportSelfRelationService selfRelationService;
+    private SupportReferenceService selfRelationService;
 
     @Autowired
     private SupportServiceProxy supportServiceProxy;

+ 6 - 22
rankin-product-service/src/main/java/cn/rankin/productservice/controller/TagController.java

@@ -1,28 +1,11 @@
 package cn.rankin.productservice.controller;
 
-import cn.rankin.common.utils.api.model.BaseCode;
-import cn.rankin.common.utils.api.model.APICode;
-import cn.rankin.common.utils.api.model.APIResult;
-import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.TagDTO;
-import cn.rankin.common.utils.dto.search.TagSearchDTO;
-import cn.rankin.common.utils.enums.*;
-import cn.rankin.productservice.entity.ItemTagRelation;
-import cn.rankin.productservice.entity.Tag;
-import cn.rankin.productservice.service.ItemService;
-import cn.rankin.productservice.service.ItemTagRelationService;
+import cn.rankin.productservice.service.ProductTagRelationService;
 import cn.rankin.productservice.service.TagService;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.List;
-
 @Slf4j
 @RestController
 @RequestMapping(value = "tag")
@@ -32,8 +15,8 @@ public class TagController {
     private TagService tagService;
 
     @Autowired
-    private ItemTagRelationService tagRelationService;
-
+    private ProductTagRelationService tagRelationService;
+/*
     @Autowired
     private ItemService itemService;
 
@@ -121,7 +104,7 @@ public class TagController {
             return APIResult.error(APICode.PARAMETER_ERROR);
         }
 
-        List<ItemTagRelation> relationList = tagRelationService.findAllByTagId(id);
+        List<ProductTagRelation> relationList = tagRelationService.findAllByTagId(id);
         if (CollectionUtils.isEmpty(relationList)) {
             return tagService.delete(id);
         }
@@ -163,7 +146,7 @@ public class TagController {
     }
 
     public APIResult<List<Item>> getTagItem(String tagId) {
-        List<ItemTagRelation> relationList = tagRelationService.findByTagId(tagId);
+        List<ProductTagRelation> relationList = tagRelationService.findByTagId(tagId);
         if (relationList == null || relationList.size() == 0) {
             return APIResult.ok();
         }
@@ -175,4 +158,5 @@ public class TagController {
         return itemService.findAllByIds(itemIdList, ItemStatusEnum.DEL);
 
     }
+    */
 }

+ 19 - 19
rankin-product-service/src/main/java/cn/rankin/productservice/controller/WareController.java

@@ -4,14 +4,14 @@ import cn.rankin.common.utils.api.model.APICode;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.dto.search.SearchDTO;
 import cn.rankin.common.utils.api.page.Page;
-import cn.rankin.common.utils.dto.product.WareDTO;
+import cn.rankin.data.api.product.dto.WareDTO;
 import cn.rankin.common.utils.enums.BaseOrderEnum;
-import cn.rankin.productservice.entity.Lesson;
-import cn.rankin.productservice.entity.LessonWareRelation;
-import cn.rankin.productservice.entity.Ware;
+import cn.rankin.data.api.product.entity.Lesson;
+import cn.rankin.data.api.product.entity.LessonWareRelation;
+import cn.rankin.data.api.product.entity.Courseware;
 import cn.rankin.productservice.service.LessonService;
 import cn.rankin.productservice.service.LessonWareRelationService;
-import cn.rankin.productservice.service.WareService;
+import cn.rankin.productservice.service.CoursewareService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -27,7 +27,7 @@ import java.util.List;
 public class WareController {
 
     @Autowired
-    private WareService wareService;
+    private CoursewareService coursewareService;
 
     @Autowired
     private LessonWareRelationService relationService;
@@ -36,43 +36,43 @@ public class WareController {
     private LessonService lessonService;
 
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    public APIResult<Page<Ware>> search(SearchDTO searchDTO) {
-        Ware ware = new Ware();
+    public APIResult<Page<Courseware>> search(SearchDTO searchDTO) {
+        Courseware Courseware = new Courseware();
 
         String code = searchDTO.getCode();
         if (!StringUtils.isEmpty(code)) {
-            ware.setCode("%" + code + "%");
+            Courseware.setCode("%" + code + "%");
         }
 
         String name = searchDTO.getName();
         if (!StringUtils.isEmpty(name)) {
-            ware.setName("%" + name + "%");
+            Courseware.setName("%" + name + "%");
         }
 
-        ware.setStatus(searchDTO.getStatus());
+        Courseware.setStatus(searchDTO.getStatus());
 
         // sort
         LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap() { {
             this.put("gmtModified", BaseOrderEnum.DESC);
         }};
 
-        return wareService.search(ware, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
+        return coursewareService.search(Courseware, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
     }
 
     // 创建资源
     @RequestMapping(method = RequestMethod.POST)
-    public APIResult<Ware> create(@Valid @RequestBody WareDTO wareDTO) {
-        return wareService.create(wareDTO);
+    public APIResult<Courseware> create(@Valid @RequestBody WareDTO wareDTO) {
+        return coursewareService.create(wareDTO);
     }
 
     // 修改资源
     @RequestMapping(method = RequestMethod.PUT)
-    public APIResult<Ware> update(@Valid @RequestBody WareDTO wareDTO) {
+    public APIResult<Courseware> update(@Valid @RequestBody WareDTO wareDTO) {
         if (wareDTO.getId() == null) {
             return APIResult.error(APICode.error("参数错误: id"));
         }
 
-        return wareService.update(wareDTO);
+        return coursewareService.update(wareDTO);
     }
 
     // 删除资源
@@ -80,7 +80,7 @@ public class WareController {
     public APIResult delete(@NotNull @PathVariable("id") String id) {
         List<LessonWareRelation> existRel = relationService.findByWareId(id);
         if (existRel == null || existRel.size() == 0) {
-            return wareService.delete(id);
+            return coursewareService.delete(id);
         }
 
         List<String> lessonIds = new ArrayList<>();
@@ -102,8 +102,8 @@ public class WareController {
 
     // 取一个
     @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-    public APIResult<Ware> getWare(@PathVariable("id") String id) {
-        return wareService.findById(id);
+    public APIResult<Courseware> getWare(@PathVariable("id") String id) {
+        return coursewareService.findById(id);
     }
 
 }

+ 0 - 42
rankin-product-service/src/main/java/cn/rankin/productservice/entity/PackageItemRelation.java

@@ -1,42 +0,0 @@
-package cn.rankin.productservice.entity;
-
-import cn.rankin.common.utils.enums.BaseStatusEnum;
-import lombok.Data;
-import lombok.ToString;
-import org.hibernate.annotations.DynamicInsert;
-import org.hibernate.annotations.DynamicUpdate;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.util.Date;
-
-@Data
-@ToString
-@Entity
-@Table(name = "lj_package_item_relation", uniqueConstraints = {@UniqueConstraint(columnNames = {"package_id", "item_id"})})
-@DynamicInsert
-@DynamicUpdate
-public class PackageItemRelation implements Serializable {
-
-    @Id
-    private String id;
-
-    @Column(name = "package_id")
-    private String packageId;
-
-    @Column(name = "item_id")
-    private String itemId;
-
-    private Integer sort;
-
-    @Enumerated(EnumType.ORDINAL)
-    private BaseStatusEnum status;
-
-    @Column(name = "gmt_modified")
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date gmtModified;
-
-    @Column(name = "gmt_created")
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date gmtCreated;
-}

+ 3 - 3
rankin-product-service/src/main/java/cn/rankin/productservice/proxy/CourseServiceProxy.java

@@ -2,11 +2,11 @@ package cn.rankin.productservice.proxy;
 
 import cn.rankin.common.utils.api.model.APICode;
 import cn.rankin.common.utils.api.model.APIResult;
-import cn.rankin.common.utils.dto.product.CourseSubRelationDTO;
+import cn.rankin.data.api.product.dto.CourseSubRelationDTO;
 import cn.rankin.common.utils.enums.CourseSubTypeEnum;
-import cn.rankin.productservice.entity.*;
+import cn.rankin.data.api.product.entity.*;
 import cn.rankin.productservice.service.*;
-import cn.rankin.productservice.vo.CourseSubItemVo;
+import cn.rankin.data.api.product.vo.CourseSubItemVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;

+ 0 - 146
rankin-product-service/src/main/java/cn/rankin/productservice/proxy/ItemServiceProxy.java

@@ -1,146 +0,0 @@
-package cn.rankin.productservice.proxy;
-
-import cn.rankin.common.utils.api.model.APICode;
-import cn.rankin.common.utils.api.model.APIResult;
-import cn.rankin.common.utils.dto.product.ItemPriceDTO;
-import cn.rankin.common.utils.enums.EnumUtil;
-import cn.rankin.common.utils.enums.ItemTypeEnum;
-import cn.rankin.productservice.entity.*;
-import cn.rankin.productservice.service.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Service
-public class ItemServiceProxy {
-
-    @Autowired
-    private ItemService itemService;
-
-    @Autowired
-    private ItemPriceService itemPriceService;
-
-    @Autowired
-    private ItemTagRelationService tagRelationService;
-
-    @Autowired
-    private TagService tagService;
-
-    @Autowired
-    private CourseServiceProxy courseServiceProxy;
-
-    @Autowired
-    private SupportServiceProxy supportServiceProxy;
-
-    public Item loadItem(String itemId) {
-        Item item = load(itemId);
-        if (item != null) {
-            List<ItemPrice> priceList = itemPriceService.getItemPrice(itemId);
-            item.setPriceList(priceList);
-        }
-        return item;
-    }
-
-    public Item load(String itemId) {
-        Item item = itemService.findOne(itemId);
-        if (item == null) {
-            return null;
-        }
-
-        String subId = item.getSubId();
-        ItemTypeEnum itemType = item.getType();
-
-        if (ItemTypeEnum.COURSE.equals(itemType)) {
-            Course course = courseServiceProxy.getCourse(subId);
-            item.setCourse(course);
-        }else if (ItemTypeEnum.SUPPORT.equals(itemType)) {
-            Support support = supportServiceProxy.getSupport(subId);
-            item.setSupport(support);
-        }else if (ItemTypeEnum.PACKAGE.equals(itemType)) {
-
-        }
-
-        List<Tag> tagList = getTagList(itemId);
-        item.setTagList(tagList);
-
-        return item;
-    }
-
-    public Item loadItem(String itemId, String packageId) {
-        Item item = load(itemId);
-        if (item != null) {
-            List<ItemPrice> priceList = itemPriceService.getItemPrice(itemId, packageId);
-            item.setPriceList(priceList);
-        }
-        return item;
-    }
-
-    public List<Tag> getTagList(String itemId) {
-        List<ItemTagRelation> itemTagRelationList = tagRelationService.findAllByItemId(itemId);
-        if (CollectionUtils.isEmpty(itemTagRelationList)) {
-            return new ArrayList<>();
-        }
-
-        List<String> tagIdList = new ArrayList<>();
-        itemTagRelationList.forEach( t -> tagIdList.add(t.getTagId()));
-
-        APIResult<List<Tag>> tagResult = tagService.findByIds(tagIdList);
-        return tagResult.getData();
-    }
-
-    @Transactional
-    public APIResult<List<ItemPrice>> updatePrice(String itemId, List<ItemPriceDTO> priceDTOList) {
-        List<ItemPrice> priceList = new ArrayList<>();
-        if (priceDTOList == null) {
-            return APIResult.ok();
-        }
-
-        if (priceDTOList.size() == 0) {
-            itemPriceService.deleteByItemId(itemId);
-        }else {
-            priceList = itemPriceService.update(itemId, priceDTOList).getData();
-        }
-
-        return APIResult.ok(priceList);
-    }
-
-    @Transactional
-    public APIResult<List<Tag>> updateTagRelation(String itemId, List<String> tagIdList) {
-        List<Tag> tagList = new ArrayList<>();
-        if (tagIdList == null) {
-            return APIResult.ok();
-        }
-
-        if (tagIdList.size() == 0) {
-            tagRelationService.deleteByItemId(itemId);
-        }else {
-            APIResult<List<Tag>> tagResult = tagService.findByIds(tagIdList);
-            tagList = tagResult.getData();
-            if (tagList == null || tagList.size() != tagIdList.size()) {
-                return APIResult.error(APICode.error("包含错误的标签"));
-            }
-
-            Item item = itemService.findById(itemId).getData();
-            if (item == null) {
-                return APIResult.error(APICode.error("商品不存在"));
-            }
-
-            String merchantId = item.getMerchantId();
-            ItemTypeEnum itemType = item.getType();
-            for (int i = 0; i < tagList.size(); i++) {
-                Tag tag = tagList.get(i);
-                if (!tag.getMerchantId().equals(merchantId) || !EnumUtil.compare(itemType, tag.getType())) {
-                    return APIResult.error(APICode.error("包含错误的标签"));
-                }
-            }
-
-            tagRelationService.updateByItem(itemId, tagIdList);
-        }
-
-        return APIResult.ok(tagList);
-    }
-}

+ 93 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/proxy/MerchantProductServiceProxy.java

@@ -0,0 +1,93 @@
+package cn.rankin.productservice.proxy;
+
+import cn.rankin.common.utils.api.model.APIResult;
+import cn.rankin.common.utils.api.page.Page;
+import cn.rankin.common.utils.enums.BaseOrderEnum;
+import cn.rankin.common.utils.util.JpaSortUtil;
+import cn.rankin.productservice.code.ProductServiceAPICode;
+import cn.rankin.data.api.product.entity.Goods;
+import cn.rankin.data.api.product.entity.MerchantProduct;
+import cn.rankin.productservice.repository.GoodsRepository;
+import cn.rankin.productservice.repository.MerchantProductRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+
+@Service
+public class MerchantProductServiceProxy {
+
+    @Autowired
+    private MerchantProductRepository merchantProductRepository;
+
+    @Autowired
+    private GoodsRepository goodsRepository;
+
+    public APIResult<Page<MerchantProduct>> search(MerchantProduct merchantProduct, Integer pageNo, Integer pageSize, LinkedHashMap<String, BaseOrderEnum> sort) {
+        Long count = merchantProductRepository.count(merchantProduct);
+        Page<MerchantProduct> page = new Page<>(count, pageNo, pageSize);
+
+        if (count == 0) {
+            return APIResult.ok(page);
+        }
+
+        List<MerchantProduct> merchantProductList = merchantProductRepository.find(merchantProduct, page.getStart(), pageSize, JpaSortUtil.sort(sort));
+        if (merchantProductList.size() == 0) {
+            page.setList(new ArrayList<>());
+            return APIResult.ok(page);
+        }
+
+        List<String> productIdList = new ArrayList<>();
+        merchantProductList.forEach(e -> productIdList.add(e.getPid()));
+        List<Goods> goodsList = goodsRepository.findByPidIn(productIdList);
+
+        Map<String, List<Goods>> goodsMap = new HashMap<>();
+        goodsList.forEach(good -> {
+            String productId = good.getPid();
+            if (goodsMap.containsKey(productId)) {
+                goodsMap.get(productId).add(good);
+            }else {
+                List<Goods> tmpList = new ArrayList<>();
+                tmpList.add(good);
+                goodsMap.put(productId, tmpList);
+            }
+        });
+
+        // 按sort排序
+        for (String productId: goodsMap.keySet()) {
+            List<Goods> goods = goodsMap.get(productId);
+            Collections.sort(goods, new Comparator<Goods>() {
+                @Override
+                public int compare(Goods o1, Goods o2) {
+                    return o1.getSort().compareTo(o2.getSort());
+                }
+            });
+        }
+
+        for (MerchantProduct product : merchantProductList) {
+            String productId = product.getPid();
+            List<Goods> goods = goodsMap.get(productId);
+            if (!CollectionUtils.isEmpty(goods)) {
+                product.setGoods(goods);
+            }
+        }
+
+        page.setList(merchantProductList);
+
+        return APIResult.ok(page);
+    }
+
+    public APIResult<MerchantProduct> getProduct(String productId) {
+        MerchantProduct merchantProduct = merchantProductRepository.findByPid(productId);
+
+        if (merchantProduct == null) {
+            return APIResult.error(ProductServiceAPICode.NOT_EXISTS);
+        }
+
+        List<Goods> goodsList = goodsRepository.findByPid(productId);
+        merchantProduct.setGoods(goodsList);
+
+        return APIResult.ok(merchantProduct);
+    }
+}

+ 5 - 5
rankin-product-service/src/main/java/cn/rankin/productservice/proxy/SupportServiceProxy.java

@@ -2,9 +2,9 @@ package cn.rankin.productservice.proxy;
 
 import cn.rankin.common.utils.api.model.APICode;
 import cn.rankin.common.utils.api.model.APIResult;
-import cn.rankin.productservice.entity.Support;
-import cn.rankin.productservice.entity.SupportSelfRelation;
-import cn.rankin.productservice.service.SupportSelfRelationService;
+import cn.rankin.data.api.product.entity.Support;
+import cn.rankin.data.api.product.entity.SupportReference;
+import cn.rankin.productservice.service.SupportReferenceService;
 import cn.rankin.productservice.service.SupportService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -20,7 +20,7 @@ public class SupportServiceProxy {
     private SupportService supportService;
 
     @Autowired
-    private SupportSelfRelationService selfRelationService;
+    private SupportReferenceService selfRelationService;
 
     public Support getSupport(String id) {
         APIResult<Support> result = supportService.findById(id);
@@ -55,7 +55,7 @@ public class SupportServiceProxy {
     }
 
     public APIResult<List<Support>> getRelationSupport(String fid) {
-        List<SupportSelfRelation> relationList = selfRelationService.findByFid(fid);
+        List<SupportReference> relationList = selfRelationService.findByFid(fid);
         if (relationList == null || relationList.size() == 0) {
             return APIResult.ok(new ArrayList<>());
         }

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/CourseRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.Course;
+import cn.rankin.data.api.product.entity.Course;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/CourseSubRelationRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.CourseSubRelation;
+import cn.rankin.data.api.product.entity.CourseSubRelation;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/CourseSupportRelationRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.CourseSupportRelation;
+import cn.rankin.data.api.product.entity.CourseSupportRelation;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;

+ 16 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/repository/GoodsRepository.java

@@ -0,0 +1,16 @@
+package cn.rankin.productservice.repository;
+
+import cn.rankin.common.utils.jpa.BasicJpaRepository;
+import cn.rankin.data.api.product.entity.Goods;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface GoodsRepository extends BasicJpaRepository<Goods, String> {
+
+    @Query(value = "select g from Goods g where g.pid in (?1) and g.status = 0")
+    List<Goods> findByPidIn(List<String> pids);
+
+    @Query(value = "select g from Goods g where g.pid = ?1 and g.status = 0 order by g.sort")
+    List<Goods> findByPid(String pid);
+}

+ 0 - 33
rankin-product-service/src/main/java/cn/rankin/productservice/repository/ItemPriceRepository.java

@@ -1,33 +0,0 @@
-package cn.rankin.productservice.repository;
-
-import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.common.utils.enums.PriceTypeEnum;
-import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface ItemPriceRepository extends BasicJpaRepository<ItemPrice, String> {
-
-    List<ItemPrice> findByItemId(String itemId);
-
-    @Query(value = "select p from ItemPrice p where p.itemId = :itemId and p.type = :type and p.status = :status")
-    List<ItemPrice> findByItemIdAndType(@Param("itemId") String itemId, @Param("type") PriceTypeEnum type, @Param("status") BaseStatusEnum status);
-
-    @Query(value = "select p from ItemPrice p where p.itemId = :itemId and p.type = :type and p.status = :status and p.packageId = :packageId")
-    List<ItemPrice> findByTypeAndPackageId(@Param("itemId") String itemId, @Param("type") PriceTypeEnum type, @Param("packageId") String packageId, @Param("status") BaseStatusEnum status);
-
-    @Transactional
-    @Modifying(clearAutomatically = true)
-    @Query(value = "update ItemPrice p set p.status = :status where p.itemId = :itemId")
-    Integer deleteByItemId(@Param("itemId") String itemId, @Param("status") BaseStatusEnum status);
-
-    @Transactional
-    @Modifying(clearAutomatically = true)
-    @Query(value = "update ItemPrice p set p.status = :status where p.id not in (:ids)")
-    Integer deleteExcludeId(@Param("ids") List ids, @Param("status") BaseStatusEnum status);
-
-}

+ 0 - 26
rankin-product-service/src/main/java/cn/rankin/productservice/repository/ItemRepository.java

@@ -1,26 +0,0 @@
-package cn.rankin.productservice.repository;
-
-import cn.rankin.common.utils.enums.ItemStatusEnum;
-import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-
-import javax.transaction.Transactional;
-import java.util.List;
-
-public interface ItemRepository extends BasicJpaRepository<Item, String> {
-
-    @Query(value = "select i from Item i where i.subId = :subId and i.status = :status")
-    List<Item> findBySubId(@Param("subId") String subId, @Param("status") ItemStatusEnum status);
-
-    List<Item> findAllBySubId(String subId);
-
-    @Query(value = "select i from Item i where i.id in (:ids) and i.status <> :status")
-    List<Item> findAllByIdIn(@Param("ids") List<String> ids, @Param("status") ItemStatusEnum status);
-
-    @Transactional
-    @Modifying(clearAutomatically = true)
-    @Query(value = "update Item i set i.status = :status where i.id = :itemId")
-    Integer updateStatusById(@Param("itemId") String itemId, @Param("status") ItemStatusEnum status);
-}

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/LessonRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.Lesson;
+import cn.rankin.data.api.product.entity.Lesson;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/LessonWareRelationRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.LessonWareRelation;
+import cn.rankin.data.api.product.entity.LessonWareRelation;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;

+ 15 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/repository/MerchantProductRepository.java

@@ -0,0 +1,15 @@
+package cn.rankin.productservice.repository;
+
+import cn.rankin.common.utils.jpa.BasicJpaRepository;
+import cn.rankin.data.api.product.entity.MerchantProduct;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface MerchantProductRepository extends BasicJpaRepository<MerchantProduct, String> {
+
+    @Query(value = "select m from MerchantProduct m where m.pid in (:pids) and m.status = 0")
+    List<MerchantProduct> findByPidIn(List<String> pids);
+
+    MerchantProduct findByPid(String pid);
+}

+ 2 - 2
rankin-product-service/src/main/java/cn/rankin/productservice/repository/PackageItemRelationRepository.java

@@ -1,7 +1,7 @@
 package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.PackageItemRelation;
+import cn.rankin.data.api.product.entity.PackageProductRelation;
 
-public interface PackageItemRelationRepository extends BasicJpaRepository<PackageItemRelation, String> {
+public interface PackageItemRelationRepository extends BasicJpaRepository<PackageProductRelation, String> {
 }

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/PackageRepository.java

@@ -1,7 +1,7 @@
 package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.Package;
+import cn.rankin.data.api.product.entity.Package;
 
 public interface PackageRepository extends BasicJpaRepository<Package, String> {
 }

+ 9 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/repository/ProductRepository.java

@@ -0,0 +1,9 @@
+package cn.rankin.productservice.repository;
+
+import cn.rankin.common.utils.jpa.BasicJpaRepository;
+import cn.rankin.data.api.product.entity.Product;
+
+public interface ProductRepository extends BasicJpaRepository<Product, String> {
+
+    Product findByPid(String pid);
+}

+ 8 - 8
rankin-product-service/src/main/java/cn/rankin/productservice/repository/ItemTagRelationRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.ItemTagRelation;
+import cn.rankin.data.api.product.entity.ProductTagRelation;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
@@ -10,22 +10,22 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
-public interface ItemTagRelationRepository extends BasicJpaRepository<ItemTagRelation, String> {
+public interface ProductTagRelationRepository extends BasicJpaRepository<ProductTagRelation, String> {
 
-    List<ItemTagRelation> findAllByItemId(String itemId);
+    List<ProductTagRelation> findAllByPid(String itemId);
 
-    @Query(value = "select r from ItemTagRelation r where r.tagId = :tagId and r.status = :status")
-    List<ItemTagRelation> findByTagId(@Param("tagId") String tagId, @Param("status") BaseStatusEnum status);
+    @Query(value = "select r from ProductTagRelation r where r.tagId = :tagId and r.status = :status")
+    List<ProductTagRelation> findByTagId(@Param("tagId") String tagId, @Param("status") BaseStatusEnum status);
 
-    List<ItemTagRelation> findAllByTagId(String tagId);
+    List<ProductTagRelation> findAllByTagId(String tagId);
 
     @Transactional
     @Modifying(clearAutomatically = true)
-    @Query(value = "update ItemTagRelation r set r.status = :status where r.itemId = :itemId")
+    @Query(value = "update ProductTagRelation r set r.status = :status where r.pid = :itemId")
     Integer deleteByItemId(@Param("itemId") String itemId, @Param("status")BaseStatusEnum status);
 
     @Transactional
     @Modifying(clearAutomatically = true)
-    @Query(value = "update ItemTagRelation r set r.status = :status where r.tagId = :tagId")
+    @Query(value = "update ProductTagRelation r set r.status = :status where r.tagId = :tagId")
     Integer deleteByTagId(@Param("tagId") String tagId, @Param("status") BaseStatusEnum status);
 }

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/RecommendRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.Recommend;
+import cn.rankin.data.api.product.entity.Recommend;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 

+ 6 - 6
rankin-product-service/src/main/java/cn/rankin/productservice/repository/SupportSelfRelationRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.SupportSelfRelation;
+import cn.rankin.data.api.product.entity.SupportReference;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
@@ -10,16 +10,16 @@ import org.springframework.data.repository.query.Param;
 import javax.transaction.Transactional;
 import java.util.List;
 
-public interface SupportSelfRelationRepository extends BasicJpaRepository<SupportSelfRelation, String> {
+public interface SupportReferenceRepository extends BasicJpaRepository<SupportReference, String> {
 
-    @Query(value = "select r from SupportSelfRelation r where r.fid = :fid and r.status = :status order by r.sort")
-    List<SupportSelfRelation> findByFid(@Param("fid") String fid, @Param("status") BaseStatusEnum status);
+    @Query(value = "select r from SupportReference r where r.fid = :fid and r.status = :status order by r.sort")
+    List<SupportReference> findByFid(@Param("fid") String fid, @Param("status") BaseStatusEnum status);
 
-    List<SupportSelfRelation> findAllByFid(String fid);
+    List<SupportReference> findAllByFid(String fid);
 
     @Transactional
     @Modifying(clearAutomatically = true)
-    @Query(value = "update SupportSelfRelation r set r.status = :status where r.fid = :fid")
+    @Query(value = "update SupportReference r set r.status = :status where r.fid = :fid")
     Integer deleteByFid(@Param("fid") String fid, @Param("status")BaseStatusEnum status);
 
 }

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/SupportRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.Support;
+import cn.rankin.data.api.product.entity.Support;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;

+ 5 - 5
rankin-product-service/src/main/java/cn/rankin/productservice/repository/GroupRepository.java

@@ -2,21 +2,21 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.Group;
+import cn.rankin.data.api.product.entity.TagGroup;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
-public interface GroupRepository extends BasicJpaRepository<Group, String> {
+public interface TagGroupRepository extends BasicJpaRepository<TagGroup, String> {
 
     Long countByCode(String code);
 
-    @Query(value = "select g from Group g where g.id = :id and g.status = :status")
-    Group findNormalById(@Param("id") String id, @Param("status") BaseStatusEnum status);
+    @Query(value = "select g from TagGroup g where g.id = :id and g.status = :status")
+    TagGroup findNormalById(@Param("id") String id, @Param("status") BaseStatusEnum status);
 
     @Transactional
     @Modifying(clearAutomatically = true)
-    @Query(value = "update Group g set g.status = :status where g.id = :id")
+    @Query(value = "update TagGroup g set g.status = :status where g.id = :id")
     Integer deleteById(@Param("id") String id, @Param("status")BaseStatusEnum status);
 }

+ 2 - 2
rankin-product-service/src/main/java/cn/rankin/productservice/repository/TagRepository.java

@@ -2,7 +2,7 @@ package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
-import cn.rankin.productservice.entity.Tag;
+import cn.rankin.data.api.product.entity.Tag;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
@@ -13,7 +13,7 @@ import java.util.List;
 
 public interface TagRepository extends BasicJpaRepository<Tag, String> {
 
-    String SQL = "select new Tag(t.id, t.name, t.type, t.groupId, t.sort, t.status, t.gmtCreated, t.gmtModified, g.name, g.merchantId) from Tag t, Group g where t.groupId = g.id";
+    String SQL = "select new Tag(t.id, t.name, t.type, t.groupId, t.sort, t.status, t.gmtCreated, t.gmtModified, g.name, g.merchantId) from Tag t, TagGroup g where t.groupId = g.id";
 
     List<Tag> search(Tag tag, Integer start, Integer size);
 

+ 1 - 1
rankin-product-service/src/main/java/cn/rankin/productservice/repository/TagRepositoryImpl.java

@@ -1,7 +1,7 @@
 package cn.rankin.productservice.repository;
 
 import cn.rankin.common.utils.enums.TagTypeEnum;
-import cn.rankin.productservice.entity.Tag;
+import cn.rankin.data.api.product.entity.Tag;
 import org.springframework.stereotype.Repository;
 
 import javax.persistence.EntityManager;

+ 0 - 0
rankin-product-service/src/main/java/cn/rankin/productservice/repository/WareRepository.java


Some files were not shown because too many files changed in this diff