mirror of
https://github.com/201206030/novel-plus.git
synced 2025-04-26 17:20:52 +00:00
fix: 作家稿费统计
This commit is contained in:
parent
3735023cef
commit
21a6a49ce9
@ -3,7 +3,9 @@ package com.java2nb.novel.core.schedule;
|
||||
|
||||
import com.java2nb.novel.core.config.AuthorIncomeProperties;
|
||||
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.BookService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -64,7 +66,6 @@ public class MonthIncomeStaSchedule {
|
||||
|
||||
Long bookId = book.getId();
|
||||
|
||||
|
||||
//3.月收入数据未统计入库,分作品统计数据入库
|
||||
Long monthIncome = authorService.queryTotalAccount(userId, bookId, startTime, endTime);
|
||||
|
||||
@ -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.setAuthorId(authorId);
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.java2nb.novel.service;
|
||||
|
||||
|
||||
import io.github.xxyopen.model.page.PageBean;
|
||||
import com.java2nb.novel.entity.Author;
|
||||
import com.java2nb.novel.entity.AuthorIncome;
|
||||
import com.java2nb.novel.entity.AuthorIncomeDetail;
|
||||
import io.github.xxyopen.model.page.PageBean;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -16,43 +16,49 @@ public interface AuthorService {
|
||||
|
||||
/**
|
||||
* 校验笔名是否存在
|
||||
*
|
||||
* @param penName 校验的笔名
|
||||
* @return true:存在该笔名,false: 不存在该笔名
|
||||
* */
|
||||
*/
|
||||
Boolean checkPenName(String penName);
|
||||
|
||||
/**
|
||||
* 作家注册
|
||||
*
|
||||
* @param userId 注册用户ID
|
||||
* @param author 注册信息
|
||||
* @return 返回错误信息
|
||||
* */
|
||||
*/
|
||||
String register(Long userId, Author author);
|
||||
|
||||
/**
|
||||
* 判断是否是作家
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @return true:是作家,false: 不是作家
|
||||
* */
|
||||
*/
|
||||
Boolean isAuthor(Long userId);
|
||||
|
||||
/**
|
||||
* 查询作家信息
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @return 作家对象
|
||||
* */
|
||||
*/
|
||||
Author queryAuthor(Long userId);
|
||||
|
||||
/**
|
||||
* 查询作家列表
|
||||
* @return 作家列表
|
||||
*
|
||||
* @param limit 查询条数
|
||||
* @param maxAuthorCreateTime 最大申请时间
|
||||
* @return 作家列表
|
||||
*/
|
||||
List<Author> queryAuthorList(int limit, Date maxAuthorCreateTime);
|
||||
|
||||
/**
|
||||
* 查询收入日统计是否入库
|
||||
*
|
||||
* @param bookId 作品ID
|
||||
* @param date 收入时间
|
||||
* @return true:已入库,false:未入库
|
||||
@ -62,20 +68,23 @@ public interface AuthorService {
|
||||
|
||||
/**
|
||||
* 保存日收入统计(按作品)
|
||||
*
|
||||
* @param authorIncomeDetail 收入详情
|
||||
* */
|
||||
*/
|
||||
void saveDailyIncomeSta(AuthorIncomeDetail authorIncomeDetail);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询月收入统计是否入库
|
||||
*
|
||||
* @param bookId 作品ID
|
||||
* @param incomeDate 收入时间
|
||||
* @return true:已入库,false:未入库
|
||||
* */
|
||||
*/
|
||||
boolean queryIsStatisticsMonth(Long bookId, Date incomeDate);
|
||||
|
||||
boolean queryIsStatisticsMonth(Long authorId, Long bookId, Date incomeDate);
|
||||
|
||||
/**
|
||||
* 查询时间段内总订阅额
|
||||
*
|
||||
@ -84,18 +93,20 @@ public interface AuthorService {
|
||||
* @param startTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @return 订阅额(屋币)
|
||||
* */
|
||||
*/
|
||||
Long queryTotalAccount(Long userId, Long bookId, Date startTime, Date endTime);
|
||||
|
||||
|
||||
/**
|
||||
* 保存月收入统计
|
||||
*
|
||||
* @param authorIncome 收入详情
|
||||
* */
|
||||
*/
|
||||
void saveAuthorIncomeSta(AuthorIncome authorIncome);
|
||||
|
||||
/**
|
||||
* 查询收入日统计是否入库
|
||||
*
|
||||
* @param authorId 作家ID
|
||||
* @param bookId 作品ID
|
||||
* @param date 收入时间
|
||||
@ -105,6 +116,7 @@ public interface AuthorService {
|
||||
|
||||
/**
|
||||
* 作家日收入统计数据分页列表查询
|
||||
*
|
||||
* @param userId
|
||||
* @param page 页码
|
||||
* @param pageSize 分页大小
|
||||
@ -113,16 +125,18 @@ public interface AuthorService {
|
||||
* @param endTime 结束时间
|
||||
* @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 pageSize 分页大小
|
||||
* @param userId 用户ID
|
||||
* @param bookId 小说ID
|
||||
* @return 分页数据
|
||||
* */
|
||||
*/
|
||||
PageBean<AuthorIncome> listIncomeMonthByPage(int page, int pageSize, Long userId, Long bookId);
|
||||
}
|
||||
|
@ -1,23 +1,15 @@
|
||||
package com.java2nb.novel.service.impl;
|
||||
|
||||
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.AuthorIncome;
|
||||
import com.java2nb.novel.entity.AuthorIncomeDetail;
|
||||
import com.java2nb.novel.entity.FriendLink;
|
||||
import com.java2nb.novel.mapper.*;
|
||||
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 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.transaction.annotation.Transactional;
|
||||
|
||||
@ -25,10 +17,6 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
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.select.SelectDSL.select;
|
||||
|
||||
@ -140,6 +128,17 @@ public class AuthorServiceImpl implements AuthorService {
|
||||
.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
|
||||
public Long queryTotalAccount(Long userId, Long bookId, Date startTime, Date endTime) {
|
||||
|
||||
@ -172,7 +171,8 @@ public class AuthorServiceImpl implements AuthorService {
|
||||
|
||||
|
||||
@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);
|
||||
return PageBuilder.build(authorIncomeDetailMapper.selectMany(
|
||||
select(AuthorIncomeDetailDynamicSqlSupport.incomeDate, AuthorIncomeDetailDynamicSqlSupport.incomeAccount
|
||||
|
Loading…
x
Reference in New Issue
Block a user