mirror of
https://github.com/201206030/novel-plus.git
synced 2025-04-27 01:30:51 +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.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,7 +66,6 @@ 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);
|
||||||
|
|
||||||
@ -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);
|
||||||
|
@ -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,43 +16,49 @@ 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:未入库
|
||||||
@ -62,20 +68,23 @@ 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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询时间段内总订阅额
|
* 查询时间段内总订阅额
|
||||||
*
|
*
|
||||||
@ -84,18 +93,20 @@ public interface AuthorService {
|
|||||||
* @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 收入时间
|
||||||
@ -105,6 +116,7 @@ public interface AuthorService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 作家日收入统计数据分页列表查询
|
* 作家日收入统计数据分页列表查询
|
||||||
|
*
|
||||||
* @param userId
|
* @param userId
|
||||||
* @param page 页码
|
* @param page 页码
|
||||||
* @param pageSize 分页大小
|
* @param pageSize 分页大小
|
||||||
@ -113,16 +125,18 @@ public interface AuthorService {
|
|||||||
* @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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
@ -140,6 +128,17 @@ public class AuthorServiceImpl implements AuthorService {
|
|||||||
.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) {
|
||||||
|
|
||||||
@ -172,7 +171,8 @@ public class AuthorServiceImpl implements AuthorService {
|
|||||||
|
|
||||||
|
|
||||||
@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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user