redis 配置修正,其他业务类 不能注入的问题

This commit is contained in:
Jack 2025-09-23 23:09:28 +08:00
parent 1d3fa6ebad
commit 872984f574
5 changed files with 56 additions and 24 deletions

View File

@ -26,8 +26,13 @@ public class RedisConfig extends BaseRedisConfig {
} }
@Bean @Bean
MessageListenerAdapter keyExpiredListener() { MessageListenerAdapter keyExpiredListener(RedisKeyExpiredListener redisKeyExpiredListener) {
return new MessageListenerAdapter(new RedisKeyExpiredListener()); return new MessageListenerAdapter(redisKeyExpiredListener);
}
@Bean
public RedisKeyExpiredListener redisKeyExpiredListener() {
return new RedisKeyExpiredListener();
} }
// /** // /**

View File

@ -45,7 +45,6 @@ import com.suisung.mall.shop.store.service.ShopMchEntryService;
import com.suisung.mall.shop.store.service.ShopStoreBaseService; import com.suisung.mall.shop.store.service.ShopStoreBaseService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.data.util.Pair; import org.springframework.data.util.Pair;
@ -103,19 +102,19 @@ public class LakalaApiServiceImpl implements LakalaApiService {
private String TENGXUN_DEFAULT_DIR; private String TENGXUN_DEFAULT_DIR;
@Lazy @Lazy
@Autowired @Resource
private ShopService shopService; private ShopService shopService;
@Lazy @Lazy
@Autowired @Resource
private LklLedgerMemberService lklLedgerMemberService; private LklLedgerMemberService lklLedgerMemberService;
@Lazy @Lazy
@Autowired @Resource
private LklLedgerReceiverService lklLedgerReceiverService; private LklLedgerReceiverService lklLedgerReceiverService;
@Lazy @Lazy
@Autowired @Resource
private LklLedgerMerReceiverBindService lklLedgerMerReceiverBindService; private LklLedgerMerReceiverBindService lklLedgerMerReceiverBindService;
@Lazy @Lazy
@ -135,7 +134,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
private ShopStoreBaseService shopStoreBaseService; private ShopStoreBaseService shopStoreBaseService;
@Lazy @Lazy
@Autowired @Resource
private LklLedgerEcService lklLedgerEcService; private LklLedgerEcService lklLedgerEcService;
@Lazy @Lazy

View File

@ -33,6 +33,7 @@ import java.util.stream.Collectors;
public class PushMessageServiceImpl implements PushMessageService { public class PushMessageServiceImpl implements PushMessageService {
private static final String appName = "小发同城"; private static final String appName = "小发同城";
@Lazy @Lazy
@Resource @Resource
private UniCloudPushService uniCloudPushService; private UniCloudPushService uniCloudPushService;

View File

@ -16,7 +16,6 @@ import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.constant.RedisConstant; import com.suisung.mall.common.constant.RedisConstant;
import com.suisung.mall.shop.message.service.PushMessageService; import com.suisung.mall.shop.message.service.PushMessageService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener; import org.springframework.data.redis.connection.MessageListener;
@ -25,7 +24,6 @@ import javax.annotation.Resource;
@Slf4j @Slf4j
public class RedisKeyExpiredListener implements MessageListener { public class RedisKeyExpiredListener implements MessageListener {
@Lazy
@Resource @Resource
private PushMessageService pushMessageService; private PushMessageService pushMessageService;
@ -93,8 +91,9 @@ public class RedisKeyExpiredListener implements MessageListener {
/** /**
* 处理订单超时消息 * 处理订单超时消息
* *
* @param storeId 店铺ID * @param storeId 店铺ID
* @param orderId 订单ID * @param orderId 订单ID
* @param willExpire 此刻还是即将
* @return 处理结果 * @return 处理结果
*/ */
private boolean handleOrderExpiredMessage(String storeId, String orderId, boolean willExpire) { private boolean handleOrderExpiredMessage(String storeId, String orderId, boolean willExpire) {
@ -122,7 +121,7 @@ public class RedisKeyExpiredListener implements MessageListener {
return false; return false;
} }
String title = "有一笔" + addWord + "的订单!"; String title = "有一笔" + addWord + "超时的订单!";
String content = "您有一笔" + addWord + "超时的订单[" + orderId + "],请及时处理。"; String content = "您有一笔" + addWord + "超时的订单[" + orderId + "],请及时处理。";
log.debug("[订单{}超时处理] 准备推送消息. 标题: {}, 内容: {}", addWord, title, content); log.debug("[订单{}超时处理] 准备推送消息. 标题: {}, 内容: {}", addWord, title, content);

View File

@ -632,43 +632,61 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
} }
/** /**
* 订单详情 * 获取订单详情
* *
* @return * @param order_id 订单ID
* @return 订单详情数据
*/ */
@Override @Override
public Map detail(String order_id) { public Map detail(String order_id) {
log.debug("开始获取订单详情订单ID: {}", order_id);
Map data = new HashMap(); Map data = new HashMap();
List<String> order_ids = Convert.toList(String.class, order_id); List<String> order_ids = Convert.toList(String.class, order_id);
if (CollUtil.isEmpty(order_ids)) { if (CollUtil.isEmpty(order_ids)) {
log.warn("订单ID列表为空");
return data; return data;
} }
// 获取订单信息 // 获取订单信息
Map row = Convert.toMap(String.class, Object.class, get(order_ids.get(0))); Map row = Convert.toMap(String.class, Object.class, get(order_ids.get(0)));
if (CollUtil.isEmpty(row)) {
log.warn("订单信息不存在订单ID: {}", order_ids.get(0));
throw new ApiException(I18nUtil._("订单不存在!"));
}
//买家订单或者 // todo 分销订单 //买家订单或者 // todo 分销订单
UserDto user = getCurrentUser(); UserDto user = getCurrentUser();
if (user == null) { if (user == null) {
log.warn("用户信息异常");
throw new ApiUserException(I18nUtil._("用户信息异常!")); throw new ApiUserException(I18nUtil._("用户信息异常!"));
} }
Integer user_id = user.getId(); Integer user_id = user.getId();
log.debug("当前用户ID: {}", user_id);
QueryWrapper<ShopDistributionUserOrder> userOrderQueryWrapper = new QueryWrapper<>(); QueryWrapper<ShopDistributionUserOrder> userOrderQueryWrapper = new QueryWrapper<>();
userOrderQueryWrapper.eq("user_id", user_id).in("order_id", order_ids); userOrderQueryWrapper.eq("user_id", user_id).in("order_id", order_ids);
ShopDistributionUserOrder distributionUserOrder = shopDistributionUserOrderService.findOne(userOrderQueryWrapper); ShopDistributionUserOrder distributionUserOrder = shopDistributionUserOrderService.findOne(userOrderQueryWrapper);
Map distributionUserOrderMap = Convert.toMap(String.class, Object.class, distributionUserOrder); Map distributionUserOrderMap = Convert.toMap(String.class, Object.class, distributionUserOrder);
if (CheckUtil.checkDataRights(user_id, row, "buyer_user_id") || CheckUtil.checkDataRights(user_id, distributionUserOrderMap, "user_id")) { // 检查用户是否有权限访问该订单作为买家或分销商
data = getOrderDetail(order_id, row); boolean hasBuyerRights = CheckUtil.checkDataRights(user_id, row, "buyer_user_id");
boolean hasDistributionRights = CheckUtil.checkDataRights(user_id, distributionUserOrderMap, "user_id");
log.debug("订单访问权限检查,买家权限: {}, 分销权限: {}", hasBuyerRights, hasDistributionRights);
//diy, 判断是否上传素材 if (hasBuyerRights || hasDistributionRights) {
data = getOrderDetail(order_id, row);
log.debug("获取订单详细信息完成");
// diy, 判断是否上传素材
List<Map> items = (List<Map>) data.get("items"); List<Map> items = (List<Map>) data.get("items");
for (Map item : items) { if (CollUtil.isNotEmpty(items)) {
String design_file_images = Convert.toStr(item.get("design_file_images")); for (Map item : items) {
if (StrUtil.isNotBlank(design_file_images)) { String design_file_images = Convert.toStr(item.get("design_file_images"));
// row = apply_filters("product-cart-add", row); if (StrUtil.isNotBlank(design_file_images)) {
// row = apply_filters("product-cart-add", row);
log.debug("订单项包含设计文件图片");
}
} }
} }
@ -679,15 +697,19 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
Integer delivery_istimer = Convert.toInt(data.get("delivery_istimer")); Integer delivery_istimer = Convert.toInt(data.get("delivery_istimer"));
String deliveryTime = getDeliveryTime(delivery_time, delivery_time_rang, delivery_time_h, delivery_time_i, delivery_istimer); String deliveryTime = getDeliveryTime(delivery_time, delivery_time_rang, delivery_time_h, delivery_time_i, delivery_istimer);
data.put("delivery_time_name", deliveryTime); data.put("delivery_time_name", deliveryTime);
log.debug("配送时间计算完成: {}", deliveryTime);
// 判断活动信息 // 判断活动信息
Integer activity_type_id = Convert.toInt(data.get("activity_type_id")); Integer activity_type_id = Convert.toInt(data.get("activity_type_id"));
if (ObjectUtil.equal(StateCode.ACTIVITY_TYPE_GROUPBOOKING, activity_type_id)) { if (ObjectUtil.equal(StateCode.ACTIVITY_TYPE_GROUPBOOKING, activity_type_id)) {
log.debug("处理拼团活动订单");
QueryWrapper<ShopActivityGroupbookingHistory> historyQueryWrapper = new QueryWrapper<>(); QueryWrapper<ShopActivityGroupbookingHistory> historyQueryWrapper = new QueryWrapper<>();
historyQueryWrapper.eq("user_id", user_id).in("order_id", order_ids); historyQueryWrapper.eq("user_id", user_id).in("order_id", order_ids);
ShopActivityGroupbookingHistory group_booking_row = groupbookingHistoryService.findOne(historyQueryWrapper); ShopActivityGroupbookingHistory group_booking_row = groupbookingHistoryService.findOne(historyQueryWrapper);
if (group_booking_row != null) {
data.put("gb_id", group_booking_row.getGb_id()); data.put("gb_id", group_booking_row.getGb_id());
log.debug("获取拼团ID: {}", group_booking_row.getGb_id());
}
} }
Map queryParams = new HashMap(); Map queryParams = new HashMap();
@ -697,6 +719,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
Map result = payService.findConsumeRecordHandleName(queryParams); Map result = payService.findConsumeRecordHandleName(queryParams);
data.putAll(result); data.putAll(result);
log.debug("支付记录处理完成");
// 订单倒计时 // 订单倒计时
boolean show_cancel_time = accountBaseConfigService.getConfig("show_cancel_time", false); boolean show_cancel_time = accountBaseConfigService.getConfig("show_cancel_time", false);
@ -713,6 +736,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
order_time = DateUtil.offsetSecond(order_time, (int) (order_autocancel_time * 60 * 60)); order_time = DateUtil.offsetSecond(order_time, (int) (order_autocancel_time * 60 * 60));
long remain_pay_time = (order_time.getTime() - new DateTime().getTime()) / 1000; long remain_pay_time = (order_time.getTime() - new DateTime().getTime()) / 1000;
data.put("remain_pay_time", remain_pay_time); // 修复以分钟扫描清除订单导致的误差 data.put("remain_pay_time", remain_pay_time); // 修复以分钟扫描清除订单导致的误差
log.debug("订单自动取消倒计时计算完成,剩余时间: {}秒", remain_pay_time);
} }
//自动收货倒计时 order_autofinish_time //自动收货倒计时 order_autofinish_time
@ -723,11 +747,15 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
long remain_autofinish_time = (order_deal_time.getTime() - new DateTime().getTime()) / 1000; long remain_autofinish_time = (order_deal_time.getTime() - new DateTime().getTime()) / 1000;
data.put("remain_autofinish_time", remain_autofinish_time); // 修复以分钟扫描清除订单导致的误差 data.put("remain_autofinish_time", remain_autofinish_time); // 修复以分钟扫描清除订单导致的误差
log.debug("订单自动收货倒计时计算完成,剩余时间: {}秒", remain_autofinish_time);
} }
} else { } else {
log.warn("用户无权限访问该订单用户ID: {}, 订单ID: {}", user_id, order_id);
throw new ApiException(I18nUtil._("无该订单访问权限!")); throw new ApiException(I18nUtil._("无该订单访问权限!"));
} }
log.info("订单详情获取完成订单ID: {}", order_id);
return data; return data;
} }