Browse Source

【feat】【v3】
1.删除冗余代码
2.修改项目结构

ChenYL 10 tháng trước cách đây
mục cha
commit
778703c4f2
100 tập tin đã thay đổi với 425 bổ sung4036 xóa
  1. 12 0
      doc/sql/update-v3.sql
  2. 0 23
      doc/技术文档.md
  3. 0 57
      src/main/java/com/punchsettle/server/atomic/entity/ItemConsumeWinHistory.java
  4. 0 55
      src/main/java/com/punchsettle/server/atomic/entity/LotteryScratchRecord.java
  5. 0 95
      src/main/java/com/punchsettle/server/atomic/entity/PunchIn.java
  6. 0 97
      src/main/java/com/punchsettle/server/atomic/entity/PunchInRecord.java
  7. 0 38
      src/main/java/com/punchsettle/server/atomic/entity/PunchInRecordSettlementRela.java
  8. 0 81
      src/main/java/com/punchsettle/server/atomic/entity/PunchInSettlement.java
  9. 0 67
      src/main/java/com/punchsettle/server/atomic/entity/SettlementNotifyTask.java
  10. 0 63
      src/main/java/com/punchsettle/server/atomic/entity/SettlementTask.java
  11. 0 51
      src/main/java/com/punchsettle/server/atomic/entity/UserClaimRewardRecord.java
  12. 0 14
      src/main/java/com/punchsettle/server/atomic/mapper/ItemConsumeWinHistoryMapper.java
  13. 0 14
      src/main/java/com/punchsettle/server/atomic/mapper/LotteryScratchRecordMapper.java
  14. 0 14
      src/main/java/com/punchsettle/server/atomic/mapper/PunchInMapper.java
  15. 0 16
      src/main/java/com/punchsettle/server/atomic/mapper/PunchInRecordMapper.java
  16. 0 14
      src/main/java/com/punchsettle/server/atomic/mapper/PunchInRecordSettlementRelaMapper.java
  17. 0 15
      src/main/java/com/punchsettle/server/atomic/mapper/PunchInSettlementMapper.java
  18. 0 14
      src/main/java/com/punchsettle/server/atomic/mapper/SettlementNotifyTaskMapper.java
  19. 0 14
      src/main/java/com/punchsettle/server/atomic/mapper/SettlementTaskMapper.java
  20. 0 14
      src/main/java/com/punchsettle/server/atomic/mapper/UserClaimRewardRecordMapper.java
  21. 1 1
      src/main/java/com/punchsettle/server/atomic/service/IAccountService.java
  22. 0 10
      src/main/java/com/punchsettle/server/atomic/service/IItemConsumeWinHistoryService.java
  23. 0 41
      src/main/java/com/punchsettle/server/atomic/service/ILotteryScratchRecordService.java
  24. 0 58
      src/main/java/com/punchsettle/server/atomic/service/IPunchInRecordService.java
  25. 0 20
      src/main/java/com/punchsettle/server/atomic/service/IPunchInRecordSettlementRelaService.java
  26. 0 47
      src/main/java/com/punchsettle/server/atomic/service/IPunchInService.java
  27. 0 28
      src/main/java/com/punchsettle/server/atomic/service/IPunchInSettlementService.java
  28. 0 24
      src/main/java/com/punchsettle/server/atomic/service/ISettlementTaskService.java
  29. 1 1
      src/main/java/com/punchsettle/server/atomic/service/IStatPiTaskMonthService.java
  30. 1 1
      src/main/java/com/punchsettle/server/atomic/service/IStatPiTaskWeekService.java
  31. 1 1
      src/main/java/com/punchsettle/server/atomic/service/IStatPiTaskYearService.java
  32. 0 28
      src/main/java/com/punchsettle/server/atomic/service/IUserClaimRewardRecordService.java
  33. 0 7
      src/main/java/com/punchsettle/server/atomic/service/PunchInRecordService.java
  34. 1 2
      src/main/java/com/punchsettle/server/atomic/service/impl/AccountServiceImpl.java
  35. 0 14
      src/main/java/com/punchsettle/server/atomic/service/impl/ItemConsumeWinHistoryServiceImpl.java
  36. 0 71
      src/main/java/com/punchsettle/server/atomic/service/impl/LotteryScratchRecordServiceImpl.java
  37. 0 97
      src/main/java/com/punchsettle/server/atomic/service/impl/PunchInRecordServiceImpl.java
  38. 0 30
      src/main/java/com/punchsettle/server/atomic/service/impl/PunchInRecordSettlementRelaServiceImpl.java
  39. 0 78
      src/main/java/com/punchsettle/server/atomic/service/impl/PunchInServiceImpl.java
  40. 0 52
      src/main/java/com/punchsettle/server/atomic/service/impl/PunchInSettlementServiceImpl.java
  41. 0 34
      src/main/java/com/punchsettle/server/atomic/service/impl/SettlementTaskServiceImpl.java
  42. 1 1
      src/main/java/com/punchsettle/server/atomic/service/impl/StatPiTaskMonthServiceImpl.java
  43. 1 1
      src/main/java/com/punchsettle/server/atomic/service/impl/StatPiTaskYearServiceImpl.java
  44. 0 51
      src/main/java/com/punchsettle/server/atomic/service/impl/UserClaimRewardRecordServiceImpl.java
  45. 0 35
      src/main/java/com/punchsettle/server/constant/PunchInCategoryEnum.java
  46. 0 23
      src/main/java/com/punchsettle/server/constant/PunchInMethodMultiEnum.java
  47. 0 34
      src/main/java/com/punchsettle/server/constant/PunchInRuleEnum.java
  48. 0 36
      src/main/java/com/punchsettle/server/constant/PunchInSettleTypeEnum.java
  49. 0 35
      src/main/java/com/punchsettle/server/constant/PunchInStatusV1Enum.java
  50. 0 34
      src/main/java/com/punchsettle/server/constant/PunchInStatusViewEnum.java
  51. 0 35
      src/main/java/com/punchsettle/server/constant/ScratchActionTypeEnum.java
  52. 0 23
      src/main/java/com/punchsettle/server/constant/SettleStatusEnum.java
  53. 25 26
      src/main/java/com/punchsettle/server/core/interceptor/AuthInterceptor.java
  54. 1 1
      src/main/java/com/punchsettle/server/pojo/account/AccountQuery.java
  55. 0 50
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInCalendarDataVO.java
  56. 0 34
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInDataQuery.java
  57. 0 48
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInDataVO.java
  58. 0 32
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInQuery.java
  59. 0 47
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordDataVO.java
  60. 0 34
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordQuery.java
  61. 0 39
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordRequest.java
  62. 0 33
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordVO.java
  63. 0 97
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRequest.java
  64. 0 70
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInVO.java
  65. 0 91
      src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInWithRecordVO.java
  66. 0 18
      src/main/java/com/punchsettle/server/pojo/reward/ClaimRewardRecordQuery.java
  67. 0 40
      src/main/java/com/punchsettle/server/pojo/reward/ClaimRewardRecordVO.java
  68. 0 24
      src/main/java/com/punchsettle/server/pojo/reward/ClaimRewardRequest.java
  69. 0 31
      src/main/java/com/punchsettle/server/pojo/scratch/ScratchQuery.java
  70. 0 58
      src/main/java/com/punchsettle/server/pojo/scratch/ScratchRequest.java
  71. 0 49
      src/main/java/com/punchsettle/server/pojo/scratch/ScratchVO.java
  72. 0 56
      src/main/java/com/punchsettle/server/pojo/settle/SettleInfoDto.java
  73. 0 22
      src/main/java/com/punchsettle/server/pojo/settle/SettleQuery.java
  74. 0 43
      src/main/java/com/punchsettle/server/pojo/settle/SettleRequest.java
  75. 0 41
      src/main/java/com/punchsettle/server/pojo/settle/SettleResultDto.java
  76. 0 45
      src/main/java/com/punchsettle/server/pojo/settle/SettleVO.java
  77. 1 1
      src/main/java/com/punchsettle/server/pojo/stat/StatPiTaskQuery.java
  78. 1 1
      src/main/java/com/punchsettle/server/pojo/stat/StatPiTaskWeekQuery.java
  79. 6 6
      src/main/java/com/punchsettle/server/service/controller/AccountController.java
  80. 0 6
      src/main/java/com/punchsettle/server/service/controller/HealthController.java
  81. 11 21
      src/main/java/com/punchsettle/server/service/controller/PunchInController.java
  82. 0 55
      src/main/java/com/punchsettle/server/service/controller/ScratchController.java
  83. 5 25
      src/main/java/com/punchsettle/server/service/controller/SettleController.java
  84. 0 8
      src/main/java/com/punchsettle/server/service/manager/ICalendarManager.java
  85. 0 16
      src/main/java/com/punchsettle/server/service/manager/IPunchInManager.java
  86. 0 32
      src/main/java/com/punchsettle/server/service/manager/IScratchManager.java
  87. 41 0
      src/main/java/com/punchsettle/server/service/manager/ISettleCoreManager.java
  88. 6 29
      src/main/java/com/punchsettle/server/service/manager/ISettleManager.java
  89. 0 59
      src/main/java/com/punchsettle/server/service/manager/ISettleManagerV1.java
  90. 0 15
      src/main/java/com/punchsettle/server/service/manager/ITaskManager.java
  91. 1 1
      src/main/java/com/punchsettle/server/service/manager/impl/AccountManagerImpl.java
  92. 0 13
      src/main/java/com/punchsettle/server/service/manager/impl/CalendarManagerImpl.java
  93. 5 111
      src/main/java/com/punchsettle/server/service/manager/impl/PunchInManagerImpl.java
  94. 3 3
      src/main/java/com/punchsettle/server/service/manager/impl/PunchInSettleManagerImpl.java
  95. 1 1
      src/main/java/com/punchsettle/server/service/manager/impl/RewardManagerImpl.java
  96. 0 137
      src/main/java/com/punchsettle/server/service/manager/impl/ScratchManagerImpl.java
  97. 280 0
      src/main/java/com/punchsettle/server/service/manager/impl/SettleCoreManagerImpl.java
  98. 18 250
      src/main/java/com/punchsettle/server/service/manager/impl/SettleManagerImpl.java
  99. 0 507
      src/main/java/com/punchsettle/server/service/manager/impl/SettleManagerV1Impl.java
  100. 1 1
      src/main/java/com/punchsettle/server/service/manager/impl/StatPiTaskWeekServiceImpl.java

+ 12 - 0
doc/sql/update-v3.sql

@@ -720,3 +720,15 @@ update punch_settle.sys_dict_item set item_code = 'GTE' where id = 12;
 update punch_settle.sys_dict_item set item_code = 'LET' where id = 13;
 
 ALTER TABLE punch_settle.pi_task CHANGE task_points_status task_points_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '是否启用任务积分计算(ENABLED-启用,DISABLED-关闭)' AFTER auto_status;
+
+
+DROP TABLE IF EXISTS item_consume_win_history;
+DROP TABLE IF EXISTS lottery_scratch_record;
+DROP TABLE IF EXISTS punch_in;
+DROP TABLE IF EXISTS punch_in_record;
+DROP TABLE IF EXISTS punch_in_record_settlement_rela;
+DROP TABLE IF EXISTS punch_in_settlement;
+DROP TABLE IF EXISTS settlement_notify_task;
+DROP TABLE IF EXISTS settlement_task;
+DROP TABLE IF EXISTS user_claim_reward_record;
+

+ 0 - 23
doc/技术文档.md

@@ -932,29 +932,6 @@ ui设计工具:即时设计
 
 
 
-### 物品消费与中奖记录
-
-表名:item_consume_win_history
-
-| 字段             | 类型          | 描述                                                         | 索引     |
-| ---------------- | ------------- | ------------------------------------------------------------ | -------- |
-| id               | bigint        | 主键                                                         | 主键索引 |
-| user_id          | bigint        | 用户ID                                                       | 普通索引 |
-| action           | varchar(30)   | 动作(消费-CONSUME,中奖-WIN,撤销消费-REVERSE_CONSUME,撤销中奖-REVERSE_WIN) |          |
-| source           | varchar(100)  | 来源                                                         |          |
-| category         | varchar(100)  | 种类                                                         |          |
-| amount           | decimal(10,2) | 金额(元)                                                   |          |
-| created_by       | bigint        | 创建人                                                       |          |
-| creation_time    | timestamp     | 创建时间                                                     | 普通索引 |
-| last_updated_by  | bigint        | 最后更新人                                                   |          |
-| last_update_time | timestamp     | 最后更新时间                                                 |          |
-| version          | bigint        | 版本号                                                       |          |
-| delete_flag      | tinyint       | 逻辑删除标志(0-未删除,1-已删除)                           |          |
-
-
-
-
-
 ### 系统字典表
 
 表名:sys_dict

+ 0 - 57
src/main/java/com/punchsettle/server/atomic/entity/ItemConsumeWinHistory.java

@@ -1,57 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.math.BigDecimal;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 物品消费与中奖记录
- * @date 2025/04/08 09:49
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "item_consume_win_history")
-public class ItemConsumeWinHistory extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 7263000861735955244L;
-
-    /**
-     * 用户ID
-     */
-    @Column(name = "user_id")
-    private Long userId;
-
-    /**
-     * 动作(消费-CONSUME,中奖-WIN,撤销消费-REVERSE_CONSUME,撤销中奖-REVERSE_WIN)
-     */
-    @Column(name = "action")
-    private String action;
-
-    /**
-     * 来源
-     */
-    @Column(name = "source")
-    private String source;
-
-    /**
-     * 种类
-     */
-    @Column(name = "category")
-    private String category;
-
-    /**
-     * 金额(元)
-     */
-    @Column(name = "amount")
-    private BigDecimal amount;
-}

+ 0 - 55
src/main/java/com/punchsettle/server/atomic/entity/LotteryScratchRecord.java

@@ -1,55 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.math.BigDecimal;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-import com.punchsettle.server.common.typehandler.EnumValueTypeHandler;
-import com.punchsettle.server.constant.ScratchActionTypeEnum;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import tk.mybatis.mapper.annotation.ColumnType;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 彩票刮刮乐记录
- * @date 2024/12/12 18:56
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "lottery_scratch_record")
-public class LotteryScratchRecord extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = -3521710481088966503L;
-
-    /**
-     * 动作类型(0-投入/购买,1-中奖,2-撤销投入,3-撤销中奖)
-     */
-    @ColumnType(typeHandler = EnumValueTypeHandler.class)
-    @Column(name = "action_type")
-    private ScratchActionTypeEnum actionType;
-
-    /**
-     * 来源
-     */
-    @Column(name = "source")
-    private String source;
-
-    /**
-     * 种类
-     */
-    @Column(name = "category")
-    private String category;
-
-    /**
-     * 金额(元)
-     */
-    @Column(name = "amount")
-    private BigDecimal amount;
-}

+ 0 - 95
src/main/java/com/punchsettle/server/atomic/entity/PunchIn.java

@@ -1,95 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.time.LocalTime;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-import com.punchsettle.server.common.typehandler.EnumValueTypeHandler;
-import com.punchsettle.server.constant.PunchInCategoryEnum;
-import com.punchsettle.server.constant.PunchInRuleEnum;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import tk.mybatis.mapper.annotation.ColumnType;
-
-/**
- * @description 打卡任务表 实体
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "punch_in")
-public class PunchIn extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = -7816008596669087324L;
-
-    /**
-     * 任务名称
-     */
-    @Column(name = "task_name")
-    private String taskName;
-
-    /**
-     * 奖励倍数
-     */
-    @Column(name = "reward_num")
-    private Integer rewardNum;
-
-    /**
-     * 打卡类型(0-单次打卡,1-计数、2计时)
-     * @see PunchInCategoryEnum
-     */
-    @ColumnType(typeHandler = EnumValueTypeHandler.class)
-    @Column(name = "category")
-    private PunchInCategoryEnum category;
-
-    /**
-     * 比较规则(0-大于,1-大于等于,2-小于,3-小于等于)
-     * @see PunchInRuleEnum
-     */
-    @ColumnType(typeHandler = EnumValueTypeHandler.class)
-    @Column(name = "rule")
-    private PunchInRuleEnum rule;
-
-    /**
-     * 次数记录
-     */
-    @Column(name = "count_track")
-    private Integer countTrack;
-
-    /**
-     * 时间记录
-     */
-    @Column(name = "time_track")
-    private LocalTime timeTrack;
-
-    /**
-     * 任务描述
-     */
-    @Column(name = "description")
-    private String description;
-
-    /**
-     * 是否启用周末双倍标志(0-不是,1-是)
-     */
-    @Column(name = "weekend_double_flag")
-    private Boolean weekendDoubleFlag;
-
-    /**
-     * 是否启用全勤奖励标志(0-不是,1-是)
-     */
-    @Column(name = "full_attendance_flag")
-    private Boolean fullAttendanceFlag;
-
-    /**
-     * 是否归档标志(0-不是,1-是)
-     */
-    @Column(name = "archive_flag")
-    private Boolean archiveFlag;
-}

+ 0 - 97
src/main/java/com/punchsettle/server/atomic/entity/PunchInRecord.java

@@ -1,97 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.time.LocalTime;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-import com.punchsettle.server.common.typehandler.EnumValueTypeHandler;
-import com.punchsettle.server.constant.PunchInCategoryEnum;
-import com.punchsettle.server.constant.PunchInRuleEnum;
-import com.punchsettle.server.constant.PunchInStatusV1Enum;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import tk.mybatis.mapper.annotation.ColumnType;
-
-/**
- * @description 打卡任务记录表 实体
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "punch_in_record")
-public class PunchInRecord extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = -7093764607676755235L;
-
-    /**
-     * 打卡任务表主键
-     */
-    @Column(name = "punch_in_id")
-    private Long punchInId;
-
-    /**
-     * 打卡日期
-     */
-    @Column(name = "punch_in_date")
-    private String punchInDate;
-
-    /**
-     * 次数记录
-     */
-    @Column(name = "count_track")
-    private Integer countTrack;
-
-    /**
-     * 时间记录
-     */
-    @Column(name = "time_track")
-    private LocalTime timeTrack;
-
-    /**
-     * 打卡状态(0-进行中,1-完成,2-未完成) ,结算后修改状态,单次打卡除外
-     */
-    @ColumnType(typeHandler = EnumValueTypeHandler.class)
-    @Column(name = "punch_in_status")
-    private PunchInStatusV1Enum punchInStatus;
-
-    /**
-     * 结算时的结算奖励数
-     */
-    @Column(name = "settle_reward_num")
-    private Integer settleRewardNum;
-
-    /**
-     * 结算时的打卡类型(0-单次打卡,1-计数、2计时)
-     * @see PunchInCategoryEnum
-     */
-    @ColumnType(typeHandler = EnumValueTypeHandler.class)
-    @Column(name = "settle_category")
-    private PunchInCategoryEnum settleCategory;
-
-    /**
-     * 结算时的比较规则(0-大于,1-大于等于,2-小于,3-小于等于)
-     * @see PunchInRuleEnum
-     */
-    @ColumnType(typeHandler = EnumValueTypeHandler.class)
-    @Column(name = "settle_rule")
-    private PunchInRuleEnum settleRule;
-
-    /**
-     * 结算时的次数记录
-     */
-    @Column(name = "settle_count_track")
-    private Integer settleCountTrack;
-
-    /**
-     * 结算时的时间记录
-     */
-    @Column(name = "settle_time_track")
-    private LocalTime settleTimeTrack;
-}

+ 0 - 38
src/main/java/com/punchsettle/server/atomic/entity/PunchInRecordSettlementRela.java

@@ -1,38 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @description 打卡任务记录与结算关联表 实体
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "punch_in_record_settlement_rela")
-public class PunchInRecordSettlementRela extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 7950526992192733109L;
-
-    /**
-     * 打卡任务记录表ID
-     */
-    @Column(name = "record_id")
-    private Long recordId;
-
-    /**
-     * 打卡任务结算表ID
-     */
-    @Column(name = "settlement_id")
-    private Long settlementId;
-}

+ 0 - 81
src/main/java/com/punchsettle/server/atomic/entity/PunchInSettlement.java

@@ -1,81 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @description 打卡任务结算表 实体
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "punch_in_settlement")
-public class PunchInSettlement extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = -3583266996949699066L;
-
-    /**
-     * 用户表主键
-     */
-    @Column(name = "user_id")
-    private Long userId;
-
-    /**
-     * 结算奖励数
-     */
-    @Column(name = "settle_reward_num")
-    private Integer settleRewardNum;
-
-    /**
-     * 结算前用户拥有的奖励数
-     */
-    @Column(name = "before_settle_reward_num")
-    private Integer beforeSettleRewardNum;
-
-    /**
-     * 结算后用户拥有的奖励数
-     */
-    @Column(name = "after_settle_reward_num")
-    private Integer afterSettleRewardNum;
-
-    /**
-     * 结算任务表id
-     */
-    @Column(name = "settlement_task_id")
-    private Long settlementTaskId;
-
-    /**
-     * 结算时间
-     */
-    @Column(name = "settlement_time")
-    private Timestamp settlementTime;
-
-    /**
-     * 通知表ID
-     */
-    @Column(name = "notify_id")
-    private Long notifyId;
-
-    /**
-     * 结算通知状态(fail-通知失败,success-成功通知,pending-待通知)
-     */
-    @Column(name = "notify_status")
-    private String notifyStatus;
-
-    /**
-     * 结算通知时间
-     */
-    @Column(name = "notify_time")
-    private Timestamp notifyTime;
-}

+ 0 - 67
src/main/java/com/punchsettle/server/atomic/entity/SettlementNotifyTask.java

@@ -1,67 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 通知定时任务执行记录表
- * @author tyuio
- */
-/**
- * @description 通知定时任务执行记录表 实体
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "settlement_notify_task")
-public class SettlementNotifyTask extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = -5529226488225591121L;
-
-    /**
-     * 任务开始时间
-     */
-    @Column(name = "start_time")
-    private Timestamp startTime;
-
-    /**
-     * 任务结束时间
-     */
-    @Column(name = "end_time")
-    private Timestamp endTime;
-
-    /**
-     * 任务状态(success-成功,fail-失败,processing-处理中)
-     */
-    @Column(name = "task_status")
-    private String taskStatus;
-
-    /**
-     * 通知数量
-     */
-    @Column(name = "notify_num")
-    private Integer notifyNum;
-
-    /**
-     * 通知成功数量
-     */
-    @Column(name = "notify_success_num")
-    private Integer notifySuccessNum;
-
-    /**
-     * 通知失败数量
-     */
-    @Column(name = "notify_fail_num")
-    private Integer notifyFailNum;
-}

+ 0 - 63
src/main/java/com/punchsettle/server/atomic/entity/SettlementTask.java

@@ -1,63 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @description 奖励结算定时任务执行记录表 实体
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "settlement_task")
-public class SettlementTask extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 4359906154365259984L;
-
-    /**
-     * 结算日期
-     */
-    @Column(name = "settle_date")
-    private String settleDate;
-
-    /**
-     * 任务开始时间
-     */
-    @Column(name = "start_time")
-    private Timestamp startTime;
-
-    /**
-     * 任务结束时间
-     */
-    @Column(name = "end_time")
-    private Timestamp endTime;
-
-    /**
-     * 待处理结算数量
-     */
-    @Column(name = "processed_num")
-    private Integer processedNum;
-
-    /**
-     * 处理已结算数量
-     */
-    @Column(name = "processed_settle_num")
-    private Integer processedSettleNum;
-
-    /**
-     * 处理没结算数量
-     */
-    @Column(name = "processed_unsettle_num")
-    private Integer processedUnsettleNum;
-}

+ 0 - 51
src/main/java/com/punchsettle/server/atomic/entity/UserClaimRewardRecord.java

@@ -1,51 +0,0 @@
-package com.punchsettle.server.atomic.entity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-import com.punchsettle.server.common.pojo.BaseEntity;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 领取奖励记录表
- * @date 2024/11/25 20:44
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(name = "user_claim_reward_record")
-public class UserClaimRewardRecord extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 3347775963495102677L;
-
-    /**
-     * 本次领取奖励数
-     */
-    @Column(name = "claim_reward_num")
-    private Integer claimRewardNum;
-
-    /**
-     * 领取奖励时间
-     */
-    @Column(name = "claim_reward_time")
-    private Timestamp claimRewardTime;
-
-    /**
-     * 领取前用户拥有的奖励数
-     */
-    @Column(name = "before_claim_reward_num")
-    private Integer beforeClaimRewardNum;
-
-    /**
-     * 领取后用户拥有的奖励数
-     */
-    @Column(name = "after_claim_reward_num")
-    private Integer afterClaimRewardNum;
-}

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/mapper/ItemConsumeWinHistoryMapper.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.ItemConsumeWinHistory;
-import tk.mybatis.mapper.common.Mapper;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 物品消费与中奖记录 Mapper
- * @date 2025/04/08 10:30
- */
-public interface ItemConsumeWinHistoryMapper extends Mapper<ItemConsumeWinHistory> {
-
-}

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/mapper/LotteryScratchRecordMapper.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.LotteryScratchRecord;
-
-import tk.mybatis.mapper.common.Mapper;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 彩票刮刮乐记录 Mapper
- * @date 2024/12/12 19:06
- */
-public interface LotteryScratchRecordMapper extends Mapper<LotteryScratchRecord> {
-}

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/mapper/PunchInMapper.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.PunchIn;
-
-import tk.mybatis.mapper.common.Mapper;
-
-/**
- * @description 打卡任务表 mapper
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-public interface PunchInMapper extends Mapper<PunchIn> {
-}

+ 0 - 16
src/main/java/com/punchsettle/server/atomic/mapper/PunchInRecordMapper.java

@@ -1,16 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.PunchInRecord;
-
-import tk.mybatis.mapper.additional.update.batch.BatchUpdateSelectiveMapper;
-import tk.mybatis.mapper.common.Mapper;
-import tk.mybatis.mapper.common.special.InsertListMapper;
-
-/**
- * @description 打卡任务记录表 mapper
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-public interface PunchInRecordMapper extends Mapper<PunchInRecord>, InsertListMapper<PunchInRecord>, BatchUpdateSelectiveMapper<PunchInRecord> {
-}

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/mapper/PunchInRecordSettlementRelaMapper.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.PunchInRecordSettlementRela;
-
-import tk.mybatis.mapper.common.special.InsertListMapper;
-
-/**
- * @description 打卡任务记录与结算关联表 mapper
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-public interface PunchInRecordSettlementRelaMapper extends InsertListMapper<PunchInRecordSettlementRela> {
-}

+ 0 - 15
src/main/java/com/punchsettle/server/atomic/mapper/PunchInSettlementMapper.java

@@ -1,15 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.PunchInSettlement;
-
-import tk.mybatis.mapper.common.Mapper;
-import tk.mybatis.mapper.common.special.InsertListMapper;
-
-/**
- * @description 打卡任务结算表 mapper
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-public interface PunchInSettlementMapper extends Mapper<PunchInSettlement>, InsertListMapper<PunchInSettlement> {
-}

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/mapper/SettlementNotifyTaskMapper.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.SettlementNotifyTask;
-
-import tk.mybatis.mapper.common.Mapper;
-
-/**
- * @description 通知定时任务执行记录表 mapper
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-public interface SettlementNotifyTaskMapper extends Mapper<SettlementNotifyTask> {
-}

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/mapper/SettlementTaskMapper.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.SettlementTask;
-
-import tk.mybatis.mapper.common.Mapper;
-
-/**
- * @description 奖励结算定时任务执行记录表 mapper
- * @version 1.0.0
- * @date 2024/11/25 10:57
- * @author tyuio
- */
-public interface SettlementTaskMapper extends Mapper<SettlementTask> {
-}

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/mapper/UserClaimRewardRecordMapper.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.mapper;
-
-import com.punchsettle.server.atomic.entity.UserClaimRewardRecord;
-
-import tk.mybatis.mapper.common.Mapper;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 领取奖励记录表
- * @date 2024/11/25 20:49
- */
-public interface UserClaimRewardRecordMapper extends Mapper<UserClaimRewardRecord> {
-}

+ 1 - 1
src/main/java/com/punchsettle/server/atomic/service/IAccountService.java

@@ -3,7 +3,7 @@ package com.punchsettle.server.atomic.service;
 import java.util.List;
 
 import com.punchsettle.server.atomic.entity.Account;
-import com.punchsettle.server.pojo.punchIn.AccountQuery;
+import com.punchsettle.server.pojo.account.AccountQuery;
 
 /**
  * @author tyuio

+ 0 - 10
src/main/java/com/punchsettle/server/atomic/service/IItemConsumeWinHistoryService.java

@@ -1,10 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @date 2025/4/8 10:36
- * @description 物品消费与中奖记录 service
- */
-public interface IItemConsumeWinHistoryService {
-}

+ 0 - 41
src/main/java/com/punchsettle/server/atomic/service/ILotteryScratchRecordService.java

@@ -1,41 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.LotteryScratchRecord;
-import com.punchsettle.server.pojo.scratch.ScratchQuery;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 彩票刮刮乐记录 service
- * @date 2024/12/12 19:08
- */
-public interface ILotteryScratchRecordService {
-
-    /**
-     * 根据ID更新
-     * @param record
-     */
-    void insert(LotteryScratchRecord record);
-
-    /**
-     * 根据ID更新
-     * @param record
-     */
-    void update(LotteryScratchRecord record);
-
-    /**
-     * 根据ID获取记录
-     * @param id
-     * @return
-     */
-    LotteryScratchRecord selectById(Long id);
-
-    /**
-     * 按条件查询
-     * @param query
-     * @return
-     */
-    List<LotteryScratchRecord> listByCondition(ScratchQuery query);
-}

+ 0 - 58
src/main/java/com/punchsettle/server/atomic/service/IPunchInRecordService.java

@@ -1,58 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.PunchInRecord;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordQuery;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务记录表 service
- * @date 2024/11/25 15:33
- */
-public interface IPunchInRecordService {
-
-    /**
-     * 新增打卡记录
-     * @param record
-     */
-    void insert(PunchInRecord record);
-
-    /**
-     * 批量新增
-     * @param records
-     */
-    void batchInsert(List<PunchInRecord> records);
-
-    /**
-     * 更新打卡记录
-     * @param record
-     */
-    void update(PunchInRecord record);
-
-    /**
-     * 批量更新
-     * @param records
-     */
-    void batchUpdate(List<PunchInRecord> records);
-
-    /**
-     * 根据查询条件查询打卡记录
-     * @param query
-     * @return
-     */
-    PunchInRecord selectOneByCondition(PunchInRecordQuery query);
-
-    /**
-     * 根据查询条件查询打卡记录
-     * @param query
-     * @return
-     */
-    List<PunchInRecord> listByCondition(PunchInRecordQuery query);
-
-    /**
-     * 根据ID删除
-     */
-    void delete(Long id);
-}

+ 0 - 20
src/main/java/com/punchsettle/server/atomic/service/IPunchInRecordSettlementRelaService.java

@@ -1,20 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.PunchInRecordSettlementRela;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务记录与结算关联表
- * @date 2024/11/26 12:53
- */
-public interface IPunchInRecordSettlementRelaService {
-
-    /**
-     * 批量新增
-     * @param punchInRecordSettlementRelas
-     */
-    void batchInsert(List<PunchInRecordSettlementRela> punchInRecordSettlementRelas);
-}

+ 0 - 47
src/main/java/com/punchsettle/server/atomic/service/IPunchInService.java

@@ -1,47 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.PunchIn;
-import com.punchsettle.server.pojo.punchinV1.PunchInQuery;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡结算任务表 service
- * @date 2024/11/25 15:04
- */
-public interface IPunchInService {
-
-    /**
-     * 根据主键查询打卡任务
-     * @param id
-     * @return
-     */
-    PunchIn getById(Long id);
-
-    /**
-     * 条件查询打卡任务
-     * @param query 查询条件
-     * @return
-     */
-    List<PunchIn> listByCondition(PunchInQuery query);
-
-    /**
-     * 新增或更新打卡结算任务
-     * @param punchIn
-     */
-    void insert(PunchIn punchIn);
-
-    /**
-     * 根据主键删除打卡结算任务
-     * @param punchInId
-     */
-    void delete(Long punchInId);
-
-    /**
-     * 更新打卡任务
-     * @param punchIn
-     */
-    void update(PunchIn punchIn);
-}

+ 0 - 28
src/main/java/com/punchsettle/server/atomic/service/IPunchInSettlementService.java

@@ -1,28 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.PunchInSettlement;
-import com.punchsettle.server.pojo.settle.SettleQuery;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务结算表
- * @date 2024/11/26 12:35
- */
-public interface IPunchInSettlementService {
-
-    /**
-     * 批量新增
-     * @param punchInSettlements
-     */
-    void batchInsert(List<PunchInSettlement> punchInSettlements);
-
-    /**
-     * 按条件查询
-     * @param query
-     * @return
-     */
-    List<PunchInSettlement> listByCondition(SettleQuery query);
-}

+ 0 - 24
src/main/java/com/punchsettle/server/atomic/service/ISettlementTaskService.java

@@ -1,24 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-import com.punchsettle.server.atomic.entity.SettlementTask;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 奖励结算定时任务执行记录表
- * @date 2024/11/26 11:53
- */
-public interface ISettlementTaskService {
-
-    /**
-     * 新增
-     * @param task
-     */
-    void insert(SettlementTask task);
-
-    /**
-     * 更新
-     * @param task
-     */
-    void update(SettlementTask task);
-}

+ 1 - 1
src/main/java/com/punchsettle/server/atomic/service/IStatPiTaskMonthService.java

@@ -2,7 +2,7 @@ package com.punchsettle.server.atomic.service;
 
 import com.punchsettle.server.atomic.entity.StatPiTaskMonth;
 import com.punchsettle.server.pojo.punchIn.PiStatsMonthQuery;
-import com.punchsettle.server.pojo.punchIn.StatPiTaskQuery;
+import com.punchsettle.server.pojo.stat.StatPiTaskQuery;
 
 import java.util.List;
 

+ 1 - 1
src/main/java/com/punchsettle/server/atomic/service/IStatPiTaskWeekService.java

@@ -1,7 +1,7 @@
 package com.punchsettle.server.atomic.service;
 
 import com.punchsettle.server.atomic.entity.StatPiTaskWeek;
-import com.punchsettle.server.pojo.punchIn.StatPiTaskWeekQuery;
+import com.punchsettle.server.pojo.stat.StatPiTaskWeekQuery;
 
 import java.util.List;
 

+ 1 - 1
src/main/java/com/punchsettle/server/atomic/service/IStatPiTaskYearService.java

@@ -1,7 +1,7 @@
 package com.punchsettle.server.atomic.service;
 
 import com.punchsettle.server.atomic.entity.StatPiTaskYear;
-import com.punchsettle.server.pojo.punchIn.StatPiTaskQuery;
+import com.punchsettle.server.pojo.stat.StatPiTaskQuery;
 
 /**
  * @author tyuio

+ 0 - 28
src/main/java/com/punchsettle/server/atomic/service/IUserClaimRewardRecordService.java

@@ -1,28 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.UserClaimRewardRecord;
-import com.punchsettle.server.pojo.reward.ClaimRewardRecordQuery;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 领取奖励记录表 service
- * @date 2024/11/25 22:13
- */
-public interface IUserClaimRewardRecordService {
-
-    /**
-     * 新增领取奖励记录
-     * @param record
-     */
-    void insert(UserClaimRewardRecord record);
-
-    /**
-     * 根据条件查询领取奖励记录
-     * @param query
-     * @return
-     */
-    List<UserClaimRewardRecord> listByCondition(ClaimRewardRecordQuery query);
-}

+ 0 - 7
src/main/java/com/punchsettle/server/atomic/service/PunchInRecordService.java

@@ -1,7 +0,0 @@
-package com.punchsettle.server.atomic.service;
-
-/**
- * 打卡任务记录表 service
- */
-public interface PunchInRecordService {
-}

+ 1 - 2
src/main/java/com/punchsettle/server/atomic/service/impl/AccountServiceImpl.java

@@ -4,8 +4,7 @@ import com.punchsettle.server.atomic.entity.Account;
 import com.punchsettle.server.atomic.mapper.AccountMapper;
 import com.punchsettle.server.atomic.service.IAccountService;
 import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.constant.AccountCategoryEnum;
-import com.punchsettle.server.pojo.punchIn.AccountQuery;
+import com.punchsettle.server.pojo.account.AccountQuery;
 import com.punchsettle.server.utiis.WeekendUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 0 - 14
src/main/java/com/punchsettle/server/atomic/service/impl/ItemConsumeWinHistoryServiceImpl.java

@@ -1,14 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import com.punchsettle.server.atomic.service.IItemConsumeWinHistoryService;
-import org.springframework.stereotype.Service;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @date 2025/4/8 10:50
- * @description 物品消费与中奖记录 service
- */
-@Service
-public class ItemConsumeWinHistoryServiceImpl implements IItemConsumeWinHistoryService {
-}

+ 0 - 71
src/main/java/com/punchsettle/server/atomic/service/impl/LotteryScratchRecordServiceImpl.java

@@ -1,71 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import java.util.List;
-import java.util.Objects;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
-import com.punchsettle.server.atomic.entity.LotteryScratchRecord;
-import com.punchsettle.server.atomic.mapper.LotteryScratchRecordMapper;
-import com.punchsettle.server.atomic.service.ILotteryScratchRecordService;
-import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.pojo.scratch.ScratchQuery;
-
-import tk.mybatis.mapper.weekend.Weekend;
-import tk.mybatis.mapper.weekend.WeekendCriteria;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 彩票刮刮乐记录 service
- * @date 2024/12/12 19:10
- */
-@Service
-public class LotteryScratchRecordServiceImpl implements ILotteryScratchRecordService {
-
-    @Autowired
-    private LotteryScratchRecordMapper scratchRecordMapper;
-
-    @Override
-    public void insert(LotteryScratchRecord record) {
-        Assert.isNull(record);
-        scratchRecordMapper.insertSelective(record);
-    }
-
-    @Override
-    public void update(LotteryScratchRecord record) {
-        Assert.isNull(record);
-        scratchRecordMapper.updateByPrimaryKeySelective(record);
-    }
-
-    @Override
-    public LotteryScratchRecord selectById(Long id) {
-        if (Objects.isNull(id)) {
-            return null;
-        }
-
-        return scratchRecordMapper.selectByPrimaryKey(id);
-    }
-
-    @Override
-    public List<LotteryScratchRecord> listByCondition(ScratchQuery query) {
-        Assert.isNull(query);
-
-        Weekend<LotteryScratchRecord> weekend = Weekend.of(LotteryScratchRecord.class);
-        WeekendCriteria<LotteryScratchRecord, Object> criteria = weekend.weekendCriteria();
-        if (StringUtils.hasText(query.getStartDateTime()) && StringUtils.hasText(query.getEndDateTime())) {
-            criteria.andBetween(LotteryScratchRecord::getCreationTime, query.getStartDateTime(), query.getEndDateTime());
-        }
-        if (!Objects.isNull(query.getUserId())) {
-            criteria.andEqualTo(LotteryScratchRecord::getCreatedBy, query.getUserId());
-        }
-        if (!CollectionUtils.isEmpty(query.getActionTypeList())) {
-            criteria.andIn(LotteryScratchRecord::getActionType, query.getActionTypeList());
-        }
-        weekend.orderBy(LotteryScratchRecord::getCreationTime).desc();
-        return scratchRecordMapper.selectByExample(weekend);
-    }
-}

+ 0 - 97
src/main/java/com/punchsettle/server/atomic/service/impl/PunchInRecordServiceImpl.java

@@ -1,97 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import java.util.List;
-import java.util.Objects;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
-import com.punchsettle.server.atomic.entity.PunchInRecord;
-import com.punchsettle.server.atomic.mapper.PunchInRecordMapper;
-import com.punchsettle.server.atomic.service.IPunchInRecordService;
-import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordQuery;
-
-import tk.mybatis.mapper.weekend.Weekend;
-import tk.mybatis.mapper.weekend.WeekendCriteria;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务记录表 service
- * @date 2024/11/25 15:34
- */
-@Service
-public class PunchInRecordServiceImpl implements IPunchInRecordService {
-
-    @Autowired
-    private PunchInRecordMapper punchInRecordMapper;
-
-    @Override
-    public void insert(PunchInRecord record) {
-        Assert.isNull(record);
-        punchInRecordMapper.insertSelective(record);
-    }
-
-    @Override
-    public void batchInsert(List<PunchInRecord> records) {
-        Assert.notEmpty(records);
-        punchInRecordMapper.insertList(records);
-    }
-
-    @Override
-    public void update(PunchInRecord record) {
-        Assert.isNull(record);
-        punchInRecordMapper.updateByPrimaryKeySelective(record);
-    }
-
-    @Override
-    public void batchUpdate(List<PunchInRecord> records) {
-        Assert.notEmpty(records);
-        punchInRecordMapper.batchUpdateSelective(records);
-    }
-
-    @Override
-    public PunchInRecord selectOneByCondition(PunchInRecordQuery query) {
-        Assert.isNull(query);
-
-        Weekend<PunchInRecord> weekend = Weekend.of(PunchInRecord.class);
-        WeekendCriteria<PunchInRecord, Object> criteria = weekend.weekendCriteria();
-        if (!Objects.isNull(query.getPunchInId())) {
-            criteria.andEqualTo(PunchInRecord::getPunchInId, query.getPunchInId());
-        }
-        if (StringUtils.hasText(query.getPunchInDate())) {
-            criteria.andEqualTo(PunchInRecord::getPunchInDate, query.getPunchInDate());
-        }
-        return punchInRecordMapper.selectOneByExample(weekend);
-    }
-
-    @Override
-    public List<PunchInRecord> listByCondition(PunchInRecordQuery query) {
-        if (Objects.isNull(query)) {
-            return List.of();
-        }
-
-        Weekend<PunchInRecord> weekend = Weekend.of(PunchInRecord.class);
-        WeekendCriteria<PunchInRecord, Object> criteria = weekend.weekendCriteria();
-        if (StringUtils.hasText(query.getStartDate()) && StringUtils.hasText(query.getEndDate())) {
-            criteria.andBetween(PunchInRecord::getPunchInDate, query.getStartDate(), query.getEndDate());
-        }
-        if (!CollectionUtils.isEmpty(query.getPunchInIds())) {
-            criteria.andIn(PunchInRecord::getPunchInId, query.getPunchInIds());
-        }
-        if (!Objects.isNull(query.getPunchInId())) {
-            criteria.andEqualTo(PunchInRecord::getPunchInId, query.getPunchInId());
-        }
-        weekend.orderBy(PunchInRecord::getPunchInDate).desc();
-        return punchInRecordMapper.selectByExample(weekend);
-    }
-
-    @Override
-    public void delete(Long id) {
-        Assert.isNull(id);
-        punchInRecordMapper.deleteByPrimaryKey(id);
-    }
-}

+ 0 - 30
src/main/java/com/punchsettle/server/atomic/service/impl/PunchInRecordSettlementRelaServiceImpl.java

@@ -1,30 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.punchsettle.server.atomic.entity.PunchInRecordSettlementRela;
-import com.punchsettle.server.atomic.mapper.PunchInRecordSettlementRelaMapper;
-import com.punchsettle.server.atomic.service.IPunchInRecordSettlementRelaService;
-import com.punchsettle.server.common.utils.Assert;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务记录与结算关联表
- * @date 2024/11/26 12:54
- */
-@Service
-public class PunchInRecordSettlementRelaServiceImpl implements IPunchInRecordSettlementRelaService {
-
-    @Autowired
-    private PunchInRecordSettlementRelaMapper punchInRecordSettlementRelaMapper;
-
-    @Override
-    public void batchInsert(List<PunchInRecordSettlementRela> relas) {
-        Assert.notEmpty(relas);
-        punchInRecordSettlementRelaMapper.insertList(relas);
-    }
-}

+ 0 - 78
src/main/java/com/punchsettle/server/atomic/service/impl/PunchInServiceImpl.java

@@ -1,78 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import java.util.List;
-import java.util.Objects;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import com.punchsettle.server.atomic.entity.PunchIn;
-import com.punchsettle.server.atomic.mapper.PunchInMapper;
-import com.punchsettle.server.atomic.service.IPunchInService;
-import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.pojo.punchinV1.PunchInQuery;
-
-import tk.mybatis.mapper.weekend.Weekend;
-import tk.mybatis.mapper.weekend.WeekendCriteria;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务表 service
- * @date 2024/11/25 15:07
- */
-@Service
-public class PunchInServiceImpl implements IPunchInService {
-
-    @Autowired
-    private PunchInMapper punchInMapper;
-
-    @Override
-    public PunchIn getById(Long id) {
-        if (Objects.isNull(id)) {
-            return null;
-        }
-        return punchInMapper.selectByPrimaryKey(id);
-    }
-
-    @Override
-    public List<PunchIn> listByCondition(PunchInQuery query) {
-        if (Objects.isNull(query)) {
-            return List.of();
-        }
-
-        Weekend<PunchIn> punchInWeekend = Weekend.of(PunchIn.class);
-        WeekendCriteria<PunchIn, Object> criteria = punchInWeekend.weekendCriteria();
-        if (!CollectionUtils.isEmpty(query.getUserIds())) {
-            criteria.andIn(PunchIn::getCreatedBy, query.getUserIds());
-        }
-        if (!CollectionUtils.isEmpty(query.getPunchInIds())) {
-            criteria.andIn(PunchIn::getId, query.getPunchInIds());
-        }
-        if (!Objects.isNull(query.getArchiveFlag())) {
-            criteria.andEqualTo(PunchIn::getArchiveFlag, query.getArchiveFlag());
-        }
-        punchInWeekend.orderBy(PunchIn::getRewardNum).desc();
-        punchInWeekend.orderBy(PunchIn::getCreationTime).desc();
-        return punchInMapper.selectByExample(punchInWeekend);
-    }
-
-    @Override
-    public void insert(PunchIn punchIn) {
-        Assert.isNull(punchIn);
-        punchInMapper.insertSelective(punchIn);
-    }
-
-    @Override
-    public void delete(Long punchInId) {
-        Assert.isNull(punchInId);
-        punchInMapper.deleteByPrimaryKey(punchInId);
-    }
-
-    @Override
-    public void update(PunchIn punchIn) {
-        Assert.isNull(punchIn);
-        punchInMapper.updateByPrimaryKeySelective(punchIn);
-    }
-}

+ 0 - 52
src/main/java/com/punchsettle/server/atomic/service/impl/PunchInSettlementServiceImpl.java

@@ -1,52 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import java.util.List;
-import java.util.Objects;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import com.punchsettle.server.atomic.entity.PunchInSettlement;
-import com.punchsettle.server.atomic.mapper.PunchInSettlementMapper;
-import com.punchsettle.server.atomic.service.IPunchInSettlementService;
-import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.pojo.settle.SettleQuery;
-
-import tk.mybatis.mapper.weekend.Weekend;
-import tk.mybatis.mapper.weekend.WeekendCriteria;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务结算表
- * @date 2024/11/26 12:39
- */
-@Service
-public class PunchInSettlementServiceImpl implements IPunchInSettlementService {
-
-    @Autowired
-    private PunchInSettlementMapper punchInSettlementMapper;
-
-    @Override
-    public void batchInsert(List<PunchInSettlement> punchInSettlements) {
-        Assert.notEmpty(punchInSettlements);
-        punchInSettlementMapper.insertList(punchInSettlements);
-    }
-
-    @Override
-    public List<PunchInSettlement> listByCondition(SettleQuery query) {
-        Assert.isNull(query);
-
-        Weekend<PunchInSettlement> weekend = Weekend.of(PunchInSettlement.class);
-        WeekendCriteria<PunchInSettlement, Object> criteria = weekend.weekendCriteria();
-        if (StringUtils.hasText(query.getStartDateTime()) && StringUtils.hasText(query.getEndDateTime())) {
-            criteria.andBetween(PunchInSettlement::getSettlementTime, query.getStartDateTime(), query.getEndDateTime());
-        }
-        if (!Objects.isNull(query.getUserId())) {
-            criteria.andEqualTo(PunchInSettlement::getUserId, query.getUserId());
-        }
-        weekend.orderBy(PunchInSettlement::getSettlementTime).desc();
-        return punchInSettlementMapper.selectByExample(weekend);
-    }
-}

+ 0 - 34
src/main/java/com/punchsettle/server/atomic/service/impl/SettlementTaskServiceImpl.java

@@ -1,34 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.punchsettle.server.atomic.entity.SettlementTask;
-import com.punchsettle.server.atomic.mapper.SettlementTaskMapper;
-import com.punchsettle.server.atomic.service.ISettlementTaskService;
-import com.punchsettle.server.common.utils.Assert;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 奖励结算定时任务执行记录表
- * @date 2024/11/26 11:55
- */
-@Service
-public class SettlementTaskServiceImpl implements ISettlementTaskService {
-
-    @Autowired
-    private SettlementTaskMapper settlementTaskMapper;
-
-    @Override
-    public void insert(SettlementTask task) {
-        Assert.isNull(task);
-        settlementTaskMapper.insertSelective(task);
-    }
-
-    @Override
-    public void update(SettlementTask task) {
-        Assert.isNull(task);
-        settlementTaskMapper.updateByPrimaryKeySelective(task);
-    }
-}

+ 1 - 1
src/main/java/com/punchsettle/server/atomic/service/impl/StatPiTaskMonthServiceImpl.java

@@ -5,7 +5,7 @@ import com.punchsettle.server.atomic.mapper.StatPiTaskMonthMapper;
 import com.punchsettle.server.atomic.service.IStatPiTaskMonthService;
 import com.punchsettle.server.common.utils.Assert;
 import com.punchsettle.server.pojo.punchIn.PiStatsMonthQuery;
-import com.punchsettle.server.pojo.punchIn.StatPiTaskQuery;
+import com.punchsettle.server.pojo.stat.StatPiTaskQuery;
 import com.punchsettle.server.utiis.WeekendUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 1 - 1
src/main/java/com/punchsettle/server/atomic/service/impl/StatPiTaskYearServiceImpl.java

@@ -4,7 +4,7 @@ import com.punchsettle.server.atomic.entity.StatPiTaskYear;
 import com.punchsettle.server.atomic.mapper.StatPiTaskYearMapper;
 import com.punchsettle.server.atomic.service.IStatPiTaskYearService;
 import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.pojo.punchIn.StatPiTaskQuery;
+import com.punchsettle.server.pojo.stat.StatPiTaskQuery;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 0 - 51
src/main/java/com/punchsettle/server/atomic/service/impl/UserClaimRewardRecordServiceImpl.java

@@ -1,51 +0,0 @@
-package com.punchsettle.server.atomic.service.impl;
-
-import java.util.List;
-import java.util.Objects;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import com.punchsettle.server.atomic.entity.UserClaimRewardRecord;
-import com.punchsettle.server.atomic.mapper.UserClaimRewardRecordMapper;
-import com.punchsettle.server.atomic.service.IUserClaimRewardRecordService;
-import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.pojo.reward.ClaimRewardRecordQuery;
-
-import tk.mybatis.mapper.weekend.Weekend;
-import tk.mybatis.mapper.weekend.WeekendCriteria;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 领取奖励记录表 service
- * @date 2024/11/25 22:18
- */
-@Service
-public class UserClaimRewardRecordServiceImpl implements IUserClaimRewardRecordService {
-
-    @Autowired
-    private UserClaimRewardRecordMapper userClaimRewardRecordMapper;
-
-    @Override
-    public void insert(UserClaimRewardRecord record) {
-        Assert.isNull(record);
-        userClaimRewardRecordMapper.insertSelective(record);
-    }
-
-    @Override
-    public List<UserClaimRewardRecord> listByCondition(ClaimRewardRecordQuery query) {
-        if (Objects.isNull(query)) {
-            return List.of();
-        }
-
-        Weekend<UserClaimRewardRecord> weekend = Weekend.of(UserClaimRewardRecord.class);
-        WeekendCriteria<UserClaimRewardRecord, Object> criteria = weekend.weekendCriteria();
-        if (StringUtils.hasText(query.getStartDateTime()) && StringUtils.hasText(query.getEndDateTime())) {
-            criteria.andBetween(UserClaimRewardRecord::getClaimRewardTime, query.getStartDateTime(), query.getEndDateTime());
-        }
-        weekend.orderBy(UserClaimRewardRecord::getClaimRewardTime).desc();
-        return userClaimRewardRecordMapper.selectByExample(weekend);
-    }
-}

+ 0 - 35
src/main/java/com/punchsettle/server/constant/PunchInCategoryEnum.java

@@ -1,35 +0,0 @@
-package com.punchsettle.server.constant;
-
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.punchsettle.server.common.annotation.EnumValue;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡类型(0-单次打卡,1-计数、2计时)
- * @date 2024/12/13 9:46
- */
-@Getter
-@AllArgsConstructor
-public enum PunchInCategoryEnum {
-
-
-    SINGLE("单次打卡", 0),
-    COUNT("计数打卡", 1),
-    TIME("计时打卡", 2);
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 编码
-     */
-    @JsonValue
-    @EnumValue
-    private Integer code;
-}

+ 0 - 23
src/main/java/com/punchsettle/server/constant/PunchInMethodMultiEnum.java

@@ -1,23 +0,0 @@
-package com.punchsettle.server.constant;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author myou
- * @version 1.0.0
- * @date 2025/4/13 8:58
- * @description 多任务打卡方式枚举(次数-COUNT,比率-RATE)
- */
-@Getter
-@AllArgsConstructor
-public enum PunchInMethodMultiEnum {
-
-    COUNT("次数"),
-    RATE("比率");
-
-    /**
-     * 名称
-     */
-    private String name;
-}

+ 0 - 34
src/main/java/com/punchsettle/server/constant/PunchInRuleEnum.java

@@ -1,34 +0,0 @@
-package com.punchsettle.server.constant;
-
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.punchsettle.server.common.annotation.EnumValue;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务比较规则(0-大于,1-大于等于,2-小于,3-小于等于)
- * @date 2024/12/13 9:41
- */
-@Getter
-@AllArgsConstructor
-public enum PunchInRuleEnum {
-
-    GREATER_OR_EQUAL("大于等于", 0),
-    LESS_OR_EQUAL("小于等于", 1)
-    ;
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 编码
-     */
-    @JsonValue
-    @EnumValue
-    private Integer code;
-}

+ 0 - 36
src/main/java/com/punchsettle/server/constant/PunchInSettleTypeEnum.java

@@ -1,36 +0,0 @@
-package com.punchsettle.server.constant;
-
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.punchsettle.server.common.annotation.EnumValue;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡的结算类型枚举
- * @date 2024/12/14 16:2
- */
-@Getter
-@AllArgsConstructor
-public enum PunchInSettleTypeEnum {
-
-
-    AUTO("定时任务结算", 1),
-    OPS("运维结算", 2),
-    REMAKE("补卡结算", 3)
-    ;
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 编码
-     */
-    @JsonValue
-    @EnumValue
-    private Integer code;
-}

+ 0 - 35
src/main/java/com/punchsettle/server/constant/PunchInStatusV1Enum.java

@@ -1,35 +0,0 @@
-package com.punchsettle.server.constant;
-
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.punchsettle.server.common.annotation.EnumValue;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡状态(0-进行中,1-完成,2-未完成,3-补打卡),结算后修改状态,单次打卡除外
- * @date 2024/11/26 21:59
- */
-@Getter
-@AllArgsConstructor
-public enum PunchInStatusV1Enum {
-
-    DOING("进行中", 0),
-    FINISH("完成", 1),
-    UN_FINISH("未完成", 2),
-    REMAKE_FINISH("完成(补打卡)", 3);
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 编码
-     */
-    @JsonValue
-    @EnumValue
-    private Integer code;
-}

+ 0 - 34
src/main/java/com/punchsettle/server/constant/PunchInStatusViewEnum.java

@@ -1,34 +0,0 @@
-package com.punchsettle.server.constant;
-
-import com.fasterxml.jackson.annotation.JsonValue;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡状态 枚举
- * @date 2024/11/26 21:59
- */
-@Getter
-@AllArgsConstructor
-public enum PunchInStatusViewEnum {
-
-    UNCREATED("未创建打卡任务", "uncreated"),
-    PUNCH_IN("已打卡", "punchIn"),
-    UN_PUNCH_IN("没打卡", "unPunchIn"),
-    TODAY_UNKNOWN("当天打卡状态未知", "todayUnknown"),
-    FUTURE_TIME("未到打卡时间", "futureTime");
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 编码
-     */
-    @JsonValue
-    private String code;
-}

+ 0 - 35
src/main/java/com/punchsettle/server/constant/ScratchActionTypeEnum.java

@@ -1,35 +0,0 @@
-package com.punchsettle.server.constant;
-
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.punchsettle.server.common.annotation.EnumValue;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 刮刮乐动作枚举(0-投入/购买,1-中奖,2-撤销投入,3-撤销中奖)
- * @date 2024/12/13 16:04
- */
-@Getter
-@AllArgsConstructor
-public enum ScratchActionTypeEnum {
-
-    INVEST("投入", 0),
-    WIN("中奖", 1),
-    REVOKE_INVEST("撤销投入", 2),
-    REVOKE_WIN("撤销中奖记录", 3);
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 编码
-     */
-    @JsonValue
-    @EnumValue
-    private Integer code;
-}

+ 0 - 23
src/main/java/com/punchsettle/server/constant/SettleStatusEnum.java

@@ -1,23 +0,0 @@
-package com.punchsettle.server.constant;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @date 2025/4/9 12:26
- * @description 结算状态枚举(未结算-UNSETTLED,宽限期跳过J-GRACE_SKIP,惩罚跳过-PENALTY_SKIP,未完成打卡跳过-UNDONE_SKIP,已结算-SETTLED)
- */
-@Getter
-@AllArgsConstructor
-public enum SettleStatusEnum {
-
-    UNSETTLED("未结算"),
-    SETTLED("已结算");
-
-    /**
-     * 名称
-     */
-    private String name;
-}

+ 25 - 26
src/main/java/com/punchsettle/server/core/interceptor/AuthInterceptor.java

@@ -39,34 +39,33 @@ public class AuthInterceptor implements HandlerInterceptor {
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
             throws Exception {
 
-//        // 判断请求头中是否有token
-//        String token = request.getHeader("Authorization");
-//        if (!StringUtils.hasText(token)) {
-//            throw LoginException.fail("登录校验异常,原因:没有token凭据");
-//        }
-//
-//        // token解析获取用户ID
-//        Long currentUserId = null;
-//        try {
-//            currentUserId = tokenManager.getUserIdByToken(token);
-//        } catch (TokenExpiredException e) {
-//            log.warn("token已过期,token:{}", token);
-//            throw LoginException.fail("登录校验失败,token已过期");
-//        }
-//        if (Objects.isNull(currentUserId)) {
-//            log.warn("登录校验异常,token中不存在有效的用户信息,token:{}", token);
-//            throw LoginException.fail("登录校验异常,token中不存在有效的用户信息");
-//        }
-//
-//        // 校验系统中是否存在该用户
-//        User currentUser = userManager.getByIdWithCache(currentUserId);
-//        if (Objects.isNull(currentUser)) {
-//            throw LoginException.fail("不存在的用户,请尝试重新登录");
-//        }
+        // 判断请求头中是否有token
+        String token = request.getHeader("Authorization");
+        if (!StringUtils.hasText(token)) {
+            throw LoginException.fail("登录校验异常,原因:没有token凭据");
+        }
+
+        // token解析获取用户ID
+        Long currentUserId = null;
+        try {
+            currentUserId = tokenManager.getUserIdByToken(token);
+        } catch (TokenExpiredException e) {
+            log.warn("token已过期,token:{}", token);
+            throw LoginException.fail("登录校验失败,token已过期");
+        }
+        if (Objects.isNull(currentUserId)) {
+            log.warn("登录校验异常,token中不存在有效的用户信息,token:{}", token);
+            throw LoginException.fail("登录校验异常,token中不存在有效的用户信息");
+        }
+
+        // 校验系统中是否存在该用户
+        User currentUser = userManager.getByIdWithCache(currentUserId);
+        if (Objects.isNull(currentUser)) {
+            throw LoginException.fail("不存在的用户,请尝试重新登录");
+        }
 
         // 把用户信息设置如入上下文
-//        UserUtils.setCurrentId(currentUser.getId());
-        UserUtils.setCurrentId(2L);
+        UserUtils.setCurrentId(currentUser.getId());
 
         return true;
     }

+ 1 - 1
src/main/java/com/punchsettle/server/pojo/punchIn/AccountQuery.java → src/main/java/com/punchsettle/server/pojo/account/AccountQuery.java

@@ -1,4 +1,4 @@
-package com.punchsettle.server.pojo.punchIn;
+package com.punchsettle.server.pojo.account;
 
 import com.punchsettle.server.constant.AccountCategoryEnum;
 import lombok.Data;

+ 0 - 50
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInCalendarDataVO.java

@@ -1,50 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.time.LocalTime;
-
-import com.punchsettle.server.constant.PunchInStatusV1Enum;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡数据查询结果
- * @date 2024/12/16 20:09
- */
-@Data
-@EqualsAndHashCode
-public class PunchInCalendarDataVO {
-
-    /**
-     * 打卡日期
-     */
-    private String date;
-
-    /**
-     * 信息
-     */
-    private String info;
-
-    /**
-     * 打卡日期
-     */
-    private String punchInDate;
-
-    /**
-     * 次数记录
-     */
-    private Integer countTrack;
-
-    /**
-     * 时间记录
-     */
-    private LocalTime timeTrack;
-
-    /**
-     * 打卡状态(0-进行中,1-完成,2-未完成) ,结算后修改状态,单次打卡除外
-     * @see PunchInStatusV1Enum
-     */
-    private PunchInStatusV1Enum punchInStatus;
-}

+ 0 - 34
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInDataQuery.java

@@ -1,34 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡数据查询
- * @date 2024/12/16 20:09
- */
-@Data
-@EqualsAndHashCode
-public class PunchInDataQuery {
-
-    /**
-     * 打卡任务ID
-     */
-    @NotNull(message = "待查询的打卡任务ID不能为空")
-    private Long id;
-
-    /**
-     * 打卡年份
-     */
-    @NotNull(message = "待查询的打卡年份不能为空")
-    private Integer year;
-
-    /**
-     * 打卡月份
-     */
-    @NotNull(message = "待查询的打卡月份不能为空")
-    private Integer month;
-}

+ 0 - 48
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInDataVO.java

@@ -1,48 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡数据查询结果
- * @date 2024/12/16 20:09
- */
-@Data
-@EqualsAndHashCode
-public class PunchInDataVO {
-
-    /**
-     * 打卡任务开始显示日期
-     */
-    private String startDate;
-
-    /**
-     * 打卡任务结束显示日期
-     */
-    private String endDate;
-
-    /**
-     * 打卡次数
-     */
-    private Integer punchInNum;
-
-    /**
-     * 打卡完成率
-     */
-    private BigDecimal punchInRate;
-
-    /**
-     * 打卡记录(日历)
-     */
-    private List<PunchInCalendarDataVO> calendarSelected;
-
-    /**
-     * 打卡记录
-     */
-    private List<PunchInRecordDataVO> punchInRecords;
-}

+ 0 - 32
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInQuery.java

@@ -1,32 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.util.List;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务查询 dto
- * @date 2024/12/13 9:09
- */
-@Data
-@EqualsAndHashCode
-public class PunchInQuery {
-
-    /**
-     * 创建人id
-     */
-    private List<Long> userIds;
-
-    /**
-     * 打卡任务ID
-     */
-    private List<Long> punchInIds;
-
-    /**
-     * 是否归档标志(0-不是,1-是)
-     */
-    private Boolean archiveFlag;
-}

+ 0 - 47
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordDataVO.java

@@ -1,47 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.time.LocalTime;
-
-import com.punchsettle.server.constant.PunchInCategoryEnum;
-import com.punchsettle.server.constant.PunchInStatusV1Enum;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡数据查询结果
- * @date 2024/12/16 20:09
- */
-@Data
-@EqualsAndHashCode
-public class PunchInRecordDataVO {
-
-    /**
-     * 打卡日期
-     */
-    private String punchInDate;
-
-    /**
-     * 次数记录
-     */
-    private Integer countTrack;
-
-    /**
-     * 时间记录
-     */
-    private LocalTime timeTrack;
-
-    /**
-     * 打卡状态(0-进行中,1-完成,2-未完成) ,结算后修改状态,单次打卡除外
-     * @see PunchInStatusV1Enum
-     */
-    private PunchInStatusV1Enum punchInStatus;
-
-    /**
-     * 结算时的打卡类型(0-单次打卡,1-计数、2计时)
-     * @see PunchInCategoryEnum
-     */
-    private PunchInCategoryEnum settleCategory;
-}

+ 0 - 34
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordQuery.java

@@ -1,34 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.util.List;
-
-import com.punchsettle.server.common.pojo.BaseQuery;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡记录查询 dto
- * @date 2024/11/25 16:09
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class PunchInRecordQuery extends BaseQuery {
-
-    /**
-     * 打卡任务主键
-     */
-    private List<Long> punchInIds;
-
-    /**
-     * 打卡日期
-     */
-    private String punchInDate;
-
-    /**
-     * 打卡任务主键
-     */
-    private Long punchInId;
-}

+ 0 - 39
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordRequest.java

@@ -1,39 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡记录
- * @date 2024/11/25 16:24
- */
-@Data
-@EqualsAndHashCode
-public class PunchInRecordRequest {
-
-    /**
-     * 补打卡校验组
-     */
-    public interface Remake {};
-
-    /**
-     * 撤销打卡校验组
-     */
-    public interface Revoke {};
-
-    /**
-     * 打卡任务ID
-     */
-    @NotNull(message = "打卡任务ID不能为空", groups = {Revoke.class, Remake.class})
-    private Long punchInId;
-
-    /**
-     * 打卡日期
-     */
-    @NotBlank(message = "补打卡日期不能为空", groups = {Remake.class})
-    private String punchInDate;
-}

+ 0 - 33
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRecordVO.java

@@ -1,33 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import com.punchsettle.server.constant.PunchInStatusViewEnum;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡记录
- * @date 2024/11/25 16:24
- */
-@Data
-@EqualsAndHashCode
-public class PunchInRecordVO {
-
-    /**
-     * 打卡任务ID
-     */
-    private Long punchInId;
-
-    /**
-     * 打卡日期
-     */
-    private String punchInDate;
-
-    /**
-     * 打卡状态
-     * @see PunchInStatusViewEnum
-     */
-    private PunchInStatusViewEnum punchInStatus;
-}

+ 0 - 97
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInRequest.java

@@ -1,97 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.time.LocalTime;
-
-import org.hibernate.validator.constraints.Length;
-
-import com.punchsettle.server.common.valid.Delete;
-import com.punchsettle.server.common.valid.Query;
-import com.punchsettle.server.common.valid.Save;
-import com.punchsettle.server.common.valid.Update;
-import com.punchsettle.server.constant.PunchInCategoryEnum;
-import com.punchsettle.server.constant.PunchInRuleEnum;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Positive;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡结算任务信息 dto
- * @date 2024/11/25 15:01
- */
-@Data
-@EqualsAndHashCode
-public class PunchInRequest {
-
-    /**
-     * 打卡校验组
-     */
-    public interface DoPunchIn {};
-
-    /**
-     * 归档校验组
-     */
-    public interface Archive {};
-
-    /**
-     * 打卡结算主键
-     */
-    @NotNull(message = "打卡任务主键不能为空", groups = {Query.class, Update.class, Delete.class, DoPunchIn.class, Archive.class})
-    private Long id;
-
-    /**
-     * 任务名称
-     */
-    @NotBlank(message = "任务名称不能为空", groups = {Save.class, Update.class})
-    @Length(max = 30, message = "任务名称不能超过30个字符", groups = {Save.class, Update.class})
-    private String taskName;
-
-    /**
-     * 奖励倍数
-     */
-    @NotNull(message = "奖励倍数不能为空", groups = {Save.class, Update.class})
-    @Positive(message = "奖励倍数必须大于0", groups = {Save.class, Update.class})
-    private Integer rewardNum;
-
-    /**
-     * 打卡类型(0-单次打卡,1-计数、2计时)
-     */
-    @NotNull(message = "打卡类型不能为空", groups = {Save.class, Update.class})
-    private PunchInCategoryEnum category;
-
-    /**
-     * @see PunchInRuleEnum
-     */
-    private PunchInRuleEnum rule;
-
-    /**
-     * 次数记录
-     */
-    private Integer countTrack;
-
-    /**
-     * 时间记录
-     */
-    private LocalTime timeTrack;
-
-    /**
-     * 任务描述
-     */
-    private String description;
-
-    /**
-     * 是否启用周末双倍标志(0-不是,1-是)
-     */
-    @NotNull(message = "是否启用周末双倍标志不能为空", groups = {Save.class, Update.class})
-    private Boolean weekendDoubleFlag;
-
-    /**
-     * 是否启用全勤奖励标志(0-不是,1-是)
-     */
-    @NotNull(message = "是否启用全勤奖励标志不能为空", groups = {Save.class, Update.class})
-    private Boolean fullAttendanceFlag;
-}

+ 0 - 70
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInVO.java

@@ -1,70 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.time.LocalTime;
-
-import com.punchsettle.server.constant.PunchInCategoryEnum;
-import com.punchsettle.server.constant.PunchInRuleEnum;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡结算任务信息 vo
- * @date 2024/11/25 15:01
- */
-@Data
-@EqualsAndHashCode
-public class PunchInVO {
-
-    /**
-     * 打卡结算主键
-     */
-    private Long id;
-
-    /**
-     * 任务名称
-     */
-    private String taskName;
-
-    /**
-     * 奖励倍数
-     */
-    private Integer rewardNum;
-
-    /**
-     * 打卡类型(0-单次打卡,1-计数、2计时)
-     */
-    private PunchInCategoryEnum category;
-
-    /**
-     * @see PunchInRuleEnum
-     */
-    private PunchInRuleEnum rule;
-
-    /**
-     * 次数记录
-     */
-    private Integer countTrack;
-
-    /**
-     * 时间记录
-     */
-    private LocalTime timeTrack;
-
-    /**
-     * 任务描述
-     */
-    private String description;
-
-    /**
-     * 是否启用周末双倍标志(0-不是,1-是)
-     */
-    private Boolean weekendDoubleFlag;
-
-    /**
-     * 是否启用全勤奖励标志(0-不是,1-是)
-     */
-    private Boolean fullAttendanceFlag;
-}

+ 0 - 91
src/main/java/com/punchsettle/server/pojo/punchinV1/PunchInWithRecordVO.java

@@ -1,91 +0,0 @@
-package com.punchsettle.server.pojo.punchinV1;
-
-import java.time.LocalTime;
-import java.util.List;
-
-import com.punchsettle.server.constant.PunchInCategoryEnum;
-import com.punchsettle.server.constant.PunchInRuleEnum;
-import com.punchsettle.server.constant.PunchInStatusViewEnum;
-
-import lombok.Data;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 打卡任务并带有打卡记录信息 vo
- * @date 2024/11/25 15:41
- */
-@Data
-public class PunchInWithRecordVO {
-
-    /**
-     * 打卡任务主键
-     */
-    private Long punchInId;
-
-    /**
-     * 任务名称
-     */
-    private String taskName;
-
-    /**
-     * 奖励倍数
-     */
-    private Integer rewardNum;
-
-    /**
-     * 打卡类型(0-单次打卡,1-计数、2计时)
-     */
-    private PunchInCategoryEnum category;
-
-    /**
-     * 比较规则(0-大于,1-大于等于,2-小于,3-小于等于)
-     */
-    private PunchInRuleEnum rule;
-
-    /**
-     * 次数记录
-     */
-    private Integer countTrack;
-
-    /**
-     * 时间记录
-     */
-    private LocalTime timeTrack;
-
-    /**
-     * 任务描述
-     */
-    private String description;
-
-    /**
-     * 是否启用周末双倍标志(0-不是,1-是)
-     */
-    private Boolean weekendDoubleFlag;
-
-    /**
-     * 是否启用全勤奖励标志(0-不是,1-是)
-     */
-    private Boolean fullAttendanceFlag;
-
-    /**
-     * 打卡记录
-     */
-    private List<PunchInRecordVO> punchInRecords;
-
-    /**
-     * 打卡状态(今天)
-     */
-    private PunchInStatusViewEnum punchInStatus;
-
-    /**
-     * 打卡记录的次数记录
-     */
-    private Integer recordCountTrack;
-
-    /**
-     * 打卡记录的时间记录
-     */
-    private LocalTime recordTimeTrack;
-
-}

+ 0 - 18
src/main/java/com/punchsettle/server/pojo/reward/ClaimRewardRecordQuery.java

@@ -1,18 +0,0 @@
-package com.punchsettle.server.pojo.reward;
-
-import com.punchsettle.server.common.pojo.BaseQuery;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 领取奖励记录查询
- * @date 2024/11/25 20:44
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class ClaimRewardRecordQuery extends BaseQuery {
-
-}

+ 0 - 40
src/main/java/com/punchsettle/server/pojo/reward/ClaimRewardRecordVO.java

@@ -1,40 +0,0 @@
-package com.punchsettle.server.pojo.reward;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 领取奖励记录
- * @date 2024/11/25 20:44
- */
-@Data
-@EqualsAndHashCode
-public class ClaimRewardRecordVO {
-
-    /**
-     * 记录主键
-     */
-    private Long id;
-
-    /**
-     * 本次领取奖励数
-     */
-    private Integer claimRewardNum;
-
-    /**
-     * 领取奖励时间
-     */
-    private String claimRewardTime;
-
-    /**
-     * 领取前用户拥有的奖励数
-     */
-    private Integer beforeClaimRewardNum;
-
-    /**
-     * 领取后用户拥有的奖励数
-     */
-    private Integer afterClaimRewardNum;
-}

+ 0 - 24
src/main/java/com/punchsettle/server/pojo/reward/ClaimRewardRequest.java

@@ -1,24 +0,0 @@
-package com.punchsettle.server.pojo.reward;
-
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Positive;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 领取结算奖励 dto
- * @date 2024/11/25 19:42
- */
-@Data
-@EqualsAndHashCode
-public class ClaimRewardRequest {
-
-    /**
-     * 领取奖励数
-     */
-    @NotNull(message = "领取奖励数不能为空")
-    @Positive(message = "领取奖励数必须为正整数")
-    private Integer claimRewardNum;
-}

+ 0 - 31
src/main/java/com/punchsettle/server/pojo/scratch/ScratchQuery.java

@@ -1,31 +0,0 @@
-package com.punchsettle.server.pojo.scratch;
-
-import com.punchsettle.server.common.pojo.BaseQuery;
-import com.punchsettle.server.constant.ScratchActionTypeEnum;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.List;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 刮刮乐记录查询 dto
- * @date 2024/12/13 16:23
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class ScratchQuery extends BaseQuery {
-
-    /**
-     * 动作类型(0-投入/购买,1-中奖,2-撤销投入,3-撤销中奖)
-     * @see ScratchActionTypeEnum
-     */
-    private List<ScratchActionTypeEnum> actionTypeList;
-
-    /**
-     * 用户主键
-     */
-    private Long userId;
-}

+ 0 - 58
src/main/java/com/punchsettle/server/pojo/scratch/ScratchRequest.java

@@ -1,58 +0,0 @@
-package com.punchsettle.server.pojo.scratch;
-
-import java.math.BigDecimal;
-
-import com.punchsettle.server.common.valid.Save;
-import com.punchsettle.server.constant.ScratchActionTypeEnum;
-
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Positive;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 刮刮乐 request
- * @date 2024/12/13 15:47
- */
-@Data
-@EqualsAndHashCode
-public class ScratchRequest {
-
-    /**
-     * 撤销校验组
-     */
-    public interface Revoke {};
-
-    /**
-     * 刮刮乐记录ID
-     */
-    @NotNull(message = "记录ID不能为空", groups = {Revoke.class})
-    private Long id;
-
-    /**
-     * 动作类型(0-投入/购买,1-中奖,2-撤销投入,3-撤销中奖)
-     */
-    @NotNull(message = "记录类型不能为空", groups = {Save.class})
-    private ScratchActionTypeEnum actionType;
-
-    /**
-     * 来源
-     */
-    @NotNull(message = "来源不能为空", groups = {Save.class})
-    private String source;
-
-    /**
-     * 种类
-     */
-    @NotNull(message = "种类不能为空", groups = {Save.class})
-    private String category;
-
-    /**
-     * 金额(元)
-     */
-    @NotNull(message = "金额不能为空", groups = {Save.class})
-    @Positive(message = "金额必须大于0", groups = {Save.class})
-    private BigDecimal amount;
-}

+ 0 - 49
src/main/java/com/punchsettle/server/pojo/scratch/ScratchVO.java

@@ -1,49 +0,0 @@
-package com.punchsettle.server.pojo.scratch;
-
-import java.math.BigDecimal;
-
-import com.punchsettle.server.constant.ScratchActionTypeEnum;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 刮刮乐 dto
- * @date 2024/12/13 15:47
- */
-@Data
-@EqualsAndHashCode
-public class ScratchVO {
-
-    /**
-     * 刮刮乐记录ID
-     */
-    private Long id;
-
-    /**
-     * 动作类型(0-投入/购买,1-中奖,2-撤销投入,3-撤销中奖)
-     */
-    private ScratchActionTypeEnum actionType;
-
-    /**
-     * 来源
-     */
-    private String source;
-
-    /**
-     * 种类
-     */
-    private String category;
-
-    /**
-     * 金额(元)
-     */
-    private BigDecimal amount;
-
-    /**
-     * 创建时间
-     */
-    private String creationTime;
-}

+ 0 - 56
src/main/java/com/punchsettle/server/pojo/settle/SettleInfoDto.java

@@ -1,56 +0,0 @@
-package com.punchsettle.server.pojo.settle;
-
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-
-import com.punchsettle.server.constant.PunchInSettleTypeEnum;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 结算请求dto
- * @date 2024/12/14 14:40
- */
-@Data
-@EqualsAndHashCode
-public class SettleInfoDto {
-
-    /**
-     * 结算类型
-     * @see PunchInSettleTypeEnum
-     */
-    private PunchInSettleTypeEnum settleType;
-
-    /**
-     * 待结算日期
-     */
-    private LocalDate settleDate;
-
-    /**
-     * 待结算日期(字符串)
-     */
-    private String settleDateStr;
-
-    /**
-     * 是否周末标志位
-     */
-    private Boolean weekendFlag;
-
-    /**
-     * 是否周日
-     */
-    private Boolean sundayFlag;
-
-    public SettleInfoDto(PunchInSettleTypeEnum settleType, LocalDate settleDate) {
-        this.settleType = settleType;
-        this.settleDate = settleDate;
-        settleDateStr = settleDate.toString();
-        // 判断是否是周末
-        weekendFlag = DayOfWeek.SATURDAY.equals(settleDate.getDayOfWeek()) || DayOfWeek.SUNDAY.equals(settleDate.getDayOfWeek());
-        // 判断是否周日
-        sundayFlag = DayOfWeek.SUNDAY.equals(settleDate.getDayOfWeek());
-    }
-}

+ 0 - 22
src/main/java/com/punchsettle/server/pojo/settle/SettleQuery.java

@@ -1,22 +0,0 @@
-package com.punchsettle.server.pojo.settle;
-
-import com.punchsettle.server.common.pojo.BaseQuery;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 结算查询dto
- * @date 2024/12/15 15:36
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class SettleQuery extends BaseQuery {
-
-    /**
-     * 用户主键
-     */
-    private Long userId;
-}

+ 0 - 43
src/main/java/com/punchsettle/server/pojo/settle/SettleRequest.java

@@ -1,43 +0,0 @@
-package com.punchsettle.server.pojo.settle;
-
-import java.util.List;
-
-import com.punchsettle.server.constant.PunchInSettleTypeEnum;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 结算请求dto
- * @date 2024/12/15 15:36
- */
-@Data
-@EqualsAndHashCode
-public class SettleRequest {
-
-    /**
-     * 结算类型
-     */
-    @NotNull(message = "结算类型不能为空")
-    private PunchInSettleTypeEnum settleType;
-
-    /**
-     * 结算日期
-     */
-    @NotBlank(message = "结算日期不能为空")
-    private String settleDate;
-
-    /**
-     * 待结算的用户
-     */
-    private List<Long> userIds;
-
-    /**
-     * 待结算用户的打卡任务ID
-     */
-    private List<Long> punchInIds;
-}

+ 0 - 41
src/main/java/com/punchsettle/server/pojo/settle/SettleResultDto.java

@@ -1,41 +0,0 @@
-package com.punchsettle.server.pojo.settle;
-
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.PunchInRecord;
-import com.punchsettle.server.atomic.entity.PunchInSettlement;
-import com.punchsettle.server.atomic.entity.User;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 结算结果dto
- * @date 2024/12/14 14:40
- */
-@Data
-@EqualsAndHashCode
-public class SettleResultDto {
-
-    /**
-     * 待更新的用户信息
-     */
-    private User updateUser;
-
-    /**
-     * 待新增的打卡记录
-     */
-    private List<PunchInRecord> addPunchInRecords;
-
-    /**
-     * 待更新的打卡记录
-     */
-    private List<PunchInRecord> updatePunchInRecords;
-
-    /**
-     * 待新增的结算记录
-     */
-    private PunchInSettlement addPunchInSettlement;
-}

+ 0 - 45
src/main/java/com/punchsettle/server/pojo/settle/SettleVO.java

@@ -1,45 +0,0 @@
-package com.punchsettle.server.pojo.settle;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 结算dto
- * @date 2024/12/15 15:36
- */
-@Data
-@EqualsAndHashCode
-public class SettleVO {
-
-    /**
-     * 主键
-     */
-    private Long id;
-
-    /**
-     * 结算奖励数
-     */
-    private Integer settleRewardNum;
-
-    /**
-     * 结算前用户拥有的奖励数
-     */
-    private Integer beforeSettleRewardNum;
-
-    /**
-     * 结算后用户拥有的奖励数
-     */
-    private Integer afterSettleRewardNum;
-
-    /**
-     * 结算任务表id
-     */
-    private Long settlementTaskId;
-
-    /**
-     * 结算时间
-     */
-    private String settlementTime;
-}

+ 1 - 1
src/main/java/com/punchsettle/server/pojo/punchIn/StatPiTaskQuery.java → src/main/java/com/punchsettle/server/pojo/stat/StatPiTaskQuery.java

@@ -1,4 +1,4 @@
-package com.punchsettle.server.pojo.punchIn;
+package com.punchsettle.server.pojo.stat;
 
 import lombok.Data;
 

+ 1 - 1
src/main/java/com/punchsettle/server/pojo/punchIn/StatPiTaskWeekQuery.java → src/main/java/com/punchsettle/server/pojo/stat/StatPiTaskWeekQuery.java

@@ -1,4 +1,4 @@
-package com.punchsettle.server.pojo.punchIn;
+package com.punchsettle.server.pojo.stat;
 
 import lombok.Data;
 

+ 6 - 6
src/main/java/com/punchsettle/server/service/controller/AccountController.java

@@ -1,9 +1,7 @@
 package com.punchsettle.server.service.controller;
 
-import com.punchsettle.server.pojo.account.AccountVO;
-import com.punchsettle.server.pojo.account.AccountInfoVO;
-import com.punchsettle.server.pojo.account.TransferHistoryVO;
-import jakarta.validation.constraints.NotBlank;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -13,14 +11,16 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.punchsettle.server.pojo.account.AccountInfoVO;
 import com.punchsettle.server.pojo.account.AccountRequest;
+import com.punchsettle.server.pojo.account.AccountVO;
+import com.punchsettle.server.pojo.account.TransferHistoryVO;
 import com.punchsettle.server.pojo.account.TransferRequest;
 import com.punchsettle.server.service.manager.IAccountManager;
 
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 
-import java.util.List;
-
 /**
  * @author tyuio
  * @version 1.0.0

+ 0 - 6
src/main/java/com/punchsettle/server/service/controller/HealthController.java

@@ -1,12 +1,9 @@
 package com.punchsettle.server.service.controller;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.punchsettle.server.atomic.mapper.PunchInMapper;
-
 /**
  * 健康检查
  * 
@@ -20,9 +17,6 @@ import com.punchsettle.server.atomic.mapper.PunchInMapper;
 @RequestMapping("/health")
 public class HealthController {
 
-    @Autowired
-    private PunchInMapper punchInMapper;
-
     @GetMapping("/info")
     public String info() {
         return "打卡结算后端服务 正在运行";

+ 11 - 21
src/main/java/com/punchsettle/server/service/controller/PunchInController.java

@@ -2,16 +2,6 @@ package com.punchsettle.server.service.controller;
 
 import java.util.List;
 
-import com.punchsettle.server.pojo.punchIn.PiTaskHistoryStatVO;
-import com.punchsettle.server.pojo.punchIn.PiTaskRequest;
-import com.punchsettle.server.pojo.punchIn.PiTaskStatQuery;
-import com.punchsettle.server.pojo.punchIn.PiTaskStatVO;
-import com.punchsettle.server.pojo.punchIn.PunchInRequest;
-import com.punchsettle.server.pojo.punchIn.PiTaskSimpleVO;
-import com.punchsettle.server.pojo.punchIn.PiTaskToDoVO;
-import com.punchsettle.server.pojo.punchIn.PiTaskVO;
-import com.punchsettle.server.utiis.UserUtils;
-import jakarta.validation.constraints.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -21,10 +11,18 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.punchsettle.server.pojo.punchinV1.PunchInDataQuery;
-import com.punchsettle.server.pojo.punchinV1.PunchInDataVO;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordRequest;
+import com.punchsettle.server.pojo.punchIn.PiTaskHistoryStatVO;
+import com.punchsettle.server.pojo.punchIn.PiTaskRequest;
+import com.punchsettle.server.pojo.punchIn.PiTaskSimpleVO;
+import com.punchsettle.server.pojo.punchIn.PiTaskStatQuery;
+import com.punchsettle.server.pojo.punchIn.PiTaskStatVO;
+import com.punchsettle.server.pojo.punchIn.PiTaskToDoVO;
+import com.punchsettle.server.pojo.punchIn.PiTaskVO;
+import com.punchsettle.server.pojo.punchIn.PunchInRequest;
 import com.punchsettle.server.service.manager.IPunchInManager;
+import com.punchsettle.server.utiis.UserUtils;
+
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @author tyuio
@@ -99,14 +97,6 @@ public class PunchInController {
         punchInManager.archiveTask(id);
     }
 
-    /**
-     * 补打卡 TODO 这里还没有修改
-     */
-    @PostMapping("/remakePunchIn")
-    public void remakePunchIn(@RequestBody @Validated({PunchInRecordRequest.Remake.class}) PunchInRecordRequest request) {
-        punchInManager.remakePunchIn(request);
-    }
-
     /**
      * 撤销打卡
      * @param id 打卡任务id

+ 0 - 55
src/main/java/com/punchsettle/server/service/controller/ScratchController.java

@@ -1,55 +0,0 @@
-package com.punchsettle.server.service.controller;
-
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.punchsettle.server.common.valid.Save;
-import com.punchsettle.server.pojo.scratch.ScratchQuery;
-import com.punchsettle.server.pojo.scratch.ScratchRequest;
-import com.punchsettle.server.pojo.scratch.ScratchVO;
-import com.punchsettle.server.service.manager.IScratchManager;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 刮刮乐 controller
- * @date 2024/12/13 21:57
- */
-@RestController
-@RequestMapping("/scratch")
-public class ScratchController {
-
-    @Autowired
-    private IScratchManager scratchManager;
-
-    /**
-     * 增加投入金额/中奖金额记录
-     * @param request
-     */
-    @PostMapping("/addScratchRecord")
-    public void addScratchRecord(@RequestBody @Validated({Save.class}) ScratchRequest request) {
-        scratchManager.addScratchRecord(request);
-    }
-
-    /**
-     * 撤销投入金额记录/中奖记录
-     */
-    @PostMapping("/revokeScratchRecord")
-    public void revokeScratchRecord(@RequestBody @Validated({ScratchRequest.Revoke.class}) ScratchRequest request) {
-        scratchManager.revokeScratchRecord(request);
-    }
-
-    /**
-     * 按时间范围查询刮刮乐记录
-     */
-    @PostMapping("/queryScratchRecord")
-    public List<ScratchVO> queryScratchRecord(@RequestBody @Validated ScratchQuery query) {
-        return scratchManager.queryScratchRecord(query);
-    }
-}

+ 5 - 25
src/main/java/com/punchsettle/server/service/controller/SettleController.java

@@ -2,20 +2,16 @@ package com.punchsettle.server.service.controller;
 
 import java.util.List;
 
-import com.punchsettle.server.pojo.settle.SettlePointsHistoryVO;
-import jakarta.validation.constraints.NotBlank;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.punchsettle.server.pojo.settle.SettleQuery;
-import com.punchsettle.server.pojo.settle.SettleRequest;
-import com.punchsettle.server.pojo.settle.SettleVO;
-import com.punchsettle.server.service.manager.ISettleManagerV1;
+import com.punchsettle.server.pojo.settle.SettlePointsHistoryVO;
+import com.punchsettle.server.service.manager.ISettleManager;
+
+import jakarta.validation.constraints.NotBlank;
 
 /**
  * @author tyuio
@@ -29,23 +25,7 @@ import com.punchsettle.server.service.manager.ISettleManagerV1;
 public class SettleController {
 
     @Autowired
-    private ISettleManagerV1 settleManager;
-
-    /**
-     * 手动调起结算定时任务
-     */
-    @PostMapping("/manualSettle")
-    public void manualSettle(@RequestBody @Validated SettleRequest settleRequest) {
-        settleManager.manualSettle(settleRequest);
-    }
-
-    /**
-     * 手动调起结算定时任务
-     */
-    @PostMapping("/querySettle")
-    public List<SettleVO> querySettle(@RequestBody @Validated SettleQuery query) {
-        return settleManager.querySettle(query);
-    }
+    private ISettleManager settleManager;
 
     /**
      * 查询结算积分记录

+ 0 - 8
src/main/java/com/punchsettle/server/service/manager/ICalendarManager.java

@@ -24,14 +24,6 @@ public interface ICalendarManager {
      */
     SysCalendar getCalendarByGregorianDate(String gregorianDate);
 
-    /**
-     * 根据日期范围获取指定日历数据
-     * @param gregorianStartDate 公历开始日期(格式:yyyy-MM-dd)
-     * @param gregorianStartDate 公历结束日期(格式:yyyy-MM-dd)
-     * @return
-     */
-    List<SysCalendar> getCalendarByRangeDate(String gregorianStartDate, String gregorianEndDate);
-
     /**
      * 判断指定日期是否节假日
      * @param gregorianDate 日期格式:yyyy-MM-dd

+ 0 - 16
src/main/java/com/punchsettle/server/service/manager/IPunchInManager.java

@@ -10,9 +10,6 @@ import com.punchsettle.server.pojo.punchIn.PiTaskStatVO;
 import com.punchsettle.server.pojo.punchIn.PiTaskToDoVO;
 import com.punchsettle.server.pojo.punchIn.PiTaskVO;
 import com.punchsettle.server.pojo.punchIn.PunchInRequest;
-import com.punchsettle.server.pojo.punchinV1.PunchInDataQuery;
-import com.punchsettle.server.pojo.punchinV1.PunchInDataVO;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordRequest;
 
 /**
  * @author tyuio
@@ -65,12 +62,6 @@ public interface IPunchInManager {
      */
     void archiveTask(Long punchInId);
 
-    /**
-     * 补打卡
-     * @param request
-     */
-    void remakePunchIn(PunchInRecordRequest request);
-
     /**
      * 撤销误打卡
      * @param id 打卡任务
@@ -84,13 +75,6 @@ public interface IPunchInManager {
      */
     PiTaskStatVO queryStat(PiTaskStatQuery query);
 
-    /**
-     * 查询打卡数据
-     * @param query
-     * @return
-     */
-    PunchInDataVO queryPunchInData(PunchInDataQuery query);
-
     /**
      * 查询打卡历史
      */

+ 0 - 32
src/main/java/com/punchsettle/server/service/manager/IScratchManager.java

@@ -1,32 +0,0 @@
-package com.punchsettle.server.service.manager;
-
-import java.util.List;
-
-import com.punchsettle.server.pojo.scratch.ScratchQuery;
-import com.punchsettle.server.pojo.scratch.ScratchRequest;
-import com.punchsettle.server.pojo.scratch.ScratchVO;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 刮刮乐记录 manager
- * @date 2024/12/13 15:51
- */
-public interface IScratchManager {
-
-    /**
-     * 加投入金额/中奖金额记录
-     * @param request
-     */
-    void addScratchRecord(ScratchRequest request);
-
-    /**
-     * 撤销投入金额记录/中奖记录
-     */
-    void revokeScratchRecord(ScratchRequest request);
-
-    /**
-     * 按时间范围查询刮刮乐记录
-     */
-    List<ScratchVO> queryScratchRecord(ScratchQuery query);
-}

+ 41 - 0
src/main/java/com/punchsettle/server/service/manager/ISettleCoreManager.java

@@ -0,0 +1,41 @@
+package com.punchsettle.server.service.manager;
+
+import com.punchsettle.server.atomic.entity.PiMultiTask;
+import com.punchsettle.server.atomic.entity.PiMultiTaskExt;
+import com.punchsettle.server.atomic.entity.PiMultiTaskHistory;
+import com.punchsettle.server.atomic.entity.PiStatus;
+import com.punchsettle.server.atomic.entity.PiTask;
+import com.punchsettle.server.atomic.entity.PiTaskExt;
+import com.punchsettle.server.atomic.entity.PiTaskHistory;
+
+import java.util.List;
+
+/**
+ * @author tyuio
+ * @version 1.0.0
+ * @date 2025/4/15 14:08
+ * @description 结算核心服务类
+ */
+public interface ISettleCoreManager {
+
+    /**
+     * 计算任务积分
+     * @param piTask 打卡任务
+     * @param piTaskExtList 打卡任务拓展信息列表
+     * @param piTaskHistory 打卡记录
+     * @param piStatus 打卡统计
+     * @return 积分
+     */
+    int calculatePointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList, PiTaskHistory piTaskHistory, PiStatus piStatus);
+
+
+    /**
+     * 计算多任务积分
+     * @param piMultiTask 打卡多任务
+     * @param piMultiTaskExts 打卡多任务拓展信息列表
+     * @param piMultiTaskHistory 打卡记录
+     * @param piStatus 打卡统计
+     * @return
+     */
+    int calculatePointsInMultiTask(PiMultiTask piMultiTask, List<PiMultiTaskExt> piMultiTaskExts, PiMultiTaskHistory piMultiTaskHistory, PiStatus piStatus);
+}

+ 6 - 29
src/main/java/com/punchsettle/server/service/manager/ISettleManager.java

@@ -1,44 +1,21 @@
 package com.punchsettle.server.service.manager;
 
-import com.punchsettle.server.atomic.entity.PiMultiTask;
-import com.punchsettle.server.atomic.entity.PiMultiTaskExt;
-import com.punchsettle.server.atomic.entity.PiMultiTaskHistory;
-import com.punchsettle.server.atomic.entity.StatPiTaskMonth;
-import com.punchsettle.server.atomic.entity.StatPiTaskWeek;
-import com.punchsettle.server.atomic.entity.PiStatus;
-import com.punchsettle.server.atomic.entity.PiTask;
-import com.punchsettle.server.atomic.entity.PiTaskExt;
-import com.punchsettle.server.atomic.entity.PiTaskHistory;
-import com.punchsettle.server.constant.SettleStatusEnum;
-
 import java.util.List;
 
+import com.punchsettle.server.pojo.settle.SettlePointsHistoryVO;
+
 /**
  * @author tyuio
  * @version 1.0.0
- * @date 2025/4/15 14:08
  * @description 结算服务类
+ * @date 2024/12/12 22:23
  */
 public interface ISettleManager {
 
     /**
-     * 计算任务积分
-     * @param piTask 打卡任务
-     * @param piTaskExtList 打卡任务拓展信息列表
-     * @param piTaskHistory 打卡记录
-     * @param piStatus 打卡统计
-     * @return 积分
-     */
-    int calculatePointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList, PiTaskHistory piTaskHistory, PiStatus piStatus);
-
-
-    /**
-     * 计算多任务积分
-     * @param piMultiTask 打卡多任务
-     * @param piMultiTaskExts 打卡多任务拓展信息列表
-     * @param piMultiTaskHistory 打卡记录
-     * @param piStatus 打卡统计
+     * 查询结算积分记录
+     * @param settleMonth 结算月
      * @return
      */
-    int calculatePointsInMultiTask(PiMultiTask piMultiTask, List<PiMultiTaskExt> piMultiTaskExts, PiMultiTaskHistory piMultiTaskHistory, PiStatus piStatus);
+    List<SettlePointsHistoryVO> querySettlePointsHistory(String settleMonth);
 }

+ 0 - 59
src/main/java/com/punchsettle/server/service/manager/ISettleManagerV1.java

@@ -1,59 +0,0 @@
-package com.punchsettle.server.service.manager;
-
-import java.time.LocalDate;
-import java.util.List;
-
-import com.punchsettle.server.atomic.entity.PunchIn;
-import com.punchsettle.server.atomic.entity.PunchInRecord;
-import com.punchsettle.server.constant.PunchInSettleTypeEnum;
-import com.punchsettle.server.constant.PunchInStatusV1Enum;
-import com.punchsettle.server.pojo.settle.SettlePointsHistoryVO;
-import com.punchsettle.server.pojo.settle.SettleQuery;
-import com.punchsettle.server.pojo.settle.SettleRequest;
-import com.punchsettle.server.pojo.settle.SettleVO;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 结算服务类
- * @date 2024/12/12 22:23
- */
-public interface ISettleManagerV1 {
-
-    /**
-     * 打卡结算
-     * @param settleType 结算类型
-     * @param settleDate 结算日期
-     * @param userIds 待结算的用户
-     * @param punchInIds 待结算用户的打卡任务ID
-     */
-    void settleHandler(PunchInSettleTypeEnum settleType, LocalDate settleDate, List<Long> userIds, List<Long> punchInIds);
-
-    /**
-     * 判断是否满足打卡规则完成打卡
-     * @param punchIn
-     * @param punchInRecord
-     * @return PunchInStatusEnum
-     */
-    PunchInStatusV1Enum judgePunchInStatus(PunchIn punchIn, PunchInRecord punchInRecord);
-
-    /**
-     * 手动结算
-     * @param settleRequest
-     */
-    void manualSettle(SettleRequest settleRequest);
-
-    /**
-     * 查询结算
-     * @param query
-     * @return
-     */
-    List<SettleVO> querySettle(SettleQuery query);
-
-    /**
-     * 查询结算积分记录
-     * @param settleMonth 结算月
-     * @return
-     */
-    List<SettlePointsHistoryVO> querySettlePointsHistory(String settleMonth);
-}

+ 0 - 15
src/main/java/com/punchsettle/server/service/manager/ITaskManager.java

@@ -1,15 +0,0 @@
-package com.punchsettle.server.service.manager;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 定时任务服务类
- * @date 2024/11/26 9:19
- */
-public interface ITaskManager {
-
-    /**
-     * 结算定时任务
-     */
-    void autoSettle();
-}

+ 1 - 1
src/main/java/com/punchsettle/server/service/manager/impl/AccountManagerImpl.java

@@ -13,7 +13,7 @@ import com.punchsettle.server.pojo.account.AccountVO;
 import com.punchsettle.server.pojo.account.AccountInfoVO;
 import com.punchsettle.server.pojo.account.TransferHistoryVO;
 import com.punchsettle.server.pojo.account.TransferRequest;
-import com.punchsettle.server.pojo.punchIn.AccountQuery;
+import com.punchsettle.server.pojo.account.AccountQuery;
 import com.punchsettle.server.service.manager.IAccountManager;
 import com.punchsettle.server.utiis.DateUtils;
 import com.punchsettle.server.utiis.UserUtils;

+ 0 - 13
src/main/java/com/punchsettle/server/service/manager/impl/CalendarManagerImpl.java

@@ -1,7 +1,5 @@
 package com.punchsettle.server.service.manager.impl;
 
-import java.time.LocalDate;
-import java.time.temporal.ChronoUnit;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -104,17 +102,6 @@ public class CalendarManagerImpl implements ICalendarManager {
         return sysCalendarService.getByGregorianDate(gregorianDate);
     }
 
-    @Override
-    public List<SysCalendar> getCalendarByRangeDate(String gregorianStartDate, String gregorianEndDate) {
-        LocalDate startDate = LocalDate.parse(gregorianStartDate);
-        LocalDate endDate = LocalDate.parse(gregorianEndDate);
-        // 计算两个日期之间的天数差
-        long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
-
-//        SysCalendar sysCalendar = SpringUtils.getBean(CalendarManagerImpl.class).getCalendarByGregorianDate(gregorianDate);
-        return List.of();
-    }
-
     @Override
     public boolean judgeHoliday(String gregorianDate) {
         Assert.isNullInBusiness(gregorianDate, "公历日期不能为空");

+ 5 - 111
src/main/java/com/punchsettle/server/service/manager/impl/PunchInManagerImpl.java

@@ -1,14 +1,9 @@
 package com.punchsettle.server.service.manager.impl;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalTime;
-import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
-import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.List;
@@ -19,9 +14,6 @@ import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
-import com.punchsettle.server.pojo.punchIn.StatPiTaskQuery;
-import com.punchsettle.server.pojo.ucharts.LineSeriesVO;
-import com.punchsettle.server.pojo.ucharts.LineVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -32,12 +24,8 @@ import org.springframework.util.StringUtils;
 import com.punchsettle.server.atomic.StatPiTask;
 import com.punchsettle.server.atomic.entity.PiTask;
 import com.punchsettle.server.atomic.entity.PiTaskHistory;
-import com.punchsettle.server.atomic.entity.PunchIn;
-import com.punchsettle.server.atomic.entity.PunchInRecord;
 import com.punchsettle.server.atomic.service.IPiTaskHistoryService;
 import com.punchsettle.server.atomic.service.IPiTaskService;
-import com.punchsettle.server.atomic.service.IPunchInRecordService;
-import com.punchsettle.server.atomic.service.IPunchInService;
 import com.punchsettle.server.atomic.service.IStatPiTaskMonthService;
 import com.punchsettle.server.atomic.service.IStatPiTaskYearService;
 import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
@@ -48,8 +36,6 @@ import com.punchsettle.server.constant.PunchInExtraMethodEnum;
 import com.punchsettle.server.constant.PunchInMethodEnum;
 import com.punchsettle.server.constant.PunchInResultEnum;
 import com.punchsettle.server.constant.PunchInResultViewEnum;
-import com.punchsettle.server.constant.PunchInSettleTypeEnum;
-import com.punchsettle.server.constant.PunchInStatusV1Enum;
 import com.punchsettle.server.constant.RepeatCategoryEnum;
 import com.punchsettle.server.constant.SettleResultEnum;
 import com.punchsettle.server.constant.StatPeriodEnum;
@@ -65,16 +51,13 @@ import com.punchsettle.server.pojo.punchIn.PiTaskStatVO;
 import com.punchsettle.server.pojo.punchIn.PiTaskToDoVO;
 import com.punchsettle.server.pojo.punchIn.PiTaskVO;
 import com.punchsettle.server.pojo.punchIn.PunchInRequest;
-import com.punchsettle.server.pojo.punchinV1.PunchInCalendarDataVO;
-import com.punchsettle.server.pojo.punchinV1.PunchInDataQuery;
-import com.punchsettle.server.pojo.punchinV1.PunchInDataVO;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordDataVO;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordQuery;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordRequest;
+import com.punchsettle.server.pojo.stat.StatPiTaskQuery;
+import com.punchsettle.server.pojo.ucharts.LineSeriesVO;
+import com.punchsettle.server.pojo.ucharts.LineVO;
 import com.punchsettle.server.service.manager.ICalendarManager;
 import com.punchsettle.server.service.manager.IPunchInCoreManager;
 import com.punchsettle.server.service.manager.IPunchInManager;
-import com.punchsettle.server.service.manager.ISettleManagerV1;
+import com.punchsettle.server.service.manager.ISettleManager;
 import com.punchsettle.server.utiis.DateUtils;
 import com.punchsettle.server.utiis.UserUtils;
 
@@ -91,13 +74,7 @@ import lombok.extern.slf4j.Slf4j;
 public class PunchInManagerImpl implements IPunchInManager {
 
     @Autowired
-    private IPunchInService punchInService;
-
-    @Autowired
-    private IPunchInRecordService punchInRecordService;
-
-    @Autowired
-    private ISettleManagerV1 settleManager;
+    private ISettleManager settleManager;
 
     @Autowired
     private IPiTaskService piTaskService;
@@ -472,28 +449,6 @@ public class PunchInManagerImpl implements IPunchInManager {
         piTaskService.insert(addPiTask);
     }
 
-    @Override
-    public void remakePunchIn(PunchInRecordRequest request) {
-        // 待补卡的打卡日期
-        LocalDate punchInDate = LocalDate.parse(request.getPunchInDate());
-
-        // 如果补打卡日期是今天,则不允许补卡
-        if (punchInDate.isEqual(LocalDate.now())) {
-            BusinessException.throwFail("补打卡日期不能为今天");
-        }
-
-        // 获取打卡任务
-        PunchIn punchIn = Optional.ofNullable(punchInService.getById(request.getPunchInId()))
-            .orElseThrow(() -> BusinessException.fail("无法查询到该打卡任务"));
-        // 补打卡的打卡日期不能早于打卡任务创建日期
-        if (punchInDate.isBefore(punchIn.getCreationTime().toLocalDateTime().toLocalDate())) {
-            BusinessException.throwFail("补打卡日期不能早于打卡任务创建日期");
-        }
-
-        settleManager.settleHandler(PunchInSettleTypeEnum.REMAKE, punchInDate,
-            Arrays.asList(UserUtils.getCurrentUserId()), Arrays.asList(request.getPunchInId()));
-    }
-
     @Override
     public void revokePunchIn(Long id) {
         // 获取打卡任务
@@ -600,67 +555,6 @@ public class PunchInManagerImpl implements IPunchInManager {
         piTaskStatVO.setLineVO(lineVO);
         return piTaskStatVO;
     }
-    @Override
-    public PunchInDataVO queryPunchInData(PunchInDataQuery query) {
-        PunchIn punchIn = Optional.ofNullable(punchInService.getById(query.getId()))
-            .orElseThrow(() -> BusinessException.fail("找到指定的打卡任务"));
-
-        SimpleDateFormat sdf = DateUtils.buildDateFormat();
-        YearMonth yearMonth = YearMonth.of(query.getYear(), query.getMonth());
-        // 本月第一日
-        LocalDate firstOfMonth = yearMonth.atDay(1);
-        // 本月最后以日
-        LocalDate endOfMonth = yearMonth.atEndOfMonth();
-        // 任务创建日期
-        LocalDate punchInCreationDate = punchIn.getCreationTime().toLocalDateTime().toLocalDate();
-
-        // 获取打卡记录
-        PunchInRecordQuery punchInRecordQuery = new PunchInRecordQuery();
-        punchInRecordQuery.setPunchInId(punchIn.getId());
-        punchInRecordQuery.setStartDate(String.format("%s 00:00:00.000", firstOfMonth));
-        punchInRecordQuery.setEndDate(String.format("%s 23:59:59.999", endOfMonth));
-        List<PunchInRecord> punchInRecords = punchInRecordService.listByCondition(punchInRecordQuery);
-
-        // 构造数据,日历部分的数据只需要已打卡的数据
-        List<PunchInCalendarDataVO> punchInCalendarDataVOS = new ArrayList<>();
-        List<PunchInRecordDataVO> punchInRecordDtoList = new ArrayList<>();
-        for (PunchInRecord punchInRecord : punchInRecords) {
-            PunchInRecordDataVO punchInRecordDataVO = new PunchInRecordDataVO();
-            BeanUtils.copyProperties(punchInRecord, punchInRecordDataVO);
-            punchInRecordDtoList.add(punchInRecordDataVO);
-
-            if (PunchInStatusV1Enum.UN_FINISH.equals(punchInRecord.getPunchInStatus())
-                || PunchInStatusV1Enum.DOING.equals(punchInRecord.getPunchInStatus())) {
-                continue;
-            }
-            PunchInCalendarDataVO punchInCalendarDataVO = new PunchInCalendarDataVO();
-            punchInCalendarDataVO.setPunchInDate(punchInRecord.getPunchInDate());
-            punchInCalendarDataVO.setInfo("打卡");
-            punchInCalendarDataVO.setDate(punchInRecord.getPunchInDate());
-            punchInCalendarDataVOS.add(punchInCalendarDataVO);
-        }
-
-        // 计算全勤率
-        BigDecimal punchInRate = BigDecimal.ZERO;
-        // 要考虑任务刚创建的情况,任务较迟创建的话则使用任务创建时间
-        long dayLength = ChronoUnit.DAYS
-            .between(firstOfMonth.isBefore(punchInCreationDate) ? punchInCreationDate : firstOfMonth, LocalDate.now());
-        if (dayLength != 0) {
-            punchInRate = BigDecimal.valueOf(punchInCalendarDataVOS.size())
-                .divide(BigDecimal.valueOf(dayLength), 4, RoundingMode.HALF_DOWN).multiply(ONE_HUNDRED);
-        }
-
-        // 构造返回结果
-        PunchInDataVO punchInDataVO = new PunchInDataVO();
-        punchInDataVO.setStartDate(sdf.format(punchIn.getCreationTime()));
-        punchInDataVO.setEndDate(LocalDate.now().toString());
-        punchInDataVO.setPunchInNum(punchInCalendarDataVOS.size());
-        punchInDataVO.setCalendarSelected(punchInCalendarDataVOS);
-        punchInDataVO.setPunchInRecords(punchInRecordDtoList);
-        punchInDataVO.setPunchInRate(punchInRate);
-
-        return punchInDataVO;
-    }
 
     /**
      * 复制打卡任务信息并把旧的信息归档(审计信息不复制、任务版本号自动加1,任务状态:活跃)

+ 3 - 3
src/main/java/com/punchsettle/server/service/manager/impl/PunchInSettleManagerImpl.java

@@ -21,7 +21,7 @@ import com.punchsettle.server.atomic.service.IAccountTransferHistoryService;
 import com.punchsettle.server.constant.AccountCategoryEnum;
 import com.punchsettle.server.constant.VersionStatusEnum;
 import com.punchsettle.server.constant.TransferCategoryEnum;
-import com.punchsettle.server.pojo.punchIn.AccountQuery;
+import com.punchsettle.server.pojo.account.AccountQuery;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -71,7 +71,7 @@ import com.punchsettle.server.pojo.punchIn.PunchInSettleData;
 import com.punchsettle.server.service.manager.ICalendarManager;
 import com.punchsettle.server.service.manager.IPunchInCoreManager;
 import com.punchsettle.server.service.manager.IPunchInSettleManager;
-import com.punchsettle.server.service.manager.ISettleManager;
+import com.punchsettle.server.service.manager.ISettleCoreManager;
 import com.punchsettle.server.utiis.DateUtils;
 
 import lombok.extern.slf4j.Slf4j;
@@ -142,7 +142,7 @@ public class PunchInSettleManagerImpl implements IPunchInSettleManager {
     private IPunchInCoreManager punchInManager;
 
     @Autowired
-    private ISettleManager settleManager;
+    private ISettleCoreManager settleManager;
 
     @Autowired
     private IAccountService accountService;

+ 1 - 1
src/main/java/com/punchsettle/server/service/manager/impl/RewardManagerImpl.java

@@ -29,7 +29,7 @@ import com.punchsettle.server.common.exception.BusinessException;
 import com.punchsettle.server.common.utils.Assert;
 import com.punchsettle.server.constant.RewardExchangeMethodEnum;
 import com.punchsettle.server.constant.VersionStatusEnum;
-import com.punchsettle.server.pojo.punchIn.AccountQuery;
+import com.punchsettle.server.pojo.account.AccountQuery;
 import com.punchsettle.server.pojo.reward.RewardExchangeHistoryVO;
 import com.punchsettle.server.pojo.reward.RewardExchangeRequest;
 import com.punchsettle.server.pojo.reward.RewardQuery;

+ 0 - 137
src/main/java/com/punchsettle/server/service/manager/impl/ScratchManagerImpl.java

@@ -1,137 +0,0 @@
-package com.punchsettle.server.service.manager.impl;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
-
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import com.punchsettle.server.atomic.entity.LotteryScratchRecord;
-import com.punchsettle.server.atomic.entity.User;
-import com.punchsettle.server.atomic.service.ILotteryScratchRecordService;
-import com.punchsettle.server.atomic.service.IUserService;
-import com.punchsettle.server.common.exception.BusinessException;
-import com.punchsettle.server.constant.ScratchActionTypeEnum;
-import com.punchsettle.server.pojo.scratch.ScratchQuery;
-import com.punchsettle.server.pojo.scratch.ScratchRequest;
-import com.punchsettle.server.pojo.scratch.ScratchVO;
-import com.punchsettle.server.service.manager.IScratchManager;
-import com.punchsettle.server.utiis.DateUtils;
-import com.punchsettle.server.utiis.UserUtils;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 刮刮乐 manager
- * @date 2024/12/13 16:25
- */
-@Service
-public class ScratchManagerImpl implements IScratchManager {
-
-    @Autowired
-    private IUserService userService;
-
-    @Autowired
-    private ILotteryScratchRecordService scratchRecordService;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void addScratchRecord(ScratchRequest request) {
-        if (ScratchActionTypeEnum.REVOKE_WIN.equals(request.getActionType()) || ScratchActionTypeEnum.REVOKE_INVEST.equals(request.getActionType())) {
-            BusinessException.throwFail("传入了错误的记录动作类型");
-        }
-        Long currentUserId = UserUtils.getCurrentUserId();
-        User user = Optional.ofNullable(userService.getById(currentUserId)).orElseThrow(() -> BusinessException.fail("无法获取当前用户信息"));
-
-        User updateUser = new User();
-        updateUser.setId(user.getId());
-        if (ScratchActionTypeEnum.INVEST.equals(request.getActionType())) {
-//            updateUser.setLotteryInvestAmount(user.getLotteryInvestAmount().add(request.getAmount()));
-        }
-        if (ScratchActionTypeEnum.WIN.equals(request.getActionType())) {
-//            updateUser.setLotteryWinAmount(user.getLotteryWinAmount().add(request.getAmount()));
-        }
-        userService.updateById(updateUser);
-
-        LotteryScratchRecord scratchRecord = new LotteryScratchRecord();
-        BeanUtils.copyProperties(request, scratchRecord);
-        scratchRecord.setId(null);
-        scratchRecordService.insert(scratchRecord);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void revokeScratchRecord(ScratchRequest request) {
-        if (ScratchActionTypeEnum.WIN.equals(request.getActionType()) || ScratchActionTypeEnum.INVEST.equals(request.getActionType())) {
-            BusinessException.throwFail("传入了错误的记录动作类型");
-        }
-
-        // 获取当前用户信息
-        Long currentUserId = UserUtils.getCurrentUserId();
-        User user = Optional.ofNullable(userService.getById(currentUserId)).orElseThrow(() -> BusinessException.fail("无法获取当前用户信息"));
-
-        // 获取待撤销的刮刮乐记录
-        LotteryScratchRecord scratchRecord = Optional.ofNullable(scratchRecordService.selectById(request.getId())).orElseThrow(() -> BusinessException.fail("无法获取刮刮乐记录"));
-
-        // 待更新的用户信息
-        User updateUser = new User();
-        updateUser.setId(user.getId());
-        // 待更新的刮刮乐记录
-        LotteryScratchRecord updateScratchRecord = new LotteryScratchRecord();
-        updateScratchRecord.setId(scratchRecord.getId());
-        // 撤销投入
-        if (ScratchActionTypeEnum.INVEST.equals(scratchRecord.getActionType())) {
-//            if (scratchRecord.getAmount().compareTo(user.getLotteryInvestAmount()) > 0) {
-//                BusinessException.throwFail("撤销投入金额异常,用户已投入金额小于待撤销金额");
-//            }
-            updateScratchRecord.setActionType(ScratchActionTypeEnum.REVOKE_INVEST);
-//            updateUser.setLotteryInvestAmount(user.getLotteryInvestAmount().subtract(scratchRecord.getAmount()));
-        }
-        // 撤销中奖
-//        if (ScratchActionTypeEnum.WIN.equals(scratchRecord.getActionType())) {
-//            if (scratchRecord.getAmount().compareTo(user.getLotteryWinAmount()) > 0) {
-//                BusinessException.throwFail("撤销中奖金额异常,用户已中奖金额小于待撤销金额");
-//            }
-//            updateScratchRecord.setActionType(ScratchActionTypeEnum.REVOKE_WIN);
-//            updateUser.setLotteryWinAmount(user.getLotteryWinAmount().subtract(scratchRecord.getAmount()));
-//        }
-
-        // 更新用户
-//        userService.updateById(updateUser);
-
-        // 更新刮刮乐记录
-//        scratchRecordService.update(updateScratchRecord);
-    }
-
-    @Override
-    public List<ScratchVO> queryScratchRecord(ScratchQuery query) {
-        // 获取当前用户信息
-        Long currentUserId = UserUtils.getCurrentUserId();
-//        User user = Optional.ofNullable(userService.getById(currentUserId)).orElseThrow(() -> BusinessException.fail("无法获取当前用户信息"));
-//        query.setUserId(user.getId());
-        query.setActionTypeList(Arrays.asList(ScratchActionTypeEnum.INVEST, ScratchActionTypeEnum.WIN));
-
-//        List<LotteryScratchRecord> scratchRecords = scratchRecordService.listByCondition(query);
-        List<LotteryScratchRecord> scratchRecords =  new ArrayList<>();
-        if (CollectionUtils.isEmpty(scratchRecords)) {
-            return List.of();
-        }
-
-        SimpleDateFormat sdf = DateUtils.buildDateTimeFormat();
-
-        return scratchRecords.stream().map(record -> {
-            ScratchVO scratchVO = new ScratchVO();
-            BeanUtils.copyProperties(record, scratchVO);
-            scratchVO.setCreationTime(sdf.format(record.getCreationTime()));
-            return scratchVO;
-        }).toList();
-    }
-
-
-}

+ 280 - 0
src/main/java/com/punchsettle/server/service/manager/impl/SettleCoreManagerImpl.java

@@ -0,0 +1,280 @@
+package com.punchsettle.server.service.manager.impl;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import com.punchsettle.server.atomic.ContinueTask;
+import com.punchsettle.server.atomic.TaskExt;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import com.punchsettle.server.atomic.entity.PiMultiTask;
+import com.punchsettle.server.atomic.entity.PiMultiTaskExt;
+import com.punchsettle.server.atomic.entity.PiMultiTaskHistory;
+import com.punchsettle.server.atomic.entity.PiStatus;
+import com.punchsettle.server.atomic.entity.PiTask;
+import com.punchsettle.server.atomic.entity.PiTaskExt;
+import com.punchsettle.server.atomic.entity.PiTaskHistory;
+import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
+import com.punchsettle.server.constant.ContinueStatusEnum;
+import com.punchsettle.server.constant.FullAttendancePeriodEnum;
+import com.punchsettle.server.constant.PunchInDimensionEnum;
+import com.punchsettle.server.constant.PunchInExtraMethodEnum;
+import com.punchsettle.server.constant.PunchInMethodEnum;
+import com.punchsettle.server.constant.PunchInResultEnum;
+import com.punchsettle.server.service.manager.ICalendarManager;
+import com.punchsettle.server.service.manager.ISettleCoreManager;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author tyuio
+ * @version 1.0.0
+ * @date 2025/4/15 14:25
+ * @description 结算核心服务类
+ */
+@Slf4j
+@Service
+public class SettleCoreManagerImpl implements ISettleCoreManager {
+
+    @Autowired
+    private ICalendarManager calendarManager;
+
+    @Override
+    public int calculatePointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList, PiTaskHistory piTaskHistory,
+        PiStatus piStatus) {
+        // 未完成打卡,积分为0
+        if (PunchInResultEnum.UNDONE.equals(piTaskHistory.getPunchInResult())) {
+            return 0;
+        }
+
+        // 节假日标识
+        var holidayFlag = calendarManager.judgeHoliday(piTaskHistory.getPunchInDate());
+
+        // 单个任务积分=基本积分+额外积分+法定节假日(含周末)双倍奖励+全勤双倍奖励+连续完成额外积分
+        // 基本积分
+        int basicPoints = Optional.ofNullable(piTask.getPoints()).orElse(0);
+
+        // 额外积分计算
+        int extraPoints = 0;
+        // 单次打卡或者没有启用额外积分计算 则额外积分为0,否则进行
+        if (!PunchInExtraMethodEnum.NONE.equals(piTask.getExtraMethod())
+                && !PunchInMethodEnum.SINGLE.equals(piTask.getPunchInMethod())) {
+           List<TaskExt> punchInOneExtList = piTaskExtList.stream()
+                    .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
+            // 计算超出部分,获取额外次数
+            int extraCount = getExtraCountInTask(piTask, piTaskHistory, holidayFlag);
+            extraPoints = calculateExtraPoints(piTask.getExtraMethod(), extraCount, piTask.getExtraPoints(), punchInOneExtList);
+        }
+
+        // 加上基本积分供全勤和节假日使用
+        basicPoints += extraPoints;
+
+        // 全勤积分,全勤则双倍奖励
+        int fullAttendancePoints = 0;
+        if (judgeFullAttendanceStatusInTask(piTask, piTaskHistory, piStatus)) {
+            fullAttendancePoints = basicPoints;
+        }
+
+        // 法定节假日积分, 法定节假日(含周末)双倍奖励
+        int holidayPoints = 0;
+        if (CommonEnableStatusEnum.ENABLED.equals(piTask.getHolidayStatus())
+            && calendarManager.judgeHoliday(piTaskHistory.getPunchInDate())) {
+            holidayPoints = basicPoints;
+        }
+
+        // 打卡任务使用的拓展信息
+        List<TaskExt> punchInMultiExtList = piTaskExtList.stream()
+            .filter(v -> PunchInDimensionEnum.MULTI_DAY.equals(v.getDimension())).collect(Collectors.toList());
+        // 连续完成额外积分
+        int taskPoints = calculateContinuePoints(piTask, punchInMultiExtList, piStatus);
+
+        return basicPoints + fullAttendancePoints + holidayPoints + taskPoints;
+    }
+
+    /**
+     * 获取额外次数
+     * 
+     * @param piTask 打卡任务
+     * @param piTaskHistory 打卡记录
+     * @param holidayFlag 是否是法定节假日 true-是,false-不是
+     * @return
+     */
+    private int getExtraCountInTask(PiTask piTask, PiTaskHistory piTaskHistory, boolean holidayFlag) {
+        int extraCount = 0;
+        // 计数打卡
+        if (PunchInMethodEnum.COUNT.equals(piTask.getPunchInMethod())) {
+            extraCount =
+                piTaskHistory.getCountTrack() - (holidayFlag ? piTask.getHolidayCountTrack() : piTask.getCountTrack());
+        }
+        // 计时打卡
+        if (PunchInMethodEnum.TIMING.equals(piTask.getPunchInMethod())) {
+            // 超出的时间按照时间间隔转换成次数
+            long timeTrack = piTaskHistory.getTimeTrack()
+                .until((holidayFlag ? piTask.getHolidayTimeTrack() : piTask.getTimeTrack()), ChronoUnit.MINUTES);
+            extraCount = BigDecimal.valueOf(timeTrack)
+                .divide(BigDecimal.valueOf(piTask.getExtraTimeStep()), 0, RoundingMode.FLOOR).intValue();
+        }
+        return extraCount;
+    }
+
+    /**
+     * 判断全勤状态
+     * 
+     * @return true-是全勤,false-不是全勤
+     */
+    private boolean judgeFullAttendanceStatusInTask(PiTask piTask, PiTaskHistory piTaskHistory, PiStatus piStatus) {
+        // 没有启用全勤 则直接返回
+        if (CommonEnableStatusEnum.DISABLED.equals(piTask.getFullAttendanceStatus())) {
+            return false;
+        }
+
+        // 打卡日期/结算日期
+        LocalDate punchInDate = LocalDate.parse(piTaskHistory.getPunchInDate());
+
+        // 未完成数,默认设置一个较大值,以防判断有误
+        int undoneCount = piTask.getFullAttendanceFaultToleranceCnt() + 1;
+
+        // 结算周期:周,并且结算日是周末;结算周期:月,结算日是当月最后一天;
+        if (FullAttendancePeriodEnum.WEEK.equals(piTask.getFullAttendancePeriod())
+            && punchInDate.getDayOfWeek().getValue() == 7) {
+            undoneCount = piStatus.getPunchInTotalCountInWeek() - piStatus.getPunchInDoneCountInWeek();
+        } else if (FullAttendancePeriodEnum.MONTH.equals(piTask.getFullAttendancePeriod())
+            && punchInDate.lengthOfMonth() == punchInDate.getDayOfMonth()) {
+            undoneCount = piStatus.getPunchInTotalCountInMonth() - piStatus.getPunchInDoneCountInMonth();
+        }
+
+        // 未完成数在容错范围内,则是全勤
+        return undoneCount <= piTask.getFullAttendanceFaultToleranceCnt();
+    }
+
+    @Override
+    public int calculatePointsInMultiTask(PiMultiTask piMultiTask, List<PiMultiTaskExt> piMultiTaskExtList,
+        PiMultiTaskHistory piMultiTaskHistory, PiStatus piStatus) {
+        // 未完成打卡或没有启用多任务积分计算,积分为0
+        if (PunchInResultEnum.UNDONE.equals(piMultiTaskHistory.getPunchInResult())
+            || CommonEnableStatusEnum.DISABLED.equals(piMultiTask.getTaskPointsStatus())) {
+            return 0;
+        }
+
+        // 多个任务积分=多任务基本积分+多任务额外积分+连续完成额外积分
+        // 基本积分
+        int basicPoints = piMultiTask.getPoints();
+
+        // 额外积分
+        int extraPoints = 0;
+        if (!PunchInExtraMethodEnum.NONE.equals(piMultiTask.getExtraMethod())) {
+            List<TaskExt> punchInTaskOneExtList = piMultiTaskExtList.stream()
+                    .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
+            // 额外次数
+            int extractCount = piMultiTaskHistory.getPunchInDoneCount() - piMultiTask.getPunchInDoneCount();
+            extraPoints = calculateExtraPoints(piMultiTask.getExtraMethod(), extractCount, piMultiTask.getExtraPoints(), punchInTaskOneExtList);
+        }
+
+        // 连续完成额外积分
+        List<TaskExt> punchInTaskMultiExtList = piMultiTaskExtList.stream()
+            .filter(v -> PunchInDimensionEnum.MULTI_DAY.equals(v.getDimension())).collect(Collectors.toList());
+        int taskPoints = calculateContinuePoints(piMultiTask, punchInTaskMultiExtList, piStatus);
+
+        return basicPoints + extraPoints + taskPoints;
+    }
+
+
+    /**
+     * 计算额外积分
+     * @param extraMethod 计算方式
+     * @param extraCount 额外超出次数
+     * @param fixedPoints 固定积分
+     * @param taskExtList 拓展积分信息
+     * @return
+     */
+    private int calculateExtraPoints(PunchInExtraMethodEnum extraMethod, Integer extraCount, Integer fixedPoints,  List<TaskExt> taskExtList) {
+
+        // 超出次数 如果等于0则没有超出部分,不用计算
+        extraCount = Optional.ofNullable(extraCount).orElse(0);
+        if (extraCount == 0) {
+            return 0;
+        }
+
+        // 固定计算
+        if (PunchInExtraMethodEnum.FIXED.equals(extraMethod)) {
+            return extraCount * fixedPoints;
+        }
+
+        // 区间计算
+        if (PunchInExtraMethodEnum.INTERVAL.equals(extraMethod)
+                && !CollectionUtils.isEmpty(taskExtList)) {
+            return calculateIntervalPoints(extraCount, taskExtList);
+        }
+
+        return 0;
+    }
+
+    /**
+     * 计算连续打卡积分(打卡任务/打卡多任务)
+     * @param continueTask 连续任务
+     * @param taskExtList 任务拓展信息
+     * @param piStatus 状态信息
+     * @return
+     */
+    private int calculateContinuePoints(ContinueTask continueTask, List<TaskExt> taskExtList,
+                                        PiStatus piStatus) {
+        // 没有启用多任务积分计算、或是连续打卡状态为中断、或是没有拓展信息 则不进行计算
+        if (CommonEnableStatusEnum.DISABLED.equals(continueTask.getTaskPointsStatus())
+            || ContinueStatusEnum.INTERRUPTED.equals(piStatus.getTaskContinueStatus())
+            || CollectionUtils.isEmpty(taskExtList)) {
+            return 0;
+        }
+
+        return calculateIntervalPoints(piStatus.getTaskContinueDay(), taskExtList);
+    }
+
+    /**
+     * 计算区间积分
+     * @param extraCount 额外次数
+     * @param taskExtList 任务拓展信息
+     * @return
+     */
+    private int calculateIntervalPoints(Integer extraCount, List<TaskExt> taskExtList) {
+        extraCount = Optional.ofNullable(extraCount).orElse(0);
+        // 积分
+        int points = 0;
+        // 第二轮标志
+        boolean secondRound = false;
+        // 上一轮的值
+        int prevInitialValue = 0;
+        // 拓展信息 根据InitialValue倒序排列
+        taskExtList.sort(Comparator.comparing(TaskExt::getInitialValue).reversed());
+
+        for (TaskExt taskExt : taskExtList) {
+            // 比较结果
+            int compareValue = Integer.compare(extraCount, taskExt.getInitialValue());
+            // 如果连续日期小于initialValue,则跳过
+            if (compareValue == -1) {
+                continue;
+            }
+            // 额外奖励数
+            int tempExtraCount = 0;
+            // 如果连续日期大于等于initialValue,则进行第一次计算,并把第二轮标志位设置为true,第二轮/后续轮只需要用上一轮的值进行计算
+            if (secondRound) {
+                tempExtraCount = prevInitialValue - taskExt.getInitialValue();
+            } else if (compareValue >= 0) {
+                tempExtraCount = extraCount - taskExt.getInitialValue() + 1;
+                secondRound = true;
+            }
+            // 计算积分
+            points += taskExt.getExtraPoints() * tempExtraCount;
+            // 记录本轮的initialValue
+            prevInitialValue = taskExt.getInitialValue();
+        }
+
+        return points;
+    }
+}

+ 18 - 250
src/main/java/com/punchsettle/server/service/manager/impl/SettleManagerImpl.java

@@ -1,280 +1,48 @@
 package com.punchsettle.server.service.manager.impl;
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.time.LocalDate;
-import java.time.temporal.ChronoUnit;
-import java.util.Comparator;
 import java.util.List;
-import java.util.Optional;
 import java.util.stream.Collectors;
 
-import com.punchsettle.server.atomic.ContinueTask;
-import com.punchsettle.server.atomic.TaskExt;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import com.punchsettle.server.atomic.entity.PiMultiTask;
-import com.punchsettle.server.atomic.entity.PiMultiTaskExt;
-import com.punchsettle.server.atomic.entity.PiMultiTaskHistory;
-import com.punchsettle.server.atomic.entity.PiStatus;
-import com.punchsettle.server.atomic.entity.PiTask;
-import com.punchsettle.server.atomic.entity.PiTaskExt;
-import com.punchsettle.server.atomic.entity.PiTaskHistory;
-import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
-import com.punchsettle.server.constant.ContinueStatusEnum;
-import com.punchsettle.server.constant.FullAttendancePeriodEnum;
-import com.punchsettle.server.constant.PunchInDimensionEnum;
-import com.punchsettle.server.constant.PunchInExtraMethodEnum;
-import com.punchsettle.server.constant.PunchInMethodEnum;
-import com.punchsettle.server.constant.PunchInResultEnum;
-import com.punchsettle.server.service.manager.ICalendarManager;
+import com.punchsettle.server.atomic.entity.SettlePointsHistory;
+import com.punchsettle.server.atomic.service.ISettlePointsHistoryService;
+import com.punchsettle.server.common.utils.Assert;
+import com.punchsettle.server.pojo.settle.SettlePointsHistoryVO;
 import com.punchsettle.server.service.manager.ISettleManager;
+import com.punchsettle.server.utiis.UserUtils;
 
 import lombok.extern.slf4j.Slf4j;
 
 /**
  * @author tyuio
  * @version 1.0.0
- * @date 2025/4/15 14:25
  * @description 结算服务类
+ * @date 2024/12/12 22:29
  */
 @Slf4j
 @Service
 public class SettleManagerImpl implements ISettleManager {
 
     @Autowired
-    private ICalendarManager calendarManager;
+    private ISettlePointsHistoryService settlePointsHistoryService;
 
     @Override
-    public int calculatePointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList, PiTaskHistory piTaskHistory,
-        PiStatus piStatus) {
-        // 未完成打卡,积分为0
-        if (PunchInResultEnum.UNDONE.equals(piTaskHistory.getPunchInResult())) {
-            return 0;
-        }
-
-        // 节假日标识
-        var holidayFlag = calendarManager.judgeHoliday(piTaskHistory.getPunchInDate());
-
-        // 单个任务积分=基本积分+额外积分+法定节假日(含周末)双倍奖励+全勤双倍奖励+连续完成额外积分
-        // 基本积分
-        int basicPoints = Optional.ofNullable(piTask.getPoints()).orElse(0);
-
-        // 额外积分计算
-        int extraPoints = 0;
-        // 单次打卡或者没有启用额外积分计算 则额外积分为0,否则进行
-        if (!PunchInExtraMethodEnum.NONE.equals(piTask.getExtraMethod())
-                && !PunchInMethodEnum.SINGLE.equals(piTask.getPunchInMethod())) {
-           List<TaskExt> punchInOneExtList = piTaskExtList.stream()
-                    .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
-            // 计算超出部分,获取额外次数
-            int extraCount = getExtraCountInTask(piTask, piTaskHistory, holidayFlag);
-            extraPoints = calculateExtraPoints(piTask.getExtraMethod(), extraCount, piTask.getExtraPoints(), punchInOneExtList);
-        }
-
-        // 加上基本积分供全勤和节假日使用
-        basicPoints += extraPoints;
-
-        // 全勤积分,全勤则双倍奖励
-        int fullAttendancePoints = 0;
-        if (judgeFullAttendanceStatusInTask(piTask, piTaskHistory, piStatus)) {
-            fullAttendancePoints = basicPoints;
-        }
-
-        // 法定节假日积分, 法定节假日(含周末)双倍奖励
-        int holidayPoints = 0;
-        if (CommonEnableStatusEnum.ENABLED.equals(piTask.getHolidayStatus())
-            && calendarManager.judgeHoliday(piTaskHistory.getPunchInDate())) {
-            holidayPoints = basicPoints;
-        }
-
-        // 打卡任务使用的拓展信息
-        List<TaskExt> punchInMultiExtList = piTaskExtList.stream()
-            .filter(v -> PunchInDimensionEnum.MULTI_DAY.equals(v.getDimension())).collect(Collectors.toList());
-        // 连续完成额外积分
-        int taskPoints = calculateContinuePoints(piTask, punchInMultiExtList, piStatus);
-
-        return basicPoints + fullAttendancePoints + holidayPoints + taskPoints;
-    }
-
-    /**
-     * 获取额外次数
-     * 
-     * @param piTask 打卡任务
-     * @param piTaskHistory 打卡记录
-     * @param holidayFlag 是否是法定节假日 true-是,false-不是
-     * @return
-     */
-    private int getExtraCountInTask(PiTask piTask, PiTaskHistory piTaskHistory, boolean holidayFlag) {
-        int extraCount = 0;
-        // 计数打卡
-        if (PunchInMethodEnum.COUNT.equals(piTask.getPunchInMethod())) {
-            extraCount =
-                piTaskHistory.getCountTrack() - (holidayFlag ? piTask.getHolidayCountTrack() : piTask.getCountTrack());
-        }
-        // 计时打卡
-        if (PunchInMethodEnum.TIMING.equals(piTask.getPunchInMethod())) {
-            // 超出的时间按照时间间隔转换成次数
-            long timeTrack = piTaskHistory.getTimeTrack()
-                .until((holidayFlag ? piTask.getHolidayTimeTrack() : piTask.getTimeTrack()), ChronoUnit.MINUTES);
-            extraCount = BigDecimal.valueOf(timeTrack)
-                .divide(BigDecimal.valueOf(piTask.getExtraTimeStep()), 0, RoundingMode.FLOOR).intValue();
-        }
-        return extraCount;
-    }
-
-    /**
-     * 判断全勤状态
-     * 
-     * @return true-是全勤,false-不是全勤
-     */
-    private boolean judgeFullAttendanceStatusInTask(PiTask piTask, PiTaskHistory piTaskHistory, PiStatus piStatus) {
-        // 没有启用全勤 则直接返回
-        if (CommonEnableStatusEnum.DISABLED.equals(piTask.getFullAttendanceStatus())) {
-            return false;
-        }
-
-        // 打卡日期/结算日期
-        LocalDate punchInDate = LocalDate.parse(piTaskHistory.getPunchInDate());
-
-        // 未完成数,默认设置一个较大值,以防判断有误
-        int undoneCount = piTask.getFullAttendanceFaultToleranceCnt() + 1;
-
-        // 结算周期:周,并且结算日是周末;结算周期:月,结算日是当月最后一天;
-        if (FullAttendancePeriodEnum.WEEK.equals(piTask.getFullAttendancePeriod())
-            && punchInDate.getDayOfWeek().getValue() == 7) {
-            undoneCount = piStatus.getPunchInTotalCountInWeek() - piStatus.getPunchInDoneCountInWeek();
-        } else if (FullAttendancePeriodEnum.MONTH.equals(piTask.getFullAttendancePeriod())
-            && punchInDate.lengthOfMonth() == punchInDate.getDayOfMonth()) {
-            undoneCount = piStatus.getPunchInTotalCountInMonth() - piStatus.getPunchInDoneCountInMonth();
-        }
-
-        // 未完成数在容错范围内,则是全勤
-        return undoneCount <= piTask.getFullAttendanceFaultToleranceCnt();
-    }
-
-    @Override
-    public int calculatePointsInMultiTask(PiMultiTask piMultiTask, List<PiMultiTaskExt> piMultiTaskExtList,
-        PiMultiTaskHistory piMultiTaskHistory, PiStatus piStatus) {
-        // 未完成打卡或没有启用多任务积分计算,积分为0
-        if (PunchInResultEnum.UNDONE.equals(piMultiTaskHistory.getPunchInResult())
-            || CommonEnableStatusEnum.DISABLED.equals(piMultiTask.getTaskPointsStatus())) {
-            return 0;
-        }
-
-        // 多个任务积分=多任务基本积分+多任务额外积分+连续完成额外积分
-        // 基本积分
-        int basicPoints = piMultiTask.getPoints();
-
-        // 额外积分
-        int extraPoints = 0;
-        if (!PunchInExtraMethodEnum.NONE.equals(piMultiTask.getExtraMethod())) {
-            List<TaskExt> punchInTaskOneExtList = piMultiTaskExtList.stream()
-                    .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
-            // 额外次数
-            int extractCount = piMultiTaskHistory.getPunchInDoneCount() - piMultiTask.getPunchInDoneCount();
-            extraPoints = calculateExtraPoints(piMultiTask.getExtraMethod(), extractCount, piMultiTask.getExtraPoints(), punchInTaskOneExtList);
-        }
-
-        // 连续完成额外积分
-        List<TaskExt> punchInTaskMultiExtList = piMultiTaskExtList.stream()
-            .filter(v -> PunchInDimensionEnum.MULTI_DAY.equals(v.getDimension())).collect(Collectors.toList());
-        int taskPoints = calculateContinuePoints(piMultiTask, punchInTaskMultiExtList, piStatus);
-
-        return basicPoints + extraPoints + taskPoints;
-    }
-
-
-    /**
-     * 计算额外积分
-     * @param extraMethod 计算方式
-     * @param extraCount 额外超出次数
-     * @param fixedPoints 固定积分
-     * @param taskExtList 拓展积分信息
-     * @return
-     */
-    private int calculateExtraPoints(PunchInExtraMethodEnum extraMethod, Integer extraCount, Integer fixedPoints,  List<TaskExt> taskExtList) {
-
-        // 超出次数 如果等于0则没有超出部分,不用计算
-        extraCount = Optional.ofNullable(extraCount).orElse(0);
-        if (extraCount == 0) {
-            return 0;
-        }
-
-        // 固定计算
-        if (PunchInExtraMethodEnum.FIXED.equals(extraMethod)) {
-            return extraCount * fixedPoints;
-        }
-
-        // 区间计算
-        if (PunchInExtraMethodEnum.INTERVAL.equals(extraMethod)
-                && !CollectionUtils.isEmpty(taskExtList)) {
-            return calculateIntervalPoints(extraCount, taskExtList);
-        }
-
-        return 0;
-    }
-
-    /**
-     * 计算连续打卡积分(打卡任务/打卡多任务)
-     * @param continueTask 连续任务
-     * @param taskExtList 任务拓展信息
-     * @param piStatus 状态信息
-     * @return
-     */
-    private int calculateContinuePoints(ContinueTask continueTask, List<TaskExt> taskExtList,
-                                        PiStatus piStatus) {
-        // 没有启用多任务积分计算、或是连续打卡状态为中断、或是没有拓展信息 则不进行计算
-        if (CommonEnableStatusEnum.DISABLED.equals(continueTask.getTaskPointsStatus())
-            || ContinueStatusEnum.INTERRUPTED.equals(piStatus.getTaskContinueStatus())
-            || CollectionUtils.isEmpty(taskExtList)) {
-            return 0;
-        }
-
-        return calculateIntervalPoints(piStatus.getTaskContinueDay(), taskExtList);
-    }
-
-    /**
-     * 计算区间积分
-     * @param extraCount 额外次数
-     * @param taskExtList 任务拓展信息
-     * @return
-     */
-    private int calculateIntervalPoints(Integer extraCount, List<TaskExt> taskExtList) {
-        extraCount = Optional.ofNullable(extraCount).orElse(0);
-        // 积分
-        int points = 0;
-        // 第二轮标志
-        boolean secondRound = false;
-        // 上一轮的值
-        int prevInitialValue = 0;
-        // 拓展信息 根据InitialValue倒序排列
-        taskExtList.sort(Comparator.comparing(TaskExt::getInitialValue).reversed());
+    public List<SettlePointsHistoryVO> querySettlePointsHistory(String settleMonth) {
+        Assert.isNullInBusiness(settleMonth, "结算月份不能为空");
 
-        for (TaskExt taskExt : taskExtList) {
-            // 比较结果
-            int compareValue = Integer.compare(extraCount, taskExt.getInitialValue());
-            // 如果连续日期小于initialValue,则跳过
-            if (compareValue == -1) {
-                continue;
-            }
-            // 额外奖励数
-            int tempExtraCount = 0;
-            // 如果连续日期大于等于initialValue,则进行第一次计算,并把第二轮标志位设置为true,第二轮/后续轮只需要用上一轮的值进行计算
-            if (secondRound) {
-                tempExtraCount = prevInitialValue - taskExt.getInitialValue();
-            } else if (compareValue >= 0) {
-                tempExtraCount = extraCount - taskExt.getInitialValue() + 1;
-                secondRound = true;
-            }
-            // 计算积分
-            points += taskExt.getExtraPoints() * tempExtraCount;
-            // 记录本轮的initialValue
-            prevInitialValue = taskExt.getInitialValue();
+        List<SettlePointsHistory> settlePointsHistories = settlePointsHistoryService.querySettlePointsHistory(UserUtils.getCurrentUserId(), settleMonth);
+        if (CollectionUtils.isEmpty(settlePointsHistories)) {
+            return List.of();
         }
 
-        return points;
+        return settlePointsHistories.stream().map(settlePointsHistory -> {
+            SettlePointsHistoryVO settlePointsHistoryVO = new SettlePointsHistoryVO();
+            BeanUtils.copyProperties(settlePointsHistory, settlePointsHistoryVO);
+            return settlePointsHistoryVO;
+        }).collect(Collectors.toList());
     }
 }

+ 0 - 507
src/main/java/com/punchsettle/server/service/manager/impl/SettleManagerV1Impl.java

@@ -1,507 +0,0 @@
-package com.punchsettle.server.service.manager.impl;
-
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.LocalTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import com.punchsettle.server.atomic.entity.PunchIn;
-import com.punchsettle.server.atomic.entity.PunchInRecord;
-import com.punchsettle.server.atomic.entity.PunchInRecordSettlementRela;
-import com.punchsettle.server.atomic.entity.PunchInSettlement;
-import com.punchsettle.server.atomic.entity.SettlePointsHistory;
-import com.punchsettle.server.atomic.entity.SettlementTask;
-import com.punchsettle.server.atomic.entity.User;
-import com.punchsettle.server.atomic.service.IPunchInRecordService;
-import com.punchsettle.server.atomic.service.IPunchInRecordSettlementRelaService;
-import com.punchsettle.server.atomic.service.IPunchInService;
-import com.punchsettle.server.atomic.service.IPunchInSettlementService;
-import com.punchsettle.server.atomic.service.ISettlePointsHistoryService;
-import com.punchsettle.server.atomic.service.ISettlementTaskService;
-import com.punchsettle.server.atomic.service.IUserService;
-import com.punchsettle.server.common.exception.BusinessException;
-import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.constant.PunchInCategoryEnum;
-import com.punchsettle.server.constant.PunchInRuleEnum;
-import com.punchsettle.server.constant.PunchInSettleTypeEnum;
-import com.punchsettle.server.constant.PunchInStatusV1Enum;
-import com.punchsettle.server.pojo.punchinV1.PunchInQuery;
-import com.punchsettle.server.pojo.punchinV1.PunchInRecordQuery;
-import com.punchsettle.server.pojo.settle.SettleInfoDto;
-import com.punchsettle.server.pojo.settle.SettlePointsHistoryVO;
-import com.punchsettle.server.pojo.settle.SettleQuery;
-import com.punchsettle.server.pojo.settle.SettleRequest;
-import com.punchsettle.server.pojo.settle.SettleResultDto;
-import com.punchsettle.server.pojo.settle.SettleVO;
-import com.punchsettle.server.service.manager.ISettleManagerV1;
-import com.punchsettle.server.utiis.DateUtils;
-import com.punchsettle.server.utiis.SpringUtils;
-import com.punchsettle.server.utiis.UserUtils;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * @author tyuio
- * @version 1.0.0
- * @description 结算服务类
- * @date 2024/12/12 22:29
- */
-@Slf4j
-@Service
-public class SettleManagerV1Impl implements ISettleManagerV1 {
-
-    @Autowired
-    private IPunchInService punchInService;
-
-    @Autowired
-    private IPunchInRecordService punchInRecordService;
-
-    @Autowired
-    private IUserService userService;
-
-    @Autowired
-    private IPunchInSettlementService punchInSettlementService;
-
-    @Autowired
-    private ISettlementTaskService settlementTaskService;
-
-    @Autowired
-    private IPunchInRecordSettlementRelaService punchInRecordSettlementRelaService;
-
-    @Autowired
-    private ISettlePointsHistoryService settlePointsHistoryService;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void settleHandler(PunchInSettleTypeEnum settleType, LocalDate settleDate, List<Long> userIds, List<Long> punchInIds) {
-        if (Objects.isNull(settleType)) {
-            log.info("结算任务异常,原因:没有指定结算类型");
-            return;
-        }
-
-        if (Objects.isNull(settleDate)) {
-            log.info("结算任务异常,原因:没有指定结算日期");
-            return;
-        }
-
-        if (settleDate.isAfter(LocalDate.now())) {
-            BusinessException.throwFail(String.format("结算任务异常,原因:结算日期{} 不能大于等于今天", settleDate));
-        }
-
-        log.info("结算任务开始,结算类型:{}, 结算日期:{}", settleType.getName(), settleDate);
-        Timestamp settleStartTime = new Timestamp(System.currentTimeMillis());
-
-        SettleInfoDto settleInfo = new SettleInfoDto(settleType, settleDate);
-
-        // 读取用户数据,如果userIds为空则结算所有的用户
-        userIds = Optional.ofNullable(userIds).orElseGet(() -> {
-            PunchInRecordQuery recordQuery = new PunchInRecordQuery();
-            recordQuery.setStartDate(settleInfo.getSettleDateStr());
-            recordQuery.setEndDate(settleInfo.getSettleDateStr());
-            List<PunchInRecord> punchInRecords = punchInRecordService.listByCondition(recordQuery);
-            return punchInRecords.stream().map(PunchInRecord::getCreatedBy).collect(Collectors.toList());
-        });
-        List<User> users = userService.listByIds(userIds);
-        if (CollectionUtils.isEmpty(users)) {
-            log.info("结算任务结束,原因:没有找到待结算的用户信息");
-            return;
-        }
-
-        // 读取用户的打卡任务,如果punchIds为空则结算用户所有的打卡任务
-        PunchInQuery punchInQuery = new PunchInQuery();
-        punchInQuery.setUserIds(userIds);
-        if (!CollectionUtils.isEmpty(punchInIds)) {
-            punchInQuery.setPunchInIds(punchInIds);
-        }
-        List<PunchIn> punchIns = punchInService.listByCondition(punchInQuery);
-        if (CollectionUtils.isEmpty(punchIns)) {
-            log.info("结算任务结束,原因:没有找到打卡任务");
-            return;
-        }
-        // 获取最新的打卡任务ID
-        punchInIds = punchIns.stream().map(PunchIn::getId).collect(Collectors.toList());
-
-        // 获取结算日的打卡记录
-        PunchInRecordQuery recordQuery = new PunchInRecordQuery();
-        recordQuery.setStartDate(settleInfo.getSettleDateStr());
-        recordQuery.setEndDate(settleInfo.getSettleDateStr());
-        recordQuery.setPunchInIds(punchInIds);
-        List<PunchInRecord> punchInRecords = punchInRecordService.listByCondition(recordQuery);
-        if (CollectionUtils.isEmpty(punchInRecords) && !PunchInSettleTypeEnum.REMAKE.equals(settleInfo.getSettleType())) {
-            log.info("结算任务结束,原因:没有打卡记录");
-            return;
-        }
-
-        // 获取一周的打卡记录
-        Map<Long, List<PunchInRecord>> weeklyPunchInRecords = Map.of();
-        if (settleInfo.getSundayFlag() || PunchInSettleTypeEnum.REMAKE.equals(settleInfo.getSettleType())) {
-            PunchInRecordQuery weeklyRecordQuery = new PunchInRecordQuery();
-            weeklyRecordQuery.setPunchInIds(punchInIds);
-            weeklyRecordQuery.setStartDate(DateUtils.getLastWeekMonday(settleInfo.getSettleDate()).toString());
-            weeklyRecordQuery.setEndDate(DateUtils.getLastWeekSunday(settleInfo.getSettleDate()).toString());
-            List<PunchInRecord> punchInRecordForWeeks = punchInRecordService.listByCondition(weeklyRecordQuery);
-            if (!CollectionUtils.isEmpty(punchInRecordForWeeks)) {
-                weeklyPunchInRecords = punchInRecordForWeeks.stream().collect(Collectors.groupingBy(PunchInRecord::getPunchInId));
-            }
-        }
-
-        // 用户-打卡任务分组
-        Map<Long, List<PunchIn>> userPunchInMap = punchIns.stream().collect(Collectors.groupingBy(PunchIn::getCreatedBy));
-        // 打卡任务-打卡记录 map
-        Map<Long, PunchInRecord> punchInRecordMap = punchInRecords.stream().collect(Collectors.toMap(PunchInRecord::getPunchInId, Function.identity(), (key1, key2) -> key1));
-
-        // 先创建结算任务执行记录
-        SettlementTask settlementTask = new SettlementTask();
-        settlementTask.setSettleDate(settleDate.toString());
-        settlementTask.setStartTime(settleStartTime);
-        settlementTask.setProcessedNum(users.size());
-        settlementTaskService.insert(settlementTask);
-
-        // 结算
-        List<SettleResultDto> settleResultDtoList = new ArrayList<>();
-        for (User user : users) {
-            SettleResultDto settleResult = settle(settleInfo, user, userPunchInMap.get(user.getId()), punchInRecordMap, weeklyPunchInRecords);
-            settleResultDtoList.add(settleResult);
-        }
-
-        // 更新数据
-        // 待更新的用户
-        List<User> updateUsers = new ArrayList<>();
-        // 待更新的打卡记录
-        List<PunchInRecord> updatePunchInRecords = new ArrayList<>();
-        // 待新增的打卡记录
-        List<PunchInRecord> addPunchInRecords = new ArrayList<>();
-        // 待新增的打卡结算信息
-        List<PunchInSettlement> addPunchInSettlements = new ArrayList<>();
-
-        for (SettleResultDto settleResult : settleResultDtoList) {
-            updateUsers.add(settleResult.getUpdateUser());
-            addPunchInRecords.addAll(settleResult.getAddPunchInRecords());
-            updatePunchInRecords.addAll(settleResult.getUpdatePunchInRecords());
-            addPunchInSettlements.add(settleResult.getAddPunchInSettlement());
-        }
-
-        // 更新用户奖励信息
-        if (!CollectionUtils.isEmpty(updateUsers)) {
-            userService.batchUpdateUser(updateUsers);
-        }
-
-        // 新增打卡记录
-        if (!CollectionUtils.isEmpty(addPunchInRecords)) {
-            punchInRecordService.batchInsert(addPunchInRecords);
-        }
-
-        // 更新已有的打卡记录
-        if (!CollectionUtils.isEmpty(updatePunchInRecords)) {
-            punchInRecordService.batchUpdate(updatePunchInRecords);
-        }
-
-        // 新增结算信息
-        if (!CollectionUtils.isEmpty(addPunchInSettlements)) {
-            // 补充本次的计算任务ID
-            addPunchInSettlements.stream().forEach(v -> v.setSettlementTaskId(settlementTask.getId()));
-            punchInSettlementService.batchInsert(addPunchInSettlements);
-        }
-
-        // 新增关联信息
-        if (!CollectionUtils.isEmpty(settleResultDtoList)) {
-            List<PunchInRecordSettlementRela> relaList = buildPunchInRecordSettlementRelaList(settleResultDtoList);
-            if (!CollectionUtils.isEmpty(relaList)) {
-                punchInRecordSettlementRelaService.batchInsert(relaList);
-            }
-        }
-
-        // 构造并新增结算任务信息
-        settlementTask.setProcessedSettleNum(addPunchInSettlements.size());
-        settlementTask.setProcessedUnsettleNum(settlementTask.getProcessedNum() - settlementTask.getProcessedSettleNum());
-        settlementTask.setEndTime(new Timestamp(System.currentTimeMillis()));
-        settlementTaskService.update(settlementTask);
-
-        log.info("结算任务结束");
-    }
-
-    /**
-     * 结算
-     * @param settleInfo 结算基本信息
-     * @param user 待结算的用户
-     * @param punchIns 打卡任务
-     * @param punchInRecordMap 打卡任务-打卡记录 map
-     * @param weeklyPunchInRecordMap 打卡任务-一周打卡记录 map
-     * @return
-     */
-    private SettleResultDto settle(SettleInfoDto settleInfo, User user, List<PunchIn> punchIns, Map<Long, PunchInRecord> punchInRecordMap, Map<Long, List<PunchInRecord>> weeklyPunchInRecordMap) {
-        // 结算奖励数
-        int settleRewardNum = 0;
-        // 待更新的打卡记录
-        List<PunchInRecord> updatePunchInRecords = new ArrayList<>();
-        // 待新增的打卡记录
-        List<PunchInRecord> addPunchInRecords = new ArrayList<>();
-        // 结算
-        for (PunchIn punchIn : punchIns) {
-            // 获取打卡记录
-            PunchInRecord punchInRecord = punchInRecordMap.get(punchIn.getId());
-            // 不是补打卡且不存在打卡记录直接跳过,无须结算和更新记录状态
-            if (!PunchInSettleTypeEnum.REMAKE.equals(settleInfo.getSettleType()) && Objects.isNull(punchInRecord)) {
-                continue;
-            }
-            // 判断是否满足打卡规则
-            PunchInStatusV1Enum punchInStatus = judgePunchInStatus(punchIn, punchInRecord);
-            // 不是补卡或打卡任务未完成,则跳过
-            if (!PunchInSettleTypeEnum.REMAKE.equals(settleInfo.getSettleType()) && PunchInStatusV1Enum.UN_FINISH.equals(punchInStatus)) {
-                PunchInRecord updatePunchInRecord = buildPunchInRecordForSettle(punchIn);
-                updatePunchInRecord.setId(punchInRecord.getId());
-                updatePunchInRecord.setPunchInStatus(punchInStatus);
-                updatePunchInRecords.add(updatePunchInRecord);
-                continue;
-            }
-
-            // 补打卡,完全没有打卡记录则需要补充打卡记录
-            if (PunchInSettleTypeEnum.REMAKE.equals(settleInfo.getSettleType()) && Objects.isNull(punchInRecord)) {
-                punchInRecord = buildPunchInRecordForSettle(punchIn);
-                punchInRecord.setPunchInId(punchIn.getId());
-                punchInRecord.setPunchInDate(settleInfo.getSettleDateStr());
-                punchInRecord.setPunchInStatus(PunchInStatusV1Enum.REMAKE_FINISH);
-                addPunchInRecords.add(punchInRecord);
-            }
-
-            // 补打卡,已有打卡记录但是不满足打卡规则,则需要对打卡记录做准备
-            if (PunchInSettleTypeEnum.REMAKE.equals(settleInfo.getSettleType()) && PunchInStatusV1Enum.UN_FINISH.equals(punchInStatus)) {
-                fillTrack(punchIn, punchInRecord);
-            }
-
-            // 不是补卡,且打卡状态为完成,需要更新打卡状态为完成
-            if (Objects.isNull(punchInRecord.getPunchInStatus()) || PunchInStatusV1Enum.DOING.equals(punchInRecord.getPunchInStatus())) {
-                PunchInRecord updatePunchInRecord = buildPunchInRecordForSettle(punchIn);
-                updatePunchInRecord.setId(punchInRecord.getId());
-                updatePunchInRecord.setPunchInStatus(punchInStatus);
-                updatePunchInRecords.add(updatePunchInRecord);
-            }
-
-            // 周末双倍奖励,否则计算普通奖励
-            settleRewardNum += settleInfo.getWeekendFlag() && punchIn.getWeekendDoubleFlag() ? punchIn.getRewardNum() * 2 : punchIn.getRewardNum();
-            // 计算全勤双倍奖励
-            if (judgeFullAttendance(settleInfo, punchIn, weeklyPunchInRecordMap)) {
-                settleRewardNum += punchIn.getRewardNum() * 2;
-            }
-        }
-
-        // 计算结算前后,用户奖励数的变化
-//        int beforeSettleRewardNum = user.getUnclaimedRewardNum();
-        int beforeSettleRewardNum = 0;
-        int afterSettleRewardNum = beforeSettleRewardNum + settleRewardNum;
-//        int totalRewardNum = user.getTotalRewardNum() + settleRewardNum;
-        int totalRewardNum = 0;
-
-        // 构造结算信息
-        PunchInSettlement addPunchInSettlement = new PunchInSettlement();
-        addPunchInSettlement.setUserId(user.getId());
-        addPunchInSettlement.setSettleRewardNum(settleRewardNum);
-        addPunchInSettlement.setSettlementTime(new Timestamp(System.currentTimeMillis()));
-        addPunchInSettlement.setBeforeSettleRewardNum(beforeSettleRewardNum);
-        addPunchInSettlement.setAfterSettleRewardNum(afterSettleRewardNum);
-
-        // 构造用户奖励信息
-        User updateUser = new User();
-        updateUser.setId(user.getId());
-//        updateUser.setTotalRewardNum(totalRewardNum);
-//        updateUser.setUnclaimedRewardNum(afterSettleRewardNum);
-
-        SettleResultDto settleResultDto = new SettleResultDto();
-        settleResultDto.setUpdateUser(updateUser);
-        settleResultDto.setAddPunchInRecords(addPunchInRecords);
-        settleResultDto.setUpdatePunchInRecords(updatePunchInRecords);
-        settleResultDto.setAddPunchInSettlement(addPunchInSettlement);
-        return settleResultDto;
-    }
-
-    @Override
-    public PunchInStatusV1Enum judgePunchInStatus(PunchIn punchIn, PunchInRecord punchInRecord) {
-        // 没有打卡记录,直接没完成,包含单次打卡的情况无需额外判断
-        if (Objects.isNull(punchInRecord)) {
-            return PunchInStatusV1Enum.UN_FINISH;
-        }
-
-        // 单次打卡
-        if (PunchInCategoryEnum.SINGLE.equals(punchIn.getCategory())) {
-            return PunchInStatusV1Enum.FINISH;
-        }
-
-        // 计数打卡
-        if (PunchInCategoryEnum.COUNT.equals(punchIn.getCategory())) {
-            Integer recordCountTrack = Optional.ofNullable(punchInRecord.getCountTrack()).orElse(0);
-            if (PunchInRuleEnum.GREATER_OR_EQUAL.equals(punchIn.getRule()) && recordCountTrack.compareTo(punchIn.getCountTrack()) == -1) {
-                return PunchInStatusV1Enum.UN_FINISH;
-            }
-            if (PunchInRuleEnum.LESS_OR_EQUAL.equals(punchIn.getRule()) && recordCountTrack.compareTo(punchIn.getCountTrack()) == 1) {
-                return PunchInStatusV1Enum.UN_FINISH;
-            }
-
-            return PunchInStatusV1Enum.FINISH;
-        }
-
-        // 计时打卡
-        if (PunchInCategoryEnum.TIME.equals(punchIn.getCategory())) {
-            LocalTime recordTimeTrack = Optional.ofNullable(punchInRecord.getTimeTrack()).orElse(LocalTime.parse("00:00:00.000"));
-            if (PunchInRuleEnum.GREATER_OR_EQUAL.equals(punchIn.getRule()) && recordTimeTrack.compareTo(punchIn.getTimeTrack()) == -1) {
-                return PunchInStatusV1Enum.UN_FINISH;
-            }
-            if (PunchInRuleEnum.LESS_OR_EQUAL.equals(punchIn.getRule()) && recordTimeTrack.compareTo(punchIn.getTimeTrack()) == 1) {
-                return PunchInStatusV1Enum.UN_FINISH;
-            }
-
-            return PunchInStatusV1Enum.FINISH;
-        }
-
-        return PunchInStatusV1Enum.UN_FINISH;
-    }
-
-    /**
-     * 填充打卡记录的记录信息(不用考虑单次打卡的情况)
-     * @param punchIn
-     * @param punchInRecord
-     */
-    private void fillTrack(PunchIn punchIn, PunchInRecord punchInRecord) {
-        // 计数打卡
-        if (PunchInCategoryEnum.COUNT.equals(punchIn.getCategory())) {
-            if (PunchInRuleEnum.GREATER_OR_EQUAL.equals(punchIn.getRule())) {
-                punchInRecord.setCountTrack(punchIn.getCountTrack() + 1);
-            }
-            if (PunchInRuleEnum.LESS_OR_EQUAL.equals(punchIn.getRule())){
-                punchInRecord.setCountTrack(punchIn.getCountTrack() - 1);
-            }
-        }
-
-        // 计时打卡
-        if (PunchInCategoryEnum.TIME.equals(punchIn.getCategory())) {
-            if (PunchInRuleEnum.GREATER_OR_EQUAL.equals(punchIn.getRule())) {
-                punchInRecord.setTimeTrack(punchIn.getTimeTrack().plusSeconds(1));
-            }
-            if (PunchInRuleEnum.LESS_OR_EQUAL.equals(punchIn.getRule())){
-                punchInRecord.setTimeTrack(punchIn.getTimeTrack().minusSeconds(1));
-            }
-        }
-    }
-
-    /**
-     * 判断是否进行全勤结算
-     * @param settleInfo 结算信息
-     * @param punchIn 打卡任务
-     * @param weeklyPunchInRecordMap 一周打卡记录
-     * @return true-
-     */
-    private boolean judgeFullAttendance(SettleInfoDto settleInfo, PunchIn punchIn, Map<Long, List<PunchInRecord>> weeklyPunchInRecordMap) {
-        // 没有启用全勤奖励则跳过
-        if (!punchIn.getFullAttendanceFlag()) {
-            return false;
-        }
-
-        // 不是周日结算或者补打卡则跳过,
-        if (!settleInfo.getSundayFlag() && !PunchInSettleTypeEnum.REMAKE.equals(settleInfo.getSettleType())) {
-            return false;
-        }
-
-        // 获取一周的完成打卡的打卡记录,并且要排除结算日这天的记录
-        List<PunchInRecord> weeklyFinishRecord = Optional.ofNullable(weeklyPunchInRecordMap.get(punchIn.getId())).orElse(new ArrayList<>())
-                .stream().filter(record -> !settleInfo.getSettleDateStr().equals(record.getPunchInDate()) && (PunchInStatusV1Enum.FINISH.equals(record.getPunchInStatus()) || PunchInStatusV1Enum.REMAKE_FINISH.equals(record.getPunchInStatus())))
-                .collect(Collectors.toList());
-
-        // 1个是容错允许不打卡或未完成打卡,1个是当天的结算打卡来到这段逻辑就认为已经完成打卡,因此只要有5个完成打卡,则认为全勤
-        return weeklyFinishRecord.size() >= 5;
-    }
-
-    /**
-     * 构建待更新结算数据的打卡记录
-     * @return
-     */
-    private PunchInRecord buildPunchInRecordForSettle(PunchIn punchIn) {
-        PunchInRecord updatePunchInRecord = new PunchInRecord();
-        updatePunchInRecord.setSettleRewardNum(punchIn.getRewardNum());
-        updatePunchInRecord.setSettleCategory(punchIn.getCategory());
-        updatePunchInRecord.setSettleRule(punchIn.getRule());
-        updatePunchInRecord.setSettleCountTrack(punchIn.getCountTrack());
-        updatePunchInRecord.setSettleTimeTrack(punchIn.getTimeTrack());
-        return updatePunchInRecord;
-    }
-
-    /**
-     * 构造打卡记录与结算记录的关联关系
-     * @param settleResultDtos
-     * @return
-     */
-    private static List<PunchInRecordSettlementRela> buildPunchInRecordSettlementRelaList(List<SettleResultDto> settleResultDtos) {
-        if (CollectionUtils.isEmpty(settleResultDtos)) {
-            return List.of();
-        }
-
-        List<PunchInRecordSettlementRela> relaList = new ArrayList();
-        // 补充关联关系ID(结算记录ID、打卡记录ID)
-        for (SettleResultDto settleResultDto : settleResultDtos) {
-            for (PunchInRecord punchInRecord : settleResultDto.getAddPunchInRecords()) {
-                PunchInRecordSettlementRela rela = new PunchInRecordSettlementRela();
-                rela.setRecordId(punchInRecord.getId());
-                rela.setSettlementId(settleResultDto.getAddPunchInSettlement().getId());
-                relaList.add(rela);
-            }
-
-            for (PunchInRecord punchInRecord : settleResultDto.getUpdatePunchInRecords()) {
-                PunchInRecordSettlementRela rela = new PunchInRecordSettlementRela();
-                rela.setRecordId(punchInRecord.getId());
-                rela.setSettlementId(settleResultDto.getAddPunchInSettlement().getId());
-                relaList.add(rela);
-            }
-        }
-        return relaList;
-    }
-
-    @Override
-    public void manualSettle(SettleRequest settleRequest) {
-        // TODO 这里考虑加判断条件防止重复手动结算
-        Assert.isNullInBusiness(settleRequest, "结算请求不能为空");
-        if (!PunchInSettleTypeEnum.OPS.equals(settleRequest.getSettleType())) {
-            BusinessException.throwFail("非运维结算,禁止执行");
-        }
-        SpringUtils.getBean(ISettleManagerV1.class).settleHandler(settleRequest.getSettleType(), LocalDate.parse(settleRequest.getSettleDate()), settleRequest.getUserIds(), settleRequest.getPunchInIds());
-    }
-
-    @Override
-    public List<SettleVO> querySettle(SettleQuery query) {
-        SimpleDateFormat sdf = DateUtils.buildDateTimeFormat();
-
-        List<PunchInSettlement> punchInSettlements = punchInSettlementService.listByCondition(query);
-        return punchInSettlements.stream().map(settlement -> {
-            SettleVO settleVO = new SettleVO();
-            BeanUtils.copyProperties(settlement, settleVO);
-            settleVO.setSettlementTime(sdf.format(settlement.getSettlementTime()));
-            return settleVO;
-        }).toList();
-    }
-
-    @Override
-    public List<SettlePointsHistoryVO> querySettlePointsHistory(String settleMonth) {
-        Assert.isNullInBusiness(settleMonth, "结算月份不能为空");
-
-        List<SettlePointsHistory> settlePointsHistories = settlePointsHistoryService.querySettlePointsHistory(UserUtils.getCurrentUserId(), settleMonth);
-        if (CollectionUtils.isEmpty(settlePointsHistories)) {
-            return List.of();
-        }
-
-        return settlePointsHistories.stream().map(settlePointsHistory -> {
-            SettlePointsHistoryVO settlePointsHistoryVO = new SettlePointsHistoryVO();
-            BeanUtils.copyProperties(settlePointsHistory, settlePointsHistoryVO);
-            return settlePointsHistoryVO;
-        }).collect(Collectors.toList());
-    }
-}

+ 1 - 1
src/main/java/com/punchsettle/server/service/manager/impl/StatPiTaskWeekServiceImpl.java

@@ -4,7 +4,7 @@ import com.punchsettle.server.atomic.entity.StatPiTaskWeek;
 import com.punchsettle.server.atomic.mapper.StatPiTaskWeekMapper;
 import com.punchsettle.server.atomic.service.IStatPiTaskWeekService;
 import com.punchsettle.server.common.utils.Assert;
-import com.punchsettle.server.pojo.punchIn.StatPiTaskWeekQuery;
+import com.punchsettle.server.pojo.stat.StatPiTaskWeekQuery;
 import com.punchsettle.server.utiis.WeekendUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác