From 83430e4bd60f9a44ec76698fa04ee8d3373a1087 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 15 七月 2024 13:40:06 +0800
Subject: [PATCH] 代码提交

---
 server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java |   90 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 86 insertions(+), 4 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index 2a03951..62ed2f3 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelImporter;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
@@ -12,15 +13,15 @@
 import com.doumee.dao.admin.request.FcodeImport;
 import com.doumee.dao.admin.request.ShopImport;
 import com.doumee.dao.admin.request.UpdateShopSortDTO;
-import com.doumee.dao.business.CategoryMapper;
 import com.doumee.dao.business.CategorySegMapper;
+import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.SegmentsMapper;
-import com.doumee.dao.business.ShopMapper;
+import com.doumee.dao.business.UsersMapper;
 import com.doumee.dao.business.join.ShopJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.ShopTree;
 import com.doumee.dao.business.vo.ShopTreeVo;
-import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
 import com.doumee.service.business.ShopService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -41,7 +42,6 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
 
 /**
  * 蹇楅偊缁勭粐淇℃伅琛⊿ervice瀹炵幇
@@ -55,10 +55,17 @@
     private RedisTemplate<String, Object> redisTemplate;
     @Autowired
     private ShopJoinMapper shopMapper;
+
     @Autowired
     private SegmentsMapper segmentsMapper;
     @Autowired
     private CategorySegMapper categorySegMapper;
+    @Autowired
+    private UsersMapper usersMapper;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private MemberMapper memberMapper;
 
     @Override
     public Long create(Shop shop) {
@@ -858,4 +865,79 @@
             }
         }
     }
+
+
+
+    @Override
+    public PageData<Shop> queryShopByLL(PageWrap<Shop> pageWrap) {
+        if(Objects.isNull(pageWrap.getModel())
+                || Objects.isNull(pageWrap.getModel().getLatitude())
+                || Objects.isNull(pageWrap.getModel().getLongitude())){
+            return null;
+        }
+        IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<Shop> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
+                        " CONVERT (ST_Distance_Sphere (point ("+pageWrap.getModel().getLongitude()+", "+pageWrap.getModel().getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ")
+                .eq("isdeleted",Constants.ZERO)
+                .isNotNull("LATITUDE")
+                .isNotNull("LONGITUDE")
+                .eq("ATTRIBUTE",Constants.ONE)
+                .orderByAsc(" distance ");
+        Utils.MP.blankToNull(pageWrap.getModel());
+        PageData<Shop> pageData = PageData.from(shopMapper.selectPage(page, queryWrapper));
+        String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+        StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+        for (Shop shop:pageData.getRecords()) {
+            //鏌ヨ闂ㄥ簵涓嬪璐暟鎹�
+            List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId())
+                    .eq(Users::getIsdeleted,Constants.ZERO)
+                    .eq(Users::getStatus,Constants.ONE)
+                    .eq(Users::getType,Constants.ZERO)
+            );
+            for (Users users:usersList) {
+                if(StringUtils.isNotBlank(users.getImgurl())){
+                    users.setImgurlFull(prefix + users.getImgurl());
+                }
+            }
+            shop.setUsersList(usersList);
+        }
+        return pageData;
+    }
+
+    @Override
+    public Shop shopDetail(Long id,Long memberId) {
+        Member member = memberMapper.selectById(memberId);
+        if(Objects.isNull(member)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鐢ㄦ埛淇℃伅");
+        }
+        QueryWrapper<Shop> queryWrapper = new QueryWrapper<Shop>();
+        //濡傛灉浜哄憳娌℃湁缁忕含搴︿俊鎭紝鍒欎笉鏌ヨ璺濈
+        if(Objects.nonNull(member.getLatitude())&&Objects.nonNull(member.getLongitude())){
+            queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
+                    " CONVERT (ST_Distance_Sphere (point ("+member.getLongitude()+", "+member.getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ");
+        }
+        queryWrapper.eq("id",id);
+        Shop shop = shopMapper.selectOne(queryWrapper);
+        if(Objects.isNull(shop)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+                StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+        List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId())
+                .eq(Users::getIsdeleted,Constants.ZERO)
+                .eq(Users::getStatus,Constants.ONE)
+                .eq(Users::getType,Constants.ZERO)
+        );
+        for (Users users:usersList) {
+            if(StringUtils.isNotBlank(users.getImgurl())){
+                users.setImgurlFull(prefix + users.getImgurl());
+            }
+        }
+        shop.setUsersList(usersList);
+        return shop;
+    }
+
+
+
 }

--
Gitblit v1.9.3