<?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.ruoyi.system.mapper.CustomerEvaluationMapper">
|
|
<resultMap type="CustomerEvaluation" id="CustomerEvaluationResult">
|
<result property="evaluationId" column="evaluation_id" />
|
<result property="vehicleNo" column="vehicle_no" />
|
<result property="customerName" column="customer_name" />
|
<result property="customerPhone" column="customer_phone" />
|
<result property="wechatOpenid" column="wechat_openid" />
|
<result property="wechatNickname" column="wechat_nickname" />
|
<result property="wechatAvatar" column="wechat_avatar" />
|
<result property="wechatPhone" column="wechat_phone" />
|
<result property="totalScore" column="total_score" />
|
<result property="evaluationStatus" column="evaluation_status" />
|
<result property="evaluationTime" column="evaluation_time" />
|
<result property="ipAddress" column="ip_address" />
|
<result property="userAgent" column="user_agent" />
|
<result property="createTime" column="create_time" />
|
<result property="updateTime" column="update_time" />
|
<result property="remark" column="remark" />
|
</resultMap>
|
|
<sql id="selectCustomerEvaluationVo">
|
select evaluation_id, vehicle_no, customer_name, customer_phone, wechat_openid, wechat_nickname, wechat_avatar, wechat_phone, total_score, evaluation_status, evaluation_time, ip_address, user_agent, create_time, update_time, remark from customer_evaluation
|
</sql>
|
|
<select id="selectCustomerEvaluationList" parameterType="CustomerEvaluation" resultMap="CustomerEvaluationResult">
|
<include refid="selectCustomerEvaluationVo"/>
|
<where>
|
<if test="vehicleNo != null and vehicleNo != ''"> and vehicle_no like concat('%', #{vehicleNo}, '%')</if>
|
<if test="customerName != null and customerName != ''"> and customer_name like concat('%', #{customerName}, '%')</if>
|
<if test="customerPhone != null and customerPhone != ''"> and customer_phone = #{customerPhone}</if>
|
<if test="wechatOpenid != null and wechatOpenid != ''"> and wechat_openid = #{wechatOpenid}</if>
|
<if test="wechatNickname != null and wechatNickname != ''"> and wechat_nickname like concat('%', #{wechatNickname}, '%')</if>
|
<if test="totalScore != null "> and total_score = #{totalScore}</if>
|
<if test="evaluationStatus != null and evaluationStatus != ''"> and evaluation_status = #{evaluationStatus}</if>
|
<if test="evaluationTime != null "> and evaluation_time = #{evaluationTime}</if>
|
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
|
and date_format(evaluation_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
|
</if>
|
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
|
and date_format(evaluation_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
|
</if>
|
</where>
|
order by evaluation_time desc, create_time desc
|
</select>
|
|
<select id="selectCustomerEvaluationByEvaluationId" parameterType="Long" resultMap="CustomerEvaluationResult">
|
<include refid="selectCustomerEvaluationVo"/>
|
where evaluation_id = #{evaluationId}
|
</select>
|
|
<select id="selectCustomerEvaluationByVehicleNo" parameterType="String" resultMap="CustomerEvaluationResult">
|
<include refid="selectCustomerEvaluationVo"/>
|
where vehicle_no = #{vehicleNo}
|
order by evaluation_time desc, create_time desc
|
</select>
|
|
<select id="selectCustomerEvaluationByWechatOpenid" parameterType="String" resultMap="CustomerEvaluationResult">
|
<include refid="selectCustomerEvaluationVo"/>
|
where wechat_openid = #{wechatOpenid}
|
order by evaluation_time desc, create_time desc
|
</select>
|
|
<select id="selectEvaluationStatistics" parameterType="CustomerEvaluation" resultMap="CustomerEvaluationResult">
|
select
|
vehicle_no,
|
count(*) as total_count,
|
avg(total_score) as avg_score,
|
sum(case when total_score >= 4.0 then 1 else 0 end) as good_count,
|
sum(case when total_score < 3.0 then 1 else 0 end) as bad_count
|
from customer_evaluation
|
<where>
|
evaluation_status = '1'
|
<if test="vehicleNo != null and vehicleNo != ''"> and vehicle_no = #{vehicleNo}</if>
|
<if test="params.beginTime != null and params.beginTime != ''">
|
and date_format(evaluation_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
|
</if>
|
<if test="params.endTime != null and params.endTime != ''">
|
and date_format(evaluation_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
|
</if>
|
</where>
|
group by vehicle_no
|
order by avg_score desc
|
</select>
|
|
<insert id="insertCustomerEvaluation" parameterType="CustomerEvaluation" useGeneratedKeys="true" keyProperty="evaluationId">
|
insert into customer_evaluation
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="vehicleNo != null and vehicleNo != ''">vehicle_no,</if>
|
<if test="customerName != null and customerName != ''">customer_name,</if>
|
<if test="customerPhone != null and customerPhone != ''">customer_phone,</if>
|
<if test="wechatOpenid != null">wechat_openid,</if>
|
<if test="wechatNickname != null">wechat_nickname,</if>
|
<if test="wechatAvatar != null">wechat_avatar,</if>
|
<if test="wechatPhone != null">wechat_phone,</if>
|
<if test="totalScore != null">total_score,</if>
|
<if test="evaluationStatus != null">evaluation_status,</if>
|
<if test="evaluationTime != null">evaluation_time,</if>
|
<if test="ipAddress != null">ip_address,</if>
|
<if test="userAgent != null">user_agent,</if>
|
<if test="createTime != null">create_time,</if>
|
<if test="updateTime != null">update_time,</if>
|
<if test="remark != null">remark,</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="vehicleNo != null and vehicleNo != ''">#{vehicleNo},</if>
|
<if test="customerName != null and customerName != ''">#{customerName},</if>
|
<if test="customerPhone != null and customerPhone != ''">#{customerPhone},</if>
|
<if test="wechatOpenid != null">#{wechatOpenid},</if>
|
<if test="wechatNickname != null">#{wechatNickname},</if>
|
<if test="wechatAvatar != null">#{wechatAvatar},</if>
|
<if test="wechatPhone != null">#{wechatPhone},</if>
|
<if test="totalScore != null">#{totalScore},</if>
|
<if test="evaluationStatus != null">#{evaluationStatus},</if>
|
<if test="evaluationTime != null">#{evaluationTime},</if>
|
<if test="ipAddress != null">#{ipAddress},</if>
|
<if test="userAgent != null">#{userAgent},</if>
|
<if test="createTime != null">#{createTime},</if>
|
<if test="updateTime != null">#{updateTime},</if>
|
<if test="remark != null">#{remark},</if>
|
</trim>
|
</insert>
|
|
<update id="updateCustomerEvaluation" parameterType="CustomerEvaluation">
|
update customer_evaluation
|
<trim prefix="SET" suffixOverrides=",">
|
<if test="vehicleNo != null and vehicleNo != ''">vehicle_no = #{vehicleNo},</if>
|
<if test="customerName != null and customerName != ''">customer_name = #{customerName},</if>
|
<if test="customerPhone != null and customerPhone != ''">customer_phone = #{customerPhone},</if>
|
<if test="wechatOpenid != null">wechat_openid = #{wechatOpenid},</if>
|
<if test="wechatNickname != null">wechat_nickname = #{wechatNickname},</if>
|
<if test="wechatAvatar != null">wechat_avatar = #{wechatAvatar},</if>
|
<if test="wechatPhone != null">wechat_phone = #{wechatPhone},</if>
|
<if test="totalScore != null">total_score = #{totalScore},</if>
|
<if test="evaluationStatus != null">evaluation_status = #{evaluationStatus},</if>
|
<if test="evaluationTime != null">evaluation_time = #{evaluationTime},</if>
|
<if test="ipAddress != null">ip_address = #{ipAddress},</if>
|
<if test="userAgent != null">user_agent = #{userAgent},</if>
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
<if test="remark != null">remark = #{remark},</if>
|
</trim>
|
where evaluation_id = #{evaluationId}
|
</update>
|
|
<delete id="deleteCustomerEvaluationByEvaluationId" parameterType="Long">
|
delete from customer_evaluation where evaluation_id = #{evaluationId}
|
</delete>
|
|
<delete id="deleteCustomerEvaluationByEvaluationIds" parameterType="String">
|
delete from customer_evaluation where evaluation_id in
|
<foreach item="evaluationId" collection="array" open="(" separator="," close=")">
|
#{evaluationId}
|
</foreach>
|
</delete>
|
</mapper>
|