فهرست منبع

Merge remote-tracking branch 'origin/master'

yubin 1 هفته پیش
والد
کامیت
a16241d3fd
24فایلهای تغییر یافته به همراه509 افزوده شده و 633 حذف شده
  1. 4 0
      cif-service/src/main/java/com/txz/cif/core/AuthService.java
  2. 300 3
      cif-service/src/main/java/com/txz/cif/core/RedisUtil.java
  3. 2 0
      cif-service/src/main/java/com/txz/cif/core/cache/CacheType.java
  4. 5 0
      cif-service/src/main/java/com/txz/cif/dao/RedEnvelopeMapper.java
  5. 4 0
      cif-service/src/main/java/com/txz/cif/service/RedEnvelopeService.java
  6. 1 1
      cif-service/src/main/java/com/txz/cif/service/impl/DayCutServiceImpl.java
  7. 14 0
      cif-service/src/main/java/com/txz/cif/service/impl/RedEnvelopeServiceImpl.java
  8. 3 3
      cif-service/src/main/java/com/txz/cif/web/AccountApiController.java
  9. 4 2
      cif-service/src/main/java/com/txz/cif/web/RechargeRecordApiController.java
  10. 62 6
      cif-service/src/main/java/com/txz/cif/web/RedEnvelopeApiController.java
  11. 10 1
      cif-service/src/main/java/com/txz/cif/web/UserApiController.java
  12. 3 1
      cif-service/src/main/java/com/txz/cif/web/WithdrawRecordApiController.java
  13. 21 0
      cif-service/src/main/java/com/txz/cif/web/bo/TopBO.java
  14. 3 0
      cif-service/src/main/java/com/txz/cif/web/bo/UserBo2.java
  15. 3 0
      cif-service/src/main/java/com/txz/cif/web/bo/UserInfoBO.java
  16. 53 0
      cif-service/src/main/java/com/txz/cif/web/bo/UserTopBo.java
  17. 1 1
      cif-service/src/main/resources/logback.xml
  18. 16 0
      cif-service/src/main/resources/mapper/RedEnvelopeMapper.xml
  19. 0 376
      log.home_IS_UNDEFINED/error.cif.log.2025-07-09.log
  20. 0 25
      log.home_IS_UNDEFINED/error.cif.log.2025-07-15.log
  21. 0 164
      log.home_IS_UNDEFINED/error.cif.log.2025-07-16.log
  22. 0 16
      log.home_IS_UNDEFINED/log.cif.2025-07-09.0.log
  23. 0 17
      log.home_IS_UNDEFINED/log.cif.2025-07-15.0.log
  24. 0 17
      log.home_IS_UNDEFINED/log.cif.2025-07-16.0.log

+ 4 - 0
cif-service/src/main/java/com/txz/cif/core/AuthService.java

@@ -2,6 +2,7 @@ package com.txz.cif.core;
 
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.ExpiredJwtException;
@@ -110,6 +111,9 @@ public class AuthService {
             }
         }
         String token = request.getHeader("token");
+        if (StrUtil.isBlank(token)){
+            return null;
+        }
         Claims claims = getJwt(token);
         return Long.valueOf(claims.get("userId").toString());
     }

+ 300 - 3
cif-service/src/main/java/com/txz/cif/core/RedisUtil.java

@@ -1,13 +1,12 @@
 package com.txz.cif.core;
 
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ZSetOperations;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 
@@ -592,4 +591,302 @@ public class RedisUtil {
 		}
 	}
 
+
+	//===============================ZSet(排行榜)=============================
+	/**
+	 * 向有序集合添加元素(用于初始化或更新用户分数)
+	 * @param key 有序集合的键(排行榜名称)
+	 * @param value 元素值(如用户ID)
+	 * @param score 分数(排序依据)
+	 * @return true=新增元素,false=更新已有元素
+	 */
+	public Boolean zAdd(String key, Object value, double score) {
+		try {
+			return redisTemplate.opsForZSet().add(key, value, score);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return false;
+		}
+	}
+
+	/**
+	 * 向有序集合添加元素并设置过期时间
+	 * @param key 有序集合的键
+	 * @param value 元素值
+	 * @param score 分数
+	 * @param time 过期时间
+	 * @param timeUnit 时间单位
+	 * @return true=操作成功
+	 */
+	public Boolean zAdd(String key, Object value, double score, long time, TimeUnit timeUnit) {
+		try {
+			Boolean result = redisTemplate.opsForZSet().add(key, value, score);
+			if (time > 0) {
+				expire(key, time, timeUnit);
+			}
+			return result;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return false;
+		}
+	}
+
+	/**
+	 * 增加有序集合中元素的分数(用于排行榜分数累加)
+	 * @param key 有序集合的键
+	 * @param value 元素值
+	 * @param delta 增加的分数(正数增加,负数减少)
+	 * @return 增加后的分数
+	 */
+	public Double zIncrBy(String key, Object value, double delta) {
+		try {
+			return redisTemplate.opsForZSet().incrementScore(key, value, delta);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	/**
+	 * 获取元素在有序集合中的排名(从高到低)
+	 * @param key 有序集合的键
+	 * @param value 元素值
+	 * @return 排名(0表示第一名,null表示元素不存在)
+	 */
+	public Long zRevRank(String key, Object value) {
+		try {
+			return redisTemplate.opsForZSet().reverseRank(key, value);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	/**
+	 * 获取元素在有序集合中的分数
+	 * @param key 有序集合的键
+	 * @param value 元素值
+	 * @return 分数(null表示元素不存在)
+	 */
+	public Double zScore(String key, Object value) {
+		try {
+			return redisTemplate.opsForZSet().score(key, value);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	/**
+	 * 获取有序集合中指定排名范围的元素(从高到低)
+	 * @param key 有序集合的键
+	 * @param start 起始排名(0表示第一名)
+	 * @param end 结束排名(如9表示前10名)
+	 * @return 元素列表(仅包含值,不包含分数)
+	 */
+	public Set<Object> zRevRange(String key, long start, long end) {
+		try {
+			return redisTemplate.opsForZSet().reverseRange(key, start, end);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	/**
+	 * 获取有序集合中指定排名范围的元素(包含分数,从高到低)
+	 * @param key 有序集合的键
+	 * @param start 起始排名(0表示第一名)
+	 * @param end 结束排名(如9表示前10名)
+	 * @return 元素-分数映射集合(ZSetOperations.TypedTuple包含value和score)
+	 */
+	public Set<ZSetOperations.TypedTuple<Object>> zRevRangeWithScores(String key, long start, long end) {
+		try {
+			return redisTemplate.opsForZSet().reverseRangeWithScores(key, start, end);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	/**
+	 * 获取有序集合中分数在指定范围内的元素数量
+	 * @param key 有序集合的键
+	 * @param min 最小分数
+	 * @param max 最大分数
+	 * @return 元素数量
+	 */
+	public Long zCount(String key, double min, double max) {
+		try {
+			return redisTemplate.opsForZSet().count(key, min, max);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return 0L;
+		}
+	}
+
+	/**
+	 * 获取有序集合的总元素数量(排行榜总人数)
+	 * @param key 有序集合的键
+	 * @return 总数量
+	 */
+	public Long zSize(String key) {
+		try {
+			return redisTemplate.opsForZSet().size(key);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return 0L;
+		}
+	}
+
+	/**
+	 * 从有序集合中删除元素
+	 * @param key 有序集合的键
+	 * @param values 要删除的元素(可多个)
+	 * @return 成功删除的数量
+	 */
+	public Long zRemove(String key, Object... values) {
+		try {
+			return redisTemplate.opsForZSet().remove(key, values);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return 0L;
+		}
+	}
+
+
+// ========================= ZSet 分数编码工具方法 =========================
+	/**
+	 * 生成复合分数(原始分数 + 时间戳)
+	 * 同原始分数时,较早录入的元素分数更高(排前面)
+	 * @param originalScore 原始分数(业务分数)
+	 * @param timestamp 录入时间戳(毫秒),建议使用System.currentTimeMillis()
+	 * @return 复合分数(可直接用于Redis的ZSet)
+	 */
+	private double encodeScore(double originalScore, long timestamp) {
+		// 权重:确保原始分数为第一排序维度(1e18需大于最大可能的时间戳,避免冲突)
+		long weight = 1000_000_000_000_000_000L; // 1e18
+		// 反向时间戳:将时间戳反转,使较早的时间戳对应更大的值
+		long reversedTimestamp = Long.MAX_VALUE - timestamp;
+		// 复合分数 = 原始分数 * 权重 + 反向时间戳(保证原始分数优先,同分时时间早的排前面)
+		return originalScore * weight + reversedTimestamp;
+	}
+
+	/**
+	 * 从复合分数中解析原始分数
+	 * @param encodedScore 复合分数
+	 * @return 原始业务分数
+	 */
+	public double decodeOriginalScore(double encodedScore) {
+		long weight = 1000_000_000_000_000_000L;
+		return Math.floor(encodedScore / weight);
+	}
+
+	/**
+	 * 从复合分数中解析录入时间戳
+	 * @param encodedScore 复合分数
+	 * @return 录入时的时间戳(毫秒)
+	 */
+	public long decodeTimestamp(double encodedScore) {
+		long weight = 1000_000_000_000_000_000L;
+		long reversedTimestamp = (long) (encodedScore % weight);
+		return Long.MAX_VALUE - reversedTimestamp;
+	}
+
+
+
+
+// ========================= 支持时间排序的排行榜方法 =========================
+	/**
+	 * 新增/更新用户分数(同分时,先录入的排前面)
+	 * @param key 排行榜键名
+	 * @param userId 用户ID(元素值)
+	 * @param originalScore 原始业务分数
+	 * @param timestamp 录入时间戳(毫秒,建议使用System.currentTimeMillis())
+	 * @return true=新增元素,false=更新已有元素
+	 */
+	public Boolean zAddWithTimeOrder(String key, Object userId, double originalScore, long timestamp) {
+		try {
+			double encodedScore = encodeScore(originalScore, timestamp);
+			return redisTemplate.opsForZSet().add(key, userId, encodedScore);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return false;
+		}
+	}
+
+	/**
+	 * 新增/更新用户分数并设置过期时间
+	 * @param key 排行榜键名
+	 * @param userId 用户ID
+	 * @param originalScore 原始业务分数
+	 * @param timestamp 录入时间戳
+	 * @param time 过期时间
+	 * @param timeUnit 时间单位
+	 * @return true=操作成功
+	 */
+	public Boolean zAddWithTimeOrder(String key, Object userId, double originalScore, long timestamp,
+									 long time, TimeUnit timeUnit) {
+		try {
+			double encodedScore = encodeScore(originalScore, timestamp);
+			Boolean result = redisTemplate.opsForZSet().add(key, userId, encodedScore);
+			if (time > 0) {
+				expire(key, time, timeUnit);
+			}
+			return result;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return false;
+		}
+	}
+
+	/**
+	 * 获取用户的原始分数(业务分数)
+	 * @param key 排行榜键名
+	 * @param userId 用户ID
+	 * @return 原始分数(null表示用户不存在)
+	 */
+	public Double zGetOriginalScore(String key, Object userId) {
+		Double encodedScore = zScore(key, userId); // 复用之前的zScore方法
+		return encodedScore != null ? decodeOriginalScore(encodedScore) : null;
+	}
+
+	/**
+	 * 获取用户的录入时间戳
+	 * @param key 排行榜键名
+	 * @param userId 用户ID
+	 * @return 时间戳(毫秒,null表示用户不存在)
+	 */
+	public Long zGetTimestamp(String key, Object userId) {
+		Double encodedScore = zScore(key, userId);
+		return encodedScore != null ? decodeTimestamp(encodedScore) : null;
+	}
+
+	/**
+	 * 获取排行榜指定范围(从高到低),包含原始分数和时间戳
+	 * @param key 排行榜键名
+	 * @param start 起始排名(0=第一名)
+	 * @param end 结束排名(如9=前10名)
+	 * @return 列表元素包含:用户ID、原始分数、时间戳
+	 */
+	public List<Map<String, Object>> zRevRangeWithDetails(String key, long start, long end) {
+		try {
+			Set<ZSetOperations.TypedTuple<Object>> tuples = redisTemplate.opsForZSet().reverseRangeWithScores(key, start, end);
+			if (tuples == null) {
+				return null;
+			}
+			List<Map<String, Object>> result = new ArrayList<>();
+			for (ZSetOperations.TypedTuple<Object> tuple : tuples) {
+				Map<String, Object> detail = new HashMap<>();
+				detail.put("userId", tuple.getValue());
+				detail.put("originalScore", decodeOriginalScore(tuple.getScore()));
+				detail.put("timestamp", decodeTimestamp(tuple.getScore()));
+				result.add(detail);
+			}
+			return result;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
 }

+ 2 - 0
cif-service/src/main/java/com/txz/cif/core/cache/CacheType.java

@@ -11,6 +11,8 @@ public enum CacheType {
 	 */
 	AppSecretKey,
 
+	Top2,
+
 	sjtcRefundCallback,
 
 	// ------------------------- 订单相关 -------------------------

+ 5 - 0
cif-service/src/main/java/com/txz/cif/dao/RedEnvelopeMapper.java

@@ -2,11 +2,16 @@ package com.txz.cif.dao;
 
 import com.txz.cif.core.Mapper;
 import com.txz.cif.model.RedEnvelope;
+import com.txz.cif.web.bo.UserTopBo;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
 
 public interface RedEnvelopeMapper extends Mapper<RedEnvelope> {
     BigDecimal sumWithDay(Date day, Long userId,Integer type);
 
+
+    List<UserTopBo> top(HashMap<String, Object> map);
 }

+ 4 - 0
cif-service/src/main/java/com/txz/cif/service/RedEnvelopeService.java

@@ -3,9 +3,11 @@ import com.txz.cif.dto.Result;
 import com.txz.cif.model.RedEnvelope;
 import com.txz.cif.core.Service;
 import com.txz.cif.param.SignRedEnvelopeParam;
+import com.txz.cif.web.bo.UserTopBo;
 import com.txz.cif.web.para.RedEnvelopeParam;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 
 /**
@@ -23,4 +25,6 @@ public interface RedEnvelopeService extends Service<RedEnvelope> {
      * @return
      */
     BigDecimal sumWithDay(Integer day, Long userId,Integer type);
+
+    List<UserTopBo> top(Integer type, Integer page, Integer size);
 }

+ 1 - 1
cif-service/src/main/java/com/txz/cif/service/impl/DayCutServiceImpl.java

@@ -51,7 +51,7 @@ public class DayCutServiceImpl extends AbstractService<DayCut> implements DayCut
     public void dayCut() {
         //判断是否已日切
         Condition c = new Condition(DayCut.class);
-        c.createCriteria().andEqualTo("day",DateUtil.format(DateUtil.yesterday(),"yyyy-MM-DD"));
+        c.createCriteria().andEqualTo("day",DateUtil.format(DateUtil.yesterday(),"yyyy-MM-dd"));
         List<DayCut> dayCuts = findByCondition(c);
         if (CollUtil.isNotEmpty(dayCuts)){
             log.error("[日切]已日切");

+ 14 - 0
cif-service/src/main/java/com/txz/cif/service/impl/RedEnvelopeServiceImpl.java

@@ -3,6 +3,7 @@ package com.txz.cif.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
+import com.github.pagehelper.PageHelper;
 import com.txz.cif.constants.MyConstants;
 import com.txz.cif.dao.RedEnvelopeMapper;
 import com.txz.cif.dto.Result;
@@ -18,6 +19,7 @@ import com.txz.cif.service.ConfigMemberService;
 import com.txz.cif.service.RedEnvelopeService;
 import com.txz.cif.core.AbstractService;
 import com.txz.cif.service.UserService;
+import com.txz.cif.web.bo.UserTopBo;
 import com.txz.cif.web.para.RedEnvelopeParam;
 import com.txz.operating.dto.ConfigDTO;
 import org.springframework.stereotype.Service;
@@ -29,6 +31,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 
@@ -94,6 +97,17 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
         }
           }
 
+    @Override
+    public List<UserTopBo> top(Integer type, Integer page, Integer size) {
+        PageHelper.startPage(page, size);
+        HashMap<String,Object> map = new HashMap<>();
+        map.put("page",page);
+        map.put("size",size);
+        map.put("startTime",DateUtil.offsetDay(DateUtil.date(),-8));
+        map.put("endTime",DateUtil.yesterday());
+        return cRedEnvelopeMapper.top( map);
+    }
+
     /**
      * 构建红包对象
      * @param userId

+ 3 - 3
cif-service/src/main/java/com/txz/cif/web/AccountApiController.java

@@ -61,7 +61,7 @@ public class AccountApiController extends AbstractApiController {
 	public Result<AccountInfoBO> getAccountInfo(HttpServletRequest request) {
 		Long userId = authService.getTokenUserId(request);
 		if (userId == null ){
-			ResultGenerator.genFailResult(ResultCode.USERID_IS_NULL);
+			ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
 		}
 		User user = userService.findById(userId);
 		if (user == null ){
@@ -102,7 +102,7 @@ public class AccountApiController extends AbstractApiController {
 	public Result<AccountWalletInfoBO> getWalletAccountInfo(HttpServletRequest request) {
 		Long userId = authService.getTokenUserId(request);
 		if (userId == null ){
-			ResultGenerator.genFailResult(ResultCode.USERID_IS_NULL);
+			ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
 		}
 		User user = userService.findById(userId);
 		if (user == null ){
@@ -121,7 +121,7 @@ public class AccountApiController extends AbstractApiController {
 	public Result<AccountFlowBO> accountFlowList(@RequestBody AccountFlowParam param,HttpServletRequest request) {
 		Long userId = authService.getTokenUserId(request);
 		if (userId == null ){
-			ResultGenerator.genFailResult(ResultCode.USERID_IS_NULL);
+			ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
 		}
 		User user = userService.findById(userId);
 		if (user == null){

+ 4 - 2
cif-service/src/main/java/com/txz/cif/web/RechargeRecordApiController.java

@@ -74,7 +74,7 @@ public class RechargeRecordApiController {
     public Result add(@RequestParam Integer goodsId, HttpServletRequest request) {
 		Long userId = authService.getTokenUserId(request);
 		if(goodsId == null){
-			return ResultGenerator.genFailResult(ResultCode.OBJECT_IS_NULL);
+			return ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
 		}
 		try {
 			Goods goods = goodsService.findById(goodsId);
@@ -169,7 +169,9 @@ public class RechargeRecordApiController {
 	@ApiOperation(value = "rechargeRecord获取列表",httpMethod = "POST")
 	public Result<List<RechargeRecord>> list(@RequestBody RecordParam param, HttpServletRequest request) {
 		Long userId = authService.getTokenUserId(request);
-
+		if (userId == null ){
+			ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
+		}
 		PageHelper.startPage(param.getPage(), param.getSize());
 
 		Condition condition = new Condition(RechargeRecord.class);

+ 62 - 6
cif-service/src/main/java/com/txz/cif/web/RedEnvelopeApiController.java

@@ -1,15 +1,19 @@
 package com.txz.cif.web;
 import cn.hutool.core.date.DateUtil;
-import com.txz.cif.core.AuthService;
-import com.txz.cif.core.Result;
-import com.txz.cif.core.ResultGenerator;
+import cn.hutool.json.JSONUtil;
+import com.txz.cif.core.*;
+import com.txz.cif.core.cache.CacheKey;
+import com.txz.cif.core.cache.CacheType;
 import com.txz.cif.model.RedEnvelope;
+import com.txz.cif.model.User;
 import com.txz.cif.service.RedEnvelopeService;
 
-import com.txz.cif.core.ResultCode;
-
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.txz.cif.service.UserService;
+import com.txz.cif.web.bo.TopBO;
+import com.txz.cif.web.bo.UserDetailBo;
+import com.txz.cif.web.bo.UserTopBo;
 import com.txz.cif.web.para.RedEnvelopeListParam;
 import com.txz.cif.web.para.RedEnvelopeParam;
 import org.springframework.web.bind.annotation.*;
@@ -26,6 +30,9 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
 import org.apache.commons.lang.StringUtils;
 
 /**
@@ -44,11 +51,19 @@ public class RedEnvelopeApiController {
 	@Resource
 	private AuthService authService;
 
+	@Resource
+	private RedisUtil redisUtil;
+
+	@Resource
+	private UserService userService;
+
     @PostMapping("/list")
 	@ApiOperation(value = "redEnvelope获取列表",httpMethod = "POST")
     public Result<List<RedEnvelope>> list(@RequestBody RedEnvelopeListParam param, HttpServletRequest request) {
 		Long userId = authService.getTokenUserId(request);
-
+		if (userId == null ){
+			ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
+		}
 
 		PageHelper.startPage(param.getPage(), param.getSize());
 
@@ -83,4 +98,45 @@ public class RedEnvelopeApiController {
 		}
         return ResultGenerator.genSuccessResult(pageInfo);
     }
+
+
+	@GetMapping("/top")
+	@ApiOperation(value = "排行榜type 1 7天收益排行",httpMethod = "GET")
+	public Result<TopBO> top(@RequestParam(defaultValue = "1") Integer type, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) {
+		String key = CacheKey.generateKey(CacheType.Top2,type+":"+page+":"+size).toString();
+		Object o = redisUtil.get(key);
+		if (o != null){
+			return ResultGenerator.genSuccessResult(JSONUtil.toBean(o.toString(),TopBO.class));
+		}
+		List<UserTopBo> tops= redEnvelopeService.top(type,page,size);
+		PageInfo pageInfo = new PageInfo(tops);
+		TopBO bo = new TopBO();
+		pageInfo.setList(tops.stream().map(e->{
+			User user = userService.findById(e.getUserId());
+			if (user != null){
+				e.setHeadPic(user.getHeadPic());
+				e.setNickname(user.getNickname());
+				e.setNickname(user.getName());
+				e.setVipLevel(user.getVipLevel());
+				e.setUserNo(user.getUserNo());
+			}
+			Condition c = new Condition(User.class);
+			c.createCriteria().andEqualTo("pid",e.getUserId());
+			Integer invited = userService.countByCondition(c);
+			if (invited != null){
+				e.setInviteNum(invited);
+			}
+			c = new Condition(User.class);
+			c.createCriteria().andEqualTo("ppid",e.getUserId());
+			Integer invited2 = userService.countByCondition(c);
+			if (invited != null && invited2 != null){
+				e.setTeamNum(invited+invited2);
+			}
+			return e;
+		}).collect(Collectors.toList()));
+		bo.setUsers(pageInfo);
+		bo.setUpdateTime(DateUtil.date());
+		redisUtil.set(key,JSONUtil.toJsonStr(pageInfo),1, TimeUnit.DAYS);
+		return ResultGenerator.genSuccessResult(pageInfo);
+	}
 }

+ 10 - 1
cif-service/src/main/java/com/txz/cif/web/UserApiController.java

@@ -200,6 +200,9 @@ public class UserApiController extends AbstractApiController {
     @GetMapping("/getUserInfo")
     public Result<UserInfoBO> getUserInfo(HttpServletRequest request) {
         Long userId = authService.getTokenUserId(request);
+        if (userId == null ){
+            ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
+        }
         User user = userService.findById(userId);
         if (user == null){
             return ResultGenerator.genFailResult(ResultCode.USER_IS_NULL);
@@ -238,6 +241,9 @@ public class UserApiController extends AbstractApiController {
     @PostMapping("/updateUser")
     public Result<UserInfoBO> updateUser(@RequestBody UserInfoForm userForm,HttpServletRequest request) {
         Long userId = authService.getTokenUserId(request);
+        if (userId == null ){
+            ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
+        }
         User user = userService.findById(userId);
         if (user == null){
             return ResultGenerator.genFailResult(ResultCode.USER_IS_NULL);
@@ -351,10 +357,13 @@ public class UserApiController extends AbstractApiController {
     @ApiOperation(value = "获取我的邀请的用户",httpMethod = "POST")
     public Result<List<User>> myUsers(@RequestBody MyUserParam param, HttpServletRequest request) {
         Long userId = authService.getTokenUserId(request);
+        if (userId == null ){
+            ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
+        }
         PageHelper.startPage(param.getPage(), param.getSize());
         Condition condition = new Condition(User.class);
         Example.Criteria criteria = condition.createCriteria();
-        if (param.getType() == 1){
+        if (param.getType() != null && param.getType() == 1){
             criteria.andEqualTo("pid",userId);
         } else {
             criteria.andEqualTo("ppid",userId);

+ 3 - 1
cif-service/src/main/java/com/txz/cif/web/WithdrawRecordApiController.java

@@ -140,7 +140,9 @@ public class WithdrawRecordApiController {
 	@ApiOperation(value = "withdrawRecord获取列表",httpMethod = "POST")
 	public Result<List<WithdrawRecord>> list(@RequestBody RecordParam param, HttpServletRequest request) {
 		Long userId = authService.getTokenUserId(request);
-
+		if (userId == null ){
+			ResultGenerator.genFailResult(ResultCode.OAUTH_INVALID_ACCESS_TOKEN);
+		}
 		PageHelper.startPage(param.getPage(), param.getSize());
 
 		Condition condition = new Condition(WithdrawRecord.class);

+ 21 - 0
cif-service/src/main/java/com/txz/cif/web/bo/TopBO.java

@@ -0,0 +1,21 @@
+package com.txz.cif.web.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.github.pagehelper.PageInfo;
+import lombok.*;
+
+import java.util.Date;
+
+@Getter
+@Setter
+@ToString
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class TopBO {
+
+    private PageInfo<TopBO> users;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}

+ 3 - 0
cif-service/src/main/java/com/txz/cif/web/bo/UserBo2.java

@@ -24,6 +24,9 @@ public class UserBo2 {
     @ApiModelProperty("名称")
     private String nickname;
 
+    @ApiModelProperty("名称")
+    private String name;
+
     @ApiModelProperty("头像")
     private String headPic;
 

+ 3 - 0
cif-service/src/main/java/com/txz/cif/web/bo/UserInfoBO.java

@@ -40,6 +40,9 @@ public class UserInfoBO {
     @ApiModelProperty(value="phoneNo电话")
     private String phoneNo;
 
+    @ApiModelProperty(value="用户编码")
+    private String userNo;
+
 
 
     @ApiModelProperty(value="语言")

+ 53 - 0
cif-service/src/main/java/com/txz/cif/web/bo/UserTopBo.java

@@ -0,0 +1,53 @@
+package com.txz.cif.web.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import javax.persistence.Column;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Getter
+@Setter
+@ToString
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户排行信息")
+public class UserTopBo {
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value="userId")
+    private Long userId;
+
+    @ApiModelProperty(value="headPic头像")
+    private String headPic;
+
+    @ApiModelProperty(value="userId用户号")
+    private String userNo;
+    @ApiModelProperty(value="nickname昵称")
+    private String nickname;
+
+
+    @ApiModelProperty(value="vip等级")
+    private Integer vipLevel;
+
+    //统计信息
+    @ApiModelProperty(value="邀请好友数")
+    private Integer inviteNum;
+
+    @ApiModelProperty(value="团队人数")
+    private Integer teamNum;
+
+
+    @ApiModelProperty(value="7日收益")
+    private BigDecimal L7DEarnings;
+
+
+
+    @ApiModelProperty(value="7日成团数")
+    private Integer groupNum;
+
+}

+ 1 - 1
cif-service/src/main/resources/logback.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration debug="false">
     <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
-    <property name="LOG_HOME" value="./cif" />
+    <property name="LOG_HOME" value="/var/logs/cif" />
 <!--    <property name="port" value="${server.port}"/>-->
 <!--    <property resource="application.properties"/>-->
     <springProperty scope="context" name="port" source="server.port"/>

+ 16 - 0
cif-service/src/main/resources/mapper/RedEnvelopeMapper.xml

@@ -42,4 +42,20 @@
       and status = 2
     </if>
   </select>
+
+  <select id="top" resultType="com.txz.cif.web.bo.UserTopBo">
+    SELECT
+    user_id as userId,
+    SUM(amount) AS L7DEarnings,
+    count(id) AS groupNum
+    FROM
+      c_red_envelope
+    WHERE
+    create_time >= #{startTime}
+    AND   #{endTime}  > create_time
+    GROUP BY
+    user_id
+    ORDER BY
+    L7DEarnings DESC
+  </select>
 </mapper>

+ 0 - 376
log.home_IS_UNDEFINED/error.cif.log.2025-07-09.log

@@ -1,376 +0,0 @@
-2025-07-09 11:27:39.490 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
-org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mapperScannerConfigurer' defined in class path resource [com/txz/cif/configurer/MybatisConfigurer.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [tk.mybatis.spring.mapper.MapperScannerConfigurer]: Factory method 'mapperScannerConfigurer' threw exception; nested exception is tk.mybatis.mapper.MapperException: 注册通用Mapper[com.medipath.cif.core.Mapper]失败,找不到该通用Mapper!
-	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:590)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
-	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:114)
-	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694)
-	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)
-	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
-	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
-	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
-	at com.txz.cif.CifApplication.main(CifApplication.java:32)
-Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [tk.mybatis.spring.mapper.MapperScannerConfigurer]: Factory method 'mapperScannerConfigurer' threw exception; nested exception is tk.mybatis.mapper.MapperException: 注册通用Mapper[com.medipath.cif.core.Mapper]失败,找不到该通用Mapper!
-	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
-	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)
-	... 18 common frames omitted
-Caused by: tk.mybatis.mapper.MapperException: 注册通用Mapper[com.medipath.cif.core.Mapper]失败,找不到该通用Mapper!
-	at tk.mybatis.mapper.mapperhelper.MapperHelper.registerMapper(MapperHelper.java:194)
-	at tk.mybatis.mapper.mapperhelper.MapperHelper.setProperties(MapperHelper.java:268)
-	at tk.mybatis.spring.mapper.MapperScannerConfigurer.setProperties(MapperScannerConfigurer.java:61)
-	at com.txz.cif.configurer.MybatisConfigurer.mapperScannerConfigurer(MybatisConfigurer.java:45)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
-	... 19 common frames omitted
-2025-07-09 11:33:53.348 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
-org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxlJobConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'xxl.job.admin.addresses' in value "${xxl.job.admin.addresses}"
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:378)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
-	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
-	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
-	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
-	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
-	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
-	at com.txz.cif.CifApplication.main(CifApplication.java:32)
-Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'xxl.job.admin.addresses' in value "${xxl.job.admin.addresses}"
-	at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:172)
-	at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124)
-	at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:237)
-	at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:211)
-	at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:175)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:839)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1083)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583)
-	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)
-	... 17 common frames omitted
-2025-07-09 11:39:05.790 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
-org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'healthController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'minioClient' defined in class path resource [com/txz/cif/configurer/MinioConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.minio.MinioClient]: Factory method 'minioClient' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
-	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
-	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
-	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
-	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
-	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
-	at com.txz.cif.CifApplication.main(CifApplication.java:32)
-Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'minioClient' defined in class path resource [com/txz/cif/configurer/MinioConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.minio.MinioClient]: Factory method 'minioClient' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:590)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
-	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:514)
-	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:485)
-	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:619)
-	at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:180)
-	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
-	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
-	... 17 common frames omitted
-Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.minio.MinioClient]: Factory method 'minioClient' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
-	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)
-	... 31 common frames omitted
-Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:378)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:353)
-	at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:390)
-	at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:184)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:350)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
-	at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35)
-	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:672)
-	at com.txz.cif.configurer.Parameters$$EnhancerBySpringCGLIB$$28055a7.getMinioBaseUrl(<generated>)
-	at com.txz.cif.configurer.MinioConfig.minioClient(MinioConfig.java:18)
-	at com.txz.cif.configurer.MinioConfig$$EnhancerBySpringCGLIB$$f3f20430.CGLIB$minioClient$0(<generated>)
-	at com.txz.cif.configurer.MinioConfig$$EnhancerBySpringCGLIB$$f3f20430$$FastClassBySpringCGLIB$$ceb4a948.invoke(<generated>)
-	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
-	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:365)
-	at com.txz.cif.configurer.MinioConfig$$EnhancerBySpringCGLIB$$f3f20430.minioClient(<generated>)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
-	... 32 common frames omitted
-Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:172)
-	at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124)
-	at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:237)
-	at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:211)
-	at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:175)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:839)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1083)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583)
-	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)
-	... 54 common frames omitted
-2025-07-09 11:40:52.903 [main] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - 
-
-***************************
-APPLICATION FAILED TO START
-***************************
-
-Description:
-
-A component required a bean of type 'io.minio.MinioClient' that could not be found.
-
-
-Action:
-
-Consider defining a bean of type 'io.minio.MinioClient' in your configuration.
-
-2025-07-09 11:43:04.599 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
-org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'documentationPluginsBootstrapper' defined in URL [jar:file:/Users/linxk/.m2/repository/io/springfox/springfox-spring-web/2.9.2/springfox-spring-web-2.9.2.jar!/springfox/documentation/spring/web/plugins/DocumentationPluginsBootstrapper.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcRequestHandlerProvider' defined in URL [jar:file:/Users/linxk/.m2/repository/io/springfox/springfox-spring-web/2.9.2/springfox-spring-web-2.9.2.jar!/springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]: Factory method 'requestMappingHandlerMapping' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:732)
-	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:197)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1267)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1124)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
-	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
-	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
-	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
-	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
-	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
-	at com.txz.cif.CifApplication.main(CifApplication.java:32)
-Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcRequestHandlerProvider' defined in URL [jar:file:/Users/linxk/.m2/repository/io/springfox/springfox-spring-web/2.9.2/springfox-spring-web-2.9.2.jar!/springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]: Factory method 'requestMappingHandlerMapping' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:732)
-	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:197)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1267)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1124)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
-	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1322)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1288)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1190)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1093)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)
-	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:818)
-	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:724)
-	... 19 common frames omitted
-Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]: Factory method 'requestMappingHandlerMapping' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:590)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
-	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1322)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1288)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1190)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1093)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)
-	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:818)
-	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:724)
-	... 36 common frames omitted
-Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]: Factory method 'requestMappingHandlerMapping' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
-	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)
-	... 52 common frames omitted
-Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.parameters': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:378)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:353)
-	at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:390)
-	at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:184)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:350)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
-	at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35)
-	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:672)
-	at com.txz.cif.configurer.Parameters$$EnhancerBySpringCGLIB$$5d23b2ad.getSignature(<generated>)
-	at com.txz.cif.configurer.MyWebMvcConfigurer.addInterceptors(MyWebMvcConfigurer.java:186)
-	at org.springframework.web.servlet.config.annotation.WebMvcConfigurerComposite.addInterceptors(WebMvcConfigurerComposite.java:88)
-	at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration.addInterceptors(DelegatingWebMvcConfiguration.java:83)
-	at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.getInterceptors(WebMvcConfigurationSupport.java:330)
-	at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.requestMappingHandlerMapping(WebMvcConfigurationSupport.java:282)
-	at org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration.requestMappingHandlerMapping(WebMvcAutoConfiguration.java:487)
-	at org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$7c02ba41.CGLIB$requestMappingHandlerMapping$3(<generated>)
-	at org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$7c02ba41$$FastClassBySpringCGLIB$$2e0f7ce8.invoke(<generated>)
-	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
-	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:365)
-	at org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$7c02ba41.requestMappingHandlerMapping(<generated>)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
-	... 53 common frames omitted
-Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'minio.endpoint' in value "${minio.endpoint}"
-	at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:172)
-	at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124)
-	at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:237)
-	at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:211)
-	at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:175)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:839)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1083)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583)
-	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
-	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)
-	... 80 common frames omitted
-2025-07-09 11:46:49.192 [RMI TCP Connection(6)-192.168.0.102] ERROR com.zaxxer.hikari.pool.HikariPool - DatebookHikariCP - Exception during pool initialization.
-com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
-	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
-	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
-	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
-	at com.mysql.jdbc.Util.getInstance(Util.java:408)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
-	at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2105)
-	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2030)
-	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778)
-	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
-	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
-	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
-	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
-	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
-	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
-	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
-	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
-	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
-	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
-	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)
-	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534)
-	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
-	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
-	at com.zaxxer.hikari.HikariDataSource$$FastClassBySpringCGLIB$$eeb1ae86.invoke(<generated>)
-	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
-	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
-	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
-	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
-	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
-	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
-	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
-	at com.zaxxer.hikari.HikariDataSource$$EnhancerBySpringCGLIB$$ba08ad71.getConnection(<generated>)
-	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
-	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
-	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
-	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:324)
-	at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.getProduct(DataSourceHealthIndicator.java:122)
-	at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.doDataSourceHealthCheck(DataSourceHealthIndicator.java:109)
-	at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.doHealthCheck(DataSourceHealthIndicator.java:104)
-	at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:84)
-	at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68)
-	at org.springframework.boot.actuate.health.HealthEndpoint.health(HealthEndpoint.java:47)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:223)
-	at org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:76)
-	at org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:61)
-	at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:126)
-	at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:99)
-	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
-	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
-	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
-	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
-	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
-	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
-	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
-	at sun.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
-	at sun.rmi.transport.Transport$1.run(Transport.java:200)
-	at sun.rmi.transport.Transport$1.run(Transport.java:197)
-	at java.security.AccessController.doPrivileged(Native Method)
-	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
-	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
-	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
-	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
-	at java.security.AccessController.doPrivileged(Native Method)
-	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
-	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
-	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
-	at java.lang.Thread.run(Thread.java:750)
-Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
-
-The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
-	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
-	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
-	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
-	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
-	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)
-	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2197)
-	at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2046)
-	... 69 common frames omitted
-Caused by: java.net.SocketTimeoutException: connect timed out
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
-	at java.net.Socket.connect(Socket.java:606)
-	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
-	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:301)
-	... 71 common frames omitted

+ 0 - 25
log.home_IS_UNDEFINED/error.cif.log.2025-07-15.log

@@ -1,25 +0,0 @@
-2025-07-15 15:23:52.794 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
-org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.txz.cif.CifApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'rechargeRecordController' for bean class [com.txz.cif.web.mng.RechargeRecordController] conflicts with existing, non-compatible bean definition of same name and class [com.txz.cif.web.RechargeRecordController]
-	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:184)
-	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:316)
-	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233)
-	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:271)
-	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:91)
-	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694)
-	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)
-	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
-	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
-	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
-	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
-	at com.txz.cif.CifApplication.main(CifApplication.java:32)
-Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'rechargeRecordController' for bean class [com.txz.cif.web.mng.RechargeRecordController] conflicts with existing, non-compatible bean definition of same name and class [com.txz.cif.web.RechargeRecordController]
-	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:348)
-	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:286)
-	at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132)
-	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:288)
-	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245)
-	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:202)
-	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:170)
-	... 13 common frames omitted

+ 0 - 164
log.home_IS_UNDEFINED/error.cif.log.2025-07-16.log

@@ -1,164 +0,0 @@
-2025-07-16 19:24:46.425 [dubbo-client-idleCheck-thread-1] ERROR o.a.d.r.exchange.support.header.ReconnectTimerTask -  [DUBBO] Fail to connect to HeaderExchangeClient [channel=org.apache.dubbo.remoting.transport.netty4.NettyClient [169.254.89.253:0 -> /172.17.0.3:20881]], dubbo version: 2.7.1, current host: 169.254.89.253
-org.apache.dubbo.remoting.RemotingException: client(url: dubbo://172.17.0.3:20881/com.txz.operating.service.OperatingConfigDubboService?anyhost=true&application=cif&bean.name=providers:dubbo:com.txz.operating.service.OperatingConfigDubboService&category=providers&check=false&codec=dubbo&default.check=false&default.deprecated=false&default.dynamic=false&default.generic=false&default.lazy=false&default.register=true&default.sticky=false&deprecated=false&dubbo=2.0.2&dynamic=false&generic=false&heartbeat=60000&interface=com.txz.operating.service.OperatingConfigDubboService&lazy=false&methods=getConfigByCode&path=com.txz.operating.service.OperatingConfigDubboService&payload=83886080&pid=77963&protocol=dubbo&qos.accept.foreign.ip=true&qos.enable=false&qos.port=-1&register=true&register.ip=169.254.89.253&release=2.7.1&remote.application=operating&remote.timestamp=1752546658673&revision=1.0.0-SNAPSHOT&serialization=kryo&side=consumer&sticky=false&timestamp=1752665019069) failed to connect to server /172.17.0.3:20881, error message is:connection timed out: /172.17.0.3:20881
-	at org.apache.dubbo.remoting.transport.netty4.NettyClient.doConnect(NettyClient.java:131)
-	at org.apache.dubbo.remoting.transport.AbstractClient.connect(AbstractClient.java:186)
-	at org.apache.dubbo.remoting.transport.AbstractClient.reconnect(AbstractClient.java:242)
-	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.reconnect(HeaderExchangeClient.java:152)
-	at org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask.doTask(ReconnectTimerTask.java:49)
-	at org.apache.dubbo.remoting.exchange.support.header.AbstractTimerTask.run(AbstractTimerTask.java:87)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:648)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:727)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:449)
-	at java.lang.Thread.run(Thread.java:750)
-Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /172.17.0.3:20881
-	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:267)
-	at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
-	at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:127)
-	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:163)
-	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
-	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
-	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:446)
-	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
-	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
-	... 1 common frames omitted
-2025-07-16 19:25:25.914 [RMI TCP Connection(10)-192.168.0.102] ERROR com.zaxxer.hikari.pool.HikariPool - DatebookHikariCP - Exception during pool initialization.
-com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
-	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
-	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
-	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
-	at com.mysql.jdbc.Util.getInstance(Util.java:408)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
-	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
-	at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2105)
-	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2030)
-	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778)
-	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
-	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
-	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
-	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
-	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
-	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
-	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
-	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
-	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
-	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
-	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)
-	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534)
-	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
-	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
-	at com.zaxxer.hikari.HikariDataSource$$FastClassBySpringCGLIB$$eeb1ae86.invoke(<generated>)
-	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
-	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
-	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
-	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
-	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
-	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
-	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
-	at com.zaxxer.hikari.HikariDataSource$$EnhancerBySpringCGLIB$$dd7353f.getConnection(<generated>)
-	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
-	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
-	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
-	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:324)
-	at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.getProduct(DataSourceHealthIndicator.java:122)
-	at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.doDataSourceHealthCheck(DataSourceHealthIndicator.java:109)
-	at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.doHealthCheck(DataSourceHealthIndicator.java:104)
-	at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:84)
-	at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68)
-	at org.springframework.boot.actuate.health.HealthEndpoint.health(HealthEndpoint.java:47)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:223)
-	at org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:76)
-	at org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:61)
-	at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:126)
-	at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:99)
-	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
-	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
-	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
-	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
-	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
-	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
-	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
-	at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
-	at sun.rmi.transport.Transport$1.run(Transport.java:200)
-	at sun.rmi.transport.Transport$1.run(Transport.java:197)
-	at java.security.AccessController.doPrivileged(Native Method)
-	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
-	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
-	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
-	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
-	at java.security.AccessController.doPrivileged(Native Method)
-	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
-	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
-	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
-	at java.lang.Thread.run(Thread.java:750)
-Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
-
-The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
-	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
-	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
-	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
-	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
-	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
-	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)
-	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2197)
-	at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2046)
-	... 69 common frames omitted
-Caused by: java.net.SocketTimeoutException: connect timed out
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
-	at java.net.Socket.connect(Socket.java:606)
-	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
-	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:301)
-	... 71 common frames omitted
-2025-07-16 19:25:50.281 [dubbo-client-idleCheck-thread-1] ERROR o.a.d.r.exchange.support.header.ReconnectTimerTask -  [DUBBO] Fail to connect to HeaderExchangeClient [channel=org.apache.dubbo.remoting.transport.netty4.NettyClient [169.254.89.253:0 -> /172.17.0.3:20881]], dubbo version: 2.7.1, current host: 169.254.89.253
-org.apache.dubbo.remoting.RemotingException: client(url: dubbo://172.17.0.3:20881/com.txz.operating.service.OperatingConfigDubboService?anyhost=true&application=cif&bean.name=providers:dubbo:com.txz.operating.service.OperatingConfigDubboService&category=providers&check=false&codec=dubbo&default.check=false&default.deprecated=false&default.dynamic=false&default.generic=false&default.lazy=false&default.register=true&default.sticky=false&deprecated=false&dubbo=2.0.2&dynamic=false&generic=false&heartbeat=60000&interface=com.txz.operating.service.OperatingConfigDubboService&lazy=false&methods=getConfigByCode&path=com.txz.operating.service.OperatingConfigDubboService&payload=83886080&pid=77963&protocol=dubbo&qos.accept.foreign.ip=true&qos.enable=false&qos.port=-1&register=true&register.ip=169.254.89.253&release=2.7.1&remote.application=operating&remote.timestamp=1752546658673&revision=1.0.0-SNAPSHOT&serialization=kryo&side=consumer&sticky=false&timestamp=1752665019069) failed to connect to server /172.17.0.3:20881 client-side timeout 3000ms (elapsed: 3008ms) from netty client 169.254.89.253 using dubbo version 2.7.1
-	at org.apache.dubbo.remoting.transport.netty4.NettyClient.doConnect(NettyClient.java:136)
-	at org.apache.dubbo.remoting.transport.AbstractClient.connect(AbstractClient.java:186)
-	at org.apache.dubbo.remoting.transport.AbstractClient.reconnect(AbstractClient.java:242)
-	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.reconnect(HeaderExchangeClient.java:152)
-	at org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask.doTask(ReconnectTimerTask.java:49)
-	at org.apache.dubbo.remoting.exchange.support.header.AbstractTimerTask.run(AbstractTimerTask.java:87)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:648)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:727)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:449)
-	at java.lang.Thread.run(Thread.java:750)
-2025-07-16 19:26:54.271 [dubbo-client-idleCheck-thread-1] ERROR o.a.d.r.exchange.support.header.ReconnectTimerTask -  [DUBBO] Fail to connect to HeaderExchangeClient [channel=org.apache.dubbo.remoting.transport.netty4.NettyClient [169.254.89.253:0 -> /172.17.0.3:20881]], dubbo version: 2.7.1, current host: 169.254.89.253
-org.apache.dubbo.remoting.RemotingException: client(url: dubbo://172.17.0.3:20881/com.txz.operating.service.OperatingConfigDubboService?anyhost=true&application=cif&bean.name=providers:dubbo:com.txz.operating.service.OperatingConfigDubboService&category=providers&check=false&codec=dubbo&default.check=false&default.deprecated=false&default.dynamic=false&default.generic=false&default.lazy=false&default.register=true&default.sticky=false&deprecated=false&dubbo=2.0.2&dynamic=false&generic=false&heartbeat=60000&interface=com.txz.operating.service.OperatingConfigDubboService&lazy=false&methods=getConfigByCode&path=com.txz.operating.service.OperatingConfigDubboService&payload=83886080&pid=77963&protocol=dubbo&qos.accept.foreign.ip=true&qos.enable=false&qos.port=-1&register=true&register.ip=169.254.89.253&release=2.7.1&remote.application=operating&remote.timestamp=1752546658673&revision=1.0.0-SNAPSHOT&serialization=kryo&side=consumer&sticky=false&timestamp=1752665019069) failed to connect to server /172.17.0.3:20881 client-side timeout 3000ms (elapsed: 3006ms) from netty client 169.254.89.253 using dubbo version 2.7.1
-	at org.apache.dubbo.remoting.transport.netty4.NettyClient.doConnect(NettyClient.java:136)
-	at org.apache.dubbo.remoting.transport.AbstractClient.connect(AbstractClient.java:186)
-	at org.apache.dubbo.remoting.transport.AbstractClient.reconnect(AbstractClient.java:242)
-	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.reconnect(HeaderExchangeClient.java:152)
-	at org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask.doTask(ReconnectTimerTask.java:49)
-	at org.apache.dubbo.remoting.exchange.support.header.AbstractTimerTask.run(AbstractTimerTask.java:87)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:648)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:727)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:449)
-	at java.lang.Thread.run(Thread.java:750)
-2025-07-16 19:27:58.273 [dubbo-client-idleCheck-thread-1] ERROR o.a.d.r.exchange.support.header.ReconnectTimerTask -  [DUBBO] Fail to connect to HeaderExchangeClient [channel=org.apache.dubbo.remoting.transport.netty4.NettyClient [169.254.89.253:0 -> /172.17.0.3:20881]], dubbo version: 2.7.1, current host: 169.254.89.253
-org.apache.dubbo.remoting.RemotingException: client(url: dubbo://172.17.0.3:20881/com.txz.operating.service.OperatingConfigDubboService?anyhost=true&application=cif&bean.name=providers:dubbo:com.txz.operating.service.OperatingConfigDubboService&category=providers&check=false&codec=dubbo&default.check=false&default.deprecated=false&default.dynamic=false&default.generic=false&default.lazy=false&default.register=true&default.sticky=false&deprecated=false&dubbo=2.0.2&dynamic=false&generic=false&heartbeat=60000&interface=com.txz.operating.service.OperatingConfigDubboService&lazy=false&methods=getConfigByCode&path=com.txz.operating.service.OperatingConfigDubboService&payload=83886080&pid=77963&protocol=dubbo&qos.accept.foreign.ip=true&qos.enable=false&qos.port=-1&register=true&register.ip=169.254.89.253&release=2.7.1&remote.application=operating&remote.timestamp=1752546658673&revision=1.0.0-SNAPSHOT&serialization=kryo&side=consumer&sticky=false&timestamp=1752665019069) failed to connect to server /172.17.0.3:20881 client-side timeout 3000ms (elapsed: 3010ms) from netty client 169.254.89.253 using dubbo version 2.7.1
-	at org.apache.dubbo.remoting.transport.netty4.NettyClient.doConnect(NettyClient.java:136)
-	at org.apache.dubbo.remoting.transport.AbstractClient.connect(AbstractClient.java:186)
-	at org.apache.dubbo.remoting.transport.AbstractClient.reconnect(AbstractClient.java:242)
-	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.reconnect(HeaderExchangeClient.java:152)
-	at org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask.doTask(ReconnectTimerTask.java:49)
-	at org.apache.dubbo.remoting.exchange.support.header.AbstractTimerTask.run(AbstractTimerTask.java:87)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:648)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:727)
-	at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:449)
-	at java.lang.Thread.run(Thread.java:750)

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 16
log.home_IS_UNDEFINED/log.cif.2025-07-09.0.log


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 17
log.home_IS_UNDEFINED/log.cif.2025-07-15.0.log


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 17
log.home_IS_UNDEFINED/log.cif.2025-07-16.0.log


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است