diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/GeoMapUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/GeoMapUtil.java index d117d1df0..ce3be3f46 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/GeoMapUtil.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/GeoMapUtil.java @@ -22,7 +22,7 @@ public class GeoMapUtil { private static final String API_KEY = "0102f13948f9fba9c979aacd72eb01f1"; public static void main(String[] args) { - AddressInfo addressInfo = reverseGeoCoding("30.41875", "120.2985"); + AddressInfo addressInfo = reverseGeoCoding("35.607720", "103.221869"); System.out.println(JSONObject.toJSONString(addressInfo)); System.out.println(JSONObject.toJSONString(reverseGeoCoding("30.41", "120.29"))); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java index 57c39eb16..51050cdce 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java @@ -1,6 +1,7 @@ package com.cool.store.dao; import cn.hutool.core.collection.CollStreamUtil; +import com.cool.store.dto.store.StoreAddressDTO; import com.cool.store.dto.store.StoreOrderTimeDTO; import com.cool.store.entity.StoreDO; import com.cool.store.mapper.StoreMapper; @@ -235,4 +236,12 @@ public class StoreDao { public List getStoreByRegionIds(List regionIds, String keyword) { return storeMapper.getStoreByRegionIds(regionIds, keyword); } + + public List getStoreAddress(Integer flag,String storeCode){ + return storeMapper.getStoreAddress(flag,storeCode); + } + + public Integer batchUpdateAddress(List storeList){ + return storeMapper.batchUpdateAddress(storeList); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java index 06a2e6e4c..074773481 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.dto.store.StoreAddressDTO; import com.cool.store.dto.store.StoreAreaDTO; import com.cool.store.dto.store.StoreOrderTimeDTO; import com.cool.store.entity.StoreDO; @@ -148,4 +149,8 @@ public interface StoreMapper { * @return 门店列表 */ List getStoreByRegionIds(@Param("regionIds") List regionIds, @Param("keyword") String keyword); + + List getStoreAddress(@Param("flag") Integer flag, @Param("storeCode") String storeCode); + + int batchUpdateAddress(@Param("list") List storeList); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml index 1e7aba8fa..ca9461e6a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml @@ -381,4 +381,44 @@ + + + + + + UPDATE store_${enterpriseId} + + + + WHEN store_id = #{item.storeId} THEN #{item.province} + + + + + WHEN store_id = #{item.storeId} THEN #{item.city} + + + + + WHEN store_id = #{item.storeId} THEN #{item.county} + + + + WHERE store_id IN + + #{item.storeId} + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/store/StoreAddressDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/store/StoreAddressDTO.java new file mode 100644 index 000000000..5dc2d2e20 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/store/StoreAddressDTO.java @@ -0,0 +1,18 @@ +package com.cool.store.dto.store; + +import lombok.Data; + +/** + * @Auther zx_szh + * @Date 2026/3/29 16:28 + * @Version 1.0 + */ +@Data +public class StoreAddressDTO { + + private String StoreId; + + private String longitude; + + private String latitude; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/StoreService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/StoreService.java index 768afc8c9..f4d8d380e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/StoreService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/StoreService.java @@ -49,4 +49,6 @@ public interface StoreService { */ PageInfo getAuthStoreList(StoreListRequest request); + Boolean handleStoreLogLai(Integer flag,String specialStoreCode); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java index c097ddd17..7a91715a3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java @@ -4,19 +4,17 @@ import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.cool.store.constants.CommonConstants; import com.cool.store.context.CurrentUserHolder; import com.cool.store.dto.StoreNameDTO; import com.cool.store.dao.store.StoreMasterSignerInfoDAO; -import com.cool.store.dto.store.AuthStoreUserDTO; +import com.cool.store.dto.store.*; import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.EnterpriseUserRoleDao; import com.cool.store.dao.StoreDao; import com.cool.store.dao.SysRoleDao; import com.cool.store.dto.StoreDTO; import com.cool.store.dto.UserSimpleDTO; -import com.cool.store.dto.store.StoreAreaDTO; -import com.cool.store.dto.store.StoreUserDTO; -import com.cool.store.dto.store.StoreUserPositionDTO; import com.cool.store.entity.*; import com.cool.store.entity.store.StoreMasterSignerInfoDO; import com.cool.store.enums.*; @@ -27,6 +25,7 @@ import com.cool.store.response.MiniShopsResponse; import com.cool.store.service.StoreService; import com.cool.store.service.UserAuthMappingService; import com.cool.store.utils.BeanUtil; +import com.cool.store.utils.GeoMapUtil; import com.cool.store.utils.poi.constant.Constants; import com.cool.store.vo.SysRoleVO; import com.cool.store.vo.store.StoreListVO; @@ -318,6 +317,42 @@ public class StoreServiceImpl implements StoreService { return page; } + @Override + public Boolean handleStoreLogLai(Integer flag,String specialStoreCode) { + boolean hasNext = true; + int pageNum = 1; + int pageSize = 50; + while (hasNext) { + PageHelper.startPage(pageNum, pageSize); + List list = storeDao.getStoreAddress(flag,specialStoreCode); + + //门店列表 + if (CollectionUtils.isEmpty(list)) { + log.info("------门店列表为空------"); + return Boolean.TRUE; + } + List storeList = new ArrayList<>(); + for (StoreAddressDTO x : list) { + GeoMapUtil.AddressInfo addressInfo = GeoMapUtil.reverseGeoCoding(x.getLatitude(), x.getLongitude()); + if (Objects.isNull(addressInfo)){ + continue; + } + StoreDO storeDO = new StoreDO(); + storeDO.setStoreId(x.getStoreId()); + storeDO.setProvince(addressInfo.getProvince()); + storeDO.setCity(addressInfo.getCity()); + storeDO.setCounty(addressInfo.getDistrict()); + storeList.add(storeDO); + } + storeDao.batchUpdateAddress(storeList); + + hasNext = list.size() >= pageSize; + pageNum++; + } + + return Boolean.TRUE; + } + @Override public List authStoreUser(List storeIdList, String positionType) { diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java index ed9c83810..9cd4600f0 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java @@ -461,4 +461,10 @@ public class TestController { public ResponseResult openOnlineBankAccount(@RequestBody @Validated CoolOpenBasicInfoRequest request) { return ResponseResult.success(walletService.openOnlineBankAccount(request)); } + + @GetMapping("/handleStoreLogLai") + public ResponseResult handleStoreLogLai(@RequestParam(value = "flag", required = false) Integer flag , + @RequestParam(value = "storeCode", required = false) String storeCode) { + return ResponseResult.success(storeService.handleStoreLogLai(flag,storeCode)); + } }