2021-03-01 19:00:01 +08:00

210 lines
9.5 KiB
XML

<?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.stdiet.custom.mapper.SysCommisionMapper">
<resultMap type="SysCommision" id="SysCommisionResult">
<result property="ruleId" column="rule_id"/>
<result property="userId" column="user_id"/>
<result property="postId" column="post_id"/>
<result property="userName" column="user_name"/>
<result property="postName" column="post_name"/>
<result property="amount" column="amount"/>
<result property="rate" column="rate"/>
<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="remark" column="remark"/>
<result property="commision" column="commision"/>
</resultMap>
<resultMap id="SysCommisionDetailResult" type="SysCommision">
<result property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<result property="postId" column="post_id"/>
<result property="postName" column="post_name"/>
<result property="amount" column="amount"/>
</resultMap>
<sql id="groupAmountVo">
SELECT ${column} AS user_id, ${postId} AS post_id, SUM(amount) AS amount
FROM sys_order
WHERE ${column} IS NOT NULL AND ${column} &lt;&gt; 0 AND del_flag = 0
<if test="reviewStatus != null and reviewStatus != ''">
AND review_status = #{reviewStatus}
</if>
<if test="beginTime != null and beginTime != ''">AND date_format(order_time,'%y%m%d') &gt;=
date_format(${beginTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''">AND date_format(order_time,'%y%m%d') &lt;=
date_format(${endTime},'%y%m%d')
</if>
GROUP BY ${column}
</sql>
<select id="selectSysCommisionDetail" parameterType="SysCommision" resultMap="SysCommisionResult">
SELECT * FROM view_user_post pa
JOIN (
<include refid="groupAmountVo">
<property name="column" value="pre_sale_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="5"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="after_sale_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="6"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="nutritionist_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="9"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="nutri_assis_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="10"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="operator_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="11"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="operator_assis_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="13"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="planner_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="7"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="planner_assis_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="8"/>
</include>
) AS a USING(user_id, post_id)
<where>
<if test="postId != null and postId != ''">and post_id = #{postId}</if>
<if test="userId != null and userId != ''">and user_id = #{userId}</if>
</where>
</select>
<sql id="selectSysCommisionVo">
SELECT * FROM (
SELECT * FROM sys_commision c
JOIN (SELECT user_id, nick_name AS user_name FROM sys_user) AS u USING(user_id)
JOIN (SELECT post_id, post_name FROM sys_post) AS p USING(post_id)
<if test="postId != null">WHERE post_id = ${postId}</if>
ORDER BY user_id, amount
) as t
</sql>
<select id="selectSysCommisionList" parameterType="SysCommision" resultMap="SysCommisionResult">
<include refid="selectSysCommisionVo">
<property name="postId" value="#{postId}"/>
</include>
<where>
<if test="userId != null ">and user_id = #{userId}</if>
<if test="postId != null ">and post_id = #{postId}</if>
</where>
</select>
<select id="selectSysCommisionById" parameterType="SysCommision" resultMap="SysCommisionResult">
<include refid="selectSysCommisionVo">
<property name="postId" value="#{postId}"/>
</include>
where rule_id = #{ruleId}
</select>
<insert id="insertSysCommision" parameterType="SysCommision" useGeneratedKeys="true" keyProperty="ruleId">
insert into sys_commision
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if>
<if test="postId != null">post_id,</if>
<if test="amount != null">amount,</if>
<if test="rate != null">rate,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if>
<if test="postId != null">#{postId},</if>
<if test="amount != null">#{amount},</if>
<if test="rate != null">#{rate},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateSysCommision" parameterType="SysCommision">
update sys_commision
<trim prefix="SET" suffixOverrides=",">
<if test="userId != null">user_id = #{userId},</if>
<if test="postId != null">post_id = #{postId},</if>
<if test="amount != null">amount = #{amount},</if>
<if test="rate != null">rate = #{rate},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where rule_id = #{ruleId}
</update>
<delete id="deleteSysCommisionById" parameterType="Long">
delete from sys_commision where rule_id = #{ruleId}
</delete>
<delete id="deleteSysCommisionByIds" parameterType="String">
delete from sys_commision where rule_id in
<foreach item="ruleId" collection="array" open="(" separator="," close=")">
#{ruleId}
</foreach>
</delete>
<!-- 查询售后和营养师 -->
<select id="getAfterSaleAndNutri" parameterType="SysCommision" resultMap="SysCommisionResult">
SELECT su.user_id,su.nick_name as user_name,sp.post_id, sp.post_code,sp.post_name FROM sys_user su
LEFT JOIN sys_user_post sup ON sup.user_id = su.user_id
LEFT JOIN sys_post sp ON sp.post_id = sup.post_id
WHERE su.del_flag = 0 AND su.status = 0 AND sp.remark = 'sale_post' AND (sp.post_code = 'after_sale' OR sp.post_code = 'nutri')
<if test="postId != null and postId != ''">and sp.post_id = #{postId}</if>
<if test="userId != null and userId != ''">and su.user_id = #{userId}</if>
</select>
</mapper>