Browse Source

产品后台类目的获取

hulh 8 years ago
parent
commit
bb49c15bae

+ 8 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java

@@ -414,6 +414,14 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
     @Query(value = "select distinct g.kindUuid from Goods g where g.storeid = :storeUuid and g.status=601 and g.kindUuid is not null")
 	Set<Long> findAllKindsByStoreUuid(@Param("storeUuid") String storeUuid);
 
+    /**
+     * 获取店铺的所有类目信息
+     *
+     * @return the set
+     */
+    @Query(value = "select distinct g.kindUuid from Goods g where g.kindUuid is not null")
+    Set<Long> findAllKinds();
+
     /**
      * 通过原厂型号获取全部店铺id
      *

+ 19 - 1
src/main/java/com/uas/platform/b2c/prod/store/controller/CommodityController.java

@@ -2,6 +2,8 @@ package com.uas.platform.b2c.prod.store.controller;
 
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
+import com.uas.platform.b2c.prod.product.kind.model.KindInfo;
+import com.uas.platform.b2c.prod.store.facade.CommodityFacade;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import org.slf4j.Logger;
@@ -13,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * 店铺商品操作接口类
  *
@@ -27,9 +31,12 @@ public class CommodityController {
 
 	private final GoodsService commodityService;
 
+	private final CommodityFacade commodityFacade;
+
 	@Autowired
-	public CommodityController(GoodsService commodityService) {
+	public CommodityController(GoodsService commodityService, CommodityFacade commodityFacade) {
 		this.commodityService = commodityService;
+		this.commodityFacade = commodityFacade;
 	}
 
 	/**
@@ -47,4 +54,15 @@ public class CommodityController {
 		PageInfo pageInfo = new PageInfo(params);
 		return commodityService.pageCommoditiesByEnInfos(storeid, kindUuid, code, pageInfo);
 	}
+
+	/**
+	 * 获取所有类目信息
+	 *
+	 * @return List<KindInfo>
+	 */
+	@RequestMapping(value = "/kinds", method = RequestMethod.GET)
+	public List<KindInfo> getAllKindsInfoByStoreUuid() {
+		logger.info("Get information of all kind");
+		return commodityFacade.getAllKindsInfoByGoods();
+	}
 }

+ 5 - 0
src/main/java/com/uas/platform/b2c/prod/store/facade/CommodityFacade.java

@@ -18,4 +18,9 @@ public interface CommodityFacade {
 	 * @param storeUuid		店铺UUID
 	 */
 	List<KindInfo> getAllKindsInfoByStoreUuid(String storeUuid);
+
+	/**
+	 * 获取店铺的所有类目信息
+	 */
+	List<KindInfo> getAllKindsInfoByGoods();
 }

+ 16 - 0
src/main/java/com/uas/platform/b2c/prod/store/facade/impl/CommodityFacadeImpl.java

@@ -52,4 +52,20 @@ public class CommodityFacadeImpl implements CommodityFacade {
 		allKind.setChildren(children);
 		return Collections.singletonList(allKind);
 	}
+
+	@Override
+	public List<KindInfo> getAllKindsInfoByGoods() {
+		// 外层所有类目包裹
+		final KindInfo allKind = KindInfo.getAllKind();
+		Set<KindInfo> children = new LinkedHashSet<>();
+
+		Set<Long> kindUuidSet = commodityService.findAllKinds();
+		if (!CollectionUtils.isEmpty(kindUuidSet)) {
+			List<KindInfo> kindList = kindService.getStructruingKindsByLeafKindIds(kindUuidSet);
+			children.addAll(kindList);
+		}
+
+		allKind.setChildren(children);
+		return Collections.singletonList(allKind);
+	}
 }

+ 5 - 0
src/main/java/com/uas/platform/b2c/prod/store/service/CommodityService.java

@@ -16,4 +16,9 @@ public interface CommodityService {
 	 * @param storeUuid		店铺UUID
 	 */
 	Set<Long> findAllKindsByStoreUuid(String storeUuid);
+
+	/**
+	 * 获取所有类目信息
+	 */
+	Set<Long> findAllKinds();
 }

+ 5 - 0
src/main/java/com/uas/platform/b2c/prod/store/service/impl/CommodityServiceImpl.java

@@ -27,4 +27,9 @@ public class CommodityServiceImpl implements CommodityService {
 	public Set<Long> findAllKindsByStoreUuid(String storeUuid) {
 		return goodsDao.findAllKindsByStoreUuid(storeUuid);
 	}
+
+	@Override
+	public Set<Long> findAllKinds() {
+		return goodsDao.findAllKinds();
+	}
 }

+ 2 - 2
src/main/webapp/resources/js/admin/app.js

@@ -1,4 +1,4 @@
- define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage', 'angular-tree'], function(angularAMD) {
+ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/commodity', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage', 'angular-tree'], function(angularAMD) {
 	'use strict';
 
 	 /**
@@ -8,7 +8,7 @@
 		 return this.length > 0 ? this[this.length - 1] : null;
 	 };
 
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery' ,'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices', 'treeControl']);
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery', 'commodityServices' ,'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices', 'treeControl']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};

+ 8 - 1
src/main/webapp/resources/js/admin/controllers/product/productManageCtrl.js

@@ -1,6 +1,6 @@
 define(['app/app'], function(app) {
     'use strict';
-    app.register.controller('productManageCtrl', ['$scope', '$modal', 'toaster', 'ngTableParams', 'BaseService', '$http', 'Goods', 'BackgroundRecord', function($scope, $modal, toaster, ngTableParams, BaseService, $http, Goods, BackgroundRecord) {
+    app.register.controller('productManageCtrl', ['$scope', '$modal', 'toaster', 'ngTableParams', 'BaseService', '$http', 'Goods', 'BackgroundRecord', 'Commodity', function($scope, $modal, toaster, ngTableParams, BaseService, $http, Goods, BackgroundRecord, Commodity) {
 
         var initTitleInfo = function () {
             BackgroundRecord.getUserTitle({}, function (data) {
@@ -60,6 +60,13 @@ define(['app/app'], function(app) {
             checkChoosedAll();
         };
 
+        var initKindDataInfo = function () {
+            Commodity.getAllKindInfo({}, function (data) {
+                $scope.kindInfo = data;
+            })
+        };
+        initKindDataInfo();
+
         /**
          * 将本地址数据转化为可用结构
          * */

+ 8 - 0
src/main/webapp/resources/js/common/query/commodity.js

@@ -37,6 +37,14 @@ define([ 'ngResource' ], function() {
 			findPageGoods: {
 				url : rootPath + '/api/commodity/goods/page',
 				method : 'GET'
+			},
+			/**
+			 * 返回所有类目信息
+			 */
+			getAllKindInfo: {
+				url : rootPath + '/commodity-service/kinds',
+				method: 'GET',
+				isArray: true
 			}
 		});
 	}]);

+ 2 - 2
src/main/webapp/resources/view/admin/product/productManage.html

@@ -60,9 +60,9 @@
                                 </li>
                                 <li ng-if="selectDown">
                                     <div treecontrol class="tree-boot"
-                                         tree-model="cityData"
+                                         tree-model="kindInfo"
                                          options="treeOptions"
-                                         on-selection="showSelected(node)" >
+                                         on-selection="showSelected(node)">
                                         <span ng-bind="node.label"></span>
                                     </div>
                                 </li>