Helius
2022-05-27 4351e71d782741143a98f86f6648acd16689165f
zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml
@@ -52,6 +52,16 @@
        <result property="isDeal" column="is_deal"/>
        <result property="createDistributionTime" column="create_distribution_time"/>
        <result property="isSales" column="is_sales" />
        <result property="withdrawalCash" column="withdrawal_cash" />
        <result property="salesmanGrade" column="salesman_grade" />
        <result property="nickName" column="nick_name" />
        <result property="avatarUrl" column="avatar_url" />
        <result property="gender" column="gender" />
        <result property="country" column="country" />
        <result property="sessionKey" column="session_key" />
        <result property="userIsAuthorize" column="user_is_authorize" />
        <result property="validFlag" column="valid_flag" />
        <!-- 扩展属性 -->
        <result property="staffName" column="STAFF_NAME"/>
@@ -105,6 +115,18 @@
        <result property="createDistributionTime" column="create_distribution_time"/>
        <result property="disease" column="disease"/>
        <result property="companyId" column="company_id"/>
        <result property="isSales" column="is_sales" />
        <result property="withdrawalCash" column="withdrawal_cash" />
        <result property="salesmanGrade" column="salesman_grade" />
        <result property="nickName" column="nick_name" />
        <result property="avatarUrl" column="avatar_url" />
        <result property="gender" column="gender" />
        <result property="country" column="country" />
        <result property="sessionKey" column="session_key" />
        <result property="userIsAuthorize" column="user_is_authorize" />
        <result property="validFlag" column="valid_flag" />
        <!-- 扩展属性 -->
        <result property="staffName" column="STAFF_NAME"/>
        <result property="shopName" column="SHOP_NAME"/>
@@ -122,7 +144,7 @@
        COMMISSION_ALL,IN_DATE,STAFF_ID,SHOP_ID,IS_DELETE,REMARK,PASSWORD,
        EMAIL,CREATE_TIME,UUID,BALANCE,blood,sfCard,link,marry,vocation,handleTime from
        sys_vip_info
        WHERE company_id=#{companyId}
        WHERE company_id=#{companyId}  and IS_DELETE = 'N'
        and (STAFF_ID = #{staffId} or BEATUY_ID = #{staffId})
        AND datediff(date_add(concat(
        date_format(BIRTHDAY1, "%Y"),
@@ -148,7 +170,7 @@
      select count(*) from
      sys_vip_info
      WHERE
      company_id=#{companyId}
      company_id=#{companyId} and IS_DELETE = 'N'
      AND (STAFF_ID = #{staffId}  or BEATUY_ID = #{staffId})
      AND datediff(date_add(concat(
      date_format(BIRTHDAY1, "%Y"),
@@ -167,7 +189,7 @@
        sys_vip_info a
        LEFT JOIN service_record b ON a.ID
        = b.vip_id
        WHERE company_id=#{companyId}
        WHERE company_id=#{companyId} and  a.IS_DELETE = 'N'
        and (a.STAFF_ID = #{staffId} or a.BEATUY_ID = #{staffId})
        AND b.follow_time BETWEEN curdate()
        AND
@@ -191,6 +213,7 @@
      = b.vip_id
      WHERE
      company_id=#{companyId}
        and a.IS_DELETE  = 'N'
        and
      (a.STAFF_ID = #{staffId}  or a.BEATUY_ID = #{staffId})
      AND b.follow_time BETWEEN curdate()
@@ -205,6 +228,7 @@
        LEFT JOIN sys_proj_services b ON a.ID = b.VIP_ID
        WHERE
        company_id=#{companyId}
        and a.IS_DELETE = 'N'
        and
        (a.STAFF_ID = #{staffId} or a.BEATUY_ID = #{staffId})
        AND b.YY_TIME BETWEEN curdate()
@@ -229,6 +253,7 @@
      LEFT JOIN sys_proj_services b ON a.ID = b.VIP_ID
      WHERE
      company_id=#{companyId}
        and a.IS_DELETE  = 'N'
        and
      (a.STAFF_ID = #{staffId}  or a.BEATUY_ID = #{staffId})
      AND b.YY_TIME BETWEEN curdate()
@@ -286,7 +311,16 @@
        province,
        city,
        area,
        recommend_id
        recommend_id,
        is_sales,
        withdrawal_cash,
        salesman_grade,
        nick_name,
        avatar_url,
        gender,
        country,
        session_key,
        user_is_authorize
        )
@@ -334,7 +368,16 @@
        #{province},
        #{city},
        #{area},
        #{recommendId}
        #{recommendId},
        #{isSales},
        #{withdrawalCash},
        #{salesmanGrade},
        #{nickName},
        #{avatarUrl},
        #{gender},
        #{country},
        #{sessionKey},
        #{userIsAuthorize}
        )
    </insert>
@@ -461,9 +504,7 @@
            <if test="isDeal != null  ">
                is_deal = #{isDeal},
            </if>
            <if test="recommendId != null  ">
                recommend_id = #{recommendId},
            </if>
            <if test="province != null and province !=''  ">
                province = #{province},
            </if>
@@ -472,6 +513,37 @@
            </if>
            <if test="area != null and area !=''  ">
                area = #{area},
            </if>
            <if test="isSales != null ">
                is_sales  = #{isSales},
            </if>
            <if test="withdrawalCash != null ">
                withdrawal_cash  = #{withdrawalCash},
            </if>
            <if test="salesmanGrade != null ">
                salesman_grade  = #{salesmanGrade},
            </if>
            <if test="gender != null and gender != '' ">
                gender  = #{gender},
            </if>
            <if test="country != null and country != '' ">
                country  = #{country},
            </if>
            <if test="sessionKey != null and sessionKey != '' ">
                session_key  = #{sessionKey},
            </if>
            <if test="userIsAuthorize != null ">
                user_is_authorize  = #{userIsAuthorize},
            </if>
            <if test="nickName != null and nickName != '' ">
                nick_name  = #{nickName},
            </if>
            <if test="avatarUrl != null and avatarUrl != '' ">
                avatar_url  = #{avatarUrl},
            </if>
            <if test="validFlag != null and validFlag != '' ">
                valid_flag  = #{validFlag},
            </if>
@@ -483,6 +555,13 @@
      UPDATE sys_vip_info set POINT_ALL = 0
   </update>
    <update id="unbundlingSaleMan">
        UPDATE sys_vip_info set recommend_id = NULL where id=#{userId};
    </update>
    <update id="bindingRecommend">
        UPDATE sys_vip_info set recommend_id = #{recommendId} where id=#{userId};
    </update>
    <!-- 批量删除 -->
    <delete id="deleteByIds" parameterType="java.util.List">
        delete from sys_vip_info where ID in
@@ -491,6 +570,14 @@
            #{item}
        </foreach>
    </delete>
    <update id="deleteLogicByIds" parameterType="java.util.List">
        UPDATE sys_vip_info set IS_DELETE = 'Y' where ID in
        <foreach collection="list" index="index" item="item" open="("
                 separator="," close=")">
            #{item}
        </foreach>
    </update>
    <!-- 根据id删除 -->
    <delete id="deleteById">
@@ -538,7 +625,10 @@
        where a.ID=#{id}
    </select>
    <select id="findByOpenId" resultMap="SysVipInfoMap">
        select *
        from sys_vip_info where openid=#{openId} and IS_DELETE  = 'N'
    </select>
    <!-- 根据手机和密码查询 -->
    <select id="selectVipByPhonePassWord" resultMap="SysVipInfoMap">
@@ -549,7 +639,7 @@
    <!-- 判断是否为唯一 -->
    <select id="selectTotalByField" resultType="java.lang.Integer">
      select count(*) from
      sys_vip_info where ${field} = #{value}
      sys_vip_info where ${field} = #{value} and IS_DELETE  = 'N'
   </select>
    <!-- 根据对象查询 -->
@@ -629,7 +719,7 @@
      COMMISSION_ALL,IN_DATE,STAFF_ID,SHOP_ID,IS_DELETE,REMARK,PASSWORD,
      EMAIL,CREATE_TIME,UUID,BALANCE 
        from sys_vip_info where
        company_id=#{companyId}
        company_id=#{companyId} and IS_DELETE = 'N'
        and PHONE like concat('%',#{keyWord},'%') limit 0,10
   </select>
@@ -642,7 +732,7 @@
      COMMISSION_ALL,IN_DATE,STAFF_ID,SHOP_ID,IS_DELETE,REMARK,PASSWORD,
      EMAIL,CREATE_TIME,UUID,BALANCE,blood,sfCard,link,marry,vocation 
        from sys_vip_info 
        where company_id=#{companyId}
        where company_id=#{companyId} and IS_DELETE = 'N'
      and (instr(PHONE,#{keyWord})
         or instr(VIP_NAME ,#{keyWord})
         or instr(zjm ,#{keyWord})
@@ -668,6 +758,7 @@
        <include refid="select"></include>
        <include refid="from"></include>
        where 1=1
        and a.IS_DELETE = 'N'
        and
        (a.VIP_NO =#{key} or
        a.VIP_NAME =#{key} or
@@ -683,6 +774,7 @@
    <sql id="whereVo">
       <where>
           a.IS_DELETE  = 'N'
        <if test="record!=null">
            <if test="record.keyWord != null and record.keyWord !='' ">
                and (a.VIP_NO like CONCAT('%',#{record.keyWord},'%') or
@@ -713,7 +805,7 @@
    </sql>
    <sql id="where">
        where 1=1
        where 1=1 and a.IS_DELETE  = 'N'
        <if test="record!=null">
            <if test="record.id != null and record.id !='' ">
                and a.ID = #{record.id}
@@ -813,6 +905,28 @@
            <if test="(record.companyId!=null and record.companyId!='') ">
                and a.company_id = #{record.companyId}
            </if>
            <if test="(record.nickName!=null and record.nickName!='') or  (record.nickName!='' and record.nickName==0)  ">
                and a.nick_name  like concat('%',#{record.nickName},'%')
            </if>
            <if test="(record.avatarUrl!=null and record.avatarUrl!='') or  (record.avatarUrl!='' and record.avatarUrl==0)  ">
                and a.avatar_url  = #{record.avatarUrl}
            </if>
            <if test="record.isSales != null and record.isSales !='' ">
                and a.is_sales = #{record.isSales}
            </if>
            <if test="record.withdrawalCash != null and record.withdrawalCash !='' ">
                and a.withdrawal_cash = #{record.withdrawalCash}
            </if>
            <if test="record.salesmanGrade != null and record.salesmanGrade !='' ">
                and a.salesman_grade = #{record.salesmanGrade}
            </if>
            <if test="(record.userIsAuthorize!=null and record.userIsAuthorize!='') or  (record.userIsAuthorize!='' and record.userIsAuthorize==0)  ">
                and a.user_is_authorize  = #{record.userIsAuthorize}
            </if>
        </if>
    </sql>
@@ -918,57 +1032,34 @@
            <if test="record.isDeal != null and record.isDeal !='' ">
                and a.is_deal = #{record.isDeal}
            </if>
            <if test="(record.nickName!=null and record.nickName!='') or  (record.nickName!='' and record.nickName==0)  ">
                and a.nick_name  like concat('%',#{record.nickName},'%')
            </if>
            <if test="(record.avatarUrl!=null and record.avatarUrl!='') or  (record.avatarUrl!='' and record.avatarUrl==0)  ">
                and a.avatar_url  = #{record.avatarUrl}
            </if>
            <if test="record.isSales != null and record.isSales !='' ">
                and a.is_sales = #{record.isSales}
            </if>
            <if test="record.withdrawalCash != null and record.withdrawalCash !='' ">
                and a.withdrawal_cash = #{record.withdrawalCash}
            </if>
            <if test="record.salesmanGrade != null and record.salesmanGrade !='' ">
                and a.salesman_grade = #{record.salesmanGrade}
            </if>
            <if test="(record.userIsAuthorize!=null and record.userIsAuthorize!='') or  (record.userIsAuthorize!='' and record.userIsAuthorize==0)  ">
                and a.user_is_authorize  = #{record.userIsAuthorize}
            </if>
        </if>
    </sql>
    <sql id="select">
      select
       a.ID,
      a.VIP_NO,
      a.VIP_NAME,
      a.PHONE,
      a.SEX,
      a.BIRTHDAY1,
      a.photo,
      a.ADDR,
      a.CONSTELL,
      a.ANIMAL_SIGN,
      a.ARRIVAL_WAY,
      a.VIP_TYPE,
      a.VIP_STATE,
      a.POINT_ALL,
      a.COMMISSION_ALL,
      a.IN_DATE,
      a.REMARK,
      a.SHOP_ID,
      a.IS_DELETE,
      a.EMAIL,
      a.STAFF_ID,
      a.CREATE_TIME,
      a.LEVEL_ID,
      a.UUID,
      a.BALANCE,
      a.BEATUY_ID,
      a.PASSWORD,
       a.*,
      c.su_name as STAFF_NAME,
      d.SHOP_NAME,
      a.blood,
      a.sfCard,
      a.link,
      a.marry,
      a.vocation,
      a.handle_time,
      a.statu,
      a.openid,
      a.parent_id,
      a.create_distribution_time,
      a.birthdayType,
      a.disease,
      a.is_deal,
      a.province,
      a.city,
      a.area,
      a.recommend_id,
      e.level_name levelName,
      e.vip_level vipLevel
   </sql>
@@ -994,7 +1085,7 @@
        (select a.id from sys_vip_info a
        where 1=1
        where 1=1  and   a.IS_DELETE = 'N'
        <if test="record.parentId != null and record.parentId !='' ">
            and a.parent_id = #{record.parentId}
        </if>
@@ -1007,7 +1098,7 @@
        f.vip_name as name
        from sys_vip_info d
        LEFT JOIN sys_vip_info f on d.parent_id = f.id
        where 1=1
        where 1=1  and d.IS_DELETE = 'N'
        <if test="record.parentId != null and record.parentId !='' ">
            and d.parent_id = #{record.parentId}
        </if>
@@ -1035,7 +1126,7 @@
        (select a.id from sys_vip_info a
        where 1=1
        where 1=1 and a.IS_DELETE  = 'N')
        <if test="record.parentId != null and record.parentId !='' ">
            and a.parent_id = #{record.parentId}
        </if>
@@ -1048,7 +1139,7 @@
        f.vip_name as name
        from sys_vip_info d
        LEFT JOIN sys_vip_info f on d.parent_id = f.id
        where 1=1
        where 1=1 and d.IS_DELETE = 'N'
        <if test="record.parentId != null and record.parentId !='' ">
            and d.parent_id = #{record.parentId}
        </if>)k
@@ -1061,7 +1152,7 @@
        f.vip_name as name
        from sys_vip_info d
        LEFT JOIN sys_vip_info f on d.parent_id = f.id
        where 1=1
        where 1=1 and d.IS_DELETE = 'N'
        <if test="record.parentId != null and record.parentId !='' ">
            and d.parent_id = #{record.parentId}
        </if>
@@ -1083,7 +1174,7 @@
        count(*)
        from sys_vip_info d
        LEFT JOIN sys_vip_info f on d.parent_id = f.id
        where 1=1
        where 1=1 and d.IS_DELETE  = 'N'
        <if test="record.parentId != null and record.parentId !='' ">
            and d.parent_id = #{record.parentId}
        </if>
@@ -1099,7 +1190,7 @@
        (select a.id from sys_vip_info a
        where 1=1
        where 1=1  and a.IS_DELETE  = 'N'
        <if test="record.parentId != null and record.parentId !='' ">
            and a.parent_id = #{record.parentId}
        </if>
@@ -1125,7 +1216,7 @@
        (select a.id from sys_vip_info a
        where 1=1
        where a.IS_DELETE  = 'N')
        <if test="record.parentId != null and record.parentId !='' ">
            and a.parent_id = #{record.parentId}
        </if>
@@ -1135,13 +1226,13 @@
    <select id="selectByPhone" resultMap="SysVipInfoMapSimple">
      select * from sys_vip_info where  PHONE = #{phone}
      select * from sys_vip_info where  PHONE = #{phone} and company_id=#{companyId} and  IS_DELETE = 'N'
   </select>
    <select id="selectVipTelphoneByIds" resultType="java.lang.String">
        select phone from sys_vip_info
        where phone is not null and id in
        where phone is not null and IS_DELETE = 'N' and id in
        <foreach collection="list" index="index" item="item" open="("
                 separator="," close=")">
            #{item}
@@ -1151,18 +1242,18 @@
    <select id="selectAllVipPhone" resultType="java.lang.String">
      select phone from sys_vip_info
      where
       company_id=#{companyId}
       company_id=#{companyId} and IS_DELETE = 'N'
       and phone is not null
   </select>
    <select id="selectVipPhoneWithShop" resultType="java.lang.String">
        select phone from sys_vip_info
        where phone is not null and shop_id=#{shopId}
        where phone is not null and shop_id=#{shopId} and IS_DELETE = 'N'
    </select>
    <select id="selectOldUserByTelphone" resultMap="SysVipInfoMap">
        select * from sys_vip_info where  phone=#{telphone} and is_deal=1
        select * from sys_vip_info where  phone=#{telphone} and is_deal=1 and IS_DELETE = 'N'
    </select>
@@ -1205,7 +1296,22 @@
        create_distribution_time,
        birthdayType,
        disease,
        is_deal
        is_deal,
        zjm,
        company_id,
        province,
        city,
        area,
        recommend_id,
        is_sales,
        withdrawal_cash,
        salesman_grade,
        nick_name,
        avatar_url,
        gender,
        country,
        session_key,
        user_is_authorize
        )
        VALUES
        <foreach collection="list" item="item" index="index" separator=",">(
@@ -1246,18 +1352,34 @@
            #{item.createDistributionTime},
            #{item.birthdayType},
            #{item.disease},
            #{item.isDeal}
            #{item.isDeal},
            #{zjm},
            #{companyId},
            #{province},
            #{city},
            #{area},
            #{recommendId},
            #{isSales},
            #{withdrawalCash},
            #{salesmanGrade},
            #{nickName},
            #{avatarUrl},
            #{gender},
            #{country},
            #{sessionKey},
            #{userIsAuthorize}
            )</foreach>
    </insert>
    <select id="selectVipInfoByVipNo" resultMap="SysVipInfoMapSimple">
        select * from sys_vip_info where company_id=#{companyId} and vip_no=#{vipNo}
        select * from sys_vip_info where company_id=#{companyId} and vip_no=#{vipNo} and IS_DELETE = 'N'
    </select>
    <select id="selectVipAddressBookByList" resultType="com.matrix.system.app.vo.VipInfoListVo">
        select
               a.ID id,
               a.VIP_NAME vipName,
               a.VIP_NO vipNo,
               a.PHONE phone,
               a.photo photo,
               b.arriveCnt arriveCnt,
@@ -1307,7 +1429,7 @@
        </if>
        left join sys_shop_info g on a.shop_id = g.id
        left join sys_vip_level h on a.level_id=h.id
        where 1=1
        where 1=1 and   a.IS_DELETE = 'N'
        <if test="record.queryKey != null and record.queryKey != ''">
            and (instr(PHONE,#{record.queryKey})
                or instr(VIP_NAME ,#{record.queryKey})
@@ -1357,15 +1479,80 @@
               c.LEVEL_NAME vipLevel,
               a.POINT_ALL integral,
               e.shop_short_name shopName,
               sum(IFNULL(b.gift_money, 0) + IFNULL(b.real_money, 0)) totalBalance,
               sum(IFNULL(b.real_money, 0)) totalBalance,
               sum(IFNULL(b.gift_money, 0)) giftBalance,
               sum(IFNULL(d.goods_cash, 0) + IFNULL(d.proj_cash, 0) + IFNULL(d.card_cash, 0)) totalShopping
               (select sum(IFNULL(d.goods_cash, 0) + IFNULL(d.proj_cash, 0) + IFNULL(d.card_cash, 0)) from achieve_new d where d.vip_id=a.id) totalShopping
        from sys_vip_info a
        left join money_card_use b on a.ID = b.vip_id and b.status='有效'
        left join sys_vip_level c on  a.LEVEL_ID = c.ID
        left join achieve_new d on a.ID = d.vip_id
        left join sys_shop_info e on a.SHOP_ID=e.ID
        where a.ID=#{id}
    </select>
    <select id="selectVipArrearsStatistics" resultType="java.util.Map">
        select
            a.VIP_NAME vipName,
            a.PHONE phone,
            c.shop_short_name shopName,
            sum(b.arrears) arrears,
            count(1) cnt,
            d.su_name staffName
        from sys_vip_info a
         inner join sys_order b on a.ID=b.VIP_ID
         inner join sys_shop_info c on a.SHOP_ID=c.ID
         left join sys_users d on a.STAFF_ID=d.su_id
        where b.STATU='欠款' and b.arrears!=0 and a.IS_DELETE = 'N'
            <if test="record.companyId!=null">
                and a.company_id=#{record.companyId}
            </if>
            <if test="record.shopId!=null">
                and a.shop_id=#{record.shopId}
            </if>
            <if test='record.vipName!=null and record.vipName!="" '>
                and (a.vip_name like concat('%', #{record.vipName}, '%') or a.vip_no like concat('%', #{record.vipName}, '%') or a.phone like concat('%', #{record.vipName}, '%'))
            </if>
        group by a.id
        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
            <if test="pageVo.sort !=null  and pageVo.order !=null">
                order by
                ${pageVo.sort} ${pageVo.order}
            </if>
            <if test="pageVo.offset >=0  and pageVo.limit >0">
                limit
                #{pageVo.offset},#{pageVo.limit}
            </if>
        </if>
    </select>
    <select id="selectVipArrearsStatisticsTotal" resultType="java.lang.Integer">
        select count(1) from (
            select
                a.VIP_NAME vipName,
                a.PHONE phone,
                c.shop_short_name shopName,
                sum(b.arrears) arrears,
                count(1) cnt,
                d.su_name staffName
            from sys_vip_info a
                inner join sys_order b on a.ID=b.VIP_ID
                inner join sys_shop_info c on a.SHOP_ID=c.ID
                left join sys_users d on a.STAFF_ID=d.su_id
            where b.STATU='欠款' and b.arrears!=0 and a.IS_DELETE = 'N'
                <if test="record.companyId!=null">
                    and a.company_id=#{record.companyId}
                </if>
                <if test="record.shopId!=null">
                    and a.shop_id=#{record.shopId}
                </if>
                <if test='record.vipName!=null and record.vipName!="" '>
                    and (a.vip_name like concat('%', #{record.vipName}, '%') or a.vip_no like concat('%', #{record.vipName}, '%') or a.phone like concat('%', #{record.vipName}, '%'))
                </if>
            group by a.id
        ) a
    </select>
</mapper>