package com.mzl.flower.mapper.customer; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.dto.request.customer.QueryCustomerDTO; import com.mzl.flower.dto.response.customer.CustomerDTO; import com.mzl.flower.dto.response.customer.InviteDTO; import com.mzl.flower.dto.response.supplier.SupplierDTO; import com.mzl.flower.entity.customer.Customer; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface CustomerMapper extends BaseMapper { List queryCustomer(@Param("dto") QueryCustomerDTO dto, Page page); CustomerDTO getCurrentCustomer(@Param("userId") String userId); void bindPartner(@Param("id") Long id, @Param("partnerId")Long partnerId, @Param("userId")String userId); @Select("select count(1) from t_customer_info where level_id = #{levelId} and deleted = '0' ") Integer getByLevelId(@Param("levelId") String levelId); @Update("UPDATE t_customer_info c " + "JOIN ( " + " SELECT user_id, " + " SUM(growth) as sumgrowthvalue " + " FROM t_member_growth_record " + " WHERE deleted = '0' " + " GROUP BY user_id " + " HAVING SUM(growth) > 0 " + ") t1 ON c.user_id = t1.user_id " + "SET c.level_id = #{levelId} " + "WHERE t1.sumgrowthvalue BETWEEN #{startPoint} AND #{endPoint} ") Boolean updateMemberLevelByPoint(@Param("levelId") Long levelId, @Param("startPoint") int startPoint, @Param("endPoint") int endPoint); @Select("select * from t_customer_info where user_id = ( select id from t_user where tel =#{phone} and type = 'customer')") CustomerDTO findCustomerByPhone(String phone); @Select("select * from t_customer_info where intervialcode =#{code}") Customer findCustomerByInvitationCode(@Param("code") String code); @Select("select count(1) from t_customer_info where reintervialcode = #{code}") Integer getInvitatCountByCode(@Param("code") String code); @Select("SELECT " + " c.user_id as userId," + " c.name as userName," + " CASE " + " WHEN t1.reward < 3 THEN '获得了3天会员' " + " WHEN t1.reward >= 3 AND t1.reward < 5 THEN '获得了15天会员' " + " WHEN t1.reward >=5 THEN '获得了30天会员' " + " ELSE '' " + " END AS reward ," + " '已注册' as status " + "FROM " + " t_customer_info c " + " INNER JOIN (" + " SELECT " + " reintervialcode, " + " COUNT(DISTINCT id) AS reward" + " FROM " + " t_customer_info " + " WHERE " + " reintervialcode IS NOT NULL " + " AND reintervialcode <> '' " + " GROUP BY " + " reintervialcode " + " ) t1 ON c.intervialcode = t1.reintervialcode") List getReward(); @Select("SELECT " + "c.user_id AS userId, " + "c.NAME AS userName, " + "'' AS reward, " + "'已注册' AS STATUS , c.cover " + "FROM " + "t_customer_info c " + "WHERE " + "reintervialcode IN ( SELECT intervialcode FROM t_customer_info WHERE user_id = #{userid} )") List getMyReward(String userid); void checkVipExpireTime(); }