浏览代码

非共享库存首页列表接口优化、增加品牌内排序

liyuan 9 月之前
父节点
当前提交
cb28f9687a

+ 36 - 0
blade-common/src/main/java/org/springblade/common/enums/CommonEnum.java

@@ -0,0 +1,36 @@
+package org.springblade.common.enums;
+
+/**
+ * @author Rain
+ */
+
+public enum CommonEnum {
+
+
+	/**
+	 * 1
+	 */
+	ONE("1"),
+
+	/**
+	 * 0
+	 */
+	ZERO("0"),
+
+	/**
+	 * 是否分支管理
+	 */
+	WHETHER_BRANCH_MANAGEMENT("whether.branch.management"),
+
+	/**
+	 * 是否零库存
+	 */
+	WHETHER_ZERO_INVENTORY("whether.zero.inventory");
+
+	CommonEnum(String info){
+		this.info = info;
+	}
+
+	public final String info;
+
+}

+ 7 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjProductLaunch.java

@@ -354,4 +354,11 @@ public class PjProductLaunch implements Serializable {
 	 */
 	@ApiModelProperty(value = "商品描述")
 	private String goodsDescription;
+
+
+	/**
+	 * 商品图片
+	 */
+	@TableField(exist = false)
+	private String url;
 }

+ 9 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/WxAppGoodsParamsVo.java

@@ -55,7 +55,10 @@ public class WxAppGoodsParamsVo {
 	private String cname;
 
 	/**
-	 * 判断
+	 * 判断名称查询
+	 * 1 模糊查询 Cname、CnameInt 、 BrandItem、SpecificationAndModel 并且模糊查询 brandName
+	 * 2 模糊查询 Cname、CnameInt 、 BrandItem、SpecificationAndModel、brandName
+	 * 3 模糊查询 Cname、CnameInt 、 BrandItem、SpecificationAndModel
 	 */
 	private Integer cnameStatus;
 
@@ -74,4 +77,9 @@ public class WxAppGoodsParamsVo {
 	 */
 	private Integer inventoryStatus;
 
+	/**
+	 * 是否是积分商品
+	 */
+	private String whetherIntegral;
+
 }

+ 71 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/enums/ProductLaunchPriceSystem.java

@@ -0,0 +1,71 @@
+package org.springblade.salesPart.enums;
+
+import org.springblade.salesPart.entity.PjProductLaunch;
+
+/**
+ * @author Rain
+ */
+
+public enum ProductLaunchPriceSystem {
+
+
+	/**
+	 * 售价1
+	 */
+	PRICE_ONE("售价1") {
+		@Override
+		public void setMallPrice(PjProductLaunch item) {
+			item.setMallPrice(item.getPriceOne());
+		}
+	},
+	/**
+	 * 售价2
+	 */
+	PRICE_TWO("售价2") {
+		@Override
+		public void setMallPrice(PjProductLaunch item) {
+			item.setMallPrice(item.getPriceTwo());
+		}
+	},
+	/**
+	 * 售价3
+	 */
+	PRICE_THREE("售价3") {
+		@Override
+		public void setMallPrice(PjProductLaunch item) {
+			item.setMallPrice(item.getPriceThree());
+		}
+	},
+	/**
+	 * 售价4
+	 */
+	PRICE_FOUR("售价4") {
+		@Override
+		public void setMallPrice(PjProductLaunch item) {
+			item.setMallPrice(item.getPriceFour());
+		}
+	};
+
+	private final String value;
+
+	ProductLaunchPriceSystem(String value) {
+		this.value = value;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public abstract void setMallPrice(PjProductLaunch item);
+
+	// 根据字符串获取对应的枚举值
+	public static ProductLaunchPriceSystem fromValue(String value) {
+		for (ProductLaunchPriceSystem priceSystem : values()) {
+			if (priceSystem.getValue().equals(value)) {
+				return priceSystem;
+			}
+		}
+		return ProductLaunchPriceSystem.PRICE_ONE;
+	}
+
+}

+ 4 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/controller/ProductLaunchController.java

@@ -523,13 +523,15 @@ public class ProductLaunchController extends BladeController {
 
 	/**
 	 * 分页 小程序配件批发产品上架
+	 * 小程序首页接口
 	 */
 	@GetMapping("/appList")
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "小程序配件批发产品上架", notes = "传入productLaunch")
 	public R<IPage<PjProductLaunch>> appList(PjProductLaunch productLaunch, Query query) {
+		return productLaunchService.selectWxAppIndexPageList(productLaunch, query);
 		//根据当前登录人获得客户
-		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
+		/*PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
 		if (ObjectUtil.isEmpty(corpsAttn)) {
 			throw new RuntimeException("未查到用户信息");
 		}
@@ -734,7 +736,7 @@ public class ProductLaunchController extends BladeController {
 			}
 		}
 
-		return R.data(pages);
+		return R.data(pages);*/
 	}
 
 	/**

+ 9 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.java

@@ -24,6 +24,7 @@ import org.springblade.core.tenant.annotation.TenantIgnore;
 import org.springblade.salesPart.entity.PjProductLaunch;
 import org.springblade.salesPart.excel.PjShipStockDetails;
 import org.springblade.salesPart.vo.ProductLaunchVO;
+import org.springblade.salesPart.vo.WxAppGoodsParamsVo;
 
 import java.util.List;
 
@@ -51,4 +52,12 @@ public interface ProductLaunchMapper extends BaseMapper<PjProductLaunch> {
 
 	@TenantIgnore
 	int updateProductLaunch(PjProductLaunch item);
+
+	/**
+	 * 小程序首页列表
+	 *
+	 * @param wxAppGoodsParamsVo 参数
+	 * @return 结果
+	 */
+    List<PjProductLaunch> selectWxAppIndexPageList(WxAppGoodsParamsVo wxAppGoodsParamsVo);
 }

+ 86 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--suppress ALL -->
 <mapper namespace="org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper">
 
     <!-- 通用查询映射结果 -->
@@ -124,5 +125,90 @@
             and pgd.tenant_id = #{tenantId}
         </if>
     </select>
+    <select id="selectWxAppIndexPageList" resultType="org.springblade.salesPart.entity.PjProductLaunch"
+            parameterType="org.springblade.salesPart.vo.WxAppGoodsParamsVo">
+        SELECT
+        *,
+        (CASE WHEN inventoryLocal > 0 THEN 1 ELSE 0 END) AS sort
+        FROM
+        (
+        SELECT
+        ppl.id,
+        psd.CODE AS goodsCode,
+        ppl.cname AS cname,
+        ppl.bill_type AS billType,
+        ppl.brand_id AS brandId,
+        ppl.price_one AS priceOne,
+        ppl.price_two AS priceTwo,
+        ppl.price_three AS priceThree,
+        ppl.price_four AS priceFour,
+        ppl.inventory AS inventoryLocal,
+        ppl.brand_item AS brandItem,
+        IFNULL(SUM(psd.balance_quantity), 0) AS inventory,
+        ppl.cname_int AS cnameInt
+        FROM
+        pjpf_product_launch ppl
+        LEFT JOIN pjpf_stock_desc psd ON ppl.goods_id = psd.goods_id
+        WHERE
+        ppl.tenant_id = #{tenantId}
+        AND ppl.is_deleted = 0
+        AND ppl.sales_company_id = #{salesCompanyId}
+            and ppl.bill_type = 0
+        <if test="brandId != null">
+            and ppl.brand_id = #{brandId}
+        </if>
+        <if test="brandId == null and userBrandIdList != null and userBrandIdList.size > 0">
+            and ppl.brand_id in
+            <foreach collection="userBrandIdList" item="userBrandId" open="(" close=")" separator=",">
+                #{userBrandId}
+            </foreach>
+        </if>
+        <if test="explosionProof != null">
+            and ppl.explosion_proof = #{explosionProof}
+        </if>
+        <if test="originalFactory != null and originalFactory != ''">
+            and ppl.original_factory = #{originalFactory}
+        </if>
+        <if test="selfRecovery != null  and selfRecovery != ''">
+            and ppl.self_recovery = #{selfRecovery}
+        </if>
+        <if test="cnameStatus == 1">
+            and (ppl.goods_name like concat('%', #{cname}, '%') or ppl.cname_int like concat('%', #{cname}, '%')
+            or ppl.brand_item like concat('%', #{cname}, '%') or ppl.specification_and_model like concat('%', #{cname},
+            '%'))
+            and ppl.brand_name like concat('%', #{brandName}, '%')
+        </if>
+        <if test="cnameStatus == 2">
+            and (ppl.goods_name like concat('%', #{cname}, '%') or ppl.cname_int like concat('%', #{cname}, '%')
+            or ppl.brand_item like concat('%', #{cname}, '%') or ppl.specification_and_model like concat('%', #{cname},
+            '%')
+            <if test="brandName != null  and brandName != ''">
+                or ppl.brand_name like concat('%', #{brandName}, '%')
+            </if>
+            )
+        </if>
+        <if test="cnameStatus == 3">
+            and (ppl.goods_name like concat('%', #{cname}, '%') or ppl.cname_int like concat('%', #{cname}, '%'))
+        </if>
+        <if test="goodsIds != null and goodsIds.size > 0">
+            and ppl.goods_id in('%', #{cname}, '%')
+            or ppl.brand_item like concat('%', #{cname}, '%') or ppl.specification_and_mo
+            <foreach collection="goodsIds" item="goodsId" open="(" close=")" separator=",">
+                #{goodsId}
+            </foreach>
+        </if>
+        <if test="inventoryStatus != null">
+            and ppl.inventory > #{inventoryStatus}
+        </if>
+        GROUP BY
+        ppl.id
+        ) allGoods
+        <if test="brandId != null">
+            order by  cnameInt
+        </if>
+        <if test="brandId == null">
+            ORDER BY sort DESC, inventoryLocal desc
+        </if>
+    </select>
 
 </mapper>

+ 13 - 5
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/IProductLaunchService.java

@@ -16,17 +16,15 @@
  */
 package org.springblade.salesPart.productLaunch.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
-import org.springblade.salesPart.entity.PjBrandDesc;
 import org.springblade.salesPart.entity.PjProductLaunch;
-import org.springblade.salesPart.entity.PjShoppingCart;
-import org.springblade.salesPart.excel.GoodsExcel;
 import org.springblade.salesPart.excel.PjShipStockDetails;
 import org.springblade.salesPart.excel.ProductLaunchImportCodeExcel;
 import org.springblade.salesPart.excel.ProductLaunchImportExcel;
 import org.springblade.salesPart.vo.ProductLaunchVO;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.List;
 import java.util.Map;
@@ -118,4 +116,14 @@ public interface IProductLaunchService extends IService<PjProductLaunch> {
     List<PjProductLaunch> selectListProductLaunch(String goodsNo, String salesCompanyName,String tenantId);
 
 	int updateProductLaunch(PjProductLaunch item);
+
+
+	/**
+	 * 微信小程序首页列表接口
+	 *
+	 * @param productLaunch 参数
+	 * @param query         分页
+	 * @return 结果
+	 */
+    R<IPage<PjProductLaunch>> selectWxAppIndexPageList(PjProductLaunch productLaunch, Query query);
 }

+ 124 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java

@@ -22,17 +22,26 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import lombok.AllArgsConstructor;
+import org.springblade.common.enums.CommonEnum;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.salesPart.brand.mapper.BrandDescMapper;
 import org.springblade.salesPart.brand.service.IBrandFigureService;
 import org.springblade.salesPart.brand.service.IBrandFilesService;
 import org.springblade.salesPart.corps.service.ICorpsAttnService;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
 import org.springblade.salesPart.entity.*;
+import org.springblade.salesPart.enums.PriceSystem;
+import org.springblade.salesPart.enums.ProductLaunchPriceSystem;
 import org.springblade.salesPart.excel.PjShipStockDetails;
 import org.springblade.salesPart.excel.ProductLaunchImportCodeExcel;
 import org.springblade.salesPart.excel.ProductLaunchImportExcel;
@@ -42,16 +51,21 @@ import org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchFilesService;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
 import org.springblade.salesPart.serial.service.IPjpfSerialService;
+import org.springblade.salesPart.shopping.entity.ShoppingMallDetail;
+import org.springblade.salesPart.shopping.mapper.ShoppingMallDetailMapper;
 import org.springblade.salesPart.shoppingCart.mapper.ShoppingCartMapper;
 import org.springblade.salesPart.stock.mapper.StockDescMapper;
 import org.springblade.salesPart.stock.service.IStockDescService;
 import org.springblade.salesPart.vo.ProductLaunchVO;
+import org.springblade.salesPart.vo.WxAppGoodsImgVo;
+import org.springblade.salesPart.vo.WxAppGoodsParamsVo;
 import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
 import java.util.*;
@@ -80,6 +94,15 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 	private final IBrandFigureService brandFigureService;
 	private final StockDescMapper stockDescMapper;
 
+
+	private final BrandDescMapper brandDescMapper;
+
+
+	private final ProductLaunchMapper productLaunchMapper;
+
+
+	private final ShoppingMallDetailMapper shoppingMallDetailMapper;
+
 	/**
 	 * 获取详情
 	 *
@@ -1172,4 +1195,105 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		return baseMapper.updateProductLaunch(item);
 	}
 
+	@Override
+	public R<IPage<PjProductLaunch>> selectWxAppIndexPageList(PjProductLaunch productLaunch, Query query) {
+		BladeUser bladeUser = AuthUtil.getUser();
+		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(bladeUser.getUserId());
+		if (ObjectUtil.isEmpty(corpsAttn)) {
+			throw new RuntimeException("未查到用户信息");
+		}
+		PjCorpsDesc corpsDesc = corpsDescService.getCorpsDesc(corpsAttn.getPid());
+		if (ObjectUtil.isEmpty(corpsDesc)) {
+			throw new RuntimeException("未查到用户信息");
+		}
+		WxAppGoodsParamsVo wxAppGoodsParamsVo = new WxAppGoodsParamsVo();
+		wxAppGoodsParamsVo.setTenantId(bladeUser.getTenantId());
+		wxAppGoodsParamsVo.setSalesCompanyId(bladeUser.getDeptId());
+		wxAppGoodsParamsVo.setBrandId(productLaunch.getBrandId());
+		brandIf:if (ObjectUtils.isNull(productLaunch.getBrandId())) {
+			// 如果
+			List<PjBrandDesc> pjBrandDescList = brandDescMapper.selectList(new LambdaQueryWrapper<PjBrandDesc>()
+				.eq(PjBrandDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjBrandDesc::getIsDeleted, 0)
+				.eq(PjBrandDesc::getType, "PP")
+				.eq(PjBrandDesc::getEnableOrNot, 1)
+				.apply("find_in_set(id,'" + corpsDesc.getBrandId() + "')"));
+			if (pjBrandDescList.isEmpty()) {
+				break brandIf;
+			}
+			wxAppGoodsParamsVo.setUserBrandIdList(pjBrandDescList.stream().map(PjBrandDesc::getId).distinct().collect(Collectors.toList()));
+		}
+		wxAppGoodsParamsVo.setExplosionProof(productLaunch.getExplosionProof());
+		wxAppGoodsParamsVo.setOriginalFactory(productLaunch.getOriginalFactory());
+		wxAppGoodsParamsVo.setSelfRecovery(productLaunch.getSelfRecovery());
+		cNameIf:if (ObjectUtil.isNotEmpty(productLaunch.getCname())) {
+			if (productLaunch.getCname().contains(",")) {
+				int index = productLaunch.getCname().indexOf(",");
+				String brandName = productLaunch.getCname().substring(0, index);
+				String cname = productLaunch.getCname().substring(index + 1);
+				wxAppGoodsParamsVo.setCname(cname);
+				wxAppGoodsParamsVo.setBrandName(brandName);
+				wxAppGoodsParamsVo.setCnameStatus(1);
+				break cNameIf;
+			}
+			String[] chineseWords = productLaunch.getCname().split("[^一-龥]");
+			if (chineseWords.length > 0) {
+				String cname = productLaunch.getCname().substring(chineseWords[0].length());
+				wxAppGoodsParamsVo.setCname(ObjectUtils.isNotNull(cname) ? cname : productLaunch.getCname());
+				wxAppGoodsParamsVo.setBrandName(ObjectUtils.isNull(cname) ? chineseWords[0]: null);
+				wxAppGoodsParamsVo.setCnameStatus(ObjectUtils.isNotNull(cname) ? 1 : 2);
+				break cNameIf;
+			}
+			wxAppGoodsParamsVo.setCname(productLaunch.getCname());
+			wxAppGoodsParamsVo.setCnameStatus(3);
+		}
+		wxAppGoodsParamsVo.setWhetherIntegral(productLaunch.getWhetherIntegral());
+		if (!CommonEnum.ONE.info.equals(productLaunch.getWhetherIntegral())) {
+			String status = iSysClient.getParamService(CommonEnum.WHETHER_BRANCH_MANAGEMENT.info);
+			managementIf: if (CommonEnum.ONE.info.equals(status) && ObjectUtils.isNotNull(corpsDesc.getDeliveryWarehouseId())) {
+				List<PjStockDesc> stockDescList = stockDescMapper.selectList(new LambdaQueryWrapper<PjStockDesc>()
+					.eq(PjStockDesc::getTenantId, bladeUser.getTenantId())
+					.eq(PjStockDesc::getIsDeleted, 0)
+					.eq(PjStockDesc::getStorageId, corpsDesc.getDeliveryWarehouseId()));
+				if (stockDescList.isEmpty()) {
+					break managementIf;
+				}
+				wxAppGoodsParamsVo.setGoodsIds(stockDescList.stream().map(PjStockDesc::getGoodsId).collect(Collectors.toList()));
+			}
+		}
+		String inventoryStatus = iSysClient.getParamService(CommonEnum.WHETHER_ZERO_INVENTORY.info);
+		if (ObjectUtils.isNull(inventoryStatus) || CommonEnum.ZERO.info.equals(inventoryStatus)) {
+			wxAppGoodsParamsVo.setInventoryStatus(0);
+		}
+		PageHelper.startPage(query.getCurrent(), query.getSize());
+		List<PjProductLaunch> pjProductLaunchList = productLaunchMapper.selectWxAppIndexPageList(wxAppGoodsParamsVo);
+		if (!org.springframework.util.CollectionUtils.isEmpty(pjProductLaunchList)) {
+			List<Long> ids = pjProductLaunchList.stream().map(PjProductLaunch::getId).collect(Collectors.toList());
+ 			List<Long> brandIds = pjProductLaunchList.stream().map(PjProductLaunch::getBrandId).distinct().collect(Collectors.toList());
+			// 查询商品的所有图片并根据匹配度与优先级显示
+			List<WxAppGoodsImgVo> wxAppGoodsImgVoList = shoppingMallDetailMapper.selectWxAppGoodsImgVoList(ids, brandIds);
+			for (PjProductLaunch item : pjProductLaunchList) {
+				ProductLaunchPriceSystem priceSystem = ProductLaunchPriceSystem.fromValue(corpsDesc.getPriceSystem());
+				priceSystem.setMallPrice(item);
+				WxAppGoodsImgVo wxAppGoodsImgVo = wxAppGoodsImgVoList.stream().filter(wxImg ->
+					1 == wxImg.getType() && wxImg.getPid().equals(item.getId()) ||
+						2 == wxImg.getType() && wxImg.getPid().equals(item.getBrandId()) && StringUtils.hasText(wxImg.getBrandItem()) && wxImg.getBrandItem().equals(item.getBrandItem()) ||
+						3 == wxImg.getType() && wxImg.getPid().equals(item.getBrandId())
+				).min(Comparator.comparing(WxAppGoodsImgVo::getType)).orElse(null);
+				if (wxAppGoodsImgVo == null) {
+					continue;
+				}
+				item.setUrl(wxAppGoodsImgVo.getUrl());
+			}
+		}
+		// TODO: 此处可优化
+		PageInfo<PjProductLaunch> pageInfo = new PageInfo<>(pjProductLaunchList);
+		IPage<PjProductLaunch> page = new Page<>();
+		page.setRecords(pageInfo.getList());
+		page.setTotal(pageInfo.getTotal());
+		page.setCurrent(pageInfo.getPageNum());
+		page.setSize(pageInfo.getPageSize());
+		return R.data(page);
+	}
+
 }

+ 9 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shopping/mapper/ShoppingMallDetailMapper.xml

@@ -61,11 +61,13 @@
         price_two as priceTwo,
         price_three as priceThree,
         price_four as priceFour,
+        fpd.brand_item AS brandItem,
+        fpd.cname_int AS cnameInt,
         fpd.inventory AS inventoryLocal,
         (SELECT IFNULL(SUM(smd.inventory), 0.00) allInventory
         FROM pjpf_shopping_mall_detail smd
         WHERE smd.goods_code = fpd.goods_code
-        AND smd.id != fpd.id AND smd.tenant_id = '883868' AND smd.is_deleted = 0) AS inventoryShare,
+        AND smd.id != fpd.id AND smd.tenant_id = #{tenantId} AND smd.is_deleted = 0) AS inventoryShare,
         COUNT(goods_code) AS gc FROM
         pjpf_shopping_mall_detail fpd
         WHERE
@@ -119,8 +121,12 @@
         GROUP BY
         goods_code
         ) AS allGoods
-        ORDER BY
-        sort DESC, inventoryLocal desc
+        <if test="brandId != null">
+            order by  cnameInt
+        </if>
+        <if test="brandId == null">
+            ORDER BY sort DESC, inventoryLocal desc
+        </if>
 
     </select>
     <select id="selectWxAppGoodsImgVoList" resultType="org.springblade.salesPart.vo.WxAppGoodsImgVo">