From e6950a483f80e7c138c1114d3bdefb0e1d032136 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Thu, 10 Jul 2025 11:25:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E5=80=BC=E6=AC=A1=E6=95=B0=E4=B8=8E?= =?UTF-8?q?=E9=A6=96=E5=85=85=E6=97=B6=E9=97=B4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/UserController.java | 11 ++++++++- .../java/com/example/demo/mapper/UserMapper.java | 16 +++++++++++-- .../java/com/example/demo/service/UserService.java | 8 +++++-- .../example/demo/serviceImpl/AuditServiceImpl.java | 6 +++-- .../example/demo/serviceImpl/UserServiceImpl.java | 25 +++++++++++++++++++++ src/main/resources/mapper/AuditMapper.xml | 3 ++- src/main/resources/mapper/UserMapper.xml | 26 +++++++++++++++++++--- 7 files changed, 84 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/example/demo/controller/UserController.java b/src/main/java/com/example/demo/controller/UserController.java index 7da869b..a31818a 100644 --- a/src/main/java/com/example/demo/controller/UserController.java +++ b/src/main/java/com/example/demo/controller/UserController.java @@ -68,5 +68,14 @@ public class UserController { return Result.error("请检查属性"); } } - + //检查并更新所有用户的首充时间(若有变化) + @PostMapping("/updateFirstRecharge") + public Result updateFirstRecharge() { + try { + userService.updateFirstRecharge(); + return Result.success("更新成功"); + } catch (Exception e) { + return Result.error("更新失败"); + } + } } diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index f7e7b44..47e2946 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -3,7 +3,12 @@ package com.example.demo.mapper; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.Gold; import com.example.demo.domain.vo.GoldUser; +import lombok.Data; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; /** * @program: gold-java @@ -24,11 +29,18 @@ public interface UserMapper { void updateGold(User user); User selectAllUser(String jwcode); - //查询充值次数 - Integer selectRechargeNumByJwcode(Integer jwcode); + //获取用户表全部jwcode + List getAllJwcode(); + //获取某用户最早的充值订单 + Date getEarliestRecharge(Integer jwcode); + //更新用户首充日期 + void updateFirstRecharge(@Param("jwcode") Integer jwcode, + @Param("firstRecharge") Date firstRecharge); void updateAllGold(User user); void addUser(User user); + //根据精网号查询用户 + User selectUserByJwcode(Integer jwcode); } diff --git a/src/main/java/com/example/demo/service/UserService.java b/src/main/java/com/example/demo/service/UserService.java index a391419..83fac3a 100644 --- a/src/main/java/com/example/demo/service/UserService.java +++ b/src/main/java/com/example/demo/service/UserService.java @@ -4,6 +4,8 @@ import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.Gold; import com.example.demo.domain.vo.GoldUser; +import java.util.List; + /** * @program: gold-java * @ClassName UserService @@ -19,8 +21,10 @@ public interface UserService { GoldUser selectgold(String jwcode); User selectAllUser(String jwcode); - + //更新用户的全部金币 void updateAllGold(User user); - + //新增用户 void addUser(User user); + //更新用户的首充时间 + void updateFirstRecharge(); } diff --git a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java index 53bb905..e7dfed0 100644 --- a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java @@ -4,6 +4,7 @@ import com.example.demo.Util.GoldTistV2; import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.domain.vo.Gold; +import com.example.demo.domain.vo.GoldUser; import com.example.demo.domain.vo.RechargeAudit; import com.example.demo.domain.vo.RefundAudit; import com.example.demo.mapper.AuditMapper; @@ -72,7 +73,8 @@ public class AuditServiceImpl implements AuditService { if (order.getType()==0){ //充值 //更新用户余额 User update = new User(); - Integer rechargeNum = userMapper.selectRechargeNumByJwcode(order.getJwcode()); + GoldUser gold = userMapper.selectGold(order.getJwcode().toString()); + update.setJwcode(order.getJwcode()); //精网号 update.setSumPermanentGold(order.getPermanentGold()); //历史永久金币 update.setSumFreeJune(order.getFreeJune()); //历史六月免费金币 @@ -82,7 +84,7 @@ public class AuditServiceImpl implements AuditService { update.setCurrentFreeJune(order.getFreeJune()); //当前六月免费金币 update.setCurrentFreeDecember(order.getFreeDecember()); //当前十二月免费金币 update.setCurrentTaskGold(order.getTaskGold()); //当前任务金币 - update.setRechargeNum(rechargeNum+1); //充值次数加一 + update.setRechargeNum(gold.getRechargeNum()+1); //充值次数加一 auditMapper.updateUserGold(update); //erp增加充值数据 // if(update.getJwcode().equals(94226013)){ diff --git a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java index 8cf777a..ce4de57 100644 --- a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java @@ -7,8 +7,12 @@ import com.example.demo.mapper.ConsumeMapper; import com.example.demo.mapper.UserMapper; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; +import java.util.Date; +import java.util.List; + /** * @program: gold-java * @ClassName UserServiceImpl @@ -46,6 +50,27 @@ public class UserServiceImpl implements UserService { public void addUser(User user) { userMapper.addUser(user); } + /* + 每小时更新用户首充时间 + */ + @Override + @Scheduled(cron = "0 0 0 * * ?") + public void updateFirstRecharge() { + List jwcodeList = userMapper.getAllJwcode(); + for(Integer jwcode : jwcodeList){ + Date earliestPayTime = userMapper.getEarliestRecharge(jwcode); + if (earliestPayTime != null){ + //获取用户的首充时间 + Date currentFirstRecharge = userMapper.selectUserByJwcode(jwcode).getFirstRecharge(); + //弱国首充时间为空或与最早支付时间不一致则更新 + if (currentFirstRecharge == null || !currentFirstRecharge.after(earliestPayTime)){ + userMapper.updateFirstRecharge(jwcode, earliestPayTime); + System.out.println("更新了用户" + jwcode + "的首充时间为"+earliestPayTime); + } + } + + } + } @Override public GoldUser selectgold(String jwcode) { diff --git a/src/main/resources/mapper/AuditMapper.xml b/src/main/resources/mapper/AuditMapper.xml index ee2e161..03a28cf 100644 --- a/src/main/resources/mapper/AuditMapper.xml +++ b/src/main/resources/mapper/AuditMapper.xml @@ -22,7 +22,8 @@ current_permanent_gold = current_permanent_gold + COALESCE(#{currentPermanentGold},0), current_free_june = current_free_june + COALESCE(#{currentFreeJune},0), current_free_december = current_free_december + COALESCE(#{currentFreeDecember},0), - current_task_gold = current_task_gold + COALESCE(#{currentTaskGold},0) + current_task_gold = current_task_gold + COALESCE(#{currentTaskGold},0), + recharge_num = recharge_num + COALESCE(#{rechargeNum},0) where jwcode = #{jwcode} diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index d4392b4..5b78908 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -46,13 +46,27 @@ current_free_june AS "NowFreeJune", current_free_december AS "NowFreeDecember", current_task_gold AS "NowTaskGold", - consume_num AS "consumeNum" + consume_num AS "consumeNum", + recharge_num AS "rechargeNum" FROM user WHERE jwcode = #{jwcode} - + SELECT jwcode FROM user + + + + + @@ -83,4 +97,10 @@ where jwcode = #{jwcode} + + + update user + set first_recharge = #{firstRecharge} + where jwcode = #{jwcode} + \ No newline at end of file