コード例 #1
0
        public async Task <IActionResult> ProductCenterAsync([FromQuery] ProductCenterRequestDto request)
        {
            var response = await new ProductBiz().ProductCenterAsync(request);

            return(Success(response));
        }
コード例 #2
0
        /// <summary>
        /// 商品中心查询
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ProductCenterResponseDto> ProductCenterAsync(ProductCenterRequestDto request)
        {
            var sqlWhere = $@"AND p.ENABLE = 1 ";

            if (!string.IsNullOrWhiteSpace(request.ProductName))
            {
                sqlWhere            = $"{sqlWhere} AND p.product_name like @ProductName";
                request.ProductName = $"%{request.ProductName}";
            }
            if (!string.IsNullOrWhiteSpace(request.ProductCode))
            {
                sqlWhere            = $"{sqlWhere} AND p.product_code like @ProductCode";
                request.ProductCode = $"%{request.ProductCode}";
            }
            if (!string.IsNullOrWhiteSpace(request.MerchantGuid))
            {
                sqlWhere = $"{sqlWhere} AND p.merchant_guid=@MerchantGuid";
            }
            if (!string.IsNullOrWhiteSpace(request.CategoryName))
            {
                sqlWhere = $"{sqlWhere} AND p.category_name=@CategoryName";
            }
            if (request.ProductStatus.HasValue)
            {
                sqlWhere = $"{sqlWhere} AND p.on_sale=@ProductStatus";
                request.ProductStatus = request.ProductStatus.Value;
            }
            var sql = $@"
                            SELECT
                            p.product_guid,
	                        m.merchant_name,
	                        p.product_form,
	                        p.category_name,
	                        product_code,
	                        p.product_name,
	                        p.price,
	                        p.inventory,
	                        a.salecount,
	                        p.on_sale,
	                        p.platform_on_sale,
	                        p.effective_days,
	                        p.recommend,
	                        p.sort 
                        FROM
	                        t_mall_product p
	                        LEFT JOIN t_merchant m ON p.merchant_guid = m.merchant_guid
	                        LEFT JOIN (
	                        SELECT
		                        od.product_guid,
	                          IFNULL(sum(od.product_count ), 0 ) salecount
	                        FROM
		                        t_mall_order_detail od RIGHT JOIN  t_mall_order o ON o.order_guid = od.order_guid 
		                        WHERE o.order_status ='Completed' AND o.`enable` = 1 AND od.`enable` = 1
	                        GROUP BY
	                        od.product_guid
	                        ) a on a.product_guid=p.product_guid
                                            WHERE
	                                            1 = 1 {sqlWhere}
                                            ORDER BY
	                                            p.creation_date"    ;

            return(await MySqlHelper.QueryByPageAsync <ProductCenterRequestDto, ProductCenterResponseDto, ProductCenterItemDto>(sql, request));
        }