1.controller层
@PostMapping(value = "/list")
@ApiOperation("查询学费通知单列表")
@TokenInfo
public Result<PageInfo<BizEduTollOrderDto>> getList(@RequestBody PageInfo<BizEduTollOrderInDto> dto , @ApiIgnore HttpServletRequest req, @ApiIgnore LoginUser loginUser) {
return bizEduPushTollOrderService.queryPage(dto.getPageDto(), dto.getPageNo(), dto.getPageSize(), req.getParameterMap(), loginUser);
}
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
2.service层
Result<PageInfo> queryPage(BizEduTollOrderInDto dto,
@RequestParam(name = “pageNo”, defaultValue = “1”) Long pageNo,
@RequestParam(name = “pageSize”, defaultValue = “10”) Long pageSize, Map<String, String[]> req, LoginUser loginUser);
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
3.serviceimpl层
/**
1. 这里对应的表字段数据类型要相同、eduClassName对应的实体类中的eduClassName这个参数要与class_name类型相同、且该实体类型转成另一个实体类的类型也要相同
*/
@Override
public Result<PageInfo<BizEduTollOrderDto>> queryPage(BizEduTollOrderInDto dto, Long pageNo, Long pageSize, Map<String, String[]> req, LoginUser loginUser) {
dto.setSchoolIds(loginUser.getSchoolIds());
//创建Page对象并将BizEduTollOrderInDto实体类作为泛型,传入当前页和当前页所在的条数
Page<BizEduTollOrderInDto> page = new Page<>(pageNo, pageSize);
//进行分页查询
Page<BizEduTollOrderInDto> page1 = EduPushTollMapper.selectEduPushTollPage(page, dto);
PageInfo<BizEduTollOrderInDto> pageinfo = new PageInfo<>(page1);
//pageinfo转化为集合 List<BizEduTollOrderInDto>
List<BizEduTollOrderInDto> collect = pageinfo.getCollection().stream().collect(Collectors.toList());
// List<BizEduTollOrderInDto>转化为 List<BizEduTollOrderDto>
List<BizEduTollOrderDto> bizEduTollOrderDtos = BeanUtil.convertList(collect, BizEduTollOrderDto.class);
//创建Pageinfo对象
PageInfo<BizEduTollOrderDto> pageInfo = new PageInfo<>(bizEduTollOrderDtos, pageinfo.getPageSize(), pageinfo.getPageNo(), pageinfo.getTotal());
Result result = new Result();
return result.response(pageInfo);
}
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
4.mapper层代码
@Mapper
public interface EduPushTollMapper extends BaseMapper {
// List selectEduPushToll( @Param(value = “dtos”) BizEduTollOrderInDto dtos);
Page selectEduPushTollPage(Page page,@Param(value = “dtos”) BizEduTollOrderInDto dtos);
}
5.mapper.xml配置信息如下
<
?xml version=“1.0” encoding=“UTF-8”?>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="org.ies.charge.application.data.base.request.BizEduTollOrderInDto" id="eduPush">
<result property="eduStudentName" column="stu_name" />
<result property="eduStudentNo" column="stu_no" />
<result property="id" column="id" />
<result property="eduClassName" column="class_name" />
<result property="eduGradeName" column="grade_name" />
<result property="pushUserPhone" column="parent_iphone" />
<result property="createTime" column="create_time"/>
<result property="pushData" column="push_data" />
<result property="eduTollProjectName" column="edu_toll_project_name" />
<result property="tollOrderPrice" column="toll_order_price" />
<result property="pushState" column="push_state" />
<result property="tollStatus" column="toll_status"/>
</resultMap>
<select id="selectEduPushTollPage" resultMap="eduPush" >
SELECT DISTINCT
ec.id,
ec.school_ids,es.stu_name,es.stu_no ,
el.class_name,eg.grade_name ,
ep.parent_iphone ,ec.toll_order_title,
ec.push_data ,ec.edu_toll_project_name,
ec.toll_order_price,ec.confirm_price ,
ec.push_state ,ec.toll_status,ec.create_time
FROM edu_charges ec
LEFT JOIN edu_student es ON ec.edu_student_id=es.id
LEFT JOIN edu_class el ON es.edu_class_id=el.id
LEFT JOIN edu_school_grade eg ON el.grade_code=eg.grade_code
LEFT JOIN edu_parent ep ON es.edu_parent_id = ep.id
where ec.school_ids = #{dtos.schoolIds} and ec.del_flag = 0
<if test='dtos.pushDataStart != null and dtos.pushDataEnd !=null '>
and ec.push_data between #{dtos.pushDataStart} and #{dtos.pushDataEnd}
</if>
<if test='dtos.createtimeStart != null and dtos.createtimeEnd !=null '>
and ec.create_time between #{dtos.createTimeStart} and #{dtos.createTimeEnd}
</if>
<if test='dtos.eduGradeName != null and dtos.eduGradeName != ""'>
and eg.grade_name like concat('%',#{dtos.eduGradeName},'%')
</if>
<if test='dtos.tollOrderTitle != null and dtos.tollOrderTitle != ""'>
and ec.toll_order_title like concat('%',#{dtos.tollOrderTitle},'%')
</if>
<if test='dtos.eduTollProjectName != null and dtos.eduTollProjectName != ""'>
and ec.edu_toll_project_name like concat('%',#{dtos.eduTollProjectName},'%')
</if>
<if test='dtos.tollStatus != null and dtos.tollStatus != ""'>
and ec.toll_status = #{dtos.tollStatus}
</if>
<if test='dtos.eduStudentName != null and dtos.eduStudentName != ""'>
and es.stu_name like concat('%',#{dtos.eduStudentName},'%')
</if>
<if test='dtos.eduClassId != null and dtos.eduClassId != ""'>
and el.id = #{dtos.eduClassId}
</if>
<if test='dtos.pushUserPhone != null and dtos.pushUserPhone != ""'>
and ep.parent_iphone like concat('%',#{dtos.pushUserPhone},'%')
</if>
order by ec.create_time desc
</select>
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
6.serviceImpl用到的实体类对象
package org.ies.charge.application.data.base.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
-
收费订单业务
-
@author ljf
-
@email 903662850@qq.com
-
@date 2021-01-16 10:57:49
*/
@Data
public class BizEduTollOrderInDto {@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“推送开始时间”)
private Date pushDataStart;@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“推送开始时间”)
private Date pushData;@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“推送结束时间”)
private Date pushDataEnd;/*
- 1.接受创建开始时间、接受创建结束时间
- */
@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“创建开始时间”)
private Date createTimeStart;
@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“创建结束时间”)
private Date createTimeEnd;/创建时间/
@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“创建开始时间”)
private Date createTime;/**
- 接受年级信息进行查询
- */
@ApiModelProperty(“年级”)
private String eduGradeName;
/*
- 按年级编号查询
- /
@ApiModelProperty(“年级编号”)
private String gradeCode;
/* - 收费单号
*/
@ApiModelProperty(“收费单号”)
private String tollOrderNo;
@ApiModelProperty(“班级编号”)
private String eduClassId;/**
- 收费订单标题
*/
@ApiModelProperty(“收费订单名称”)
private String tollOrderTitle;
/**
- 收费项目
*/
@ApiModelProperty(“收费项目”)
private String eduTollProjectName;
/**
- 收费订单金额
*/
@ApiModelProperty(“收费订单金额”)
private BigDecimal tollOrderPrice;
/**
- 折扣
*/
@ApiModelProperty(“折扣”)
private String discountRate;
/**
- 减免
*/
@ApiModelProperty(“减免”)
private String exemptionPrice;
/**
- 学生id
*/
@ApiModelProperty(“学生id”)
private Long eduStudentId;
/**
- 收费编号id
/
@ApiModelProperty(“id”)
private Long id;
/ - 学生编号
- */
@ApiModelProperty(“学生编号”)
private String eduStudentNo;
/**- 学生姓名
*/
@ApiModelProperty(“学生姓名”)
private String eduStudentName;
/**
- 班级
*/
@ApiModelProperty(“班级”)
private String eduClassName;
/**
- 收费订单状态
*/
@ApiModelProperty(“收费订单状态”)
private String tollStatus;
/**
- 手机号码
*/
@ApiModelProperty(“手机号码”)
private String pushUserPhone;
/**
- 推送的人
*/
@ApiModelProperty(“推送的人”)
private String pushUserId;
/**
- 所属学校
*/
@ApiModelProperty(“所属学校”)
private String schoolIds;
/**
- 推送状态(0表示已推送 1表示未推送 2表示推送失败)
*/
@ApiModelProperty(“推送状态(0表示已推送 1表示未推送 2表示推送失败)”)
private Integer pushState;
}
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
package org.ies.charge.application.data.base.response;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
-
收费订单业务返回
-
@author ljf
-
@email 903662850@qq.com
-
@date 2021-01-16 10:57:49
/
@Data
public class BizEduTollOrderDto {
/*- 主键
/
@TableId(type = IdType.AUTO)
@ApiModelProperty(“主键”)
private Long id;
/* - 收费单号
/
@ApiModelProperty(“收费单号”)
@Excel(name = “收费单号”,
width = 36.0D)
private String tollOrderNo;
/* - 收费订单标题
/
@ApiModelProperty(“收费订单标题”)
@Excel(name = “收费订单标题”,
width = 36.0D)
private String tollOrderTitle;
/* - 学生id
/
@ApiModelProperty(“学生id”)
private Long eduStudentId;
/* - 收费缴费状态
/
@ApiModelProperty("收费单缴费状态 1:已缴费 2:未缴费 ")
@Excel(name = “收费单缴费状态”,
width = 36.0D,dicCode=“tollStatus”)
private String tollStatus;
/* - 收费订单金额
/
@ApiModelProperty(“收费订单金额”)
@Excel(name = “收费订单金额”,
width = 36.0D)
private BigDecimal tollOrderPrice;
/* - 确认支付金额
/
@ApiModelProperty(“确认支付金额”)
private BigDecimal confirmPrice;
/* - 收费项目
/
@ApiModelProperty(“收费项目”)
@Excel(name = “收费项目”,
width = 36.0D)
private String eduTollProjectName;
/* - 推送时间
/
@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“推送时间”)
@Excel(name = “推送时间”,
width = 20.0D,
format = “yyyy-MM-dd HH:mm:ss”)
private Date pushData;
/* - 推送的人
/
@ApiModelProperty(“推送的人”)
@Excel(name = “推送的人”,
width = 36.0D)
private String pushUserId;
/* - 备注
*/
@ApiModelProperty(“备注”)
@Excel(name = “备注”,
width = 36.0D)
private String remarks;
/**
- 学生姓名
*/
@ApiModelProperty(“学生姓名”)
@Excel(name = “学生姓名”,
width = 36.0D)
private String eduStudentName;
/**
- 学生姓名
*/
@ApiModelProperty(“学生学号”)
@Excel(name = “学生学号”,
width = 36.0D)
private String eduStudentNo;
/**
- 班级
*/
@ApiModelProperty(“班级”)
@Excel(name = “班级”,
width = 36.0D)
private String eduClassName;
/**
- 创建时间
*/
@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@ApiModelProperty(“创建结束时间”)
@Excel(name=“创建时间”,
width = 36.0D,
format = “yyyy-MM-dd HH:mm:ss”)
private Date createTime;/*
- 创建结束时间
- /
@ApiModelProperty(“结束时间”)
private Date createTimeEnd;
/* - 结束时间
*/
@ApiModelProperty(“结束时间”)
private Date pushDataEnd;
/**
- 年级
*/
@ApiModelProperty(“年级”)
@Excel(name = “年级”,
width = 36.0D)
private String eduGradeName;
/**
- 手机号码
/
@ApiModelProperty(“手机号码”)
@Excel(name = “手机号码”,
width = 36.0D)
private String pushUserPhone;
/* - 订单中心订单号
*/
@ApiModelProperty(“订单号”)
@Excel(name = “订单号”,
width = 36.0D)
private String orderNum;
/**
- 推送状态(0表示已推送 1表示未推送 2表示推送失败)
*/
@ApiModelProperty(“推送状态(0表示已推送 1表示未推送 2表示推送失败 3表示作废)”)
@Excel(name = “推送状态”,
width = 36.0D,dicCode=“pushStatus”)
private Integer pushState;
}
错误总结
- 主键
具体也可参考:https://kaven.blog.csdn.net/article/details/109010449