wzy
2021-04-01 d388e2788b7ef088d7cd40f901b0acdcec460bc3
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
@@ -60,17 +60,40 @@
   <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 biz_user s where s.user_id = a.parent_user_id) parentUser,
      (SELECT s.nick_name FROM biz_user s
      WHERE s.open_id = a.parent_user_id ) parentUser,
      c.nick_name parentUserNow,
      ( SELECT COUNT(*) FROM biz_user
      WHERE parent_open_id = a.user_id AND is_sales != 1 ) lowerLevelNum,
      ( SELECT COUNT(*) FROM biz_user
      WHERE parent_open_id = a.user_id AND is_sales = 1 ) invitedNum,
      ( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
      WHERE user_id = a.user_id AND order_status = 2 AND sales_user_id = a.user_id ) totalRevenue,
      ( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
      WHERE user_id = a.user_id AND 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 biz_user b ON a.user_id = b.user_id
      LEFT JOIN shop_salesman_grade g ON b.salesman_grade = g.id
      LEFT JOIN biz_user b ON a.user_id = b.open_id
      LEFT JOIN shop_salesman_grade g ON a.grade_id = g.id
      LEFT JOIN biz_user c ON c.open_id = b.parent_open_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">
@@ -100,14 +123,16 @@
   <select id="selectBizUserApplyList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo">
      SELECT
      a.user_id userId,
      a.nick_name nickName
      a.open_id openId,
      a.nick_name nickName,
      a.avatar_url avatarUrl,
      a.create_time createTime,
      a.phone_number phone
      FROM
      biz_user a
      LEFT JOIN shop_salesman_apply b ON a.user_id = b.user_id
      <where>
         a.company_id = #{record.companyId}
         and a.is_sales != 1
         and b.apply_status != 1
         <if test="record.nickName != null and record.nickName != ''">
            and a.nick_name like concat('%',#{record.nickName},'%')
         </if>
@@ -126,25 +151,41 @@
         IFNULL(sum(IFNULL( b.amount, 0 )),0)
      FROM
         shop_salesman_order b
      WHERE
         b.user_id = a.open_id
        and order_status=2
      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
         b.user_id = a.open_id
        and order_status=1
      WHERE order_status=1
        AND b.sales_user_id = #{openId}
   ) AS djsRevenue,
   ( SELECT count( * ) FROM shop_salesman_order c WHERE c.user_id = a.open_id AND c.sales_user_id = #{openId} ) AS orderCount,
   ( 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 biz_user where parent_open_id=#{openId} and is_sales=1) as invitationCount,
   (select count(*) from biz_user where parent_open_id=#{openId} and is_sales=2) as customerCount
   from biz_user a where
@@ -152,4 +193,109 @@
   </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_number phone,
      (SELECT s.nick_name FROM biz_user s
      WHERE s.open_id = a.parent_user_id ) parentUser,
      ( SELECT COUNT(*) FROM biz_user
      WHERE parent_open_id = a.user_id AND is_sales != 1 ) lowerLevelNum,
      ( SELECT COUNT(*) FROM biz_user
      WHERE parent_open_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 biz_user b ON a.user_id = b.open_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.open_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.open_id) doneNum
      FROM biz_user b
      <where>
         b.company_id = #{record.companyId}
         AND b.is_sales != 1
         and b.parent_open_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.open_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 biz_user b ON b.open_id = a.user_id
      <where>
         a.company_id = #{record.companyId}
         AND b.is_sales = 1
         and b.parent_open_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 biz_user b on b.open_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>