<?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">
|
<mapper namespace="cc.mrbird.febs.mall.mapper.MallGoodsMapper">
|
|
<resultMap id="MallGoodsMap" type="cc.mrbird.febs.mall.entity.MallGoods">
|
<id property="id" column="id" />
|
<result property="goodsNo" column="goods_no" />
|
<result property="goodsName" column="goods_name" />
|
<result property="goodsIntrodution" column="goods_introdution" />
|
<result property="unit" column="unit" />
|
<result property="thumb" column="thumb" />
|
<result property="goodsParameter" column="goods_parameter" />
|
<result property="goodsDetails" column="goods_details" />
|
<result property="isSale" column="is_sale" />
|
<result property="originalPrice" column="original_price" />
|
<result property="presentPrice" column="present_price" />
|
<result property="categoryId" column="category_id" />
|
<result property="volume" column="volume" />
|
<result property="stock" column="stock" />
|
<result property="score" column="score" />
|
<result property="goodsType" column="goods_type" />
|
<result property="hasCarriage" column="has_carriage" />
|
<result property="carriage" column="carriage" />
|
<result property="isNormal" column="is_normal" />
|
<collection property="styles" ofType="cc.mrbird.febs.mall.entity.MallGoodsStyle">
|
<id property="id" column="style_id" />
|
<result property="name" column="style_name" />
|
<result property="goodsId" column="style_goods_id" />
|
<collection property="skus" ofType="cc.mrbird.febs.mall.entity.MallGoodsSku">
|
<id property="id" column="sku_id" />
|
<result property="skuName" column="sku_name" />
|
<result property="skuImage" column="sku_image" />
|
<result property="stock" column="sku_stock" />
|
<result property="skuVolume" column="sku_volume" />
|
<result property="originalPrice" column="sku_original_price" />
|
<result property="presentPrice" column="sku_present_price" />
|
<result property="styleId" column="sku_style_id"/>
|
<result property="goodsId" column="sku_goods_id" />
|
</collection>
|
</collection>
|
</resultMap>
|
|
<select id="selectGoodsDetailById" resultMap="MallGoodsMap">
|
select
|
a.*,
|
b.id style_id,
|
b.name style_name,
|
b.goods_id style_goods_id,
|
c.id sku_id,
|
c.sku_name,
|
c.sku_image,
|
c.stock sku_stock,
|
c.sku_volume,
|
c.original_price sku_original_price,
|
c.present_price sku_present_price,
|
c.style_id sku_style_id,
|
c.goods_id sku_goods_id
|
from mall_goods a
|
left join mall_goods_style b on a.id = b.goods_id
|
left join mall_goods_sku c on b.id=c.style_id
|
where a.id=#{id}
|
</select>
|
|
<select id="selectMallGoodsListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo">
|
select * from (
|
select
|
a.id,
|
a.goods_name,
|
a.goods_introdution goodsIntroduction,
|
a.thumb,
|
a.original_price,
|
a.present_price,
|
a.score,
|
a.is_hot,
|
min(b.id) skuId,
|
min(b.present_price) price,
|
sum(b.stock) stock,
|
sum(b.sku_volume) saleVolume
|
from mall_goods a
|
left join mall_goods_sku b on a.id=b.goods_id
|
left join mall_goods_category c on a.category_id=c.id
|
<where>
|
a.is_sale=1
|
<if test="record != null">
|
<if test="record.isHot != null and record.isHot != ''">
|
and a.is_hot = #{record.isHot}
|
</if>
|
<if test="record.isNormal != null and record.isNormal != ''">
|
and a.is_normal = #{record.isNormal}
|
</if>
|
<if test="record.goodsType != null and record.goodsType != '' and record.goodsType != 3">
|
and a.goods_type = #{record.goodsType} and a.present_price != 0
|
</if>
|
<if test="record.goodsType == 3">
|
and a.present_price = 0
|
</if>
|
<if test="record.categoryId != null and record.categoryId != ''">
|
and (c.id = #{record.categoryId} or c.parent_id=#{record.categoryId})
|
</if>
|
<if test="record.query != null and record.query != ''">
|
and a.goods_name like CONCAT('%', CONCAT(#{record.query}, '%'))
|
</if>
|
</if>
|
</where>
|
group by a.id
|
order by a.id desc
|
) a
|
<if test="record.sortType != null">
|
<if test="record.sortType == 1">
|
order by a.is_hot, a.saleVolume desc, a.id
|
</if>
|
<if test="record.sortType == 2">
|
order by a.saleVolume desc
|
</if>
|
<if test="record.sortType == 3 and record.sort == 'asc'">
|
order by a.price
|
</if>
|
<if test="record.sortType == 3 and record.sort == 'desc'">
|
order by a.price desc
|
</if>
|
<if test="record.sortType == 4">
|
order by a.id desc
|
</if>
|
</if>
|
</select>
|
|
<select id="selectMallGoodsInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsVo">
|
select
|
a.id,
|
a.goods_name,
|
a.goods_no,
|
a.goods_introdution,
|
a.unit,
|
a.thumb,
|
a.goods_details,
|
a.is_sale,
|
a.original_price,
|
a.present_price,
|
a.is_hot,
|
a.score,
|
a.is_normal,
|
b.name categaryName,
|
IFNULL(sum(c.sku_volume), a.volume) skuVolume,
|
IFNULL(sum(c.stock), a.stock) stock
|
from mall_goods a
|
left join mall_goods_category b on b.id = a.category_id
|
left join mall_goods_sku c on c.goods_id = a.id
|
<where>
|
<if test="record != null">
|
<if test="record.goodsName != null and record.goodsName != ''">
|
and a.goods_name like CONCAT('%', CONCAT(#{record.goodsName}, '%'))
|
</if>
|
<if test="record.goodsType != null and record.goodsType != ''">
|
and a.goods_type=#{record.goodsType}
|
</if>
|
</if>
|
</where>
|
group by a.id
|
order by a.created_time desc
|
</select>
|
|
<select id="selectMallGoodsCountByGoodsName" resultType="java.lang.Integer">
|
select count(id) from mall_goods a where a.goods_name = #{goodsName}
|
</select>
|
|
|
|
<select id="selectMallGoodsCountByGoodsNameAndGoodId" resultType="java.lang.Integer">
|
select count(id) from mall_goods a where a.goods_name = #{goodsName} and a.id != #{id}
|
</select>
|
|
<select id="selectMallGoodsCountByGoodsNo" resultType="java.lang.Integer">
|
select count(id) from mall_goods a where a.goods_no = #{goodsNo}
|
</select>
|
|
<select id="selectMallGoodsCountByGoodsNoAndGoodId" resultType="java.lang.Integer">
|
select count(id) from mall_goods a where a.goods_no = #{goodsNo} and a.id != #{id}
|
</select>
|
|
<select id="selectMallGoodsInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo">
|
select * from mall_goods a where a.id = #{id}
|
</select>
|
|
<select id="selectGoodsStockAndVolume" resultType="java.util.HashMap">
|
select
|
sum(stock) stock,
|
sum(sku_volume) volume
|
from mall_goods_sku
|
where goods_id=#{id}
|
</select>
|
|
<select id="selectMallGoodsByCategaryId" resultType="cc.mrbird.febs.mall.entity.MallGoods">
|
select * from mall_goods a where a.category_id = #{categaryId}
|
</select>
|
|
<select id="getMallGoodsUpdateInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMailGoodsUpdateVo">
|
select * from mall_goods a where a.id = #{id}
|
</select>
|
|
<select id="getAllGoodsTree" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsTreeVo">
|
select
|
a.id goodsId,
|
a.goods_name goodsName
|
from mall_goods a
|
</select>
|
|
<select id="selectOrderGoodsList" resultType="cc.mrbird.febs.mall.entity.MallGoods">
|
select a.*,c.order_no from mall_goods a
|
inner join mall_order_item b on a.id=b.goods_id
|
inner join mall_order_info c on b.order_id=c.ID
|
where c.status in (2, 3, 4) and b.is_normal=2
|
<if test="memberId != null">
|
and c.member_id=#{memberId}
|
</if>
|
<if test="date != null">
|
and date_format(c.pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
|
</if>
|
</select>
|
|
<select id="selectMallGoodsCommentListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsCommentVo">
|
select
|
a.*,
|
b.name name,
|
b.avatar avatar
|
from mall_goods_comment a
|
left join mall_member b on b.id = a.member_id
|
<where>
|
<if test="record != null">
|
<if test="record.goodsId != null and record.goodsId != ''">
|
and a.goods_id=#{record.goodsId}
|
</if>
|
<if test="record.commentType != null and record.commentType != '' and record.commentType == 1">
|
and a.star <![CDATA[ > ]]> 4
|
</if>
|
<if test="record.commentType != null and record.commentType != '' and record.commentType == 2">
|
and (a.star <![CDATA[ >= ]]> 3 and a.star <![CDATA[ <= ]]> 4)
|
</if>
|
<if test="record.commentType != null and record.commentType != '' and record.commentType == 3">
|
and (a.star <![CDATA[ < ]]> 3 )
|
</if>
|
</if>
|
</where>
|
group by a.id
|
order by a.created_time desc
|
</select>
|
|
<select id="getDeliveryHomeListInPage" resultType="cc.mrbird.febs.mall.entity.DataDictionaryCustom">
|
SELECT
|
a.*
|
FROM
|
data_dictionary_custom a
|
where a.type = 'HOME_DELIVERY_SETTING'
|
GROUP BY a.id
|
ORDER BY
|
a.CREATED_TIME asc
|
</select>
|
|
<select id="findMallGoodsCommentLevelByGoodsId" resultType="cc.mrbird.febs.mall.vo.MallGoodsCommentVo">
|
select
|
(select count(z.id) from mall_goods_comment z where z.goods_id = #{id} and z.star <![CDATA[ > ]]> 4) greatNum,
|
(select count(z.id) from mall_goods_comment z where z.goods_id = #{id}
|
and (z.star <![CDATA[ >= ]]> 3 and z.star <![CDATA[ <= ]]> 4)) goodNum,
|
(select count(z.id) from mall_goods_comment z where z.goods_id = #{id} and (z.star <![CDATA[ < ]]> 3 )) badNum
|
from mall_goods_comment a limit 1
|
</select>
|
|
<update id="upDateStockAndVolumeByGoodsId">
|
update mall_goods
|
set stock = stock - #{cnt},
|
volume = volume + #{cnt}
|
where id=#{id} and stock - #{cnt} <![CDATA[ >= ]]> 0
|
</update>
|
|
<update id="updateStockAndVolumeByGoodsId">
|
update mall_goods
|
set stock = stock + #{cnt},
|
volume = volume - #{cnt}
|
where id=#{id} and volume - #{cnt} <![CDATA[ >= ]]> 0
|
</update>
|
|
</mapper>
|