添加"订单"的基础业务接口和实现

This commit is contained in:
longbinbin
2024-12-03 14:58:55 +08:00
parent e599004c92
commit 4bac7d10f9
21 changed files with 488 additions and 90 deletions

View File

@ -1,10 +1,42 @@
<?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="com.ycwl.basic.mapper.pc.OrderMapper">
<resultMap id="BaseResultMap" type="com.ycwl.basic.model.pc.order.resp.OrderRespVO">
<id column="id" property="id"/>
<result column="member_id" property="memberId"/>
<result column="nickname" property="memberNickname"/>
<result column="real_name" property="memberRealName"/>
<result column="openid" property="openId"/>
<result column="price" property="price"/>
<result column="pay_price" property="payPrice"/>
<result column="remark" property="remark"/>
<result column="broker_id" property="brokerId"/>
<result column="promo_code" property="promoCode"/>
<result column="refund_reason" property="refundReason"/>
<result column="refund_status" property="refundStatus"/>
<result column="status" property="status"/>
<result column="refund_at" property="refundAt"/>
<result column="pay_at" property="payAt"/>
<result column="cancel_at" property="cancelAt"/>
<result column="create_at" property="createAt"/>
<result column="update_at" property="updateAt"/>
<collection property="orderItemList" ofType="com.ycwl.basic.model.pc.order.resp.OrderItemVO">
<result column="id" property="id"/>
<result column="order_id" property="orderId"/>
<result column="goods_type" property="goodsType"/>
<result column="goods_id" property="goodsId"/>
</collection>
</resultMap>
<insert id="add">
insert into `order`(id, member_id, openid,price, pay_price, remark, broker_id, promo_code)
VALUES (#{id}, #{memberId}, #{openid},#{price}, #{payPrice}, #{remark}, #{brokerId}, #{promoCode})
</insert>
<insert id="addOrderItems">
insert into order_item(id, order_id, goods_type, goods_id) VALUES
<foreach collection="orderItems" item="item" index="index" separator=",">
(#{item.id}, #{item.orderId}, #{item.goodsType}, #{item.goodsId})
</foreach>
</insert>
<update id="update">
update `order`
<set>
@ -41,11 +73,15 @@
<delete id="deleteById">
delete from `order` where id = #{id}
</delete>
<select id="list" resultType="com.ycwl.basic.model.pc.order.resp.OrderRespVO">
select o.id, member_id,m.nickname memberNickname,m.real_name memberRealName, o.openid, price, pay_price, remark, o.broker_id, o.promo_code,
refund_reason, refund_status, `status`, refund_at, pay_at, cancel_at
<select id="list" resultMap="BaseResultMap">
select o.id, o.member_id,m.nickname ,m.real_name , o.openid, price, pay_price, remark, o.broker_id, o.promo_code,
refund_reason, refund_status, o.`status`, refund_at, pay_at, cancel_at
from `order` o
left join member m on o.member_id = m.id
left join order_item oi on o.id = oi.order_id
left join template t on oi.goods_type='3' and oi.goods_id = t.id
left join source sr on oi.goods_type='2' and oi.goods_id = sr.id
left join video vd on oi.goods_type='1' and oi.goods_id = vd.id
<where>
<if test="id!= null ">
and o.id = #{id}
@ -78,7 +114,7 @@
and refund_status = #{refundStatus}
</if>
<if test="status!= null ">
and `status` = #{status}
and o.`status` = #{status}
</if>
<if test="startCreateTime!= null ">
and o.create_at >= #{startCreateTime}
@ -107,12 +143,16 @@
</where>
order by o.create_at desc
</select>
<select id="getById" resultType="com.ycwl.basic.model.pc.order.entity.OrderEntity">
<select id="getById" resultMap="BaseResultMap">
select o.id, o.member_id, o.openid, o.price, o.pay_price, o.remark, o.broker_id, o.promo_code, o.refund_reason,
o.refund_status, o.status, o.create_at, o.update_at, o.pay_at, o.cancel_at, o.refund_at,
m.nickname memberNickname, m.real_name memberRealName
m.nickname , m.real_name
from `order` o
left join member m on m.id = o.member_id
left join order_item oi on o.id = oi.order_id
left join template t on oi.goods_type='3' and oi.goods_id = t.id
left join source sr on oi.goods_type='2' and oi.goods_id = sr.id
left join video vd on oi.goods_type='1' and oi.goods_id = vd.id
where o.id = #{id}
</select>
</mapper>