jyy
2021-03-08 0a426c08ac419c558334d89ab79fbbef4e7e3af8
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml
New file
@@ -0,0 +1,190 @@
<?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.matrix.system.hive.dao.SysOrderFlowDao">
    <resultMap id="SysOrderFlowMap" type="SysOrderFlow">
        <id property="id" column="id" />
        <result property="createBy" column="create_by" />
        <result property="createTime" column="create_time" />
        <result property="updateBy" column="update_by" />
        <result property="updateTime" column="update_time" />
        <result property="flowNo" column="flow_no" />
        <result property="orderId" column="order_id" />
        <result property="flowContent" column="flow_content" />
        <result property="flowType" column="flow_type" />
        <result property="amount" column="amount" />
        <result property="vipId" column="vip_id" />
        <result property="payMethod" column="pay_method" />
        <result property="cardId" column="card_id" />
        <result property="isGift" column="is_gift" />
      <result property="orderNo" column="order_no" />
    </resultMap>
    <insert id="insert" parameterType="SysOrderFlow" useGeneratedKeys="true"
            keyProperty="id">
      INSERT INTO sys_order_flow (
      ID,
      create_by,
      create_time,
      update_by,
      update_time,
      flow_no,
      order_id,
      flow_content,
      flow_type,
      amount,
      vip_id,
      pay_method,
      card_id,
      is_gift,
      shop_id,
      company_id
      )
      VALUES (
      #{id},
      #{createBy},
      now(),
      #{updateBy},
      now(),
      #{flowNo},
      #{orderId},
      #{flowContent},
      #{flowType},
      #{amount},
      #{vipId},
      #{payMethod},
      #{cardId},
      #{isGift},
      #{shopId},
      #{companyId}
      )
   </insert>
   <update id="updateTimeByOrderId">
      UPDATE sys_order_flow set
      create_time=#{payTime}
      where order_id=#{orderId}
   </update>
    <delete id="deleteByOrderId">
      delete from sys_order_flow where order_id=#{orderId}
   </delete>
    <select id="selectByOrderId" resultMap="SysOrderFlowMap">
      select a.*, b.order_no from sys_order_flow a
      left join sys_order b on a.order_id=b.id
      where order_id=#{orderId}
   </select>
   <select id="selectPayMethodsAmountByOrderId" resultMap="SysOrderFlowMap">
      select
         pay_method,
         sum(amount) amount
      from sys_order_flow
      where order_id=#{orderId}
      group by pay_method
   </select>
   <select id="selectInPage" resultType="com.matrix.system.hive.vo.OrderFlowVo">
      SELECT
      a.id,
      b.id as orderId,
      a.create_time as createTime,
      b.ORDER_NO as orderNo,
      a.flow_content as flowContent,
      a.flow_type as flowType,
      a.amount as amount,
      c.VIP_NAME as vipName,
      a.pay_method as payMethod,
      a.flow_no as flowNo,
      d.shop_short_name as shopName,
      e.su_name as staffName
      from sys_order_flow a
      LEFT JOIN sys_order b on a.order_id=b.ID
      LEFT JOIN sys_vip_info c on a.vip_id=c.ID
      LEFT JOIN sys_shop_info d on a.shop_id=d.ID
      LEFT JOIN sys_users e on e.su_id=b.STAFF_ID
      <where>
            and a.company_id=#{record.companyId}
         <if test="record.queryKey != null and record.queryKey != ''">
            and (instr(c.vip_name, #{record.queryKey}) or instr(c.phone, #{record.queryKey}) )
         </if>
         <if test="record.oprationMan != null and record.oprationMan != ''">
            and instr(e.su_name, #{record.oprationMan})
         </if>
         <if test="record.orderNo != null and record.orderNo != ''">
            and instr(b.ORDER_NO, #{record.orderNo})
         </if>
         <if test="record.payMethod != null and record.payMethod != ''">
            and a.pay_method=#{record.payMethod}
         </if>
         <if test="record.flowType != null and record.flowType != ''">
            and a.flow_type=#{record.flowType}
         </if>
         <if test="record.startTime != null ">
            and a.create_time >= #{record.startTime}
         </if>
         <if test="record.endTime != null   ">
            <![CDATA[and a.create_time <= #{record.endTime}]]>
         </if>
         <if test="record.shopId != null and record.shopId != ''">
            and a.shop_id=#{record.shopId}
         </if>
      </where>
      <if test="record.sort !=null">
         order by
         a.${record.sort} ${record.order}
      </if>
      <if test="record.offset >=0  and record.limit >0">
         limit
         #{record.offset},#{record.limit}
      </if>
   </select>
   <select id="selectTotal" resultType="java.lang.Integer">
      SELECT count(*)
      from sys_order_flow a
      LEFT JOIN sys_order b on a.order_id=b.ID
      LEFT JOIN sys_vip_info c on a.vip_id=c.ID
      LEFT JOIN sys_shop_info d on a.shop_id=d.ID
      LEFT JOIN sys_users e on e.su_id=b.STAFF_ID
      <where>
         and a.company_id=#{record.companyId}
         <if test="record.queryKey != null and record.queryKey != ''">
            and (instr(c.vip_name, #{record.queryKey}) or instr(c.phone, #{record.queryKey}) )
         </if>
         <if test="record.oprationMan != null and record.oprationMan != ''">
            and instr(e.su_name, #{record.oprationMan})
         </if>
         <if test="record.orderNo != null and record.orderNo != ''">
            and instr(b.ORDER_NO, #{record.orderNo})
         </if>
         <if test="record.payMethod != null and record.payMethod != ''">
            and a.pay_method=#{record.payMethod}
         </if>
         <if test="record.flowType != null and record.flowType != ''">
            and a.flow_type=#{record.flowType}
         </if>
         <if test="record.startTime != null ">
            and a.create_time >= #{record.startTime}
         </if>
         <if test="record.endTime != null   ">
            <![CDATA[and a.create_time <= #{record.endTime}]]>
         </if>
         <if test="record.shopId != null and record.shopId != ''">
            and a.shop_id=#{record.shopId}
         </if>
      </where>
   </select>
</mapper>