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