package cn.exrick.xboot.your.mapper; import cn.exrick.xboot.your.vo.Month; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.exrick.xboot.your.entity.Car; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.type.JdbcType; import java.util.List; /** * 车辆表数据处理层 * @author zhangzeli */ public interface CarMapper extends BaseMapper { @Select("SELECT a.*,b1.nickname AS temp,b2.nickname AS followNickName FROM t_car a LEFT JOIN t_user AS b1 ON a.user_id = b1.id LEFT JOIN t_user AS b2 ON a.follow_user_id = b2.id ${ew.customSqlSegment} ") @Results({@Result(column="temp", property="nickName", jdbcType = JdbcType.VARCHAR)}) IPage page2(Page initMpPage, @Param(Constants.WRAPPER) QueryWrapper wrapper); @Select("SELECT c.*,u.nickname,a.`name` AS area_name FROM t_car c LEFT JOIN t_user AS u ON c.user_id=u.id LEFT JOIN t_area AS a ON a.user_id=u.id") IPage getAll2(Page initMpPage); @Select("SELECT\n" + "\tc.*,(SUM(amount)) AS allAmount,SUM(money) AS allMoney,(MAX(mileage)) AS allMileage\n" + "FROM\n" + "\tt_car c\n" + "LEFT JOIN t_add_oil a ON c.id = a.car_id GROUP BY car_no\n") List getCarInfo(); @Select("SELECT\n" + "\tc.*,(MAX(amount)-MIN(amount)) AS amount,SUM(money) AS money,(MAX(mileage)-MIN(mileage)) AS mileage\n" + "FROM\n" + "\tt_car c\n" + "LEFT JOIN t_add_oil a ON c.id = a.car_id ${ew.customSqlSegment}") List getCarInfo2(@Param(Constants.WRAPPER) QueryWrapper wrapper); @Select("select \n" + "sum(case when create_time < '${year}-02' then 1 else 0 end) as january,\n" + "sum(case when create_time < '${year}-03' then 1 else 0 end) as february,\n" + "sum(case when create_time < '${year}-04' then 1 else 0 end) as march,\n" + "sum(case when create_time < '${year}-05' then 1 else 0 end) as april,\n" + "sum(case when create_time < '${year}-06' then 1 else 0 end) as may,\n" + "sum(case when create_time < '${year}-07' then 1 else 0 end) as june,\n" + "sum(case when create_time < '${year}-08' then 1 else 0 end) as july,\n" + "sum(case when create_time < '${year}-09' then 1 else 0 end) as august,\n" + "sum(case when create_time < '${year}-10' then 1 else 0 end) as september,\n" + "sum(case when create_time < '${year}-11' then 1 else 0 end) as october,\n" + "sum(case when create_time < '${year}-12' then 1 else 0 end) as november,\n" + "sum(case when create_time < '${year}-13' then 1 else 0 end) as december\n" + "from t_car") Month getCarCount(@Param("year")Integer year); }