SmsLogStatisticsPageReqVO 文件
package com.qhjk.gyzx.module.system.controller.admin.sms.vo.log;
import com.qhjk.gyzx.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.qhjk.gyzx.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 短信日志分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SmsLogStatisticsPageReqVO extends PageParam {
@Schema(description = "短信渠道编号", example = "10")
private Long channelId;
@Schema(description = "发送数量", example = "10")
private Long sendCount;
@Schema(description = "短信渠道编号", example = "10")
private String templateContent;
@Schema(description = "模板编号", example = "20")
private Long templateId;
@Schema(description = "手机号", example = "15601691300")
private String mobile;
@Schema(description = "发送id", example = "20")
private Long serialId;
@Schema(description = "发送状态,参见 SmsSendStatusEnum 枚举类", example = "1")
private Integer sendStatus;
@Schema(description = "发送时间")
private LocalDateTime mySendTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@Schema(description = "发送时间")
private LocalDateTime[] sendTime;
@Schema(description = "接收状态,参见 SmsReceiveStatusEnum 枚举类", example = "0")
private Integer receiveStatus;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@Schema(description = "接收时间")
private LocalDateTime[] receiveTime;
}
Controller文件
@GetMapping("/list")
@Operation(summary = "获得短信日志分页")
@PreAuthorize("@ss.hasPermission('system:sms-log:query')")
public CommonResult<PageResult<SmsLogRespVO>> getSmsLogStatisticsPage(@Valid SmsLogStatisticsPageReqVO pageReqVO) {
PageResult<SmsLogStatisticsPageReqVO> pageResult = smsLogService.getSmsLogStatisticsPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, SmsLogRespVO.class));
}
Service文件
* 获得短信日志分页
*
* @param pageReqVO 分页查询
* @return 短信日志分页
*/
PageResult<SmsLogStatisticsPageReqVO> getSmsLogStatisticsPage(SmsLogStatisticsPageReqVO pageReqVO);
ServiceImpl文件
@Override
public PageResult<SmsLogStatisticsPageReqVO> getSmsLogStatisticsPage(SmsLogStatisticsPageReqVO pageVO) {
// 验证角色,管理员查看全部,非管理员只查看自己的
return systemSmsLogMapper.getSmslogSettlePage(pageVO);
}
mapper文件
default PageResult<SmsLogStatisticsPageReqVO> getSmslogSettlePage(SmsLogStatisticsPageReqVO pageVO){
Page<SmsLogStatisticsPageReqVO> iPage = MyBatisUtils.buildPage(pageVO);
LambdaQueryWrapperX<SmsLogDO> queryWrapperX = new LambdaQueryWrapperX<SmsLogDO>();
queryWrapperX.eqIfPresent(SmsLogDO::getSendTime, pageVO.getSendTime());
queryWrapperX.groupBy(SmsLogDO::getSerialId);
queryWrapperX.orderByDesc(SmsLogDO::getId);
List<SmsLogStatisticsPageReqVO> list = getCompanyEarningSettleList(iPage, queryWrapperX);
return new PageResult<>(list, iPage.getTotal());
}
List<SmsLogStatisticsPageReqVO> getCompanyEarningSettleList(IPage<SmsLogStatisticsPageReqVO> iPage, @Param("ew") LambdaQueryWrapperX<SmsLogDO> ew);
xml文件
<select id="getCompanyEarningSettleList"
resultType="com.qhjk.gyzx.module.system.controller.admin.sms.vo.log.SmsLogStatisticsPageReqVO">
select count(id) as sendCount,
send_time mySendTime,
tenant_id,
template_content as templateContent,
serial_id as serialId
from system_sms_log
where deleted = 0
${ew.customSqlSegment}
</select>