fix: 作家稿费统计

This commit is contained in:
xiongxiaoyang 2024-08-06 21:14:22 +08:00
parent 3735023cef
commit 21a6a49ce9
3 changed files with 133 additions and 118 deletions

View File

@ -3,7 +3,9 @@ package com.java2nb.novel.core.schedule;
import com.java2nb.novel.core.config.AuthorIncomeProperties; import com.java2nb.novel.core.config.AuthorIncomeProperties;
import com.java2nb.novel.core.utils.DateUtil; import com.java2nb.novel.core.utils.DateUtil;
import com.java2nb.novel.entity.*; import com.java2nb.novel.entity.Author;
import com.java2nb.novel.entity.AuthorIncome;
import com.java2nb.novel.entity.Book;
import com.java2nb.novel.service.AuthorService; import com.java2nb.novel.service.AuthorService;
import com.java2nb.novel.service.BookService; import com.java2nb.novel.service.BookService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -64,24 +66,23 @@ public class MonthIncomeStaSchedule {
Long bookId = book.getId(); Long bookId = book.getId();
//3.月收入数据未统计入库,分作品统计数据入库 //3.月收入数据未统计入库,分作品统计数据入库
Long monthIncome = authorService.queryTotalAccount(userId, bookId, startTime, endTime); Long monthIncome = authorService.queryTotalAccount(userId, bookId, startTime, endTime);
BigDecimal monthIncomeShare = new BigDecimal(monthIncome) BigDecimal monthIncomeShare = new BigDecimal(monthIncome)
.multiply(authorIncomeConfig.getShareProportion()); .multiply(authorIncomeConfig.getShareProportion());
long preTaxIncome = monthIncomeShare long preTaxIncome = monthIncomeShare
.multiply(authorIncomeConfig.getExchangeProportion()) .multiply(authorIncomeConfig.getExchangeProportion())
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.longValue(); .longValue();
totalPreTaxIncome += preTaxIncome; totalPreTaxIncome += preTaxIncome;
long afterTaxIncome = monthIncomeShare long afterTaxIncome = monthIncomeShare
.multiply(authorIncomeConfig.getTaxRate()) .multiply(authorIncomeConfig.getTaxRate())
.multiply(authorIncomeConfig.getExchangeProportion()) .multiply(authorIncomeConfig.getExchangeProportion())
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.longValue(); .longValue();
totalAfterTaxIncome += afterTaxIncome; totalAfterTaxIncome += afterTaxIncome;
@ -102,7 +103,7 @@ public class MonthIncomeStaSchedule {
} }
if (totalPreTaxIncome > 0 && !authorService.queryIsStatisticsMonth(0L, endTime)) { if (totalPreTaxIncome > 0 && !authorService.queryIsStatisticsMonth(authorId, 0L, endTime)) {
AuthorIncome authorIncome = new AuthorIncome(); AuthorIncome authorIncome = new AuthorIncome();
authorIncome.setAuthorId(authorId); authorIncome.setAuthorId(authorId);

View File

@ -1,10 +1,10 @@
package com.java2nb.novel.service; package com.java2nb.novel.service;
import io.github.xxyopen.model.page.PageBean;
import com.java2nb.novel.entity.Author; import com.java2nb.novel.entity.Author;
import com.java2nb.novel.entity.AuthorIncome; import com.java2nb.novel.entity.AuthorIncome;
import com.java2nb.novel.entity.AuthorIncomeDetail; import com.java2nb.novel.entity.AuthorIncomeDetail;
import io.github.xxyopen.model.page.PageBean;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -16,45 +16,51 @@ public interface AuthorService {
/** /**
* 校验笔名是否存在 * 校验笔名是否存在
*
* @param penName 校验的笔名 * @param penName 校验的笔名
* @return true存在该笔名false: 不存在该笔名 * @return true存在该笔名false: 不存在该笔名
* */ */
Boolean checkPenName(String penName); Boolean checkPenName(String penName);
/** /**
* 作家注册 * 作家注册
*
* @param userId 注册用户ID * @param userId 注册用户ID
*@param author 注册信息 * @param author 注册信息
* @return 返回错误信息 * @return 返回错误信息
* */ */
String register(Long userId, Author author); String register(Long userId, Author author);
/** /**
* 判断是否是作家 * 判断是否是作家
*
* @param userId 用户ID * @param userId 用户ID
* @return true是作家false: 不是作家 * @return true是作家false: 不是作家
* */ */
Boolean isAuthor(Long userId); Boolean isAuthor(Long userId);
/** /**
* 查询作家信息 * 查询作家信息
*
* @param userId 用户ID * @param userId 用户ID
* @return 作家对象 * @return 作家对象
* */ */
Author queryAuthor(Long userId); Author queryAuthor(Long userId);
/** /**
* 查询作家列表 * 查询作家列表
* @return 作家列表 *
* @param limit 查询条数 * @param limit 查询条数
* @param maxAuthorCreateTime 最大申请时间 * @param maxAuthorCreateTime 最大申请时间
* @return 作家列表
*/ */
List<Author> queryAuthorList(int limit, Date maxAuthorCreateTime); List<Author> queryAuthorList(int limit, Date maxAuthorCreateTime);
/** /**
* 查询收入日统计是否入库 * 查询收入日统计是否入库
*
* @param bookId 作品ID * @param bookId 作品ID
* @param date 收入时间 * @param date 收入时间
* @return true:已入库false未入库 * @return true:已入库false未入库
*/ */
boolean queryIsStatisticsDaily(Long bookId, Date date); boolean queryIsStatisticsDaily(Long bookId, Date date);
@ -62,67 +68,75 @@ public interface AuthorService {
/** /**
* 保存日收入统计(按作品) * 保存日收入统计(按作品)
*
* @param authorIncomeDetail 收入详情 * @param authorIncomeDetail 收入详情
* */ */
void saveDailyIncomeSta(AuthorIncomeDetail authorIncomeDetail); void saveDailyIncomeSta(AuthorIncomeDetail authorIncomeDetail);
/** /**
* 查询月收入统计是否入库 * 查询月收入统计是否入库
* @param bookId 作品ID *
* @param bookId 作品ID
* @param incomeDate 收入时间 * @param incomeDate 收入时间
* @return true:已入库false未入库 * @return true:已入库false未入库
* */ */
boolean queryIsStatisticsMonth(Long bookId, Date incomeDate); boolean queryIsStatisticsMonth(Long bookId, Date incomeDate);
boolean queryIsStatisticsMonth(Long authorId, Long bookId, Date incomeDate);
/** /**
* 查询时间段内总订阅额 * 查询时间段内总订阅额
* *
* @param userId * @param userId
* @param bookId 作品ID * @param bookId 作品ID
* @param startTime 开始时间 * @param startTime 开始时间
* @param endTime 结束时间 * @param endTime 结束时间
* @return 订阅额屋币 * @return 订阅额屋币
* */ */
Long queryTotalAccount(Long userId, Long bookId, Date startTime, Date endTime); Long queryTotalAccount(Long userId, Long bookId, Date startTime, Date endTime);
/** /**
* 保存月收入统计 * 保存月收入统计
*
* @param authorIncome 收入详情 * @param authorIncome 收入详情
* */ */
void saveAuthorIncomeSta(AuthorIncome authorIncome); void saveAuthorIncomeSta(AuthorIncome authorIncome);
/** /**
* 查询收入日统计是否入库 * 查询收入日统计是否入库
*
* @param authorId 作家ID * @param authorId 作家ID
* @param bookId 作品ID * @param bookId 作品ID
* @param date 收入时间 * @param date 收入时间
* @return true:已入库false未入库 * @return true:已入库false未入库
*/ */
boolean queryIsStatisticsDaily(Long authorId, Long bookId, Date date); boolean queryIsStatisticsDaily(Long authorId, Long bookId, Date date);
/** /**
*作家日收入统计数据分页列表查询 * 作家日收入统计数据分页列表查询
*
* @param userId * @param userId
* @param page 页码 * @param page 页码
* @param pageSize 分页大小 * @param pageSize 分页大小
* @param bookId 小说ID * @param bookId 小说ID
* @param startTime 开始时间 * @param startTime 开始时间
* @param endTime 结束时间 * @param endTime 结束时间
* @return 日收入统计数据分页数据 * @return 日收入统计数据分页数据
*/ */
PageBean<AuthorIncomeDetail> listIncomeDailyByPage(int page, int pageSize, Long userId, Long bookId, Date startTime, Date endTime); PageBean<AuthorIncomeDetail> listIncomeDailyByPage(int page, int pageSize, Long userId, Long bookId, Date startTime,
Date endTime);
/** /**
* 作家月收入统计数据分页列表查询 * 作家月收入统计数据分页列表查询
* @param page 页码 *
* @param page 页码
* @param pageSize 分页大小 * @param pageSize 分页大小
* @param userId 用户ID * @param userId 用户ID
* @param bookId 小说ID * @param bookId 小说ID
* @return 分页数据 * @return 分页数据
* */ */
PageBean<AuthorIncome> listIncomeMonthByPage(int page, int pageSize, Long userId, Long bookId); PageBean<AuthorIncome> listIncomeMonthByPage(int page, int pageSize, Long userId, Long bookId);
} }

View File

@ -1,23 +1,15 @@
package com.java2nb.novel.service.impl; package com.java2nb.novel.service.impl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import io.github.xxyopen.model.page.PageBean;
import com.java2nb.novel.core.cache.CacheKey;
import com.java2nb.novel.core.cache.CacheService;
import com.java2nb.novel.core.enums.ResponseStatus;
import io.github.xxyopen.model.page.builder.pagehelper.PageBuilder;
import io.github.xxyopen.web.exception.BusinessException;
import com.java2nb.novel.entity.Author; import com.java2nb.novel.entity.Author;
import com.java2nb.novel.entity.AuthorIncome; import com.java2nb.novel.entity.AuthorIncome;
import com.java2nb.novel.entity.AuthorIncomeDetail; import com.java2nb.novel.entity.AuthorIncomeDetail;
import com.java2nb.novel.entity.FriendLink;
import com.java2nb.novel.mapper.*; import com.java2nb.novel.mapper.*;
import com.java2nb.novel.service.AuthorService; import com.java2nb.novel.service.AuthorService;
import com.java2nb.novel.service.FriendLinkService; import io.github.xxyopen.model.page.PageBean;
import io.github.xxyopen.model.page.builder.pagehelper.PageBuilder;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.mybatis.dynamic.sql.render.RenderingStrategies; import org.mybatis.dynamic.sql.render.RenderingStrategies;
import org.mybatis.dynamic.sql.select.CountDSLCompleter;
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -25,10 +17,6 @@ import java.util.Date;
import java.util.List; import java.util.List;
import static com.java2nb.novel.mapper.AuthorCodeDynamicSqlSupport.authorCode; import static com.java2nb.novel.mapper.AuthorCodeDynamicSqlSupport.authorCode;
import static com.java2nb.novel.mapper.BookDynamicSqlSupport.book;
import static com.java2nb.novel.mapper.BookDynamicSqlSupport.id;
import static com.java2nb.novel.mapper.BookDynamicSqlSupport.updateTime;
import static com.java2nb.novel.mapper.FriendLinkDynamicSqlSupport.*;
import static org.mybatis.dynamic.sql.SqlBuilder.*; import static org.mybatis.dynamic.sql.SqlBuilder.*;
import static org.mybatis.dynamic.sql.select.SelectDSL.select; import static org.mybatis.dynamic.sql.select.SelectDSL.select;
@ -52,7 +40,7 @@ public class AuthorServiceImpl implements AuthorService {
@Override @Override
public Boolean checkPenName(String penName) { public Boolean checkPenName(String penName) {
return authorMapper.count(c -> return authorMapper.count(c ->
c.where(AuthorDynamicSqlSupport.penName, isEqualTo(penName))) > 0; c.where(AuthorDynamicSqlSupport.penName, isEqualTo(penName))) > 0;
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -61,21 +49,21 @@ public class AuthorServiceImpl implements AuthorService {
Date currentDate = new Date(); Date currentDate = new Date();
//判断邀请码是否有效 //判断邀请码是否有效
if (authorCodeMapper.count(c -> if (authorCodeMapper.count(c ->
c.where(AuthorCodeDynamicSqlSupport.inviteCode, isEqualTo(author.getInviteCode())) c.where(AuthorCodeDynamicSqlSupport.inviteCode, isEqualTo(author.getInviteCode()))
.and(AuthorCodeDynamicSqlSupport.isUse, isEqualTo((byte) 0)) .and(AuthorCodeDynamicSqlSupport.isUse, isEqualTo((byte) 0))
.and(AuthorCodeDynamicSqlSupport.validityTime, isGreaterThan(currentDate))) > 0) { .and(AuthorCodeDynamicSqlSupport.validityTime, isGreaterThan(currentDate))) > 0) {
//邀请码有效 //邀请码有效
//保存作家信息 //保存作家信息
author.setUserId(userId); author.setUserId(userId);
author.setCreateTime(currentDate); author.setCreateTime(currentDate);
authorMapper.insertSelective(author); authorMapper.insertSelective(author);
//设置邀请码状态为已使用 //设置邀请码状态为已使用
authorCodeMapper.update(update(authorCode) authorCodeMapper.update(update(authorCode)
.set(AuthorCodeDynamicSqlSupport.isUse) .set(AuthorCodeDynamicSqlSupport.isUse)
.equalTo((byte) 1) .equalTo((byte) 1)
.where(AuthorCodeDynamicSqlSupport.inviteCode,isEqualTo(author.getInviteCode())) .where(AuthorCodeDynamicSqlSupport.inviteCode, isEqualTo(author.getInviteCode()))
.build() .build()
.render(RenderingStrategies.MYBATIS3)); .render(RenderingStrategies.MYBATIS3));
return ""; return "";
} else { } else {
//邀请码无效 //邀请码无效
@ -87,15 +75,15 @@ public class AuthorServiceImpl implements AuthorService {
@Override @Override
public Boolean isAuthor(Long userId) { public Boolean isAuthor(Long userId) {
return authorMapper.count(c -> return authorMapper.count(c ->
c.where(AuthorDynamicSqlSupport.userId, isEqualTo(userId))) > 0; c.where(AuthorDynamicSqlSupport.userId, isEqualTo(userId))) > 0;
} }
@Override @Override
public Author queryAuthor(Long userId) { public Author queryAuthor(Long userId) {
return authorMapper.selectMany( return authorMapper.selectMany(
select(AuthorDynamicSqlSupport.id,AuthorDynamicSqlSupport.penName,AuthorDynamicSqlSupport.status) select(AuthorDynamicSqlSupport.id, AuthorDynamicSqlSupport.penName, AuthorDynamicSqlSupport.status)
.from(AuthorDynamicSqlSupport.author) .from(AuthorDynamicSqlSupport.author)
.where(AuthorDynamicSqlSupport.userId,isEqualTo(userId)) .where(AuthorDynamicSqlSupport.userId, isEqualTo(userId))
.build() .build()
.render(RenderingStrategies.MYBATIS3)).get(0); .render(RenderingStrategies.MYBATIS3)).get(0);
} }
@ -103,12 +91,12 @@ public class AuthorServiceImpl implements AuthorService {
@Override @Override
public List<Author> queryAuthorList(int needAuthorNumber, Date maxAuthorCreateTime) { public List<Author> queryAuthorList(int needAuthorNumber, Date maxAuthorCreateTime) {
return authorMapper.selectMany(select(AuthorDynamicSqlSupport.id, AuthorDynamicSqlSupport.userId) return authorMapper.selectMany(select(AuthorDynamicSqlSupport.id, AuthorDynamicSqlSupport.userId)
.from(AuthorDynamicSqlSupport.author) .from(AuthorDynamicSqlSupport.author)
.where(AuthorDynamicSqlSupport.createTime, isLessThan(maxAuthorCreateTime)) .where(AuthorDynamicSqlSupport.createTime, isLessThan(maxAuthorCreateTime))
.orderBy(AuthorDynamicSqlSupport.createTime.descending()) .orderBy(AuthorDynamicSqlSupport.createTime.descending())
.limit(needAuthorNumber) .limit(needAuthorNumber)
.build() .build()
.render(RenderingStrategies.MYBATIS3)); .render(RenderingStrategies.MYBATIS3));
} }
@ -116,11 +104,11 @@ public class AuthorServiceImpl implements AuthorService {
public boolean queryIsStatisticsDaily(Long bookId, Date date) { public boolean queryIsStatisticsDaily(Long bookId, Date date) {
return authorIncomeDetailMapper.selectMany(select(AuthorIncomeDetailDynamicSqlSupport.id) return authorIncomeDetailMapper.selectMany(select(AuthorIncomeDetailDynamicSqlSupport.id)
.from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail) .from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail)
.where(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId)) .where(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId))
.and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isEqualTo(date)) .and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isEqualTo(date))
.build() .build()
.render(RenderingStrategies.MYBATIS3)).size() > 0; .render(RenderingStrategies.MYBATIS3)).size() > 0;
} }
@ -133,24 +121,35 @@ public class AuthorServiceImpl implements AuthorService {
@Override @Override
public boolean queryIsStatisticsMonth(Long bookId, Date incomeDate) { public boolean queryIsStatisticsMonth(Long bookId, Date incomeDate) {
return authorIncomeMapper.selectMany(select(AuthorIncomeDynamicSqlSupport.id) return authorIncomeMapper.selectMany(select(AuthorIncomeDynamicSqlSupport.id)
.from(AuthorIncomeDynamicSqlSupport.authorIncome) .from(AuthorIncomeDynamicSqlSupport.authorIncome)
.where(AuthorIncomeDynamicSqlSupport.bookId, isEqualTo(bookId)) .where(AuthorIncomeDynamicSqlSupport.bookId, isEqualTo(bookId))
.and(AuthorIncomeDynamicSqlSupport.incomeMonth, isEqualTo(incomeDate)) .and(AuthorIncomeDynamicSqlSupport.incomeMonth, isEqualTo(incomeDate))
.build() .build()
.render(RenderingStrategies.MYBATIS3)).size() > 0; .render(RenderingStrategies.MYBATIS3)).size() > 0;
}
@Override
public boolean queryIsStatisticsMonth(Long authorId, Long bookId, Date incomeDate) {
return authorIncomeMapper.selectMany(select(AuthorIncomeDynamicSqlSupport.id)
.from(AuthorIncomeDynamicSqlSupport.authorIncome)
.where(AuthorIncomeDynamicSqlSupport.bookId, isEqualTo(bookId))
.and(AuthorIncomeDynamicSqlSupport.authorId, isEqualTo(authorId))
.and(AuthorIncomeDynamicSqlSupport.incomeMonth, isEqualTo(incomeDate))
.build()
.render(RenderingStrategies.MYBATIS3)).size() > 0;
} }
@Override @Override
public Long queryTotalAccount(Long userId, Long bookId, Date startTime, Date endTime) { public Long queryTotalAccount(Long userId, Long bookId, Date startTime, Date endTime) {
return authorIncomeDetailMapper.selectStatistic(select(sum(AuthorIncomeDetailDynamicSqlSupport.incomeAccount)) return authorIncomeDetailMapper.selectStatistic(select(sum(AuthorIncomeDetailDynamicSqlSupport.incomeAccount))
.from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail) .from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail)
.where(AuthorIncomeDetailDynamicSqlSupport.userId, isEqualTo(userId)) .where(AuthorIncomeDetailDynamicSqlSupport.userId, isEqualTo(userId))
.and(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId)) .and(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId))
.and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isGreaterThanOrEqualTo(startTime)) .and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isGreaterThanOrEqualTo(startTime))
.and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isLessThanOrEqualTo(endTime)) .and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isLessThanOrEqualTo(endTime))
.build() .build()
.render(RenderingStrategies.MYBATIS3)); .render(RenderingStrategies.MYBATIS3));
} }
@ -162,29 +161,30 @@ public class AuthorServiceImpl implements AuthorService {
@Override @Override
public boolean queryIsStatisticsDaily(Long authorId, Long bookId, Date date) { public boolean queryIsStatisticsDaily(Long authorId, Long bookId, Date date) {
return authorIncomeDetailMapper.selectMany(select(AuthorIncomeDetailDynamicSqlSupport.id) return authorIncomeDetailMapper.selectMany(select(AuthorIncomeDetailDynamicSqlSupport.id)
.from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail) .from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail)
.where(AuthorIncomeDetailDynamicSqlSupport.authorId, isEqualTo(authorId)) .where(AuthorIncomeDetailDynamicSqlSupport.authorId, isEqualTo(authorId))
.and(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId)) .and(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId))
.and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isEqualTo(date)) .and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isEqualTo(date))
.build() .build()
.render(RenderingStrategies.MYBATIS3)).size() > 0; .render(RenderingStrategies.MYBATIS3)).size() > 0;
} }
@Override @Override
public PageBean<AuthorIncomeDetail> listIncomeDailyByPage(int page, int pageSize, Long userId, Long bookId, Date startTime, Date endTime) { public PageBean<AuthorIncomeDetail> listIncomeDailyByPage(int page, int pageSize, Long userId, Long bookId,
Date startTime, Date endTime) {
PageHelper.startPage(page, pageSize); PageHelper.startPage(page, pageSize);
return PageBuilder.build(authorIncomeDetailMapper.selectMany( return PageBuilder.build(authorIncomeDetailMapper.selectMany(
select(AuthorIncomeDetailDynamicSqlSupport.incomeDate, AuthorIncomeDetailDynamicSqlSupport.incomeAccount select(AuthorIncomeDetailDynamicSqlSupport.incomeDate, AuthorIncomeDetailDynamicSqlSupport.incomeAccount
, AuthorIncomeDetailDynamicSqlSupport.incomeCount, AuthorIncomeDetailDynamicSqlSupport.incomeNumber) , AuthorIncomeDetailDynamicSqlSupport.incomeCount, AuthorIncomeDetailDynamicSqlSupport.incomeNumber)
.from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail) .from(AuthorIncomeDetailDynamicSqlSupport.authorIncomeDetail)
.where(AuthorIncomeDetailDynamicSqlSupport.userId, isEqualTo(userId)) .where(AuthorIncomeDetailDynamicSqlSupport.userId, isEqualTo(userId))
.and(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId)) .and(AuthorIncomeDetailDynamicSqlSupport.bookId, isEqualTo(bookId))
.and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isGreaterThanOrEqualTo(startTime)) .and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isGreaterThanOrEqualTo(startTime))
.and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isLessThanOrEqualTo(endTime)) .and(AuthorIncomeDetailDynamicSqlSupport.incomeDate, isLessThanOrEqualTo(endTime))
.orderBy(AuthorIncomeDetailDynamicSqlSupport.incomeDate.descending()) .orderBy(AuthorIncomeDetailDynamicSqlSupport.incomeDate.descending())
.build() .build()
.render(RenderingStrategies.MYBATIS3))); .render(RenderingStrategies.MYBATIS3)));
} }
@ -192,15 +192,15 @@ public class AuthorServiceImpl implements AuthorService {
public PageBean<AuthorIncome> listIncomeMonthByPage(int page, int pageSize, Long userId, Long bookId) { public PageBean<AuthorIncome> listIncomeMonthByPage(int page, int pageSize, Long userId, Long bookId) {
PageHelper.startPage(page, pageSize); PageHelper.startPage(page, pageSize);
return PageBuilder.build(authorIncomeMapper.selectMany(select(AuthorIncomeDynamicSqlSupport.incomeMonth return PageBuilder.build(authorIncomeMapper.selectMany(select(AuthorIncomeDynamicSqlSupport.incomeMonth
, AuthorIncomeDynamicSqlSupport.preTaxIncome , AuthorIncomeDynamicSqlSupport.preTaxIncome
, AuthorIncomeDynamicSqlSupport.afterTaxIncome , AuthorIncomeDynamicSqlSupport.afterTaxIncome
, AuthorIncomeDynamicSqlSupport.payStatus , AuthorIncomeDynamicSqlSupport.payStatus
, AuthorIncomeDynamicSqlSupport.confirmStatus) , AuthorIncomeDynamicSqlSupport.confirmStatus)
.from(AuthorIncomeDynamicSqlSupport.authorIncome) .from(AuthorIncomeDynamicSqlSupport.authorIncome)
.where(AuthorIncomeDynamicSqlSupport.userId, isEqualTo(userId)) .where(AuthorIncomeDynamicSqlSupport.userId, isEqualTo(userId))
.and(AuthorIncomeDynamicSqlSupport.bookId, isEqualTo(bookId)) .and(AuthorIncomeDynamicSqlSupport.bookId, isEqualTo(bookId))
.orderBy(AuthorIncomeDynamicSqlSupport.incomeMonth.descending()) .orderBy(AuthorIncomeDynamicSqlSupport.incomeMonth.descending())
.build() .build()
.render(RenderingStrategies.MYBATIS3))); .render(RenderingStrategies.MYBATIS3)));
} }
} }