From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/job/RedPackJob.java | 137 ++++++++++++++++++++++++++++++++------------- 1 files changed, 96 insertions(+), 41 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/job/RedPackJob.java b/fanli/src/main/java/com/yeshi/fanli/job/RedPackJob.java index 7151126..bfbde45 100644 --- a/fanli/src/main/java/com/yeshi/fanli/job/RedPackJob.java +++ b/fanli/src/main/java/com/yeshi/fanli/job/RedPackJob.java @@ -1,41 +1,96 @@ -package com.yeshi.fanli.job; - -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import com.yeshi.fanli.entity.redpack.RedPackGiveRecord; -import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService; -import com.yeshi.fanli.util.Constant; - -@Component -public class RedPackJob { - - @Resource - private RedPackGiveRecordService redPackGiveRecordService; - - /** - * 姣忓ぉ涓�涓皬鏃舵洿鏂伴��鍥� - */ - @Scheduled(cron = "0 0 0/1 * * ? ") - public void overdue() { - if (!Constant.IS_TASK) - return; - - try { - for (int i = 0; i < 100; i++) { - List<RedPackGiveRecord> overdueList = redPackGiveRecordService.overdueList(500); - if (overdueList == null || overdueList.size() == 0) { - break; - } - redPackGiveRecordService.overdue(overdueList); - } - } catch (Exception e) { - LogHelper.errorDetailInfo(e); - } - } -} +package com.yeshi.fanli.job; + +import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import com.yeshi.fanli.dto.user.PullNewRuleTerm; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.redpack.RedPackConfigService; +import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService; +import com.yeshi.fanli.util.StringUtil; + +@Component +public class RedPackJob { + + @Resource + private RedPackWinInviteService redPackWinInviteService; + + @Resource + private RedPackConfigService redPackConfigService; + + + + @XxlJob("RedPackJob-arriveMoney") + public ReturnT<String> arriveMoney(String param) throws Exception { + arriveMoney(); + return ReturnT.SUCCESS; + } + + /** + * 绾㈠寘姣忔湀26鍒拌处 + */ + public void arriveMoney() { + try { + String value = redPackConfigService.getValueByKey("win_redpack_term"); + if (StringUtil.isNullOrEmpty(value)) { + return; + } + + Type type = new TypeToken<ArrayList<PullNewRuleTerm>>() { + }.getType(); + List<PullNewRuleTerm> listRule = new Gson().fromJson(value, type); + if (listRule == null || listRule.size() == 0) { + return; + } + + int start = 0; + Date date = new Date(); + while(true) { + // 涓婃湀瀛樺湪閭�璇风殑鐢ㄧ敤鎴穒d + List<Long> list = redPackWinInviteService.listWinUid(start, 1000); + if (list == null || list.size() == 0) { + break; + } + + for (Long uid: list) { + // 缁熻涓婃湀閭�璇锋垚鍔熸暟閲� + long count = redPackWinInviteService.countLastMonthByUid(uid); + if (count == 0) + continue; + + BigDecimal money = null; + for (PullNewRuleTerm term: listRule) { + if (count >= term.getMin() && (term.getMax() != null && count <= term.getMax())) { + money = term.getMoney(); + } + } + + if (money == null) { + LogHelper.test("绾㈠寘濂栧姳鏈尮閰嶅埌瑙勫垯count =" + count + " uid =" + uid); + continue; + } + + try { + redPackWinInviteService.arriveMoney(uid, money, date); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + +} -- Gitblit v1.8.0