From 90488cb6f12f0d79fa0d8bc881c1d0f3bab355ec Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期一, 08 九月 2025 13:41:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
lmk-job/src/main/java/cn/lili/job/MemberJob.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 98 insertions(+), 0 deletions(-)
diff --git a/lmk-job/src/main/java/cn/lili/job/MemberJob.java b/lmk-job/src/main/java/cn/lili/job/MemberJob.java
new file mode 100644
index 0000000..58c371e
--- /dev/null
+++ b/lmk-job/src/main/java/cn/lili/job/MemberJob.java
@@ -0,0 +1,98 @@
+package cn.lili.job;
+
+
+import cn.lili.modules.member.entity.dos.Member;
+import cn.lili.modules.member.entity.dos.MemberAddress;
+import cn.lili.modules.member.mapper.MemberAddressMapper;
+import cn.lili.modules.member.mapper.MemberMapper;
+import cn.lili.modules.member.service.MemberService;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * lmk-shop-java
+ * 浼氬憳鐩稿叧浠诲姟
+ * @author : zxl
+ * @date : 2025-09-04 16:49
+ **/
+
+@Component
+@RequiredArgsConstructor
+public class MemberJob {
+
+ private final MemberMapper memberMapper;
+ private final MemberService memberService;
+
+ private final MemberAddressMapper memberAddressMapper;
+ /**
+ * 姣忔棩浠诲姟鍚屾鐢ㄦ埛鍦板潃
+ *
+ * @throws Exception
+ */
+ @XxlJob("everyDayExecuteJobHandlerAsyncMemberAddress")
+ public void everyDayExecuteJobHandlerAsyncMemberAddress() throws Exception {
+ XxlJobHelper.log("寮�濮嬫墽琛屾瘡鏃ヤ换鍔★細浼氬憳鍦板潃鍚屾");
+ List<Member> updateList = new ArrayList<>();
+ List<Member> list = new LambdaQueryChainWrapper<>(memberMapper)
+ // 鏌ヨregion涓虹┖鐨勮褰�
+ .and(wrapper -> wrapper
+ .isNull(Member::getRegion) // region 涓� NULL
+ .or() // 鎴栬��
+ .eq(Member::getRegion, "") // region 涓虹┖瀛楃涓�
+ )
+ .and(wrapper -> wrapper
+ .isNull(Member::getRegionId) // region_id 涓� NULL
+ .or() // 鎴栬��
+ .eq(Member::getRegionId, "") // region_id 涓虹┖瀛楃涓�
+ )
+ .eq(Member::getDeleteFlag,Boolean.FALSE)
+ .list();
+ if (CollectionUtils.isNotEmpty(list)) {
+ List<String> memberIds = list.stream().map(Member::getId).collect(Collectors.toList());
+ if (CollectionUtils.isNotEmpty(memberIds)) {
+ List<MemberAddress> addresses = new LambdaQueryChainWrapper<>(memberAddressMapper)
+ .in(MemberAddress::getMemberId, memberIds) // 鏌ヨ鎸囧畾 memberIds 鐨勫湴鍧�
+ .eq(MemberAddress::getDeleteFlag, Boolean.FALSE) // 閫昏緫鍒犻櫎瀛楁锛屽亣璁� 0 琛ㄧず鏈垹闄�
+ .orderByDesc(MemberAddress::getIsDefault) // 浼樺厛杩斿洖榛樿鍦板潃锛坕s_default=1 鐨勬帓鍦ㄥ墠闈級
+ .orderByDesc(MemberAddress::getCreateTime) // 鐒跺悗鎸夋椂闂撮檷搴忔帓鍒�
+ .list();
+ Map<String, MemberAddress> firstAddressByMember = addresses.stream()
+ .collect(Collectors.toMap(
+ MemberAddress::getMemberId,
+ address -> address,
+ (existing, replacement) -> existing // 濡傛灉宸叉湁璇� member 鐨勫湴鍧�锛屼繚鐣欑涓�涓紙鐢变簬鎺掑簭锛岀涓�涓氨鏄紭鍏堢骇鏈�楂樼殑锛�
+ ));
+ for (Member member : list) {
+ MemberAddress address = firstAddressByMember.get(member.getId());
+ if (address != null) {
+ member.setRegion(address.getConsigneeAddressPath());
+ member.setRegionId(address.getConsigneeAddressIdPath());
+ updateList.add(member);
+ } else {
+ // 鍙�夛細澶勭悊鏃犲湴鍧�鐨勬儏鍐碉紙濡傛棩蹇楄褰曘�佽烦杩囨洿鏂扮瓑锛�
+ XxlJobHelper.log("浼氬憳{}娌℃湁瀵瑰簲鐨勫湴鍧�璁板綍锛屼笉鏇存柊region淇℃伅", member.getId());
+ }
+ }
+ System.out.println("鎵撳嵃闇�瑕佷慨鏀圭殑闆嗗悎--------------------");
+ System.out.println(updateList);
+ memberService.updateBatchById(list);
+
+ }
+
+
+ }
+
+ // 淇敼
+ XxlJobHelper.log("鎵ц瀹屾垚锛氫細鍛樺湴鍧�鍚屾瀹屾垚");
+ }
+
+}
--
Gitblit v1.8.0