<?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.fenxiao.dao.ShopSalesmanApplyDao">
|
<!-- 定义ShopSalesmanApply 的复杂关联map -->
|
<resultMap type="com.matrix.system.fenxiao.entity.ShopSalesmanApply" id="ShopSalesmanApplyMap">
|
<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="applyWay" column="apply_way" />
|
<result property="userId" column="user_id" />
|
<result property="parentUserId" column="parent_user_id" />
|
<result property="applyStatus" column="apply_status" />
|
<result property="remark" column="remark" />
|
<result property="companyId" column="company_id" />
|
</resultMap>
|
|
|
<!-- 定义ShopSalesmanApply 的简单map ,本map不添加其他的关联属性 -->
|
<resultMap type="com.matrix.system.fenxiao.entity.ShopSalesmanApply" id="ShopSalesmanApplySimpleMap">
|
<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="applyWay" column="apply_way" />
|
<result property="userId" column="user_id" />
|
<result property="parentUserId" column="parent_user_id" />
|
<result property="applyStatus" column="apply_status" />
|
<result property="remark" column="remark" />
|
<result property="companyId" column="company_id" />
|
</resultMap>
|
|
<select id="selectInvitationuserInPage" resultType="com.matrix.system.shopXcx.vo.SalesmanVo">
|
SELECT
|
a.nick_name,
|
a.avatar_url,
|
a.phone,
|
(
|
SELECT
|
IFNULL(sum(IFNULL( b.amount, 0 )),0)
|
FROM
|
shop_salesman_order b
|
WHERE
|
b.user_id = a.id
|
and order_status=2
|
AND b.sales_user_id = #{userId}
|
|
) AS revenueAmount,
|
( SELECT count( * ) FROM shop_salesman_order c WHERE c.user_id = a.id AND c.sales_user_id = #{userId} ) AS orderCount
|
FROM
|
sys_vip_info a
|
WHERE
|
a.recommend_id = #{userId}
|
AND a.is_sales = #{isSales}
|
</select>
|
|
<select id="findShopSalesmanApplyList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo">
|
SELECT
|
a.id id,
|
a.user_id userId,
|
b.avatar_url avatarUrl,
|
b.nick_name nickname,
|
(SELECT s.nick_name FROM sys_vip_info s
|
WHERE s.id = a.parent_user_id ) parentUser,
|
c.nick_name parentUserNow,
|
( SELECT COUNT(*) FROM sys_vip_info
|
WHERE recommend_id = a.user_id AND is_sales != 1 ) lowerLevelNum,
|
( SELECT COUNT(*) FROM sys_vip_info
|
WHERE recommend_id = a.user_id AND is_sales = 1 ) invitedNum,
|
( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
|
WHERE order_status = 2 AND sales_user_id = a.user_id ) totalRevenue,
|
( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
|
WHERE order_status = 1 AND sales_user_id = a.user_id ) balance,
|
g.NAME grade,
|
a.create_time createTime,
|
a.apply_status applyStatus,
|
a.apply_way applyWay
|
FROM
|
shop_salesman_apply a
|
LEFT JOIN sys_vip_info b ON a.user_id = b.id
|
LEFT JOIN shop_salesman_grade g ON a.grade_id = g.id
|
LEFT JOIN sys_vip_info c ON c.id = b.recommend_id
|
<where>
|
a.company_id=#{record.companyId}
|
<if test="record.shenheState != null and record.shenheState != ''">
|
and a.apply_status=#{record.shenheState}
|
</if>
|
<if test="record.salemanGrade != null and record.salemanGrade != ''">
|
and a.grade_id=#{record.salemanGrade}
|
</if>
|
<if test="record.userName != null and record.userName != ''">
|
and b.nick_name like concat('%',#{record.userName},'%')
|
</if>
|
</where>
|
<if test="record.sort !=null">
|
order by
|
a.${record.sort} ${record.order}
|
</if>
|
</select>
|
<select id="findShopSalesmanAppliingList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo">
|
SELECT
|
a.user_id userId,
|
b.nick_name nickName
|
FROM
|
shop_salesman_apply a
|
LEFT JOIN sys_vip_info b ON a.user_id = b.id
|
<where>
|
a.company_id = #{record.companyId}
|
and a.apply_status = #{record.applyStatus}
|
<if test="record.nickName != null and record.nickName != ''">
|
and b.nick_name like concat('%',#{record.nickName},'%')
|
</if>
|
</where>
|
<if test="record.sort !=null">
|
order by
|
a.${record.sort} ${record.order}
|
</if>
|
</select>
|
<select id="selectBizUserApplyList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo">
|
SELECT
|
a.id userId,
|
a.nick_name nickName,
|
a.avatar_url avatarUrl,
|
a.create_time createTime,
|
a.phone
|
FROM
|
sys_vip_info a
|
<where>
|
a.company_id = #{record.companyId}
|
and a.is_sales != 1
|
|
<if test="record.nickName != null and record.nickName != ''">
|
and a.nick_name like concat('%',#{record.nickName},'%')
|
</if>
|
</where>
|
<if test="record.sort !=null">
|
order by
|
a.${record.sort} ${record.order}
|
</if>
|
</select>
|
|
<select id="selectSalesmanCenterInfo" resultType="com.matrix.system.shopXcx.vo.SalesmanCenterInfo">
|
select
|
IFNULL(withdrawal_cash,0) as withdrawal_cash,
|
(
|
SELECT
|
IFNULL(sum(IFNULL( b.amount, 0 )),0)
|
FROM
|
shop_salesman_order b
|
WHERE order_status=2
|
AND b.sales_user_id = #{openId}
|
|
) AS totalRevenue,
|
(
|
SELECT
|
IFNULL(sum(IFNULL( b.amount, 0 )),0)
|
FROM
|
shop_salesman_order b
|
WHERE order_status=2 and revenue_type=1
|
AND b.sales_user_id = #{openId}
|
|
) AS salesRevenue,
|
(
|
SELECT
|
IFNULL(sum(IFNULL( b.amount, 0 )),0)
|
FROM
|
shop_salesman_order b
|
WHERE order_status=2 and revenue_type=2
|
AND b.sales_user_id = #{openId}
|
|
) AS invitationRevenue,
|
IFNULL(withdrawal_cash,0) as withdrawal_cash,
|
(
|
SELECT
|
IFNULL(sum(IFNULL( b.amount, 0 )),0)
|
FROM
|
shop_salesman_order b
|
WHERE order_status=1
|
AND b.sales_user_id = #{openId}
|
|
) AS djsRevenue,
|
|
( SELECT count( * ) FROM shop_salesman_order c WHERE c.sales_user_id = #{openId} and revenue_type =1 ) AS salesorderCount,
|
( SELECT count( * ) FROM shop_salesman_order c WHERE c.sales_user_id = #{openId} and revenue_type =2 ) AS invitationOrderCount,
|
(select count(*) from sys_vip_info where recommend_id=#{openId} and is_sales=1
|
) as invitationCount,
|
(select count(*) from sys_vip_info where recommend_id=#{openId} and is_sales=2
|
) as customerCount
|
from sys_vip_info a where
|
a.id=#{id}
|
|
</select>
|
|
<select id="selectShopSalesmanDetailByOpenId" resultType="com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo">
|
SELECT
|
a.user_id userId,
|
b.avatar_url avatarUrl,
|
b.nick_name nickname,
|
g.NAME grade,
|
b.phone,
|
(SELECT s.nick_name FROM sys_vip_info s
|
WHERE s.id = a.parent_user_id ) parentUser,
|
( SELECT COUNT(*) FROM sys_vip_info
|
WHERE recommend_id = a.user_id AND is_sales != 1
|
) lowerLevelNum,
|
( SELECT COUNT(*) FROM sys_vip_info
|
WHERE recommend_id = a.user_id AND is_sales = 1
|
) invitedNum,
|
( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
|
WHERE order_status = 2 AND sales_user_id = a.user_id ) totalRevenue,
|
( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
|
WHERE order_status = 1 AND sales_user_id = a.user_id ) balance,
|
a.create_time createTime,
|
a.apply_status applyStatus,
|
a.apply_way applyWay
|
FROM
|
shop_salesman_apply a
|
LEFT JOIN sys_vip_info b ON a.user_id = b.id
|
LEFT JOIN shop_salesman_grade g ON a.grade_id = g.id
|
where a.id = #{applyId}
|
</select>
|
|
<select id="findCustomDetail" resultType="com.matrix.system.fenxiao.vo.ShopCustomDetailVo">
|
SELECT
|
b.id userId,
|
b.avatar_url avatarUrl,
|
b.nick_name nickname,
|
b.binding_parent_time createTime,
|
(select COUNT(*) from shop_salesman_order c where c.order_status = 1 and c.sales_user_id = b.id) doneNum
|
FROM sys_vip_info b
|
<where>
|
b.company_id = #{record.companyId}
|
AND b.is_sales != 1
|
and b.recommend_id = #{record.userId}
|
<if test="record.userName != null and record.userName != ''">
|
and b.nick_name like concat('%',#{record.userName},'%')
|
</if>
|
</where>
|
<if test="record.sort !=null">
|
order by
|
b.${record.sort} ${record.order}
|
</if>
|
</select>
|
<select id="findCustomLow" resultType="com.matrix.system.fenxiao.vo.ShopCustomDetailVo">
|
SELECT
|
b.id userId,
|
b.avatar_url avatarUrl,
|
b.nick_name nickname,
|
a.create_time createTime,
|
a.apply_way applyWay
|
FROM
|
shop_salesman_apply a
|
LEFT JOIN sys_vip_info b ON b.id = a.user_id
|
<where>
|
a.company_id = #{record.companyId}
|
AND b.is_sales = 1
|
and b.recommend_id = #{record.userId}
|
|
and a.apply_status = 2
|
<if test="record.userName != null and record.userName != ''">
|
and b.nick_name like concat('%',#{record.userName},'%')
|
</if>
|
</where>
|
<if test="record.sort !=null">
|
order by
|
a.${record.sort} ${record.order}
|
</if>
|
</select>
|
|
<select id="findShopOrderDetail" resultType="com.matrix.system.fenxiao.vo.ShopOrderDetailVo">
|
select
|
a.order_id orderId,
|
a.create_time createTime,
|
a.amount amount,
|
a.revenue_type revenueType,
|
a.order_status orderStatus,
|
b.nick_name nickName,
|
b.avatar_url avatarUrl,
|
c.order_no orderNo,
|
c.order_money orderMoney,
|
c.order_status orderState,
|
f.shop_name storeName
|
from shop_salesman_order a
|
left join sys_vip_info b on b.id=a.user_id
|
left join shop_order c on a.order_id=c.id
|
LEFT JOIN sys_shop_info f on f.id = c.store_id
|
<where>
|
a.sales_user_id = #{record.userId}
|
<if test="record.orderType != null and record.orderType != ''">
|
and a.order_status = #{record.orderType}
|
</if>
|
<if test="record.userName != null and record.userName != ''">
|
and b.nick_name like concat('%',#{record.userName},'%')
|
</if>
|
</where>
|
<if test="record.sort !=null">
|
order by
|
a.${record.sort} ${record.order}
|
</if>
|
</select>
|
|
</mapper>
|