Commit feb98d54 by 何文超

增加微商城选择器接口

parent c0d1bf75
......@@ -24,6 +24,7 @@
<gic-thirdparty-sdk>4.0-SNAPSHOT</gic-thirdparty-sdk>
<gic-redis-data>4.0-SNAPSHOT</gic-redis-data>
<gic-goods-api>4.0-SNAPSHOT</gic-goods-api>
<gic-mall-share-api>4.0-SNAPSHOT</gic-mall-share-api>
</properties>
<dependencies>
......@@ -144,6 +145,11 @@
<artifactId>gic-search-business-api</artifactId>
<version>${gic-search-business-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-mall-share-api</artifactId>
<version>${gic-mall-share-api}</version>
</dependency>
</dependencies>
<build>
......
package com.gic.plug.web.controller.goods;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.goods.api.dto.SpecCordDTO;
import com.gic.goods.api.service.CordApiService;
import com.gic.mall.base.api.enums.ErrorCodeEnums;
import com.gic.mall.share.api.dto.shop.ShopDTO;
import com.gic.mall.share.api.service.ShopApiService;
import com.gic.plug.web.vo.goods.MallGoodsCordVO;
/**
* 商城装修选择器
*/
@RestController
public class AppletConfigGoodsController {
@Autowired
private CordApiService cordApiService;
@Autowired
private ShopApiService shopApiService;
@RequestMapping("get-mall-cord-list")
public RestResponse getMallCordList(Long appConfigId) {
ServiceResponse<ShopDTO> shopDTOServiceResponse = shopApiService.getShopByAppletId(appConfigId, 1129, 1);
if (shopDTOServiceResponse.getResult() == null) {
return RestResponse.failure(ErrorCodeEnums.MAll_ERR.getCode(), "不存在店铺");
}
Long areaId = shopDTOServiceResponse.getResult().getAreaId();
ServiceResponse<List<SpecCordDTO>> listServiceResponse = cordApiService.listSpecCordDTO(areaId);
return RestResponse.success(EntityUtil.changeEntityListByOrika(MallGoodsCordVO.class, listServiceResponse.getResult()));
}
}
package com.gic.plug.web.controller.goods;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.curator.shaded.com.google.common.collect.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
......@@ -18,6 +22,9 @@ import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.goods.api.dto.GoodsSkuDTO;
import com.gic.goods.api.service.GoodsApiService;
import com.gic.goods.api.util.Constant;
import com.gic.mall.base.api.enums.ErrorCodeEnums;
import com.gic.mall.share.api.dto.shop.ShopDTO;
import com.gic.mall.share.api.service.ShopApiService;
import com.gic.plug.web.vo.goods.GoodsVO;
import com.gic.search.business.api.constant.enums.OperateEnum;
import com.gic.search.business.api.dto.DynamicSearchDTO;
......@@ -44,6 +51,9 @@ public class GoodsController {
@Autowired
private GoodsApiService goodsApiService;
@Autowired
private ShopApiService shopApiService;
/**
* @Description: 查询所有(不分页)
......@@ -61,6 +71,36 @@ public class GoodsController {
/**
* 商城组对外提供的组件
* @param currentPage
* @param pageSize
* @param appConfigId
* @param search
* @param channelCode
* @param cordId
* @return
*/
@RequestMapping("list-goods-selector")
public RestResponse listGoodsByChannel(@RequestParam(value = "currentPage", defaultValue = "1") Integer currentPage,
@RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize, Long appConfigId, String search, String channelCode, Long cordId) {
Integer shopType = null;
if (Objects.equals(channelCode, Constant.CHANNEL_CODE_MALL)) {
shopType = 1;
}
ServiceResponse<ShopDTO> shopDTOServiceResponse = shopApiService.getShopByAppletId(appConfigId, 1129, shopType);
if (shopDTOServiceResponse.getResult() == null) {
return RestResponse.failure(ErrorCodeEnums.MAll_ERR.getCode(), "不存在店铺");
}
Long areaId = shopDTOServiceResponse.getResult().getAreaId();
ServiceResponse<ESResponseQueryBatchDTO> serviceResponse = searchGoods(currentPage, pageSize, areaId, search, channelCode, cordId);
if (serviceResponse.isSuccess()) {
return RestResponse.success(serviceResponse.getResult());
}
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
/**
* @Description: 查询所有(不分页)
* @author xub
*/
......@@ -105,6 +145,40 @@ public class GoodsController {
return RestResponse.success(goodsVOS);
}
private ServiceResponse<ESResponseQueryBatchDTO> searchGoods( Integer currentPage,Integer pageSize, Long goodsDomainId,String search,String channelCode, Long cordId) {
DynamicSearchDTO searchDTO = new DynamicSearchDTO();
String searchCode = "";
if (Constant.CHANNEL_CODE_MALL.equals(channelCode)) {
searchCode = "gic_mall_goods";
}
String esName = esScreeningSearchService.getCurrentEsName("1129", searchCode);
searchDTO.setIndexName(esName);
searchDTO.setColumnCategoryCode(searchCode);
searchDTO.setEnterpriseId("1129");
searchDTO.setType("mapper_type");
searchDTO.setBegin((currentPage - 1) * pageSize);
searchDTO.setRecordNumber(pageSize);
JSONObject jsonObject = QueryConditionAssemblyUtil.createSimpleQueryNode("goodsDomainId", OperateEnum.OPERATE_EQ, goodsDomainId);
JSONObject status = QueryConditionAssemblyUtil.createSimpleQueryNode("status", OperateEnum.OPERATE_EQ, 2);
jsonObject = QueryConditionAssemblyUtil.addQueryNodeForSiblin(status, jsonObject, OperateEnum.OPERATE_EQ);
if (StringUtils.isNotBlank(search)) {
JSONObject goodsCodeJson = QueryConditionAssemblyUtil.createSimpleQueryNode("goodsCode", OperateEnum.OPERATE_LIKE, search);
JSONObject goodsNameJson = QueryConditionAssemblyUtil.createSimpleQueryNode("goodsName", OperateEnum.OPERATE_LIKE, search);
List<JSONObject> jsonArray = new ArrayList<>();
jsonArray.add(goodsCodeJson);
jsonArray.add(goodsNameJson);
JSONObject object = QueryConditionAssemblyUtil.createListQueryNode(jsonArray,OperateEnum.OPERATE_OR);
QueryConditionAssemblyUtil.addQueryNodeForSiblin(object, jsonObject, OperateEnum.OPERATE_AND);
}
if (cordId != null) {
JSONObject cordJSON = QueryConditionAssemblyUtil.createSimpleQueryNode("cordId", OperateEnum.OPERATE_CONTAIN, search);
QueryConditionAssemblyUtil.addQueryNodeForSiblin(cordJSON, jsonObject, OperateEnum.OPERATE_AND);
}
searchDTO.setSearchJson(jsonObject);
ServiceResponse<ESResponseQueryBatchDTO> serviceResponse = esBusinessOperaApiService.queryDataBatch(searchDTO, false, null);
return serviceResponse;
}
private ServiceResponse<ESResponseQueryBatchDTO> searchES( Integer currentPage,Integer pageSize, Long goodsDomainId,String search,String channelCode) {
DynamicSearchDTO searchDTO = new DynamicSearchDTO();
......
package com.gic.plug.web.vo.goods;
import java.util.List;
public class MallGoodsCordVO {
/**
*
*/
private Long specCordId;
/**
*
*/
private Integer enterpriseId;
/**
*
*/
private Long goodsDomainId;
/**
* 分类名称
*/
private String specCordName;
/**
* 父级分类ID
*/
private Long specParentId;
/**
* 是否叶子节点 0:不是叶子节点 1:是叶子节点
*/
private Integer leafNodeFlag;
/**
* 是否在小程序上显示 0否 1是
*/
private Integer displayAppFlag;
/**
* 排序
*/
private Integer sort;
/**
* 关联商品数量
*/
private Integer cordGoodsCount;
/**
* 二级分类
*/
private List<MallGoodsCordVO> childSpecCordDTOList;
public Long getSpecCordId() {
return specCordId;
}
public void setSpecCordId(Long specCordId) {
this.specCordId = specCordId;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Long getGoodsDomainId() {
return goodsDomainId;
}
public void setGoodsDomainId(Long goodsDomainId) {
this.goodsDomainId = goodsDomainId;
}
public String getSpecCordName() {
return specCordName;
}
public void setSpecCordName(String specCordName) {
this.specCordName = specCordName;
}
public Long getSpecParentId() {
return specParentId;
}
public void setSpecParentId(Long specParentId) {
this.specParentId = specParentId;
}
public Integer getLeafNodeFlag() {
return leafNodeFlag;
}
public void setLeafNodeFlag(Integer leafNodeFlag) {
this.leafNodeFlag = leafNodeFlag;
}
public Integer getDisplayAppFlag() {
return displayAppFlag;
}
public void setDisplayAppFlag(Integer displayAppFlag) {
this.displayAppFlag = displayAppFlag;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public Integer getCordGoodsCount() {
return cordGoodsCount;
}
public void setCordGoodsCount(Integer cordGoodsCount) {
this.cordGoodsCount = cordGoodsCount;
}
public List<MallGoodsCordVO> getChildSpecCordDTOList() {
return childSpecCordDTOList;
}
public void setChildSpecCordDTOList(List<MallGoodsCordVO> childSpecCordDTOList) {
this.childSpecCordDTOList = childSpecCordDTOList;
}
}
......@@ -54,5 +54,6 @@
<dubbo:reference interface="com.gic.widget.screening.api.service.EsScreeningSearchService" id="esScreeningSearchService" timeout="60000" retries="0" />
<dubbo:reference interface="com.gic.store.service.StoreWidgetApiService" id="storeWidgetApiService" timeout="60000" retries="0" />
<dubbo:reference interface="com.gic.mall.share.api.service.ShopApiService" id="shopApiService" timeout="10000" retries="0" />
</beans>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment