浏览代码

推荐记录 + 小程序接口

wulei 3 月之前
父节点
当前提交
6ab0baa1a4
共有 16 个文件被更改,包括 246 次插入34 次删除
  1. 2 2
      snowy-admin-web/src/views/biz/rebaterecord/index.vue
  2. 13 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/controller/BizRebateRecordController.java
  3. 7 4
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/entity/BizRebateRecord.java
  4. 2 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/mapper/mapping/BizRebateRecordMapper.xml
  5. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/param/BizRebateRecordAddParam.java
  6. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/param/BizRebateRecordEditParam.java
  7. 12 4
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/service/BizRebateRecordService.java
  8. 21 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/service/impl/BizRebateRecordServiceImpl.java
  9. 23 8
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rechargerecord/controller/BizRechargeRecordController.java
  10. 14 6
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rechargerecord/service/BizRechargeRecordService.java
  11. 11 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rechargerecord/service/impl/BizRechargeRecordServiceImpl.java
  12. 14 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/recommendrecord/controller/BizRecommendRecordController.java
  13. 12 4
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/recommendrecord/service/BizRecommendRecordService.java
  14. 16 2
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/recommendrecord/service/impl/BizRecommendRecordServiceImpl.java
  15. 96 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/task/rebateEffectTask.java
  16. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/wx/WxPayNotifyController.java

+ 2 - 2
snowy-admin-web/src/views/biz/rebaterecord/index.vue

@@ -84,8 +84,8 @@
 			dataIndex: 'rebateRatio'
 		},
 		{
-			title: '返利时间',
-			dataIndex: 'createTime'
+			title: '充值时间',
+			dataIndex: 'rechargeTime'
 		},
 		{
 			title: '状态',

+ 13 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/controller/BizRebateRecordController.java

@@ -62,6 +62,19 @@ public class BizRebateRecordController {
         return CommonResult.data(bizRebateRecordService.page(bizRebateRecordPageParam));
     }
 
+    /**
+     * 获取用户返利记录分页
+     *
+     * @author wulei
+     * @date  2025/02/06 17:39
+     */
+    @Operation(summary = "获取用户返利记录分页")
+    @GetMapping("/biz/rebaterecord/userPage")
+    public CommonResult<Page<BizRebateRecord>> userPage(BizRebateRecordPageParam bizRebateRecordPageParam) {
+        return CommonResult.data(bizRebateRecordService.userPage(bizRebateRecordPageParam));
+    }
+
+
     /**
      * 获取返利记录详情
      *

+ 7 - 4
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/entity/BizRebateRecord.java

@@ -39,7 +39,7 @@ public class BizRebateRecord extends CommonEntity {
 
     /** 代金券金额 */
     @Schema(description = "代金券金额")
-    private BigDecimal rebateAmout;
+    private BigDecimal rebateAmount;
 
     /** 充值金额 */
     @Schema(description = "充值金额")
@@ -56,7 +56,7 @@ public class BizRebateRecord extends CommonEntity {
     private String recommendUserId;
 
     /** 推荐人 */
-    @Schema(description = "推荐人")
+    @Schema(description = "推荐人姓名")
     @TableField(exist = false)
     private String recommendUserName;
 
@@ -69,7 +69,7 @@ public class BizRebateRecord extends CommonEntity {
     private String rechargeUserId;
 
     /** 充值人 */
-    @Schema(description = "充值人")
+    @Schema(description = "充值人姓名")
     @TableField(exist = false)
     private String rechargeUserName;
 
@@ -77,5 +77,8 @@ public class BizRebateRecord extends CommonEntity {
     @Schema(description = "代金券状态: 1. 待生效 2.已生效")
     private String rebateStatus;
 
-
+    /** 充值时间 */
+    @Schema(description = "充值时间")
+    @TableField(exist = false)
+    private Date rechargeTime;
 }

+ 2 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/mapper/mapping/BizRebateRecordMapper.xml

@@ -5,7 +5,7 @@
     <select id="page" resultType="vip.xiaonuo.biz.modular.rebaterecord.entity.BizRebateRecord">
         SELECT
             t.id,
-            t.rebate_amout,
+            t.rebate_amount,
             t.recharge_record_id,
             t.recommend_user_id,
             t.recharge_user_id,
@@ -14,6 +14,7 @@
             u1.`NAME` rechargeUserName,
             u2.`NAME` recommendUserName,
             r.recharge_amount,
+            r.recharge_time,
             r.rebate_ratio
         FROM
             biz_rebate_record t

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/param/BizRebateRecordAddParam.java

@@ -33,7 +33,7 @@ public class BizRebateRecordAddParam {
 
     /** 代金券金额 */
     @Schema(description = "代金券金额")
-    private BigDecimal rebateAmout;
+    private BigDecimal rebateAmount;
 
     /** 推荐人 */
     @Schema(description = "推荐人")

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/param/BizRebateRecordEditParam.java

@@ -38,7 +38,7 @@ public class BizRebateRecordEditParam {
 
     /** 代金券金额 */
     @Schema(description = "代金券金额")
-    private BigDecimal rebateAmout;
+    private BigDecimal rebateAmount;
 
     /** 推荐人 */
     @Schema(description = "推荐人")

+ 12 - 4
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/service/BizRebateRecordService.java

@@ -26,7 +26,7 @@ import java.util.List;
  * 返利记录Service接口
  *
  * @author wulei
- * @date  2025/02/06 17:39
+ * @date 2025/02/06 17:39
  **/
 public interface BizRebateRecordService extends IService<BizRebateRecord> {
 
@@ -34,15 +34,23 @@ public interface BizRebateRecordService extends IService<BizRebateRecord> {
      * 获取返利记录分页
      *
      * @author wulei
-     * @date  2025/02/06 17:39
+     * @date 2025/02/06 17:39
      */
     Page<BizRebateRecord> page(BizRebateRecordPageParam bizRebateRecordPageParam);
 
+    /**
+     * 获取用户返利记录分页
+     *
+     * @author wulei
+     * @date 2025/02/06 17:39
+     */
+    Page<BizRebateRecord> userPage(BizRebateRecordPageParam bizRebateRecordPageParam);
+
     /**
      * 获取返利记录详情
      *
      * @author wulei
-     * @date  2025/02/06 17:39
+     * @date 2025/02/06 17:39
      */
     BizRebateRecord detail(BizRebateRecordIdParam bizRebateRecordIdParam);
 
@@ -50,7 +58,7 @@ public interface BizRebateRecordService extends IService<BizRebateRecord> {
      * 获取返利记录详情
      *
      * @author wulei
-     * @date  2025/02/06 17:39
+     * @date 2025/02/06 17:39
      **/
     BizRebateRecord queryEntity(String id);
 }

+ 21 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rebaterecord/service/impl/BizRebateRecordServiceImpl.java

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
@@ -63,6 +64,26 @@ public class BizRebateRecordServiceImpl extends ServiceImpl<BizRebateRecordMappe
         return baseMapper.page(CommonPageRequest.defaultPage(), queryWrapper);
     }
 
+    @Override
+    public Page<BizRebateRecord> userPage(BizRebateRecordPageParam bizRebateRecordPageParam) {
+        QueryWrapper<BizRebateRecord> queryWrapper = new QueryWrapper<BizRebateRecord>().checkSqlInjection();
+        if (ObjectUtil.isNotEmpty(bizRebateRecordPageParam.getRecommendSearchKey())) {
+            queryWrapper.and(s -> s.like("u2.NAME", bizRebateRecordPageParam.getRecommendSearchKey())
+                    .or().like("u2.ACCOUNT", bizRebateRecordPageParam.getRecommendSearchKey()));
+        }
+        if (ObjectUtil.isNotEmpty(bizRebateRecordPageParam.getRechargeSearchKey())) {
+            queryWrapper.and(s -> s.like("u1.NAME", bizRebateRecordPageParam.getRechargeSearchKey())
+                    .or().like("u1.ACCOUNT", bizRebateRecordPageParam.getRechargeSearchKey()));
+        }
+        if (ObjectUtil.isNotEmpty(bizRebateRecordPageParam.getRebateStatus())) {
+            queryWrapper.eq("t.rebate_status", bizRebateRecordPageParam.getRebateStatus());
+        }
+        queryWrapper.eq("t.recommend_user_id", StpLoginUserUtil.getLoginUser().getId());
+        queryWrapper.eq("t.delete_flag", CommonDeleteFlagEnum.NOT_DELETE);
+        queryWrapper.orderByDesc("t.create_time");
+        return baseMapper.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
     @Override
     public BizRebateRecord detail(BizRebateRecordIdParam bizRebateRecordIdParam) {
         return this.queryEntity(bizRebateRecordIdParam.getId());

+ 23 - 8
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rechargerecord/controller/BizRechargeRecordController.java

@@ -33,6 +33,7 @@ import vip.xiaonuo.biz.modular.rechargerecord.service.BizRechargeRecordService;
 import jakarta.annotation.Resource;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotEmpty;
+
 import java.util.List;
 import java.util.Map;
 
@@ -40,7 +41,7 @@ import java.util.Map;
  * 充值记录表控制器
  *
  * @author wulei
- * @date  2025/02/06 17:41
+ * @date 2025/02/06 17:41
  */
 @Tag(name = "充值记录表控制器")
 @RestController
@@ -54,27 +55,41 @@ public class BizRechargeRecordController {
      * 获取充值记录表分页
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
-    @Operation(summary = "获取充值记录分页")
+    @Operation(summary = "获取充值记录分页")
     @SaCheckPermission("/biz/rechargerecord/page")
     @GetMapping("/biz/rechargerecord/page")
     public CommonResult<Page<BizRechargeRecord>> page(BizRechargeRecordPageParam bizRechargeRecordPageParam) {
         return CommonResult.data(bizRechargeRecordService.page(bizRechargeRecordPageParam));
     }
 
+
+    /**
+     * 获取用户充值记录表分页
+     *
+     * @author wulei
+     * @date 2025/02/06 17:41
+     */
+    @Operation(summary = "获取用户充值记录分页")
+    @GetMapping("/biz/rechargerecord/userPage")
+    public CommonResult<Page<BizRechargeRecord>> userPage(BizRechargeRecordPageParam bizRechargeRecordPageParam) {
+        return CommonResult.data(bizRechargeRecordService.userPage(bizRechargeRecordPageParam));
+    }
+
+
     /**
      * 添加充值记录表
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
     @Operation(summary = "添加充值记录表")
     @CommonLog("添加充值记录表")
     @PostMapping("/biz/rechargerecord/add")
     @CommonNoRepeat
     public CommonResult<Map<String, Object>> add(@RequestBody @Valid BizRechargeRecordAddParam bizRechargeRecordAddParam) {
-        return CommonResult.data( bizRechargeRecordService.add(bizRechargeRecordAddParam));
+        return CommonResult.data(bizRechargeRecordService.add(bizRechargeRecordAddParam));
     }
 
 //    /**
@@ -96,13 +111,13 @@ public class BizRechargeRecordController {
      * 删除充值记录表
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
     @Operation(summary = "删除充值记录表")
     @CommonLog("删除充值记录表")
     @PostMapping("/biz/rechargerecord/delete")
     public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
-                                                   List<BizRechargeRecordIdParam> bizRechargeRecordIdParamList) {
+                                       List<BizRechargeRecordIdParam> bizRechargeRecordIdParamList) {
         bizRechargeRecordService.delete(bizRechargeRecordIdParamList);
         return CommonResult.ok();
     }
@@ -111,7 +126,7 @@ public class BizRechargeRecordController {
      * 获取充值记录表详情
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
     @Operation(summary = "获取充值记录表详情")
     @GetMapping("/biz/rechargerecord/detail")

+ 14 - 6
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rechargerecord/service/BizRechargeRecordService.java

@@ -27,7 +27,7 @@ import java.util.Map;
  * 充值记录表Service接口
  *
  * @author wulei
- * @date  2025/02/06 17:41
+ * @date 2025/02/06 17:41
  **/
 public interface BizRechargeRecordService extends IService<BizRechargeRecord> {
 
@@ -35,15 +35,23 @@ public interface BizRechargeRecordService extends IService<BizRechargeRecord> {
      * 获取充值记录表分页
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
     Page<BizRechargeRecord> page(BizRechargeRecordPageParam bizRechargeRecordPageParam);
 
+    /**
+     * 获取用户充值记录表分页
+     *
+     * @author wulei
+     * @date 2025/02/06 17:41
+     */
+    Page<BizRechargeRecord> userPage(BizRechargeRecordPageParam bizRechargeRecordPageParam);
+
     /**
      * 添加充值记录表
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
     Map<String, Object> add(BizRechargeRecordAddParam bizRechargeRecordAddParam);
 
@@ -59,7 +67,7 @@ public interface BizRechargeRecordService extends IService<BizRechargeRecord> {
      * 删除充值记录表
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
     void delete(List<BizRechargeRecordIdParam> bizRechargeRecordIdParamList);
 
@@ -67,7 +75,7 @@ public interface BizRechargeRecordService extends IService<BizRechargeRecord> {
      * 获取充值记录表详情
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      */
     BizRechargeRecord detail(BizRechargeRecordIdParam bizRechargeRecordIdParam);
 
@@ -75,7 +83,7 @@ public interface BizRechargeRecordService extends IService<BizRechargeRecord> {
      * 获取充值记录表详情
      *
      * @author wulei
-     * @date  2025/02/06 17:41
+     * @date 2025/02/06 17:41
      **/
     BizRechargeRecord queryEntity(String id);
 }

+ 11 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rechargerecord/service/impl/BizRechargeRecordServiceImpl.java

@@ -106,6 +106,17 @@ public class BizRechargeRecordServiceImpl extends ServiceImpl<BizRechargeRecordM
         return pageList;
     }
 
+    @Override
+    public Page<BizRechargeRecord> userPage(BizRechargeRecordPageParam bizRechargeRecordPageParam) {
+        QueryWrapper<BizRechargeRecord> queryWrapper = new QueryWrapper<BizRechargeRecord>().checkSqlInjection();
+        if (ObjectUtil.isNotEmpty(bizRechargeRecordPageParam.getStartRechargeTime()) && ObjectUtil.isNotEmpty(bizRechargeRecordPageParam.getEndRechargeTime())) {
+            queryWrapper.lambda().between(BizRechargeRecord::getRechargeTime, bizRechargeRecordPageParam.getStartRechargeTime(), bizRechargeRecordPageParam.getEndRechargeTime());
+        }
+        queryWrapper.lambda().eq(BizRechargeRecord::getUserId, StpLoginUserUtil.getLoginUser().getId());
+        queryWrapper.lambda().orderByDesc(BizRechargeRecord::getRechargeTime);
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public synchronized Map<String, Object> add(BizRechargeRecordAddParam bizRechargeRecordAddParam) {

+ 14 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/recommendrecord/controller/BizRecommendRecordController.java

@@ -62,6 +62,20 @@ public class BizRecommendRecordController {
         return CommonResult.data(bizRecommendRecordService.page(bizRecommendRecordPageParam));
     }
 
+    /**
+     * 获取用户推荐记录分页
+     *
+     * @author wulei
+     * @date  2025/02/06 17:42
+     */
+    @Operation(summary = "获取用户推荐记录分页")
+    @GetMapping("/biz/recommendrecord/userPage")
+    public CommonResult<Page<BizRecommendRecord>> userPage(BizRecommendRecordPageParam bizRecommendRecordPageParam) {
+        return CommonResult.data(bizRecommendRecordService.userPage(bizRecommendRecordPageParam));
+    }
+
+
+
 
     /**
      * 获取推荐记录表详情

+ 12 - 4
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/recommendrecord/service/BizRecommendRecordService.java

@@ -26,7 +26,7 @@ import java.util.List;
  * 推荐记录表Service接口
  *
  * @author wulei
- * @date  2025/02/06 17:42
+ * @date 2025/02/06 17:42
  **/
 public interface BizRecommendRecordService extends IService<BizRecommendRecord> {
 
@@ -34,15 +34,23 @@ public interface BizRecommendRecordService extends IService<BizRecommendRecord>
      * 获取推荐记录表分页
      *
      * @author wulei
-     * @date  2025/02/06 17:42
+     * @date 2025/02/06 17:42
      */
     Page<BizRecommendRecord> page(BizRecommendRecordPageParam bizRecommendRecordPageParam);
 
+    /**
+     * 获取用户推荐记录表分页
+     *
+     * @author wulei
+     * @date 2025/02/06 17:42
+     */
+    Page<BizRecommendRecord> userPage(BizRecommendRecordPageParam bizRecommendRecordPageParam);
+
     /**
      * 获取推荐记录表详情
      *
      * @author wulei
-     * @date  2025/02/06 17:42
+     * @date 2025/02/06 17:42
      */
     BizRecommendRecord detail(BizRecommendRecordIdParam bizRecommendRecordIdParam);
 
@@ -50,7 +58,7 @@ public interface BizRecommendRecordService extends IService<BizRecommendRecord>
      * 获取推荐记录表详情
      *
      * @author wulei
-     * @date  2025/02/06 17:42
+     * @date 2025/02/06 17:42
      **/
     BizRecommendRecord queryEntity(String id);
 }

+ 16 - 2
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/recommendrecord/service/impl/BizRecommendRecordServiceImpl.java

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
@@ -39,7 +40,7 @@ import java.util.List;
  * 推荐记录表Service接口实现类
  *
  * @author wulei
- * @date  2025/02/06 17:42
+ * @date 2025/02/06 17:42
  **/
 @Service
 public class BizRecommendRecordServiceImpl extends ServiceImpl<BizRecommendRecordMapper, BizRecommendRecord> implements BizRecommendRecordService {
@@ -56,6 +57,19 @@ public class BizRecommendRecordServiceImpl extends ServiceImpl<BizRecommendRecor
         return baseMapper.page(CommonPageRequest.defaultPage(), queryWrapper);
     }
 
+    @Override
+    public Page<BizRecommendRecord> userPage(BizRecommendRecordPageParam bizRecommendRecordPageParam) {
+        QueryWrapper<BizRecommendRecord> queryWrapper = new QueryWrapper<BizRecommendRecord>().checkSqlInjection();
+        if (ObjectUtil.isNotEmpty(bizRecommendRecordPageParam.getSearchKey())) {
+            queryWrapper.and(s -> s.like("u1.NAME", bizRecommendRecordPageParam.getSearchKey())
+                    .or().like("u1.ACCOUNT", bizRecommendRecordPageParam.getSearchKey()));
+        }
+        queryWrapper.eq("t.recommend_user_id", StpLoginUserUtil.getLoginUser().getId());
+        queryWrapper.eq("t.delete_flag", CommonDeleteFlagEnum.NOT_DELETE);
+        queryWrapper.orderByAsc("t.create_time");
+        return baseMapper.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
     @Override
     public BizRecommendRecord detail(BizRecommendRecordIdParam bizRecommendRecordIdParam) {
         return this.queryEntity(bizRecommendRecordIdParam.getId());
@@ -64,7 +78,7 @@ public class BizRecommendRecordServiceImpl extends ServiceImpl<BizRecommendRecor
     @Override
     public BizRecommendRecord queryEntity(String id) {
         BizRecommendRecord bizRecommendRecord = this.getById(id);
-        if(ObjectUtil.isEmpty(bizRecommendRecord)) {
+        if (ObjectUtil.isEmpty(bizRecommendRecord)) {
             throw new CommonException("推荐记录表不存在,id值为:{}", id);
         }
         return bizRecommendRecord;

+ 96 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/task/rebateEffectTask.java

@@ -0,0 +1,96 @@
+package vip.xiaonuo.biz.modular.task;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.DefaultTransactionDefinition;
+import vip.xiaonuo.biz.core.enums.FundChangeTypeEnum;
+import vip.xiaonuo.biz.modular.couponrecord.service.BizCouponRecordService;
+import vip.xiaonuo.biz.modular.rebaterecord.entity.BizRebateRecord;
+import vip.xiaonuo.biz.modular.rebaterecord.service.BizRebateRecordService;
+import vip.xiaonuo.biz.modular.user.entity.BizUser;
+import vip.xiaonuo.biz.modular.user.mapper.BizUserMapper;
+import vip.xiaonuo.biz.modular.userfundchangerecord.entity.BizUserFundChangeRecord;
+import vip.xiaonuo.biz.modular.userfundchangerecord.service.BizUserFundChangeRecordService;
+import vip.xiaonuo.common.timer.CommonTimerTaskRunner;
+import vip.xiaonuo.dev.api.DevConfigApi;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author wulei
+ * @date 2025/2/8
+ * @Version 1.0
+ * @Description 代金券生效定时任务
+ */
+@Slf4j
+@Component
+public class rebateEffectTask implements CommonTimerTaskRunner {
+
+    @Resource
+    private DevConfigApi devConfigApi;
+
+    @Resource
+    private BizRebateRecordService bizRebateRecordService;
+    @Resource
+    private BizUserMapper bizUserMapper;
+    @Resource
+    private BizUserFundChangeRecordService bizUserFundChangeRecordService;
+    // 代金券生效期限配置
+    private static final String REBATE_EFFECTIVE_DATE = "rebateEffectiveDate";
+    @Resource
+    private PlatformTransactionManager transactionManager;
+
+    @Override
+    public void action(String extJson) {
+        log.info("代金券生效定时任务正在执行==================");
+        TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition());
+        try {
+            // 获取代金券生效期限配置
+            String date = devConfigApi.getValueByKey(REBATE_EFFECTIVE_DATE);
+            DateTime daysAgo = DateUtil.offsetDay(DateUtil.date(), -Integer.parseInt(date));
+            log.info("代金券生效时间:{}", daysAgo);
+            // 查询未生效且代金券创建时间距离当前生效期限的代金券
+            List<BizRebateRecord> list = bizRebateRecordService.list(new LambdaQueryWrapper<BizRebateRecord>()
+                    .eq(BizRebateRecord::getRebateStatus, "1")
+                    .le(BizRebateRecord::getCreateTime, daysAgo));
+            for (BizRebateRecord bizRebateRecord : list) {
+                bizRebateRecord.setRebateStatus("2");
+                bizRebateRecordService.updateById(bizRebateRecord);
+                // 更新用于代金券余额数据
+                BizUser bizUser = bizUserMapper.selectById(bizRebateRecord.getRecommendUserId());
+                if (ObjectUtil.isNotNull(bizUser)) {
+                    BigDecimal oldVoucherBalance = bizUser.getVoucherBalance();
+                    BigDecimal newVoucherBalance = oldVoucherBalance.add(bizRebateRecord.getRebateAmount());
+                    bizUser.setVoucherBalance(newVoucherBalance);
+                    bizUserMapper.updateById(bizUser);
+                    // 记录用户账户资金变动记录
+                    BizUserFundChangeRecord bizUserFundChangeRecord = new BizUserFundChangeRecord();
+                    bizUserFundChangeRecord.setChangeType(FundChangeTypeEnum.VOUCHER_EFFECT.getValue());
+                    bizUserFundChangeRecord.setUserId(bizRebateRecord.getRecommendUserId());
+                    bizUserFundChangeRecord.setOldAccountBalance(bizUser.getAccountBalance());
+                    bizUserFundChangeRecord.setNewAccountBalance(bizUser.getAccountBalance());
+                    bizUserFundChangeRecord.setOldVoucherBalance(oldVoucherBalance);
+                    bizUserFundChangeRecord.setNewVoucherBalance(newVoucherBalance);
+                    bizUserFundChangeRecordService.save(bizUserFundChangeRecord);
+                }
+            }
+            //手动提交事务
+            transactionManager.commit(transactionStatus);
+            log.info("代金券生效定时任务执行完毕=================");
+        } catch (Exception e) {
+            e.printStackTrace();
+            transactionManager.rollback(transactionStatus);
+            log.error("代金券生效定时任务执行异常=================");
+        }
+    }
+}

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/wx/WxPayNotifyController.java

@@ -171,7 +171,7 @@ public class WxPayNotifyController {
                 log.info("=========== 生成推荐人返点记录 ========");
                 BizRebateRecord bizRebateRecord = new BizRebateRecord();
                 bizRebateRecord.setRechargeRecordId(bizRechargeRecord.getId());
-                bizRebateRecord.setRebateAmout(bizRechargeRecord.getRebateAmount());
+                bizRebateRecord.setRebateAmount(bizRechargeRecord.getRebateAmount());
                 bizRebateRecord.setRechargeUserId(bizRechargeRecord.getUserId());
                 bizRebateRecord.setRecommendUserId(bizUser.getReferralUser());
                 bizRebateRecordService.save(bizRebateRecord);