<?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.xzx.gc.order.mapper.OrderComplaintMapper">
|
<resultMap id="BaseResultMap" type="com.xzx.gc.entity.OrderComplaint">
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<result column="order_id" jdbcType="VARCHAR" property="orderId" />
|
<result column="complaint_reason" jdbcType="VARCHAR" property="complaintReason" />
|
<result column="create_time" jdbcType="VARCHAR" property="createTime" />
|
<result column="del_flag" jdbcType="INTEGER" property="delFlag" />
|
<result column="after_sale_flag" jdbcType="INTEGER" property="afterSaleFlag" />
|
<result column="complain_img" jdbcType="VARCHAR" property="complainImg" />
|
<result column="complaint_plan" jdbcType="VARCHAR" property="complaintPlan" />
|
<result column="complaint_type" jdbcType="INTEGER" property="complaintType" />
|
<result column="partner_id" jdbcType="VARCHAR" property="partnerId" />
|
</resultMap>
|
|
|
<select id="find" resultType="com.xzx.gc.order.dto.ComplaintFindResDto">
|
select
|
distinct a.id,
|
a.after_sale_flag "afterSaleFlag",
|
a.complaint_plan "complaintPlan" ,
|
a.complaint_reason "complaintReason",
|
b.rela_name "relaName",
|
b.rela_phone "relaPhone",
|
b.order_id "orderId",
|
b.create_time "createTime",
|
b.address_area "addressArea",
|
b.address,
|
b.receiver,
|
c.receiver_phone "receiverPhone",
|
c.receiver_name "receiverName"
|
from xzx_order_complaint a
|
inner join xzx_order_info b on a.order_id=b.order_id
|
left join xzx_user_other_info d on b.receiver=d.user_id and d.del_flag=0 and d.is_prohibit=0
|
inner join xzx_order_detail_info c on b.order_id=c.order_id
|
where a.del_flag=0
|
<if test="fenceIds != null">
|
and b.town_id in
|
<foreach collection="fenceIds" item="id" index="index" open="(" close=")" separator=",">
|
#{id}
|
</foreach>
|
</if>
|
<if test="keyword != null and keyword != ''">
|
and (b.rela_phone like concat('%',#{keyword},'%') or d.name like concat('%',#{keyword},'%') or c.receiver_phone like concat('%',#{keyword},'%') or b.rela_name like concat('%',#{keyword},'%'))
|
</if>
|
<if test="status != null and status != ''">
|
and a.after_sale_flag=#{status}
|
</if>
|
order by a.after_sale_flag asc,b.create_time desc
|
</select>
|
|
<select id="detail" resultType="com.xzx.gc.order.dto.ComplaintFindResDto">
|
select distinct a.id,
|
a.after_sale_flag "afterSaleFlag",
|
a.complaint_plan "complaintPlan" ,
|
a.complaint_reason "complaintReason",
|
b.rela_name "relaName",
|
b.rela_phone "relaPhone",
|
b.order_id "orderId",
|
a.create_time "createTime",
|
b.address_area "addressArea",
|
b.address,
|
b.receiver,
|
b.reserve_time "reserveTime",
|
c.receiver_phone "receiverPhone",
|
c.receiver_name "receiverName"
|
from xzx_order_complaint a
|
inner join xzx_order_info b on a.order_id=b.order_id
|
left join xzx_user_other_info d on b.receiver=d.user_id and d.del_flag=0 and d.is_prohibit=0
|
inner join xzx_order_detail_info c on b.order_id=c.order_id
|
where a.del_flag=0
|
and a.order_id=#{orderId}
|
order by a.create_time desc
|
|
</select>
|
|
|
<select id="queryComplaintApiList" resultType="com.xzx.gc.model.admin.XzxOrderComplaintModel">
|
SELECT a.id as id, b.order_id as orderId,b.create_time as createTime,a.after_sale_flag as afterSaleFlag,
|
xyz.nick_name as nickName,xyz.create_user_phone as userPhone,xyz.del_flag as delFlag,
|
xyz.name as collectorName,xyz.mobile_phone as collectorPhone,a.complaint_reason as complaintReason,
|
e.config_value_name as complaintValue,a.complaint_plan as complaintPlan ,b.town_id,xyz.town_id as xTownId,
|
(select m.partner_name from xzx_city_partner m where m.id = xyz.partner_id) as partnerName
|
FROM xzx_order_complaint a
|
LEFT JOIN xzx_order_info b ON a.order_id = b.order_id
|
LEFT JOIN xzx_order_detail_info d ON a.order_id=d.order_id
|
LEFT JOIN xzx_sys_config_info e ON e.config_value=a.complaint_type AND e.config_type_code='COMPLAINT_TYPE'
|
LEFT JOIN (
|
SELECT z.mobile_phone AS create_user_phone, x.order_id,z.nick_name,c.name,c.mobile_phone,y.town_id,c.del_flag,c.partner_id FROM
|
xzx_order_complaint x
|
LEFT JOIN xzx_order_info y ON x.order_id=y.order_id
|
LEFT JOIN xzx_user_info z ON z.user_id = y.create_user_id
|
LEFT JOIN xzx_user_other_info c ON y.receiver=c.user_id
|
GROUP BY x.order_id
|
) as xyz ON a.order_id = xyz.order_id
|
WHERE a.del_flag=0
|
<if test="afterSaleFlags != null and afterSaleFlags.length != 0">
|
AND after_sale_flag in
|
<foreach collection="afterSaleFlags" index="index" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
|
<if test="startTime != null and startTime != ''">
|
AND a.create_time BETWEEN #{startTime} AND #{endTime}
|
</if>
|
|
<if test="orderId != null and orderId != ''">
|
AND b.order_id like concat("%",#{orderId} ,"%")
|
</if>
|
|
<if test="userPhone != null and userPhone != ''">
|
AND xyz.create_user_phone like concat("%",#{userPhone} ,"%")
|
</if>
|
|
<if test="collectorName != null and collectorName != ''">
|
AND xyz.name like concat("%",#{collectorName} ,"%")
|
</if>
|
|
<if test="collectorPhone != null and collectorPhone != ''">
|
AND xyz.mobile_phone like concat("%",#{collectorPhone} ,"%")
|
</if>
|
|
<if test="partnerIds != null and partnerIds.size() != 0">
|
AND b.town_id in (select p.fence_id from xzx_partner_fence p where p.del_flag=0 and p.partner_id in
|
<foreach collection="partnerIds" index="index" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
)
|
</if>
|
order by b.create_time desc
|
</select>
|
|
|
<update id="updateComplaintFlagApi">
|
update xzx_order_complaint
|
set
|
after_sale_flag = #{afterSaleFlag},
|
complaint_plan = #{complaintPlan}
|
where id = #{id}
|
</update>
|
|
|
<select id="queryComplaintList" resultType="java.util.Map">
|
SELECT a.id as complain_id, a.complaint_reason, a.create_time as create_timex, a.del_flag as del_flagx,
|
a.after_sale_flag, a.complain_img, a.complaint_plan, a.complaint_type, b.*, c.nick_name as nick_namex, c.mobile_phone as receiver_phone
|
, d.money, xyz.create_user_phone, e.config_value_name FROM xzx_order_complaint a
|
LEFT JOIN xzx_order_info b ON a.order_id = b.order_id
|
LEFT JOIN xzx_user_other_info c ON b.receiver=c.user_id
|
LEFT JOIN xzx_order_detail_info d ON a.order_id=d.order_id
|
LEFT JOIN xzx_sys_config_info e ON e.config_value=a.complaint_type AND e.config_type_code='COMPLAINT_TYPE'
|
LEFT JOIN (
|
SELECT z.mobile_phone AS create_user_phone, x.order_id FROM xzx_order_complaint x
|
LEFT JOIN xzx_order_info y ON x.order_id=y.order_id
|
LEFT JOIN xzx_user_info z ON z.user_id = y.create_user_id
|
GROUP BY x.order_id
|
) as xyz ON a.order_id = xyz.order_id
|
WHERE a.del_flag=0
|
<if test="afterSaleFlags != null">
|
AND after_sale_flag in (
|
<foreach collection="afterSaleFlags" index="index" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
)
|
</if>
|
<if test="startTime != null and startTime != ''">
|
AND a.create_time BETWEEN #{startTime} AND #{endTime}
|
</if>
|
limit #{page}, #{limit}
|
</select>
|
|
<select id="queryComplaintListCount" resultType="java.lang.Integer">
|
SELECT count(*) FROM xzx_order_complaint a
|
LEFT JOIN xzx_order_info b ON a.order_id = b.order_id
|
LEFT JOIN xzx_user_info c ON b.receiver=c.user_id
|
LEFT JOIN xzx_order_detail_info d ON a.order_id=d.order_id
|
LEFT JOIN xzx_sys_config_info e ON e.config_value=a.complaint_type AND e.config_type_code='COMPLAINT_TYPE'
|
LEFT JOIN (
|
SELECT z.mobile_phone AS create_user_phone, x.order_id FROM xzx_order_complaint x
|
LEFT JOIN xzx_order_info y ON x.order_id=y.order_id
|
LEFT JOIN xzx_user_info z ON z.user_id = y.create_user_id
|
GROUP BY x.order_id
|
) as xyz ON a.order_id = xyz.order_id
|
WHERE a.del_flag=0
|
<if test="afterSaleFlags != null">
|
AND after_sale_flag in
|
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
<if test="startTime != null and startTime != ''">
|
AND a.create_time BETWEEN #{startTime} AND #{endTime}
|
</if>
|
</select>
|
<update id="updateComplaintFlag">
|
update xzx_order_complaint set
|
after_sale_flag=#{afterSaleFlag},
|
complaint_plan=#{complaintPlan} where id=#{id}
|
</update>
|
|
<select id="queryAdminComplaintList" resultType="com.xzx.gc.model.admin.ComplaintModel">
|
SELECT
|
a.after_sale_flag AS afterSaleFlag ,
|
c.reserve_time AS reserveTime,
|
c.complete_time AS completeTime,
|
c.order_id AS orderId,
|
c.money,
|
c.weight,
|
c.mobile_phone AS mobilePhone,
|
d.partner_id AS partnerId
|
FROM
|
xzx_order_complaint a
|
INNER JOIN xzx_order_info b ON a.order_id = b.order_id
|
INNER JOIN xzx_user_other_info d on b.receiver=d.user_id
|
INNER JOIN xzx_order_detail_info c ON b.order_id = c.order_id
|
where b.order_status in('4','5','7')
|
<if test="townIds != null and townIds.size() > 0">
|
AND b.town_id in
|
<foreach collection="townIds" index="index" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
<if test="startTime != null and startTime != ''">
|
AND c.reserve_time<![CDATA[>= ]]> #{startTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
AND c.reserve_time<![CDATA[<= ]]> #{endTime}
|
</if>
|
<if test="orderId != null and orderId != ''">
|
AND c.order_id like concat('%',#{orderId} ,'%')
|
</if>
|
<if test="mobilePhone != null and mobilePhone != ''">
|
AND c.mobile_phone like concat('%',#{mobilePhone} ,'%')
|
</if>
|
order by c.reserve_time desc
|
</select>
|
<select id="queryByOrderNoCount" resultType="int">
|
select count(id) from xzx_order_complaint where order_id=#{orderId}
|
</select>
|
|
|
</mapper>
|