From a0c5b337bca0c3bcb45d404991002690d547eea8 Mon Sep 17 00:00:00 2001 From: TS-QD1 Date: Fri, 18 Apr 2025 17:46:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9B=9E=E8=B0=83=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operator/callback/ISysCallbackDao.java | 4 +++ .../pojo/dtos/user/expand/UserExpandDTO.java | 18 ++++++++++ .../sys/callback/SysCallbackService.java | 8 +++++ .../sys/callback/SysCallbackTask.java | 14 ++++++-- .../operator/sys/task/SysTaskService.java | 1 + .../tenlion/operator/task/SystemStart.java | 33 +++++++++++++++++++ .../callback/sys-callback-mapper.xml | 30 +++++++++++++++++ 7 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 src/main/java/cn/com/tenlion/operator/task/SystemStart.java diff --git a/src/main/java/cn/com/tenlion/operator/daoother/operator/callback/ISysCallbackDao.java b/src/main/java/cn/com/tenlion/operator/daoother/operator/callback/ISysCallbackDao.java index 9f403a0..01fe3d6 100644 --- a/src/main/java/cn/com/tenlion/operator/daoother/operator/callback/ISysCallbackDao.java +++ b/src/main/java/cn/com/tenlion/operator/daoother/operator/callback/ISysCallbackDao.java @@ -2,6 +2,8 @@ package cn.com.tenlion.operator.daoother.operator.callback; import cn.com.tenlion.operator.pojo.pos.callback.SysCallbackPO; import org.springframework.stereotype.Repository; + +import java.util.List; import java.util.Map; @Repository @@ -13,4 +15,6 @@ public interface ISysCallbackDao { void update(Map params); + List listPO(Map params); + } diff --git a/src/main/java/cn/com/tenlion/operator/pojo/dtos/user/expand/UserExpandDTO.java b/src/main/java/cn/com/tenlion/operator/pojo/dtos/user/expand/UserExpandDTO.java index e5eeb15..fb4b082 100644 --- a/src/main/java/cn/com/tenlion/operator/pojo/dtos/user/expand/UserExpandDTO.java +++ b/src/main/java/cn/com/tenlion/operator/pojo/dtos/user/expand/UserExpandDTO.java @@ -38,6 +38,8 @@ public class UserExpandDTO extends UserDTO { private String mainUserId; private String wxMiniappOpenId; private String wxOfficialAccountOpenId; + private String wxOpenId; + private String wxUnionId; public Long getPriceAdditionalPkg() { return priceAdditionalPkg == null ? 0 : priceAdditionalPkg; @@ -255,4 +257,20 @@ public class UserExpandDTO extends UserDTO { public void setWxOfficialAccountOpenId(String wxOfficialAccountOpenId) { this.wxOfficialAccountOpenId = wxOfficialAccountOpenId; } + + public String getWxOpenId() { + return wxOpenId == null ? "" : wxOpenId.trim(); + } + + public void setWxOpenId(String wxOpenId) { + this.wxOpenId = wxOpenId; + } + + public String getWxUnionId() { + return wxUnionId == null ? "" : wxUnionId.trim(); + } + + public void setWxUnionId(String wxUnionId) { + this.wxUnionId = wxUnionId; + } } diff --git a/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackService.java b/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackService.java index 37c39e5..1ea90ae 100644 --- a/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackService.java +++ b/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackService.java @@ -9,6 +9,8 @@ import ink.wgink.common.base.DefaultBaseService; import ink.wgink.util.UUIDUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.List; import java.util.Map; @Service @@ -49,4 +51,10 @@ public class SysCallbackService extends DefaultBaseService { sysTaskService.runCallbackTask(callbackId); } + public List listPOByStatus(SysCallbackStatusEnum status) { + Map params = getHashMap(2); + params.put("status", status.name()); + return sysCallbackDao.listPO(params); + } + } diff --git a/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackTask.java b/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackTask.java index 515c4a5..17066c5 100644 --- a/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackTask.java +++ b/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/callback/SysCallbackTask.java @@ -4,16 +4,20 @@ import cn.com.tenlion.operator.enums.SysCallbackStatusEnum; import cn.com.tenlion.operator.pojo.pos.callback.SysCallbackPO; import cn.com.tenlion.operator.serviceother.operator.sys.task.SysTaskService; import ink.wgink.exceptions.base.SystemException; +import org.apache.commons.lang3.StringUtils; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import java.io.BufferedReader; +import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; +import java.nio.charset.StandardCharsets; public class SysCallbackTask implements Job { @@ -31,10 +35,16 @@ public class SysCallbackTask implements Job { LOG.debug("回调地址:{}", url); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("POST"); - httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); + httpURLConnection.setDoOutput(true); httpURLConnection.setConnectTimeout(3000); - httpURLConnection.connect(); + httpURLConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + if (!StringUtils.isBlank(sysCallbackPO.getJsonBody())) { + try (DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream())) { + byte[] input = sysCallbackPO.getJsonBody().getBytes(StandardCharsets.UTF_8); + dos.write(input, 0, input.length); + } + } int responseCode = httpURLConnection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader reader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream())); diff --git a/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/task/SysTaskService.java b/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/task/SysTaskService.java index e626076..25529a3 100644 --- a/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/task/SysTaskService.java +++ b/src/main/java/cn/com/tenlion/operator/serviceother/operator/sys/task/SysTaskService.java @@ -5,6 +5,7 @@ import cn.com.tenlion.operator.serviceother.operator.sys.callback.SysCallbackSer import cn.com.tenlion.operator.serviceother.operator.sys.callback.SysCallbackTask; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.util.UUIDUtil; +import ink.wgink.util.thread.CachedThreadPoolUtil; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/cn/com/tenlion/operator/task/SystemStart.java b/src/main/java/cn/com/tenlion/operator/task/SystemStart.java new file mode 100644 index 0000000..0bd4268 --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/task/SystemStart.java @@ -0,0 +1,33 @@ +package cn.com.tenlion.operator.task; + +import cn.com.tenlion.operator.enums.SysCallbackStatusEnum; +import cn.com.tenlion.operator.pojo.pos.callback.SysCallbackPO; +import cn.com.tenlion.operator.serviceother.operator.sys.callback.SysCallbackService; +import cn.com.tenlion.operator.serviceother.operator.sys.task.SysTaskService; +import ink.wgink.interfaces.start.IApplicationStart; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class SystemStart implements IApplicationStart { + + private static final Logger LOG = LoggerFactory.getLogger(SystemStart.class); + @Autowired + private SysCallbackService sysCallbackService; + @Autowired + private SysTaskService sysTaskService; + + @Override + public void run() throws Exception { + List sysCallbackPOS = sysCallbackService.listPOByStatus(SysCallbackStatusEnum.UN_SUCCESS); + for (SysCallbackPO sysCallbackPO : sysCallbackPOS) { + sysTaskService.runCallbackTask(sysCallbackPO.getCallbackId()); + } + } + +} diff --git a/src/main/resources/mybatis/mapper-operator/callback/sys-callback-mapper.xml b/src/main/resources/mybatis/mapper-operator/callback/sys-callback-mapper.xml index ffa23c4..421b936 100644 --- a/src/main/resources/mybatis/mapper-operator/callback/sys-callback-mapper.xml +++ b/src/main/resources/mybatis/mapper-operator/callback/sys-callback-mapper.xml @@ -69,4 +69,34 @@ callback_id = #{callbackId} + + \ No newline at end of file