|
|
@@ -12,6 +12,7 @@ import com.ruoyi.common.core.utils.DateUtils;
|
|
|
import com.ruoyi.common.core.utils.StringUtils;
|
|
|
import com.ruoyi.common.redis.service.RedisIdGenerator;
|
|
|
import com.ruoyi.common.redis.service.RedisService;
|
|
|
+import com.ruoyi.common.security.utils.SecurityUtils;
|
|
|
import com.ruoyi.logistics.constant.RedisCacheConstants;
|
|
|
import com.ruoyi.logistics.domain.BizFinancialFeeItems;
|
|
|
import com.ruoyi.logistics.domain.BizMonthQrcodeRecord;
|
|
|
@@ -28,6 +29,7 @@ import com.ruoyi.system.api.domain.SysUser;
|
|
|
import com.ruoyi.system.mapper.SysDeptMapper;
|
|
|
import com.ruoyi.system.mapper.SysUserMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -69,26 +71,35 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
|
|
|
|
|
|
@Override
|
|
|
public void consumeQRCode() {
|
|
|
- Collection<String> keys = redisService.keys(RedisCacheConstants.MONTH_QRCODE_CACHE_KEY + "*");
|
|
|
- if (keys == null || keys.size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- for (String key : keys) {
|
|
|
- MonthQRCodeDTO monthQRCodeDTO = redisService.getCacheObject(key);
|
|
|
-
|
|
|
- // 判断二维码是否在5分钟内生成的,如果是则给第三方处理数据缓冲时间,避免数据处理
|
|
|
+// Collection<String> keys = redisService.keys(RedisCacheConstants.MONTH_QRCODE_CACHE_KEY + "*");
|
|
|
+// if (keys == null || keys.size() == 0) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+
|
|
|
+// for (String key : keys) {
|
|
|
+// MonthQRCodeDTO monthQRCodeDTO = redisService.getCacheObject(key);
|
|
|
+ BizMonthQrcodeRecord bizMonthQrcodeRecord = bizMonthQrcodeRecordMapper.selectBizMonthQrcodeRecordByQrcodeId(new Long("47"));
|
|
|
+ MonthQRCodeDTO monthQRCodeDTO = new MonthQRCodeDTO();
|
|
|
+ monthQRCodeDTO.setQrcodeId(bizMonthQrcodeRecord.getQrcodeId());
|
|
|
+ monthQRCodeDTO.setQrCodeContent(bizMonthQrcodeRecord.getQrcodeContent());
|
|
|
+ monthQRCodeDTO.setUserId(bizMonthQrcodeRecord.getUserId());
|
|
|
+ monthQRCodeDTO.setDeptId(bizMonthQrcodeRecord.getDeptId());
|
|
|
+ monthQRCodeDTO.setSource(bizMonthQrcodeRecord.getSource());
|
|
|
+ monthQRCodeDTO.setCreateTime(bizMonthQrcodeRecord.getCreateTime());
|
|
|
+
|
|
|
+
|
|
|
+ // 判断二维码是否在5分钟内生成的,如果是则给第三方处理数据缓冲时间,避免数据处理
|
|
|
if (DateUtils.differentMinutes(monthQRCodeDTO.getCreateTime(), DateUtils.getNowDate()) < 5) {
|
|
|
- continue;
|
|
|
+// continue;
|
|
|
}
|
|
|
|
|
|
SysUser sysUser = sysUserMapper.selectUserById(monthQRCodeDTO.getUserId());
|
|
|
SysDept sysDept = sysDeptMapper.selectDeptById(monthQRCodeDTO.getDeptId());
|
|
|
|
|
|
if (1 == monthQRCodeDTO.getSource()) {
|
|
|
- this.jdQRCodeConsume(monthQRCodeDTO, sysUser, sysDept, key);
|
|
|
+ this.jdQRCodeConsume(monthQRCodeDTO, sysUser, sysDept, "1");
|
|
|
}
|
|
|
- }
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
private void jdQRCodeConsume(MonthQRCodeDTO monthQRCodeDTO, SysUser sysUser, SysDept sysDept, String key) {
|
|
|
@@ -103,6 +114,9 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
|
|
|
if (response.getWaybillQRVerifyInfoList() != null && response.getWaybillQRVerifyInfoList().size() > 0) {
|
|
|
|
|
|
for (WaybillQRVerifyInfo waybillQRVerifyInfo : response.getWaybillQRVerifyInfoList()) {
|
|
|
+ if (CollectionUtils.isEmpty(monthQRCodeDTO.getProcessWaybillCodes())) {
|
|
|
+ monthQRCodeDTO.setProcessWaybillCodes(new ArrayList<>());
|
|
|
+ }
|
|
|
// 判断订单是否已经处理过
|
|
|
if (monthQRCodeDTO.getProcessWaybillCodes().contains(waybillQRVerifyInfo.getWaybillCode())) {
|
|
|
continue;
|
|
|
@@ -167,7 +181,7 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
|
|
|
|
|
|
// 记录二维码处理次数
|
|
|
monthQRCodeDTO.setProcessNum(monthQRCodeDTO.getProcessNum() + 1);
|
|
|
- redisService.setCacheObject(key, monthQRCodeDTO);
|
|
|
+// redisService.setCacheObject(key, monthQRCodeDTO);
|
|
|
|
|
|
// 二维码处理次数大于等于5次,且已处理订单等于二维码包含订单数,则修改二维码状态为已处理
|
|
|
if (monthQRCodeDTO.getProcessNum() >= 5 && monthQRCodeDTO.getProcessWaybillCodes().size() == response.getWaybillQRVerifyInfoList().size()) {
|