| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.ruoyi.system.mapper.TbCallbackLogMapper; |
| | | import com.ruoyi.system.domain.TbCallbackLog; |
| | | import com.ruoyi.system.service.ITbCallbackLogService; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.TypeReference; |
| | | import com.ruoyi.common.utils.HttpUtil; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | /** |
| | | * 回调记录Service业务层处理 |
| | |
| | | @Service |
| | | public class TbCallbackLogServiceImpl implements ITbCallbackLogService |
| | | { |
| | | private static final Logger log = LoggerFactory.getLogger(TbCallbackLogServiceImpl.class); |
| | | |
| | | @Autowired |
| | | private TbCallbackLogMapper tbCallbackLogMapper; |
| | | |
| | |
| | | { |
| | | return tbCallbackLogMapper.deleteTbCallbackLogById(id); |
| | | } |
| | | |
| | | /** |
| | | * 重试回调 |
| | | */ |
| | | @Override |
| | | public int retryTbCallbackLogByIds(Long[] ids) { |
| | | int successCount = 0; |
| | | for (Long id : ids) { |
| | | TbCallbackLog callbackLog = tbCallbackLogMapper.selectTbCallbackLogById(id); |
| | | if (callbackLog != null) { |
| | | try { |
| | | // 解析原始请求参数 |
| | | Map<String, String> params = JSON.parseObject(callbackLog.getRequestParams(), |
| | | new TypeReference<Map<String, String>>() {}); |
| | | |
| | | // 转换key的首字母为大写 |
| | | Map<String, String> capitalizedParams = new HashMap<>(); |
| | | params.forEach((key, value) -> { |
| | | String capitalizedKey = key.substring(0, 1).toUpperCase() + key.substring(1); |
| | | capitalizedParams.put(capitalizedKey, value); |
| | | }); |
| | | |
| | | // 重新发送回调 |
| | | String response = HttpUtil.post(callbackLog.getCallbackUrl(), capitalizedParams); |
| | | if (response != null) { |
| | | callbackLog.setRetryCount(callbackLog.getRetryCount()+1); |
| | | callbackLog.setResponseResult(response); |
| | | callbackLog.setStatus("1"); // 更新状态为成功 |
| | | successCount++; |
| | | tbCallbackLogMapper.updateTbCallbackLog(callbackLog); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("重试回调失败,ID: " + id + ", 错误: " + e.getMessage()); |
| | | callbackLog.setErrorMsg(e.getMessage()); |
| | | callbackLog.setStatus("0"); // 更新状态为失败 |
| | | tbCallbackLogMapper.updateTbCallbackLog(callbackLog); |
| | | } |
| | | } |
| | | } |
| | | return successCount; |
| | | } |
| | | |
| | | } |